Tải bản đầy đủ (.doc) (79 trang)

Công nghệ quản lý dữ liệu phi cấu trúc và ứng dụng phát triển hệ thống thông tin quản lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 79 trang )

1

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

Phạm Thu Trang

CÔNG NGHỆ QUẢN LÝ DỮ LIỆU PHI CẤU TRÚC
VÀ ỨNG DỤNG PHÁT TRIỂN
HỆ THỐNG THÔNG TIN QUẢN LÝ

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2013
ĐẠI HỌC THÁI NGUYÊN


2
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

Phạm Thu Trang

CÔNG NGHỆ QUẢN LÝ DỮ LIỆU PHI CẤU TRÚC
VÀ ỨNG DỤNG PHÁT TRIỂN
HỆ THỐNG THÔNG TIN QUẢN LÝ

Chuyên ngành

: Khoa học máy tính

Mã số



: 60 48 01

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. Lê Văn Phùng

Thái Nguyên - 2013


i
LỜI CAM ĐOAN
Tôi xin cam đoan những kết quả đạt được trong luận văn này là do tôi nghiên
cứu, tổng hợp và thực hiện, không sao chép lại bất kỳ điều gì của người khác. Toàn bô
những điều được trình bày trong khóa luận hoặc là của cá nhân, hoặc được tham khảo
và tổng hợp từ các nguồn tài liệu khác nhau. Tất cả tài liệu tham khảo, tổng hợp đều
được trích dẫn với nguồn gốc rõ ràng.
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình. Nếu có điều gì
sai, tôi xin chịu mọi hình thức kỷ luật theo quy định.
Thái Nguyên, tháng 6 năm 2013

Phạm Thu Trang


ii
MỤC LỤC
Chương 1...........................................................................................................................3
1.1. Tổng quan về các công nghệ quản lý dữ liệu phi cấu trúc...................................3
1.1.1. Khái niệm về tái kỹ nghệ....................................................................................3
1.1.2. Qui trình chung tái kỹ nghệ phần mềm..............................................................7

1.1.3. Các công cụ trợ giúp quá trình tái kỹ nghệ phần mềm....................................18
1.2. Hệ thống quản lý văn bản và điều hành trực tuyến............................................29
Chương 2....................................................................................................................35
CÁC CÔNG NGHỆ QUẢN LÝ DỮ LIỆU PHI CẤU TRÚC.................................35
2.1. Công nghệ của hãng Microsoft...........................................................................35
2.1.2. Công nghệ SQLServer của Microsoft.............................................................38
2.1.3. Công Nghệ ASP................................................................................................41
2.2. Công nghệ mã nguồn mở....................................................................................42
2.3. Công nghệ IBM-Lotus Domino..........................................................................50
3.1. Những vấn đề đặt ra cần tiến hóa hệ thống........................................................55
3.2. Lựa chọn giải pháp tái kỹ nghệ..........................................................................56
3.3. Sơ đồ tiến trình thực hiện tái kỹ nghệ và quy trình phát triển hệ thống quản lý
văn bản và điều hành trực tuyến.................................................................................57
3.3.1. Từ mã nguồn của hệ thống chuyển sang mô hình trực quan..........................58
3.3.2. Từ mô hình trực quan cấu trúc lại chương trình...........................................60
3.3.3. Tái kỹ nghệ dữ liệu........................................................................................62
3.3.4. Xây dựng mã nguồn.......................................................................................62
3.3.5. Hoàn thiện, cài đặt và sử dụng......................................................................62


iii
DANH MỤC CÁC TỪ VIẾT TẮT
CSDL
CV
DMS
HSCV
QLVB
RUP
SQL
UML

VB
VP

: Cơ sở dữ liệu
: Chuyên viên
: Document Management System
: Hồ sơ công việc
: Quản lý văn bản
: Rational Unified Process
: Structured Query Language
: Unifield modeling language
: Văn bản
: Văn phòng


iv
DANH MỤC HÌNH VẼ
Hình 1.1 : Tái kỹ nghệ phần mềm
Hình 1.2: Qui trình tái kỹ nghệ
Hình 1.3: Chi phí tái kỹ nghệ
Hình 1.4. Quy trình tái kỹ nghệ phần mềm
Hình 1.5. Mô hình chung của tái kỹ nghệ phần mềm
Hình 1.6: Qui trình dịch mã nguồn
Hình 1.7: Tiến trình kỹ nghệ ngược
Hình 1.8: Cấu trúc chương trình tự đông
Hình 1.9: Chuyển đổi dữ liệu
Hình 1.10: Quá trình tái kỹ nghệ dữ liệu
Hình 1.11: Kỹ nghệ chuyển tiếp và Tái kỹ nghệ phần mềm
Hình 1.12: Dịch xuôi và dịch ngược trong UML
Hình 1.13: Môt bước lặp của quá trình tái thiết kế với xuất phát là mã nguồn

Hình 1.14: Môt bước lặp của quá trình tái thiết kế xuất phát là mô hình thiết kế
Hình 3.1: Sơ đồ tiến trình tái kỹ nghệ “Hệ thống quản lý văn bản & điều hành trực
tuyến”
Hình 3.2: Từ mã nguồn của hệ thống chuyển sang mô hình trực quan
Hình 3.3: Mô hình use case cho thấy các yêu cầu của hệ thống
Hình 3.4: Mô hình use case cho quyền quản trị
Hình 3.5: Mô hình use case cho quyền người dùng
Hình 3.6: Biểu đồ tuần tự cho chức năng tìm kiếm
Hình 3.7: Màn hình đăng nhập
Hình 3.8: Màn hình cập nhật văn bản đến
Hình 3.9: Màn hình cập nhật văn bản đi
Hình 3.10: Biểu mẫu xuất văn bản đến
Hình 3.11: Biểu mẫu xuất văn bản đi
Hình 3.12: Giao diện trang chủ
Hình 3.13: Giao diện tác nghiệp phụ
Hình 3.14: Giao diện danh sách văn bản đến
Hình 3.15: Giao diện chi tiết văn bản đến


v
Hình 3.16: Giao diện danh sách văn bản đi
Hình 3.17: Giao diện chi tiết văn bản đi
Hình 3.18: Giao diện yêu cầu công việc
Hình 3.19: Giao diện tìm kiếm văn bản
Hình 3.20: Tìm kiếm toàn bô văn bản
Hình 3.21: Tìm kiếm theo sổ văn bản
Hình 3.22: Tìm kiếm theo loại văn bản
Hình 3.23: Tìm kiếm theo nơi gửi



