Giáo trình Kỹ nghệ phần mềm - Bài 2: Các qui trình phần mềm (Software Processes)
Giới thiệu một số mô hình qui trình phần
mềm
• Mô tả ba mô hình tổng quát
– Và khi nào nên áp dụng chúng
• Mô tả mô hình qui trình phác thảo cho RE •
(requirements engineering), phát triển, kiểm
thử, và tiến hóa phần mềm
• Giải thích mô hình RUP (Rational Unified
Process)
• Giới thiệu một số công cụ CASE
) • Đọc thêm Chương 17 Phát triển xoáy ốc • Qui trình được thể hiện là một đường xoáy ốc – thay vì một dãy các hoạt động với quay lui • Mỗi vòng xoáy là một pha của qui trình • Không cố định số pha như đặc tả hay thiết kế – Vòng xoáy được chọn tùy theo yêu cầu • Rủi ro được đánh giá rõ ràng và giải quyết trong suốt qui trình Mô hình xoáy ốc Phân tích rủi ro Bản mẫu 1 ĐÁNH GIÁ Xác định mục tiêu, Các phương án, ràng buộc Đánh giá các phương án, Xác định và giải quyết rủi ro Bản mẫu 2 Bản mẫu 3 Bản mẫu dùng được Phân tích rủi ro Phân tích rủi ro Phân tích rủi ro Khái niệm về hoạt động Mô phỏng, mô hình hóa, thử sơ bộ Yêu cầu phần mềm Kiểm định yêu cầu Thiết kế kiểm thử Thiết kế sản phẩm Thiết kế chi tiết Lâp trình Kiểm thử đơn vị Kiểm thử tích hợpKiểm thử chấp thuậnSử dụng Kế hoạch tích hợp Và kiểm thử Kế hoạch phát triển Kế hoạch lấy yêu cầu Kế hoạch các vòng xoáy Phát triển, kiểm tra bản tiếp theo Lập kế hoạch pha tiếp theo Các phần của mô hình xoáy ốc • Xác định mục tiêu – Xác định mục tiêu cụ thể của mỗi pha • Đánh giá và giảm rủi ro • Phát triển và kiểm định – Mô hình phát triển có thể chọn bất kỳ trong các mô hình tổng quát • Kế hoạch – Đánh giá dự án, và lập kế hoạch cho pha tiếp theo Các hoạt động chính của qui trình • Đặc tả • Thiết kế và lập trình • Kiểm định • Tiến hóa Đặc tả phần mềm • Quá trình xác định dịch vụ nào cần xây dựng và các ràng buộc khi hệ thống hoạt động và trong quá trình phát triển • Qui trình kỹ nghệ lấy yêu cầu (RE) – Nghiên cứu tính khả thi – Phân tích và làm rõ yêu cầu – Đặc tả yêu cầu – Kiểm định yêu cầu Qui trình kỹ nghệ lấy yêu cầu Nghiên cứu tính khả thi Phân tích và làm rõ yêu cầu Đặc tả yêu cầu Báo cáo khả Kiểm định yêu cầu thi Mô hình hệ thống Yêu cầu người dùng và hệ thống Tài liệu yêu cầu Thiết kế và lập trình • Quá trình chuyển đặc tả hệ thống thành hệ thống chạy được • Thiết kế – Thiết kế cấu trúc phần mềm để thực hiện được đặc tả đã xác định • Lập trình (implementation – cài đặt) – Chuyển đổi cấu trúc thành chương trình chạy được • Hoạt động thiết kế và lập trình có liên quan chặt chẽ với nhau và đan xen nhau Các hoạt động thiết kế • Thiết kế kiến trúc • Đặc tả trừu tượng • Thiết kế giao diện • Thiết kế thành phần • Thiết kế cấu trúc dữ liệu • Thiết kế thuận toán Hoạt động thiết kế Qui trình thiết kế phần mềm Đặc tả Thiết kế kiến trúc Đặc tả trừu tượng Thiết kế giao diện Thiết kế thành phần Thiết kế cấu trúc dữ liệu Thiết kế thuật toán Sản phẩm thiết kế Design products Kiến trúc hệ thống Đặc tả phần mềm Đặc tả giao diện Đặc tả thành phần Đặc tả cấu trúc dữ liệu Đặc tả thuật toán Các phương pháp có cấu trúc • Phương pháp hệ thống để thiết kế phần mềm • Thiết kế thường được ghi lại là một tập các mô hình đồ họa • Một số mô hình phổ biến –Mô hình đối tượng –Mô hình tuần tự –Mô hình chuyển trạng thái –Mô hình cấu trúc –Mô hình luồng dữ liệu Lập trình và gỡ lỗi • Chuyển thiết kế thành chương trình và loại bỏ lỗi khỏi chương trình • Lập trình là hoạt động cá nhân – không có qui trình lập trình tổng quát • Lập trình viên tự kiểm thử để phát hiện lỗi và loại bỏ lỗi trong quá trình gỡ lỗi (debug) Quá trình gỡ lỗi Định vị lỗi Sửa Sửa lỗi Kiểm thử lại lỗi thiết kế chương trình Kiểm định • Kiểm chứng và kiểm định để chứng tỏ rằng – hệ thống tuân thủ đặc tả của nó và – đáp ứng yêu cầu khách hàng • Liên quan đến qui trình kiểm tra và đánh giá, và kiểm thử hệ thống • Kiểm thử hệ thống là chạy hệ thống với các ca kiểm thử – Ca kiểm thử được xác định từ đặc tả dữ liệu thực tế sẽ được hệ thống xử lý Quá trình kiểm thử Kiểm thử hệ thống Kiểm thử chấp thuận Kiểm thử thành phần Các giai đoạn kiểm thử • Kiểm thử đơn vị và kiểm thử thành phần – Các thành phần được kiểm thử độc lập – Thành phần có thể là các hàm, các đối tượng, hoặc một nhóm liên quan của các thực thể này • Kiểm thử hệ thống – Kiểm thử toàn bộ hệ thống – Kiểm thử các tính chất tổng hợp rất quan trọng • Kiểm thử chấp nhận – Kiểm thử với dữ liệu của khách hàng để kiểm tra xem hệ thống có đáp ứng yêu cầu của khách hàng không Các công đoạn của kiểm thử Đặc tả yêu cầu Đặc tả hệ thống Thiết kế hệ thống Thiết kế chi tiết Kế hoạch kiểm Kế hoạch kiểm thử tích hợp Kế hoạch kiểm thử tích hợp Mã chương thử chấp thuận hệ thống hệ thống con Kiểm thử chấp thuận Kiểm thử tích hợp hệ thống Kiểm thử tích hợp hệ thống con Phục vụ trình và kiểm thử đơn vị Tiến hóa phần mềm • Thuộc tính cố hữu của phần mềm là mềm dẻo và dễ thay đổi • Vì yêu cầu thay đổi khi hoàn cảnh nghiệp vụ thay đổi, phần mềm hỗ trợ nghiệp vụ phải tiến hóa theo thay đổi đó • Mặc dù có sự tách biệt giữa phát triển và tiến hóa (bảo trì), tách biệt này ngày càng mờ • vì càng ngày càng có ít hệ thống được phát triển mới hoàn toàn Tiến hóa hệ thống Xác định yêu cầu hệ thống Đánh giá hệ thống hiện tại Đề xuất thay đổi hệ thống Sửa đổi hệ thống Hệ thống hiện tại Hệ thống mới Qui trình thống nhất (RUP) • Một mô hình qui trình hiện đại rút ra từ việc xây dựng UML (Unified Modeling Language) • Thường được mô tả từ 3 góc độ – Góc độ động, thể hiện các pha theo thời gian – Góc độ tĩnh, thể hiện các hoạt động của qui trình – Góc độ thực tiễn, gồm các kinh nghiệm quí Mô hình tổng quát của RUP Các pha của RUP • Khởi động (Inception) – Xác lập ca nghiệp vụ (biz case) cho hệ thống • Phác thảo (Elaboration) – Hiểu phạm vi bài toán và kiến trúc hệ thống • Xây dựng (Construction) – Thiết kế, lập trình và kiểm thử hệ thống • Chuyển giao (Transition) – Triển khai trong môi trường vận hành Kinh nghiệm quí của RUP • Phát triển lặp • Quản lý yêu cầu • Sử dụng kiến trúc dựa trên thành phần • Mô hình hóa một cách trực quan • Kiểm định chất lượng • Kiểm soát thay đổi Luồng công việc tĩnh Luồng công việc Mô tả Mô hình hóa nghiệp vụ (business modeling) mô tả cấu trúc và quy trình nghiệp vụ. Xác định yêu cầu (requirement) mô tả nghiệp vụ bằng phương pháp “tình huống sử dụng” (use case base method) Phân tích và thiết kế (analysis & design) mô tả kiến trúc hệ thống thông qua các sơ đồ phân tích thiết kế. Lập trình (implementation) thực hiện các việc xây dựng chương trình bằng ngôn ngữ lập trình. Thử nghiệm mô tả các tình huống và kịch bản thử nghiệm, tiến hành thử nghiệm hệ thống phần mềm. Triển khai đưa hệ thống phần mềm vào sử dụng Quản trị cấu hình, thay đổi kiểm soát các thay đổi và duy trì sự hợp nhất của các thành phần dự án. Quản trị dự án quản lý toàn bộ quá trình làm việc của dự án. Môi trường đảm bảo các hạ tầng cần thiết để có thể phát triển được hệ thống. Công cụ CASE • Công cụ CASE – Phần mềm hỗ trợ các qui trình phát triển và tiến hóa phần mềm • Tự động hóa các hoạt động – Trình soạn thảo đồ họa để phát triển mô hình hệ thống – Từ điển dữ liệu để quản lý các thực thể thiết kế – Công cụ đồ họa để xây dựng giao diện người sử dụng – Công cụ gỡ lỗi để hỗ trợ việc tìm lỗi chương trình – Dịch tự động để tạo ra các phiên bản mới của chương trình Công nghệ CASE • Công nghệ CASE đã cải tiến đáng các qui trình phần mềm, tuy nhiên không quá lớn như được tiên đoán trước đó – CNPM đòi hỏi suy nghĩ sáng tạo – điều này không tự động hóa được – CNPM là hoạt động nhóm và • Mất rất nhiều thời gian thảo luận nhóm với các dự án lớn và CASE chưa thực sự hỗ trợ nhiều ở đây. Phân loại công cụ CASE • Phân loại giúp ta hiểu các loại công cụ CASE khác nhau và tính năng hỗ trợ của chúng trong các hoạt động qui trình • Góc độ chức năng Phân loại theo chức năng cụ thể của chúng– • Góc độ qui trình – Phân loại theo các hoạt động qui trình chúng hỗ trợ • Góc độ tích hợp – Phân loại theo tổ chức của chúng trong các đợn vị tích hợp. Công cụ tích hợp • Công cụ – Hỗ trợ từng loại công việc, như kiểm tra tính nhất quán, soạn thảo văn bản, v.v. • Bàn làm việc (workbench) Hỗ trợ một công đoạn, vd đặc tả, thiết kế– – Thường kết hợp một số công cụ • Môi trường – Hỗ trợ tất cả hoặc phần lớn toan bộ qui trình phần mềm – Thường kết hợp một số bàn làm việc Phân loại công cụ CASE Công cụ Soạn thảo Dịch So sánh tệp Bàn làm việc đa năng CASE Bàn làm việc Phân tích thiết kế Bàn làm việc đơn năng Lập trình Bàn làm việc tổng tổng hợp Bàn làm việc chuyên dụng Kiểm thử Môi trường Môi trường tích hợp Môi trường hướng qui trình Các điểm chính • Các qui trình phần mềm là các hoạt động liên quan đến việc tạo ra và tiến hóa một hệ thống phần mềm • Mô hình tiến trình phần mềm là biễu diễn trừu tượng của các qui trình này • Các hoạt động chính là đặc tả, thiết kế, lập trình, kiểm định và tiến hóa • Mô hình tiến trình tổng quát mô tả tổ chức của qui trình phần mềm. Vd như mô hình thác nước, phát triển tiến hóa, và CBSE • Mô hình qui trình lặp mô tả qui trình phần mềm là một vòng lặp của các hoạt động Các điểm chính • RE là qui trình phát triển đặc tả phần mềm • Qui trình thiết kế và lập trình chuyển đặc tả thành chương trình chạy được • Kiểm thử liên quan đến việc kiểm tra chương trình có đáp ứng đặc tả và nhu cầu của người sử dụng không. • Tiến hóa liên quan đến việc sửa đổi hệ thống sau khi nó đã được đưa vào sử dụng • RUP là mô hình qui trình tổng quát trong đó các hoạt động và các pha được tách ra • Công nghệ CASE hỗ trợ các hoạt động qui trình phần mềm Bài tập về nhà • Đọc thêm Wikipedia – Mô hình qui trình hiện đại: Agile, XP, Scrum, Test Driven Development – CMMI, ISO 9000, • Chọn qui trình phù hợp với dự án bài tập lớn của nhóm. Nêu lý do. • Với mỗi hoạt động trong qui trình phần mềm tìm một số công cụ CASE hỗ trợ để thực hiện hoạt động đó và một số công cụ hỗ trợ nhiều hoạt động. Câu hỏi • Phân biệt các mô hình tiến trình khác nhau? • Khi có yêu cầu phát triển một hệ thống: – Cần lưu ý gì trong việc lựa chọn mô hình tiến trình? – Lựa chọn mô hình phù hợp bằng cách nào? – Có những chỉ dẫn gì trong việc lựa chọn mô hình?
File đính kèm:
- Giáo trình Kỹ nghệ phần mềm - Bài 2 Các qui trình phần mềm (Software Processes).pdf