Trang 3 Yêu cYêu cầầu u Hiểu rõ một số qui trình phần mềm cơ bản Cần biết là trong thực tế người ta thường áp dụng những phương pháp tổng hợp, có thể kết hợp nhiều phương pháp Những
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM MÔN HỌC CÔNG NGHỆ PHẦN MỀM Chương Qui trình xây dựng phần mềm CNPM/NN Chương : 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 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 hệ thứ 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) CNPM/NN Yêu cầu Hiểu rõ số qui trình phần mềm Cần biết thực tế người ta thường áp dụng phương pháp tổng hợp, kết hợp nhiều phương pháp Những phương pháp giới thiệu phương pháp thường mang tính chặt chẻ cao, người ta áp dụng phương pháp có tính linh hoạt cao, tạo thoải mái phát huy tính sáng tạo khơng từ bỏ tính kỷ luật Tất qui trình có bước sở: phân tích, thiết kế, thực mã, kiểm thử, triển khai bảo trì, tiến hóa CNPM/NN 2.1 Qui trình (process) Qui trình (process) phần mềm gồm tập hợp hoạt động tổ chức mà mục đích xây dựng phát triển phần mềm Qui trình xác định làm gì, cách để đạt mục tiêu Quy trình phần mềm xác định khung tiêu chuẩn để triển khai công nghệ phần mềm Trong công nghiệp để giải vấn đề thực tế, kỹ sư hay nhóm kỹ sư phần mềm phải cộng tác để đưa chiến lược phát triển bao gồm qui trình (process), phương pháp (method) cơng cụ (tool) Qui trình: Phải thực cơng việc gì? Phương pháp: Chỉ cách thực công việc cụ thể (“how to”) CNPM/NN Qui trình phần mềm Những loại hệ thống khác cần qui trình phát triển khác CNPM/NN Hệ thống thời gian thực yêu cầu phải hoàn thành đặc tả hệ thống trước chuyển sang giai đoạn xây dựng Hệ thống thương mại điện tử, vừa đặc tả vừa xây dựng chương trình cách đồng thời Qui trình phát triển phần mềm tảng cho CNPM/NN Management Control of software projects Establishes the Control in which technical methods kiem soat are applied sp Work Products (models, documents, data, reports, forms etc.) are Produced Milestones are established cot moc thoi gian Quality is ensured and Change is properly managed Các tầng công nghệ phần mềm Software Engineering tools methods process model a “quality” focus CNPM/NN Khung tiến trình (Process framework) Process framework Framework activities work tasks work products cot moc thoi gian milestones & deliverables QA checkpoints Umbrella Activities CNPM/NN Khung tiến trình Truyền thông Lập kế hoạch Mơ hình hóa Xây dựng Triển khai Communication Planning Modeling Construction CNPM/NN Analysis of requirements Design Code generation Testing Deployment Framework activities work tasks work products milestones & deliverables QA checkpoints CNPM/NN 10 Qui trình RUP CNPM/NN 61 Các giai đoạn RUP CNPM/NN 62 Unified Process (UP) E la b o r a t io n In c e p t io n c o n s t r u c t io n Re le a s e s o f t w a r e in c r e m e n t t r a n s it io n p r o d u c t io n CNPM/NN 63 Phát triển lặp CNPM/NN 64 UP Work Products Incept ion phase V isio n d ocum e n t Elab orat ion ph ase Init ial u se-case mo d el Init ial p roje ct glossary Init ial b u sin e ss case Use -case mo del Init ial risk asse ssmen t Sup p leme n t ary re q u ire me n t s in cludin g n on-f u n ct io nal Pro je ct plan, ph ases an d it e rat io n s A n aly sis m od el Sof t ware archit e ct u re Busin e ss m o de l, if n e ce ssary One o r mo re p rot o t y p es I nce pt i o n De scrip t io n Exe cu t ab le arch it e ct ural p ro t ot y p e Preliminary d esig n mod e l Re v ise d risk list Project p lan inclu d in g it e rat io n p lan ad ap t e d wo rkf lo ws m ile st o n es Co nst ru ct ion phase De sign mo del Transit ion phase So f t ware comp o n e n t s In t e g rat e d sof t ware in crem e n t Te st plan an d p roce du re De liv e re d sof t ware in cre ment Be t a t e st repo rt s Ge neral u se r f e e d back Te st case s Su pp ort cum e n t at io n u se r m an uals in st allat io n man u als d e scrip t io n o f cu rren t incre m e n t t e ch nical wo rk p ro d uct s Preliminary u ser manual CNPM/NN 65 Qui trình RUP Giai đoạn (Inception): khởi đầu CNPM/NN Phạm vi dự án, yêu cầu người dùng 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 ngun) Cấu hình mơi trường làm việc, cơng cụ 66 Qui trình RUP Giai đoạn (Elaboration): Hình thành CNPM/NN Tinh chỉnh tài liệu Hoạch định 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 chọn thành phần (component) 67 Qui trình RUP Giai đoạn (Construction): Xây dựng CNPM/NN Quản lý tiến trình tạo sản phẩm: suất, đảm bảo chất lượng Tạo sản phẩm (alpha, beta, phiên test khác) Kế hoạch triển khai ứng dụng: phần mềm, người sử dụng, hỗ trợ… 68 Qui trình RUP Giai đoạn (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 CNPM/NN 69 PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT PPPTPMLH (Agile software development) CNPM/NN Khác biệt dễ nhận thấy PPPTPMLH lượng giấy tờ tài liệu nói tập trung vào việc lập trình Nhưng ẩn đằng sau hai khác biệt tảng quan trọng: “thích ứng thay dự đốn” “hướng đến người thay qui trình” PPPTPMLH đề cao tính chủ động sáng tạo cá nhân tham gia, đặc biệt việc trao đổi thông tin thành viên PPPTPMLH không khước từ tổ chức cố gắng cân tổ chức linh hoạt, cân việc qui trình qui trình q chi li cứng nhắc 70 Phương pháp Agile: Scrum Schwaber Beedle Đặc trưng CNPM/NN Chia công việc thành packet Test tư liệu sản phẩm xây dựng Phần công việc “backlog” chia xuất “sprint” Gặp gỡ ngắn “demo” chuyển tới khách hàng 71 Scrum CNPM/NN 72 Extreme Programming (XP) The most widely used agile process, originally proposed by Kent Beck XP Planning CNPM/NN 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 73 Extreme Programming XP Design XP Coding 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 Recommends the construction of a unit test for a store before coding commences Encourages “pair programming” XP Testing CNPM/NN All unit tests are executed daily “Acceptance tests” are defined by the customer and excuted to assess customer visible functionality 74 Extreme Programming simple design CRC cards spike solut ions prot ot ypes user st ories values accept ance t est crit eria it erat ion plan refact oring pair programming Release software increment project velocity computed unit t est cont inuous int egrat ion accept ance t est ing CNPM/NN 75 ... mà mục đích xây dựng phát triển phần mềm Qui trình xác định làm gì, cách để đạt mục tiêu Quy trình phần mềm xác định khung tiêu chuẩn để triển khai công nghệ phần mềm Trong công nghiệp để giải...Chương : 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... triển phần mềm (Process Model) Mơ hình phát triển phần mềm thể trừu tượng quy trình phần mềm Nó biểu diễn đặc tả quy trình từ khía cạnh cụ thể, đó, cung cấp phần thơng tin quy trình phần mềm