Nắm bắt được kiến thức phạm vi khá quan trọng. Vì sự tăng nhanh của máy tính tác động đến vấn đề vùng phạm vi chuyên biệt, cụ thể.Trong hệ thống lớn ví dụ chăm sóc sức khoẻ, viễn thông, tài chính được phân nhỏ thành vấn đề nhỏ, thành phần nhỏ hơn, được quản lý thành đơn vị chương trình như mô đun, thủ tục, hàm.
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 Nội dung (Chương 4) HIỂU CHƯƠNG TRÌNH NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THƠNG TIN MƠ HÌNH QUI TRÌNH NẮM BẮT THÔNG TIN REVERSE ENGINEERING Thảo luận làm tập UIT-VNUHCM 2009 Company Logo Chương 4: CÁC TÁC VỤ YÊU CẦU BẢO TRÌ 4.1 HIỂU CHƯƠNG TRÌNH 4.2 NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THƠNG TIN 4.3 MƠ HÌNH QUI TRÌNH NẮM BẮT THƠNG TIN 4.4 REVERSE ENGINEERING UIT-VNUHCM 2009 Chương 3: CÁC TÁC VỤ YÊU CẦU BẢO TRÌ HIỂU CHƯƠNG TRÌNH o Mục tiêu nắm bắt chương trình Phạm vi vấn đề Hiệu thực thi Mối liên hệ Nhân – Quả (Cause-Effect) Mối liên hệ sản phẩm – Môi trường Đặc trưng Quyết định – Hỗ trợ NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THƠNG TIN o Managers o Analysts o Designers o Programmers MƠ HÌNH QUI TRÌNH NẮM BẮT THƠNG TIN o Chiến lược nắm bắt chương trình Top-Down Model Ill Bottom-Up / Chunking Model Opportunistic Model REVERSE o o o o o ENGINEERING Định nghĩa Mục đích mục tiêu reverse engineering Các mức reverse engineering Kỹ thuật hỗ trợ Các lợi điểm UIT-VNUHCM 2009 4.1 HIỂU CHƯƠNG TRÌNH Mục tiêu nắm bắt chương trình o Phạm vi vấn đề o Hiệu thực thi o Mối liên hệ Nhân – Quả (Cause-Effect) o Mối liên hệ sản phẩm – Môi trường o Đặc trưng Quyết định – Hỗ trợ UIT-VNUHCM 2009 Phạm vi vấn đề Nắm bắt kiến thức phạm vi quan trọng Vì tăng nhanh máy tính tác động đến vấn đề vùng phạm vi chuyên biệt, cụ thể Vd: môi trường điều trị bệnh nhân … Trong hệ thống lớn ví dụ chăm sóc sức khoẻ, viễn thơng, tài phân nhỏ thành vấn đề nhỏ, thành phần nhỏ hơn, quản lý thành đơn vị chương trình mơ đun, thủ tục, hàm Ví dụ Trình biên dịch bao gồm thành phần parser, phân tích, phát sinh code, thành phần phân rà thành phần nhỏ Tác động đến thay đổi hay đơn giản ước tính nguồn tài ngun địi hỏi cho tác vụ bảo trì, kiến thức phạm vi vấn đề nói chung vấn đề nhỏ cụ thể cần thiết tác động trực tiếp nhân bảo trị việc chọn lựa thuật toán phù hợp, phương pháp luận, công cụ Việc chọn lựa nhân với mức độ chuyên gia kỹ phù hợp khía cạnh khác Thơng tin bao gồm từ nguồn khác – tài liệu hệ thống, end-users, chương trình nguồn UIT-VNUHCM 2009 Hiệu thực thi Ở mức cao trừu tượng, nhân bảo trì cần phải nắm (dự đốn) kết chương trình phát sinh kết từ đầu vào cho mà không cần biết đơn vị chương trình xây dựng để có kết tổng thể kết cho Ở mức thấp, họ cần biết kết đơn vị chương trình tạo thực thi Kiến thức data flow, control flow, thuật tốn thuận tiện hoàn thành thực thi mục tiêu Ví dụ người lập trình muốn biết mức trù tượng, đầu qui trình hồn tất biên dịch mức thấp, đầu từ parser Trong khi, thơng tin giúp cho người bảo trì xác định thay đổi thực thi có đạt hiệu mong đợi hay không UIT-VNUHCM 2009 Mối liên hệ Cause-Effect Trong chương trình lớn phức tạp,kiến thức mối liên hệ quan trọng: Cho phép nhân bảo trì đưa lý làm thành phần sản phẩm phần mềm tương tác thực thi Cho phép người lập trình dự đốn phạm vi thay đổi hệ phát sinh từ thay đổi Mối liên hệ cause-effect sử dụng để lưu vết luồng thơng tin qua chương trình Tại điểm mà nơi có gián đoạn bất thường luồng thông tin mang dấu hiệu nguồn phát sinh bug chương trình UIT-VNUHCM 2009 Ví dụ: A string reversing program MODULE StringReversing: FROM InOut IMPORT WriteString, Write, Read, EOL,WriteLn; FROM StacksLibrary IMPORT StackType, Create, IsEmpty, Pop, Push; VAR Stack: StackType; Char, Response: CHAR; BEGIN REPEAT Create (Stack); WriteString ("Enter string to be reversed"); WriteLn; UIT-VNUHCM 2009 Ví dụ: A string reversing program (tt) Read (Char); WHILE Char # EOL DO < Segment A Push (Stack, Char); Read (Char); END (* While *) WriteLn; WriteString ("Reversed string is: "); WHILE NOT IsEmpty (Stack) DO < -Segment B Pop (Stack, Char); Write (Char); END (* While *) WriteLn; WriteString ("Process another string (Y or N)? "); Read (Response); UNTIL CAP (Response) # 'Y' END StringReversing UIT-VNUHCM 2009 10 Ví dụ Hình 6.10 FROM BasicIO IMPORT WriteReal, WriteString, WriteLn, Readlnt, Writelnt; CONST max = 20; VAR a : ARRAY [L.max] OF INTEGER; number: INTEGER; total: INTEGER; BEGIN WriteString("Type in 20 numbers"); number := 0; WHILE number 20 DO number := number + 1; Readlnt (afnumber]); END; WriteString ("The 20 numbers in reverse are "); WriteLn; number := 20; REPEAT Writelnt (a[number]),max); WriteLn; number := number - UNTIL number = 0; number := 20 total := 0; WHILE number DO total := total + a[number]; DEC (number); END; WriteString ("The average for the 20 numbers is "); WriteReal (FLOAT (total) / FLOAT (max), 12); END AddNumbers UIT-VNUHCM 2009 42 Bài tập thảo luận Exercise 6.7 Liệt kê giải thích yêu tố tác động đến việc hiểu chương trình Exercise 6.8 Bạn cải thiện khả đọc hiểu chương trình Hình 6.10 cách xử lý nào? Exercise 6.9 Liệt kê tất công cụ bảo trì có hệ thống bạn Có gắng thử công cụ này, với loại chức chúng làm thể cải thiện khả đọc Exercise 6.10 Tại quan trọng người bảo trì thu hiểu biết tốt chiến lược nắm bắt chương trình khác vấn đề dựa kinh nghiệm UIT-VNUHCM 2009 43 4.4 REVERSE ENGINEERING Định nghĩa Mục đích mục tiêu reverse engineering Các mức reverse engineering Kỹ thuật hỗ trợ Các lợi ích UIT-VNUHCM 2009 44 Định nghĩa Abstraction –là mơ hình tóm tắt chi tiết chủ đề tái thể Forward engineering – tiếp cận công nghệ phần mềm truyền thống bắt đầu với phân tích yêu cầu tiến hành thực thi hệ thống Reengineering – Qui trình kiểm tra thông báo nơi hệ thống thay đổi lần đầu reverse engineering sau forward engineering Restructuring – chuyển đổi hệ thống từ hình thức sang hình thức khác Reverse engineering – Qui trình phân tích hệ thống: nhận diện thành phần hệ thống mối liên hệ bên tạo thể hệ thống hình thức khác mức trừu tượng cao UIT-VNUHCM 2009 45 Tính trừu tượng Trừu tượng chức Trừu tượng liệu Trừu tượng qui trình UIT-VNUHCM 2009 46 Mục đích mục tiêu reverse engineering Khôi phục thông tin mát : To facilitate migration between platforms: Cải thiện cung cấp sưu liệu : To provide alternative views: Trích rút thành phần dùng lại : Đối phó với độ phức tạp : Dò hiệu ứng phụ: Giảm nỗ lực bảo trì : UIT-VNUHCM 2009 47 Tóm tắt mục tiêu lợi ích UIT-VNUHCM 2009 48 Các mức reverse engineering UIT-VNUHCM 2009 49 Các mức reverse engineering Redocumentation Khôi phục thiết kế Khôi phục đặc tả Những điều kiện cho Reverse Engineering UIT-VNUHCM 2009 50 Kỹ thuật hỗ trợ Forward Engineering Restructuring o Control-flow-driven restructuring: o Efficiency-driven restructuring: o Adaption-driven restructuring: Reengineering UIT-VNUHCM 2009 51 Các lợi ích Bảo trì o Corrective Change o Adaptive Change/Perfective change o Preventive Change Tính sử dụng lại phần mềm Reverse Engineering kỹ thuật kết hợp thực nghiệm UIT-VNUHCM 2009 52 Case study 7.8 Đọc hiểu case study 7.8 Phân tích vấn đề trạng nêu: o Vấn đề tự động hóa : o Vấn đề đặt tên : o ??? Thực tập theo sau: UIT-VNUHCM 2009 53 Bài tập (1) Exercise 7.1 Giải thích khác loại khác kỹ thuật reverse engineering cho ví dụ thích hợp Exercise 7.2 Thực khôi phục đặc tả thiết kế tất hay phần hệ thống phần mềm mà bạn không quen (hệ thống nên có 2K dịng code độ lớn) o Những kỹ thuật bạn dùng nhận diện đặc tả thiết kế sao? o Những hình thức thể bạn xem phù hợp cho tác vụ gì? Chỉ lý o Bài học kinh nghiệm mà bạn học cơng việc gì? UIT-VNUHCM 2009 54 Bài tập (2) Exercise 7.3 Một ngân hàng có substantial investment hệ thống phần mềm viết Cobol triệu dịng code chạy 20 năm Nó dùng ngày để thực thi thao tác khác quản lý tài khoản khách hàng loans Sau vài năm cập nhật, dự định không hoạch định – hệ thống trở nên đắt tiền để bảo trì Kết là, ngân hàng muốn vài lời khuyên bước tiếp để làm Giả sử bạn thuê làm việc nhân viên tư vấn bảo trì Bạn cho Ngân hàng lời khuyên gì? Chỉ lý cho đề nghị mà bạn thực UIT-VNUHCM 2009 55 Yêu cầu thực tuần Viết lại báo cáo cho thảo luận lớp tập Tiếp tục chuẩn bị công việc cho nhóm Mỗi nhóm tự chuẩn bị tìm hiểu thử nghiệm công cụ hỗ trợ qui trình bảo trì hướng dẫn sử dụng demo trước lớp UIT-VNUHCM 2009 56 ... CẦU BẢO TRÌ 4. 1 HIỂU CHƯƠNG TRÌNH 4. 2 NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THƠNG TIN 4. 3 MƠ HÌNH QUI TRÌNH NẮM BẮT THƠNG TIN 4. 4 REVERSE ENGINEERING UIT-VNUHCM 2009 Chương 3: CÁC TÁC VỤ YÊU CẦU BẢO TRÌ... thành vấn đề nhỏ, thành phần nhỏ hơn, quản lý thành đơn vị chương trình mơ đun, thủ tục, hàm Ví dụ Trình biên dịch bao gồm thành phần parser, phân tích, phát sinh code, thành phần phân rà thành... phân tích chương trình What-How-Why cho đối tượng (object) chương trình cho việc hiểu chương trình UIT-VNUHCM 2009 13 (WHAT) Đối tượng chương trình gì? Trước cố gắng phân tích chương trình theo