Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 3: Qui trình và mô hình bảo trì phần mềm - Nguyễn Thị Thanh Trúc

ppt 50 trang huongle 9150
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 3: Qui trình và mô hình bảo trì phần mềm - Nguyễn Thị Thanh Trúc", để 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:

  • pptbai_giang_phat_trien_van_hanh_bao_tri_phan_mem_chuong_3_qui.ppt

Nội dung text: Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 3: Qui trình và mô hình bảo trì phần mềm - Nguyễn Thị Thanh Trúc

  1. TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM PHÁT TRIỂN VẬN HÀNH BẢO TRÌ PHẦN MỀM ThS. NGUYỄN THỊ THANH TRÚC UIT-VNUHCM 2009 1
  2. Nội dung (Chương 3) QUI TRÌNH BẢO TRÌ PHẦN MỀM CÁC MÔ HÌNH BẢO TRÌ PHẦN MỀM KHI THỰC HiỆN THAY ĐỔI Thảo luận và làm bài tập Q&A UIT-VNUHCM 2009 Company Logo 2
  3. Chương 3: QUI TRÌNH VÀ MÔ HÌNH BẢO TRÌ PHẦN MỀM 3.1 QUI TRÌNH BẢO TRÌ PHẦN MỀM 3.2 CÁC MÔ HÌNH BẢO TRÌ PHẦN MỀM 3.3 KHI THỰC HiỆN THAY ĐỔI UIT-VNUHCM 2009 3
  4. Chương 3: QUI TRÌNH VÀ MÔ HÌNH BẢO TRÌ PHẦN MỀM 1. QUI TRÌNH BẢO TRÌ PHẦN MỀM o Định nghĩa o Qui trình sản phẩm phần mềm o Đánh giá phê bình qui trình mô hình truyền thống ü Code-and-Fix Model ü Waterfall Model ü Spiral Model 2. CÁC MÔ HÌNH BẢO TRÌ PHẦN MỀM o Mô hình Quick-Fix o Mô hình Boehm o Mô hình Osborne o Iterative Enhancement Model o Mô hình Reuse-Oriented 3. KHI THỰC HiỆN THAY ĐỔI o Tăng trưởng qui trình o Mô hình tăng trưởng CMM (Capability Maturity Model) cho phần mềm o Cơ sở kinh nghiệm phần mềm UIT-VNUHCM 2009 4
  5. 3.1 QUI TRÌNH BẢO TRÌ PHẦN MỀM qĐịnh nghĩa qQui trình sản phẩm phần mềm qĐánh giá phê bình qui trình mô hình truyền thống o Code-and-Fix Model o Waterfall Model o Spiral Model UIT-VNUHCM 2009 5
  6. Software Process Fundamental Assumption: Good processes lead to good software Good processes reduce risk Good processes enhance visibility UIT-VNUHCM 2009 6
  7. Basic Process Steps in all Software Development • Feasibility and planning • Requirements • System and program design • Implementation and testing • Acceptance testing and release • Operation and maintenance It is essential to distinguish among these process steps and to be clear which you are are doing at any given moment. Do not confuse requirements and design UIT-VNUHCM 2009 7
  8. Sequence of Processes (software lifecycle) Every software project will include these basic processes, in some shape or form, but they may be carried out in various sequences Major alternatives • Sequential: Complete each process step before beginning the next (but see the next few slides). Waterfall model. • Iterative: Go quickly through all process steps to create a rough system, then repeat them to improve the system. Iterative refinement. UIT-VNUHCM 2009 8
  9. Sequential Development: The Waterfall Model Feasibility study Requirements Requirements Design System design Program design Implementation Implementation (coding) Testing Acceptance & release Operation & maintenance UIT-VNUHCM 2009 9
  10. Thảo luận Waterfall Model Thuận lợi: • Process visibility • Separation of tasks • Quality control at each step • Cost monitoring at each step Không thuận lợi: Each stage in the process reveals new understanding of the previous stages, that often requires the earlier stages to be revised. The Waterfall Model is not enough! UIT-VNUHCM 2009 10
  11. Tính tuần tự của các qui trình Mô hình thuần tuần tự thì không thể Ví dụ: • Nghiên cứu khả thi không thể tạo ngân sách dự trù và lịch biểu mà không có nghiên cứu sơ bộ những yêu cầu và thiết kế thăm dò • Thiết kế chi tiết hay thực thi thường bộc lộ kẽ hơ trong đặc tả yêu cầu. Kế hoạch phải được cho phép cho những hình thành từ bước lặp. UIT-VNUHCM 2009 11
  12. Modified Waterfall Model-1 Feasibility study Waterfall model with feedback Requirements This is better System design Program design Implementation (coding) Testing Acceptance & release Operation & maintenance UIT-VNUHCM 2009 12
  13. Modified Waterfall Model-2 Feasibility study Test Software Requirements Test System design Design Test Program design Design Test Implementation Test Experimentation Debugging Test Acceptance Maintenance Test UIT-VNUHCM 2009 13
  14. Iterative/spiral Refinement Concept: Initial implementation for client and user comment, followed by refinement until system is complete Evaluation Requirements Implementation Design UIT-VNUHCM 2009 14
  15. The Spiral Process M I L E S T O N E S time Intermediate version Intermediate version (2nd prototype) X Product released X (prototype) X Iteration # 1 2 3 Requirements analysis 1 2 3 Design 1 2 3 Implementation 1 2 3 Evaluation UIT-VNUHCM 2009 1 2 3 15
  16. Mô hình Life-Cycle khác qBuild-and-fix model qRapid prototyping model qIncremental model qExtreme programming qComponent-based software engineering qMô hình đồng bộ hoá và ổn định (Synchronize -and-stabilize) model qObject-oriented life-cycle models UIT-VNUHCM 2009 16
  17. 1-Build and Fix Model UIT-VNUHCM 2009 17
  18. Lưu ý qHầu hết phần mềm được phát triển dùng mô hình build-and-fix model. Cơ bản là không có mô hình. oKhông đặc tả oKhông thiết kế qMô hình này hoàn toàn không thoả mãn và không nên được chấp nhận. UIT-VNUHCM 2009 18
  19. 3-Incremental development advantages q Customer value can be delivered with each increment so system functionality is available earlier. qEarly increments act as a prototype to help elicit requirements for later increments. qLower risk of overall project failure. qThe highest priority system services tend to receive the most testing. UIT-VNUHCM 2009 19
  20. MÔ HÌNH PHÁT TRIỂN TĂNG TRƯỞNG System/information Bản tăng 1 engineering analysis design code test Chuyền giao bản tăng 1 Chuyền giao Bản tăng 2 analysis design code test bản tăng 2 Chuyền giao Bản tăng 3 analysis design code test bản tăng 3 Bản tăng 4 analysis design code test Chuyền giao bản tăng 4 Thêi gian UIT-VNUHCM 2009 20
  21. HOẠT ĐỘNG PHÁT TRIỂN TĂNG TRƯỞNG Xác định yêu cầu Gán yêu cầu cho Thiết kế tổng thể các bản tăng kiến trúc Phát triển Tích hợp Kiểm thử Hệ thống bản tăng bản tăng hệ thống cuối cùng Hệ thống chưa hoàn thành UIT-VNUHCM 2009 21
  22. 4-Extreme Programming (XP) qLà một điển hình qui trình Agile qAppropriate for environments with: o Nhóm nhỏ o Yêu cầu thay đổi nhanh q Một số nguyên lý XP đặc nền tảng trên: o Small Releases – Phần mềm đã phát triển trong những giai đoạn đã được cập nhật thường xuyên o Simple Design – Hiện thực code cần đạt kết quả khách hàng mong đợi khôg nhấn mạnh đến version tương lai o Testing – Hoàn tất qua toàn bộ qui trình phát triển. Kiểm thử là thiết kế đầu tiên trước khi viết phần mềm UIT-VNUHCM 2009 22
  23. Component-based software engineering qBased on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. qCác giai đoan qui trình o Component analysis; o Requirements modification; o System design with reuse; o Development and integration. qThis approach is becoming increasingly used as component standards have emerged. UIT-VNUHCM 2009 23
  24. Reuse-oriented development UIT-VNUHCM 2009 24
  25. Các tiếp cận để phát triển phần mềm q Traditional systems development life cycle q Prototyping q Packaged software q End-user development q Outsourcing q Open source ØThảo luận Thuận lợi và Bất lợi các tiếp cận trên UIT-VNUHCM 2009 25
  26. Traditional systems development life cycle UIT-VNUHCM 2009 26
  27. Prototyping UIT-VNUHCM 2009 27
  28. Packaged software UIT-VNUHCM 2009 28
  29. End-User Development UIT-VNUHCM 2009 29
  30. Open-source UIT-VNUHCM 2009 30
  31. Maintenance Process (extended to real life) Ingredients of such a process (in general, Steve’s experience): qProcessing requests before starting to work on them, like: w Capturing maintenance requests w Investigating those requests – like testing to verify a bug and decide how hard to fix it w Deciding the time / cost to do, getting customer ok w Prioritizing requests – versus other requests! w Assigning to a sub-team to do qCoding and documenting (as per standards) qTesting with various configurations, other legacy code issues qDeciding to send it out (special, or in which sub-release) UIT-VNUHCM 2009 31
  32. Một ví dụ q Chú ý đến số lượng “pre- fixing” và những hoạt động truyền thông khác! From s.com/CustomerSupport/maint enance_process.asp. UIT-VNUHCM 2009 32
  33. Ví dụ khác qNhư trên From UIT-VNUHCM 2009 33
  34. Phân lớp qui trình then chốt (KEY) bảo trì phần mềm UIT-VNUHCM 2009 34
  35. Basic Strategies for Software Enhancement (one more review topic) q New versions coming out at regular intervals q Ongoing (technical) support – between or instead of releases UIT-VNUHCM 2009 35
  36. 3.2 CÁC MÔ HÌNH BẢO TRÌ PHẦN MỀM qMô hình Quick-Fix qMô hình Boehm qMô hình Osborne qIterative Enhancement Model qMô hình hướng sử dụng lại (Reuse-Oriented) UIT-VNUHCM 2009 36
  37. Quick-Fix q Thuận lợi o Nhanh o Có thể hữu ích cho dự án nhỏ q Không thuận lợi o Nhỏ hay không sưu liệu o Bất kỳ thiết kế trở nên ít hiệu quả vượt quá thời gian UIT-VNUHCM 2009 37
  38. Boehm’s q Thuận lợi o Qui trình được kiểm soát o Nhấn mạnh vào phản hồi q Không thuận lợi o Thấp hơn quick-fix UIT-VNUHCM 2009 38
  39. Osborne’s qThuận lợi o Liên quan đến tất cả giai đoạn chu trình sống o Sưu liệu được cập nhật qKhông thuận lợi o Phức tạp o Lots of Overhead UIT-VNUHCM 2009 39
  40. Iterative q Thuận lợi o Relatively simple o Allows for analysis q Không thuận lợi o Những quyết định bao gồm không rõ ràng o Appears informally to be on a tilt! UIT-VNUHCM 2009 40
  41. Reuse q Thuận lợi o Có thể dùng các thành phần từ các dự án khác o Code is modular q Không thuận lợi o Overhead in designing for reuse UIT-VNUHCM 2009 41
  42. 3.3 KHI THỰC HiỆN THAY ĐỔI qTăng trưởng qui trình qMô hình tăng trưởng CMM (Capability Maturity Model) cho phần mềm qCơ sở kinh nghiệm phần mềm UIT-VNUHCM 2009 42
  43. So sánh nỗ lực bảo trì & phát triển UIT-VNUHCM 2009 43
  44. QUI TRÌNH – Cải tiến nâng cao chất lượng q Quy trình khung là cơ sở để cải tiến tiến trình nâng cao chất lượng, năng suất q Quy trình khung phổ biến (Các chuẩn) Ø ISO Ø CMM (Capability Maturity Model) Ø CMMI (Capability Maturity Model Integration): 5 level ü Initial (chaotic, ad hoc, heroic) the starting point for use of a new process. ü Repeatable (project management, process discipline) the process is used repeatedly. ü Defined (institutionalized) the process is defined/confirmed as a standard business process. ü Managed (quantified) process management and measurement takes place. ü Optimising (process improvement) process management includes deliberate process optimization/improvement. UIT-VNUHCM 2009 44
  45. Cơ sở tri thức kinh nghiệm qTri thức được hình thành từ hướng dẫn (guidleline),mô hình hay thể hiện rõ ràng kỹ năng nhân sự. qTổ chức tạo ra hệ thống để hỗ trợ và chia sẽ kinh nghiệm. 4 yếu tổ đòi hỏi thực thi thành công cơ sở tri thức kinh nghiệm: o Thay đổi văn hoá o Tính ổn định o Giá tri nghiệp vụ (business value) o Thực thi tăng cường UIT-VNUHCM 2009 45
  46. Các khía cạnh cơ bản của bảo trì – kiến thức Các khía cạnh cơ bản của kỹ sư bảo trình khi thực hiện thay đổi, va tri thức hỗ trợ trong bảo trì UIT-VNUHCM 2009 46
  47. Vận dụng Công cụ KM Agent hỗ trợ Bảo trì UIT-VNUHCM 2009 47
  48. Vấn đề tham dự trong quá trình bảo trì ? q Hiểu hệ thống hiện hành o Hệ thống thực sự làm được gì? o Ở đâu cần thay đổi? o Các phần của phần mềm liên quan với nhau như thế nào? q Thực thi sự thay đổi q Kiểm thử q Nhận diện nhu cầu thay đổi q Thảo luận o Hiểu chương trình ? o Tác động thay đổi? o Kiểm thử ? o Vấn đề Quản lý? UIT-VNUHCM 2009 48
  49. Bài tập & thảo luận qExercise 5.6: Bạn thực hiện gì ở dự án phần mềm vừa qua? Đó là dự án thương mại & dự án cấp đại học hay dự án nhân sự. Hãy viết đánh giá mô hình chu trình sống mà bạn đã làm. Nó có đảm bảo có cấu trúc hay không dự định. Bạn có thực hiện mô hình khác nếu như bạn bắt đầu dự án này một lần nữa qExercise 5.7: Bạn là IT manager phải có trách nhiệm với hệ thống thư viện lớn bị lỗi không mong đợi vào sáng thứ hai. Bạn đã trải qua các bước để thực hiện nó như thế nào: o 1. Nó cấp bách phải mất 2 giờ để thực hiện o 2. Nếu thư viện có chức năng tương đương cho vài ngày mà không có hệ thống phần mềm UIT-VNUHCM 2009 49
  50. Yêu cầu thực hiện tuần tiếp theo qViết lại các báo cáo cho các thảo luận trên lớp qBài tập 1: Tìm hiểu qui trình nâng cao đảm bảo chất lượng (slide 42) qBài tập 2: Tìm hiểu Knowledge Management Agent hỗ trợ qui trình bảo trì (software maintenance process) qDeadline tối hôm trước của buổi học kế tiếp qChuẩn bị báo cáo khả thi cho đồ án của nhóm, kết hợp thảo luận với nhóm khách hàng. Sẽ dành thời gian cho các nhóm luân phiên lên trình bày với các khách hàng thứ (Trên lớp) qKhách mời cho tuần tới là doanh nghiệp và khách hàng của nhóm 19 & 20 : Giới thiệu Open source UIT-VNUHCM 2009 50