Chuong1_GT_Tongquan_CNPM

76 5 0
Chuong1_GT_Tongquan_CNPM

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phương pháp xây dựng phần mềm mà cách giải quyết vấn đề theo hướng phân tích, Bắt đầu với những thành phần chính của hệ thống., Sau đó, được phân tích thành các thành phần chi tiết và [r]

(1)(2)

1 Các khái niệm

2 Quy trình cơng nghệ phần mềm

3 Các phương pháp xây dựng phần mềm

4 Công cụ & môi trường phát triển phần mềm 5 Yêu cầu kỹ sư phần mềm

(3)

Phần mềm

Chất lượng phần mềm Công nghệ Phần mềm

(4)

Các khái niệm

Chương trình máy tính: Các thị để máy tính làm việc

Phần mềm: Các chương trình hỗ trợ thực công iệc theo lĩnh vực

chuyên ngành

Nhiệm vụ yếu phần mềm: Thực công việc dễ dàng

nhanh chóng

Hoạt động phần mềm: Mô lại họat động giới thực

(5)

Mục tiêu ngành công nghệ phần mềm: Xây dựng phần mềm có chất

lượng, dễ dàng tích hợp

(6)

Phân loại:

Nhóm 1: Phần mềm hệ thống

– Đảm nhận cơng việc tích hợp điều khiển thiết bị phần cứng,

– Tạo môi trường thuận lợi để phần mềm khác người sử dụng thao tác

Nhóm 2: Phần mềm ứng dụng:

– Được dùng để thực công việc xác định,

(7)

Phân loại:

Ngoài ra, phần mềm chia làm 2 loại:

Sản phẩm đại trà: Phát triển để bán thị trường

Sản phẩm theo đơn đặt hàng: Phát triển theo yêu cầu cho khách hàng riêng lẻ Ví dụ: Phần mềm chuyên dụng cho doanh nghiệp

(8)

Kiến trúc phần mềm: gồm thành phần

(9)

Kiến trúc phần mềm: gồm thành phần

Thành phần Giao tiếp (giao diện)

– Các phương thức nhập/xuất liệu hình thức trình bày, tổ chức lưu trữ liệu

– Mục tiêu đưa liệu từ giới bên vào phần mềm ngược lại – Tiếp nhận yêu cầu, cung cấp nguồn liệu liên quan đến việc thực

yêu cầu

– Trình bày kết thực yêu cầu cho người dùng

(10)

Kiến trúc phần mềm: gồm thành phần

Thành phần liệu

– Các chức đọc ghi liệu mơ hình tổ chức liệu tương ứng

– Mục tiêu chuyển đổi liệu nhớ nhớ phụ, bao gồm:

Lưu trữ kết xử lý

Truy xuất lại liệu lưu trữ phục vụ cho hàm xử lý tương

(11)

Kiến trúc phần mềm: gồm thành phần

Thành phần xử lý:

– Các chức xử lý tính tốn, biến đổi liệu

– Kiểm tra tính hợp lệ liệu nguồn theo ràng buộc – Xử lý tạo kết mong đợi theo quy định

– Xuất kết qua giao diện hay lưu trữ lại

(12)

«Phần mềm chất lượng phần mềm phải đáp ứng chức

theo yêu cầu, có hiệu tốt, có khả bảo trì, đáng tin cậy, và người sử dụng chấp nhận»

(13)

1.1.2 CHẤT LƢỢNG PHẦN MỀM

Chất lượng phần mềm

(14)

Tính đắn:

Thực đầy đủ xác yêu cầu Tính đắn xác định sở:

– Tính đắn giải pháp xử lý / thuật toán,

– Tính đắn tập mã lệnh nội dung chương trình,

– Tính đắn qua kiểm thử, việc áp dụng chương trình khoảng thời gian dài, diện rộng với tần suất sử dụng cao

(15)

Tính tiến hóa

Sản phẩm mở rộng, cập nhật thêm chức dễ dàng. Dễ dàng cập nhật quy trình nghiệp vụ.

Tính hiệu quả

Hiệu kinh tế, ý nghĩa, giá trị thu

Hiệu sử dụng (tốc độ xử lý phần mềm …)

