NHẬP MÔN CÔNG NGHỆ PHẦN MỀM (INTRODUCTION TO SOFTWARE ENGINEERING) 1 1 Chương 2 Vòng đời phần mềm • 1 Định nghĩa • 2 Quy trình phát triển phần mềm • 3 Một số mô hình phát triển phần mềm – 3 1 Mô hình[.]
Chương 2: Vịng đời phần mềm • Định nghĩa • Quy trình phát triển phần mềm • Một số mơ hình phát triển phần mềm NHẬP MƠN CƠNG NGHỆ PHẦN MỀM (INTRODUCTION TO SOFTWARE ENGINEERING) 3.1 Mơ hình CMM 3.2 Mơ hình tuyến tính 3.3 Mơ hình chế thử 3.4 Mơ hình phát triển ứng dụng nhanh 3.5 Các mơ hình tiến hóa 3.6 Mơ hình hướng thành phần 3.7 Mơ hình RUP 3.8 Các kỹ thuật hệ thứ ng c om – – – – – – – – co • Đánh giá sản phẩm quy trình an ng th Vòng đời phần mềm du o Chương 2: Vòng đời phần mềm 2.1 Định nghĩa (Vòng đời phần mềm) • Mọi sản phẩm phần mềm có vịng đời • Vịng đời thường dài — số sản phẩm phần mềm “tồn tại” 30 năm cu u – Vòng đời phần mềm thời kỳ tính từ phần mềm sinh (tạo) chết (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng loại bỏ khơng đâu dùng) – Quy trình phần mềm (vịng đời phần mềm) phân chia thành pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì Biểu diễn pha có khác theo người • Vịng đời rút ngắn tiến công nghệ 3 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các phương pháp luận kỹ thuật cho pha Các pha vịng đời PM • Một cách rõ ràng rõ ràng, tất sản phẩm phần mềm trải qua giai đoạn sau: Tên pha Nội dung nghiệp vụ Phương pháp, kỹ thuật Xác định yêu cầu Thiết kế hệ thống Đặc tả yêu cầu người dùng Xác định yêu cầu phần mềm Thiết kế phần mềm Thiết kế cấu trúc phần mềm Là thiết kế chi tiết: Thiết kế cấu trúc bên Thiết kế phần mềm (đơn vị chương trình chương trình mơđun) c om – Yêu cầu — xác định nhu cầu khách hàng ràng buộc sản phẩm – Thiết kế — xác định cấu trúc / tổ chức hệ thống phần mềm] – Mã hóa — viết phần mềm – Kiểm thử — vận hành hệ thống để tìm loại bỏ khiếm khuyết – Bảo trì — sửa chữa nâng cao sản phẩm sau khách hàng triển khai co ng Lập trình Đảm bảo chất lượng Vận hành Bảo trì an Kiểm tra chất lượng phần mềm phát triển Sử dụng, vận hành phần mềm phát triển Biến đổi, điều chỉnh phần mềm Thiết kế cấu trúc hóa Lập trình cấu trúc Phương pháp Jackson Phương pháp Warnier Mã hóa cấu trúc hóa Phương pháp kiểm thử chương trình Chưa cụ thể 6 ng th Mã hóa ngơn ngữ lập trình Phân tích cấu trúc hóa Quy trình phát triển phần mềm du o Các mơ hình vịng đời phần mềm • Q trình tập hợp hoạt động, với đầu vào đầu xác định rõ ràng, để hoàn thành số nhiệm vụ • Mơ hình vịng đời mơ tả trình thực sản phẩm phần mềm tồn phần vịng đời u Khung quy trình chung (Common process framework) cu Hoạt động khung (Framework activities) Tập tác vụ (Task sets) Tác vụ (Tasks) – Các mơ hình vịng đời có xu hướng tập trung vào pha chu kỳ mối quan hệ chúng với pha khác – Các nghiên cứu gần quy trình phần mềm xem xét chi tiết nhiều khía cạnh việc phát triển bảo trì – Mơ hình vịng đời mơ tả quy trình phần mềm, thuật ngữ mơ hình vịng đời có trước thảo luận quy trình phần mềm Điểm quan trọng (milestones),sản phẩm chuyển giao (deliverables) Điểm Kiểm Tra Chất Lượng (SQA points) Các hoạt động giám sát, đánh giá kỹ thuật, đảm bảo chất lượng phần mềm, quản lý cấu hình, quản lý rủi ro, (Umbrella activities) 7 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số mô hình phát triển PM 3.1 Mơ hình khả thục Tại phải sử dụng mơ hình CMM công nghệ làm phần mềm? 3.1 Capability Maturity Model (CMM by SEI): Mơ hình khả thục Khó khăn khơng sử dụng CMM • • Các tiến trình phần mềm thường bị thay đổi cập nhật mà chuần bị trước • Đặc tả tiến trình phần mềm khơng chặt chẽ, dẫn đến khủng hoảng thực dự án .c om – Các khái niệm – Tại sử dụng mơ hình CMM – Các thức sử dụng mơ hình co ng • an Thiếu sở để đánh giá chất lượng phần mềm, để đưa phương thức tiến hành cách giải vấn đề phát sinh Thuận lợi sử dụng CMM • Dễ dàng quản lý phát triển phần mềm Các tiến trình cập nhật qua điều khiển nhà phần tích kiểm thử • Vai trị, trách nhiệm thành viên tiến trình phân định rõ ràng • Quản lý chất lượng phần mềm, thoả mãn yêu cầu khách hàng Có sơ chuẩn xác đánh giá chất lượng, thời gian, chi phí phân tích dự án tiến trình 10 10 ng th • Thực thi tiến trình phần mềm Các khái niệm CMM du o (Software Process Performance) • Tiến trình (Process) • Thực thi tiến trình phần mềm cho biết kết thực tế tiến trình phần mềm • Hướng tới kết đạt cịn khả tiến trình phần mềm cho thấy kết mong đợi • Do phụ thuộc vào đặc trưng dự án trường hợp cụ thể, nên kết thực tế thường không phản ánh đầy đủ khả tiến trình cơng ty cu u – Một tiến trình phần mềm tập hợp hành động, phương thức, thực hành, thay đổi mà người ta dùng để trì phát triển phần mềm thành phần liên quan tới chúng (ví dụ: kế hoạch dự án, thiết kế, lập trình, kiểm thử, tài liệu hướng dẫn ) • Khả tiến trình phần mềm (Software Process Capability) – Cho biết phạm vi kết mong đợi tiến trình phần mềm – Dự đốn khả làm dự án phần mềm cơng ty 11 11 12 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Mơ hình chi tiết thành phần cấu trúc CMM Độ thục tiến trình PM (Software process maturity) Mức độ thục • Chỉ rõ tiến trình phần mềm xác định, quản lý, đánh giá, điều khiển, đạt hiệu cách rõ ràng • Cho biết khả phát triển, giá trị tiến trình phần mềm, tính vững dự án nhận từ Các vùng tiến trình c om Khả tiến trình tổ chức Các tính phổ biến đạt Các thực hành ánh xạ Các mục tiêu ng Thực thi thể chế hố 14 14 Tiến trình dự đốn Tiến trình ổn định, chuẩn Tiến trình có kỷ luật Ban đầu (1) Có cải tiến hơn, chiến lược quản lý dự án vµ thủ tục để thực thi chiến lược thiết lập Các kế hoạch quản lý dự án dựa kinh nghiệm dự án cũ Cải tiến (5) cu tiến trình cải tiến liên tục u Tiến trình phần mềm mang tính chất tuỳ tiện, lộn xộn, có tiến trình xác định trước, hiệu cơng việc mang tính riêng lẻ Khó có mơi trường làm việc ổn định Kế hoạch ngân sách, chất lượng sản phẩm vận hành khơng thể dự đốn trước Mơ hình mức CMM du o Mơ hình mức CMM ng th 13 mô tả Cơ sỏ hạ tầng hoạt động co an 13 nhận từ Tiến trình dự đốn Được quản lý (4) Tiến trình ổn định, chuẩn Được định nghĩa (3) Có tính lặp lại (2) Tiến trình cải tiến liên tục Tiến trình có kỷ luật Q trình vận hành phụ thuộc vào khả cá nhân riêng lẻ, thường xuyên thay đổi phụ thuộc vào kỹ năng, trình độ hiểu biết hoạt động thành viên dự án Ban đầu (1) Được quản lý (4) Được định nghĩa (3) Có tính lặp lại (2) Kết đưa hiệu quản lý tiến trình dự án nµy vào dự án khác Điều cho phép lặp lại (repeatable) thành công dự án tương tự dự án có điểm khác biệt 15 15 16 16 CuuDuongThanCong.com Cải tiến (5) https://fb.com/tailieudientucntt Mơ hình mức CMM Tiến trình cải tiến liên tục Tiến trình dự đốn Được quản lý (4) Tiến trình ổn định, chuẩn Được định nghĩa (3) Có tính lặp lại (2) Ban đầu (1) Tiến trình có kỷ luật Một tiến trình định nghĩa tốt gồm có tính chất có tiêu chuẩn, đầu vào, tiêu chuẩn thủ tục rõ ràng để tiến hành công việc, kiểm tra đầu ng Tiến trình có kỷ luật Cải tiến (5) co Tiến trình ổn định, chuẩn Mục tiêu điều khiển tiến trình Các tiến trình phần mềm quản lý để vận hành ổn định, an tồn Có đánh giá phần mềm chất lượng, hiệu hoạt động tiến trình .c om Lập tài liệu tiến trình tiêu chuẩn việc phát triển bảo trì phần mềm có tổ chức, bao gồm công nghệ phần mềm, tiến trình quản lý, tiến trình tích hợp với (nghĩa đầu tiến trình đầu vào tiến trình ) Mơ hình mức CMM an 17 Tiến trình dự đoán Cải tiến (5) Được quản lý (4) Được định nghĩa (3) Có tính lặp lại (2) Do tiến trình ổn định đánh giá nên có trường hợp ngoại lệ, xác định rõ nguyên nhân gây biến đổi Ban đầu (1) 18 18 th 17 Tiến trình cải tiến liên tục Tiến trình dự đốn Tiến trình ổn định, chuẩn Tiến trình có kỷ luật ng LEVEL 2: Có thể lặp Quản lý cấu hình phần mềm Đảm bảo chất lượng phần mềm Quản lý hợp đồng phần mềm Theo dõi giám sát dự án phần mềm Lập kế hoạch dự án phần mềm Quản lý yêu cầu Cải tiến (5) cu Tiến trình cải tiến liên tục u Tiếp tục cải tiến tiến trình, xác định điểm mạnh điểm yếu tiến trình, có khả phân tích khiếm khuyết, xác định nguyên nhân gây để tránh khiếm khuyết 18 Vùng tiến trình KPA (Key Process Area) du o Mơ hình mức CMM Được quản lý (4) Được định nghĩa (3) Có tính lặp lại (2) Xem xét ngang Hợp tác nhóm Kỹ thuật sản phẩm phần mềm 10 Quản lý phần mềm tích hợp 11 Chương trình huấn luyện 12 Định nghĩa tiến trình tổ chức 13 Trọng tâm tiến trình tổ chức 14 Quản lý chất lượng phần mềm 15 Quản lý trình định lượng 16 Quản lý thay đổi tiến trình 17 Quản lý thay đổi cơng nghệ 18 Phịng ngừa khiêm khuyết MỨC 3: Được định nghĩa MỨC 4: Được quản lý Ban đầu (1) MỨC 5: Cải tiến 19 19 20 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt Khả nhìn nhận mức thục Khả tiến trình dự đốn theo mức CMM co ng c om • Khi mức độ thục tăng, sai khác kết đạt kết dự tính giảm xuống • Khi mức độ thục tăng, độ biến động kết thực tế so với kết đề giảm xuống • Khi mức độ thục tăng kết cải thiện Đó là, chi phí giảm, thời gian phát triển ngắn hơn, chất lượng suất tăng an 21 22 th 21 22 ng Những điểm chung phương thức sử dụng CMM du o Cách thức sử dụng mơ hình CMM • Định giá tiến trình phần mềm (Software process assessments ) xác định trạng thái tiến trình phần mềm tổ chức, xác định mức độ ưu tiên vấn đề có liên quan tới tiến trình phần mềm xử lý chúng xây dựng hệ thống hỗ trợ phát triển tiến trình phần mềm • Đánh giá khả phần mềm (Software capability evaluations) xác định nhà thầu có đủ tư cách triển khai dự án phần mềm quản lý trạng hệ thống phần mềm có sẵn u Lựa chọn đội cu (1) (2) (3) Hồ sơ KPA Thăm chỗ Tìm kiếm Phỏng vấn xem xét tài liệu Dựa CMM (4) (5) (6) 24 CuuDuongThanCong.com Phân tích trả lời Các mẫu CMM 23 23 Câu hỏi thục https://fb.com/tailieudientucntt 24 3.2 Mơ hình tuyến tính Mơ hình tuyến tính Tạo mã / lập trình (Code generation / programming): Chuyển thiết kế thành chương trình máy tính ngơn ngữ Nếu thiết kế chi tiết hóa lập trình túy học c om • Cơng nghệ học Hệ thống / Thơng tin mơ hình hóa (System / Information engineering and modeling): thiết lập yêu cầu, ánh xạ số tập yêu cầu sang phần mềm trình tương tác phần cứng, người CSDL Phân tích Thiết kế Lập trình Kiểm thử ng Phân tích co Cơng nghệ học Hệ thống / Thơng tin an 25 Lập trình Kiểm thử Công nghệ học Hệ thống / Thông tin 26 26 Điểm yếu Mơ hình tuyến tính du o Mơ hình tuyến tính ng th 25 Thiết kế Kiểm thử (Testing): Kiểm tra chương trình mơđun lơgic bên chức bên ngồi, nhằm phát lỗi đảm bảo với đầu vào xác định cho kết mong muốn • Thực tế dự án tn theo dịng mơ hình, mà thường có lặp lại (như mơ hình Boehm) • Khách hàng tun bố rõ ràng xong hết yêu cầu cu u • Hỗ trợ / Bảo trì (Support / Maintenance): Đáp ứng thay đổi, nâng cấp phần mềm phát triển thay đổi môi trường, nhu cầu Phân tích Thiết kế Lập trình • Khách hàng phải có lịng kiên nhẫn chờ đợi thời gian định có sản phẩm Nếu phát lỗi nặng thảm họa! Kiểm thử Cơng nghệ học Hệ thống / Thông tin 27 27 28 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... có kỷ luật ng LEVEL 2: Có thể lặp Quản lý cấu hình phần mềm Đảm bảo chất lượng phần mềm Quản lý hợp đồng phần mềm Theo dõi giám sát dự án phần mềm Lập kế hoạch dự án phần mềm Quản lý yêu cầu... an 21 22 th 21 22 ng Những điểm chung phương thức sử dụng CMM du o Cách thức sử dụng mơ hình CMM • Định giá tiến trình phần mềm (Software process assessments ) xác định trạng thái tiến trình phần. .. trình phần mềm – Dự đoán khả làm dự án phần mềm công ty 11 11 12 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Mô hình chi tiết thành phần cấu trúc CMM Độ thục tiến trình PM (Software