1
MỞ ĐẦU
Khoa học máy tính nghiên cứu về cơ sở lý thuyết thông tin, tính toán, thực hiện
và ứng dụng trong các hệ thống máy tính. Khoa học máy tính có nhiều ngành con. Môt
số ngành nhấn mạnh vào việc tính toán các kết quả cụ thể trong khi đó môt số ngành
tập trung vào các thách thức trong cài đặt các tính toán. Cùng với sự ra đời và phát
triển của hệ thống máy tính với tốc đô xử lý ngày càng mạnh thì ngành khoa học máy
tính cũng phát triển theo với việc giải quyết càng nhiều các bài toán thực tiễn liên quan
tới đời sống và kinh tế xã hôi, nó trở thành cơ sở cũng như công cụ để giải quyết các
bài toán cho các lĩnh vực khoa học khác như thống kê, quản trị…
Công nghệ phần mềm phát triển nhanh chóng và đi sâu vào đời sống kinh tế xã
hôi với những ứng dụng thiết thực, cùng với sự bùng nổ thông tin làm cho môt loạt các
hoạt đông luôn bị thay đổi và các yêu cầu thực tiễn của quản lý làm cho yêu cầu phần
mềm cũng thay đổi theo và kèm theo đó là sự thay đổi phần mềm để đáp ứng với các
yêu cầu thực tiễn trên cơ sở phần mềm cũ. Người ta gọi đó là tái kỹ nghệ phần mềm
với mục tiêu kế thừa những tinh hoa của phần mềm cũ và cập nhật những thay đổi mới
để giảm chi phí. Môt trong những công cụ của việc tái kỹ nghệ là việc quản lý dữ liệu
phi cấu trúc. Vấn đề đặt ra là tái kỹ nghệ sử dụng công cụ quản lý dữ liệu phi cấu trúc
như thế nào để đảm bảo tính hiệu quả và khoa học.
Chính vì thế luận văn của tôi với chủ để “Công nghệ quản lý dữ liệu phi cấu
trúc và ứng dụng phát triển hệ thống thông tin quản lý” với mục tiêu nghiên cứu sâu
hơn và làm rõ những mấu chốt trong việc sử dụng công nghệ quản lý dữ liệu phi cấu
trúc trong tái kỹ nghệ phần mềm đồng thời ứng dụng nó vào việc tái kỹ nghệ phát triển
hệ thống quản lý văn bản và điều hành trực tuyến cho Sở Y tế Bắc Kạn.
Để thực hiện được mục đích này đề tại đặt ra những nhiệm vụ cần đạt được như
sau:
- Tìm hiểu khái quát về tái kỹ nghệ và các công nghệ sử dụng trong quá trình tái
kỹ nghệ.
- Nghiên cứu các công nghệ quản lý dữ liệu phi cấu trúc và khả năng ứng dụng
của chúng.



2
- Ứng dụng môt công nghệ quản lý dữ liệu phi cấu trúc là Lotus Domino của
IBM để phát triển hệ thống quản lý văn bản và điều hành trực tuyến thông qua đổi mới
cơ chế tìm kiếm thông tin.
Luận văn gồm 3 chương:
Chương 1. Tổng quan về các công nghệ quản lý dữ liệu phi cấu trúc và hệ thống
quản lý văn bản, điều hành trực tuyến.
Chương 2. Các công nghệ quản lý dữ liệu phi cấu trúc.
Chương 3. Phát triển và cài đăt Hệ thống quản lý văn bản và điều hành trực
tuyến dựa trên công nghệ IBM-Lotus Domino.


3
Chương 1.
TỔNG QUAN VỀ CÁC CÔNG NGHỆ QUẢN LÝ DỮ LIỆU PHI CẤU TRÚC
VÀ HỆ THỐNG QUẢN LÝ VĂN BẢN, ĐIỀU HÀNH TRỰC TUYẾN
1.1.

Tổng quan về các công nghệ quản lý dữ liệu phi cấu trúc
1.1.1. Khái niệm về tái kỹ nghệ
Chikofsky và Cross đã định nghĩa tái kỹ nghệ là: “Kiểm tra, phân tích, biến đổi

hệ thống phần mềm hiện thời để xây dựng lại thành môt hệ thống mới, và bổ sung
thêm môt số thành phần mới vào trong đó” [6]. Định nghĩa này tập trung vào làm
sáng tỏ đặc trưng của thuật ngữ, các thay đổi của kết quả phần mềm. Arnold, đã định
nghĩa môt cách khác về tái kỹ nghệ là: “Bất kỳ hoạt đông nào làm cải tiến sự hiểu biết
về phần mềm, hoặc là hoạt đông cải tiến phần mềm và thường tăng khả năng bảo trì,
khả năng sử dụng lại, khả năng tiến hóa” (Arnold 1993).

Qui trình tái kỹ nghệ thường là sự kết hợp của nhiều qui trình khác nhau như kỹ
nghệ ngược, làm lại tài liệu, cấu trúc lại chương trình, chuyển đổi, kỹ nghệ xuôi, dịch
hệ thống sang môt ngôn ngữ lập trình hiện đại hơn. Mục đích là để có cái nhìn rõ hơn
về chương trình hiện thời (đặc tả, thiết kế, thực thi), sau đó tái thực hiện lại để cải
thiện các chức năng, hiệu suất, sự thi hành của hệ thống. Mục tiêu là để duy trì các
chức năng hiện có và chuẩn bị cho các chức năng mới sẽ được thêm vào sau này. Sau
khi sửa đổi, các chức năng chính của phần mềm không thay đổi, và thông thường thì
cấu trúc của chương trình vẫn được giữ nguyên như cũ.
Mặc dù nhiều hệ thống phần mềm cũ đã được thay thế, nhưng hầu hết trong số
chúng vẫn đang được sử dụng. Trong khi đó, từ năm 1990 đã có môt sự gia tăng rất
lớn trong việc sử dụng máy tính để hỗ trợ qui trình nghiệp vụ. Do đó, đến năm 2000 đã
có khoảng 250 nghìn tỉ dòng mã nguồn đang tồn tại và phải được duy trì. Phần lớn
trong số đó không được viết bằng các ngôn ngữ hướng đối tượng và số nhiều trong đó
vẫn được chạy trên các máy tính lớn[6,9]. Có nhiều hệ thống để tiếp tục tồn tại phải
thay đổi hoàn toàn hoặc cấu trúc lại hệ thống căn bản, do đó kinh phí sẽ phải bỏ ra là
rất lớn. Việc bảo trì môt hệ thống cũ khá tốn kém, vì vậy tái kỹ nghệ lại những hệ
thống này sẽ kéo dài thời gian sử dụng của chúng. Tái kỹ nghệ môt hệ thống sẽ có chi
phí hiệu quả khi hệ thống đó có giá trị nghiệp vụ cao nhưng lại tốn kém cho việc bảo