Hiệu kỹ thuật (tối ưu tài nguyên máy tính: CPU, nhớ, không gian

xử lý )

(16)

Tính tiện dụng thân thiện

Tính động linh hoạt sản phẩm

Cảm nhận (về mặt tâm lý) người dùng về: – Dễ học, có giao diện trực quan tự nhiên

– Các chức sản phẩm dễ thao tác.

(17)

Tính tương thích:

Khả trao đổi liệu với phần mềm khác (như: nhận danh sách

nhân viên từ tập tin Excel …)

Gồm Giao tiếp nội giao tiếp bên ngồi.

Tính tái sử dụng:

Có thể áp dụng cho nhiều lĩnh vực theo nhiều chế độ làm việc khác nhau, Áp dụng mặt kỹ thuật hay phối hợp mặt sử dụng với phần mềm

khác

(18)

Sự đời công nghệ phần mềm

Từ 1950, máy tính điện tử đời, phần mềm tạo với số lượng

ít, chủ yếu cho quốc phịng

Đến 1960, phần mềm ứng dụng rộng rãi nhiều lĩnh vực Năm 1968 “khủng hoảng phần mềm” do:

– Nhu cầu số lượng phần mềm tăng nhanh phát triển phần cứng

– Các phần mềm dùng mắc nhiều khuyết điểm như: Thiếu xác, khơng ổn định, bảo trì nâng cấp khó khăn, khó chuyển đổi

(19)

Sự đời công nghệ phần mềm

Hội nghị triệu tập đưa kết luận:

– Tăng số lượng phần mềm tương lai

– Khắc phục khuyết điểm phương pháp xây dựng phần mềm tại:

 Xây dựng phần mềm theo cảm tính, thơ sơ đơn giản

 Chỉ tập trung vào việc lập trình khơng quan tâm giai đoạn trước lập trình (khảo

sát trạng, phân tích yêu cầu, thiết kế …)

 Phương pháp thủ cơng: Cơng cụ hỗ trợ xây dựng phần mềm trình biên

dịch (compiler)

(20)

CNPM lĩnh vực nghiên cứu tin học nhằm đề xuất nguyên lý, phương pháp, công cụ, cách tiếp cận phục vụ cho việc thiết kế, thực phần mềm đạt đầy đủ yêu cầu chất lượng phần mềm” Hay:

CNPM ngành khoa học nghiên cứu việc xây dựng phần mềm có chất lượng khoảng thời gian chi phí hợp lý

(21)

Định nghĩa 1: Công nghệ phần mềm là lĩnh vực nghiên

cứu tin học nhằm đề xuất nguyên lý, phương pháp, công cụ, cách tiếp cận phục vụ cho việc thiết kế, thực các phần mềm đạt đầy đủ yêu cầu chất lượng phần mềm.

Định nghĩa

(22)

Quy trình CNPM: Hệ thống giai đoạn phát triển phần mềm,

xác định rõ mục tiêu, kết chuyển giao cho giai đoạn kết tiếp

Phươnng pháp phát triển phần mềm: Hệ thống hướng dẫn

cho phép bước thực giai đoạn quy trình CNPM

Công cụ môi trƣờng phát triển phần mềm: Hệ thống

phần mềm trợ giúp

(23)

Khi phần mềm phát triển mạnh thì lý thuyết khoa học máy tính khơng đủ để đóng vai trị tảng hồn thiện cho CNPM

(24)

Bước xác định:

Đây bước hình thành dự án

Xác định vai trị phần mềm, ước lượng cơng việc, lập lịch

biểu phân chia công việc.

Xác định yêu cầu khách hàng Các yêu cầu thu thập đầy

đủ, phân tích rộng sâu

Cơng cụ sử dụng: Là sơ đồ phản ánh thành phần hệ thống

mối liên quan chúng

(25)

Bước phát triển

Đặc tả: Dùng ngôn ngữ đặc tả mô tả yếu tố chương trình:

Giá trị nhập/ xuất/biến đổi Chỉ quan tâm giá trị vào/ra không quan tâm đến cấu trúc nội dung thao tác cần thực

Xây dựng: Chuyển đặc tả chương trình thành sản phẩm phần

mềm dựa NNLT cụ thể

