Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh
Các hoạt động phát triển phần mềm
 Phân tích tính khả thi
 Phân tích và đặc tả yêu cầu
 Thiết kế
 Mã hóa
 Kiểm thử
 Bảo trì
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
        
        Tóm tắt nội dung tài liệu: Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh

Mô hình phát triển phần mềm(2) Lê Thị Mỹ Hạnh Khoa Công nghệ Thông tin Trường Đại hoc Bách khoa Đại học Đà Nẵng Lê Thị Mỹ Hạnh - Khoa CNTT 2 Nội dung  Các hoạt động phát triển phần mềm  Các mô hình phát triển phần mềm Lê Thị Mỹ Hạnh - Khoa CNTT 3 Các hoạt động phát triển phần mềm  Phân tích tính khả thi  Phân tích và đặc tả yêu cầu  Thiết kế  Mã hóa  Kiểm thử  Bảo trì Lê Thị Mỹ Hạnh - Khoa CNTT 4 Các hoạt động phát triển phần mềm  Phân tích tính khả thi  Xác định những vấn đề cần giải quyết,  Xem xét các giải pháp và kỹ thuật khác nhau  Thuận lợi  Bất lợi  Đánh giá về thời gian, giá thành, nguồn tài nguyên cần thiết  Sản phẩm: tài liệu phát triển Lê Thị Mỹ Hạnh - Khoa CNTT 5 Các hoạt động phát triển phần mềm  Phân tích và đặc tả yêu cầu (1)  Xác định nhu cầu của khách hàng/người sử dụng  Xác định bài tóan, chứ không phải là giải pháp  Khó khăn  Khách hàng không biết cái họ cần  Khách hàng không biết bày tỏ cái mình muốn  Các thay đổi  Sản phẩm: tài liệu đặc tả yêu cầu Lê Thị Mỹ Hạnh - Khoa CNTT 6 Các hoạt động phát triển phần mềm  Phân tích và đặc tả yêu cầu (2)  các bước  Khảo sát, tổng hợp yêu cầu  Phân tích yêu cầu  Đặc tả yêu cầu  Hợp thức hóa yêu cầu Lê Thị Mỹ Hạnh - Khoa CNTT 7 Các hoạt động phát triển phần mềm  Phân tích và đặc tả yêu cầu (2) Lê Thị Mỹ Hạnh - Khoa CNTT 8 Các hoạt động phát triển phần mềm  Thiết kế (1)  Chuyển từ tài liệu các yêu cầu thành cấu trúc logic có thể cài đặt được  Giải pháp cho vấn đề đã được đặt tả  Thiết kế kiến trúc  Các mô-đun và giao diện các mô đun  Thiết kế giao diện  Thiết kế các mô-đun  Cấu trúc dữ liêu  Thuật tóan  Sản phẩm: tài liệu thiết kế Lê Thị Mỹ Hạnh - Khoa CNTT 9 Các hoạt động phát triển phần mềm  Thiết kế (2) Lê Thị Mỹ Hạnh - Khoa CNTT 10 Các hoạt động phát triển phần mềm  Thiết kế (3)  Các phương pháp thiết kế  Thiết kế hướng chức năng  Thiết kế hướng đối tượng Lê Thị Mỹ Hạnh - Khoa CNTT 11 Các hoạt động phát triển phần mềm  Mã hóa và gỡ rối  mã hóa  Cài đặt các thiết kế bằng ngôn ngữ lập trình  Không đơn thuần chr là lập trình  Viết tài liệu  insertions/invariants  Chuẩn lập trình (coding standards)  Lập trình theo cặp (pair programming)  Công cụ  Quản lý phiên bản  Gỡ rối  Phát hiện các lỗi trong quá trình lập trình  Sản phẩm: chương trình Lê Thị Mỹ Hạnh - Khoa CNTT 12 Các hoạt động phát triển phần mềm  Kiểm thử (1)  Phát hiện lỗi trong chương trình  Lập kế hoạch thực hiện kiểm thử  Tạo các trường hợp kiểm thử  Tiêu chuẩn kiểm thử  Nguồn tài nguyên kiểm thử  Mã nguồn được kiểm thử theo tài liệu thiết kế  Sản phẩm: báo cáo kiểm thử Lê Thị Mỹ Hạnh - Khoa CNTT 13 Các hoạt động phát triển phần mềm  Kiểm thử (2)  các hoạt động kiểm thử  Kiểm thử đơn vị  Kiểm thử tích hợp  Kiểm thử hệ thống  Kiểm thử chấp nhận  Các phương pháp kiểm thử  Kiểm thử tĩnh  Kiểm thử động  Kiểm thử hộp trắng  Kiểm thử hộp đen Lê Thị Mỹ Hạnh - Khoa CNTT 14 Các hoạt động phát triển phần mềm  Bảo trì  Bảo đảm các chương trình vận hành tốt  Cài đặt các thay đổi  Cài đặt các yêu cầu mới  Xử lý lỗi khi vận hành  Sản phẩm: chương trình Lê Thị Mỹ Hạnh - Khoa CNTT 15 Các mô hình phát triển phần mềm  Sự tổ chức các hoạt động phát triển phần mềm  Mô hình phát triển phần mềm hay tiến trình phát triển phần mềm  Có nhiều mô hình phát triển phần mềm  Mô hình thác nước  Mô hình nguyên mẫu  Mô hình chữ V  Mô hình tiến hóa  Mô hình xoắn ốc  Mô hình hợp nhất Lê Thị Mỹ Hạnh - Khoa CNTT 16 Các mô hình phát triển phần mềm  Mô hình thác nước Lê Thị Mỹ Hạnh - Khoa CNTT 17 Các mô hình phát triển phần mềm  Mô hình thác nước  Mô hình thác nước:  Có sớm nhất và được sử dụng rộng rãi  Thích hợp khi yêu cầu hiểu tốt  Bảo trì thuận lợi  Tách biệt giữa các pha, tiến hành tuần tự  Chậm có phiên bản thực hiện được  Đặc tả kỹ, phân công chuyên trách – hướng tài liệu Lê Thị Mỹ Hạnh - Khoa CNTT 18 Các mô hình phát triển phần mềm  Mô hình nguyên mẫu Lê Thị Mỹ Hạnh - Khoa CNTT 19 Các mô hình phát triển phần mềm  Mô hình nguyên mẫu (2)  Ưu điểm  phát hiện yêu cầu  Hợp thức hóa yêu cầu  Thiết kế giao diện  Giao diện trên giấy  Giao diện “thật”  Hệ thông rủi ro cao  Yêu câu không chắc chắn  Giao diên chưa rõ ràng  Chiến lược cài đặt chưa rõ ràng Lê Thị Mỹ Hạnh - Khoa CNTT 20 Các mô hình phát triển phần mềm  Mô hình nguyên mẫu (3)  Hạn chế  Khách hàng có thể cho rằng nguyên mẫu là hệ thống thực  Mong đợi không thực tế về tiến triển của dự án  Người phát triển có sự lựa chọn không tốt  Phù hợp cho nguyên mẫu nhưng không phù hợp cho hệ thống thực  Xây dựng hệ thống thực như xây dựng nguyên mẫu  Nguyên mẫu không giống hoàn toàn hệ thống cuối cùng  Khách hàng sẽ có các phản ứng khác nhau Lê Thị Mỹ Hạnh - Khoa CNTT 21 Các mô hình phát triển phần mềm  Mô hình chữ V  Nhấn mạnh vai trò kiểm thử Đặc tả yêu cầu Thiết kế kiến trúc Thiết kế chi tiết Mã hóa Kiểm thử hệ thống Kiểm thử tích hợp Kiểm thử đơn vị Lê Thị Mỹ Hạnh - Khoa CNTT 22 Các mô hình phát triển phần mềm  Mô hình tiến hóa (evolutionary model) Lê Thị Mỹ Hạnh - Khoa CNTT 23 Các mô hình phát triển phần mềm  Mô hình tiến hóa  Ưu điểm  Dự án vừa và nhỏ  Các phần của dự án phức tạp  Các hệ thống có thời gian sống ngắn  Hạn chế  Cấu trúc của hệ thống tồi  Tiến trình không rõ ràng Lê Thị Mỹ Hạnh - Khoa CNTT 24 Các mô hình phát triển phần mềm  Mô hình phát triển lặp lại, tăng thêm  Mô hình này được đề xuất dựa trên ý tưởng thay vì phải xây dựng và chuyển giao hệ thống một lần thì sẽ được chia thành nhiều vòng, tăng dần. Mỗi vòng là một phần kết quả của một chức năng được yêu cầu.  Các yêu cầu của người sử dụng được đánh thứ tự ưu tiên. Yêu cầu nào có thứ tự ưu tiên càng cao thì càng ở trong những vòng phát triển sớm hơn. Lê Thị Mỹ Hạnh - Khoa CNTT 25 Các mô hình phát triển phần mềm  Mô hình phát triển lặp lại, tăng thêm  ưu điểm  Sau mỗi lần tăng vòng thì có thể chuyển giao kết quả thực hiện được cho khách hàng nên các chức năng của hệ thống có thể nhìn thấy sớm hơn.  Các vòng trước đóng vai trò là mẫu thử để giúp tìm hiểu thêm các yêu cầu ở những vòng tiếp theo.  Những chức năng của hệ thống có thứ tự ưu tiên càng cao thì sẽ được kiểm thử càng kỹ. Lê Thị Mỹ Hạnh - Khoa CNTT 26 Các mô hình phát triển phần mềm  Mô hình xoắn ốc (Spiral Model) Lê Thị Mỹ Hạnh - Khoa CNTT 27 Các mô hình phát triển phần mềm  Mô hình xoắn ốc (Spiral Model)  Nhấn mạnh việc đánh giá rủi ro  Phần mềm được xây dựng theo nhiều chu kì  Mỗi chu kì tương ứng với một sản phẩm của một giai đoạn phát triển phần mềm  Xác định các mục tiêu, giải pháp, ràng buộc  Đánh giá các giải pháp, xác định các nguy cơ và tìm cách giải quyết chúng  Phát triển và kiểm thử sản phẩm của chu kì này  Lập kế hoạch cho chu kì tiếp theo Lê Thị Mỹ Hạnh - Khoa CNTT 28 Các mô hình phát triển phần mềm  Mô hình xoắn ốc  Rủi ro và giải pháp cho rủi ro  Thất bại về nhân sự  Tuyển dụng nhân sự cao cấp, đào tạo lẫn nhau, có đầy đủ nhân sự với các chức năng khác nhau.  Thời gian biểu và ngân sách không thực tế  Đánh giá thật chi tiết và phát triển dần dần, tái sử dụng, loại bỏ bớt các yêu cầu thật không cần thiết,  Phát triển các chức năng không phù hợp  Trao đổi thường xuyên với người sử dụng có tài liệu hướng dẫn sử dụng sớm,..  Phát triển giao diện người dùng không thích hợp  Cần phân tích các công việc, xây dựng các hình mẫu trước,..  Thiếu yêu cầu đặt ra  Phát triển các phần ổn định trước  Vần đề về hiệu quả  Cần phải mô phỏng, đo lường và thử nghiệm,..  Đòi hỏi vượt quá sự đáp ứng của công nghệ hiện hành Lê Thị Mỹ Hạnh - Khoa CNTT 29 Các mô hình phát triển phần mềm  Mô hình xoắn ốc  Ưu điểm  Hạn chế rủi ro sớm  Nhận được feedbacks từ khách hàng sớm  Dự án lớn, phức tạp  Hệ thống cần phát triển nhiều phiên bản  Nhược điểm  Yêu cầu chưa xác định rỏ ràng. Lê Thị Mỹ Hạnh - Khoa CNTT 30 Các mô hình phát triển phần mềm  Mô hình xoắn ốc WINWIN  Nhằm thỏa hiệp giữa người phát triển và khách hàng, cả hai cùng “Thắng” (win-win)  Khách thì có phần mềm thỏa mãn yêu cầu chính  Người phát triển thì có kinh phí thỏa đáng và thời gian hợp lý  Các hoạt động chính trong xác định hệ thống:  Xác định cổ đông (stakeholders)  Xác định điều kiện thắng của cổ đông  Thỏa hiệp điều kiện thắng của các bên liên quan Lê Thị Mỹ Hạnh - Khoa CNTT 31 Các mô hình phát triển phần mềm Mô hình xoắn ốc WINWIN 1. Xác định mức tiếp của cổ đông 2. Xác định điều kiện thắng của cổ đông 3a. Hòa hợp điều kiện thắng 3b. Thiết lập mục tiêu mức tiếp và các ràng buộc, dự kiến 4. Đánh giá tiến trình và dự kiến sản phẩm, giải quyết rủi ro 5. Xác định mức tiếp của sản phâm và quy trình, kể cả phân chia nhỏ 7. Xét duyệt và đánh giá 6. Kiểm định sản phẩm và quy trình Lê Thị Mỹ Hạnh - Khoa CNTT 32 Các mô hình phát triển phần mềm  Mô hình phát triển đồng thời (The concurrent development model)  Xác định mạng lưới những hoạt động đồng thời (Network of concurrent activities)  Các sự kiện (events) xuất hiện theo điều kiện vận động trạng thái trong từng hoạt động  Dùng cho mọi loại ứng dụng và cho hình ảnh khá chính xác về trạng thái hiện trạng của dự án  Thường dùng trong phát triển các ứng dụng khách/chủ (client/server applications): system and componets are developed concurrently Lê Thị Mỹ Hạnh - Khoa CNTT 33 Các mô hình phát triển phần mềm  Công nghệ phần mềm dựa thành phần  Mô hình này dựa trên kỹ thuật tái sử dụng một cách có hệ thống  hệ thống được tích hợp từ nhiều thành phần đang tồn tại hoặc các thành phần thương mại COTS (Commercial-Off-The-Shelf). Lê Thị Mỹ Hạnh - Khoa CNTT 34 Các mô hình phát triển phần mềm  Công nghệ phần mềm dựa thành phần  Các trạng thái chính của quy trình bao gồm:  Phân tích thành phần sẵn có  Điều chỉnh yêu cầu  Thiết kế hệ thống với kỹ thuật tái sử dụng  Xây dựng và tích hợp hệ thống Lê Thị Mỹ Hạnh - Khoa CNTT 35 Các mô hình phát triển phần mềm  Mô hình theo thành phần(Component-based model)  Gắn với những công nghệ hướng đối tượng (Object- oriented technologies) qua việc tạo các lớp (classes) có chứa cả dữ liệu và giải thuật xử lý dữ liệu  Có nhiều tương đồng với mô hình xoắn ốc  Với ưu điểm tái sử dụng các thành phần qua Thư viện / kho các lớp: tiết kiệm 70% thời gian, 80% giá thành, chỉ số sản xuất 26.2/16.9  Với UML như chuẩn công nghiệp đang triển khai Lê Thị Mỹ Hạnh - Khoa CNTT 36 Các mô hình phát triển phần mềm Mô hình theo thành phần Giao tiếp khách hàng Lập kế hoạch Phân tích rủi ro Kỹ nghệ Xây dựng & Xuất xưởng Khách hàng đánh giá Xác định thành phần ứng viên Tìm thành phần từ thư viện Lấy thành phần nếu có Xây dựng thành phần nếu kh.có Đặt thành phần vào thư viện Xây dựng bước lặp thứ n của hệ thống Lê Thị Mỹ Hạnh - Khoa CNTT 37 Các mô hình phát triển phần mềm  Mô hình hình thức (Formal model)  Còn gọi là CNHPM phòng sạch (Cleanroom SE)  Tập hợp các công cụ nhằm đặc tả toán học phần mềm máy tính từ khâu định nghĩa, phát triển đến kiểm chứng  Giúp kỹ sư phần mềm phát hiện và sửa các lỗi khó  Thường dùng trong phát triển SW cần độ an toàn rất cao (y tế, hàng không, . . .) Lê Thị Mỹ Hạnh - Khoa CNTT 38 Các mô hình phát triển phần mềm  Mô hình hình thức: Điểm yếu ?  Cần nhiều thời gian và công sức để phát triển  Phí đào tạo cao vì ít người có nền căn bản cho áp dụng mô hình hình thức  Khó sử dụng rộng rãi vì cần kiến thức toán và kỹ năng của khách hàng Lê Thị Mỹ Hạnh - Khoa CNTT 39 Các mô hình phát triển phần mềm  Mô hình hợp nhất  Tiến trình hợp nhất có thể được nhìn dưới hai góc nhìn khác nhau  Góc nhìn quản lý:quan tâm đến lĩnh vực kinh tế, chiến thuật, con người  Tiền trình gồm 4 giai đoạn  Góc nhìn kỹ thuật: quan tâm đến công nghệ, kiểm tra chất lượng, phương pháp  Tiến trình gồm nhiều bước lặp Lê Thị Mỹ Hạnh - Khoa CNTT 40 Các mô hình phát triển phần mềm  Mô hình hợp nhất  Góc nhìn quản lý Lê Thị Mỹ Hạnh - Khoa CNTT 41 Các mô hình phát triển phần mềm  Mô hình hợp nhất  Góc nhìn kỹ thuật: các bước lặp  Đặc tả  Phân tích  Thiết kế  Mã hóa  Kiểm thử  Cài đặt  Mỗi bước lặp là một tiến trình thác đổ Lê Thị Mỹ Hạnh - Khoa CNTT 42 Các mô hình phát triển phần mềm  Mô hình hợp nhất  Góc nhìn kỹ thuật T h ờ i g ia n Lê Thị Mỹ Hạnh - Khoa CNTT 43 Các mô hình phát triển phần mềm  Mô hình hợp nhất  Kết hợp hai góc nhìn Lê Thị Mỹ Hạnh - Khoa CNTT 44 Các mô hình phát triển phần mềm  Mô hình hợp nhất và UML Lê Thị Mỹ Hạnh - Khoa CNTT 45 Các mô hình phát triển phần mềm  Kết luận  Có nhiều mô hình phát triển phần mềm  Kết hợp nhiều mô hình cho một dự án  Hệ thống phức tạp, chia dự án thành các hệ thống con  Mô hình xoắn ốc hay mô hình hợp nhất cho toàn bộ dự án  Mỗi hệ thống con có thể áp dụng một mô hình khác nhau  Mô hình nguyên mẫu cho các hệ thống con phức tạp  Mô hình thác nước cho các hệ thống con khác
File đính kèm:
 bai_giang_mo_hinh_phat_trien_phan_mem_le_thi_my_hanh.pdf bai_giang_mo_hinh_phat_trien_phan_mem_le_thi_my_hanh.pdf