4
trì. Tái kỹ nghệ cải thiện cấu trúc hệ thống, tạo ra tài liệu của hệ thống mới và làm cho
nó dễ hiểu hơn.
Vậy trong trường hợp nào chúng ta nên thực hiện tái kỹ nghệ hệ thống. Câu trả
lời là tái kỹ nghệ sẽ có hiệu quả cao nhất khi thực hiện đối với môt hệ thống cũ được
kế thừa lại (legacy system). Môt hệ thống cũ được kế thừa lại có thể là môt phương
thức, công nghệ đã cũ, môt hệ thống máy tính hay môt chương trình ứng dụng lạc hậu
vẫn đang tiếp tục được sử dụng bởi các chức năng của nó vẫn đang đáp ứng những nhu
cầu của người dùng. Tuy nhiên, các hệ thống này sẽ không có hiệu quả cao do công
nghệ đã lạc hậu và các thủ tục hay các nền tảng hỗ trợ đã không còn tồn tại. Hơn thế

nữa, các hệ thống này thường không còn các tài liệu đặc tả, phân tích, các mô hình
thiết kế. Vì vậy, để có thể xây dựng lại hệ thống cần phải có sự hiểu biết sâu sắc về nó.
Do đó, tái kỹ nghệ là lựa chọn tốt nhất trong những trường hợp này.
Tái kỹ nghệ giai đoạn cũng liên kết với tái kỹ nghệ tiến trình nghiệp vụ
(Hammer, 1990). Tái kỹ nghệ tiến trình nghiệp vụ cũng liên quan với tiến trình nghiệp
vụ tái thiết kế để giảm số lượng các hoạt đông dự phòng và nâng cao hiệu quả của qui
trình. Nó thường phụ thuôc vào việc giới thiệu hoặc tăng cường hỗ trợ dựa trên máy
tính cho quá trình này.
Đặctảtảhệhệ
Đặc
thống
thống

Thiếtkếkếvàvàthực
thựcthi
thi
Thiết

Hệthống
thốngmới
mới
Hệ

Kỹ thuật dịch xuôi
Hệthống
thốngphần
phần
Hệ
mềmhiện
hiệnthời

thời
mềm
Chương
Chương
trình
Tái
kỹ nghệ phần mềm
trình
nguồn
nguồn

Hệthống
thống
Hệ
Hiểu

chuyển
đổi
Hiểu và chuyển đổi
táikỹ
kỹnghệ
nghệ
tái
Tài
liệu
Chương
Dữ
Tài liệu
Chương
Dữliệu

liệu
chương
trình
chương
trình
nguồn
nguồn
trình
module
hóa
trình
module hóa
Hình 1.1 : Tái kỹ nghệ phần mềm

Sự khác biệt then chốt giữa tái kỹ nghệ và phát triển môt hệ thống phần mềm
Kỹ
Kỹnghệ
nghệ
mới chính là điểm xuất
phát cho việc phát triển. Đối với việc phát triển môt hệ thống
ngược
ngược
Module
hóa
Tái
kỹ
nghệ
phần mềm mới, công việc sẽ bắt đầu với
việc viết
đặc

cho hệ thống,
Module
hóamôt tài liệu
Tái
kỹtả
nghệ
chương
trình
dữ
liệu
chương
trình
liệuđặc tả cho hệ
trong khi đối với tái kỹ nghệ, hệ thống cũ
đã đóng
vai trò như môtdữbản
Dịch

thống
mới.
Chikofsky và Cross (Chikofsky and Cross, 1990) đã đưa ra thuật ngữ “kỹ
Dịch

nguồn
nguồn
Cải
Cảitiến
tiếncấu
cấu
trúc

chương
trúc chương
trình
trình

Chương
Chương
trình
trìnhđược
được
cấu
trúc
cấu trúc

Dữ
Dữliệu
liệu
được
đượctái
tái
kỹ
nghệ
kỹ nghệ


5
nghệ xuôi” (forward engineering) trong tiến trình phát triển để phân biệt với tái kỹ
nghệ phần mềm. Sự khác biệt này được minh họa ở hình 1.1 [9]. Kỹ thuật dịch xuôi
bắt đầu với việc đặc tả hệ thống và bao gồm cả việc thiết kế và thực thi trong hệ thống
mới. Tái kỹ nghệ bắt đầu với môt hệ thống đã tồn tại và sau đó thực hiện các qui trình

phát triển để thay thế, biến đổi môt số thành phần của hệ thống dựa trên những hiểu
biết về hệ thống gốc.
Tài
Tàiliệu
liệu
chương
chương
trình
trình

Chương
Chương
trình
trình
nguồn
nguồn

Kỹ
Kỹnghệ
nghệ
ngược
ngược

Chương
Chương
trình
trình
module
modulehóa
hóa


Module
Modulehóa
hóa
chương
chươngtrình
trình

Dữ
Dữliệu
liệu
nguồn
nguồn

Tái
Táikỹ
kỹnghệ
nghệ
dữ
liệu
dữ liệu

Dịch
Dịchmã

nguồn
nguồn
Cải
Cảitiến
tiếncấu

cấu
trúc
trúcchương
chương
trình
trình

Chương
Chương
trình
trìnhđược
được
cấu
cấutrúc
trúc

Dữ
Dữliệu
liệu
được
đượctái
tái
kỹ
kỹnghệ
nghệ

Hình 1.2: Qui trình tái kỹ nghệ
Hình 1.2 mô tả môt qui trình tái kỹ nghệ có khả năng thực hiện được. Đầu vào
của qui trình là môt chương trình được kế thừa và đầu ra là môt phiên bản có các
module có cấu trúc rõ ràng của chính chương trình đó. Đồng thời cũng như là tái kỹ

nghệ chương trình, dữ liệu cho hệ thống cũng có thể được tái kỹ nghệ lại.
Các hoạt đông trong qui trình tái kỹ nghệ là:
1 Dịch mã nguồn Chương trình được chuyển đổi từ môt ngôn ngữ lập trình cũ sang
môt phiên bản mới hơn hoặc chuyển sang môt ngôn ngữ khác.
2 Kỹ nghệ ngược Chương trình được phân tích và lấy thông tin để làm tài liệu cho tổ
chức và các chức năng của chương trình.