Kiểm thử: Chứng minh tính đắn chương trình với tập

dữ liệu thử nghiệm khác dựa vào kết

(26)

Bước bảo trì (Vận hành)

Công tác quản lý việc triển khai sử dụng phần mềm

Tất kết phân tích, thiết kế, thực hồ sơ liên quan phải

lưu trữ quản lý phục vụ cho cơng việc bảo trì phần mềm, suốt q trình sống

(27)

Có nhiều dạng mơ hình khác để triển khai bước q trình phát triển phần mềm

Mỗi mơ hình chia vịng đời phần mềm khác nhau, để đảm bảo quy trình phát triển thành cơng

Mơ hình Thác nước

Mơ hình Bản mẫu Phần mềm Mơ hình Xoắn ốc

(28)

Chia trình phát triển PM thành giai đoạn nối tiếp Kết giai đoạn trước đầu vào cho giai đoạn kế tiếp

Mơ hình thác nước có giai đoạn

(29)

Xác định yêu cầu: Tiến hành có nhu cầu xây dựng PMMục tiêu: Xác định xác yêu cầu P.Mềm Kết nhận: Thông tin hoạt động giới thực

Kết chuyển giao: Các yêu cầu (công việc thực

máy tính) với thơng tin mơ tả chi tiết yêu cầu (cách thức thực hiện)

(30)

Phân tích: Tiến hành sau việc xác định yêu cầu.

Mục tiêu: Mô tả u cầu mơ hình

Kết nhận: Các yêu cầu thông tin liên quan Kết chuyển giao:

– Mơ hình xử lý (các cơng việc Quan hệ)

– Mơ hình liệu (các thông tin sử dụng QH) – Mơ hình khác (khơng gian, thời gian, người…)

(31)

Thiết kế: Tiến hành sau kết thúc việc phân tích Mục tiêu: Mơ tả thành phần phần mềm Kết nhận: Mơ hình giới thực

Kết chuyển giao:

– Mô tả thành phần giao diện: Các hàm/CTDL

– Mô tả thành phần xử lý: Các hàm kiểm tra xử lý – Mô tả thành phần liệu: Các hàm đọc/ghi

(32)

Hiện thực: Tiến hành sau kết thúc việc thiết kế Mục tiêu: Tạo lập phần mềm theo yêu cầu

Kết nhận: Mơ hình phần mềm

Kết chuyển giao: Chương trình nguồn phần mềm với

CTDL tương ứng chương trình thực hiện.

(33)

Kiểm thử: Tiến hành sau kết thực (lập trình) Mục tiêu: Tăng độ tin cậy phần mềm

Kết nhận: các u cầu, mơ hình phần mềm,… Kết chuyển giao: Phần mềm có độ tin cậy cao.

(34)

Bảo trì: Cơng việc giai đoạn bao gồm việc cài đặt vận

hành phần mềm thực tế

Mục tiêu: Đảm bảo phần mềm vận hành tốt Kết nhận: Phần mềm hoàn thành

Kết chuyển giao: Các phản ánh khách hàng

trình sử dụng.

(35)

Nhận xét:

Dễ phân chia trình xây dựng PM thành giai đoạn độc lập

Các dự án lớn tn theo dịng chảy mơ hình (cần lặp lại

các bước để nâng chất lượng, khách hàng tuyên bố hết yêu cầu giai đoạn phân tích)

Rất khó thay đổi thực xong giai đoạn, khó thay đổi yêu

cầu theo ý khách hàng

Phương pháp thích hợp hiểu rõ yêu cầu khách hàng,

những thay đổi giới hạn

(36)

Mơ hình thác nước cải tiến: Mơ hình thác nước cải

tiến cách cho phép quay lui phát lỗi giai đoạn phía trước.

(37)

Tương tự mơ hình thác nước bổ sung thêm giai

đoạn thực phần mềm mẫu

Có thể tiến hành lặp lại mà khơng thiết theo trình tự định.

(38)

Sau giai đoạn Xác định yêu cầu phân tích, đưa thiết kế sơ

Tiếp theo, tiến hành thực mẫu chuyển cho người sử dụng

Bản mẫu nhằm để mô tả cách thức phần mềm hoạt động tương tác với người dùng

(39)

