1 / 32

Tái kỹ nghệ phần mềm (Software Re-engineering)

Tái kỹ nghệ phần mềm (Software Re-engineering). • • • • •. Biên Dịch mã nguồn Kỹ nghệ ngược Cải tiến cấu trúc CT Mô đun hóa chương trình Tái kỹ nghệ dữ liệu. 2010. Bộ môn CNFM – Đại học GTVT. 1. Tái kỹ nghệ hệ thống. • Tái cấu trúc hoặc viết lại một phần /toàn

ura
Download Presentation

Tái kỹ nghệ phần mềm (Software Re-engineering)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tái kỹ nghệ phần mềm (Software Re-engineering) • • • • • Biên Dịch mã nguồn Kỹ nghệ ngược Cải tiến cấu trúc CT Mô đun hóa chương trình Tái kỹ nghệ dữ liệu 2010 Bộ môn CNFM – Đại học GTVT 1

  2. Tái kỹ nghệ hệ thống • Tái cấu trúc hoặc viết lại một phần /toàn bộ HT đã có, song không làm thay đổi chức năng HT. • Có thể ứng dụng cho 1 số HT con của HT thường cần phải bảo trì. • Tái kỹ nghệ cần các có thêm các cố gắng để làm cho HT dễ bảo trì hơn, do vậy HT có thể phải tái cấu trúc và tái lập lại tài liệu. 2010 Bộ môn CNFM – Đại học GTVT 2

  3. Khi nào cần tái kỹ nghệ • Khi những thay đổi của hệ thống thường chỉ giới hạn ở một phần của hệ thống thì cần tái kỹ nghệ cho phần này • Khi hỗ trợ phần cứng, phần mềm trở nên lạc hậu • Khi công cụ hỗ trợ tái cấu trúc hiện diện 2010 Bộ môn CNFM – Đại học GTVT 3

  4. Những ưu điểm của tái kỹ nghệ • Giảm rủi ro – Có một rủi ro lớn khi phát triển phần mềm mới. Đó có thể là vấn đề phát triển, vấn đề nhân sự và vấn đề đặc tả. • Giảm chi phí – Chi phí cho tái nghĩ kệ thường thấp hơn chi phí cho phát triển PM mới. 2010 Bộ môn CNFM – Đại học GTVT 4

  5. Phát triển và tái kỹ nghệ Thiết kế và Cài đặt Đặc tả hệ thống Hệ thống mới Forward Engineering Hiểu và dịch chuyển Hệ thống Hệ thống đang tồn tại Hệ thống được tái tạo Software Re-engineering 2010 Bộ môn CNFM – Đại học GTVT 5

  6. Quá trình tái kỹ nghệ Program documentation Modularised program Original data Original program Reverse engineering Data reengineering Reengineered data Program modularisation Structured program Source code translation Program structure improvement 2010 Bộ môn CNFM – Đại học GTVT 6

  7. Các tiếp cận tái kỹ nghệ Automated program restructuring Program and data restructuring Automated source Automated restructuring Restructuring plus code conversion with manual changes architectural changes Increased cost 2010 Bộ môn CNFM – Đại học GTVT 7

  8. Biên dịch mã nguồn • Bao gồm việc chuyển mã từ NNLT này sang NNLT khác • Điều này có thể cần thiết vì: – Cập nhật môi trường phần cứng – Phong cách nhân viên – Thay đổi chiến lược tổ chức • Chỉ có là hiện thực nếu bộ biên dịch là hiện có 2010 Bộ môn CNFM – Đại học GTVT 8

  9. Quá trình biên dịch mã nguồn System to be re-engineered System to be re-engineered Re-engineered system Automatically translate code Identify source code differences Manually translate code Design translator instructions 2010 Bộ môn CNFM – Đại học GTVT 9

  10. Kỹ nghệ ngược • Phân tích PM với quan điểm để hiểu thiết kế và đặc tả của nó. • Có thể 1 phần của quá trình tái kỹ nghệ song cũng có thể sử dụng để đặc tả lại 1 hệ thống cho việc cài đặt lại • Xây dựng 1 CSDL chương trình và khởi tạo thông tin từ đó. • Công cụ hiểu chương trình (trình duyệt, bộ khởi tạo tham chiếu chéo,…) có thể được sử dụng trong quá trình này. 2010 Bộ môn CNFM – Đại học GTVT 10

  11. Quá trình kỹ nghệ ngược Program stucture diagrams Automated analysis System information store System to be re-engineered Document generation Data stucture diagrams Manual annotation Traceability matrices 2010 Bộ môn CNFM – Đại học GTVT 11

  12. Reverse engineering • Kỹ nghệ ngược thường được tiến hành trước tái kỹ nghệ, song đôi khi cũng cần làm theo trậ tự của nó – Thiết kế và đặc tả 1 HT có thể dùng kỹ nghệ ngược sao cho nó có thể là đầu vào của quá trình đặc tả yêu cầu cho HT được thay thay thế – Thiết kế và đặc tả 1 HT có thể dùng kỹ nghệ ngược để hỗ trợ bảo trì . 2010 Bộ môn CNFM – Đại học GTVT 12

  13. Cải tiến cấu trúc chương trình • Bảo trì có khuynh hướng làm sai lạc cấu trúc CT. Do vậy, cấu trúc trở nên ngày càng khó hiểu hơn • CT có thể tự động cấu trúc lại để loại bỏ các nhánh không điều kiện (go to) • Điều kiện có thể được đơn giản hóa để chúng ngày càng dễ đọc hơn. 2010 Bộ môn CNFM – Đại học GTVT 13

  14. Spaghetti logic Start: Get (Time-on, Time-off, Time, Setting, Temp, Switch) if Switch = off goto of f if Switch = on goto on goto Cntrld off: if Heating-status = on goto Sw-off goto loop on: if Heating-status = off goto Sw-on goto loop Cntrld: if Time = Time-on goto on if Time = Time-off goto off if Time < Time-on goto Start if Time > Time-off goto Start if Temp > Setting then goto of f if Temp < Setting then goto on Sw-off: Heating-status := off goto Switch Sw-on: Heating-status := on Switch: Switch-heating loop: goto Start 2010 Bộ môn CNFM – Đại học GTVT 14

  15. Lô gíc điều khiển có cấu trúc loop -- The Get statement finds values for the given variables from the system’s -- environment. Get (Time-on, Time-off, Time, Setting, Temp, Switch) ; case Switch of when On => if Heating-status = off then Switch-heating ; Heating-status := on ; end if ; when Off => if Heating-status = on then Switch-heating ; Heating-status := off ; end if; when Controlled => if Time >= Time-on and Time < = Time-off then if Temp > Setting and Heating-status = on then Switch-heating; Heating-status = off; elsif Temp < Setting and Heating-status = off then Switch-heating; Heating-status := on ; end if; end if ; end case ; end loop ; 2010 Bộ môn CNFM – Đại học GTVT 15

  16. Đơn giản hoá điều kiện -- Complex condition if not (A > B and (C < D or not ( E > F) ) )... -- Simplified condition if (A <= B and (C>= D or E > F)... 2010 Bộ môn CNFM – Đại học GTVT 16

  17. Tự động Cấu trúc hoá chương trình Program to be Restructured restructured program Analyser and graph builder Program generator Graph representation 2010 Bộ môn CNFM – Đại học GTVT 17

  18. Các vấn đề của cấu trúc hoá • Các vấn đề với tái cấu trúc: – Mất chú giải – Mất tài liệu – Yêu cầu tính toán lớn • Tái cấu trúc ít trợ giúp với CT ít có tính mô đun hóa, nơi mà các thành phần liên quan bị phân tán bởi mã • Tính khó hiểu của Lập trình hướng dữ liệu có thể không được tận dụng cho việc tái cấu trúc. 2010 Bộ môn CNFM – Đại học GTVT 18

  19. Mô đun hoá chương trình • Đó là quá trình tổ chức lại chương trình sao cho các phần chương trình có liên quan được tập hợp lại trong cùng 1 mô- đun đơn. • Thường là một quá trình thủ công được thực hiện bởi việc giám sát chương trình và tổ chức lại 2010 Bộ môn CNFM – Đại học GTVT 19

  20. Các kiểu mô-đun • Sự trừu tượng hoá dữ liệu – Kiểu dữ liệu trừu tượng mà ở đó các cấu trúc dữ liệu và các thao tác với cấu trúc dữ liệu ấy được nhóm lại với nhau. • Các mô-đun phần cứng – Tất cả các chức năng yêu cầu giao tiếp với một đơn vị phần cứng • Các mô-đun chức năng – Các mô-đun chứa các chức năng thực hiện các nhiệm vụ có liên quan với nhau • Các mô-đun hỗ trợ quá trình – Các mô-đun mà các chức năng hỗ trợ 1 quá trình nghiệp vụ hay 1 quá trình phân mảnh 2010 Bộ môn CNFM – Đại học GTVT 20

  21. Khôi phục dữ liệu trừu tượng • Nhiều các HT sử dụng các bảng dùng chung và dữ liệu toàn cục để tiết kiệm bộ nhớ • Gây nên các vấn đề bởi vì các thay đổi có ảnh hưởng lớn đến HT. • Các dữ liệu toàn cục dùng chung có thể phải chuyển đổi sang các đối tượng hay các ADT – Phân tích các miền dữ liệu chung nhằm xác định các trừu tượng về mặt lô gic - Tạo 1 kiểu dữ liệu trừu tượng hay 1 lớp các đối tượng cho mỗi trừu tượng này 2010 Bộ môn CNFM – Đại học GTVT 21

  22. Khôi phục dữ liệu trừu tượng (tiếp) - Cung cấp các truy năng truy nhập và cập nhật vào mỗi trường của dữ liệu trừu tượng - Dùng 1 trình duyệt để gọi các dữ liệu trừu tượng này và thay thế chúng với các chức năng mới định nghĩa 2010 Bộ môn CNFM – Đại học GTVT 22

  23. Tái kỹ nghệ dữ liệu • Bao gồm việc phân tích và tổ chức lại cấu trúc dữ liệu (và đôi khi giá trị của dữ liệu) trong 1 chương trình • Có thể là 1 phần của quá trình di trú-migrating từ một hệ thống dựa vào tệp hay một hệ thống dựa vào CSDL hay thay đổi từ một CSDL này sang CSDL khác • Mục đích là tạo nên một môi trường dữ liệu quản lý được 2010 Bộ môn CNFM – Đại học GTVT 23

  24. Các cách tiếp cận để tái kỹ nghệ dữ liệu Approach Description Data cleanup The data records and values are analysed to improve their quality. Duplicates are removed, redundant information is deleted and a consistent format applied to all records. This should not normally require any associated program changes. Data extension In this case, the data and associated programs are re-engineered to remove limits on the data processing. This may require changes to programs to increase field lengths, modify upper limits on the tables, etc. The data itself may then have to be rewritten and cleaned up to reflect the program changes. Data migration In this case, data is moved into the control of a modern database management system. The data may be stored in separate files or may be managed by an older type of DBMS. 2010 Bộ môn CNFM – Đại học GTVT 24

  25. Vấn đề dữ liệu • Người dùng đầu cuối muốn có dữ liệu trên máy của họ hơn là trên hệ thống file. Họ cần có khả năng tải dữ liệu này từ 1 CSDL • Hệ thống có thể phải xử lý nhiều dữ liệu hơn là cái chỉ ra bởi nhà thiết kế. • Dữ liệu dư thừa có thể được lưu bởi các định dạng khác nhau ở các vị trí khác nhau trong hệ thống. 2010 Bộ môn CNFM – Đại học GTVT 25

  26. Data migration Program 1 Program 2 Program 3 File 1 Program 4 File 2 File 3 Program 5 File 4 Program 6 File 5 File 6 Program 7 Becomes Program 3 Program 4 Program 5 Program 6 Program 7 Program 2 Database management system describes Logical and physical data models migration Data Program 1 2010 Bộ môn CNFM – Đại học GTVT 26

  27. Các vấn đề của dữ liệu • Vấn đề đặt tên dữ liệu – Tên có thể rất khó hiểu . Cùng 1 dữ liệu có thể có nhiều tên khác nhau trong các chương trình khác nhau • Vấn đề chiều dài của trường – Cùng 1 phần tử có thể gán cho các chiều dài khác nhau trong các chương trình khác • Vấn đề tổ chức Mẫu tin – Các mẫu tin biểu diễn cho cùng 1 thực thể coóthể tổ chức khác nhau trong các chương trình khác nhau . • Literals rất khó mã hoá • Không có từ điển dữ liệu 2010 Bộ môn CNFM – Đại học GTVT 27

  28. Dữ liệu với giá trị không nhất quán Data inconsis tency Inconsistent default values Inconsistent units Inconsistent validation rules Inconsistent representation semantics Inconsistent handling of negative values Description Different programs assign different de fault values to the same logical data items. T his causes problems for program s other than those that create d t he data . Th e problem i s com pounded when miss ing v alues are ass igned a default value that is valid. Th e m issing data c annot then be discovered. The same information is r epresented in d ifferent units in different programs. For exa mp le, in the US o r the UK, weight data m ay be represented i n pounds in o lder programs but in kilograms in m ore recent systems. A m ajor problem of this type has arisen in Eu rope with the introduction of a single Eu ropean currency. Le gacy systems have bee n written to dea l w ith n ational currenc y u nits and data has to be c onverted to euros. Different programs apply different data validation rules. Data w ritten by one program may be reject ed by another. T his is a particular p roblem fo r archival data which may not have been update d in line w ith changes to data validati on rules. Programs ass ume som e meaning in the way items are represented. For example, som e programs may assum e that upper-case text means an address. Programs may use different conventions and m ay therefore rejec t data which is semantically v alid. Some program s rejec t nega tive values for entities which mus t a lways be positive. Others, however, m ay acce pt these a s negative values or fail to recognise them as negative a nd convert them to a positive value. 2010 Bộ môn CNFM – Đại học GTVT 28

  29. Chuyển đổi dữ liệu • Tái kỹ nghệ dữ liệu có thể bao gồm việc thay đổi cấu trúc dữ liệu song không thay đổi giá trị của dữ liệu. • Việc chuyển đổi dữ liệu có thể rất tốn kém. Các chương trình với mục đích chuyên dụng có thể được viết để thực hiện việc chuyển đổi này. 2010 Bộ môn CNFM – Đại học GTVT 29

  30. Quá trình tái kỹ nghệ dữ liệu Data analysis Program to be re-engineered Entity name modification Data re-formatting Data analysis Literal replacement Data definition re-ordering Stage 1 Default value conversion Validation rule modification Data conversion Stage 2 Stage 3 Modified data Change summary tables 2010 Bộ môn CNFM – Đại học GTVT 30

  31. Các điểm chính • Mục đích của tái kỹ nghệ là cải tiến cấu trúc của hệ thống sao cho việc hiểu và bảo trì hệ thống dễ dàng hơn. • Quá trình tái kỹ nghệ bao gồm: biên dịch chương trình nguồn, kỹ nghệ ngược, cải tiến cấu trúc chương trình, mô-đun hoá chương trình và tái kỹ nghệ dữ liệu. • Biên dịch mã nguồn là chuyển đổi tự động chương trình từ ngôn ngữ này sang ngôn ngữ khác. 2010 Bộ môn CNFM – Đại học GTVT 31

  32. Các điểm chính (tiếp) • Kỹ nghệ ngược là quá trình tạo ra thiết kế và đặc tả hệ thống từ mã nguồn. • Cải tiến cấu trúc chương trình là thay thế việc sử dụng các điều khiển không cấu trúc bởi vòng lặp hay các điều kiện đơn giản. • Mô-đun hoá chương trình bao gồm việc tổ chức lại để nhóm các phần có liên quan với nhau. Taí kỹ nghệ dữ liệu có thể cần thiết do việc quản lý dữ liệu không chắc chắn (hay thay đổi). 2010 Bộ môn CNFM – Đại học GTVT 32

More Related