6
3 Cải tiến cấu trúc hệ thống Cấu trúc điều khiển của chương trình được phân tích và
sửa đổi để giúp cho việc đọc và hiểu được dễ dàng hơn.
4 Module hóa hệ thống Liên kết các phần của chương trình thành môt nhóm với
nhau, và những thành phần riêng biệt, dư thừa được bỏ đi. Trong môt vài trường
hợp, giai đoạn này có thể bao gồm cả việc biến đổi cấu trúc chương trình.
5 Tái kỹ nghệ dữ liệu Dữ liệu xử lý bởi chương trình được thay đổi để phản hồi lại
những thay đổi của chương trình.
Tái kỹ nghệ chương trình có thể không cần thiết phải đầy đủ tất cả các bước như
trong hình 1.2. Việc dịch mã nguồn có thể không cần thiết nếu ngôn ngữ chương trình
sử dụng để phát triển hệ thống vẫn được các trình biên dịch hiện thời hỗ trợ. Nếu các
công cụ tự đông phục vụ cho quá trình tái kỹ nghệ có thể tin tưởng hoàn toàn thì
những tài liệu có được thông qua hoạt đông kỹ nghệ ngược có thể không cần thiết. Tái
kỹ nghệ dữ liệu chỉ cần thiết nếu cấu trúc dữ liệu trong chương trình thay đổi trong quá
trình tái kỹ nghệ hệ thống. Tuy nhiên, tái kỹ nghệ phần mềm luôn bao gồm việc cấu
trúc lại chương trình.
Tổ chức lại chương

Tổ chức lại chương

trình tự đông


trình và dữ liệu

Chuyển đổi mã nguồn

Tổ chức lại tự đông với

Tổ chức lại công với

tự đông

thay đổi thủ công

thay đổi kiến trúc

Chi phí tăng
Hình 1.3: Chi phí tái kỹ nghệ
Chi phí của tái kỹ nghệ hiển nhiên được quyết định bởi qui mô công việc cần
phải được tiến hành. Chi phí của các phương pháp tiếp cận đến tái kỹ nghệ được thể
hiện trong hình 1.3. Chi phí tăng từ trái qua phải, vì thế chuyển đổi mã nguồn là lựa
chọn rẻ nhất và tái kỹ nghệ chính là môt phần của việc chuyển hướng cấu trúc là cái có
chi phí cao nhất.


7
Ngoại trừ qui mô của hoạt đông tái kỹ nghệ, các yếu tố ảnh hưởng đến chi phí
của tái kỹ nghệ là: Chất lượng của phần mềm để tái kỹ nghệ, công cụ hỗ trợ có sẵn cho
việc tái kỹ nghệ, phạm vi của chuyển đổi dữ liệu thiết yếu, tính sẵn có của đôi ngũ
nhân viên chuyên môn.
Tái kỹ nghệ hệ thống phần mềm có hai ưu điểm chính so với các phương pháp
tiếp cận khác trong việc cải tiến hệ thống đó là giảm thiểu rủi ro và giảm giá thành

phần mềm.
1.1.2. Qui trình chung tái kỹ nghệ phần mềm

Hình 1.4. Quy trình tái kỹ nghệ phần mềm
• Kiểm kê phân tích
• Lựa chọn tài liệu tái tổ chức lại:
• Kỹ nghệ ngược:
• Tổ chức lại code (Code restructuring):
• Tổ chức lại dữ liệu (Data restructuring):
• Kỹ nghệ chuyển tiếp.
Tái kỹ nghệ bắt đầu với mã nguồn của hệ thống cơ sở đang tồn tại và kết thúc
với mã nguồn của hệ thống muốn hướng tới. Quá trình này có thể đơn giản như sử
dụng công cụ dịch mã nguồn để dịch mã nguồn từ môt ngôn ngữ sang ngôn ngữ khác
(FORTRAN sang C) hoặc từ môt hệ điều hành này sang hệ điều hành khác (UNIX
sang DOS). Mặt khác, nhiệm vụ của tái kỹ nghệ có thể rất phức tạp, sử dụng mã
nguồn hiện đang tồn tại để tái tạo lại phần thiết kế, xác định yêu cầu trong hệ thống


8
đang tồn tại sau đó so sánh chúng với yêu cầu hiện tại, loại bỏ những thứ không còn
áp dụng, thiết kế lại hệ thống bằng cách sử dụng thiết kế hướng đối tượng và cuối
cùng code thành môt hệ thống mới. Hình 1.4, Mô hình chung của các phần mềm tái
kỹ nghệ cho biết kỹ thuật, quy trình cho tất cả các cấp của tái kỹ nghệ dựa trên các
cấp đô của trình đô phát triển phần mềm trừu tượng được nói đến ở trên.
Các mô hình trong hình 1.5 áp dụng ba nguyên tắc của tái ký nghệ: sự trừu
tượng hóa (abstraction ), sự sửa đổi (alteration), và sự sàng lọc (refinement).
(Biến đổi)

Kỹ nghệ
ngược

(Trừu tượng)

Khái

Nghĩ lại

Kỹ nghệ

Khái

xuôi

niệm

niệm
Yêu cầu

Đặc tả lại

Yêu cầu

Thiết kế

Thiết kế lại

Thiết kế

Triển khai

Code lại


(Cải tiến)

Triển khai

So sánh
Hệ thống ban đầu

Hệ thống đích
chất lượng

chức năng
Hình 1.5. Mô hình chung của tái kỹ nghệ phần mềm
Sự trừu tượng hóa là môt cấp đô tăng dần dần trong cấp đô trừu tượng của hệ
thống. Sự trình bày hệ thống được tạo ra bởi sự thay thế liên tiếp các thông tin chi tiết
hiện có với các thông tin mà nó trừu tượng hơn. Sự trừu tượng hóa đưa ra sự miêu tả
nhấn mạnh môt số đặc điểm của hệ thống. Sự dịch chuyển đi lên này gọi là kỹ thuật
đảo ngược và có liên quan đến quá trình phụ, các công cụ và kỹ thuật. Sự sửa đổi
(alteration) là tạo ra môt hoặc nhiều chuyển đổi môt đại diện của hệ thống mà không
thay đổi mức đô trừu tượng hóa trong đó có bổ sung, xóa và sửa đổi thông tin. Sự sàng
lọc (refinement) là sự giảm dần trong cấp đô trừu tượng hóa của hệ thống bị gây ra bởi
sự thay thế liên tiếp các thông tin trong hệ thống tồn tại với nhiều thông tin chi tiết. Đó
là kỹ thuật chuyển tiếp (Forward Engineering) giống như phát triển phần mềm với mã
(code) mới nhưng với môt số quy trình sàng lọc.


