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....................................19
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


v
Hình 3.15: Giao diện chi tiết văn bản đến
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
Tái
kỹ
nghệ
phần mềm mới, công việc sẽ bắt đầu với
việc hóa
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.
Dịch
mãChikofsky và Cross (Chikofsky and Cross, 1990) đã đưa ra thuật ngữ “kỹ
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,


15
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ụ, 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.


16
-

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

-

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

Chương trình 6

Tệp 6


Chương trình 7

Trở thành

Chương trình

Chương trình

Chương trình

4

5

Chương trình
6

3

Chương trình

Chương trình

7

2
Chương trình
1

Hệ thống quản lý CSDL


Mô tả

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


17
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.
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 đó.
Phân

Chương trình được tái kỹ nghệ

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

Định dạng lại
Chuyển

liệu

đổi
Chuyển
đổi dữ liệu

Sửa đổi các
Giai đoạn 2

Giai đoạn 3

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ự


18
độ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ủ
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
và dịch chuyển
Mô hình tái kỹ nghệ

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


×