Những điều kiện kinh doanh và thị trường mới gây ra thay đổi những yêu cầu sản phẩm và qui tắc nghiệp vụ (business rules). Khách hàng mới cần thay đổi nhu cầu dữ liệu, chức năng hay dịch vụ phân phối bởi hệ thống. Tái tổ chức hay cắt giảm kinh doanh mà thay đổi ưu tiên và cấu trúc nhóm (team). Ràng buộc ngân sách và lịch trình gây ra tái định nghĩa hệ thống.
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 Khoa Công Nghệ Phần Mềm UIT-VNUHCM 2009 Nội dung (Chương 2) Nền tảng thay đổi phần mềm Mối liên quan kinh tế việc cập nhật phần mềm Giải pháp tiềm vấn đề bảo trì Thảo luận làm tập Q&A UIT-VNUHCM 2009 Company Logo Chương 2: NỀN TẢNG CỦA SỰ THAY ĐỔI PHẦN MỀM 2.1 Nền tảng thay đổi phần mềm 2.2 Mối liên quan kinh tế việc cập nhật phần mềm 2.3 Giải pháp tiềm vấn đề bảo trì UIT-VNUHCM 2009 Chương 2: NỀN TẢNG CỦA SỰ THAY ĐỔI PHẦN MỀM NỀN TẢNG SỰ THAY ĐỔI PHẨN MỀM o Sự thay đổi phần mềm o Phân loại thay đổi Corrective Change (Thay đổi hiệu chỉnh) Adaptive Change (Thay đổi thích nghi) MỐI LIÊN HỆ KINH TẾ CỦA ViỆC CẬP NHẬT PHẦN MỀM o o o o o Giới hạn thay đổi Hạn chế tài nguyên Chất lượng hệ thống tồn Chiến lược tổ chức Tính trì trệ (khơng thay đổi) GiẢI PHÁP TiỀM NĂNG ĐỐI VỚI VẤN ĐỀ BẢO TRÌ o cấp phát Ngân sách Nỗ lực (Effort) o Hoàn chỉnh thay hệ thống o Bảo trì hệ thống tồn UIT-VNUHCM 2009 2.1 NỀN TẢNG CỦA SỰ THAY ĐỔI PHẦN MỀM Sự thay đổi phần mềm o Tiến hoá phần mềm Loại phần mềm Luật tiến hoá Phân loại thay đổi o o o o Thay đổi hiệu chỉnh (Corrective Change) Thay đổi thích nghi (Adaptive Change) Thay đổi hồn chỉnh (Perfective Change) Thay đổi ngăn ngừa (Preventive Change) UIT-VNUHCM 2009 Luật Công nghệ phần mềm “No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle” Bersoff et al (1980) UIT-VNUHCM 2009 Nguồn thay đổi Những điều kiện kinh doanh thị trường gây thay đổi yêu cầu sản phẩm qui tắc nghiệp vụ (business rules) Khách hàng cần thay đổi nhu cầu liệu, chức hay dịch vụ phân phối hệ thống Tái tổ chức hay cắt giảm kinh doanh mà thay đổi ưu tiên cấu trúc nhóm (team) Ràng buộc ngân sách lịch trình gây tái định nghĩa hệ thống HẦU HẾT SỰ THAY ĐỔI LÀ CÓ LÝ DO CHÍNH ĐÁNG UIT-VNUHCM 2009 Bảo trì SDLC Qui trình phát triển phần mềm Waterfall, có hộp cuối qui trình bỏ qua mơ tả qui trình Chu trình cải tiến Spiral Model,bảo trì phù hợp nhiều vị trí bật Bảo trì liên quan đến khía cạnh SDLC Ví dụ: Pressman khơng có chương cụ thể Bảo Trì, Somerville có 15 trang 742 trang UIT-VNUHCM 2009 Loại chương trình Chương trình S-type (“Specifiable”) Source: Adapted from Lehman 1980, pp1061-1063 o Vấn đề khẳng định hình thức hồn chỉnh o Chấp nhận: Chương trình có xác đặc tả nó? o Phần mềm khơng tiến triển Thay đổi đặc tả định nghĩa vấn đề mới, chương trình Chương trình P-type (“Problem-solving”) o Khẳng định khơng xác vấn đề giới thực o Chấp nhận: Chương trình giải pháp chấp nhận vấn đề? o Phần mềm xem tiến triển liên tục Bởi giải pháp khơng hồn hảo, cải tiến Bởi giới thực thay đổi vấn đề thay đổi Chương trình E-type (“Embedded”) o Một hệ thống trở thành phần giới mơ hình hố o Chấp nhận: phụ thuộc tồn vào ý kiến phán xét o Phần mềm vốn tiến hoá Thay đổi phần mềm giới tác động lẫn UIT-VNUHCM 2009 Source: Adapted from Lehman 1980, pp1061-1063 may relate to formal statement controls the of problem production of real worl d maybe of interest to change PROGRAM solution real worl d abstract view of world provides S-type P-type compare change requirements specification E-type real world solution change PROGRAM PROGRAM abstract view of world requirements specification model UIT-VNUHCM 2009 10 Tại bảo trì tốn ? Hầu hết phần mềm có từ 10 and 15 năm Nhiều phần mềm tuổi tạo kích thước chương trình không gian lưu trữ yêu tố quan trọng Điều dẫn đến không thay đổi thiết kế, code, sưu liệu Bảo trì thực đội ngũ khơng có kinh nghiệm khơng quen với ứng dụng Người phát triển khơng thích bảo trì Thay đổi thường gây lỗi hệ thống Thay đổi hướng làm manh mún cấu trúc chương trình Thay đổi thường khơng ghi sưu liệu UIT-VNUHCM 2009 31 Yếu tố tác động đến chi phí bảo trì Tính độc lập module o Khả thay đổi phần hệ thống o Thuận lợi tiềm OO Ngơn ngữ lập trình o Mức độ ngơn ngữ lập trình cao, bảo trì rẻ o C – ngơn ngữ chữ viết :-) Kiểu chương trình o Cách thức chương trình viết Đánh giá kiểm thử chương trình o Càng nhiều thời gian nỗ lực chi cho đánh giá thiết kế chương trình, lỗi nhu cầu bảo trì hiệu chỉnh UIT-VNUHCM 2009 32 Yếu tố tác động đến chi phí bảo trì (2) Chất lượng sưu liệu chương trình o Sưu liệu tốt, việc bảo trì dễ dàng Kỹ thuật quản lý cấu hình o Lưu vết tất tài liệu hệ thống đảm bảo chúng phù hợp chi phí bảo trì, cơng cụ quản lý cấu hình (CM tools) thực tế giảm chi phí Phạm vi ứng dụng o Càng hiểu phạm vi hiểu kỹ, the less wellunderstood the domain, nhu cầu xảy lớn cho bảo trì thích nghi người dùng người phát triển bắt đầu hiểu phạm vi Ổn định đội ngũ o Chi phí bảo trì giảm người phát triển phải bảo trì hệ thống họ, thường qua chu kỳ sống hệ thống UIT-VNUHCM 2009 33 Yếu tố tác động đến chi phí bảo trì (3) Tuổi hệ thống o Hệ thống cũ, nhiều mức độ manh mún khó bảo trì o Lơi đội ngũ người biết hệ thống cũ ngôn ngữ, DB, vận hành trở nên khó nhiều kinh nghiệm Phù thuộc hệ thống mơi trường ngồi o Sự phụ thuộc cao,càng nhiều bảo trì thích nghi cần Độ ổn định phần cứng o Nếu platform phần cứng không thay đôi qua thời gian hệ thống, bảo trì cho ngun nhân khơng cần UIT-VNUHCM 2009 34 Khác Bảo trì Phát triển Ràng buộc hệ thống tồn o Thay đổi phải phù hợp hay tương thích với kiến trúc tồn tại, thiết kế, ràng buộc mã nguồn Khung thời gian ngắn o Phát triển khoảng tháng trở lên o Bảo trì tính hay ngày tháng Tính sẵn sàng liệu kiểm thử o Phát triển tạo tất liệu từ hỗn tạp o Bảo trì dùng liệu kiểm tra tồn với regression testing, tạo liệu từ thay đổi UIT-VNUHCM 2009 35 Bài tập & Thảo luận (1) Bài tập 3.1 Mô tả thay đổi khác mà sản phẩm phần mềm trải qua lý cho loại Bài tập 3.2 : Giải thích cho quan trọng để phân biệt loại khác thay đổi phần mềm UIT-VNUHCM 2009 36 Bài tập & Thảo luận (2) Bài tập 3.3 Ongoing support không cho cần thiết dẫn đến thay đổi chương trình nên xem phần bảo trì khơng? Ý kiến bạn Bài tập 4.1: Chọn gói phần mềm (software package) biết liên quan nhiều version Liệt kê thay đổi thực version khác Có Rào cản thực chức cụ thể version UIT-VNUHCM 2009 37 2.3 GiẢI PHÁP TiỀM NĂNG ĐỐI VỚI VẤN ĐỀ BẢO TRÌ Tái cấp phát Ngân sách Nỗ lực (Effort) o Ít tài nguyên để phát triển cho hệ thống khó bảo tri khó, ngược lại đầu tư nhiều cho phát triển, đặc tả thiết kế với hệ thống bảo trì o Sử dụng nhiều đặc tả yêu cầu thiết kế trước phê duyệt, kỹ thuật thiết kế, công cụ, chất lượng đảm bảo tiêu chuẩn ISO … làm hệ thống bảo trì Hoàn chỉnh thay hệ thống o Ràng buộc kinh tế o Lỗi thường trú hệ thống o Cơ sở liệu thơng tin Bảo trì hệ thống tồn UIT-VNUHCM 2009 38 Những vấn đề đối mặt người bảo trì 5 vấn đề hàng đầu: o (Kém) Chất lượng sưu liệu o o o o Source: Adapted Pfleeger 1998, p423-424 See also, van Vliet, 1999, pp464-467 Nhu cầu người dùng cho việc cải tiến mở rộng Nhu cầu đối đầu thời gian người bảo trì Khó khăn trong buổi họp cam kết lịch trình Doanh thu tổ chức người dùng Sự hiểu biết hạn chế o 47% nỗ lực bảo trì phần mềm dành cho hiểu phần mềm Thí dụ: hệ thống có m thành phần cần thay đổi k chúng … …Có k*(m-k) + k*(k-1)/2 giao diện kiểm tra tác động o Cùng , >50% nỗ lực đóng góp cho thiếu hiểu biết người dùng I.e báo cáo khơng hồn chỉnh sai lầm lỗi cải tiến Tinh thần Thấp o Bảo trì phần mềm xem xét thích thú việc phát triển UIT-VNUHCM 2009 39 Cách tiếp cận bảo trì Triết lý bảo trì Source: van Vliet,1999, pp473-475 o “throw-it-over-the-wall” – người khác chịu trách nhiệm cho bảo trì Đầu tư kiến thức kinh nghiệm uổng phí Bảo trì trở thành thách thức reverse engineering o “mission orientation” – nhóm phát triển thực cam kết giới hạn để bảo trì phần mềm Mơ hình qui trình bảo trì Basili: o Quick-fix model Thay đổi làm mức lập trình (code) dễ dàng Phân rã (manh mún) nhanh cấu trúc phần mềm o Iterative enhancement model Thay đổi thực dựa phân tích hệ thống tồn Cố gắng kiểm sốt độ phức tạp trì thiết kết tốt o Full-reuse model Bắt đầu yêu cầu hệ thống mới, tái sử dụng nhiều Cần tăng trưởng văn hố dùng lại để thành công UIT-VNUHCM 2009 40 Làm trẻ lại phần mềm (Software Rejuvenation) Redocumentation Source: van Vliet, 1999, Pp455-457 o Tạo hay xem lại thể thay đổi phần mềm Tại mức độ trừu tượng hoá o Phát sinh : Bảng giao diện liệu, đồ hình gọi hàm, thành phần/biến qua bảng tham chiếu etc Restructuring o Chuyển dịch phần code hệ thống mà không thay đổi hành vi Reverse Engineering o Phân tích hệ thống để xác thơng tin hành vi hay cấu trúc Cũng khôi phục thiết kế - Tạo lại trừu tượng thiết kế từ code, tài liệu, kiến thức phạm vi o Phát sinh: Sơ đồ cấu trúc, lược đồ quan hệ thực thể, DFD, mơ hình u cầu Reengineering o Kiểm tra thơng báo hệ thống khơi phục hình thức khác o Cũng cần biết nâng cấp, phân loại lại UIT-VNUHCM 2009 41 Reuse Dùng lại phần mềm để cắt giảm chi phí Source: van Vliet, 1999, Chapter 17 o Phát triển phần mềm tốn kém, dùng lại cho hệ thống liên quan Hướng tiếpcận thành công tập trung sử dụng lại tri thức kinh nghiệm sản phẩm phần mềm Tính kinh tế việc dùng lại phức tạp tốn nhiều để phát triển reusable software Thư viện thành phần sử dụng lại o Thư viện phạm vi cụ thể (e.g Math libraries) o Thư viện phát triển chương trình (e.g Java AWT, C libraries) Domain Engineering o Phân chia phát triển phần mềm thành phần : Phân tích phạm vi – nhận diện thành phần dùng lại có chung đặc điểm cho phạm vi vấn đề Phát triển ứng dụng – dùng thành phần phạm vi cho ứng dụng cụ thể Họ phần mềm o Nhiều công ty đề nghị dãy hệ thống phần mềm liên quan Chọn kiến trúc ổn định cho họ phần mềm Nhận diện đa dạng cho thành viên khác họ o Thể định chiến lược kinh doanh phần mềm để phát triển UIT-VNUHCM 2009 42 Thúc đẩy đội ngũ bảo trì Thường xem xét đến dead-end tổ chức chán nản Quyết định đến thành công tổ chức Chiến lược o o o o Cặp mục tiêu phần mềm mục đích tổ chức Cặp Phần thưởng bảo trì phần mềm với thực tổ chức Tích hợp nhân bảo trì phần mềm với nhóm vận hành Tạo biện pháp, hoàn chỉnh/ngăn ngừa, ngân sách bảo trì cho phép nhóm bảo trì định re-engineer hệ thống o Lối kéo độ ngũ bảo trì sớm qui trình phần mềm suốt chuẩn bị qui chuẩn, review, chuẩn bị kiểm thử UIT-VNUHCM 2009 43 Tài liệu tham khảo van Vliet, H “Software Engineering: Principles and Practice (2nd Edition)” Wiley, 1999 oChapter 14 is a very good introduction to the problems and approaches to software maintenance Chapter 17 covers software reuse in far more detail than we’ll go into on this course Lehman, M.M “Programs, Life Cycles, and Laws of Software Evolution” Proceedings of the IEEE, vol 68, no 9, 1980 oLehman was one of the first to recognise that software evolution is a fact of life His experience with a number of large systems led him to formulate his laws of evolution This paper is included in the course readings It is widely cited Pfleeger, S L “Software Engineering: Theory and Practice” Prentice Hall, 1998 oPfleeger’s chapter 10 provides some additional data on the costs of maintenance UIT-VNUHCM 2009 Yêu cầu thực tuần Nộp báo cáo tập làm lớp (* ) Tìm hiểu minh hoạ công cụ (tools) quản lý thay đổi (*) Chuẩn bị đăng ký dịch theo ebook Thi Giữa kỳ Chuẩn bị thuyết minh chương trình để họp với nhóm khách hàng -> ghi nhận yêu cầu, thay đổi (xem template Report1.pdf Report2.pdf NHóm khách hàng (customer group): bắt cặp ngược theo thứ tự nhóm cho ?, ngược lại Hai nhóm có đại diện để trao đổi ghi nhận thông tin, trao đổi thông tin với thông qua group link Lưu ý :(*) Nộp tuần trước ngày học lý thuyết, bắt buộc, không nộp trừ điểm UIT-VNUHCM 2009 45 ... THAY ĐỔI PHẦN MỀM 2. 1 Nền tảng thay đổi phần mềm 2. 2 Mối liên quan kinh tế việc cập nhật phần mềm 2. 3 Giải pháp tiềm vấn đề bảo trì UIT-VNUHCM 20 09 Chương 2: NỀN TẢNG CỦA SỰ THAY ĐỔI PHẦN MỀM NỀN... tái phát triển o Dùng chuyển qua cơng nghệ o Dùng chi phí bảo trì phần mềm phần cứng đạt đến chi phí tái phát triển UIT-VNUHCM 20 09 20 Mối liên hệ loại thay đổi phần mềm UIT-VNUHCM 20 09 21 Qui trình... mềm Huấn luyện Thay đổi phần cứng Chuyển đổi liệu UIT-VNUHCM 20 09 24 Sơ đồ tổ chức bảo trì phần mềm UIT-VNUHCM 20 09 25 Vai trị tổ chức bảo trì phần mềm UIT-VNUHCM 20 09 26 OnGoing Support Truyền