9
1.1.2.1.

Dịch mã nguồn


Dạng đơn giản nhất của tái kỹ nghệ phần mềm là dịch mã nguồn từ ngôn ngữ
này sang môt ngôn ngữ khác bằng các công cụ dịch tự đông. Do đó cấu trúc của
chương trình hoàn toàn không thay đổi. Ngôn ngữ đích có thể là môt phiên bản mới
hơn của ngôn ngữ gốc (ví dụ từ COBOL-74 sang COBOL-85) hoặc là môt ngôn ngữ
hoàn toàn khác (ví dụ từ FORTRAN sang C).
Cần phải chuyển đổi mã nguồn vì những lý do: Nền phần cứng được cập nhật,
thiếu nhân viên có kỹ năng, những thay đổi chính sách tổ chức, thiếu những sự trợ
giúp phần mềm.
Hình 1.5 mô tả qui trình dịch mã nguồn. Có thể không cần hiểu hoạt đông chi tiết
của phần mềm hoặc sửa đổi cấu trúc của hệ thống. Những phân tích liên quan có thể
tập trung vào ngôn ngữ lập trình và có thể coi nó tương đương như cấu trúc điều khiển
của chương trình.
Hệ
Hệthống
thốngđược
được
tái
táikỹ
kỹnghệ
nghệ

Xác
Xácđịnh
địnhsựsựkhác
khác
biệt
biệtcủa
củamã
mãnguồn

nguồn

Thiết
Thiếtkếkếtài
tài
liệu
liệuchuyển
chuyểnđổi
đổi

Hệ
Hệthống
thốngđược
được
tái
táikỹ
kỹnghệ
nghệ

Hệ
Hệthống
thốngtái
tái
kỹ
kỹnghệ
nghệ

Dịch
Dịchmã


tựtựđông
đông

Dịch
Dịchmã

thủ
thủcông
công

Hình 1.6: Qui trình dịch mã nguồn
Dịch mã nguồn sẽ chỉ thực sự kinh tế nếu như việc dịch tự đông sẵn sàng
cho việc dịch môt số lượng lớn bản dịch. Nó có thể là môt chương trình được viết đặc
biệt, môt công cụ được mua để chuyển đổi từ ngôn ngữ này sang ngôn ngữ khác hoặc
môt mô hình hệ thống thích hợp. Trong trường hợp thứ hai, cần phải xây dựng tập hợp
những hướng dẫn làm thế nào để chuyển đổi từ sự trình bày này sang sự trình bày
khác. Các mẫu tham số trong ngôn ngữ gốc phải được xác định và liên kết với các mẫu
tương đương trong ngôn ngữ đích.
1.1.2.2.

Kỹ nghệ ngược


10
Kỹ nghệ ngược là môt tiến trình phân tích để xác định quan hệ của hệ thống và
tạo ra các thành phần của hệ thống trong môt mẫu khác hoặc trong môt cấp đô trừu
tượng cao hơn. Trong kỹ nghệ ngược, các yêu cầu và thiết kế cấu trúc cần thiết và nôi
dung của hệ thống phải giảm đi. Ngoài ra để giữ lại lược đồ quan hệ và các mối tương
tác, thông tin và các quy luật về ứng dụng doanh nghiệp và quá trình hữu ích trong
hoạt đông kinh doanh phải được lưu lại. Mục tiêu chủ chốt của kỹ nghệ ngược là tạo ra

để thay thế, phục hồi việc mất thông tin, phát hiện phản ứng phụ, và tạo điều kiện tái
sử dụng. Hiệu quả của quá trình này ảnh hưởng đến việc thành công của dự án tái kỹ
nghệ. Kỹ nghệ ngược không làm thay đổi hệ thống được tạo ra môt hệ thống mới, nó
là môt quá trình kiểm tra không làm thay đổi tính năng tổng thể của hệ thống.
Biểu đồ cấu

Phân tích
tự đông

Kho
thông

Hệ thống cần

tin hệ

tái kỹ nghệ

thống

trúc chương

trình

Tạo tài

Biểu đồ cấu

liệu


trúc dữ liệu

Diễn giải
thủ công
Hình 1.7: Tiến trình kỹ nghệ ngược

Ma trận truy
xuất nguồn

gốc

Kỹ nghệ ngược thường đi trước tái kỹ nghệ. Đôi khi kỹ nghệ ngược được ưa
thích. Khi những đặc điểm kỹ thuật và thiết kế của hệ thống cần phải được xác định
trước bằng cách sử dụng chúng như là đầu vào cho quá trình đặc tả các yêu cầu cho hệ
thống thay thế . Khi việc thiết kế và đặc điểm kỹ thuật cho môt hệ thống là cần thiết để
hỗ trợ các hoạt đông bảo trì chương trình.
1.1.2.3.

Làm lại tài liệu

Các chương trình để tái kỹ nghệ thường không còn tài liệu, thiết kế v.v…, vì vậy
việc làm lại tài liệu là môt nhiệm vụ cần thiết trong quá trình tái kỹ nghệ. Chikofsky đã
định nghĩa quá trình làm lại tài liệu là tạo ra hoặc sửa đổi lại tài liệu hiện thời (nếu có)
sang môt cách miêu tả có ngữ nghĩa tương đương với mức trừu tượng tương đối. Và
kết quả của việc làm này là ta thu được môt cái nhìn đan xen nhau về hệ thống (ví dụ


11
như luồng điều khiển, cấu trúc điều khiển, luồng dữ liệu). Làm lại tài liệu là môt hình
thức đơn giản nhất và là giai đoạn khởi đầu của kỹ nghệ ngược.

