Tải bản đầy đủ (.pdf) (135 trang)

Sử dụng lại theo hướng tiếp cận miền ứng dụng và vận dụng trong phát triển phần mềm hướng đối tượng

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 (4.15 MB, 135 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





VŨ DIỆU HƯƠNG





SỬ DỤNG LẠI THEO HƯỚNG TIẾP CẬN
MIỀN ỨNG DỤNG VÀ VẬN DỤNG TRONG
PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG




LUẬN VĂN THẠC SĨ








Hà Nội – 2004


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




VŨ DIỆU HƯƠNG




SỬ DỤNG LẠI THEO HƯỚNG TIẾP CẬN
MIỀN ỨNG DỤNG VÀ VẬN DỤNG TRONG
PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG


Chuyên ngành: Công nghệ thông tin
Mã số: 1.01.10

LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. Nguyễn Văn Vỵ





Hà Nội – 2004

MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC BẢNG BIỂU
DANH MỤC CÁC HÌNH VẼ
MỞ ĐẦU 1
CHƢƠNG 1 5
TỔNG QUAN VỀ VẤN ĐỀ SỬ DỤNG LẠI TRONG PHÁT TRIỂN PHẦN MỀM 5
1.1. Khỏi niệm 5
1.2. Lịch sử và quỏ trỡnh phỏt triển của sử dụng lại 5
1.3. Vai trũ và tầm quan trọng của sử dụng lại 7
1.4. Phõn loại sử dụng lại 8
1.5. Cỏc chế tỏc cú thể sử dụng lại 8
1.6. Các rào cản đối với việc sử dụng lại 10
1.7. Cơ sở khoa học cho sử dụng lại 11
1.7.1. Phƣơng pháp 12
1.7.2. Cụng cụ 13
1.8. Các hoạt động sử dụng lại 14
1.8.1. Phỏt triển phần mềm cho sử dụng lại 15
1.8.2. Phỏt triển phần mềm với sử dụng lại 16
1.9. Một số cỏch tiếp cận cho sử dụng lại 17
1.9.1. Phát triển phần mềm hƣớng đối tƣợng 17
1.9.2. Phỏt triển phần mềm dựa trờn thành phần 18
1.9.3. Phát triển phần mềm hƣớng sử dụng lại 20
1.9.4. Mẫu thiết kế 20
1.9.5. Bộ phỏt sinh 21
1.9.6. Miền ứng dụng 22
1.10.Kết luận 22
CHƢƠNG 2 24
KỸ NGHỆ MIỀN VÀ HƢỚNG TIẾP CẬN MIỀN ỨNG DỤNG 24
2.1. Cỏc khỏi niệm 24

2.1.1. Miền ứng dụng 24
2.1.2. Kỹ nghệ miền 24
2.1.3. Kỹ nghệ ứng dụng 25
2.1.4. Phỏt triển một mụ hỡnh kiến trỳc miền tổng quỏt 27
2.1.5. Phõn tớch miền 28
2.1.6. Thiết kế miền 34
2.1.7. Triển khai miền 35
2.1.8. Họ sản phẩm (họ ứng dụng) 36
2.1.9. Mụ hỡnh miền 37
2.2. Phƣơng pháp phân tích miền hƣớng đặc tính 38
2.2.1. Phõn tớch khung cảnh 38
2.2.2. Mụ hỡnh húa miền 40
2.2.3. Mụ hỡnh húa kiến trỳc 43
2.3. Sử dụng lại theo hƣớng tiếp cận miền ứng dụng 46
2.4. Kết luận 50
CHƢƠNG 3 51
THỬ NGHIỆM CÁC HOẠT ĐỘNG SỬ DỤNG LẠI THEO HƢỚNG TIẾP CẬN
MIỀN ỨNG DỤNG VỚI CÔNG NGHỆ HƢỚNG ĐỐI TƢỢNG 51
3.1. Lĩnh vực thử nghiệm 51
3.2. Mục tiờu 52
3.3. Thử nghiệm phỏt triển phần mềm cho sử dụng lại 52
3.3.1. Nội dung thử nghiệm 52
3.3.2. Phõn tớch miền 53
3.3.3. Phõn loại tài sản 59
3.3.4. Thiết kế và thử nghiệm thƣ viện 61
3.3.5. Kết quả và đánh giá 67
3.4. Thử nghiệm phỏt triển phần mềm với sử dụng lại 68
3.4.1. Các bƣớc thử nghiệm 68
3.4.2. Vai trũ của thƣ viện RAL trong mỗi bƣớc thử nghiệm 68
3.4.2. Mục tiờu thử nghiệm 69

3.4.3. Nắm bắt và phõn tớch yờu cầu 69
3.4.4. Thiết kế 92
3.4.5. Cài đặt 97
3.4.6. Kết luận và đánh giá 98
KẾT LUẬN VÀ ĐÁNH GIÁ CHUNG 99
DANH MỤC CễNG TRèNH CỦA TÁC GIẢ 101
TÀI LIỆU THAM KHẢO 102
PHỤ LỤC A: MỘT SỐ TÀI SẢN ĐƢỢC SỬ DỤNG LẠI 108
1. Hệ thống Tuyển sinh Đại học 108
2. Hệ thống quản lý Giảng dạy và học tập 112
3. Hệ thống Quản lý đào tạo từ xa 114
4. Hệ thống Quản trị đào tạo LMS 115
PHỤ LỤC B: THƢ VIỆN TÀI SẢN SỬ DỤNG LẠI 116
1. Mô đun chƣơng trỡnh 116
2. Giao diện hệ thống 118
PHỤ LỤC C: HỆ THỐNG QUẢN Lí SINH VIấN 120
1. Mô đun chƣơng trỡnh 120
2. Giao diện hệ thống 122


BẢNG Kí HIỆU CÁC CHỮ VIẾT TẮT

STT
Ký hiệu viết tắt
Cụm từ viết tắt
1
CTĐT
Chương trỡnh đào tạo
2
DFD

Biểu đồ luồng dữ liệu (Data Flow Diagram)
3
ĐHQGHN
Đại học Quốc gia Hà Nội
4
GD-ĐT
Giáo dục – Đào tạo
5
HCTH
Hành chớnh tổng hợp
6
KLSV
Khúa luận sinh viờn
7
KLTN
Khúa luận tốt nghiệp
8
NCKH
Nghiờn cứu khoa học
9
NV phong CTSV
Nhõn viờn phũng Cụng tỏc sinh viờn
10
NV phong ĐT
Nhõn viờn phũng Đào tạo
11
PĐT
Phũng Đào tạo
12
QLSV

Quản lý sinh viờn
13
RAL
Thư viện tài sản sử dụng lại (Reusable Asset Library)
14
YC
Yờu cầu


DANH MỤC BẢNG BIỂU
STT
Số thứ tự
Mụ tả
Trang
1
Bảng 1-1
Cỏc chế tỏc sử dụng lại
9
2
Bảng 3-1
Thông tin thu thập và nơi thu thập
52
3
Bảng 3-2
Từ điển dữ liệu miền
56
4
Bảng 3-3
Bảng cụng việc cần thực hiện trong quản lý sinh
viờn

70
5
Bảng 3-4
Từ điển hệ thống
74
6
Bảng 3-5
Cỏc tỏc nhõn và cỏc ca sử dụng
75
7
Bảng 3-6
So sỏnh hai tài liệu phõn tớch ca sử dụng
82
8
Bảng 3-7
Kết quả tỡm kiếm
83
9
Bảng 3-8
Cỏc thao tỏc chớnh của cỏc ca sử dụng in ấn
85
10
Bảng 3-9
Xác định các lớp thực thi ca sử dụng Thờm mới
sinh viờn
87
11
Bảng 3-10
Cỏc lớp thực thi ca sử dụng Tỡm kiờm sinh viờn
và hiển thị danh sỏch

89
12
Bảng 3-11
Cỏc lớp thực thi ca sử dụng Sửa sinh viờn
90
13
Bảng 3-12
Cỏc lớp phõn tớch thực thi ca sử dụng Xúa sinh
viờn
91


DANH MỤC HÌNH VẼ
STT
Tờn hỡnh
Mụ tả
Trang
1
Hỡnh 1-1
Phỏt triển phần mềm dựa trờn thành phần
19
2
Hỡnh 1-2
Phát triển phần mềm hướng sử dụng lại
20
3
Hỡnh 2-1
Cỏc thành phần kỹ nghệ miền
25
4

Hỡnh 2-2
Kỹ nghệ ứng dụng
26
5
Hỡnh 2-3
Cỏch tiếp cận kỹ nghệ miền và kỹ nghệ ứng dụng
26
6
Hỡnh 2-4
Một mẫu của mụ hỡnh kiến trỳc miền tổng quỏt
28
7
2-5a
Phân tích miền
28
8
2-5b
Phân tích miền
30
9
Hỡnh 2-6
Hỗ trợ phõn tớch miền ứng dụng phỏt triển phần
mềm
32
10
Hỡnh 2-7
Cỏc hoạt động phân tích miền và sản phẩm
32
11
Hỡnh 2-8

Mụ hỡnh húa khung cảnh
33
12
Hỡnh 2-9
Một mụ hỡnh thực thể quan hệ mẫu
33
13
Hỡnh 2-10
Thiết kế miền
35
14
Hỡnh 2-11
Triển khai miền
35
15
Hỡnh 2-12
Kiến trỳc chung của cỏc hệ thống quản lý tài
nguyờn
37
16
Hỡnh 2-13
Lược đồ ngữ cảnh : Luồng dữ liệu chính hệ thống
quản trị Cửa sổ
40
17
-
Ví dụ về các đặc tính của xe ô tô
41
18
Hỡnh 2-15

Lược đồ quan hệ thực thể quản lý cửa sổ
42
19
Hỡnh 2-16
Cỏc tầng kiến trỳc
44
20
Hỡnh 2-17
Kiến trỳc thiết kế cỏc hệ thống con của hệ thống
cửa sổ
45
21
Hỡnh 2-18
Sử dụng cỏc sản phẩm phõn tớch miền trong phỏt
triển phần mềm
46
22
Hỡnh 2-19
Tích hợp các họat động sử dụng lại vào tiến trỡnh
phỏt triển phần mềm
47
23
Hỡnh 2-20
Điều chỉnh các sản phẩm quỏ trỡnh phõn tớch miền
49
24
Hỡnh 3-1a
Mụ hỡnh khung cảnh của miền Giỏo dục – Đào tạo
Đại học
54

25
Hỡnh 3-1b
Mụ hỡnh khung cảnh của miền Giỏo dục – Đào tạo
Đại học (tiếp)
54
26
Hỡnh 3-2
Mụ hỡnh chức năng miền
55
27
Hỡnh 3-3
Mụ hỡnh khỏi niệm miền Giáo dục – Đào tạo Đại
học
55
28
Hỡnh 3-4
Mụ hỡnh kiến trỳc ba tầng
58
29
Hỡnh 3-5
Mụ hỡnh kiến trỳc miền
59
30
Hỡnh 3-6
Cỏc tiờu chớ phõn loại tài sản
60
31
Hỡnh 3-7
Kiến trúc hệ thống thư viện RAL
62

32
Hỡnh 3-8a
Tỡm kiếm tài sản theo từ điển
64
33
Hỡnh 3-8b
Tỡm kiếm tài sản theo từ điển
64
34
Hỡnh 3-9
Tỡm kiếm tài sản theo từ khúa
65
35
Hỡnh 3-10
Tỡm kiếm tài sản bằng cỏch kết hợp hai hỡnh thức
ở trờn
65
36
Hỡnh 3-11
Dữ liệu được tổ chức trong hệ thống RAL
66
37
Hỡnh 3-12
Sơ đồ khung cảnh hệ thống Quản lý sinh viờn
71
38
Hỡnh 3-13
Mụ hỡnh khỏi niệm hệ thống
73
39

Hỡnh 3-14
Biểu đồ ca sử dụng gói Cập nhật sinh viên
81
40
Hỡnh 3-15
Biểu đồ ca sử dụng gói Quản lý sinh viờn làm khúa
luận
81
41
Hỡnh 3-16
Biểu đồ ca sử dụng gúi Quản lý cụng tỏc tốt nghiệp
82
42
Hỡnh 3-17
Biểu đồ cộng tác thực thi ca sử dụng Thêm mới hồ
sơ đăng ký dự thi trong hệ thống Tuyển sinh đại
học.
87
43
Hỡnh 3-18
Biểu đồ cộng tác thực thi ca sử dụng Thêm sinh
viên
88
44
Hỡnh 3-19
Biểu đồ cộng tác thực thi ca sử dụng Tỡm kiếm sinh
viờn
90
45
Hỡnh 3-20

Biểu đồ cộng tác thực thi ca sử dụng Sửa sinh viên
91
46
Hỡnh 3-21
Biểu đồ cộng tác thực thi ca sử dụng Xóa sinh viên
92
47
Hỡnh 3-22
Kiến trỳc hệ thống
93
48
Hỡnh 3-23
Lớp thiết kế gúi Cập nhật sinh viờn
94
49
Hỡnh 3-24
Lớp thiết kế ca sử dụng Xem thụng tin sinh viờn qua
Web
95
50
Hỡnh 3-25
Biểu đồ thực thi ca sử dụng Thờm sinh viờn
96


MỞ ĐẦU
Trong những năm gần đây, các tổ chức làm phần mềm ở nước ta phỏt triển rất
nhanh do nhu cầu phỏt triển phần mềm là rất lớn. Cũng như trên phạm vi toàn thế
giới, yờu cầu phỏt triển nhanh cỏc phần mềm cú quy mụ lớn, giỏ thành hạ, tiện
dụng ngày càng trở nờn cấp bỏch. Trong nhiều hướng để giải quyết vấn đề này, việc

sử dụng lại cỏc nhõn tố cú sẵn tạo nờn phần mềm là một hướng quan trọng và đặc
biệt hiệu quả cho việc phỏt triển cỏc hệ thống phần mềm: Nú khụng những giỳp rỳt
ngắn được thời gian phỏt triển một phần mềm, mà cũn cho những phần mềm hoạt
động tin cậy và cú chi phớ thấp.
Trong điều kiện của Việt Nam: trỡnh độ cụng nghệ và kỹ năng phát triển phần
mềm của cỏc tổ chức phỏt triển phần mềm cũn rất hạn chế, thỡ việc tỡm kiếm và sử
dụng lại những tài nguyờn phần mềm cú sẵn càng trở nờn quan trọng và cú ý nghĩa
thiết thực. Việc sử dụng mó nguồn mở đang phổ biến cũng là một giải pháp đi theo
hướng sử dụng lại này. Nhà nước đó cú một chương trỡnh về sử dụng mó nguồn mở
với số tiền đầu tư dự kiến hàng chục tỷ. Ở khụng ớt cỏc cụng ty làm phần mềm,
người ta đều cố gắng thu thập cỏc phần mềm đó làm của bản thõn họ hay của cỏc tổ
chức khỏc, nghiờn cứu để hiểu các thư viện của cỏc phần mềm thương mại và sử
dụng lại cỏc nhõn tố này cho việc phỏt triển phần mềm của mỡnh. Tuy nhiờn, cỏch
làm này hoàn toàn mang tớnh kinh nghiệm và thủ công. Năm 2003 Khoa Công
nghệ thụng tin của Đại học Bỏch Khoa lần đầu thử nghiệm xõy dựng giải thuật lựa
chọn và đánh giá thành phần phần mềm hỗ trợ đa giao diện theo phương pháp phát
triển phần mềm dựa trờn thành phần. Đây là một thử nghiệm sử dụng lại phần mềm
mang tớnh cụng nghệ. Tuy nhiên, tài nguyên được sử dụng lại ở đây mới chỉ là mó
nguồn, cỏc tiện ớch dựng cho việc sử dụng lại cũn rất hạn chế.
Trờn thế giới, sự cần thiết của việc sử dụng lại cỏc nhõn tố của phần mềm
được nhận ra từ rất sớm. Từ cuối những năm 40, để trỏnh việc thực hiện cỏc nhiệm
vụ lặp đi lặp lại, trường Đại học Cambrige đó xõy dựng một thư viện các đoạn
chương trỡnh con và tiếp tục mở rộng, đến cuối những năm 50 thư viện này đó chứa
Vũ Diệu Hương, K9T1 2 Luận văn thạc sỹ
Mở đầu
tới 200 đoạn chương trỡnh [39]. Bài bỏo của Lanergan và Poynton (1979)[35] có
tiêu đề “Mó nguồn sử dụng lại: Một kỹ thuật phỏt triển ứng dụng của tương lai” là
một dự đoán chính xác, đó và đang trở thành sự thật. Từ khi xuất hiện cỏc ngụn
ngữ lập trỡnh hướng đối tượng như Ada và công nghệ phỏt triển phần mềm hướng
đối tượng ra đời, hàng loạt cỏc nghiờn cứu và thử nghiệm về sử dụng lại cỏc nguồn

tài sản phần mềm được cụng bố đó phản ảnh những mức độ nghiờn cứu về phương
pháp, phương phỏp luận, cụng cụ và triển khai ứng dụng khỏc nhau của việc sử
dụng lại này và cú thể túm tắt qua cỏc nội dung sau:
- Làm thớch nghi cỏc phần cứng và phần mềm đó cú[4] .
- Cỏc nguyờn tắc sử dụng lại phần mềm [8] .
- Tạo ra hệ thống quản lý tệp lưu trữ cỏc thành phần phần mềm dựng lại[5]
- Tạo cỏc thành phần phần mềm và đảm bảo chất lượng để sử dụng lại [6,7,
11,33]
- Tăng cường cỏc nhõn tố trợ giỳp việc sử dụng lại [10, 12,16,25, 28,29,
31,36]
- Những nhõn tố sử dụng lại mới: mẫu thiết kế, kiến thức phõn tớch yờu cầu,
mụ hỡnh miền, [19,21,22,26,35,38].
- Những vấn đề về phương pháp luận và phương pháp cho việc sử dụng lại
[3,10,17,18,20,24,33,34 ]
- Phỏt triển cỏc hệ thống trợ giỳp việc sử dụng lại [14,23,27,28,31]
- Quản lý sử dụng lại [39]
Qua đây, ta có thể thấy sử dụng lại cỏc tài nguyờn phần mềm là một hướng
cụng nghệ lớn đang được triển khai nghiờn cứu và ứng dụng rộng rói trờn thế giới
cũng như trong nước thuộc lĩnh vực kỹ nghệ phần mềm. Trong điều kiện Việt Nam,
khi mà trỡnh độ cụng nghệ và kỹ năng phát triển phần mềm của cỏc tổ chức làm
phần mềm cũn rất hạn chế, sử dụng lại cỏc nhõn tố phần mềm sẵn cú phải được xem
là một hướng ưu tiên.
Vũ Diệu Hương, K9T1 3 Luận văn thạc sỹ
Mở đầu
Tuy nhiên, đối với nước ta vấn đề này cũn rất mới mẻ, đó cú một nghiờn cứu
bước đầu nhưng triển khai ứng dụng chỉ dừng lại ở cỏc thư viện mó nguồn, chưa có
những ứng dụng triển khai mang tớnh cụng nghệ và có phương pháp. Những tư liệu
trờn thế giới rất đa dạng và chỳng ta chỉ cú thể tiếp cận được một số vấn đề về
phương pháp luận. Những triển khai nghiờn cứu ứng dụng cú nhiều hướng và cỏch
tiếp cận cũn rất khỏc nhau. Hầu hết những kết quả này chỉ được biết đến qua cỏc tài

liệu cụng bố cụng khai nờn thụng tin rất hạn chế. Để cú thể cú cỏi nhỡn tổng quan
về vấn đề này, nắm được tầm quan trọng của nú, lựa chọn được hướng tiếp cận phự
hợp với quỏ trỡnh phỏt triển phần mềm ở mỗi đơn vị, có được những cơ sở về
phương pháp luận cũng như kinh nghiệm phục vụ cho việc triển khai ứng dụng,
chúng tôi đó chọn đề tài “Sử dụng lại theo hướng tiếp cận miền ứng dụng và vận
dụng trong phỏt triển phần mềm hướng đối tượng”.
Đề tài này đi sâu vào những vấn đề về phương pháp luận và phương pháp cho
việc sử dụng lại đặc biệt đi sâu vào hướng tiếp cận miền ứng dụng và tiến hành thử
nghiệm một số hoạt động sử dụng lại theo hướng tiếp cận này. Mục tiờu của đề tài
là tỡm hiểu và nắm bắt những nội dung cơ bản về phương pháp, công cụ và cụng
nghệ sử dụng trong việc nghiờn cứu và triển khai hoạt động sử dụng lại trong lĩnh
vực phỏt triển phần mềm, tiến hành cỏc thử nghiệm để có cơ sở tổ chức nghiờn cứu
và triển khai những nội dung này, gúp phần đẩy nhanh tiến bộ và trỡnh độ cộng
nghệ trong hoạt động phỏt triển phần mềm ở Việt Nam theo hướng sử dụng lại.
Đề tài được nghiờn cứu với sự kết hợp của nhiều phương pháp: phương pháp
thu thập, phõn tớch, phõn loại và đặc tả cỏc tài sản dữ liệu; phương pháp nghiên
cứu, phõn tớch và tổng hợp tài liệu; phương pháp phân tích và thiết kế hệ thống
thụng tin theo cụng nghệ hướng đối tượng; các phương pháp lập trỡnh hướng đối
tượng; phương pháp thiết kế cơ sở dữ liệu đa phương tiện và phương pháp mô hỡnh
húa trực quan.
Với nội dung nghiờn cứu và mục tiêu hướng tới núi ở trên, đề tài giúp tăng
cường hiểu biết về phương pháp luận, phương pháp, công nghệ và cụng cụ của hoạt
động sử dụng lại trong phỏt triển phần mềm.
Vũ Diệu Hương, K9T1 4 Luận văn thạc sỹ
Mở đầu
Ứng dụng cỏc kết quả lý thuyết, chúng tôi đó thu thập cỏc tài nguyờn miền
Giỏo dục – Đào tạo Đại học, tiến hành phõn tớch, phõn loại, tổ chức lưu trữ và khai
thỏc cỏc tài nguyờn này trong một kho dữ liệu. Tiếp đó, chúng tôi tiến hành khai
thỏc và sử dụng lại cỏc tài nguyờn trong kho để phỏt triển hệ thống Quản lý sinh
viờn ở trường Đại học Cụng nghệ. Kết quả đem lại là thư viện tài sản sử dụng lại

(RAL - Reusable Asset Library) hỗ trợ lưu trữ và tỡm kiếm hiệu quả, bản phõn tớch
và thiết kế hệ thống Quản lý sinh viờn ở trường Đại học Cụng nghệ theo hướng đối
tượng như một mẫu nghiờn cứu và cú thể sử dụng lại cho cỏc hệ thống khỏc.
Ngoài ra, trong quỏ trỡnh nghiờn cứu, một số kết quả bước đầu đó được bỏo
cỏo tại hội nghị Nghiờn cứu Khoa học của sinh viờn và học viờn Cao học, Khoa
Cụng nghệ, Trường ĐHQG HN, vào tháng 5 năm 2004 và báo cáo tại hội thảo quốc
gia lần thứ VII tổ chức tại Đà Nẵng, vào tháng 8 năm 2004.
Kết cấu luận văn gồm ba chương:
Chương 1: Giới thiệu tổng quan về sử dụng lại trong phỏt triển phần mềm và
các hướng tiếp cận khỏc nhau cho sử dụng lại. Qua đó, chúng tôi đưa ra một số
đánh giá về các hướng tiếp cận này.
Chương 2: Luận văn tập trung nghiờn cứu sõu vào một hướng tiếp cận cho sử
dụng lại đó là hướng tiếp cận miền ứng dụng và họ ứng dụng. Để làm rừ hơn về
hướng tiếp cận đó, chương 2 trỡnh bày cỏc khỏi niệm liờn quan, lợi ớch và ý nghĩa
thực tiễn, tớch hợp cỏc hoạt động sử dụng lại theo hướng tiếp cận này vào tiến trỡnh
phỏt triển phần mềm.
Chương 3: Tiến trỡnh sử dụng lại được phân làm hai giai đoạn, giai đoạn phỏt
triển phần mềm cho sử dụng lại và giai đoạn phỏt triển phần mềm với sử dụng lại.
Chương 3 trỡnh bày nội dung thử nghiệm cỏc hoạt động sử dụng lại trong phỏt triển
phần mềm. Thử nghiệm được chia làm hai giai đoạn: giai đoạn một gồm cỏc hoạt
động phỏt triển phần mềm cho sử dụng lại; giai đoạn hai gồm cỏc hoạt động phỏt
triển phần mềm với sử dụng lại. Phần cuối chương chúng tôi đưa ra đánh giá hiệu
quả sử dụng lại qua quỏ trỡnh phỏt triển hệ thống trờn.


CHƢƠNG 1
TỔNG QUAN VỀ VẤN ĐỀ SỬ DỤNG LẠI TRONG
PHÁT TRIỂN PHẦN MỀM
1.1. Khái niệm
Sử dụng lại là việc sử dụng cỏc khỏi niệm hay các đối tƣợng hiện cú trong

tỡnh huống mới. Nú bao gồm việc mó húa cỏc thụng tin phỏt triển ở cỏc mức trừu
tƣợng khác nhau, lƣu giữ cỏc thể hiện này để phục vụ cho tỡnh huống cần đến trong
tƣơng lai, khớp tỡnh huống cũ và tỡnh huống mới, nhân đôi các đối tƣợng và các
hành động đó đƣợc phỏt triển và làm cho chỳng thớch nghi với cỏc yờu cầu mới [3].
Núi chung, sử dụng lại hƣớng tới việc lấy cỏc thành phần của một sản phẩm
để dễ dàng phỏt triển sản phẩm khỏc với tính năng khác. Một thành phần sử dụng
lại khụng chỉ là một module hay một đoạn mó nguồn mà nú cú thể là một thiết kế,
một phần của thao tỏc bằng tay, một tập hợp dữ liệu kiểm thử hay một ƣớc lƣợng về
giỏ thành, về thời gian…
1.2. Lịch sử và quá trình phát triển của sử dụng lại
- Giai đoạn 1 (trước năm 1950): chƣa sử dụng lại vỡ thời điểm này chỉ cú vài
mỏy với phần cứng không tƣơng thích.
- Giai đoạn 2 (từ những năm 1950 đến đầu những năm 1970): sử dụng lại mó,
cấu trỳc dữ liệu hay cỏc ứng dụng hoàn chỉnh trong cỏc dự ỏn phần mềm
mới.
Hoạt động chính tập trung vào việc đóng gói, tạo các thƣ viện các đoạn
chƣơng trỡnh, cỏc hàm, cỏc thủ tục.
- Giai đoạn 3 (từ những năm 1970 đến nay): Ngƣời ta đó nhận ra lợi ớch của
việc sử dụng lại cỏc thành phần khỏc nhau của vũng đời phỏt triển phần
mềm. Bắt đầu từ mụ hỡnh húa miền, đặc tả cỏc yờu cầu cho tới thiết kế phần
Vũ Diệu Hương, K9T1 6 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
mềm, viết mó, kiểm thử, bảo trỡ phần mềm. Đó cú nhiều kết quả đạt đƣợc
trong việc sử dụng lại cỏc khớa cạnh mang tớnh tổ chức, phƣơng pháp luận,
tiến trỡnh phỏt triển và cỏc cấu trỳc giao tiếp. Ta cú thể chia cỏc hoạt động
sử dụng lại ở giai đoạn này thành ba mức:
 Sử dụng lại ở mức chƣơng trỡnh nguồn hay thƣ viện (điển hỡnh là hệ
Unix)
 Sử dụng lại các đối tƣợng và các thành phần (tham khảo mục 1.9)
 Sử dụng lại ở mức trừu tƣợng (đặc tả yêu cầu, phân tích, thiết kế)

Khỏi niệm sử dụng lại cỏc yếu tố phần mềm là rất dễ hiểu trong trƣờng hợp sử
dụng lại mó nguồn, nhƣng thật khú hiểu trong khung cảnh sử dụng lại các đặc tả và
cỏc thiết kế (đƣợc biểu diễn dƣới dạng văn bản hoặc dạng biểu đồ), càng khú hiểu
hơn khi nói đến sử dụng lại cỏc yờu cầu phi hỡnh thức, cỏc tri thức về miền, cỏc kỹ
năng của con ngƣời và kinh nghiệm của cỏc chuyờn gia (đƣợc biểu diễn bằng ngụn
ngữ tự nhiên). Đặc tả yờu cầu là chế tác trong giai đoạn sớm nhất của vũng đời phỏt
triển phần mềm và đó thu hỳt sự quan tâm đặc biệt trong cụng nghệ sử dụng lại.
Hiệu quả thu đƣợc từ việc sử dụng lại cỏc sản phẩm trừu tƣợng của tiến trỡnh
phỏt triển, nhƣ các đặc tả, lớn hơn rất nhiều so với hiệu quả thu đƣợc từ sử dụng lại
mó. Mó chứa cỏc chi tiết mức thấp chuyờn cho một phạm vi hẹp cú thể không đƣợc
sử dụng lại. Cỏc thiết kế hay các đặc tả trừu tƣợng hơn và do đó có thể đƣợc ỏp
dụng cho một phạm vi rộng rói hơn. Ví dụ, với cựng một thiết kế cho một lớp bất
kỳ thỡ khi triển khai bằng ngụn ngữ Java sẽ khỏc so với khi triển khai bằng ngụn
ngữ C++. Do đó, ta có thể sử dụng lại thiết kế trong một dũng cỏc ứng dụng nhƣng
các dũng mó nguồn định nghĩa của lớp thỡ khụng thể sử dụng lại trong mỗi ứng
dụng mà chuyờn biệt húa về ngụn ngữ cài đặt hay nền mà chƣơng trỡnh chạy trên
đó.
Ngày nay ngƣời ta quan tâm hơn đến việc nghiờn cứu phƣơng pháp và xây
dựng cụng cụ hỗ trợ việc sử dụng lại cỏc chế tỏc thuộc cả vũng đời phỏt triển phần
mềm, nhƣ: xây dựng cỏc mẫu, xõy dựng cỏc mụ hỡnh miền.
Vũ Diệu Hương, K9T1 7 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
1.3. Vai trũ và tầm quan trọng của sử dụng lại
Tổ chức cỏc hoạt động sử dụng lại một cỏch cú hệ thống khụng chỉ trỏnh cho
cỏc nhà phỏt triển khụng phải thực hiện cỏc nhiệm vụ lặp đi lặp lại mà cũn mang lại
nhiều lợi ớch trong phỏt triển phần mềm. Đặc biệt nhấn mạnh vào bốn khớa cạnh
sau:
1. Kinh tế: Tiết kiệm tài nguyờn, giảm chi phí, tăng lợi nhuận
Khi sử dụng cỏc thành phần đƣợc định nghĩa trƣớc, cỏc hoạt động gắn với đặc
tả, thiết kế và cài đặt đƣợc thay bằng việc tỡm kiếm thành phần, làm thớch nghi nú

với cỏc yờu cầu mới và tớch hợp chỳng. Kinh nghiệm cho thấy tập hợp cỏc hoạt
động sau tốn ớt thời gian hơn, do đó, tốn ít chi phí hơn các hoạt động trƣớc. Nhƣng
cũng chỳ ý rằng, phỏt triển phần mềm cho sử dụng lại tốn thời gian và chi phí hơn
bỡnh thƣờng. Tuy nhiờn, ta tiết kiệm đƣợc nhiều thời gian và chi phớ trong những
dự án sau đó.
2. Chất lượng: Cải tiến tớnh xỏc thực của cỏc sản phẩm phần mềm, giảm
rủi ro.
Vỡ cỏc thành phần phần mềm khụng chỉ đƣợc sử dụng trong một hệ thống mà
cũn đƣợc kiểm thử trong nhiều môi trƣờng khỏc nhau. Cỏc lỗi thiết kế và cài đặt
đƣợc phỏt hiện và đƣợc loại trừ để cỏc thành phần sử dụng lại chứa rất ớt lỗi.
3. Hiệu suất
Sử dụng lại cỏc yếu tố phần mềm sẵn cú giỳp tiết kiệm thời gian. Do đó, thỏa
món yờu cầu ngƣời dựng về thời hạn giao sản phẩm và đặc biệt là rỳt ngắn thời gian
đƣa sản phẩm ra thị trƣờng, đây là một nhõn tố rất quan trọng trong phỏt triển phần
mềm.
4. Kiến thức và kinh nghiệm của cỏc chuyờn gia
Sử dụng lại cỏc yếu tố phần mềm khụng những khụng phải làm lại yếu tố phần
mềm đó mà quan trọng hơn là nhanh chóng tiếp cận đƣợc kiến thức nghiệp vụ và
Vũ Diệu Hương, K9T1 8 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
kinh nghiệm chuyờn gia qua cỏc yếu tố phần mềm đó nhƣ là kiến thức miền hay
giải phỏp cho mỗi vấn đề trong thực tế.
1.4. Phân loại sử dụng lại
Sử dụng lại có thể phân theo cách thức thực hiện:
- Sử dụng lại một cỏch ngẫu nhiờn
- Sử dụng lại cú chủ ý
Nếu ngƣời phỏt triển một sản phẩm mới nhận ra rằng, một thành phần của
một sản phẩm đƣợc phỏt triển trƣớc đó có thể đƣợc sử dụng lại trong một sản phẩm
mới thỡ trƣờng hợp này gọi là sử dụng lại một cỏch ngẫu nhiờn. Mặt khỏc, việc sử
dụng cỏc thành phần phần mềm đƣợc xõy dựng với mục đích để sử dụng lại trong

tƣơng lai thỡ gọi là sử dụng lại cú chủ ý. Loại sử dụng lại thứ hai tiện lợi hơn so với
loại thứ nhất ở chỗ: khi cỏc thành phần đƣợc xõy dựng với mục đích để sử dụng lại
trong tƣơng lai, nó thƣờng đƣợc phỏt triển sao cho dễ dàng và an toàn cho việc sử
dụng lại, chẳng hạn nhƣ đƣợc làm tài liệu tốt, đƣợc kiểm thử một cỏch triệt để.
Thêm vào đó, chúng thể hiện tớnh thống nhất về kiểu (style) làm cho việc bảo trỡ dễ
dàng hơn. Nhƣ vậy, để tạo ra những chế tỏc cú thể sử dụng trong tƣơng lai thỡ chi
phớ bỏ ra thƣờng đắt hơn bỡnh thƣờng nhiều lần vỡ mất thời gian để đặc tả, thiết
kế, cài đặt, kiểm thử và làm tài liệu một thành phần phần mềm. Tuy nhiờn, khụng
thể đảm bảo rằng một thành phần nhƣ vậy sẽ đƣợc sử dụng lại và do đó sẽ khụng
thể đảm bảo việc thu hồi lại vốn đó đầu tƣ trong phát triển thành phần với mục đích
có thể sử dụng lại trong tƣơng lai.
1.5. Các chế tác có thể sử dụng lại
Đối tƣợng của sử dụng lại là cỏc chế tỏc sử dụng lại. Đó là bất kỳ thụng tin
nào mà nhà phỏt triển cú thể cần trong tiến trỡnh tạo ra phần mềm và tất cả cỏc chế
tỏc trong vũng đời phỏt triển phần mềm. Cỏc chế tỏc cú thể thuộc cỏc dạng khác
nhau nhƣ đƣợc chỉ ra trong bảng 1-1.
Vũ Diệu Hương, K9T1 9 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
Cỏc chế tỏc cú thể là cỏc thành phần trừu tƣợng mức cao (nhƣ tri thức miền)
hay cỏc thành phần mức trừu tƣợng thấp (nhƣ các module mó nguồn). Chúng đƣợc
lƣu trữ và biểu diễn ở nhiều dạng khác nhau (nhƣ là văn bản, đồ họa, õm thanh,
phim ảnh). Kớch cỡ của chúng thay đổi từ một hàm thƣ viện cho tới một hệ thống
hoàn chỉnh.
Tập hợp cỏc chế tỏc sử dụng lại tạo nờn một thƣ viện sử dụng lại. Các thƣ
viện này khụng chỉ chứa cỏc thành phần cú thể sử dụng lại mà cũn đƣợc mong đợi
là sẽ cung cấp cỏc dịch vụ cho ngƣời dùng thƣ viện nhƣ là lƣu trữ, tỡm kiếm, kiểm
tra cỏc chế tỏc từ cỏc miền ứng dụng khỏc nhau, mức mịn và mức trừu tƣợng khỏc
nhau, truy xuất, làm thớch nghi, tớch hợp và đặc tả cỏc mối quan hệ giữa cỏc chế
tỏc. Cỏc vấn đề chớnh trong việc sử dụng các thƣ viện này là quyết định các lƣợc
đồ phõn lớp cỏc chế tỏc một cỏch phự hợp và lựa chọn các phƣơng pháp tỡm kiếm

trong thƣ viện một cỏch hiệu quả. Để trỏnh cỏc vấn đề khó khăn, ta sử dụng cỏc
ngụn ngữ cụ thể miền. Cỏc ngụn ngữ này sử dụng cỳ phỏp và ngữ nghĩa rất chặt chẽ
đƣợc định nghĩa dƣới dạng một miền ứng dụng và cỏc chế tỏc sử dụng lại của nú.
Bảng 1-1: Cỏc chế tỏc sử dụng lại
Văn bản
- Tài liệu khảo sỏt miền ứng dụng, khảo sỏt nghiệp vụ.
- Cỏc cấu trỳc dữ liệu
- Kịch bản kiểm thử, kịch bản nghiệp vụ, kịch bản tƣơng tác,
kịch bản cài đặt
- Kinh nghiệm chuyờn gia (chuyờn gia miền, chuyờn gia
thiết kế giao diện,…)
- Kinh nghiệm rỳt ra từ những hệ thống trƣớc (về rủi ro, về
năng suất,…)
- Tài liệu hƣớng dẫn sử dụng
- Mụ tả quy cỏch, giải thớch
Vũ Diệu Hương, K9T1 10 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
- Mụ tả dữ liệu
- Cỏc cam kết về chức năng, về yờu cầu
- Dữ liệu kiểm thử
- Thụng tin mức môi trƣờng (phản hồi của ngƣời dựng)
Mụ hỡnh
- Cỏc mụ hỡnh miền
- Cỏc mụ hỡnh phõn tớch
- Cỏc mụ hỡnh thiết kế
Mẫu
- Mẫu phõn tớch
- Mẫu thiết kế
- Mẫu cài đặt
Âm thanh-

Hỡnh ảnh-
Đoạn phim
- Kịch bản
- Giao diện mẫu
- Dữ liệu kiểm thử

- Module mó nguồn
- Cỏc thành phần đóng gói
- Cỏc file .exe, .dll
- Cơ sở dữ liệu

1.6. Các rào cản đối với việc sử dụng lại
Sử dụng lại cỏc chế tỏc phần mềm đem lại lợi ớch to lớn. Tuy nhiờn cú những
rào cản tự nhiờn:
1. Sự khụng thống nhất
Khụng thống nhất về ngụn ngữ, kiến trỳc, ký phỏp, hệ điều hành và khụng
thống nhất cả về cỏc chuẩn đƣợc sử dụng gõy cản trở cho việc sử dụng lại. Tuy
Vũ Diệu Hương, K9T1 11 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
nhiờn, với sự phỏt triển của cỏc cụng nghệ tiờn tiến nhƣ công nghệ .Net, ngụn ngữ
mụ hỡnh húa UML thỡ cỏc rào cản này đó từng bƣớc cú thể đƣợc khắc phục.
2. Văn hóa sử dụng lại
- Chƣa nhận thức đƣợc tầm quan trọng của sử dụng lại
- Nhiều xớ nghiệp, nhiều nhà phỏt triển thớch viết chƣơng trỡnh từ đầu
hơn là sử dụng lại chƣơng trỡnh của ngƣời khỏc (vỡ đề cao cỏi tụi cỏ
nhõn hoặc vỡ họ không tin tƣởng vào chất lƣợng của các chƣơng trỡnh
của ngƣời khỏc, họ không đƣợc đảm bảo về chất lƣợng của tài sản sử
dụng lại).
3. Các khó khăn khi thực hiện cỏc hoạt động sử dụng lại
- Chi phớ cho sử dụng lại lớn. Khụng phải cứ sử dụng lại 40% là giảm chi

phớ sản xuất phần mềm đƣợc 40% vỡ chỳng ta phải trả giỏ cho việc tạo,
lƣu trữ, tỡm kiếm, truy xuất và làm thớch nghi cỏc thành phần sử dụng
lại.
- Khó khăn cho việc tổ chức lƣu trữ, tỡm kiếm và truy xuất cỏc tài sản sử
dụng lại vỡ chỳng rất đa dạng và phong phỳ.
4. Vấn đề cam kết bản quyền
- Một thành phần đƣợc viết trong một sản phẩm đƣợc viết cho một khỏch
hàng thỡ khụng thể đƣợc sử dụng lại để xõy dựng sản phẩm khỏc cho
khỏch hàng khỏc.
1.7. Cơ sở khoa học cho sử dụng lại
Với tốc độ phỏt triển nhanh chúng của cụng nghệ thụng tin, ngày càng cú
nhiều cụng nghệ, cụng cụ, kỹ thuật hỗ trợ cho việc thực hiện cỏc hoạt động sử dụng
lại. Chỳng giỳp cho cỏc thành phần sử dụng lại cú cấu trỳc thống nhất, đƣợc đặc tả
trực quan, có tính độc lập cao. Nhờ đó, ngƣời sử dụng lại dễ dàng hiểu, nắm bắt
Vũ Diệu Hương, K9T1 12 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
đƣợc cỏc thành phần này và dễ dàng tớch hợp cỏc thành phần này vào cỏc hệ thống
mới.
1.7.1. Phƣơng pháp
Có nhiều phƣơng pháp trợ giúp cho việc sử dụng lại
– Mô đun hóa
Một mô đun là một đoạn mó lệnh cú khả năng thực hiện chức năng riêng. Nó
có thể chứa một hàm hay nhiều hàm thực hiện cỏc nhiệm vụ liên quan đến nhau để
hoàn thành một chức năng độc lập. Vớ dụ, mô đun chứa cỏc hàm xử lý dữ liệu gồm
cú hàm thực hiện kết nối cơ sở dữ liệu, hàm thờm một bản ghi dữ liệu, hàm sửa dữ
liệu, hàm tỡm kiếm dữ liệu, hàm xúa dữ liệu. Sử dụng lại các mô đun thực hiện
chức năng độc lập nhƣ vậy sẽ rất dễ dàng, ta cú thể gọi các mô đun đú nhiều lần
trong một chƣơng trỡnh hoặc nhiều chƣơng trỡnh khỏc.
– Hướng đối tượng
Cỏc cụng nghệ hƣớng đối tƣợng tớch hợp với cỏc cụng nghệ biểu đồ khỏc

nhau thành một phƣơng pháp luận thống nhất, sử dụng cỏc ký phỏp thống nhất. Các
phƣơng pháp phát triển hƣớng đối tƣợng cho phộp tạo các lƣợc đồ khỏi niệm trừu
tƣợng, cỏc sự trừu tƣợng (nhƣ là các khung làm việc), cỏc họ ứng dụng, cỏc mẫu
thiết kế, cỏc thành phần ở mức trừu tƣợng cao, do đó có thể ỏp dụng trong cỏc
khung cảnh khỏc nhau, mở rộng khả năng sử dụng lại.
– Hướng thành phần
Phỏt triển phần mềm dựa trờn thành phần nổi lờn vào cuối những năm 90 nhƣ
là một tiếp cận dựa trờn sử dụng lại cho phỏt triển hệ thống phần mềm. Cỏc thành
phần trừu tƣợng hơn các lớp đối tƣợng và cú thể đƣợc xem nhƣ là các nhà cung cấp
dịch vụ độc lập. Khi một hệ thống cần một dịch vụ nào đó, nó gọi một thành phần
để cung cấp dịch vụ đó mà không quan tâm tới môi trƣờng hay ngụn ngữ lập trỡnh
đƣợc sử dụng để phỏt triển thành phần. Vớ dụ, một thành phần rất đơn giản cú thể
Vũ Diệu Hương, K9T1 13 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
là một hàm toỏn học tính căn bậc hai của một số. Khi một chƣơng trỡnh yờu cầu
tính căn bậc hai, nú gọi thành phần đó để cung cấp dịch vụ tƣơng ứng.
1.7.2. Cụng cụ
– Cỏc ngụn ngữ lập trỡnh logic (chẳng hạn, PROLOG), kết hợp giữa yếu tố đặc
tả chƣơng trỡnh và thiết kế chƣơng trỡnh (qua đặc tả logic và đặc tả lớp) ở
mức mó, cỏch tiếp cận nhƣ vậy sẽ đẩy mạnh sử dụng lại cỏc mụ tả chƣơng
trỡnh trừu tƣợng qua vũng đời.
– Cỏc cụng cụ thể hiện bằng đồ họa cỏc yờu cầu của ngƣời dùng cũng nhƣ các
quyết định thiết kế giỳp cho việc hiểu để sử dụng lại một thành phần phần
mềm dễ dàng hơn (Microsoft Power Designer, Rational Rose, …).
– Ngụn ngữ mụ hỡnh húa thống nhất UML cho phộp sử dụng cỏc ký phỏp nhất
quỏn giỳp cho cỏc hệ thống phần mềm cú cấu trỳc thống nhất. Nhờ đó, ngƣời
sử sử dụng lại sẽ dễ dàng hiểu và dễ dàng tớch hợp thành phần sử dụng lại vào
hệ thống mới của họ.
– Việc đƣa ra các yêu cầu hỡnh thức và cỏc ngụn ngữ đặc tả hỡnh thức nhƣ
RML, VDM, Z cho phép thể hiện, cấu trỳc, kiểm chứng và sử dụng lại cỏc

thành phần đặc tả. Các đặc tả này cũn đƣợc sử dụng để xõy dựng cỏc giải
thuật lựa chọn thành phần sử dụng lại phự hợp cho cỏc hệ thống mới.
– Để tổ chức cỏc hoạt động sử dụng lại cú hệ thống thỡ một kho lƣu trữ tài sản
sử dụng lại là yếu tố quan trọng. Kho lƣu trữ này phải đảm bảo cho một số
lƣợng lớn tài sản, với nhiều loại hỡnh khỏc nhau, với nhiều phiờn bản khỏc
nhau và cần đến cấu trúc lƣu trữ động để hỗ trợ lƣu trữ và tỡm kiếm cỏc tài
sản một cỏch hiệu quả. Sự phỏt triển của cỏc hệ quản trị cơ sở dữ liệu tiờn tiến
ngày nay nhƣ Microsoft SQL Server hay Oracle là những cụng cụ đáp ứng
đƣợc cỏc yờu cầu này.
Vũ Diệu Hương, K9T1 14 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
– Phần mềm mó nguồn mở ngày càng phổ biến. Việc tạo ra và sử dụng mó
nguồn mở là một hƣớng mới của sử dụng lại giỳp mở rộng phạm vi sử dụng
lại khụng chỉ trong một tổ chức mà trờn toàn thế giới.
– Việc ỏp dụng cỏc cụng nghệ dựa trờn tri thức giỳp tự động húa lấy thụng tin
và ra quyết định. Điều này rất quan trọng khụng chỉ trong tiến trỡnh phõn
tớch, lấy yờu cầu, xõy dựng bảng từ vựng mà đặc biệt là tự động húa lựa chọn
cỏc thành phần phần mềm phự hợp với cỏc yờu cầu của hệ thố ng mới hay tƣ
vấn cho cỏc nhà phỏt triển về cỏc thành phần này.
– Cỏc cụng cụ hỗ trợ dịch xuụi, dịch ngƣợc [2] nhƣ Rational Rose, Power
Designer, Designer 2000: Hỗ trợ sinh mó tự động từ cỏc bản thiết kế và xõy
dựng cỏc mụ hỡnh thiết kế từ các mô đun mó là một hƣớng sử dụng lại thiết
kế và mó nguồn hiệu quả. Bởi vỡ, thứ nhất, ta tiết kiệm đƣợc thời gian viết
mó khi ta đó cú cỏc mụ hỡnh thiết kế. Thứ hai, khi ta cú một thành phần mó,
để hiểu rừ hơn về thành phần ta cú thể tiến hành dịch ngƣợc để cú ngay một
mụ hỡnh thiết kế đồng bộ với mó của nú. Thứ ba, điều này rất cú ý nghĩa khi
ta cần thay đổi một thành phần mó để phự hợp với yờu cầu của hệ thống mới
ta cú thể cho dịch ngƣợc sang mụ hỡnh thiết kế rồi tiến hành sửa mụ hỡnh
thiết kế đó và cuối cựng là dịch xuôi để thu đƣợc mó tƣơng ứng mà thỏa món
cỏc yờu cầu mới. Cỏc cụng cụ này đều cho phộp ta thực hiện luõn phiờn hai

quỏ trỡnh dịch xuụi, dịch ngƣợc trờn cựng một mụ hỡnh để luôn đảm bảo tính
đồng bộ giữa thiết kế và triển khai.
1.8. Các hoạt động sử dụng lại
Theo cỏc nghiờn cứu ở trờn ta cú thể chia cỏc hoạt động sử dụng lại thành hai
phần:
1. Tạo ra cỏc chế tỏc sử dụng lại và lƣu trữ cỏc chế tỏc
2. Tỡm ra chế tỏc sử dụng lại và tổng hợp vào hệ thống mới
Vũ Diệu Hương, K9T1 15 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
Mục tiờu của cỏc hoạt động ở phần một là tạo ra thƣ viện sử dụng lại. Quỏ
trỡnh thực hiện cỏc hoạt động này đƣợc gọi là quỏ trỡnh phỏt triển cho sử dụng lại.
Mục tiờu của cỏc hoạt động ở phần hai là sử dụng thƣ viện sử dụng lại để phỏt
triển hệ thống mới. Quỏ trỡnh thực hiện cỏc hoạt động này đƣợc gọi là quỏ trỡnh
phỏt triển với sử dụng lại.
1.8.1. Phỏt triển phần mềm cho sử dụng lại
Sử dụng lại một cỏch cú hệ thống yờu cầu cỏc chế tỏc sử dụng lại đƣợc xếp
vào cỏc danh mục và đƣợc làm tài liệu tạo nên thƣ viện sử dụng lại. Cỏc cụng việc
điển hỡnh để xõy dựng thƣ viện sử dụng lại gồm cú: Tạo (thu thập), tổng quỏt húa,
phõn lớp, lƣu trữ và tổ chức khai thỏc.
a. Tạo (thu thập)
Một tài sản cú thể đƣợc tạo với mục đích sử dụng lại trong tƣơng lai hoặc đơn
giản chỉ là một phần của hệ thống trƣớc đó. Trong trƣờng hợp đầu tiờn thỡ ta mất
nhiều cụng sức, thời gian, chi phớ cho việc tạo ra tài sản nhƣng bù lại việc sử dụng
lại sẽ hiệu quả hơn. Bởi vỡ, với mục đính đƣợc định trƣớc là để sử dụng lại trong
tƣơng lai thỡ tài sản đƣợc tạo ra tổng quát hơn, có thể sử dụng lại trong nhiều khung
cảnh khỏc nhau, cú tớnh chắc chắn hơn vỡ đƣợc đƣợc kiểm thử nhiều nơi. Trong
trƣờng hợp thứ hai, cỏc chế tác đƣợc tạo là một phần của một lần phỏt triển hệ
thống ứng dụng thỡ khụng thể sử dụng lại ngay lập tức. Cỏc chế tác này đƣợc
hƣớng tới thoả món cỏc yờu cầu của hệ thống hiện có. Để cú thể sử dụng lại, chỳng
phải đƣợc tổng quát hoá để thoả món phạm vi yờu cầu rộng hơn.

b. Tổng quỏt húa
- Tổng quỏt hoỏ tờn: Các tên đƣợc sử dụng trong thành phần có thể đƣợc sửa
để chúng tổng quát hơn là để chúng phản ánh trực tiếp một thực thể ứng
dụng cụ thể nào đó.
- Tổng quỏt hoỏ thao tỏc: Đũi hỏi thờm cỏc thao tỏc hoặc là bỏ đi các thao
tác mà cụ thể cho một miền ứng dụng nào đó.
Vũ Diệu Hương, K9T1 16 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
- Tổng quỏt hoỏ ngoại lệ: Đũi hỏi kiểm chứng mỗi thành phần để biết đƣợc
ngoại lệ nào có thể có và đƣa vào trong giao diện thành phần.
Một khi, một chế tác đƣợc tạo ra và đƣợc sử dụng trong một hệ thống, nú cú
thể đƣợc sử dụng lại mà khụng cần thay đổi. Tuy nhiên, thông thƣờng, bằng cách
nào đó cần làm cho cỏc chế tỏc này thớch nghi với cỏc yờu cầu cụ thể của hệ thống
sắp phỏt triển.
Để làm cho một chế tỏc cú thể sử dụng lại, cần cú một số thay đổi khi tổng
quỏt húa. Sau khi tổng quỏt hoỏ, chất lƣợng của chế tác đó đƣợc tổng quỏt hoỏ cần
đƣợc kiểm tra. Dữ liệu kiểm thử cho chế tỏc nờn khả dụng cho những ngƣời sử
dụng lại để nú cũng cú thể đƣợc sử dụng lại.
c. Phõn loại tài sản sử dụng lại
Cỏc tài sản sử dụng lại tồn tại ở nhiều loại hỡnh khỏc nhau (Bảng 1-1) và cú
nhiều thuộc tớnh cần mụ tả về tài sản nhƣ là: Loại tài sản, Định dạng tài sản, Phiờn
bản, Tiến trỡnh phỏt triển, Kĩch cỡ, Giai đoạn phỏt triển, … Ngoài ra, mỗi tài sản
thƣờng gắn với một ứng dụng trong miền hoặc chung cho tất cả cỏc ứng dụng trong
miền hoặc thậm chớ là gắn với nhiều miền khỏc nhau. Ta cú thể phõn loại cỏc tài
sản dựa trờn cỏc thuộc tớnh này và phải lựa chọn cỏch phõn loại sao cho việc lƣu
trữ và tỡm kiếm tài sản đạt hiệu quả nhất.
d. Lƣu trữ
Vỡ cỏc tài sản sử dụng lại rất đa dạng về loại hỡnh lƣu trữ và ta cần cập nhật
thƣờng xuyờn cỏc phiờn bản khỏc nhau cho mỗi tài sản. Do đó khối lƣợng lƣu trữ
sẽ rất lớn, đũi hỏi ta phải lựa chọn cấu trúc lƣu trữ và hệ quản trị cơ sở dữ liệu đáp

ứng đƣợc yờu cầu này.
1.8.2. Phỏt triển phần mềm với sử dụng lại
Liên quan đến việc tận dụng thƣ viện sử dụng lại để hỗ trợ cho phỏt triển phần
mềm mới. Cỏc chế tỏc cú thể tận dụng là: tài liệu phõn tớch miền, tài liệu đặc tả
yờu cầu, mẫu phõn tớch, mẫu thiết kế, tài liệu thiết kế, mẫu cài đặt, các mô đun mó,
dữ liệu kiểm thử,
Vũ Diệu Hương, K9T1 17 Luận văn thạc sỹ
Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm
Để tận dụng đƣợc cỏc chế tác đó cần tỡm kiếm, lấy ra, lựa chọn, làm thớch
nghi và tớch hợp cỏc chế tỏc vào hệ thống phần mềm mà mỡnh đang xây dựng.
Ta cú thể sử dụng lại cỏc tài sản ở mức tham khảo hay mức sử dụng lại hoàn
toàn. Cỏc mẫu phõn tớch, mẫu thiết kế, mẫu triển khai đƣợc sử dụng lại rất rộng rói
nhƣng ở mức tham khảo. Các hàm thƣ viện, các mô đun chứa cỏc chi tiết cụ thể, chỉ
đƣợc sử dụng lại ở những trƣờng hợp cụ thể, tƣơng ứng nhƣng có thể đƣợc sử dụng
lại hoàn toàn ở hệ thống mới mà cú thể khụng cần có thay đổi gỡ. Tuy nhiờn, ở cả
hai mức sử dụng lại trờn, khi tỡm kiếm một thành phần để sử dụng lại, khụng cú
nghĩa là thành phần đó phải hoàn toàn khớp với yờu cầu đặt ra mà cú thể chỉ một
phần trong đó. Trƣớc khi tớch hợp vào hệ thống mới, cú thể ta sẽ phải thay đổi
thành phần để phự hợp với yờu cầu mới hoặc không thay đổi nhƣng chỉ sử dụng lại
một phần trong đó.
1.9. Một số cỏch tiếp cận cho sử dụng lại
1.9.1. Phát triển phần mềm hƣớng đối tƣợng
Trong phỏt triển phần mềm hƣớng chức năng, dữ liệu và tiến trỡnh hoàn toàn
tỏch biệt nờn khú sử dụng lại. Trong phỏt triển phần mềm hƣớng đối tƣợng. Các đối
tƣợng đóng gói tiến trỡnh và dữ liệu. Các đối tƣợng đƣợc thiết kế tốt thƣờng độc lập
với khung cảnh nờn dễ dàng sử dụng lại trong cỏc khung cảnh khỏc.
Mụ hỡnh hƣớng đối tƣợng đƣợc sử dụng lần đầu tiờn ở một tổ chức, thƣờng
mất nhiều thời gian hơn so với dự kiến. Tuy nhiên sau đó mọi thứ phỏt triển rất
nhanh. Đầu tiờn là chi phớ cho bảo trỡ giảm, do đó sẽ giảm chi phớ cho vũng đời
sản phẩm. Thứ hai, trong thời gian tiếp theo khi một sản phẩm mới đƣợc phỏt triển,

một số lớp từ dự án trƣớc cú thể đƣợc sử dụng lại, do đó giảm chi phớ cho phần
mềm.
Thừa kế cũng là một trƣờng hợp sử dụng lại hiệu quả trong phỏt triển hƣớng
đối tƣợng. Tuy nhiờn cú vấn đề là khi một sản phẩm đƣợc cài đặt thỡ bất kỳ sự thay
đổi nào đối với một lớp đang tồn tại thỡ đều ảnh hƣởng trực tiếp tới tất cả cỏc hậu

×