Người dùng sau xem xét mẫu phản hồi thơng tin cần thiết lại cho nhóm phát triển

Nếu người dùng đồng ý với mẫu, nhóm phát triển tiến hành thực Ngược lại, phải quay lại giai đoạn xác định yêu cầu

Lặp lại liên tục người sử dụng đồng ý với mẫu nhà phát triển đưa ra.

(40)

Nhận xét

Là hướng tiếp cận tốt yêu cầu chưa rõ ràng

Tính cấu trúc không cao dễ tin tưởng khách hàng, thiếu tầm

nhìn quy trình;

Chỉ nên áp dụng với hệ thống có tương tác mức độ nhỏ/vừa;

phần hệ thống lớn; có thời gian chu kỳ tồn ngắn

(41)

Là kết hợp của mơ hình mẫu thiết kế mơ hình thác nước lặp lại nhiều lần.

(42)

Ở lần lặp tiếp theo, hệ thống tìm hiểu xây dựng hồn thiện lần lặp trước

Yêu cầu người dùng ngày rõ ràng hơn, mẫu phần mềm ngày hoàn thiện hơn.

Ngồi ra, cuối lần lặp có thêm cơng đoạn phân tích mức độ rủi ro để định xem có nên hướng hay không

(43)

Khái niệm

Có thể áp dụng nhiều phương pháp xây dựng phần mềm Mỗi phương

pháp có

– Ưu khuyết điểm riêng, phù hợp riêng loại phần mềm

– Các hướng dẫn cụ thể công việc cần thực giai đoạn trình phát triển phần mềm

– Quy định cách thức khác để trình bày kết thu được; để thành viên tham gia trao đổi thông tin việc xây dựng PM

(44)

Phân loại

Có thể chia phương pháp xây dựng P.Mềm thành nhóm :

Theo cấu trúc chương trình: Phương pháp hướng chức

năng; hướng liệu; hướng đối tượng

Theo cách thức tổ chức quản lý: Xây dựng phương án, Tổ chức nhân sự, Ước lượng rủi ro, chi phí, lập kế hoạch theo dõi trình triển khai.

(45)

Cách tiếp cận từ xuống (top-down)

Cách giải vấn đề theo hướng phân tích.

Bắt đầu với thành phần hệ thống

Sau đó, phân tích thành thành phần chi tiết cụ thể hơn

Q trình phân tích kết thúc kết thu có mức độ phức tạp

đúng với ý muốn

(46)

Cách tiếp cận từ lên (bottom-up)

Cách giải vấn đề theo hướng tổng hợp (ngược lại với phương pháp

từ xuống)

Tiến hành xây dựng thành phần chi tiết dự tính có hệ

thống

Sau đó, kết hợp thành phần chi tiết lại với để tạo nên

thành phần

(47)

Phương pháp hướng chức năng

Thực dựa chức mà hệ thống cần thực hiện, trọng

đến thành phần xử lý với thao tác tính toán, phát sinh, biến đổi …

Phương pháp chung để giải vấn đề áp dụng nguyên lý “chia để trị” Chia công việc lớn thành cơng việc nhỏ để ta tiến hành

xây dựng hoàn chỉnh

(48)

Phương pháp hướng chức năng

Chú trọng cách giải vấn đề khơng có khả che dấu

thông tin trạng thái

Dẫn đến chức hệ thống không tương thích thực

thay đổi thơng tin

Cách tiếp cận thích hợp hệ thống có thơng tin cần

phải quản lý chia sẻ chức với nhau.

(49)

Phương pháp hướng chức năng

Để mơ hình hóa cách xử lý thơng tin, ta dùng lược đồ dịng liệu (DFD, Data Flow Diagrams)

(50)

Phương pháp hướng liệu

Phương pháp Hướng DL trọng nhiều đến thành phần DL cần phải xử lý

là tổ chức liệu, khối lượng lưu trữ, tốc độ truy xuất …

Bắt đầu với việc thiết kế CTDL, sau tiến hành thiết kết thao

tác để vận hành

Chỉ thích hợp cho loại phần mềm có chức lưu trữ thao tác

trên loại liệu

Hạn chế không quan tâm đến chức mà hệ thống cần phải đáp

(51)