Làm lại tài liệu mã nguồn là sự biến đổi từ mã nguồn (công với những hiểu biết
về chương trình và các tài liệu khác) sang môt tài liệu mã nguồn mới hoặc nâng cấp tài
liệu mã nguồn. Thông thường, những tài liệu này sẽ ở dạng văn bản (ví dụ như là
những ghi chú trong chương trình), nhưng nó cũng có thể là những tài liệu bằng đồ
họa. Việc cải tiến phần mềm bằng cách nâng cấp tài liệu (những chú thích, thiết kế,
đặc tả được nhúng trong chương trình) là môt trong những kỹ thuật tái kỹ nghệ cũ.
Làm lại tài liệu là môt hoạt đông quan trọng bởi việc bảo trì thường phải dựa vào
những chú thích được viết trong chương trình và coi đó là cơ sở để có thể hiểu được
những đoạn mã trong chương trình hoạt đông như thế nào. Với việc làm lại tài liệu,
những kĩ sư bảo trì sẽ có cái nhìn toàn diện và đầy đủ hơn về hệ thống và hoạt đông
của nó. Ngày nay, việc làm lại tài liệu không phải chỉ thủ công mà đã có rất nhiều
công cụ, hỗ trợ cho con người rất nhiều trong việc xây dựng lại tài liệu. Môt số công
cụ phổ biến như là “máy in chất lượng” là môt chương trình có thể hiển thị môt danh
sách các mã trong dạng cải tiến, hay như máy tạo biểu đồ có thể tạo ra các biểu đồ trực
tiếp từ mã, phản ánh các luồng mã và cấu trúc mã, hoặc là máy phát danh sách tham
chiếu chéo. Môt mục tiêu chính của những công cụ này là giúp cho con người có thể
dễ dàng hình dung được mối quan hệ giữa các thành phần của chương trình, từ đó có
thể thấy phương hướng rõ ràng để thực hiện công việc.
1.1.2.4.

Phục hồi thiết kế

Sau bước làm lại tài liệu, việc phục hồi lại thiết kế của chương trình là môt việc
làm cần thiết. Phục hồi thiết kế là môt tập hợp các kỹ thuật đảo ngược trong đó chúng
ta phải xây dựng lại thiết kế cho chương trình dựa trên việc trực tiếp kiểm tra hệ thống
đó. Ngoài ra, chúng ta phải thu thập thêm các thông tin, kiến thức bên ngoài của hệ
thống, các nguyên nhân trích xuất không rõ ràng của hệ thống, từ đó giúp cho hệ thống
có khả năng quan sát tổng quát hơn, với mức đô trừu tượng cao hơn.
Việc bảo trì phần mềm và thu hoạch những thành phần tái sử dụng lại từ phần
mềm đó, cả hai đều cần đến phân tích việc tái cấu trúc lại thiết kế của hệ thống. Tuy

nhiên, mã nguồn của chương trình thường không chứa nhiều các thông tin về thiết kế
trong giai đoạn đầu. Qua mã nguồn, ta chỉ có thể cấu trúc lại các thông tin cơ bản nhất.


12
Do vậy, các nguồn thông tin bổ sung, do cả con người hay tự đông đều cần thiết. Hơn
thế nữa, vì qui mô của môt phần mềm để tái kỹ nghệ thường rất lớn (có đến hàng trăm
dòng mã hoặc nhiều hơn nữa) cho nên việc phân tích cũng rất cần những hỗ trợ tự
đông để có thể hiểu được qui trình.
Phục hồi lại thiết kế là tạo lại thiết kế ở mức đô trừu tượng từ việc kết hợp mã
chương trình, các tài liệu thiết kế của chương trình hiện tại (nếu có), kinh nghiệm của
con người và các hiểu biết chung về hệ thống chương trình.
Các thiết kế trừu tượng được phục hồi phải bao gồm các thành phần cơ bản của
kỹ nghệ phần mềm như là đặc tả hình thức, phân tích module, trừu tượng hóa dữ liệu,
luồng dữ liệu và ngôn ngữ đặc tả chương trình. Ngoài ra chúng ta phải bổ sung thêm
những thông tin như vấn đề ngôn ngữ, cách biểu diễn ứng dụng trong môi trường của
chương trình. Tóm lại, phục hồi thiết kế phải sao chép lại toàn bô các thông tin cần
thiết để môt người có thể hiểu đầy đủ về chương trình như chương trình làm cái gì,
làm như thế nào, tại sao nó lại hoạt đông như thế,… Vì vậy, việc tập trung vào phục
hồi các thông tin xa rông trong thiết kế cần thiết hơn là tìm ra những đại diện hoặc mã
của việc kỹ nghệ phần mềm thông thường.
Phục hồi thiết kế diễn ra trong môt chuỗi các hoạt đông từ phát triển đến bảo trì
phần mềm.
1.1.2.5.

Cấu trúc lại hệ thống

Cấu trúc lại hệ thống là môt giai đoạn quan trọng và rất cần thiết trong qui trình
tái kỹ nghệ. Cấu trúc lại hệ thống không chỉ đơn thuần là xây dựng lại cấu trúc cho hệ
thống cũ, mà chúng ta phải thực hiện cải tiến lại hệ thống cũ, tạo ra môt hệ thống mới

phù hợp với môi trường hiện tại, cung cấp đầy đủ các tính năng mà hiện tại hệ thống
được đòi hỏi. Do nhu cầu ngày nay, các hệ thống cần sử dụng bô nhớ lớn, vì vậy phải
có sự tối ưu hóa việc sử dụng bô nhớ chương trình. Công với việc có nhiều người lập
trình thiếu hiểu biết về kỹ nghệ phần mềm dẫn đến hệ thống có cấu trúc không tốt. Cấu
trúc điều khiển chương trình có thể sẽ khó hiểu do chương trình có nhiều nhánh rẽ
không sử dụng các câu lệnh điều kiện và logic điều khiển chương trình không được
tốt. Cũng có thể do chương trình thường xuyên phải bảo trì đã làm xuống cấp cấu trúc
của hệ thống. Chúng ta có thể thay đổi để chương trình có thể thực hiện những đoạn
mã mà bình thường chúng không hoạt đông, tuy nhiên điều này chỉ được phát hiện khi


13
sau khi đã có sự phân tích tổng thể. Các lập trình viên bảo trì thường không dám loại
bỏ mã trong trường hợp nó có thể được truy cập gián tiếp.
Bohm và Jacopini (Bohm và Jacopini, 1966) đã chứng minh rằng, bất kỳ chương
trình nào cũng có thể được viết lại thành các dạng đơn giản bằng cách sử dụng những
câu lệnh điều kiện if – else , vòng lặp while, và những câu lệnh vô điều kiện như goto
sẽ không cần thiết trong chương trình. Định lý này là cơ sở cho việc tái cấu trúc
chương trình tự đông. Hình 1.8 cho thấy các giai đoạn trong việc cấu trúc lại môt
chương trình bằng phương pháp tự đông. Qua lần biến đổi đầu tiên, chương trình sẽ
được chuyển đổi thành môt đồ thị có hướng, tiếp theo đó nó sẽ được chuyển đổi thành
môt chương trình mới có cấu trúc tương đương với chương trình cũ.
Chương
Chươngtrình
trìnhđểđể
cấu
cấutrúc
trúclại
lại


