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