Phương pháp hướng liệu

Kết thu sau thiết kế theo phương pháp hướng liệu mô

hình thực thể kết hợp (Entity Relationship Diagram, ERD)

(52)

Phương pháp hướng đối tượng

Là sự kết hợp của PP Hướng Dữ liệu PP Hướng Chức năng Chú trọng đến thành phần liệu chức hệ thống.

Một hệ thống phần mềm tập hợp đối tượng có khả tương tác

với Các đối tượng vật tượng vật lý

Mỗi đối tượng dữ liệu riêng các thao tác mà đối tượng

thực hiện

(53)

Các đối tượng giao tiếp cách gửi thông điệp các thông điệp xử lý gọi giao diện đối tượng.

Khi thao tác liên quan đến đối tượng phải thực hiện thông qua giao diện đối tượng.

Điều giúp ta đảm bảo thông tin bên đối tượng đưọc bảo vệ cách chắn

(54)(55)

Mở đầu

Là phần mềm hỗ trợ trình xây dựng PM (CASE - Computer

Aided Software Engineering)

Hỗ trợ cho một/một số giai đoạn gọi môi trường phát triển phần mềm

(SDE, Software Development Environment), gồm hình thức chính: – Cho phép lưu / cập nhật kết chuyển giao với phương pháp – Phát sinh kết chuyển giao cho giao đoạn sau

(56)

Phần mềm hỗ trợ phân tích

Soạn thảo mơ hình khái niệm, Ánh xạ vào mơ hình luận lý , phần

mềm thông dụng: WinA&D, Analyst Pro, Rational Rose, Enterprise Architect…

Phần mềm hỗ trợ thiết kế

Soạn thảo mơ hình luận lý, Ánh xạ vào mơ hình vật lý, phần mềm

(57)

Phần mềm hỗ trợ lập trình