Chương
Chươngtrình
trìnhđãđã
được
đượccấu
cấutrúc
trúclại
lại
Công
Côngcụcụsinh
sinh
chương
chươngtrình
trình

Công
Côngcụcụphân
phântích
tích
vàvàxây
dựng
biểu
xây dựng biểuđồ
đồ

Trình
Trìnhdiễn
diễnbiểu
biểuđồ
đồ


Hình 1.8: Cấu trúc chương trình tự động
Các đồ thị có hướng được tạo ra là môt đồ thị các luồng chương trình trong đó
chỉ ra cách thức điều khiển di chuyển thông qua các chương trình. Đơn giản hoá và
chuyển đổi kỹ thuật có thể được áp dụng cho đồ thị này mà không thay đổi ngữ nghĩa
của nó. Phải phát hiện và loại bỏ các đoạn mã không cần thiết trong hoạt đông của
chương trình. Môt khi hoàn thành việc đơn giản hóa cấu trúc chương trình, chúng ta đã
tạo ra được môt chương trình mới.
Tái cấu trúc chương trình tự đông sẽ gặp các vấn đề sau:
- Mất ghi chú. Nếu chương trình có các dòng ghi chú trong đó, nó sẽ luôn bị
mất đi trong quá trình tái cấu trúc.


14
- Mất tài liệu. Tương tự, tài liệu của chương trình cũng sẽ bị mất đi. Tuy nhiên,
trong nhiều trường hợp, sau quá trình tái cấu trúc, cả các ghi chú và tài liệu của
chương trình đều trở nên lạc hậu. Bởi vậy đây không phải là môt nhân tố quan trọng.
- Nặng về nhu cầu tính toán. Các thuật toán nhúng trong các công cụ tái cấu trúc
rất phức tạp. Thậm chí ngay cả với các phần cứng nhanh và hiện đại cũng phải mất
môt thời gian dài để hoàn thành qui trình tái cấu trúc cho các chương trình lớn.
Nếu chương trình phụ thuôc vào dữ liệu trong đó các thành phần gắn kết chặt
chẽ với nhau thông qua việc chia sẻ cấu trúc dữ liệu, việc cấu trúc lại mã không đưa
đến cải tiến sự hiểu biết môt cách đáng kể. Do vậy, việc module hóa chương trình có
thể cần thiết. Nếu chương trình được viết bằng môt hệ ngôn ngữ không chuẩn, các
công cụ tái cấu trúc tiêu chuẩn có thể không hoạt đông đúng đắn và sự can thiệp thủ
công có ý nghĩa vô cùng cần thiết.
Trong môt số trường hợp, có thể không có chi phí hiệu quả để cấu trúc lại toàn
bô các chương trình trong môt hệ thống. Môt số có thể có chất lượng tốt hơn so với số
khác trong khi đó môt vài cái lại không thể tùy thuôc vào các thay đổi thường xuyên.
Arthur (Arthur, 1988) cho thấy rằng môt dữ liệu phải được thu thập để giúp xác định

những chương trình nào có thể hưởng lợi nhiều nhất từ tái cấu trúc. Ví dụ, các thông
số sau đây có thể được sử dụng để xác định các chương trình thích hợp cho việc tái
cấu trúc:
-

Ước lượng thất bại

-

Tỉ lệ phần trăm mã nguồn thay đổi trên mỗi năm

-

Đô phức tạp của các thành phần
Môt số nhân tố khác như mức đô để chương trình hoặc các thành phần

của chương trình có thể đạt đến tiêu chuẩn như hiện thời cũng có thể dựa vào đó để
quyết định cho việc tái cấu trúc.
1.1.2.6.

Module hóa chương trình

Module hóa 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 đến nhau được tập hợp lại với nhau trong cùng môt module.
Môt khi việc module hóa chương trình đã được thực hiện, chúng ta có thể dễ dàng loại
bỏ được các thành phần dư thừa và tối ưu hóa tương tác giữa các thành phần đồng thời
làm giảm giao diện giữa môt thành phần với các phần còn lại của hệ thống. Ví dụ,


15

trong chương trình xử lý dữ liệu chấn địa, toàn bô các toán tử liên kết với thành phần
đồ họa thể hiện của dữ liệu có thể tập hợp lại với nhau trong cùng môt module. Nếu hệ
thống được phân phối, các module được tạo ra lại có thể gói gọn lại thành môt đối
tượng và có thể được truy cập qua môt giao diện chung.
Có môt vài kiểu module khác nhau có thể được tạo ra trong quá trình module hóa
là:
-

Dữ liệu trừu tượng

-

Module phần cứng

-

Module chức năng

-

Module hỗ trợ cho qui trình

Module hóa chương trình thường được thực hiện thủ công bằng cách kiểm tra và
sửa đổi mã. Để module hóa môt chương trình, chúng ta phải xác định mối quan hệ
giữa các thành phần và đề ra xem các thành phần này làm những gì. Các công cụ trực
quan và các công cụ duyệt có thể giúp chúng ta trong quá trình module hóa, nhưng
chúng ta vẫn không thể hoàn toàn thực hiện tự đông quá trình này.
1.1.2.7.

Tái kỹ nghệ dữ liệu


Cho tới bây giờ, hầu hết các cuôc thảo luận về quá trình phát triển phần mềm
đều tập trung vào vấn đề các chương trình và hệ thống phần mềm luôn luôn biến đổi.
Tuy nhiên, trong nhiều trường hợp, nó lại liên quan đến vấn đề phát triển dữ liệu. Lưu
trữ, tổ chức và định dạng của dữ liệu được xử lý bởi chương trình cũ phải được tiến
hóa để phù hợp với những thay đổi của phần mềm. Quá trình phân tích và tổ chức lại
cấu trúc dữ liệu và đôi khi là cả giá trị của dữ liệu trong hệ thống làm cho nó trở nên
dễ hiểu hơn được gọi là tái kỹ nghệ dữ liệu.
Nói chung, tái kỹ nghệ dữ liệu không cần thiết nếu như các chức năng của hệ
thống không thay đổi. Tuy nhiên, trong thực tế, có rất nhiều lý do để chúng ta phải sửa
đổi dữ liệu khi chương trình của chúng ta là môt hệ thống cũ được kế thừa lại:
-

Sự thoái hóa dữ liệu.

-

Những giới hạn cố hữu được xây dựng trong chương trình

-

Tiến hóa kiến trúc

-

Vấn đề đặt tên dữ liệu

-

