Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Quy trình phần mềm
! Quy trình phần mềm(software process) là một tập
có cấu trúc các hoạt động cần thiết để phát triển
một hệ thống phần mềm.
! Có nhiều quy trình phần mềm khác nhau. Tuy
nhiên, tất cả đều bao gồm những hoạt động:
" Đặc tả - Định nghĩa hệ thống làm gì;
" Thiết kế và cài đặt – Định nghĩa tổ chức của hệ thống và cài đặt hệ thống;
" Kiểm định – Kiểm tra rằng hệ thống đáp ứng đượcmong muốn của người
dùng;
" Cải tiến – thay đổi hệ thống để đáp ứng sự thay đổi yêu cầu người dùng.
! Mô hình quy trình phần mềm(software process
model) là biểu diễn trừu tượng của một quy trình.
Nó biểu diễn mô tả của quy trình từ một góc nhìn
nào đó.
Thị Minh Tuyền Nhập môn CNPM Lợi ích của nguyên bản v Cải thiện khả năng sử dụng hệ thống. v Thoả mãn tốt hơn nhu cầu thực của người dùng. v Cải thiện chất lượng thiết kế. v Cải thiện khả năng bảo trì hệ thống. v Giảm bớt nỗ lực phát triển. 37 Nguyễn Thị Minh Tuyền Nhập môn CNPM Quy trình phát triển nguyên bản Establish prototype objectives Define prototype functionality Develop prototype Evaluate prototype Prototyping plan Outline definition Executable prototype Evaluation report 38 Nguyễn Thị Minh Tuyền Nhập môn CNPM Phát triển nguyên bản v Có thể dựa vào các công cụ và ngôn ngữ để phát triển nguyên bản. v Có thể bao gồm cả việc loại bỏ bớt tính năng § Nguyên bản nên tập trung vào những tính năng chưa được hiểu rõ ràng; § Kiểm tra lỗi không nằm trong nguyên bản; § Tập trung vào các yêu cầu chức năng hơn là các yêu cầu phi chức năng. 39 Nguyễn Thị Minh Tuyền Nhập môn CNPM Throw-away prototypes v Các nguyên bản nên bị loại bỏ sau khi phát triển phần mềm vì chúng không phải là cái cơ bản để phát triển hệ thống: § Khó có thể điều chỉnh hệ thống để đáp ứng được các yêu cầu phi chức năng; § Nguyên bản thường không được tài liệu hóa; § Cấu trúc nguyên bản thường bị phá vỡ do bị thay đổi nhanh; § Nguyên bản có thể không đáp ứng được những tiêu chuẩn chất lượng về mặt tổ chức. 40 Nguyễn Thị Minh Tuyền Nhập môn CNPM Chuyển giao dần dần(incremental delivery) v Thay vì phân phối hệ thống một lần, việc phát triển và phân phối được chia ra thành từng phần nhỏ (increment). Mỗi phần giao cho khách hàng chứa một phần tính năng được yêu cầu. v Những yêu cầu người dùng được ưu tiên và những yêu cầu có độ ưu tiên cao nhất sẽ được đặt trong các phần đầu tiên. v Trong quá trình phát triển, việc phân tích yêu cầu cho phần tiếp theo có thể được tiến hành nhưng thay đổi yêu cầu cho phần hiện tại không được chấp nhận. 41 Nguyễn Thị Minh Tuyền Nhập môn CNPM Phát triển dần dần và chuyển giao dần dần v Phát triển dần dần § Phát triển từng phần hệ thống và đánh giá mỗi phần trước khi tiến hành phát triển phần tiếp theo; § Được sử dụng trong các phương pháp linh hoạt; § Đánh giá được thực hiện bởi đại diện người sử dụng/ khách hàng. v Chuyển giao dần dần § Triển khai một phần để sử dụng cho người dùng cuối; § Đánh giá thực tế hơn; 42 Nguyễn Thị Minh Tuyền Nhập môn CNPM Chuyển giao dần dần Design system architecture Define outline requirements Assign requirements to increments System incomplete? Final system Develop system increment Validate increment Integrate increment Validate system Deploy increment System complete? 43 Nguyễn Thị Minh Tuyền Nhập môn CNPM Ưu điểm của chuyển giao dần dần v Khách hàng sớm được bàn giao sản phẩm (từng phần). v Các phần đầu được xem như một nguyên bản để hỗ trợ cho việc làm lộ rõ những yêu cầu cho phần sau. v Nguy cơ thất bại toàn hệ thống là thấp. v Duy trì được ưu điểm của phát triển từng phần, do đó dễ thích nghi với sự thay đổi của hệ thống. v Những dịch vụ hệ thống có độ ưu tiên cao nhất sẽ được kiểm thử nhiều nhất § Khách hàng ít gặp lỗi phần mềm ở những phần quan trọng của hệ thống. 44 Nguyễn Thị Minh Tuyền Nhập môn CNPM Mô hình xoắn ốc Boehm v Quy trình được biểu diễn như một đường xoắn ốc hơn là một chuỗi tuần tự các hoạt động với các bước quay lui. v Mỗi vòng lặp trong đường xoắn ốc biểu diễn một pha của quy trình. v Không có những pha cố định như đặt tả hay thiết kế, các vòng lặp trong đường xoắn ốc được chọn theo nhu cầu. v Rủi ro được đánh giá rõ ràng và được giải quyết trong suốt quy trình. 45 Nguyễn Thị Minh Tuyền Nhập môn CNPM Quy trình phần mềm của mô hình xoắn ốc Boehm 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 46 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các phân khu (sector) của mô hình xoắn ốc v Thiết lập mục tiêu § Xác định mục tiêu cụ thể của pha. v Đánh giá và giảm thiểu rủi ro § Rủi ro được đánh giá và các hoạt động được tiến hành để giảm thiểu các rủi ro chính. v Phát triển và thẩm định § Một mô hình phát triển cho hệ thống được chọn, đây có thể là một trong các mô hình tổng quát. v Lập kế hoạch § Dự án được duyệt và pha tiếp theo trong đường xoắn ốc được lên kế hoạch. 47 Nguyễn Thị Minh Tuyền Nhập môn CNPM Sử dụng mô hình xoắn ốc v Ưu điểm: § Là phương pháp thực tế để phát triển các hệ thống phần mềm lớn. § Giúp các kỹ sư hiểu rõ và tương tác tốt hơn với các nguy cơ tại mỗi mức tiến hóa. § Cho phép áp dụng nguyên bản tại bất cứ giai đoạn tiến hóa nào. § Giảm được các nguy cơ trước khi nó trở thành vấn đề của hệ thống. v Nhược điểm: § Không phải là “thuốc chữa bách bệnh”. § Khó khăn trong việc thuyết phục khách hàng rằng phương pháp này có thể điều khiển được. § Cần chuyên gia đánh giá về nguy cơ và dựa vào chuyên gia để thành công. Nếu một nguy cơ lớn không được tìm ra và quản lý được, các vấn đề về hệ thống sẽ xảy ra. 48 Nguyễn Thị Minh Tuyền Nhập môn CNPM Nội dung Mô hình quy trình phần mềm Các hoạt động của quy trình Thích nghi với sự thay đổi Quy trình RUP 49 Nguyễn Thị Minh Tuyền Nhập môn CNPM Quy trình RUP v The Rational Unified Process v Đây là một quy trình tổng quát bắt nguồn từ UML và Unified Software Development Process. v Kết hợp các khía cạnh của ba mô hình quy trình tổng quát. v Thường mô tả ba khía cạnh § Khía cạnh động (dynamic perspective): chỉ ra các pha theo thời gian; § Khía cạnh tĩnh (static perspective): chỉ ra các hoạt động của quy trình; § Khía cạnh thực tiễn (practice perspective): đề xuất những thực tiễn tốt. 50 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các pha của RUP Inception Elaboration Construction Phase iteration Transition 51 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các pha của RUP v Khởi động (Inception) § Thiết lập business case cho hệ thống. v Phát triển (Elaboration) § Nghiên cứu các vấn đề và phát triển kiến trúc hệ thống. v Xây dựng (Construction) § Thiết kế hệ thống, lập trình và kiểm thử. v Chuyển tiếp (Transition) § Triển khai hệ thống. 52 Nguyễn Thị Minh Tuyền Nhập môn CNPM Vòng lặp trong RUP v Lặp trong từng pha (In-phase iteration) § Mỗi pha được lặp lại với kết quả được phát triển tăng dần. v Lặp qua các pha (Cross-phase iteration) § Việc lặp có thể được thực hiện qua toàn bộ các pha. 53 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các workflow tĩnh trong RUP Workflow Description Business modelling The business processes are modelled using business use cases. Requirements Actors who interact with the system are identified and use cases are developed to model the system requirements. Analysis and design A design model is created and documented using architectural models, component models, object models and sequence models. Implementation The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process. 54 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các workflow trong RUP Workflow Description Testing Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation. Deployment A product release is created, distributed to users and installed in their workplace. Configuration and change management This supporting workflow managed changes to the system. Project management This supporting workflow manages the system development. Environment This workflow is concerned with making appropriate software tools available to the software development team. 55 Nguyễn Thị Minh Tuyền Nhập môn CNPM 56 Nguồn: Nguyễn Thị Minh Tuyền Nhập môn CNPM Ưu điểm của RUP v Phát triển phần mềm theo vòng lặp § Các phần được lên kế hoạch dựa vào độ ưu tiên của khách hàng và phân phối những phần có độ ưu tiên cao nhất trước. v Quản lý yêu cầu § Viết tài liệu một cách rõ ràng cho các yêu cầu khách hàng và theo dõi sự thay đổi của những yêu cầu này. v Sử dụng kiến trúc dựa vào component § Tổ chức hệ thống như một tập các component có thể tái sử dụng. 57 Nguyễn Thị Minh Tuyền Nhập môn CNPM Ưu điểm của RUP v Mô hình hóa phần mềm một cách trực quan § Sử dụng các mô hình đồ họa UML để biểu diễn các góc nhìn tĩnh và động của phần mềm. v Kiểm tra chất lượng phần mềm § Đảm bảo rằng phần mềm đáp ứng được các chuẩn chất lượng về mặt tổ chức. v Điều khiển các thay đổi phần mềm § Quản lý những thay đổi phần mềm sử dụng những hệ thống quản lý thay đổi và các công cụ quản lý cấu hình. 58 Nguyễn Thị Minh Tuyền Nhập môn CNPM Tổng kết v Quy trình nên có các hoạt động để đối phó với sự thay đổi. Có thể có pha nguyên bản để hạn chế những thay đổi không cần thiết trên yêu cầu và thiết kế. v Quy trình có thể được cấu trúc hóa cho phát triển và phân phối dần dần sao cho nhưng thay đổi có thể được thực hiện mà không phá vỡ toàn bộ hệ thống. v RUP là một mô hình quy trình tổng quát hiện đại được tổ chức thành các pha (khởi động, phát triển, xây dựng và chuyển tiếp). 59 Nguyễn Thị Minh Tuyền Nhập môn CNPM Câu hỏi?
File đính kèm:
- Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Quy trình phần mềm.pdf