32
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ệ phần mềm (Software Re-engineering)

  • Upload
    ura

  • View
    78

  • Download
    4

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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

bộ HT đã có, song không làm thay đổichức năng HT.

• Có thể ứng dụng cho 1 số HT con của HTthườ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 HTcó thể phải tái cấu trúc và tái lập lại tàiliệu.

2010 Bộ môn CNFM – Đại học GTVT 2

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ạchậ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

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

Phát triển và tái kỹ nghệ

Đặc tả hệ thống Thiết kế vàCài đặt Hệ thống mới

Forward Engineering

Hệ thốngđang tồn tại

Hiểu và dịchchuyển

Hệ thống

Hệ thốngđược tái tạo

Software Re-engineering

2010 Bộ môn CNFM – Đại học GTVT 5

Quá trình tái kỹ nghệ

Reverseengineering

Programdocumentation

Original data

Programstructure

improvement

Programmodularisation

Structuredprogram

Datareengineering

Reengineereddata

ModularisedprogramOriginal

program

Source codetranslation

2010 Bộ môn CNFM – Đại học GTVT 6

Các tiếp cận tái kỹ nghệ

Automated restructuringwith manual changes

Automated sourcecode conversion

Restructuring plusarchitectural changes

Automated programrestructuring

Program and datarestructuring

Increased cost

2010 Bộ môn CNFM – Đại học GTVT 7

Biên dịch mã nguồn• Bao gồm việc chuyển mã từ NNLT nàysang 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

Quá trình biên dịch mã nguồn

Automatically

translate codeDesign translator

instructions

Identify source

code differences

Manually

translate code

System to be

re-engineeredSystem to be

re-engineered

Re-engineered

system

2010 Bộ môn CNFM – Đại học GTVT 9

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 choviệc cài đặt lại• Xây dựng 1 CSDL chương trình và khởi tạothô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

Data stucturediagrams

Quá trình kỹ nghệ ngượcProgram stucture

diagrams

Traceabilitymatrices

Documentgeneration

Systeminformation

store

Automatedanalysis

Manualannotation

System to bere-engineered

2010 Bộ môn CNFM – Đại học GTVT 11

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 thaythế

– 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

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ấutrúc CT. Do vậy, cấu trúc trở nên ngàycà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

Spaghetti logicStart: Get (Time-on, Time-off, Time, Setting, Temp, Switch)

if Switch = off goto of fif Switch = on goto ongoto Cntrld

off: if Heating-status = on goto Sw-offgoto loop

on: if Heating-status = off goto Sw-ongoto loop

Cntrld: if Time = Time-on goto onif Time = Time-off goto offif Time < Time-on goto Startif Time > Time-off goto Startif Temp > Setting then goto of fif Temp < Setting then goto on

Sw-off: Heating-status := offgoto Switch

Sw-on: Heating-status := onSwitch: Switch-heatingloop: goto Start

2010 Bộ môn CNFM – Đại học GTVT 14

Lô gíc điều khiển có cấu trúcloop

-- 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 thenSwitch-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 thenSwitch-heating; Heating-status = off;

elsif Temp < Setting and Heating-status = off thenSwitch-heating; Heating-status := on ;

end if;end if ;

end case ;end loop ;

2010 Bộ môn CNFM – Đại học GTVT 15

Đơn giản hoá điều kiện-- Complex conditionif not (A > B and (C < D or not ( E > F)) )...