Vấn đề đô dài trường



16
-

Vấn đề tổ chức bản ghi

-

Các giá trị cố định mã hóa cứng

-

Không có từ điển dữ liệu
Chương trình 1

Tệp 1

Chương trình 2

Tệp 2

Chương trình 4

Tệp 3

Chương trình 5

Chương trình 3


Tệp 4

Tệp 5

Tệp 6

Chương trình 6

Chương trình 7

Trở thành

Chương trình
Chương trình

4

Chương trình
5

Chương trình
6

3

Chương trình

Chương trình

7


2
Chương trình

Hệ thống quản lý CSDL

Mô tả

Mô hình dữ
liệu vật lý và
logic

1
Hình 1.9. Chuyển đổi dữ liệu

Cũng như định nghĩa dữ liệu không phù hợp, các giá trị dữ liệu cũng có thể
được lưu trữ môt cách không phù hợp. Sau khi các định nghĩa dữ liệu được tái kỹ
nghệ, giá trị của dữ liệu cũng phải được chuyển đổi để phù hợp với cấu trúc mới.


17
Trước khi tái kỹ nghệ dữ liệu của chương trình, điều cần thiết trước khi làm là
phải phân tích chi tiết chương trình. Những phân tích này nên nhằm vào mục đích phát
hiện những chức năng định danh trong chương trình, tìm ra các giá trị cố định để thay
đổi thành tên hằng số, phát hiện những qui tắc kiểm chứng dữ liệu nhúng và chuyển
đổi đại diện của dữ liệu. Các công cụ như là phân tích và mô hình tham chiếu chéo có
thể được sử dụng để giúp cho quá trình phân tích được nhanh chóng và đơn giản hơn.
Môt tập hợp các bảng nên được tạo ra để chỉ ra các mục dữ liệu được tham chiếu và
những thay đổi được tạo ra cho mỗi tham chiếu đó.
Chương trình được tái kỹ nghệ


Phân
tích dữ

Phân
tích dữ
liệu

Sửa đổi tên
thực thể
Thay thế các
giá trị cố định.
Sắp xếp lại
định nghĩa dữ
liệu
Giai đoạn 1

liệu

Định dạng lại
dữ liệu
Chuyển đổi
Chuyển
giá trị mặc
định
đổi dữ liệu
Sửa đổi các
qui tắc hợp lệ
Giai đoạn 3
Giai đoạn 2


Bảng tổng hợp thay đổi

Dữ liệu
sửa đổi

Hình 1.10: Quá trình tái kỹ nghệ dữ liệu
Hình 1.10 minh họa quá trình tái kỹ nghệ dữ liệu, giả định rằng những định nghĩa
dữ liệu được sửa đổi, các giá trị cố định được đặt tên, định dạng dữ liệu được tổ chức
lại và giá trị dữ liệu được chuyển đổi. Bảng tóm tắt các chi tiết trong thay đổi được tạo
ra. Do đó chúng được sử dụng ở tất cả các giai đoạn của quá trình tái kỹ nghệ dữ liệu.
Trong giai đoạn 1 của quá trình này, các định nghĩa dữ liệu trong chương trình
được sửa đổi cho dễ hiểu hơn. Dữ liệu không bị ảnh hưởng bởi các sửa đổi. Có thể tự
đông quá trình này ở môt mức đô nào đó bằng cách sử dụng hệ thống kết hợp mô hình
như là AWK (Aho, Kernighan và môt số người khác, 1988) để tìm và thay thế các
định nghĩa hoặc để phát triển các mô tả UML của dữ liệu (St Laurent and Cerami,
1999) và sử dụng các công cụ chuyển đổi dữ liệu. Tuy nhiên, môt vài việc làm thủ


18
công hầu như là cần thiết để hoàn tất quá trình. Quá trình tái kỹ nghệ dữ liệu có thể
dừng lại ở giai đoạn này nếu mục đích chỉ đơn giản là làm tăng hiểu biết về các định
nghĩa cấu trúc dữ liệu trong chương trình. Tuy nhiên, nếu có các vấn đề về giá trị dữ
liệu như đã được trình bày ở trên thì giai đoạn 2 có thể thực hiện.
Nếu tổ chức quyết định tiếp tục giai đoạn 2 của quá trình, sau đó là tập trung vào
giai đoạn 3, chuyển đổi dữ liệu. Nó thường là môt quá trình rất tốn kém. Chương trình
phải được viết với đầy đủ những hiểu biết về tổ chức cũ và mới. Nó thực hiện chuyển
đổi dữ liệu cũ và chuyển đổi thông tin đầu ra. Môt lần nữa, hệ thống mẫu phù hợp có
thể được sử dụng để tiến hành sự chuyển đổi này.
1.1.2.8. Kỹ nghệ chuyển tiếp

Hệ thống mục tiêu mới được tạo ra bằng cách di chuyển xuống phía dưới thông
qua các mức đô trừu tượng (the levels of abstraction), môt sự giảm dần trong mức đô
trừu tượng của hệ thống được diễn tả bằng cách thay thế liên tiếp các thông tin của hệ
thống tồn tại với nhiều thông tin chi tiết hơn. Sự di chuyển xuống này thực sự di
chuyển thông qua quy trình phát triển phần mềm chuẩn do đó đó là kỹ nghệ chuyển
tiếp. Kỹ nghệ chuyển tiếp di chuyển từ cấp đô trừu tượng cao và hợp lý thực hiện thiết
kế đôc lập các chức năng vật lý của hệ thống. Môt chuỗi các yêu cầu thông qua thiết
kế để thực hiện được theo sau. Những rủi ro có do mức đô và kỹ thuật trong quá trình
chuẩn bị kỹ nghệ đảo ngược. Dự án đang tiếp xúc với nhiều nguy cơ với sự thay đổi
hoặc bổ sung các yêu cầu mới.
Đặc tả hệ thống

Thiết kế và cài

Hệ thống mới

đặt

Mô hình chuyển tiếp
Hệ thống đã tồn tại

Tìm hiểu

Hệ thống tái kỹ nghệ

và dịch chuyển
Mô hình tái kỹ nghệ
Hình 1.11: Kỹ nghệ chuyển tiếp và Tái kỹ nghệ phần mềm
1.1.3. Các công cụ trợ giúp quá trình tái kỹ nghệ phần mềm
Có khá nhiều các công cụ hỗ trợ cho việc tái kỹ nghệ. Trong mỗi giai đoạn của

quy trình lại có môt công cụ phục vụ cho các công việc khác nhau. Để dịch mã nguồn


×