Bài giảng Công nghệ phần mềm - Chương 2: Qui trình xây dựng phần mềm
2.1 Qui trình (process)
2.2 Một sốqui trình xây dựng phần mềm
2.2.1 Mô hình thác nước
2.2.2 Mô hình phát triển gia tăng
2.2.3 Mô hình RAD
2.2.4 Mô hình bản mẫu
2.2.5 Mô hình xoắn ốc
2.3 Một sốvấn đềkhác
2.3.1 Phát triển dựa vào thành phần
2.3.2 Kỹthuật thếhệthứ4
2.3.3 Qui trình RUP
2.3.4 Phương pháp phát triển phần mềm linh hoạt (PTPMLH)
n ốc biểu diễn một giai đoạn trong qui trình. Vòng trong cùng tập trung vào tính khả thi của hệ thống, vòng kế tiếp xác định yêu cầu hệ thống, rồi vòng thiết kế… 43CNPM/NN Spiral model of the software process Risk analys is Risk analys is Risk analys is Risk analysis Proto- type1 Prototype 2 Prototype 3 Opera- tional protoype Concept o f Operation Simulations, models, benchmarks S/W requirements Requirement valid ation Design V&V Product design Detailed design Code Uni t t es t Integr ation testAccep tance testServ ice Integration and test p lan Development plan Requirements plan Life-cycle plan REVIEW Progress through steps Commulative Cost Determine Objectives, alternatives, constraints Evaluate alternatives, Identify, resolve risks Develop, verify next- level product Plan next phases Commitment Ratio 44CNPM/NN Mô hình xoắn ốc Mỗi chu kỳ có 4 tầng, mỗi tầng chiếm một cung ¼ Đường kính và góc biểu diễn chi phí tích lũy và tiến triển của qui trình Xác định những vấn đề rắc rối và phân loại rủi ro nhằm loại trừ những rủi ro cao trước khi nó đe dọa 45CNPM/NN Mô hình xoắn ốc Mỗi giai đoạn được hoàn tất bằng một kiểm tra tất cả những sản phẩm có được bao gồm kế hoạch cho chu kỳ kế tiếp Những kế hoạch này phải bao gồm những phần nhỏ, chi tiết hơn cho nhóm và những cá nhân Mô hình xoắn ốc có thể xem là siêu mô hình (metamodel) do nó có thể xem là các mô hình khác trong những tình huống thích hợp 46CNPM/NN Q1. determine Objectives, alternatives and constraints Objectives: performance, functionality, ability to accommodate change, hardware/software interface, and critical success factors Alternatives: xác định những sự lựa chọn (cost, schedule, interface, environmental limitations, etc.) 47CNPM/NN Q2. Evaluate alternatives, identify and resolve risks Đánh giá những lựa chọn và các ràng buộc Nhận diện và giải quyết rủi ro: những rủi ro về quản lý, chiến lược lợi nhuận, đánh giá những rủi ro còn lại và quyết định dừng hay tiếp tục… 48CNPM/NN Q3. Develop Next Level Product Creation of a design Review of Design Development of code Inspection of Code Testing and packaging of the product. 49CNPM/NN Q4. Plan Next Phase Project Plan Configuration Management plan Test plan Installation plan 50CNPM/NN Mô hình xoắn ốc – ưu điểm Mô hình cho phép tạo bản mẫu sớm Nó cho những chỉ báo sớm những rủi ro không thể khắc phục với phí tổn không cao Nó cho phép người dùng tham gia vào các giai đoạn Nó tách nhỏ những nỗ lực phát triển, ưu tiên cho những chức năng quan trọng thực hiện trước, với sự thuận lợi của việc phát hành tăng thêm, cho phép chọn lựa sự tiếp tục của dự án 51CNPM/NN Mô hình xoắn ốc – ưu điểm Phản hồi từ người dùng sớm và liên tục Qua mỗi vòng lặp, việc đánh giá giúp cải thiện nhiều vấn đề của dự án Nó có thể cải thiện năng suất nhờ vào việc sử dụng lại Tất cả tiền của dự án không cần phải phân phối trước Chi phí tích lũy (Cumulative) được đánh giá thường xuyên, giảm rủi ro về chi phí 52CNPM/NN Mô hình xoắn ốc – nhược điểm Việc đánh giá rủi ro tốn nhiều chi phí, không không thích hợp cho những dự án rủi ro thấp hay nhỏ Mô hình phức tạp, khó sử dụng Cần kiến thức đánh giá rủi ro chuyên sâu Khó quản lý tiến trình và thuyết phục khách hàng 53CNPM/NN Mô hình xoắn ốc – sử dụng Những dự án có rủi ro từ trung bình đến cao Áp dụng cho những dự án cần nhiều thời gian và có thể gặp nhiều rủi ro Khi cần tập trung vào những phần ổn định hay đã được biết rõ trong khi thu thập những kiến thức về những phần khác Khi thực hiện dựa vào những kỹ thuật mới 54CNPM/NN Mô hình xoắn ốc (Spiral) Kết hợp giữa bản chất lặp của việc tạo bản mẫu (prototyping) và mô hình tuần tự Thác nước Là mô hình tiến trình hướng rủi ro, luôn đánh giá rủi ro Áp dụng qua toàn bộ đời sống phần mềm Các bước: phát triển khái niệm, phát triển sản phẩm, hoàn thiện sản phẩm Quá trình có thể tạm dừng, nhưng nó có thể bắt đầu tại điểm vào phù hợp (vd: hoàn thiện sản phẩm) Hướng cho việc phát triển những phần mềm lớn 55CNPM/NN 2.2 Các vấn đề khác: dùng thành phần Phát triển dựa vào thành phần (component) xây dựng hệ thống từ việc tích hợp các thành phần đang có hoặc các thành phần thương mại COTS (Commercial-off-the-shelf). Dùng thành phần giảm 70% thời gian và 84% chi phí 56CNPM/NN Kỹ thuật thế hệ thứ 4 4GT (fourth generation technique) là kỹ thuật dựa vào nhiều công cụ phần mềm có đặc điểm : Dựa vào đặc tả phần mềm ở mức cao theo một cách thức định trước công cụ sẽ tự động sinh mã 4GT thích hợp cho ứng dụng vừa và nhỏ 4GT tăng năng suất đáng kể Một số ý kiến cho rằng : Một số công cụ khó sử dụng Chương trình tạo ra cồng kềnh Việc bảo trì cho các hệ thống lớn là một vấn đề 4GT + dùng thành phần là hướng phát triển rất mạnh hiện nay 57CNPM/NN Qui trình RUP Qui trình phát triển phần mềm thống nhất RUP (Rational Unified Process) là một trong những mô hình phát triển dựa trên thành phần dùng Ngôn ngữ mô hình thống nhất (UML-Unified modeling language) RUP là qui trình do hãng Rational phát triển 58CNPM/NN Các vấn đề về phần mềm 59CNPM/NN Nguyên nhân 60CNPM/NN Qui trình RUP (Rational Unified Process) Giải quyết Phát triển theo vòng lặp Quản lý yêu cầu Sử dụng thành phần Mô hình trực quan Thẩm định chất lượng Kiểm soát thay đổi 61CNPM/NN Qui trình RUP 62CNPM/NN Các giai đoạn RUP 63CNPM/NN Unified Process (UP) s o f t w a r e in c r e m e n t R e l e a s e I n c e p t io n E la b o r a t i o n c o n s t r u c t i o n t r a n s i t i o n p r o d u c t io n 64CNPM/NN Phát triển lặp 65CNPM/NN UP Work Products Incept ion phase Elaborat ion phase Const ruct ion phase Transit ion phase Vision document Init ial use-case model Init ial project glossary Init ial business case Init ial risk assessment . Pro ject plan, phases and it erat ions. Business model, if necessary . One or more prot ot y pes I nce pt i o n Use-case model Supplement ary requirement s including non-funct ional Analy sis model Sof t ware archit ect ure Descrip t ion. Execut able arch it ect ural prot ot y pe. Preliminary design model Rev ised risk list Project p lan includ ing it erat ion plan adapt ed workf lows milest ones t echnical work product s Preliminary user manual Design model Sof t ware component s Int egrat ed sof t ware increment Test plan and procedure Test cases Support document at ion user manuals inst allat ion manuals descrip t ion of current increment Deliv ered sof t ware increment Bet a t est report s General user feedback 66CNPM/NN Qui trình RUP Giai đoạn 1 (Inception): khởi đầu Phạm vi dự án, yêu cầu người dùng và ràng buộc Yêu cầu nghiệp vụ, rủi ro, kế hoạch dự án (phân công, chi phí) Thiết kế kiến trúc (chi phí, lịch, tài nguyên) Cấu hình môi trường làm việc, công cụ 67CNPM/NN Qui trình RUP Giai đoạn 2 (Elaboration): Hình thành Tinh chỉnh tài liệu Hoạch định những bước lặp Kế hoạch phát triển: tiến trình, công cụ CASE Tinh chỉnh kiến trúc và chọn thành phần (component) 68CNPM/NN Qui trình RUP Giai đoạn 3 (Construction): Xây dựng Quản lý tiến trình tạo sản phẩm: năng suất, đảm bảo chất lượng Tạo sản phẩm (alpha, beta, các phiên bản test khác) Kế hoạch triển khai ứng dụng: phần mềm, người sử dụng, hỗ trợ… 69CNPM/NN Qui trình RUP Giai đoạn 4 (Transition): Chuyển giao Tạo sản phẩm xuất xưởng Kiểm tra sản phẩm, thu thập phản hồi 70CNPM/NN PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT PPPTPMLH (Agile software development) Khác biệt dễ nhận thấy của PPPTPMLH đó là lượng giấy tờ tài liệu ít hơn và có thể nói là tập trung vào việc lập trình hơn. Nhưng ẩn đằng sau đó là hai khác biệt nền tảng quan trọng: “thích ứng thay vì dự đoán” và “hướng đến con người thay vì qui trình”. PPPTPMLH đề cao tính chủ động và sáng tạo của các cá nhân tham gia, và đặc biệt là việc trao đổi thông tin giữa các thành viên. PPPTPMLH không khước từ sự tổ chức nhưng nó cố gắng cân bằng giữa sự tổ chức và sự linh hoạt, cân bằng giữa việc không có qui trình nào cả và qui trình quá chi li và cứng nhắc. 71CNPM/NN Phương pháp Agile: Scrum Schwaber và Beedle Đặc trưng Chia công việc thành những packet Test và tư liệu khi sản phẩm đang được xây dựng Phần công việc trong “backlog” được chia xuất hiện trong “sprint” Gặp gỡ ngắn “demo” được chuyển tới khách hàng 72CNPM/NN Scrum 73CNPM/NN Extreme Programming (XP) The most widely used agile process, originally proposed by Kent Beck XP Planning Begins with the creation of “user stories” Agile team assesses each story and assigns a cost Stories are grouped to for a deliverable increment A commitment is made on delivery date After the first increment “project velocity” is used to help define subsequent delivery dates for other increments 74CNPM/NN Extreme Programming XP Design Follows the KIS principle (keep it simple) Encourage the use of CRC cards (see Chapter 8) For difficult design problems, suggests the creation of “spike solutions” - a design prototype Encourages “refactoring” - an iterative refinement of the internal program design XP Coding Recommends the construction of a unit test for a store before coding commences Encourages “pair programming” XP Testing All unit tests are executed daily “Acceptance tests” are defined by the customer and excuted to assess customer visible functionality 75CNPM/NN Extreme Programming unit t est cont inuous integrat ion acceptance test ing pair programming Release user stories values acceptance test crit eria it erat ion plan simple design CRC cards spike solut ions protot ypes refactoring software increment project velocity computed
File đính kèm:
- Bài giảng Công nghệ phần mềm - Chương 2 Qui trình xây dựng phần mềm.pdf