-- Simplified conditionif (A <= B and (C>= D or E > F)...

2010 Bộ môn CNFM – Đại học GTVT 16

Tự động Cấu trúc hoá chươngtrình

Graphrepresentation

Programgenerator

Restructuredprogram

Analyser andgraph builder

Program to berestructured

2010 Bộ môn CNFM – Đại học GTVT 17

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

Mô đun hoá chương trình

• Đó là quá trình tổ chức lại chương trìnhsao cho các phần chương trình có liênquan đượ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 đượcthực hiện bởi việc giám sát chương trìnhvà tổ chức lại

2010 Bộ môn CNFM – Đại học GTVT 19

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 đượcnhó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ácnhiệ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ìnhnghiệp vụ hay 1 quá trình phân mảnh

2010 Bộ môn CNFM – Đại học GTVT 20

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ệutoà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ưởnglớ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áctrừ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ượngcho mỗi trừu tượng này

2010 Bộ môn CNFM – Đại học GTVT 21

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ừutượng

- Dùng 1 trình duyệt để gọi các dữ liệutrừu tượng này và thay thế chúng với cácchức năng mới định nghĩa

2010 Bộ môn CNFM – Đại học GTVT 22

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 1chương trình

• Có thể là 1 phần của quá trình di trú-migratingtừ một hệ thống dựa vào tệp hay một hệ thốngdựa vào CSDL hay thay đổi từ một CSDL nàysang CSDL khác

• Mục đích là tạo nên một môi trường dữ liệuquản lý được

2010 Bộ môn CNFM – Đại học GTVT 23

Các cách tiếp cận để tái kỹ nghệ dữliệu

Approach DescriptionData cleanup The data records and values are analysed to improve their quality.

Duplicates are removed, redundant information is deleted and a consistentformat applied to all records. This should not normally require anyassociated program changes.

Data extension In this case, the data and associated programs are re-engineered to removelimits on the data processing. This may require changes to programs toincrease field lengths, modify upper limits on the tables, etc. The data itselfmay then have to be rewritten and cleaned up to reflect the programchanges.

Data migration In this case, data is moved into the control of a modern databasemanagement system. The data may be stored in separate files or may bemanaged by an older type of DBMS.

2010 Bộ môn CNFM – Đại học GTVT 24

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 địnhdạ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

DataDatabase

managementsystem

Logical andphysical

data models

migration

describes

File 2 File 5

Program 2 Program 3

File 1

Program 4

File 3

Program 5

File 4

Program 6

File 6

Program 7

Program 1

Program 3 Program 4 Program 5

Program 2

Program 6

Program 7

Program 1

Becomes

Data migration

2010 Bộ môn CNFM – Đại học GTVT 26

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ácnhau

• 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

Dữ liệu với giá trị không nhất quánData inconsis tencyInconsistent defaultvalues

Inconsistent units

Inconsistent validationrules

Inconsistentrepresentationsemantics

Inconsistent handlingof negative values

DescriptionDifferent programs assign different de fault values to the same logical dataitems. T his causes problems for program s other than those that create d t hedata . Th e problem i s com pounded when miss ing v alues are ass igned adefault 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 differentprograms. For exa mp le, in the US o r the UK, weight data m ay berepresented i n pounds in o lder programs but in kilograms in m ore recentsystems. A m ajor problem of this type has arisen in Eu rope with theintroduction of a single Eu ropean currency. Le gacy systems have bee nwritten to dea l w ith n ational currenc y u nits and data has to be c onverted toeuros.Different programs apply different data validation rules. Data w ritten byone program may be reject ed by another. T his is a particular p roblem fo rarchival data which may not have been update d in line w ith changes todata validati on rules.Programs ass ume som e meaning in the way items are represented. Forexample, som e programs may assum e that upper-case text means anaddress. Programs may use different conventions and m ay therefore rejec tdata which is semantically v alid.Some program s rejec t nega tive values for entities which mus t a lways bepositive. Others, however, m ay acce pt these a s negative values or fail torecognise them as negative a nd convert them to a positive value.

2010 Bộ môn CNFM – Đại học GTVT 28

Chuyển đổi dữ liệu

• Tái kỹ nghệ dữ liệu có thể bao gồm việcthay đổ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ốnkém. Các chương trình với mục đíchchuyên dụng có thể được viết để thựchiện việc chuyển đổi này.

2010 Bộ môn CNFM – Đại học GTVT 29

Quá trình tái kỹ nghệ dữ liệu

Entity namemodification

Datare-formatting

Default valueconversion

Validation rulemodification

Dataanalysis

Dataconversion

Dataanalysis

Modifieddata

Program to be re-engineered

Change summary tables

Literalreplacement

Data definitionre-ordering

Stage 1 Stage 2 Stage 3

2010 Bộ môn CNFM – Đại học GTVT 30

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ịchchương trình nguồn, kỹ nghệ ngược, cải tiếncấu trúc chương trình, mô-đun hoá chươngtrình và tái kỹ nghệ dữ liệu.

• Biên dịch mã nguồn là chuyển đổi tự độngchươ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

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ệcsử dụng các điều khiển không cấu trúc bởivò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ứclạ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ệcquản lý dữ liệu không chắc chắn (hay thay đổi).

2010 Bộ môn CNFM – Đại học GTVT 32