Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển - Nguyễn Thanh Bình

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 toán, chứ không phải là giải pháp khó khăn • khách hàng không biết rỏ cái họ cần • khách hàng không trình bày rỏ cái họ muốn • các thay đổi Sản phẩm: tài liệu đặc tả yêu cầu

pdf18 trang | Chia sẻ: thanhle95 | Lượt xem: 540 | Lượt tải: 0download
Bạn đang xem 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 - Nguyễn Thanh Bình, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Mô hình phát triển (2) Nguyễn Thanh Bình Khoa Công nghệ Thông tin Trường ðại học Bách khoa ðại học ðà Nẵng 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 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ì 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 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ân tích CuuDuongThanCong.com https://fb.com/tailieudientucntt 35 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 toán, chứ không phải là giải pháp  khó khăn • khách hàng không biết rỏ cái họ cần • khách hàng không trình bày rỏ cái họ muốn • các thay ñổi  Sản phẩm: tài liệu ñặc tả yêu cầu 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 47 Các hoạt ñộng phát triển phần mềm  Phân tích và ñặc tả yêu cầu (3) Tổng hợp và phân tích yêu cầu ðặc tả yêu cầu Hợp thức hóa yêu cầu Mô hình hệ thống Yêu cầu hệ thống của người sử dụng Tài liệu ñặc tả yêu cầu 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 tả yêu cầu thành cấu trúc lô-gíc có thể cài ñặt ñược  giải pháp cho vấn ñề ñã ñược ñặc tả  thiết kế kiến trúc • các moñun và giao diện của 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 toán  Sản phẩm: tài liệu thiết kế CuuDuongThanCong.com https://fb.com/tailieudientucntt 59 Các hoạt ñộng phát triển phần mềm  Thiết kế (2) Thiết kế kiến trúc ñặc tả kiến trúc Thiết kế mô-ñun Thiết kế cấu trúc dữ liệu Thiết kế thuật toán ñặc tả mô-ñun ñặc tả cấu trúc dữ liệu ñặc tả thuật toán Thiết kế giao diện ñặc tả giao diện 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ế • hướng chức năng • hướng ñối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 611 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 chỉ 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 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ử CuuDuongThanCong.com https://fb.com/tailieudientucntt 713 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 14 Các hoạt ñộng phát triển phần mềm  Kiểm thử (3)  các phương pháp kiểm thử • kiểm thử tĩnh • kiểm thử ñộng • kiểm thử hộp ñen • kiểm thử hộp trắng CuuDuongThanCong.com https://fb.com/tailieudientucntt 815 Các hoạt ñộng phát triển phần mềm  Bảo trì  bảo ñảm 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ý các lỗi khi vận hành  Sản phẩm: chương trình 16 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 V  mô hình tiến hóa  mô hình xoắn ốc  mô hình hợp nhất CuuDuongThanCong.com https://fb.com/tailieudientucntt 917 Mô hình thác nước (waterfall model) 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 và kiểm thử Cài ñặt và bảo trì 18 Mô hình thác nước  Ưu ñiểm  dự án nhỏ  yêu cầu xác ñịnh  Nhược ñiểm  dự án lớn  thời gian  sửa lỗi  yêu cầu thay ñổi CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 19 Mô hình nguyên mẫu (prototyping model) Phân tích yêu cầu Thiết kế nhanh Xây dựng nguyên mẫu ðánh giá Thiết kế 20 Mô hình nguyên mẫu  Ư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 có 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 11 21 Mô hình nguyên mẫu  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ự chọn lựa 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 22 Mô hình V (V model)  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ị CuuDuongThanCong.com https://fb.com/tailieudientucntt 12 23 Mô hình tiến hóa (evolutionary model) ðặc tả Phát triển Hợp thức hóa Phiên bản ñầu tiên Phiên bản trung gian Phiên bản cuối cùng 24 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 hệ thống tồi  tiến trình không rỏ ràng CuuDuongThanCong.com https://fb.com/tailieudientucntt 13 25 Mô hình xoắn ốc (spiral model) Risk analysis Risk analysis Risk analysis Risk analysis Proto- type 1 Prototype 2 Prototype 3 Opera- tional protoype Concept of Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integration testAcceptance testService Develop, verify next-level product Evaluate alternatives identify, resolve risks Determine objectives alternatives and constraints Plan next phase Integration and test plan Development plan Requirements plan Life-cycle plan REVIEW 26 Mô hình xoắn ốc  nhấn mạnh việc ñánh giá các 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14 27 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 ñủ các nhân sự với 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, phát triển dần dần, tái sử dụng, loại bỏ bớt các yêu cầu 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, thử nghiệm...  ñòi hỏi vượt quá sự ñáp ứng của công nghệ hiên hành • phân tích kỹ tính khả thi về mặt kỹ thuật 28 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  yêu cầu chưa xác ñịnh rỏ ràng CuuDuongThanCong.com https://fb.com/tailieudientucntt 15 29 Mô hình hợp nhất (unified process)  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 bốn 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 30 Mô hình hợp nhất  Góc nhìn quản lý Khởi ñầu Inception Soạn thảo Elaboration Xây dựng Construction Chuyển giao Transition Vấn ñề Giải phápðặt vấn ñề Giải quyết vấn ñề Thực hiện Thời gian CuuDuongThanCong.com https://fb.com/tailieudientucntt 16 31 Mô hình hợp nhất  Góc nhìn kỹ thuật: các bước lặp  Mỗi bước lặp gồm các hoạt ñộng: • ðặ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 ñổ 32 Mô hình hợp nhất  Góc nhìn kỹ thuật Thời gian Bước lặp chuẩn bị Bước lặp kiến trúc Bước lặp kiến trúc Bước lặp phát triển Bước lặp phát triển Bước lặp chuyển giao Bước lặp chuyển giao Bước lặp phát triển Mẫu thử (maquette) Nguyên mẫu kiến trúc Nguyên mẫu kiến trúc Nguyên mẫu phát triển Nguyên mẫu phát triển Bước lặp Kết quả Phiên bản chính thức Phiên bản β Phiên bản β CuuDuongThanCong.com https://fb.com/tailieudientucntt 17 33 Mô hình hợp nhất  Kết hợp hai góc nhìn Thời gian Bước lặp chuẩn bị Bước lặp kiến trúc Bước lặp kiến trúc Bước lặp phát triển Bước lặp phát triển Bước lặp chuyển giao Bước lặp chuyển giao Bước lặp phát triển Mẫu thử (maquette) Nguyên mẫu kiến trúc Nguyên mẫu kiến trúc Nguyên mẫu phát triển Nguyên mẫu phát triển Phiên bản chính thức Phiên bản β Bước lặp Kết quả Phiên bản β Giai ñoạn Khởi ñầu Soạn thảo Xây dựng Chuyển giao 34 Mô hình hợp nhất  Mô hình hợp nhất và UML CuuDuongThanCong.com https://fb.com/tailieudientucntt 18 35 Kết luận  Có nhiều mô hình phát triển phần mềm  mô hình tuyến tính • mô hình thác nước • mô hình nguyên mẫu • mô hình V  mô hình lặp • mô hình tiến hóa • mô hình xoắn ốc • mô hình hợp nhất 36 Kết luận  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 CuuDuongThanCong.com https://fb.com/tailieudientucntt