Bài giảng Công nghệ phần mềm nâng cao - Vòng đời và các mô hình phát triển phần mềm
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm nâng cao - Vòng đời và các mô hình phát triển phần mềm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_cong_nghe_phan_mem_nang_cao_vong_doi_va_cac_mo_hin.pdf
Nội dung text: Bài giảng Công nghệ phần mềm nâng cao - Vòng đời và các mô hình phát triển phần mềm
- Vòng Đời và Các Mô Hình Phát TriểnPhầnMềm Công Nghệ PhầnMềm Nâng Cao
- Outline Software life-cycle QiQui trìhình pháttriển Phầnmềm Các mô hình phát triển Mô hình tuyến tính Mô hình chế thử Mô hình phát triển ứng dụng nhanh Các mô hình tiến hóa Mô hình phát triển đồng thời Mô hình hướng thành phần Pham Ngoc Hung, Coltech, VNU, 2009 2
- Vòng đời phần mềm (Software life-cycle) Vòng đời phầnmềmlàthờikỳ tính từ khi phầnmềm đượcsinh(tạo) ra cho đến khi chết đi (từ lúc hình thành đáp ứng yêu cầu, vậnhành, bảodưỡng cho đến khi loại bỏ không đâu dùng) Quy trình phầnmềm (vòng đờiphầnmềm) được phâhânchiathành các phhachính : phâhântíhích, thiết kế, chế tạo, kiểmthử, bảotrì. Biểudiễn các pha có khác nhau theo từng người Pham Ngoc Hung, Coltech, VNU, 2009 3
- Mô hình vòng đời phầnmềmcủa Boehm Xác định yêu cầu hệ thống Kiểm chứng Xác định yêu cầu phần mềm Kiểm chứng Thiếtkt kế căn bản Kiểm chứng Thiết kế chi tiết Kiểm chứng Lập trình Gỡ lỗi Kiểm thử Chạy thử Vận hành Bảo trì Kiểm chứng lại Pham Ngoc Hung, Coltech, VNU, 2009 4
- Suy nghĩ mới về vòng đời phầnmềm (1) Pha xác định yêu cầuvàthiếtkế có vai trò quyết định đếnchấtlượng phầnmềm, chiếm phầnlớn công sứcsovớilậptrình, kiểmthử và chuyểngiao phần mềm (2) Pha cụ thể hóa cấutrúcphầnmềmphụ thuộc nhiều vào suy nghĩ trên xuống (top-down) và trừutượng hóa, cũng như chi tiết hóa (3) Pha thiếtkế, chế tạo thì theo trên xuống, pha kiểm thử thì dưới lên (bottom-up) Pham Ngoc Hung, Coltech, VNU, 2009 5
- Suy nghĩ mới về vòng đời phầnmềm (()4) Trước khi chuyểnsang pha kế tiếp phải đảm bảo pha hiệnnayđã đượckiểmthử không còn lỗi (5) Cầncócơ chế kiểm tra chấtlượng, xét duyệtgiữa các phhanhằm đảm bảo không gây lỗi cho phhasau (6) Tư liệucủamỗi pha không chỉ dùng cho pha sau, mà chính là đối tượng quan trọng cho kiểm tra và đảm bảo chấtlượng củatừng quy trình và của chính phầnmềm Pham Ngoc Hung, Coltech, VNU, 2009 6
- Suy nghĩ mới về vòng đời phầnmềm (()7) Cầnchuẩn hóa mẫu biểu, cách ghi chép tạotư liệu cho từng pha, nhằm đảmbảochấtlượng phầnmềm (8) Thao tác bảotrìphầnmềmlàviệcxử lý quay vòng trở lại các pha trong vòng đờiphầnmềmnhằmbiến đổi, sửachữa, nâng cấpphầnmềm Pham Ngoc Hung, Coltech, VNU, 2009 7
- Các phương pháp luậnvà kỹ thuậtchotừng pha Ph−¬ng ph¸p, kü Tªn pha Néi dung nghiÖp vô thuËt X¸c ®Þnh §Æc t¶ yªu cÇu ng −êi dïng Ph©n tÝch cÊu tróc yªu cÇu X¸c ®Þnh yªu cÇu phÇn mÒm hãa ThiÕt kÕ c¬ b¶n phÇn mÒm ThiÕt kÕ ThiÕt kÕ cÊu tróc ngoµi cña phÇn ThiÕt kÕ cÊu tróc hãa hÖ thèng mÒm LËp tr×nh cÊu tróc ThiÕt kÕ Lµ thiÕt kÕ chi tiÕt: ThiÕt kÕ cÊu Ph−¬ng ph¸p Jackson ch−¬ng tróc bªn tronggp cña phÇn mÒm (®¬n Ph−¬h¸¬ng ph¸p tr×nh vÞ ch−¬ng tr×nh hoÆc m«®un) Warnier LËp tr×nh M· hãa bëi ng«n ng÷ lËp tr×nh M· hãa cÊu tróc hãa §¶m b¶o KiÓm tr achÊtla chÊt l−îng phÇn mÒm ®· Ph−¬ng ph¸p kiÓm chÊt l−îng ph¸t triÓn thö ch−¬ng tr×nh Sö dông, vËn hµnh phÇn mÒm ®· VËn hµnh ph¸t triÓn. BiÕn ®æi , ®iÒu chØnh Ch−acôthÓa cô thÓ B¶×¶o tr× phÇn mÒm Pham Ngoc Hung, Coltech, VNU, 2009 8
- Quy trình phát triển phần mềm Common process framework Framework activities Task sets Tasks Milestones, de liverabl es SQA points Umbrella activities Pham Ngoc Hung, Coltech, VNU, 2009 9
- Mô hình tuyến tính Phân tích Thiết kế Lập trình Kiểm thử Công nghệ học Hệ thống/Thông tin Điểnhìnhlàmôhìnhvòngđờicổđiển (mô hình thác nước) Classic life cycle / waterfall model: là mô hình hay đựoc dùng nhất Pham Ngoc Hung, Coltech, VNU, 2009 10
- Mô hình tuyến tính Công nghệ họcHệ thống/Thông tin và mô hình hóa (System / Information engineering and modeling): thiết lập các yêu cầu, ánh xạ mộtsố tập con các yêu cầusang phần mềm trong quá trình tương tác giữa phần cứng, người và CSDL Phân tích yêu cầu (Requirements analysis): hiểu lĩnh vực thông tin, chứcnăng, hành vi, tính năng và giao diệncủa phầnmềmsẽ phát triển. Cầnphảitạotư liệuvàbànthảo với khách hàng, người dùng Pham Ngoc Hung, Coltech, VNU, 2009 11
- Mô hình tuyến tính Thiếtkế (Design): là quá trình nhiềubướcvới 4 thuộc tính khác nhau củamộtchương trình: cấutrúcdữ liệu, kiếntrúc phhầnmềm, biểu diễngiao diệnvà chi tiếtthủ tục (thuậttoán). Cầntư liệu hóa và là mộtphần quan trọng của cấu hình phần mềm Tạomã/ lậptrình(Code generation/programming): Chuyểnthiếtkế thành chương trình máy tính bởi ngôn ngữ nào đó. Nếuthiếtkếđã đượcchitiết hóa thì lập trình có thể chỉ thuầntúycơ học Pham Ngoc Hung, Coltech, VNU, 2009 12
- Mô hình tuyến tính Kiểmthử (Testing): Kiểm tra các chương trình và môđun cả về lôgic bên trong và chứcnăng bên ngoài, nhằm phát hiệnralỗivàđảmbảovới đầuvào xác định thì cho kếtquả mong muốn Hỗ trợ / Bảotrì(Support / Maintenance): Đáp ứng những thay đổi, nâng cấp phhầnmềm đã pháháttriển do sự thay đổicủamôitrường, nhu cầu Pham Ngoc Hung, Coltech, VNU, 2009 13
- ĐiểmyếucủaMôhìnhtuyến tính Thựctế các dự án ít khi tuân theo dòng tuầntự của mô hình, mà thường có lặplại (như mô hình của Boehm) Khách hàng ít khi tuyên bố rõ ràng khi nào xong hết các yêu cầu Khách hàng phải có lòng kiên nhẫnchờ đợithờigian nhất định mớicósảnphẩm. Nếu phát hiệnralỗi nặng thì là một thảm họa! Pham Ngoc Hung, Coltech, VNU, 2009 14
- Mô hình chế thử (Prototyping model) Nghe Khách Tạo/sửa trình bày bản mẫu Khách kiểm tra bản mẫu Pham Ngoc Hung, Coltech, VNU, 2009 15
- Mô hình chế thử: Khi nào? Khi mớirõmục đích chung chung của phầnmềm, chưarõchitiết đầuvàohayxử lý ra sao hoặcchưa rõ yêu cầu đầura Dùng như “Hệ sơ khai” để thu thậpyêucầungười dùng qua các thiếtkế nhanh Các giảithuật, kỹ thuật dùng làm bảnmẫucóthể chưa nhanh, chưatốt, miễnlàcómẫu để thảoluận gợi yêucầucủangười dùng Pham Ngoc Hung, Coltech, VNU, 2009 16
- Mô hình phát triển ứng dụng nhanh (Rapid Application Development: RAD) Là quy trình phát triểnphầnmềmgiatăng, tăng dầntừng bước (Incrimental software development) vớimỗichu trìhình pháháttriểnrấtngắn (60-90 ngày) Xây dựng dựa trên hướng thành phần (Component-based construction) với khả năng tái sử dụng (reuse) Gồmmộtsố nhóm (teams), mỗi nhóm làm 1 RAD theo các pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình xử lý, Tạo ứng dụng, Kiểmthử và đánh giá (Business, Data, Process, Appl. Generation, Test) Pham Ngoc Hung, Coltech, VNU, 2009 17
- Team #3 Business Modelingg Mô hình Team #2 Data Modelingg Business Process phát triển Modelingg Modelingg Team #1 Data Application ứng dụng Modelingg Generation Business Process Testing & Turnover nhanh Modeling Modelingg Data AlitiApplication Modeling Generation Testing & Process Turnover Modeling Application Gene r ati on Testing & Turnover 60 - 90 days Pham Ngoc Hung, Coltech, VNU, 2009 18
- RAD: Business modeling Luồng thông tin được mô hình hóa để trả lời các câu hỏi: Thông tin nào điều khiển xử lý nghiệp vụ? Thông tin gì đượcsinhra? Ai sinh ra nó? Thông tin đi đến đâu? Ai xử lý chúng? Pham Ngoc Hung, Coltech, VNU, 2009 19
- RAD: Data and Process modlideling Data modeling: các đốitượng dữ liệucần để hỗ trợ nghiệpvụ (business). Định nghĩa các thuộc tính củatừng đốitượng và xác lập quan hệ giữa các đốitượng Process modlideling: Các đối tượng dữ liệu được chuyểnsangluồng thông tin thựchiệnchứcnăng nghiệp vụ. Tạo mô tả xử lý đễ cập nhật (thêm, sửa, xóa, khôi phục) từng đốitượng dữ liệu Pham Ngoc Hung, Coltech, VNU, 2009 20
- RAD: Appl. Generation and Testing Application Generation: Dùng các kỹ thuậtthế hệ 4 để tạophầnmềmtừ các thành phầncósẵnhoặctạo ra các thành phầncóthể tái dụng lạisaunày. Dùng các công cụ tự động để xây dựng phầnmềm Testing and Turnover: Kiểmthử các thành phầnmới và kiểmchứng mọi giao diện (cácthành phhầncũ đã đượckiểmthử và dùng lại) Pham Ngoc Hung, Coltech, VNU, 2009 21
- RAD: Hạn chế? Cầnnguồn nhân lựcdồidàođể tạo các nhóm cho các chứcnăng chính Yêu cầu hai bên giao kèo trong thờigianngắnphảicó phhầnmềm hàhoànchỉnh, thiếutráhách nhiệmcủamột bên dễ làm dự án đổ vỡ RAD không phải tốt cho mọi ứng dụng, nhất là với ứng dụng không thể môđun hóa hoặc đòi hỏi tính năng cao Mạo hiểm kỹ thuật cao thì không nên dùng RAD Pham Ngoc Hung, Coltech, VNU, 2009 22
- Các mô hình tiến hóa: gia tăng, xoắn ốc Phần lớn các hệ phần mềm phức tạp đều tiến hóa theo thờigian: môi trường thay đổi, yêu cầu phát sinh thêm, hoàn thiệnthêmchứcnăng, tính năng Các mô hình tiến hóa (evolutionary models) có tính lặp lại. Kỹ sư phầnmềmtạo ra các phiên bản (versions) ngàycàng hàhoàn thiện hơn, phhức tạp hơn Các mô hình: incremental, spiral, WINWIN spiral, concurrent development model Pham Ngoc Hung, Coltech, VNU, 2009 23
- Mô hình gia tăng (The incremental model) Kết hợp mô hình tuần tự và ý tưởng lặp lại củachế bảnmẫu Sản phẩm lõi với những yêu cầu cơ bản nhất củahệ thống được phát triển Cácchứcnăng với những yêêucầu khác được phát triểnthêmsau(gia tăng) Lặplạiquy trình để hoàn thiệndần Pham Ngoc Hung, Coltech, VNU, 2009 24
- Mô hình gia tăng Gia tăng 1 Phân tích Thiết kế Lập trình Kiểm thử Xuất xưởng 1 System/info. EiEngineer ing Gia tăng 2Phân tích Thiết kế Lập trình Kiểm thử Xuất xưởng 2 Gia tăng 3Phân tích Thiết kế Lập trình Kiểm thử Xuất xưởng 3 Gia tăng 4 Phân tích Thiết kế Lập trình Kiểm thử XX 4 ClCalen dar time Pham Ngoc Hung, Coltech, VNU, 2009 25
- Mô hình xoắn ốc (spiral) Lập kế hoạch Phân tích rủi ro Giao ti ếp khách hàng Khái niệm Kỹ nghệ Làm mới Nâng cấp Khách hàng Xây dựng & đánh giá Bảotrìo trì Xuất xưởng Pham Ngoc Hung, Coltech, VNU, 2009 26
- Mô hình xoắn ốc (tiếp) Giao tiếp khách hàng: giữangười phát triển và khách hàng để tìm hiểuyêucầu, ýkiến Lậpkế hoạch: Xác lập tài nguyên, thờihạnvànhững thông tin khác Phân tích rủiro: Xem xét mạohiểmkỹ thuậtvàmạo hiểmquảnlý Kỹ nghệ: Xây dựng mộthaymộtsố biểudiễncủa ứng dụng Pham Ngoc Hung, Coltech, VNU, 2009 27
- Mô hình xoắn ốc (tiếp) Xây dựng và xuấtxưởng: xây dựng, kiểmthử, cài đặt và cung cấphỗ trợ người dùng (tư liệu, huấn luyện, . . .) Đánh giá của khách hàng: Nhận các phảnhồicủa ngườisử dụng về biểudiễnphầnmềm trong giai đoạn kỹ nghệ và cài đặt Pham Ngoc Hung, Coltech, VNU, 2009 28
- Mô hình xoắn ốc: Mạnh và yếu? Tốt cho các hệ phầnmềm qqyuy mô lớn Dễ kiểm soát các mạohiểm ở từng mứctiến hóa Khó thuyết phục khách hàng là phương pháp tiến hóa xoắn ốccóthể kiểm soát được Chưa được dùng rộng rãi như các mô hình tuyến tính hoặcchế thử Pham Ngoc Hung, Coltech, VNU, 2009 29
- Mô hình phát triển đồng thời (The concurrent development model) Xác định mạng lưới những hoạt động đồng thời (Network of concurrent activities) Các sự kiện (events) xuấthiệntheođiềukiệnvận động trạng thái trong từng hoạt động Dùng cho mọiloại ứng dụng và cho hình ảnh khá chính xác về trạng thái hiệntrạng củadự án Thường dùng trong phát triển các ứng dụng khách/chủ (client /server applicati ons): system and componets are developed concurrently Pham Ngoc Hung, Coltech, VNU, 2009 30
- Mô hình hướng thành phần (Component-based model) Gắnvới những công nghệ hướng đối tượng (Object - oriented technologies) qua việctạocáclớp (classes) có chứa cả dữ liệu và giải thuật xử lý dữ liệu Có nhiềutương đồng vớimôhìnhxoắn ốc Với ưu điểm tái sử dụng các thành phần qua Thư viện / kho các lớp: tiếtkiệm 70% thờigian, 80% giá thành, chỉ số sảnxuất 26.2/16.9 Với UML như chuẩn công nghiệp đang triển khai Pham Ngoc Hung, Coltech, VNU, 2009 31
- Mô hình hướng thành phần Lập kế hoạch Phân tích rủi ro Xác định thành phần ứng viên Giao tiếp khách hàng Xây dựng Tìm bước lặp thứ n thành phần của hệ thống từ thư viện Đặt Lấy thành phần thành phần vàthào thư viện nếu có Kỹ nghệ Khách hàng Xây dựng & Xây dựng đánh giá Xuất xưởng thành phần nếukhcóu kh.có Pham Ngoc Hung, Coltech, VNU, 2009 32
- Mô hình hình thức (Formal model) Còn gọi là CNHPM phòng sạch (Cleanroom SE) Tập hợp các công cụ nhằm đặctả toán học phần mềm máy tính từ khâu định nghĩa, phát triển đến kiểmchứng Giúp kỹ sư phầnmềm phát hiệnvàsửa các lỗi khó Thường dùng trong phát triểnSWcần độ an toàn rất cao (ytế, hàng không, . . .) Pham Ngoc Hung, Coltech, VNU, 2009 33
- Mô hình hình thức: Điểm yếu? Cần nhiều thời gian và công sức để phát triển Phí đào tạo cao vì ít ngườicónềncănbảncho áp dụng mô hình hình thức Khó sử dụng rộng rãi vì cầnkiếnthứctoánvà kỹ năng của khách hàng Pham Ngoc Hung, Coltech, VNU, 2009 34
- Outline Software life-cycle Qui trình phát triểnPhầnmềm Các mô hình phát triển Mô hình tuyến tính Mô hình chế thử Mô hình phát triển ứng dụng nhanh Các mô hình tiến hóa Mô hình phát triển đồng thời Mô hình hướng thành phần Pham Ngoc Hung, Coltech, VNU, 2009 35
- Thảoluo luận Chọn mô hình nào cho phát triểnnPM? PM? Pham Ngoc Hung, Coltech, VNU, 2009 36
- Thựctrc trạng của ngành Công nghiệppPM PM Hầu hết các tổ chức/cty PM đều tách biệt hoàn toàn pha phát triển và pha bảotrì -> HT ( sản phầm PM) khó bảo trì -> Khó sử dụng lại các thành phần Quản lý dự án vs. quản lý sản phẩm Mở rộng mục tiêu củaviệcquảnlýđể bao quát được một họ các sản phẩm hơn là quản lý từng sảnphẩm riêng biệt Pham Ngoc Hung, Coltech, VNU, 2009 37
- Pham Ngoc Hung, Coltech, VNU, 2009 38
- Pham Ngoc Hung, Coltech, VNU, 2009 39