Quản lý phiên (dữ liệu, chương trình nguồn, giao diện), biên dịch : Visual Studio Net (Basic, C#, C++), Borland …

Phần mềm hỗ trợ kiểm chứng:

Phát sinh tự động liệu thử nghiệm, phát lỗi: WinRuner, QuickTestPro …

(58)

Phần mềm hỗ trợ tổ chức, quản lý việc triển khai

Phần mềm xây dựng phương án:

– Lập kế hoạch dự án, dự đốn rủi ro, tính chi phí: MS Project, Visio, Rational Rose …

– Phần mềm lập kế hoạch, xác định công việc, phân công, lập lịch biểu, theo dõi thực hiện: MS Project, Visio

(59)

Quy trình xây dựng phần mềm thực môi trường chuyên nghiệp đòi hỏi tuân thủ nguyên tắc cách chính xác

Những kỹ sư phần mềm phải xem công việc trách nhiệm to lớn, chứ không đơn việc ứng dụng kỹ thuật

Kỹ sư phần mềm phải ứng xử trung thực chuyên nghiệp đúng quy tắc.

(60)

Các nguyên tắc mà kỹ sư PM phải thực hiện:

Lòng tin: Tạo tin cẩn từ phía nhân viên khách hàng.

Năng lực: Khơng nên trình bày sai khả mình, khơng nên nhận

những cơng việc vượt khả

Các quyền tài sản trí tuệ: Nên quan tâm tài sản trí tuệ, sáng chế,

quyền tác giả …

Khơng lạm dụng máy tính: Khơng nên sử dụng kỹ để

gây ảnh hưởng tới người khác như: phát tán virus, chơi Game

(61)

1 Những khái niệm:

Phần mềm (khái niệm, phân loại, kiến trúc)

Chất lượng phần mềm (tính đắn, tính tiến hóa, tính hiệu quả, tính tiện

dụng, tính tương thích, tính tái sử dụng)

CN phần mềm (nguồn gốc, định nghĩa …)

2 Quy trình CNPM: Bước xác định; Bước phát triển; Bước bảo trì

3 Một số mơ hình triển khai xây dựng phần mềm (Thác nước, Bản mẫu Phần mềm, Xoắn ốc)

(62)

4 Các phương pháp xây dựng phần mềm:

Tổng quan (Khái niệm, Phân loại),

Phương pháp xây dựng phần mềm (Cách tiếp cận, tiến hành)

5 Công cụ & môi trường phát triển phần mềm

Phần mềm hỗ trợ thực giai đoạn (phân tích, thiết kế, lập trình, kiểm

chứng)

Phần mềm hỗ trợ tổ chức, quản lý việc triển khai (Xây dựng phương án,

(63)

6 Yêu cầu kỹ sư phần mềm: Sự tin cẩn, lực, quyền tài sản trí tuệ.

(64)

1 Phụ lục A trang 170 2 Phụ lục B trang 179

(65)

1/ Cơng nghệ phần mềm có từ tiếng Anh là

A/ software engineering B/ engineering software C/ software testing

D/ software developer

(66)

2/ Mục tiêu công nghệ phần mềm để:

A/ Thực thi phần cứng tốt B/ Chỉnh sửa lỗi phần mềm

C/ Có thể sử dụng lại phần mềm

D/ Tạo sản phẩm phần mềm chất lượng

(67)

3/ Theo thống kê từ thách thức CNPM lỗi nhiều do:

A/ Kiểm tra bảo trì B/ Thiết kế

C/ Lập trình

D/ Phân tích yêu cầu

(68)

4/ Kỹ sư phần mềm không cần

A/ Kiến thức phân tích thiết kế hệ thống B/ Kiến thức sở liệu

C/ Lập trình thành thạo ngơn ngữ lập trình D/ Kinh nghiệm quản lý dự án phần mềm.

(69)

5/ SDLC viết tắt của:

A Spiral Development Linear Cycle B Software Development Life Cycle C Software Development Line Cycle

D Sequential Development Linear Cycle

(70)

6/ Nếu yêu cầu dễ hiểu xác định mơ hình thích hợp để phát triển hệ thống:

A Mơ hình thác nước (waterfall model) B Mơ hình mẫu (prototyping)

C Mơ hình xoắn ốc (spiral model) D Mơ hình phát triển nhanh (RAD)

(71)

7/ Hình ảnh minh họa sau thể hoạt động mơ hình phát triển phần mềm nào?

A Mơ hình mẫu(prototyping)

B Mơ hình thác nước (waterfall model) C Mơ hình xoắn ốc (spiral model)

D Mơ hình phát triển nhanh (RAD)

(72)

8/ Mơ hình prototyping là:

A Mơ hình thích hợp yêu cẩu hệ thống xác định rõ ràng

B Mơ hình thường dùng khách hàng khơng thể xác định yêu cầu rõ ràng

C Mô hỉnh tốt cho dự án có nhiều đội phát triển tham gia D Mơ hình nhiều rủi ro nên tạo sản phẩm có giá trị

(73)

9/ Hình ảnh minh họa sau thể hoạt động mơ hình phát triển phần mềm nào?

A Mơ hình mẫu(prototyping)

B Mơ hình thác nước (waterfall model) C Mơ hình xoắn ốc (spiral model)

D Mơ hình phát triển nhanh (RAD)

(74)

10/ Hình ảnh minh họa sau thể hoạt động mơ hình phát triển phần mềm nào?

A Mơ hình mẫu(prototyping)

B Mơ hình thác nước (waterfall model) C Mơ hình xoắn ốc (spiral model)

D Mơ hình phát triển nhanh (RAD)

(75)

11/ Mơ hình phát triển phần mềm mà tiến trình tiến hố vốn cặp đơi bản chất lặp làm mẫu với khía cạnh hệ thống có kiểm sốt mơ hình trình tự tuyến tính Là mơ hình phát triển phần mềm sau đây?

A Mơ hình tăng trưởng (incremental model)

B Mơ hình kĩ thuật hệ thứ tư (Fourth generation techniques - 4GT) C Mơ hình xoắn ốc (spiral model)

D Mơ hình RAD (Rapid application development)

(76)

12/ Phương pháp xây dựng phần mềm mà cách giải vấn đề theo hướng phân tích, Bắt đầu với thành phần hệ thống., Sau đó, phân tích thành thành phần chi tiết cụ thể

A Cách tiếp cận từ lên B Cách tiếp cận từ xuống

C Phướng pháp hướng đối tượng

Ngày đăng: 27/04/2021, 16:04

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan