Bài giảng Công nghệ phần mềm - Chương 2: Tiến trình phần mềm - Hoàng Thị Hà

pdf 46 trang Gia Huy 17/05/2022 2280
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 - Chương 2: Tiến trình phần mềm - Hoàng Thị Hà", để 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:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_2_tien_trinh_phan_mem_ho.pdf

Nội dung text: Bài giảng Công nghệ phần mềm - Chương 2: Tiến trình phần mềm - Hoàng Thị Hà

  1. CHƯƠNG 2: Tiến trình phần mềm GV: Hoàng Thị Hà Email: htha@vnua.edu.vn 1
  2. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Nội dung 1. Tiến trình phần mềm 2. Ba mô hình tiến trình chung . Mô hình thác nước(Waterfall model) . Mô hình tiến hóa làm mẫu(Prototyping model ) . Mô hình hướng thành phần 3. Mô hình phát triển nhanh (RAD Model) 4. Tiến trình lặp 5. Mô hình tăng trưởng (Incremental model) 6. Mô hình xoắn ốc (Spiral model) 7. Các mô hình hiện đại (Fourth generation techniques) 8. Các hoạt động chung của Quy trình phần mềm 9. Giới thiệu các CASE để hỗ trợ các hoạt động của tiến trình phần mềm 05/10/2018 2
  3. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 1. Tiến trình phần mềm 1. Một tập các hoạt động được yêu cầu để phát triển một hệ thống phần mềm. . Đặc tả (Specification) . Thiết kế (Design;) . Xác thực (Validation) . Tiến hóa (Evolution.) 2. Một mô hình tiến trình là một biểu diễn trừu tượng của 1 tiến trình. Một mô tả cuả một tiến trình từ một góc độ nào đó. 05/10/2018 3
  4. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2. Mô hình tiến trình phần mềm chung 1. Mô hình thác nước – The waterfall model . Tách rời các pha đặc tả và phát triển riêng biệt 2. Mô hình Phát triển tiến hóa – Evolutionary development . Mô hình làm mẫu (Prototyping model) . Mô hình làm mẫu mở rộng – Các pha đặc tả, phát triển và thẩm định xen kẽ nhau 3. Mô hình CNPM dựa thành phần – Component-based SE – Hệ thống được lắp ráp từ các thành phần có sẵn 05/10/2018 4
  5. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2.1. Mô hình tiến trình phần mềm chung Mô hình thác nước 05/10/2018 5
  6. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2.1. Mô hình thác nước - Các pha trong mô hình thác nước 1. Phân tích và định nghĩa yêu câu 2. Thiêt kế hệ thống và phần mêm 3. Code và kiểm thử đơn vị 4. Kiểm thử tích hợp và kiểm thử hệ thống 5. Vận hành và bảo trì 05/10/2018 6
  7. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2.1. Mô hình thác nước – Nhược điểm Nhược điểm chính của mô hình thác nước là khó khăn của việc sửa lỗi sau khi quy trình đã vào guồng. Pha này phải hoàn tất trước khi bước vào pha tiếp theo. 05/10/2018 7
  8. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2.1. Mô hình thác nước – Các vấn đề 1. Khó đáp ứng việc khách hàng thay đổi yêu cầu . Do việc phân dự án thành các giai đoạn riêng biệt 2. Chỉ thích hợp khi các yêu cầu được hiểu rõ và ít thay đổi trong quá trình phát triển. 3. Ít hệ thống các doanh nghiệp có yêu cầu ổn định 4. Mô hình thác nước chỉ phù hợp cho các dự án phần mềm lớn, ở đó các hệ thống được phát triển tại các địa điểm khác nhau. 05/10/2018 8
  9. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2.2. Mô hình phát triển tiến hóa(1) (Evolutionary development) 1. Phát triển thăm dò (exploratory development) . Mục đích là làm việc với khách hàng và từng bước phát triển hệ thống cuối cùng từ một sơ lược đặc tả ban đầu. Nên bắt đầu từ một yêu cầu đã hiểu rõ nhất và bổ sung các tính năng mới khi khách hàng đề xuất. 2. Phiên bản dùng thử nghiệm (Throw-away prototyping) . Mục đích để hiểu các yêu cầu hệ thống. Nên bắt đầu với một tập các yêu cầu chưa được hiểu rõ để hiểu rõ yêu cầu nào thực sự cần thiết. 05/10/2018 9
  10. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2. 2. Mô hình phát triển tiến hóa(2) Các hoạt động đồng thời 05/10/2018 10
  11. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2.2. Mô hình phát triển tiến hóa(3) 1. Các vấn đề . Tính quy trình không thể hiện rõ ràng; . Các hệ thống thường có cấu trúc tồi . Cần các kỹ năng đặc biệt (e.g. sử dụng các ngôn ngữ để xây dựng cấp tốc các phiên bản thử nghiệm) 2. Ứng dụng . Cho các hệ thống có kích thước nhỏ hoặc trung bình; . Cho 1 phần của các hệ thống lớn ; . Cho các hệ thống chỉ dùng trong thời gian ngắn (short-lifetime systems) 05/10/2018 11
  12. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 2. 3. Công nghệ phần mềm dựa thành phần (Component-based software engineering) 1. Dựa trên việc tái sử dụng 1 cách có hệ thống 2. Các hệ thống được tích hợp từ các thành phần có sẵn hoặc các hệ thống COTS (Commercial- off-the-shelf) để người dùng mua về cài trên máy. 3. Các pha trong quy trình . Phân tích các thành phần (Component analysis) . Sửa các yêu cầu (Requirements modification) . Thiết kế hệ thống với tái sử dụng (System design with reuse); . Phát triển và tích hợp (Development and integration) 4. Tiếp cận này ngày càng được sử dụng nhiều khi các chuẩn thành phần đã được xuất hiện 05/10/2018 12
  13. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Phát triển hướng tới tái sử dụng 05/10/2018 13
  14. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 3. Mô hình phát triển nhanh (RAD model) 1. Là mô hình tăng dần với chu kỳ phát triển cực ngắn. Để đạ tđược mục tiêu này, RAD dựa trên phương pháp phát triển trên cơ sở thành phần hoá hệ thống cùng với việc tái sử dụng các thành phần thích hợp. RAD thích hợp cho những hệ thống quản lý thông tin. 2. RAD - dựa vào phương pháp luận,điều chỉnh các giai đoạn SDLC đểtạo ra một sốphần của hệthống phát triển nhanh và vào các thao tác thủ công của người sử dụng. 3. Phần lớn RAD - dựa vào phương pháp luận mà người phân tích sử dụng các kỹ thuật đặc biệt và công cụ máy tính để tăng tốc các giai đoạn phân tích, thiết kế, và thực hiện, như công cụ CASE (computer-aided software engineering). 05/10/2018 14
  15. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 4. Tiến trình lặp 1. Các yêu cầu hệ thống LUÔN LUÔN thay đổi trong quá trình thực hiện một sự án, do đó trong quy trình cho các hệ thống luôn luôn có có việc lặp lại quy trình (process iteration) mà trong đó các giai đoạn đã qua được thực hiện lại. 2. Việc lặp lại có thể được áp dụng cho bất kỳ mô hình quy trình tổng quát nào. 3. Có 2 cách tiếp cận . Chuyên giao tăng dần – Incremental delivery; . Phát trien kiểu xoắn ôc – Spiral development. 05/10/2018 15
  16. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 5. MÔ HÌNH CHUYỂN GIAO TĂNG DẦN (Incremental model ) 1. Việc chuyển giao được chia thành các đợt. 2. Gắn độ ưu tiên cho các yêu cầu, những yêu cầu có độ ưu tiên cao nhất cần được chuyển giao từ đợt đầu tiên. 3. Khi hoạt động phát triển được bắt đầu, bộ yêu cầu người dùng được đóng băng. Các thay đổi các yêu cầu được dùng cho đợt sau. 05/10/2018 16
  17. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Phát triển tăng dần 05/10/2018 17
  18. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Ưu điểm của Phát triển hệ thống tăng dần 1. Khách hàng sớm được bàn giao sản phẩm(theo từng phần) 2. Các đợt đầu đóng vai trò như bản thử nghiệm, giúp gợi ra yêu cầu cho đợt sau. 3. Rủi ro thấp đối với thất bại trên toàn bộ dự án. 4. Các hệ thống có độ ưu tiên cao có xu hướng được kiểm thử nhiều nhất 05/10/2018 18
  19. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 6. Phát triển kiểu xoắn ốc (Spiral development) 1. Quy trình được biểu diễn dưới dạng chuỗi xoắn ốc thay vì các hoạt động với các bước quay lui 2. Mỗi vòng trong đường xoắn ốc đại diện cho 1 pha trog quy trình. 3. Không có các pha cố định như đặc tả hoặc thiết kế được lặp lại. Các pha được lựa chọn tùy theo nhu cầu. 4. Rủi ro được đánh giá một cách tường minh và được giải quyết trong suốt quy trình. 05/10/2018 19
  20. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Các phân vùng(sectors) của mô hình xoắn ốc 1. Xác định mục tiêu (Objective setting) . Xác định mục tiêu cho mỗi pha được nhận diện. 2. Đánh giá và giảm thiểu rủi ro . Các rủi ro được đánh giá và các hoạt động được đưua ra để giảm thiểu các rủi ro chính. 3. Phát triển và thẩm định (Development and validation) . Một mô hình phát triển cho hệ thống được chọn, nó có thể là bất kỳ mô hình chung nào. 4. Lập kế hoạch (Planning) . Review dự án và lập kế hoạch cho pha tiếp theo của đường xoắn ốc. 05/10/2018 20
  21. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Phát triển kiểu xoắn ốc (Spiral development) 05/10/2018 21
  22. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 7. Các mô hình hiện đại (Fourth generation techniques) 05/10/2018 22
  23. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 8. Các hoạt động chung của quy trình 1. Đặc tả (Software specification) 2. Thiết kế và cài đặt (Software design and implementation) 3. Thẩm định (Software validation) 4. Tiến hóa (Software evolution) 05/10/2018 23
  24. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Software specification 1. Quy trình thiết lập các dịch vụ được yêu cầu và các ràng buộc đối với hoạt động của hệ thống và phát triển hệ thống. 2. Tiến trình kỹ nghệ yêu cầu . Nghiên cứu tính khả thi -Feasibility study; . Thu thập và phân tích yêu cầu - Requirements elicitation and analysis; . Xác định yêu cầu - Requirements specification; . Thảm định yêu cầu - Requirements validation. 05/10/2018 24
  25. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến trình kỹ nghệ yêu cầu 05/10/2018 25
  26. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến trình kỹ nghệ yêu cầu 1. Nghiên cứu tính khảthi: . ước lượng xem liệu những yêu cầu của người dùng có được thỏa mãn khi sử dụng các kỹ thuật phần cứng và phần mềm hiện có. . Liệu dự án có được kinh phí hợp lý, phù hợp với mục tiêu kinh doanh của tổ chức. . Kết quả đưa ra sẽ quyết định những công việc thực hiện tiếp theo và được phân tích một cách chi tiết hơn. 05/10/2018 26
  27. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến trình kỹ nghệ yêu cầu 2. Thu thập và xác định yêu cầu . Chỉ ra những yêu cầu của hệ thống thông qua việc quan sát các hệ thống đang tồn tại, thảo luận với người dùng tiềm năng và người mua, người phân tích nhiệm vụ. . Công việc này có thể liên quan tới việc phát triển một hoặc nhiều mô hình hệ thống và các phần mềm mẫu (prototype) 05/10/2018 27
  28. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến trình kỹ nghệ yêu cầu 3. Đặc tảyêu cầu Chuyển từ những thông tin thu thập được trong quá trình phân tích thành tài liệu chứa những yêu cầu. Có 2 kiểu yêu cầu trong tài liệu này: . Yêu cầu người dùng cuối hoặc yêu cầu khách hàng, có mức trìu tượng cao hơn . Yêu cầu hệ thống, mô tả chi tiết hơn các chức năng của hệ thống. 05/10/2018 28
  29. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến trình kỹ nghệ yêu cầu 4. Xác nhận yêu cầu . Kiểm tra các yêu cầu xem nó có mang tính hiện thực, thống nhất và đầy đủ không. . Trong quá trình đặc tả, những lỗi trong tài liệu yêu cầu là không thể tránh khỏi. Những lỗi này cần phải được khắc phục ngay lập tức để tránh dẫn đến lỗi trong các bước tiếp theo. . Các hoạt động nghiên cứu tính khả thi, phân tích và đặc tả yêu cầu được tiến hành xen kẽ nhau 05/10/2018 29
  30. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Thiết kế và cài đặt phần mềm 1. Biến đổi từ bản đặc tả thành một hệ thống có thể chạy được. 2. Thiết kế phần mềm: Thiết kế một cấu trúc phần mềm mà hiện thực hóa được đặc tả. 3. Cài đặt: Dịch cấu trúc bản thiết kế thành chương trình máy trính chạy được. 4. Các hoạt động thiết kế và cài đặt có quan hệ chặt chẽ với nhau và có thể xen kẽ. 05/10/2018 30
  31. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Các hoạt động thiết kế 1. Thiết kế kiến trúc - Architectural design 2. Đặc tả trừu tượng - Abstract specification 3. Thiết kế giao diện - Interface design 4. Thiết kế thành phần - Component design 5. Thiết kế cấu trúc dữ liệu- Data structure design 6. Thiết kế thuật toán - Algorithm design 05/10/2018 31
  32. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Quy trình thiết kế phần mềm 05/10/2018 32
  33. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 1. Architectural design: các hệ thống con tạo nên hệ thống chính và mối quan hệ giữa chúng được xác định và tài liệu hóa (Detail: Chap 11, 12,23) 2. Abstract specification: Với mỗi hệ thống con, người ta phải xây dựng một bản mô tả trìu tượng về các dịch vụ và những ràng buộc của nó. 3. Interface design: Với mỗi hệ thống con, giao diện của nó với các hệ thống con khác được thiết kế và tài liệu hóa. Giao diện phải không nhập nhằng và cho phép các hệ thống khác sử dụng mà không cần biết các hoạt động bên trong. 4. Component design: các dịch vụ được bố trí vào các thành phần và giao diện của các thành phần này được thiết kế. 5. Data structure design: Các cấu trúc dữ liệu được sử dụng trong việc triển khai hệ thống được thiết kế chi tiết và cụ thể. 6. Algorithm design: Các thuật toán được sử dụng để cung cấp các dịch vụ được thiết kế chi tiết và cụ thể. 05/10/2018 33
  34. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Lập trình và tìm lỗi 05/10/2018 34
  35. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Thẩm định phần mềm - Software validation 1. Kiểm định(Verification) và thẩm định(validation) nhằm chứng tỏ rằng một hệ thống:  Tuân theo đặc tả (Verification)  Đáp ứng các yêu cầu của khách hàng hệ thống (validation). 2. Bao gồm các quy trình Cheking và Review các quy trình và kiểm thử hệ thống (test system) . Kiểm thử hệ thống liên quan đến việc thực thi hệ thống với các trường hợp kiểm thử được dẫn xuất từ đặc tả 05/10/2018 35
  36. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Quy trình kiểm thử 05/10/2018 36
  37. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Các giai đoạn kiểm thử (Testing stages) 1. Component or unit testing . Các thành phần riêng lẻ được kiểm thử một cách độc lập . Các thành phần có thể là các function hoặc các Object hoặc các nhóm kết hợp của các thực thể này. 2. System testing . Là kiểm thử toàn bộ. 3. Acceptance testing (alpha testing) . Kiểm thử với dữ liệu do khách hàng cung cấp để kiểm tra hệ thống thõa mãn các yêu cầu cuả khách hàng. 05/10/2018 37
  38. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Các pha kiểm thử 05/10/2018 38
  39. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến hóa phần mềm - Software evolution 05/10/2018 39
  40. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Tiến hóa hệ thống (System evolution) 05/10/2018 40
  41. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam 9. Computer-aided software engineering(CASE) 1. CASE là tên của những phần mềm được sử dụng để hỗ trợ các hoạt động trong tiến trình sản xuất phần mềm: kỹ nghệ yêu cầu, thiết kế, phát triển chương trình và kiểm thử. 2. Kỹ thuật CASE giúp tự động hóa một số hoạt động trong tiến trình sản xuất phần mềm. 05/10/2018 41
  42. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Phân loại CASE 1. 03 cách phân loại . A functional perspective: Phân loại theo chức năng . A process perspective: Phân loại theo tiến trình nó hỗ trợ . An integration perspective 05/10/2018 42
  43. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Phân loại theo chức năng Tool type Examples Planning tools PERT tools, estimation tools, spreadsheets Editing tools Text editors, diagram editors, word processors Change management tools Requirements traceability tools, change control systems Configuration management tools Version management systems, system building tools Prototyping tools Very high-level languages, user interface generators Method-support tools Design editors, data dictionaries, code generators Language-processing tools Compilers, interpreters Program analysis tools Cross refe rence generators, static analysers, dynamic analysers Testing tools Test data generators, file comparators Debugging tools Interactive debugging systems Documentation tools Page layout programs, image editors Re-engineering tools Cross-reference systems, program re-structuring systems 05/10/2018 43
  44. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Activity-based tool classification Re-eng ineering tools Testing tools Debugg ing tools Program analysis tools Language-processing tools Method suppor t tools Prototyping tools Configuration management tools Change management tools Documentation tools Editing tools Planning tools Specification Design Implementation Verification 05/10/2018 and 44 Validation
  45. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam Question? 05/10/2018 45
  46. KHOA CÔNG NGHỆ THÔNG TIN Học viện Nông nghiệp Việt Nam CÂU HỎI ÔN TẬP 1. Tiến trình phần mềm là gì? Có những kiểu mô hình tiến trình chung nào? 2. Trình bày mô hình thác nước . 3. Với những kiểu dựa án nào ta nên sử dụng mô hình thác nước. Hãy giải thích tại sao? 4. Phân biệt mô hình bản mẫu với mô hình thác nước 5. Phân biệt mô hình tăng trưởng với mô hình thác nướ 6. Mô hình phát triển xoắn ốc phù hợp với kiểu dự án nào? Hãy giải thích? 7. Hãy nêu những ưu điểm và nhược điểm của mô hình phát triển tiến hóa. 8. Hãy nêu các hoạt động chung trong tiến trình phần mềm. 9. CASE là gì? Nêu tầm quan trọng của CASE trong phát triển phần mềm. 05/10/2018 46