Phát trin phn mm bng UML trang | 1
Xut bn năm 2002
Chuyn sang ebook bi
Sinh viên lp DHTH4LTTrường ĐH Công Nghip
10/2009
Phát trin phn mm bng UML trang | 2
Mc lc
CHƯƠNG 1 M ĐẦU .......................................................................................................................................... 7
1.1 LCH S HƯỚNG ĐỐI TƯỢNG .......................................................................................................................... 8
1.2 MT S KHÁI NIM CƠ BN ......................................................................................................................... 10
1.3 NGUYÊN TC QUN LÝ ĐỘ PHC TP ........................................................................................................... 12
1.4 NGUYÊN TC MÔ HÌNH HÓA ......................................................................................................................... 13
1.5 KHÁI QUÁT V TIN TRÌNH PHÁT TRIN PHN MM ...................................................................................... 15
1.5.1 - Các phương pháp mô hình hóa h thng .......................................................................................... 15
1.5.2 - Các pha pt trin phn mm ........................................................................................................... 17
CHƯƠNG 2 KHÁI QT V UML ................................................................................................................. 24
2.1 GII THIU UML .......................................................................................................................................... 24
2.2 MÔ HÌNH KHÁI NIM CA UML ..................................................................................................................... 26
2.2.1 - Phn t mô hình trong UML............................................................................................................. 26
2.2.2 - Các quan h trong UML ................................................................................................................... 28
2.2.3 - Kiu d liu ...................................................................................................................................... 29
2.2.4 - Biu đồ UML .................................................................................................................................... 29
2.3 KIN TRÚC H THNG .................................................................................................................................. 38
2.3.1 - Khung nhìn UC ................................................................................................................................. 38
2.3.2 - Khung nhìn thiết kế ........................................................................................................................... 39
2.3.3 - Khung nhìn cài đặt ........................................................................................................................... 39
2.3.4 - Khung nhìn trin khai ....................................................................................................................... 39
2.3.5 - Khung nhìn tiến trình ........................................................................................................................ 40
2.3.6 - Cn bao nhu khung nhìn ................................................................................................................ 40
2.4 RATIONAL ROSE LÀ ? ................................................................................................................................ 40
2.5 KH NĂNG S DNG UML ............................................................................................................................. 41
2.6 THC HÀNH ................................................................................................................................................. 41
CHƯƠNG 3 MÔ HÌNH HÓA TRƯỜNG HP S DNG ............................................................................ 44
3.1 PHÂN TÍCH TRƯỜNG HP S DNG (USE CASE UC) ................................................................................... 44
3.1.1 - UC là gì? .......................................................................................................................................... 44
3.1.2 - Xây dng UC để làm ? .................................................................................................................. 44
3.1.3 - Tìm kiếm UC như thế nào ? .............................................................................................................. 45
3.1.4 - Lung s kin trong UC ................................................................................................................... 48
3.2 BIU ĐỒ TRƯỜNG HP S DNG ................................................................................................................... 50
3.3 THC HÀNH ................................................................................................................................................. 54
3.3.1 - S dng Rational Rose. ..................................................................................................................... 54
3.3.2 - Thí d: h thng bán hàng ................................................................................................................ 60
CHƯƠNG 4 MÔ HÌNH HÓA TƯƠNG TÁC ĐỐI TƯỢNG .......................................................................... 63
4.1 ĐI TƯỢNG VÀ TÌM KIM ĐỐI TƯỢNG........................................................................................................... 63
4.2 BIU ĐỒ TƯƠNG TÁC .................................................................................................................................... 63
4.2.1 - Biu đồ trình t ................................................................................................................................. 64
4.2.2 - Biu đồ cng tác ............................................................................................................................... 70
4.3 K THUT XÂY DNG BIU ĐỒ TƯƠNG TÁC ................................................................................................. 72
4.4 THC HÀNH ................................................................................................................................................. 75
4.4.1 - S dng Rational Rose ...................................................................................................................... 75
4.4.2 - Thí d: h thng bán hàng (tiếp theo) .............................................................................................. 83
CHƯƠNG 5 BIU ĐỒ LP GÓI ............................................................................................................... 92
5.1 LP TIM KIM LP......................................................................................................................... 92
5.2 BIU ĐỒ LP ............................................................................................................................................ 94
5.2.1 - Các loi lp trong biu đồ ................................................................................................................ 94
5.2.2 - Stereotype ca lp ............................................................................................................................ 95
5.3 I ............................................................................................................................................................. 96
5.4 THUC NH LP .................................................................................................................................... 97
5.4.1 - Tìm kiếm thuc nh .......................................................................................................................... 97
5.4.2 - Đặc t thuc nh .............................................................................................................................. 98
5.5 THAO TÁC CA LP ............................................................................................................................. 100
Phát trin phn mm bng UML trang | 3
5.6 QUAN H ................................................................................................................................................. 101
5.6.1 - Quan h kết hp .............................................................................................................................. 101
5.6.2 - Quan h ph thuc .......................................................................................................................... 104
5.6.3 - Ph thuc t hp ............................................................................................................................. 105
5.6.4 - Quan h ki qt hóa .................................................................................................................... 106
5.6.5 - Gán đặc nh cho quan h ............................................................................................................... 107
5.7 CƠ CH DUY T ĐỐI TƯỢNG ............................................................................................................. 112
5.8 THC HÀNH ........................................................................................................................................... 115
5.8.1 - S dng Rational Rose .................................................................................................................... 115
5.8.2 - Thí d: H thng bán hàng (tiếp theo) ........................................................................................... 125
CHƯƠNG 6 BIU ĐỒ CHUYN TRNG THÁI BIU ĐỒ HOT ĐỘNG ....................................... 137
6.1 BIU ĐỒ CHUYN TRNG TI ........................................................................................................ 137
6.1.1 - Trng thái ....................................................................................................................................... 139
6.1.2 - Qđộ ............................................................................................................................................ 141
6.1.3 - Trng ti n .................................................................................................................................. 142
6.1.4 - Lp và biu đồ trng thái ............................................................................................................... 144
6.2 BIU ĐỒ HOT ĐỘNG .......................................................................................................................... 144
6.2.1 - Trng ti hành động và trng thái hot động ............................................................................... 145
6.2.2 - Qđộ ............................................................................................................................................ 145
6.2.3 - R nhánh ......................................................................................................................................... 145
6.2.4 - Đường dn tương tranh .................................................................................................................. 146
6.2.5 - Đường bơi ....................................................................................................................................... 147
6.2.6 - Lung đối tượng ............................................................................................................................. 147
6.2.7 - Gi và nhn n hiu ....................................................................................................................... 148
6.3 THC HÀNH ........................................................................................................................................... 149
6.3.1 - S dng Rational Rose .................................................................................................................... 149
6.3.2 - Thí d: H thng bán hàng (tiếp theo) ........................................................................................... 152
CHƯƠNG 7 BIU ĐỒ KIN TRÚC VT LÝ PHÁT SINH MÃ TRÌNH ............................................ 155
7.1 BIU ĐỒ THÀNH PHN ........................................................................................................................ 155
7.1.1 - Thành phn là gì? ........................................................................................................................... 155
7.1.2 - Biu tượng thành phn trong Rational Rose .................................................................................. 156
7.1.3 - Ph thuc thành phn ..................................................................................................................... 157
7.1.4 - Biu đồ thành phn ......................................................................................................................... 158
7.2 BIU ĐỒ TRIN KHAI ........................................................................................................................... 159
7.2.1 - Phn t mô hình ca biu đồ .......................................................................................................... 159
7.2.2 - Tiến trình ........................................................................................................................................ 160
7.3 THC HÀNH ........................................................................................................................................... 160
7.3.1 - S dng Rational Rose .................................................................................................................... 160
7.3.2 - Pt sinh mã trình bng Rose ......................................................................................................... 164
7.3.3 - Rational Rose và Visual C++ ......................................................................................................... 170
7.3.4 - Thí d: H thng bán hàng (tiếp theo) ........................................................................................... 171
CHƯƠNG 8 VÍ D ÁP DNG ......................................................................................................................... 184
8.1 KHO SÁT TIN TRÌNH TÁC NGHIP ............................................................................................................ 184
8.2 PHÂN CH LĨNH VC .......................................................................................................................... 190
8.3 PHÂN CH H THNG. ........................................................................................................................ 194
8.3.1 - Xây dng biu đồ trường hp s dng (Use Case-UC) .................................................................. 194
8.4 BIU ĐỒ TƯƠNG C ........................................................................................................................... 204
8.4.1 - Tiến trình đặt trước sách để mượn ................................................................................................. 204
8.4.2 - Tiến trình mượn sách , tp c. ....................................................................................................... 206
8.5 BIU ĐỒ LP. ......................................................................................................................................... 208
8.6 BIU ĐỒ TRIN KHAI ........................................................................................................................... 209
8.7 THIT K GIAO DIN ............................................................................................................................ 211
CHƯƠNG 9 MÃ TRÌNH PHÁT SINH TRONG ROSE ............................................................................... 214
9.1 PHÁT SINH TNH C++ .................................................................................................................. 214
9.1.1 - Các lp ........................................................................................................................................... 214
9.1.2 - Quan h kết hp .............................................................................................................................. 216
9.1.3 - Quan h ph thuc tp hp............................................................................................................. 220
Phát trin phn mm bng UML trang | 4
9.1.4 - Quan h kế tha .............................................................................................................................. 222
9.2 PHÁT SINH TNH JAVA ............................................................................................................... 222
9.2.1 - Các lp ........................................................................................................................................... 223
9.2.2 - Quan h kết hp .............................................................................................................................. 224
9.2.3 - Quan h ph thuc tp hp............................................................................................................. 225
9.2.4 - Quan h kế tha .............................................................................................................................. 226
9.3 PHÁT SINH TNH VISUAL BASIC .............................................................................................. 227
9.3.1 - Các lp ........................................................................................................................................... 227
9.3.2 - Quan h kết hp .............................................................................................................................. 229
9.3.3 - Quan h kế tha đơn ....................................................................................................................... 230
9.4 PT SINH MÃ TRÌNH SQL. ........................................................................................................................ 231
9.4.1 - Các lp ........................................................................................................................................... 231
9.4.2 - Quan h kết hp .............................................................................................................................. 231
9.4.3 - Quan h kế tha .............................................................................................................................. 233
Phát trin phn mm bng UML trang | 5
LI NÓI ĐẦU
H thng tin hc ngày ng phc tp. Xu thế áp dng phương pháp hướng đối tượng (phương
pháp mi) thay cho phương pháp cu trúc (phương pháp truyn thng) ngày ng ph biến khi
xây dng các h thng phn mm ln và phc tp. Hơn na, t khi Ngôn ng mô hình a thng
nht (Unified Modeling Language UML) được t chc OMG (Object Management Group)
công nhn là chun công nghip thì đã tr thành công c ph dng và hu hiu cho phương
pháp mi này. Mc tiêu ca tài liu này nhm gii thiu c khái nim cơ bn v tiếp cn hướng
đối tượng và mô hình hóa h thng phn mm theo phương pháp hướng đối tượng. Các khái nim
mi được mô t, hướng dn thc hành tng qua ngôn ng chun UML và phn mm công c
mô hình hóa ni tiếng Rational Rose ca Raitonal Software Corporation.
Phương pháp phân ch thiết kế hướng đối tượng được s dng rng i ti các nước phát trin
và bt đầu được s dng ti mt s đơn v tin hc ti Vit Nam. Tuy nhiên tài liu bng tiếng Vit
v lĩnh vc này còn rt hiếm hoi, không đáp ng nhu cu hin ti. Hơn na, nhn thc được tm
quan trng ca phương pháp mi này, mt s trường đại hc đã hình thành môn hc liên quan
đến vn đề i tn cho sinh viên, còn mt s trường khác đang có kế hoch đưa ch đề này vào
chương trình đào to chính khóa.
Ch đim ca tài liu được th hin dưới góc nhìn ca người phát trin h thng phn mm,
không th hin dưới góc độ quan sát ca nhà phương pháp lun. La chn này xut phát t thc
tế là t phương pháp lun hướng đối tượng dn đến vic ng dng vào xây dng phn mm c
th còn mt khong cách xa vi và đầy khó khăn, đặc bit vi trình độ tin hc hin này i chung
còn chưa cao ti Vit Nam. Vi quan đim này, tài liu được cu trúc như sau:
Chương m đầu trình bày khái quát v mô hình và mô hình a; các bước xây dưng h thng
phn mm và tm quan trng ca phương pháp hướng đối tượng. Chương tiếp theo gii thiu
ngôn ng chun công nghip UML, mt công c hu hiu mô hình hóa h thng phn mm.
Trong các phn tiếp theo là trình bày k thut mô hình a, t phân ch yêu cu đến thiết kế h
thng, kiến trúc h thng và i đặt bng ngôn ng lp trình. Chương cui cùng là bài hc thc
nghim các k thut đã trình bày trong các chương trước vào bài toán c th. Đặc bit, trong mi
chương tài liu đều có phn thc hành trên phn mm Rational Rose để độc gi có th áp dng
ngày công c mi, k thut mi vào gii quyết vn đề ca riêng h. Phn ph lc trình bày mt
s mã trình trong mt vài ngôn ng thông dng tương ng vi các nhóm phn t trong biu đồ
UML
Hin nay phn ln các bn sinh viên đại hc năm cui hoc các k sư tin hc mi ra trường
đều gp khó khăn khi nhn nhim v xây dng h thng phn mm mi hay nâng cp phn mm
có sn. Các bn thường không biết bt đầu t đâu và làm như thế nào để có được phn mm và
phn mm tt, i cách khác là còn thiếu phương pháp. Do vy, quyn sách này có th là tài liu
tham kho tt cho các bn sinh viên và các k sư tin hc.
Quyn sách này được hình thành t ni dung bài ging ca tác gi v ch đề Phát trin phn
mm hướng đối tượng băng UML cho mt s lp sinh viên đại hc. Trong quá trình biên son tác
gi đã nhn được nhiu ý kiến đóng góp quí báu ca các chuyên gia trong lĩnh vc này. Trước hết
tác gi xin chân thành cm ơn PGS. TSKH Nguyn Xuân Huy, CN Ngô Trung Vit, TS Đặng
Thành Phu, TS Đoàn Văn Ban, ThS Nguyn Sơn Hi và các đồng nghip khác công tác ti Vin
Công ngh Thông tin, Trung tâm Khoa hc T nhiên và Công ngh Quc gia đã đọc và cho ý
kiến sa cha bn tho.
Mc dù đã rt c gng nhưng tài liu này không tnh khi c sai t. Tác gi xin chân thành
m ơn mi ý kiến đóng góp ca bn đọc.
Phát trin phn mm bng UML trang | 6
Địa ch liên lc: Vin Công ngh Thông tin, Trung tâm Khoa hc T nhiên và Công ngh
Quc gia. Email: dvduc@ioit.ncst.ac.vn
Hà ni, tháng 02 năm 2002
TÁC GI
Phát trin phn mm bng UML trang | 7
CHƯƠNG 1
M ĐẦU
Phát trin phn mm ngày ng tr nên phc tp. Thay đổi giao din t các xâu ký t sang
giao din đồ ha xu thế s kin; kiến trúc h thng đa tng khách/ch; cơ s d liu (CSDL) phân
tán; Internet làm tăng độ phc tp ca h thng phn mm. Thách thc trong hai mươi năm ti
ca xây dng h thng phn mm không phi là tc độ thc hin chương trình, kinh phí hay sc
mnh ca mà vn đề s là độ phc tp (Sun Microsystem). K t ca chúng ta là độ phc tp,
ta phi loi b chúng (Jan Bean). Vy, loi b độ phc tp bng cách nào? Các phương pháp tiếp
cn hướng cu trúc, tim cn hướng logic, tiếp cn hướng hướng đối tượng và tiếp cn hướng tác
t để có th gii quyết vn đề này nhưng mc độ khác nhau.
Tng quát thì vic xây dng phn mm phi quan tâm đến t chc, các quan h và cu trúc để
hình thành được các hành vi phc tp ca h thng. Mi vic kho sát h thng phi được thc
hin vi mc độ tru tượng khác nhau, t các chi tiết đến t chc tng th. Do vy, xây dng
phn mm là thc hin dãy tương tác chia nh và hp nht. Chia nh để hiu rõ vn đề và hp
nht để xây dng h thng. Tiến trình chia nh (tách) đã có truyn thng và tuân th các tiêu chí
chc năng. Các chc năng ca h thng được nhn din, sau đó chúng được tách thành các chc
năng con. Tiến trình này được thc hin lp đi lp li cho đến khi có được các thành phn đơn
gin đến mc cng được biu din trc tiếp bng c hàm hay th tc ca ngôn ng lp trình
(hình 1.1). Cách tiếp cn này được gi là tiếp cn hướng chc năng (hay còn gi là th tc, truyn
thng). Người phát trin phn mm s tp trung vào các nhim v điu khin và tách thut toán
ln thành các thut toán nh. Khi chính để hình thành phn mm đây là các hàm hay th tc.
Hình 1.1 Tiếp cn hướng chc năng
Kiến trúc phn mm được i đặt theo cách tiếp cn va mô t tn s phn nh c chc
năng h thng. Tiếp cn tn cơ s chc năng và cơ chế phân cp ch cho li kết qu mong mun
khi c chc năng được nhn biết đầy đủ và nó không được thay đổi theo thi gian. Thc tế li
không đúng như vy vì trong rt nhiu trường hp, phát trin phn mm không bao gi kết tc
hoàn toàn, luôn có i gì đó phi sa đổi, nâng cp. Sa đổi hay m rng h thng quá nhiu làm
cho chương trình khác xa quan nim ban đầu. Do đó cn phi có phương pháp mi cho kh năng
làm ch được độ phc tp, giúp qun lý được cht lượng, độ tin cy phn mm ngày c khi cu
trúc b tách ra hay tiến hóa.
Chc năng chính
Chc năng con 1
Chc năng con 2
Chc năng
con 1.1
Chc năng
con 1.2
Chc năng
con 2.1
Chc năng
con 2.2
Phát trin phn mm bng UML trang | 8
Hình 1.2 Tiếp cn hướng đối tượng
Quan đim hướng đối tượng hình thành tn cơ s tiếp cn hướng h thng, coi h thng
như thc th được t chc t các thành phn mà ch được xác định khi nó tha nhn và có quan
h vi các thành phn khác. Phương pháp tách vn đề đang gii quyết để hiu cng đây không
ch da tn cơ s cái h thng làm mà còn da trên vic ch hp h thng là cái vi h thng
làm . Thí d tn hình 1.2 mô t các đối tượng và các quan h gia các đối tượng ca h thng
thang máy. Theo cách tiếp cn này thì các chc năng h thng được biu din thông qua cng tác
ca các đối tượng; vic thay đổi, tiến a chc năng s không nh hưởng đến cu trúc tĩnh ca
phn mm. Sc mnh ca tiếp cn hướng đối tượng là vic tách (chia) và nhp (thng nht) được
thc hin nh tp phong phú các cơ chế ch hp ca cng; kh năng thng nht cao nhng cái
đã được tách ra để xây dng các thc th phc tp t các thc th đơn gin.
Tiếp cn hướng đối tượng đã t rõ li thế khi lp trình các h thng phc tp. Nhng người
phát trin phn mm nhn thy rng phát trin phn mm hướng đối tượng s cho li phn mm
thương mi cht lượng cao: tin cy, d m rng và d s dng li, chy trơn tru, phù hp vi yêu
cu người ng đang mong đợi. Cng còn cho kh năng hoàn thành phn mm đúng k hn và
không vượt quá khinh phí d kiến ban đầu.
Ngoài phương pháp cu trúc và phương pháp hướng đối tượng va đề cp tn đây, người ta
còn thy mt s phương pháp khác được các nhà tin hc đề xut cho công ngh phn mm như
tiếp cn hướng logic, tiếp cn hướng tác t (agent) Phương pháp tiếp cn hướng logic mô t
quan h logic gia nh cht và thuc nh ca các s kin nh các cơ s lp lun và lut suy
din biu din bi nhng gi ý trước. Tiếp cn này hình thành trên cơ s ngôn ng lp trình
Prolog. Phương pháp tiếp cn tác t là kiu m rng ca tiếp cn hướng đối tượng. Gn đây nó
được gii công nghip rt quan tâm. Các đơn v cơ s để phát trin h thng đây là các tác t,
là modun phn mm. Đối tượng được khi động khi nhn thông đip t bên ngoài và tác t
ch cc làm vic hay không ph thuc vào môi trường cha nó. Tuy nhiên, phương pháp hướng
đối tượng đang ngày nh được nhiu người s dng hơn c.
1.1 LCH S HƯỚNG ĐỐI TƯỢNG
Khái nim hướng đối tượng hình thành t ngôn ng lp trình Simula, nhưng ch tr nên
quen thuc khi xut hin ngôn ng C++ và SmallTalk vào cui nhng năm 80 ca thế k XX. Sơ
đồ trong hình 1.3 ch ra thi gian xut hin và quan hn ca các ngôn ng lp trình [OES00].
Trong hình vuông vi góc tròn là tên các ngôn ng lp trình hướng đối tượng.
Lên tng 2
B
t
đ
e
#
n
Ca
Pho#ng
thang ma$y
ng
tc
Đèn
M
Phát trin phn mm bng UML trang | 9
Hình 1.3 Các ngôn ng lp trình
Khi các ngôn ng hướng đối tượng được s dng rng i thì nhu cu có phương pháp phát
trin phn mm hướng đối tượng tr nên cp bách. Vào đầu nhng năm 90 ca thế k XX đã xut
hin các phương pháp hướng đối tượng sau đây: Phương pháp Booch, OMT (Object Modeling
Technique), OOSE (Object Oriented Software Engineering)/Objectory, Fusion và Coad/Yourdon.
Mi phương pháp có ký pháp, tiến trình và công c h tr riêng. Cng đều có ưu đim và nhược
đim riêng. Người s dng rt khó khăn để chn cho nh mt phương pháp phù hp. Do nhn
biết đươc các vn đề này, vào năm 1994 các tác gi ca các phương pháp này đã hp tác nhm
to ra phương pháp mi. Bt đầu là s thng nht phương pháp Booch vi OMT-2 ca Rumbagh
để hình thành Unified Method 0.8 ti Rational Rose Corporation. Tháng 6 năm 1995, Ivar
Jacobson (tác gi ca OOSE/Objectory) gia nhp vi h. T thi đim này, nhóm phát trin
phương pháp hướng đối tượng i tn cho rng nhim v ca h là to ra ngôn ng mô hình a
thng nht cho cng đồng hướng đối tượng. Do vy, h đã đổi tên công vic ca nh thành
Unified Modeling Language UML (Ngôn ng mô hình a tng nht). Booch, Rumbaugh và
Jacobson đã đưa ra nhiu phiên bn UML, trong đó phiên bn UML 0.9 xut hin năm 1995,
UML xut hin vào năm 1997. Phn ln UML được xây dng tn nn tng ca các phương pháp
Booch, OMT và OOSE, nhưng UML còn bao gm c c khái nim có ngun gc t các phương
pháp khác như David Harel, Gamma Helm Johnson Vlissides và Fusion. UML còn là kết
qu ca s đóng góp t các hãng ln như Digital Equipment Corporation (DEC), Hewlett
1960
1990
1980
Algol
Fortran
LISP
PL/1
Cobol
Pascal
Simula
Ada
Smalltalk-72
Smalltalk-74
Smalltalk-76
Smalltalk-78
Smalltalk-80
Objective C
ObjectPascal
ObjectCobol Ada 9
C++
Java
CLOS
Prolog
C
Eiffel
Loops
Hướng đối tượng Không hướng đối tượng
1970
Phát trin phn mm bng UML trang | 10
Packard (HP), I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft,
Oracle, Rational Software Corporation, Texas Instrument, Taskon, ObjectTime và Unisys. Phiên
bn UML 1.1 đã được đệ trình lên OMG (Object Management tháng 11-1997. Phiên bn UML
1.3 xut hin vào năm 1999. Phiên bn UML 1.4 xut hin vào tháng 2-2000.
1.2 MT S KHÁI NIM CƠ BN
Phn này trình bày mt s khái nim cơ bn áp dng trong phân ch và thiết kế hướng đối
tượng.
Phương pháp (method). Phương pháp (hay phương thc) là cách thc cu trúc các suy nghĩ
và hành động ca con người. Nó cho biết chúng ta phi làm i gì, làm như thế nào, làm khi nào
và ti sao phi làm như vy để hình thành h tng phn mm.
Đối thương (object). Theo nghĩa thông thường thì đối tượng là người, vt hay hin tượng mà
con người nhm vào trong suy nghĩ, trong hành động [PHE96]; là bt k i gì nhìn thy và s
mó được. Trong phương pháp hướng đối tượng thì đối tượng là tru tượng i gì đó trong lĩnh
vc vn đề hay trong cài đặt ca; phn nh kh năng h thng lưu gi thông tin v nó và tương
tác vi; gói các giá tr thuc nh và các dch v (phương thc, phương pháp) [OCAD91].
Lp (class). Theo nghĩa thông thường thì lp là nm ca nhiu người hay vt có nh tương
t nht định hay đặc đim chung (t đin Webster’s). Trong phương pháp hướng đối tượng thì
lp là mô t mt hay nhiu đối tượng, mô t tp thng nht các thuc nh và phương thc. Nó
còn có th mô t cách to đối tượng mi trong lp như thế nào [COAD91].
Tru tượng (abstract). Tru tượng là nguyên lý b qua nhng khía cnh ca ch th
(subject) không liên quan đến mc đích hin ti để tp trung đầy đủ hơn vào các khía cnh còn
li. Như vy có th i rng tru tượng là đơn gin hóa thế gii thc mt cách thông minh. Tru
tượng cho kh năng tng quát a và ý tưởng a vn đề đang xem xét. Chúng loi b đi các chi
tiết dư tha mà ch tp chung và các đim chính, cơ bn [LIBE98].
Mô hình (model). Nếu phi xây ngôi nhà thì chc chn không làm đơn gin là c mua gch,
st thép v lp dn đến khi hình thành nhà , mà phi có kế hoch chi tiết và thiết kế trước. Nói
cách khác là phi xây dng mô hình. Tương t như vy, trong lĩnh vc phn mm, mô hình là kế
hoch chi tiết ca h thng, giúp ta lp kế hoch trước khi xây dng h thng. hình giúp ta
khng định nh đúng đắn ca thiết kế, phù hp yêu cu, h thng vn gi vng khi yêu cu người
dùng thay đổi. Phương pháp hướng đối tượng xem mt phn ca thế gii thc như các đối tượng.
Máy đin thoi, xe ô tô, con người là các đối tượng. Các đối tượng này li bao gm nhiu đối
tượng khác như xe ô tô có tay lái, bánh xe, con người có tay, chân, mt, mũi Đối tượng thế
gii thc có thế có cu trúc rt phc tp, làm cho con người khó nhn thc được cng. Trong
cuc sng hàng ngày ta đơn gin a đối tượng khi suy nghĩ, hay i cách khác ta làm vic vi
mô hình. Thí d, qu địa cu là mô hình ca trái đất. Mô hình ch la chn mt vài khía cnh có ý
nghĩa cho vic thc hin công vic c th nào đó. Chúng cho phép d đoán, hiu các khía cnh
ca vn đề đang quan tâm. Thí d khi làm vic vi đối tượng con người: trong s lương có tên, s
bo him xã hi và tin lương. Nhưng trong s đin thoi li ch có tên, s đin thoi và địa ch.
Vy, mô hình là bc tranh hay mô t ca vn đề đang được c gng gii quyết hay biu din. Mô
hình còn có th là mô t chính gii pháp. Trong phát trin phn mm, thay cho đối tượng thc, ta
s làm vic vi biu tượng (hình 1.4). Tiến trình phát trin phn mm là làm gim mt s đặc
trưng ca đối tượng để hình thành mô hình: làm gim độ phc tp bng mô hình tru tượng.
Phát trin phn mm bng UML trang | 11
Hình 1.4 Mô hình thế gii thc
Phương pháp lun (methodology). Phương pháp lun mô t cách thc suy nghĩ v phn
mm và phát trin phn mm. Nó bao gm ngôn ng mô hình a metamodel (mô hình ca mô
hình) và tiến trình. Phương pháp lun khác vi phương pháp. Phương pháp lun là nghiên cu
phương pháp. Metamodel mô t hình thc các phn t mô hình, cú pháp và ng nghĩa ca c ký
pháp trong mô hình.
Lĩnh vc vn đề (domain problem). Mc tiêu ca tiếp cn hướng đối tượng là mô hình hóa
các đặc nh tĩnh và động ca môi trường, nơi xác định yêu cu phn mm. i trường này được
gi là lĩnh vc vn đề. Vn đề là u hi đặt ra để gii quyết hoc xem xét. Lĩnh vc là không
gian (ng) ca các hot động hoc nh hưởng. Nó là vùng tác nghip hay kinh nghim ca con
người trong đó phn mm được s dng. Vy, lĩnh vc vn đề là ng mà ta đang c gng xem
xét. Thí d ca lĩnh vc vn đề có th là tài chính, giáo dc,…
Phân tích. Phân ch là tách, chia nh tng th thành các phn để tìm ra đặc nh, chc năng,
quan h ca cng (t đin Webster’s). Khái nim phân ch trong tiếp cn hướng đối tượng là
thc hin nghiên cu lĩnh vc vn đề, dn ti đặc t hành vi quan sát t ngoài và các tng báo
nht quán, hoàn chnh, kh thi ca nhng i cn [COAD91]. Phân ch hướng đối tượng tp
trung vào tìm kiếm, mô t các đối tượng (khái nim) trong lĩnh vc vn đề. Thí d h thng thư
vin có khái nim Sách, Thư vin …
Thiết kế. Là tp tài liu k thut toàn b, gm có bn nh toán, bn vđể có th theo đó
mà xây dng công trình, sn xut thiết b, làm sn phm [PHE96]. Khái nim phân ch trong
tiếp cn hướng đối tượng là thc hin đặc t các hành vi bên ngoài, b sung chi tiết nếu cn thiết
để i đặt h thng trên máy nh, bao gm tương tác người - máy, qun lý nhim v, qun lý d
liu [COAD91]. Thiết kế hướng đối tượng tp trung vào xác định đối tượng phn mm logic s
được i đặt bng ngôn ng hướng đối tượng.
Xây dng (lp trình) hướng đối tượng: là thiết kết các modun s được i đặt. Thí d lp
Book s được i đặt bng C++, Java … như thế nào.
Mô hình hóa (modeling). Khái nim mô hình hóa thường được s dng đồng nghĩa vi phân
ch, đó là vic thc hin tách h thng thành các phn t đơn gin để d hiu. Trong khoa hc
máy nh, mô hình a bt đầu t mô t vn đề, sau đó là mô t gii pháp vn đề. Các hot động
này còn được gi là phân ch và thiết kế. Khi thu thp yêu cu cho h thông, ta phi tìm ra nhu
cu tác nghip ca người dùng và ánh x cng thành yêu cu phn mm sao cho đội ngũ phát
trin phn mm hiu và s dng được cng. Tiếp theo là kh năng phát sinh mã trình t các yêu
cu này, đồng thi đảm bo rng các yêu cu phi phù hp vi mã trình va phát sinh và d dàng
chuyn đổi mã trình ngược li thành yêu cu. Tiến trình này được gi là mô hình hóa.
Phát trin phn mm bng UML trang | 12
Mô hình hóa trc quan. hình a trc quan là tiến trình ly tng tin t mô hình và hin
th đồ ha bng tp các phn t đồ ha chun. Tiêu chun là ct lõi để thc hin mt trong các li
thế ca m hình trc quan, đó là vn đề giao tiếp. Giao tiếp gia người dùng, người phát trin,
phân ch viên, kim tra viên, người qun lý và nhng người khác tham gia d án là mc tiêu
quan trng nht ca mô hình a trc quan. Tương tác này có th được thc hin bng văn bn.
Nh mô hình trc quan mà ta có th ch ra các tng mà h thng làm vic, bao gm tương tác
gia người ng vi h thng, tương tác gia c đối tượng trong h thng hay gia các h tng
vi nhau. Sau khi to mô hình, ta có th ch ra tng phn quan tâm. Thí d, người ng có th
quan sát tương tác gia h vi h thông t mô hình, phân ch viên quan sát tương tác các đối
tượng t mô hình, người phát trin s quan sát được đối tượng mà h s phát trin… Các nhà tin
hc đã rt c gng để hình thành ký pháp mô hình a trc quan. Mt s ký pháp quen thuc là
ca Booch, OMT và UML. Phn mm công c Rational Rose 2000 tr giúp các ký pháp này.
m li, lý do cơ bn để mô hình a là: xây dng mô hình để hiu sâu sc hơn v h thng đang
được xây dng. Cng ta xây dưng mô hình cho các h thng phc tp vi ta không th hiu nó
như tng th. Nh mô hình hóa ta s đạt được các mc tiêu sau:
Mô hình giúp ta hin th h thng như chính nó hay như cách mà ta mun nó hin th.
Mô hình cho phép ta đặc t cu trúc hay hành vi h thng.
Mô hình cho ta mu để hướng đẫn trong vic xây dng h thng.
Mô hình giúp ta làm tài liu cho các quyết định khi phân ch thiết kế h thng.
1.3 NGUYÊN TC QUN LÝ ĐỘ PHC TP
Như đã trình bày tn thì nhim v quan trng nht ca người xy dng h thng phn mm
ngày nay là qun lý được độ phc tp. Theo Coad và Yourdon [COAD91] thì các nguyên tc
qun lý độ phc tp ca h thng trong phân ch và thiết kế hướng đối tượng bao gm các vn đề
mô t dưới đây.
Tru tượng hóa. S dng nguyên tc tru tượng a có nghĩa là tha nhn thế gii thc là
phc tp; thay vì c gng hiu biết toàn b bng la chn mt phn ca vn đề. Tru tượng bao
gm hai loi chính: tru tượng th tc (procedural) và tru tượng d liu (data). Tru tượng th
tc thường được đặc trưng bi tru tượng chc năng/chc năng con. Chia nh tiến trình x lý
thành các bước là phương pháp cơ bn để qun lý độ phc tp. Tuy nhiên vic chia nh để t
chc thiết kế là khá tùy tin và không n định. Tru tượng th tc không phi là hình thc tru
tượng ca phương pháp hướng đối tượng. Tru tượng d liu là cơ chế mnh, da tn cơ s t
chc suy nghĩ và đặc t v các nhim v ca h thng. Tru tượng d liu là nguyên tc xác định
kiu d liu cho các thao tác áp dng cho đối tượng, vi ràng buc là các giá tr lưu tr trong đối
tượng ch được sa đổi hay quan sát tng qua các thao tác đó. Người thiết kế áp dng tru tượng
d liu đễ xác định thuc nh và phương thc x lý thuc nh xâm nhp thuc nh thông qua
phương thc.
Bao bc (encapsulation). Còn gi là du tng tin. Nguyên tc này da trên nn tng là mi
thành phn ca chương trình được bao bc hay du quyết định thiết kế đơn l. Giao din ti mi
mođun được hình thành sao cho ít nhìn thy các công vic bên trong. Bao bc làm tăng nh s
dng li khi phát trin h thng mi. Bao bc các ni dung liên quan vi nhau làm gim lưu
lượng gia các phn ca h thông khi hot đông.
Kế tha (inheritance). Cơ chế biu din nh tương t ca các lp, đơn gin a định nghĩa
nhng lp tương t t các lp khác đã định nghĩa trước. Nó miêu t tng quát a và đặc bit
a, to ra các thuc nh và phương thc chung cho các lp phân cp. Nguyên tc này hình thành
nn tng ca k thut bin din nhng i chung ca các lp.
Phát trin phn mm bng UML trang | 13
Kết hp (association). Là hp nht hay liên kết các ý tưởng (t đin Webster’s). S dng kết
hp để gn mt vài phn t xy ra vào thi đim c th hay dưới điu kin tương t nhau. Thí d,
gn xe c vào ch xe…
Giao tiếp bng thông đip. Thông đip là giao tiếp (viết i) được trao đổi gia người vi
người (t đin Webster’s). Giao tiếp bng tng đip liên quan đến nh bao bc trong đó các chi
tiết ca hành động s thc hin được bao bc trong nơi nhn tng đip.
Đa hình (polymorphism). Đa hình là các tng đip đồng âm được gi đến các đối tượng ca
lp khác nhau để khi s nhng hành v khác nhau [OEST00].
nh hưởng ca phương pháp t chc. Bách khoa toàn thư Britannica cho rng để hiu thế
gii thc, con người s dng ba phương pháp t chc suy nghĩ như sau: (1) Phân bit đối tượng
c th vi các thuc nh ca ; thí d, phân bit cây vi kích thước ca hoc quan h không
gian vi các đối tượng khác. (2) Phân bit gia toàn b đối tượng vi thành phn ca ; thí d,
phân bit cây vi nh y.(3) Phân bit gia c lp đối tượng vi nhau; thí d, phân bit lp
cây vi lp đất đá. C ba phương pháp t chc này được áp dng và chúng cho cái nhìn rõ ng
hơn trong lĩnh vc vn đề và trách nhim ca h thng khi tiếp cn hướng đối tượng.
Quy mô (scale). Nguyên tc áp dng qui tc tng th-thành phn để quan sát i gì đó rt ln
được gi là qui .
Phân lp hành vi. Sau khi đã tìm ra nh hưởng t chc suy nghĩ, ta phi hiu rõ các hành vi
ca đối tượng. Hành vi là nhng phn ng, cách cư x biu hin ra ngoài. Phân lp hành vi bao
gm ba loi sau: (a) tn cơ s to ra kết qu tc thì; (b) s tương t ca lch s tiến a (thay đổi
theo thi gian) và (c) s tương t ca các chc năng.
Mu (pattern). Năm 1977 Christopher Alexander [MULL97] đã đề xut khái nim mu khi
thiết kế h thng theo quan đim hướng đối tượng. Mu là t hp đối tượng và lp. Li thế ca
thiết kế theo mu cho phép x lý các quan nim v kiến trúc mc cao hơn đối tượng vì cng là
c th trong lĩnh vc ng dng. Có th xem mi tương ng gia mu và c đối tượng như mi
tương ng gia chương trình con và các ng lnh chương trình. Mu là đơn v s dng li trong
thiết kế hướng đối tượng.
1.4 NGUYÊN TC HÌNH HÓA
Kh năng ca con người là có gii hn khi kho sát các vn đề phc tp như tng th. Thông
qua mô hình a ta s gii hn vn đề nghên cu bng cách ch tp trung vào mt khía cnh ca
vn đề vào mt thi đim. Đó là quan đim chia để tr và Edsger Dijkstra đã phát biu t vài năm
trước đây: Tn công vào vn đề k bng cách chia nh thành dãy các vn đề nh hơn mà ta
có th gii quyết được. hình a s làm tăng tri thc ca con người. Vic chn mô hình đúng
cho kh năng mô hình làm vic mc tru tượng cao. hình a đã có lch s lâu đời trong
mi lĩnh vc k ngh. Người ta đã rút ra bn nguyên tc cơ bn sau [BRJ99]:
1. Vic chn mô hình nào để to lp có nh hưởng sâu sc đến cách gii quyết vn đề và
cách hình thành các gii pháp.
Các mô hình đúng s làm sáng t vn đề phát trin phc tp nht, cho cái nhìn thu đáo
vn đề cn gii quyết. Mt khác, mô hình ti s làm ta lc li, làm cho ta ch tp trung vào
c nhim v không thích hp. Vic chn mô hình cho h thng phn mm tác động mnh
đến cách quan sát thế gii. Nếu xây dng h thng theo cách nhìn ca người phát trin
CSDL thì h s tp trung vào mô hình quan h thc th, đẩy hành vi vào trigger (khi s
hành động) và th tc lưu tr. Dưới con mt ca người phân ch cu trúc, mô hình tp
trung vào thut toán và lung d liu t tiến trình này sang tiến trình khác. Dưới con mt
ca người phát trin hướng đối tượng, h thng có kiến trúc tp trung vào s lp và c
Phát trin phn mm bng UML trang | 14
mu th tương tác gia các đối tượng lp. Mt cách tiếp cn trên có th phù hp cho mi
lp ng dng hay ti quen phát trin h thng. Tuy nhiên kinh nghim cho thy rng tiếp
cn hướng đối tượng là ưu vit nht cho mi kiến trúc. Mi cách nhìn thế gii s dn đến
s khác nhau v giá c và li nhun ca h thng được xây dng.
2. Mi mô hình biu din h thng vi mc độ chính xác khác nhau.
Khi xây dng nhà cao tng, đôi khi ta phi đứng xa hàng trăm mét để quan sát tng th.
Tương t vi các mô hình phát trin phn mm, đôi khi ta ch cn có mô hình nhanh, đơn
gin v giao din người dùng; đôi khi li phi quan sát sâu hơn đến mc các bit khi gii
quyết vn đề tc nghn đường truyn h thng. Trong mi trường hp i tn thì các loi
mô hình tt nht là mô hình cho phép ta la chn mc độ chi tiết khác nhau, ph thuc vào
ai s là người quan sát và ti sao h li cn quan sát nó. Người phân ch và người s dng
cui cùng mun tp trung vào u hi cái gì?, người phát trin s tp trung tr li u hi
như thế nào?. C hai mun biu din h thng mc độ chi tiết khác nhau và vào thi
đim khác nhau.
3. Mô hình tt nht phi là mô hinh phù hp vi thế gii thc.
hình ng gn vi cách suy nghĩ ca ta v thế gii thc thì ng d dàng qun lý độ
phc tp. Nếu mô hình vt lý ca ngôi nhà mà không đáp ng cách s dng ca các vt liu
có tn th trường thì giá tr ca mô hình đó ch có hn. Nếu gi thiết ca mô hình toán hc
ca con tàu vũ tr là điu kin lý tưởng và công ngh hoàn ho thì s loi b các đặc đim
nguy him tim tàng ca tàu vũ tr thc. Tt nht là phi có mô hình kết ni rõ ng vi thế
gii thc. Mi mô hình đều đơn gin hóa thế gii thc, do vy phi đảm bo tiến trình đơn
gina s không loi b đi các chi tiết quan trng. Vi phn mm, trong các k thut phân
ch cu trúc thì mô hình phân ch và mô hình thiết kế h thng s được tách bit nhau.
Thiếu cu ni gia hi loi mô hình này, dn ti h thng s được hiu và xây dng khác
nhau vào các thi đim khác nhau. Trong h thng hướng đối tượng, có kh năng liên kết
mi quan sát tương đối độc lp vào toàn th.
4. Không mô hình nào là đầy d. Mi h thng thường được tiếp cn thông qua tp mô hình
gn như độc lp nhau.
Khi xây dng tòa nhà, không có mt bn thiết kế nào có th bc l toàn b chi tiết ca
nó. Ít nht thì ta phi có thiết kế các tng, thiết kế cu thang, thiết kế h thông đin, nước,
thiết kế h thng cu ha,… Khái nim gn như độc lp nhau đây có nghĩa rng các mô
hình này được hình thành và nghiên cu tách bit nhưng vn có quan h vi nhau. Thí
d, ta có th thiết kế h thông đin, nước mt cách độc lp, nhưng trong quá trình thiết kế
này thì phi quan tâm đến thiết kế ca các tng nhà cho phù hp. Tương t trong h
thng phn mm hướng đối tượng, để hiu kiến trúc h thng phn mm ta cn mt vài
quan sát b tr nhau: quan sát trường hp s dng din t yêu cu h thng, quan sát thiết
kế (thu thp t vng ca không gian vn đề và không gian gii pháp), quan sát tiến trình
(mô hình a phân b tiến trình và lung ca h thng), quan sát i đặt (tp trung vào hin
thc vt lý ca h thng), quan sát trin khai (tp trung vào các nhim v k ngh ca h
thng). Mi quan sát đều có khía cnh kiến trúc hay hành vi riêng. Tp hp li các quan sát
này có kh năng biu din được kế hoch chi tiết ca phát trin phn mm.
Phc thuc vào bn cht ca h thng mà mi mô hình có tm quan trng khác nhau. Thí d,
vi h thng qun lý nhiu d liu thì các mô hình quan sát thiết kế tĩnh s quan trng hơn. Nếu
h thng phi có nhiu giao din người ng thì c quan sát trường hp s dng tĩnh và động
đều rt quan trng. H thng thi gian thc coi trng quan sát tiến trình động. Cui cùng, h
thng phân tán (các ng dng Web) coi mô hình trin khai và cài đặt là quan trng nht.
Phát trin phn mm bng UML trang | 15
1.5 KHÁI QUÁT V TIN TRÌNH PHÁT TRIN PHN MM
H thng là t hp phn cng, phn mm cung cp gii pháp cho vn đề cn gii quyết. Ngày
nay, trong khi h thng quá phc tp mà tri thc li quá chuyên ngành cho nên mt người không
th biết mi khía cnh tác nghip. Mt người không th hiu đồng thi mi vn đề ca h thng:
t thiết kế gii pháp, viết mã trình, trin khai trên nn phn cng đến đảm bo chc chn mi
thành phn phn cng đều làm vic tt vi nhau. Tiến trình phát trin phn mm phc tp phi
được nhiu người thc hin. Trước hết là khách hàng, đó là người đưa ra vn đề cn gii quyết.
Phân ch viên làm tài liu vn đề ca khách hàng và chuyn ti người phát trin, đó là nhng
lp trình viên xây dng phn mm để gii quyết, kim tra và trin khai nó tn các phn cng.
Phát trin phn mm có th được thc hin bng nhiu con đường khác nhau. Các d án có th
tuân th mt trong các loi tiến trình lp và tăng dn. Mi loi có ưu và nhược đim riêng.
1.5.1 - Các phương pháp mô hình hóa h thng
1.5.1.1 - hình thác nước
T đã lâu, h thng phn mm thường được mô hình a theo phương pháp tc nước
(waterfall). Phương pháp này được Royce mô t t năm 1970 (hình 1.5). Trong mô hình này phát
trin phn mm là dãy c pha liên tiếp t phân ch yêu cu, thiết kế h thng, phát trin h
thng đến th nghim và trin khai h thng. Pha sau ch được bt đầu khi pha trước đã hoàn
thành.
Hình 1.5 Mô hình tc nước
Để xây dng được h thng phn mm ta phi mô t được vn đề (problem) và yêu cu
(requirement) ca khách hàng bng tr li các u hi như vn đề ca h thng là gì? và h thng
cn phi làm gì?. Pha phân ch ca tiến trình tp trung vào vic điu tra vn đề thay cho vic tìm
ra gii pháp. Thí d, khi xây dng h thng qun lý thư vin thì phân ch có nghĩa là tìm kiếm
tiến trình tác nghip nào liên quan đến vic s dng nó. Để có tài liu phân ch đầy đủ và đúng
đắn thì phi phân ch lĩnh vc vn đề. Lĩnh vc vn đề là khu vc tác nghip ca con người,
trong đó phn mm được xây dng. Thí d, h thng phn mm thư vin trong trường hc lĩnh
vc là giáo dc, sinh viên… Pha thiết kế tp trung vào gii pháp logic, thí d phi tr li u hi
h thng đang xây dng thc hin các u cu và các ràng buc như thế nào?. Trong h thng
qun lý thư vin thì pha này thc hin tr li u hi thu thp, ghi chép vic mượn, tr ch hay
tp chí như thế nào?. Pha i đặt (viết trương trình) tp trung vào mà hóa trương trình.
Phân tích
Thiết kế
Viết chương trình
Th nghim
Phát trin phn mm bng UML trang | 16
hình 1.6 Mô hình ch V”
Nhng người tham gia vào xây dng h thng phn mm như khách hàng, phân ch viên, lp
trình viên… theo phương pháp tc nước rt ít khi cùng làm vic vi nhau để chia s các hiu
biết sâu sc vn đề đang gii quyết. Do vy h mt rt nhiu thi gian để xây dng được h thng
phn mm.
Chu k tc nước còn được biu din dưới dng ch V (hình 1.6), trong đó pha kim tra được
thc hin đồng thi vi các pha phát trin khác. Thí d, kim tra chc năng được thc hin trong
quá trình phân ch, kim tra ch hp trong pha thiết kế, kim tra mođun trong pha mã hóa
chương trình.
1.5.1.2 - hình lp và tăng dn
hình tc nước không cho ta đi ngược li chui trình t phát trin phn mm như trình
bày tn. Bt đầu d án, theo mô hình này thì ta phi xác định toàn b yêu cu, được thc hin
thông qua bàn bc vi người s dng h thng và kho sát chi tiết các tiến trình tác nghip. Thc
tế thì khi kết tc công vic, may mn lm ch 80% nhu cu h thng là được thu thp trong pha
phân ch. Tiếp theo là pha thiết kế, nơi kiến trúc h thng s được xác định. Pha này tp trung
vào nhng nhim v như đặt chương trình đâu, cn phn cng nào… Trong khi thc hin công
vic này, ta có th tìm ra mt s nhim v mi (nhu cu mi) ca h thng. Do đó, xut hin nhu
cu đi tr li người s dng để trao đổi, bàn bc v ; có nghĩa rng chúng ta phi tr li pha
phân ch. Sau khi đi li vài ln như vy ta mi chuyn đến pha phát trin để bt đầu lp trình h
thng. Khi mã a chương trình, ta phát hin ra rng mt vài quyết định khi thiết kế là không th
i đặt. Vy ta li phi tr li pha thiết kế xem xét li các nhim v. Sau khi mã a xong, pha
kim tra bt đầu. Trong khi kim tra ta nhn thy rng mt vài yêu cu chưa đủ chi tiết, gii thích
nhm ln có th xy ra. Vy ta phi quay tr li pha phân ch để xem xét li yêu cu. Sau vài ln
lp ta mi có được h thng hoàn chnh và phân phát cho người s dng. Tác nghip có th thay
đổi theo thi gian khi xây dng h thng. Người s dng có th phàn nàn v sn phm ta làm ra
không hoàn toàn như h mong đợi. Nguyên nhân có th là: vn đề tác nghiêp (bussiness) thay đổi
quá nhanh; người s dng không truyn đạt đúng i h mun; đội ngũ d án không tuân th tiến
trình… Đội ngũ phát trin thường lp ra c biu đồ và vô s tài liu, văn bn, nhưng người ng
không phi lúc nào cũng hiu i mà đội ngũ phát trin cung cp cho h. Gii pháp nào để tnh
các vn đề này? Câu tr li là mô hình hóa trc quan có th giúp h.
Phát trin phn mm là tiến trình phc tp. Nếu b qua kh năng quay tr li các bước thc
hin trước đó thì thiết kế h thng có th sai làm và thiếu t nhu cu. Để có th đi ngược li các
bước phát trin h thng phn mm ta có phương pháp mi, phương pháp phát trin lp
(iterative). Phát trin lp là làm đi làm li vic gì đó. Trong phương pháp này ta s đi qua các
bước phân ch, thiết kế, phát trin, kim tra và trin khai phn mm theo tng bước nh nhiu
Phân tích
Thiết kế
Viết chương trình
Kim tra mô đun
Kim tra chc năng
Kim tra tích hp
Chương trình ng dng
Phát trin phn mm bng UML trang | 17
ln. Cn nh rng không có kh năng thu thp đầy đủ mi yêu cu vào công đon đầu tiên ca d
án. Các vn đề có th ny sinh, vy ta phi lp kế hoch lp trong d án. Theo quan nim này thì
d án được coi là dãy các thác nước nh. Mi thác nước được thiết kế sao cho đủ ln để hoàn
thành thin tng b phn quan trng ca d án và đủ nh để ti thiu nhu cu đi tr li.
Hình 1.7 [MULL97] cho thy mi chu k lp là mt vòng đời thác nước nh. Vòng lp sau
được hình thành tn cơ s tiến a ca ng lp trước đó. Như vy, các pha truyn thng được
lp đi lp li và tăng dn. Trong phương pháp này, phân ch viên, người thiết kế, người lp
trình… hp tác làm vic để hiu biết sâu sc h thng, chi s các ý tưởng mi dn ti xây dng
được h tng mnh, phc tp hơn.
Hình 1.7 Mô hình lp và tăng dn
Có nhiu biết th ca chu k lp. Các chu k lp này được hình thành tn cơ s phm vi ca
d án, độ phc tp ca vn đề và các la chn kiến trúc. Thí d, chu k lp hình ch b ca Birrel
N.D và Ould M.A. (1985) tp trung vào pha bo trì h thng, được áp dng cho các d án trung
bình; chu k lp hình ch O ca Boehm B.M (1988) bao gm lp công vic phân ch và thiết kế.
Mô hình này cho kh năng các nhóm thc hin song song d án.
1.5.2 - Các pha phát trin phn mm
Không có tiến trình phát trin phn mm nào là phù hp cho mi d án, mi lĩnh vc ng
dng [MULL97]. Phn này mô t tiến trình phát trin phn mm tng quát, mi d án phi thích
nghi cng vi các ng buc riêng. Phát trin phn mm được quan sát t hai góc độ b tr
nhau. Đó là, góc độ h tr bao gm các khía cnh tài chính, chiến lược, th trường và con người
và góc độ k thut bao gm k ngh, kim tra cht lượng và phương pháp mô hình hóa.
1.5.2.1 - Khía cnh k thut trong tiến trình phát trin phn mm
Góc nhìn k thut tp trung vào trin khai và t chc c hot động k thut để dn ti sn
sinh các thế h phn mm khác nhau. Như trình bày trên, chu k phát trin được xem như trình t
c lp, tng qua nó mà phn mm tiến trin dn. Kết qu ca mi ng lp là chương trình có
th chy được (kh thc). Ni dung ca lp phi có ích cho tiến trình phát trin và cho người s
dng. Mt s kết qu ca lp ch được s dng ni b tiến trình phát trin, mt s khác được s
dng để th hin trng thái tiến trin. T lp này đến lp khác, chương trình s được b sung các
chc năng mi và cht lượng ca nó đươc nâng cao cho đến mt ng lp nào đó s sn sinh ra
thế h th nht ca phn mm.
Phân tích
Thiết kế
Mã hóa
Tích hp
Phát trin phn mm bng UML trang | 18
Hình 1.8 Tiến trình phát phn mm
Các hot động truyn thng không được thc hin trình t như trong chu k phát trin tc
nước, được phân b vào các lp khác nhau. Mi lp bao gm lp kế hoch, phân ch, thiết kế,
i đặt, th nghim và tích hp. Chương trình kh thc là kết qu ca các bước lp được gi là
bn mu (prototype). Bn mu là tp con ca mt ng dng, được s dng để hình thành các
yêu cu hay đánh giá hiu qu ca công ngh la chn. Bn mu ngày ng phong phú tng qua
mi bước lp. Thông thường, bn mu th nht ch có mt mc đích là chưng minh quan nim
ng dng. Nó được hình thành ng nhanh ng tt, đôi khi b qua tiêu chun cht lượng thông
thường. Bn mu này thường được gi là mô hình hay maket. Các bước lp áp ct s phát sinh
c phiên bn beta, nó được gi đến nhóm người s dng th nghim. Phiên bn chính thc cũng
là bn mu như c bn mu khác (hình 1.8) [MULL97]. Nó được xem như bn mu cui cùng
ca thế h phn mm đang phát trin và là bn mu đầu tiên ca thế h phn mm tiếp theo.
1.5.2.2 - Qun lý ri ro trong tiến trình phát trin lp
Như trong mi hot động khác ca con người, phát trin phn mm phi tuân th lut chia s
ri ro. Phân ch ri ro bao gm đánh giá d án, công ngh và tài nguyên để xác định, hiu rõ bn
cht ca ri ro và quan h gia cng phi được mô t vn tt để mi thành viên trong d án biết
chúng. Ri ro phi được lượng a và phi biết rng có th hay không có th loi b. Không
được mô t thiếu rõ ng trong tài liu như “H thng cn đủ nhanh hay “B nh cn đủ ln”…
Ri ro ca d án được chia thành bn nhóm như sau đây:
i ro v thương mi: Có th thu thp đầy đủ thông tin cnh tranh ca sn phm tn th
trường?
Ri ro v tài chính: Nhà đầu tư phát trin phn mm có đủ kinh phí để hoàn thành d án?
Ri ro v k thut: Nn tng công ngh vng chc và đã được th thách?
Lp
Pha Kết qu
Thế h phn mm
Makét
Lp
chuyn giao
Lp
chuyn giao
Kho sát
kh thi
Chi tiết
Xây dng
Chuyn giao
Lp
phát trin
Lp
phát trin
Lp
phát trin
Lp
kiến trúc
Lp
kiến trúc
Lp
khi đầu
Bn beta
Bn mu phát trin
Bn beta
Bn mu phát trin
Bn mu kiến trúc
Bn mu kiến trúc
Phát trin phn mm bng UML trang | 19
Ri ro v phát trin: Đội ngũ phát trin có đủ kinh nghim? H có làm ch hoàn toàn công
ngh đang s dng?
Tuy nhiên, luôn nh rng i ri ro ln nht là không biết được ri ro xy ra đâu. Nhim v
qun lý ri ro là phi lp kế hoch làm gim ri ro, sau đó là thc hin kế hoch này.
1.5.2.3 - Khía cnh h tr tiến trình phát trin phn mm
T góc nhìn h tr, phát trin phn mm được thc hin trong b pha: Kho sát kh thi hay
khi đâu (inception), chi tiết (elaboration), xây dng (construction) và chuyn giao (transition).
Chu k phát trin phn mm t góc độ này được mô t tn hình 1.8. Hình này còn cho thy quan
h gia hai góc nhìn khác nhau: góc nhìn h tr và góc nhìn k thut. Dưi đây là mô t các pha
phát trin phn mm tu góc nhìn h tr.
Pha khi đầu (hay kho t kh thi). Pha này bao gm kho sát th trường, đặc t sn phm
cui cùng, xác định phm vi d án. Khi đầu là bt đầu d án, t khi ai đó cho rng nếu có h
thng phn mm mi để giúp đ công vic ca h thì tt hơn. Tiếp theo là ai đó nghiên cu ý
tưởng. Người qun lý (khách hàng) hi bao lâu thì có phn mm? Kinh phí là phn mm là bao
nhiêu? Tính kh thi ca d án thế nào? Tiến trình tìm ra các u tr li cho các câu hi này thuc
pha khi đầu. Kho sát th trường không phi là công vic ca c k sư phn mm mà là công
vic ca chuyên gia kho sát th trường và phân ch cnh tranh. H c gng đánh giá vic xây
dng h thng phn mm mi hay nâng cp phn mm có sn có kinh tế không, giúp các công ty
xác định c ưu, nhược đim. Công vic đầu tiên đây là hình dung bc tranh tng quát ca sn
phm để d dàng nhn ra và tách các thành phn cho pha chi tiết. Theo E. Morel thì bc tranh này
được mô t như sau:
Bc tranh sn phm = Cái gì + Cho ai + Giá bao nhiêu
trong đó, Cái gì mun đề cp đến các đặc trưng tông th v sn phm; Cho ai xác định khách
hàng s dng sn phm và Giá bao nhiêu d báo giá ca mi sn phm mà người s dng có th
chp nhn.
Thông thường phi xây dng bn mu ki nim cho pha kho sát kh thi để đánh giá nh ri
ro ca các chc năng phn mm, sc mnh và độ phc tp ca h thng, công ngh mi s áp
dng. T đó mà các quyết định v quan nim sn phm được hình thành. Loi bn mu này
không cn tuân th các quy lut phát trin phn mm thông thường như độ tin cy cao hay tc độ
x lý phi nhanh. Đó ch là maket h thng, mã trình ca s không đóng vai trò gì trong sn
phm cui cùng. T đây, nh ri ro ca d án được nhn biết và pha kho sát thì s tiếp tc c
gng đánh giá kinh phí cho d án và li nhun s đem li. D báo kinh phí luôn là công vic khó
khăn. S liu ca d báo ban đầu s không bao gi đúng, ch có được s liu đúng khi kết tc
phát trin h thng. Do vy, vic d báo này thường được hiu chnh dn dn trong nhiu bước
khác.
Phát trin phn mm bng UML trang | 20
Hình 1.9 Độ tin cy ca d báo kinh phí d án
Vi các d án nh, kho sát kh thi thường ch gii hn bi danh sách yêu cu phn mm.
Vi các d án trung bình (thc hin khong mt năm) thì pha kho sát kh thi s thc hin trong
khong mt tháng, bao gm c vic xây dng maket. Vi các d án ln, vic xây dng maket có
th là mt d án con và nó cũng có các bước thc hin như mô t trên.
Pha chi tiết. Pha chi tiết bt đầu bng phân ch yêu cu và mô hình a lĩnh vc. Nó có
nhim v la chn kiến trúc, làm gim mc độ ri ro ca d án, cui cùng là xác định được kế
hoch đầy đủ cho các nhim v phát trin h thng phn mm. Tham gia vào pha này bao gm
kiến trúc sư h thng, chuyên gia lĩnh vc, người s dng, đại din ca nhóm kim tra cht lượng
và th nghim, người viết tài liu, chuyên gia v các công c phát trin phn mm.
Phân ch yêu cu được thc hin tn cơ s kho sát các trường hp s dng. Các trường hp
s dng được mô t theo khái nim khách hàng, có th khác xa vi hình thc mô t ca k ngh
phn mm. Các phân ch viên có nhim v chuyn đổi chúng sang hình thc gn máy nh hơn,
thí d, chuyn đổi trường hp s dng sang cng tác ca các đối tượng trong lĩnh vc ng dng.
Đó là các đối tượng trong thế gii thc, công tác vi nhau để hình thành các chc năng trong
trường hp s dng. Người s dng vn có th hiu rõ trên hình thc biu din này. Hình 1.10 là
thí d v i đặt trường hp s dng Bán hàng bng ba đối tượng hp tác là khách hàng, người
bán hàng và xe ô .
Hình 1.10 Cài đặt trường hp s dng
Bán hàng:
Cng tác
Xe ô tô
Bán hàng:
Trường hp s dng
Nhân viên bán hàng
Khách hàng
<<Tham gia vào>>
<<Tham gia vào>>
<<Tham gia vào>>
Người s dng
K sư phn mm
Độ tin cy
ca d báo
Độ chính xác ca d báo
Kha sát
kh thi
Chi tiết
Kinh phí thc tế
Xây dng
Chuyn giao
Thi gian

Preview text:

Xuất bản năm 2002
Chuyển sang ebook bởi
Sinh viên lớp DHTH4LT – Trường ĐH Công Nghiệp 10/2009
Phát triển phần mềm bằng UML trang | 1 Mục lục
CHƯƠNG 1 MỞ ĐẦU .......................................................................................................................................... 7
1.1 LỊCH SỬ HƯỚNG ĐỐI TƯỢNG .......................................................................................................................... 8
1.2 MỘT SỐ KHÁI NIỆM CƠ BẢN ......................................................................................................................... 10
1.3 NGUYÊN TẮC QUẢN LÝ ĐỘ PHỨC TẠP ........................................................................................................... 12
1.4 NGUYÊN TẮC MÔ HÌNH HÓA ......................................................................................................................... 13
1.5 KHÁI QUÁT VỀ TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM ...................................................................................... 15
1.5.1 - Các phương pháp mô hình hóa hệ thống .......................................................................................... 15
1.5.2 - Các pha phát triển phần mềm ........................................................................................................... 17
CHƯƠNG 2 KHÁI QUÁT VỀ UML ................................................................................................................. 24
2.1 GIỚI THIỆU UML .......................................................................................................................................... 24
2.2 MÔ HÌNH KHÁI NIỆM CỦA UML ..................................................................................................................... 26
2.2.1 - Phần tử mô hình trong UML............................................................................................................. 26
2.2.2 - Các quan hệ trong UML ................................................................................................................... 28
2.2.3 - Kiểu dữ liệu ...................................................................................................................................... 29
2.2.4 - Biểu đồ UML .................................................................................................................................... 29
2.3 KIẾN TRÚC HỆ THỐNG .................................................................................................................................. 38
2.3.1 - Khung nhìn UC ................................................................................................................................. 38
2.3.2 - Khung nhìn thiết kế ........................................................................................................................... 39
2.3.3 - Khung nhìn cài đặt ........................................................................................................................... 39
2.3.4 - Khung nhìn triển khai ....................................................................................................................... 39
2.3.5 - Khung nhìn tiến trình ........................................................................................................................ 40
2.3.6 - Cần bao nhiêu khung nhìn ................................................................................................................ 40
2.4 RATIONAL ROSE LÀ GÌ? ................................................................................................................................ 40
2.5 KHẢ NĂNG SỬ DỤNG UML ............................................................................................................................. 41
2.6 THỰC HÀNH ................................................................................................................................................. 41
CHƯƠNG 3 MÔ HÌNH HÓA TRƯỜNG HỢP SỬ DỤNG ............................................................................ 44
3.1 PHÂN TÍCH TRƯỜNG HỢP SỬ DỤNG (USE CASE – UC) ................................................................................... 44
3.1.1 - UC là gì? .......................................................................................................................................... 44
3.1.2 - Xây dựng UC để làm gì? .................................................................................................................. 44
3.1.3 - Tìm kiếm UC như thế nào ? .............................................................................................................. 45
3.1.4 - Luồng sự kiện trong UC ................................................................................................................... 48
3.2 BIỂU ĐỒ TRƯỜNG HỢP SỬ DỤNG ................................................................................................................... 50
3.3 THỰC HÀNH ................................................................................................................................................. 54
3.3.1 - Sử dụng Rational Rose. ..................................................................................................................... 54
3.3.2 - Thí dụ: hệ thống bán hàng ................................................................................................................ 60
CHƯƠNG 4 MÔ HÌNH HÓA TƯƠNG TÁC ĐỐI TƯỢNG .......................................................................... 63
4.1 ĐỐI TƯỢNG VÀ TÌM KIẾM ĐỐI TƯỢNG........................................................................................................... 63
4.2 BIỂU ĐỒ TƯƠNG TÁC .................................................................................................................................... 63
4.2.1 - Biểu đồ trình tự ................................................................................................................................. 64
4.2.2 - Biểu đồ cộng tác ............................................................................................................................... 70
4.3 KỸ THUẬT XÂY DỰNG BIỂU ĐỒ TƯƠNG TÁC ................................................................................................. 72
4.4 THỰC HÀNH ................................................................................................................................................. 75
4.4.1 - Sử dụng Rational Rose ...................................................................................................................... 75
4.4.2 - Thí dụ: hệ thống bán hàng (tiếp theo) .............................................................................................. 83
CHƯƠNG 5 BIỂU ĐỒ LỚP VÀ GÓI ............................................................................................................... 92
5.1 LỚP VÀ TIỀM KIẾM LỚP......................................................................................................................... 92
5.2 BIỂU ĐỒ LỚP ............................................................................................................................................ 94
5.2.1 - Các loại lớp trong biểu đồ ................................................................................................................ 94
5.2.2 - Stereotype của lớp ............................................................................................................................ 95
5.3 GÓI ............................................................................................................................................................. 96
5.4 THUỘC TÍNH LỚP .................................................................................................................................... 97
5.4.1 - Tìm kiếm thuộc tính .......................................................................................................................... 97
5.4.2 - Đặc tả thuộc tính .............................................................................................................................. 98
5.5 THAO TÁC CỦA LỚP ............................................................................................................................. 100
Phát triển phần mềm bằng UML trang | 2
5.6 QUAN HỆ ................................................................................................................................................. 101
5.6.1 - Quan hệ kết hợp .............................................................................................................................. 101
5.6.2 - Quan hệ phụ thuộc .......................................................................................................................... 104
5.6.3 - Phụ thuộc tụ hợp ............................................................................................................................. 105
5.6.4 - Quan hệ khái quát hóa .................................................................................................................... 106
5.6.5 - Gán đặc tính cho quan hệ ............................................................................................................... 107
5.7 CƠ CHẾ DUY TRÌ ĐỐI TƯỢNG ............................................................................................................. 112
5.8 THỰC HÀNH ........................................................................................................................................... 115
5.8.1 - Sử dụng Rational Rose .................................................................................................................... 115
5.8.2 - Thí dụ: Hệ thống bán hàng (tiếp theo) ........................................................................................... 125
CHƯƠNG 6 BIỂU ĐỒ CHUYỂN TRẠNG THÁI VÀ BIỂU ĐỒ HOẠT ĐỘNG ....................................... 137
6.1 BIỂU ĐỒ CHUYỂN TRẠNG THÁI ........................................................................................................ 137
6.1.1 - Trạng thái ....................................................................................................................................... 139
6.1.2 - Quá độ ............................................................................................................................................ 141
6.1.3 - Trạng thái ẩn .................................................................................................................................. 142
6.1.4 - Lớp và biểu đồ trạng thái ............................................................................................................... 144
6.2 BIỂU ĐỒ HOẠT ĐỘNG .......................................................................................................................... 144
6.2.1 - Trạng thái hành động và trạng thái hoạt động ............................................................................... 145
6.2.2 - Quá độ ............................................................................................................................................ 145
6.2.3 - Rẽ nhánh ......................................................................................................................................... 145
6.2.4 - Đường dẫn tương tranh .................................................................................................................. 146
6.2.5 - Đường bơi ....................................................................................................................................... 147
6.2.6 - Luồng đối tượng ............................................................................................................................. 147
6.2.7 - Gửi và nhận tín hiệu ....................................................................................................................... 148
6.3 THỰC HÀNH ........................................................................................................................................... 149
6.3.1 - Sử dụng Rational Rose .................................................................................................................... 149
6.3.2 - Thí dụ: Hệ thống bán hàng (tiếp theo) ........................................................................................... 152
CHƯƠNG 7 BIỂU ĐỒ KIẾN TRÚC VẬT LÝ VÀ PHÁT SINH MÃ TRÌNH ............................................ 155
7.1 BIỂU ĐỒ THÀNH PHẦN ........................................................................................................................ 155
7.1.1 - Thành phần là gì? ........................................................................................................................... 155
7.1.2 - Biểu tượng thành phần trong Rational Rose .................................................................................. 156
7.1.3 - Phụ thuộc thành phần ..................................................................................................................... 157
7.1.4 - Biểu đồ thành phần ......................................................................................................................... 158
7.2 BIỂU ĐỒ TRIỂN KHAI ........................................................................................................................... 159
7.2.1 - Phần tử mô hình của biểu đồ .......................................................................................................... 159
7.2.2 - Tiến trình ........................................................................................................................................ 160
7.3 THỰC HÀNH ........................................................................................................................................... 160
7.3.1 - Sử dụng Rational Rose .................................................................................................................... 160
7.3.2 - Phát sinh mã trình bằng Rose ......................................................................................................... 164
7.3.3 - Rational Rose và Visual C++ ......................................................................................................... 170
7.3.4 - Thí dụ: Hệ thống bán hàng (tiếp theo) ........................................................................................... 171
CHƯƠNG 8 VÍ DỤ ÁP DỤNG ......................................................................................................................... 184
8.1 KHẢO SÁT TIẾN TRÌNH TÁC NGHIỆP ............................................................................................................ 184
8.2 PHÂN TÍCH LĨNH VỰC .......................................................................................................................... 190
8.3 PHÂN TÍCH HỆ THỐNG. ........................................................................................................................ 194
8.3.1 - Xây dựng biểu đồ trường hợp sử dụng (Use Case-UC) .................................................................. 194
8.4 BIỂU ĐỒ TƯƠNG TÁC ........................................................................................................................... 204
8.4.1 - Tiến trình đặt trước sách để mượn ................................................................................................. 204
8.4.2 - Tiến trình mượn sách , tạp chí. ....................................................................................................... 206
8.5 BIỂU ĐỒ LỚP. ......................................................................................................................................... 208
8.6 BIỂU ĐỒ TRIỂN KHAI ........................................................................................................................... 209
8.7 THIẾT KẾ GIAO DIỆN ............................................................................................................................ 211
CHƯƠNG 9 MÃ TRÌNH PHÁT SINH TRONG ROSE ............................................................................... 214
9.1 PHÁT SINH MÃ TRÌNH C++ .................................................................................................................. 214
9.1.1 - Các lớp ........................................................................................................................................... 214
9.1.2 - Quan hệ kết hợp .............................................................................................................................. 216
9.1.3 - Quan hệ phụ thuộc tập hợp............................................................................................................. 220
Phát triển phần mềm bằng UML trang | 3
9.1.4 - Quan hệ kế thừa .............................................................................................................................. 222
9.2 PHÁT SINH MÃ TRÌNH JAVA ............................................................................................................... 222
9.2.1 - Các lớp ........................................................................................................................................... 223
9.2.2 - Quan hệ kết hợp .............................................................................................................................. 224
9.2.3 - Quan hệ phụ thuộc tập hợp............................................................................................................. 225
9.2.4 - Quan hệ kế thừa .............................................................................................................................. 226
9.3 PHÁT SINH MÃ TRÌNH VISUAL BASIC .............................................................................................. 227
9.3.1 - Các lớp ........................................................................................................................................... 227
9.3.2 - Quan hệ kết hợp .............................................................................................................................. 229
9.3.3 - Quan hệ kế thừa đơn ....................................................................................................................... 230
9.4 PHÁT SINH MÃ TRÌNH SQL. ........................................................................................................................ 231
9.4.1 - Các lớp ........................................................................................................................................... 231
9.4.2 - Quan hệ kết hợp .............................................................................................................................. 231
9.4.3 - Quan hệ kế thừa .............................................................................................................................. 233
Phát triển phần mềm bằng UML trang | 4 LỜI NÓI ĐẦU
Hệ thống tin học ngày càng phức tạp. Xu thế áp dụng phương pháp hướng đối tượng (phương
pháp mới) thay cho phương pháp cấu trúc (phương pháp truyền thống) ngày càng phổ biến khi
xây dựng các hệ thống phần mềm lớn và phức tạp. Hơn nữa, từ khi Ngôn ngữ mô hình hóa thống
nhất (Unified Modeling Language – UML) được tổ chức OMG (Object Management Group)
công nhận là chuẩn công nghiệp thì nó đã trở thành công cụ phổ dụng và hữu hiệu cho phương
pháp mới này. Mục tiêu của tài liệu này nhằm giới thiệu các khái niềm cơ bản về tiếp cận hướng
đối tượng và mô hình hóa hệ thống phần mềm theo phương pháp hướng đối tượng. Các khái niệm
mới được mô tả, hướng dẫn thực hành thông qua ngôn ngữ chuẩn UML và phần mềm công cụ
mô hình hóa nổi tiếng Rational Rose của Raitonal Software Corporation.
Phương pháp phân tích thiết kế hướng đối tượng được sử dụng rộng rãi tại các nước phát triển
và bắt đầu được sử dụng tại một số đơn vị tin học tại Việt Nam. Tuy nhiên tài liệu bằng tiếng Việt
về lĩnh vực này còn rất hiếm hoi, không đáp ứng nhu cầu hiện tại. Hơn nữa, nhận thức được tầm
quan trọng của phương pháp mới này, một số trường đại học đã hình thành môn học liên quan
đến vấn đề nói trên cho sinh viên, còn một số trường khác đang có kế hoạch đưa chủ đề này vào
chương trình đào tạo chính khóa.
Chủ điểm của tài liệu được thể hiện dưới góc nhìn của người phát triển hệ thống phần mềm,
không thể hiện dưới góc độ quan sát của nhà phương pháp luận. Lựa chọn này xuất phát từ thực
tế là từ phương pháp luận hướng đối tượng dẫn đến việc ứng dụng nó vào xây dựng phần mềm cụ
thể còn một khoảng cách xa vời và đầy khó khăn, đặc biệt với trình độ tin học hiện này nói chung
còn chưa cao tại Việt Nam. Với quan điểm này, tài liệu được cấu trúc như sau:
Chương mở đầu trình bày khái quát về mô hình và mô hình hóa; các bước xây dưng hệ thống
phần mềm và tầm quan trọng của phương pháp hướng đối tượng. Chương tiếp theo giời thiệu
ngôn ngữ chuẩn công nghiệp UML, một công cụ hữu hiệu mô hình hóa hệ thống phần mềm.
Trong các phần tiếp theo là trình bày kỹ thuật mô hình hóa, từ phân tích yêu cầu đến thiết kế hệ
thống, kiến trúc hệ thống và cài đặt bằng ngôn ngữ lập trình. Chương cuối cùng là bài học thực
nghiệm các kỹ thuật đã trình bày trong các chương trước vào bài toán cụ thể. Đặc biệt, trong mỗi
chương tài liệu đều có phần thực hành trên phần mềm Rational Rose để độc giả có thể áp dụng
ngày công cụ mới, kỹ thuật mới vào giải quyết vấn đề của riêng họ. Phần phụ lục trình bày một
số mã trình trong một vài ngôn ngữ thông dụng tương ứng với các nhóm phần tử trong biểu đồ UML…
Hiện nay phần lớn các bạn sinh viên đại học năm cuối hoặc các kỹ sư tin học mới ra trường
đều gặp khó khăn khi nhận nhiệm vụ xây dựng hệ thống phần mềm mới hay nâng cấp phần mềm
có sẵn. Các bạn thường không biết bắt đầu từ đâu và làm như thế nào để có được phần mềm và
phần mềm tốt, nói cách khác là còn thiếu phương pháp. Do vậy, quyển sách này có thể là tài liệu
tham khảo tốt cho các bạn sinh viên và các kỹ sư tin học.
Quyển sách này được hình thành từ nội dung bài giảng của tác giả về chủ đề Phát triển phần
mềm hướng đối tượng băng UML cho một số lớp sinh viên đại học. Trong quá trình biên soạn tác
giả đã nhận được nhiều ý kiến đóng góp quí báu của các chuyên gia trong lĩnh vực này. Trước hết
tác giả xin chân thành cảm ơn PGS. TSKH Nguyễn Xuân Huy, CN Ngô Trung Việt, TS Đặng
Thành Phu, TS Đoàn Văn Ban, ThS Nguyễn Sơn Hải và các đồng nghiệp khác công tác tại Viện
Công nghệ Thông tin, Trung tâm Khoa học Tự nhiên và Công nghệ Quốc gia đã đọc và cho ý
kiến sửa chữa bản thảo.
Mặc dù đã rất cố gắng nhưng tài liệu này không tránh khỏi các sai sót. Tác giả xin chân thành
cám ơn mọi ý kiến đóng góp của bạn đọc.
Phát triển phần mềm bằng UML trang | 5
Địa chỉ liên lạc: Viện Công nghệ Thông tin, Trung tâm Khoa học Tự nhiên và Công nghệ
Quốc gia. Email: dvduc@ioit.ncst.ac.vn
Hà nội, tháng 02 năm 2002 TÁC GIẢ
Phát triển phần mềm bằng UML trang | 6 CHƯƠNG 1 MỞ ĐẦU
Phát triển phần mềm ngày càng trở nên phức tạp. Thay đổi giao diện từ các xâu ký tự sang
giao diện đồ họa xu thế sự kiện; kiến trúc hệ thống đa tầng khách/chủ; cơ sở dữ liệu (CSDL) phân
tán; Internet … làm tăng độ phức tạp của hệ thống phần mềm. Thách thức trong hai mươi năm tới
của xây dựng hệ thống phần mềm không phải là tốc độ thực hiện chương trình, kinh phí hay sức
mạnh của nó mà vấn đề sẽ là độ phức tạp (Sun Microsystem). Kẻ thù của chúng ta là độ phức tạp,
ta phải loại bỏ chúng (Jan Bean). Vậy, loại bỏ độ phức tạp bằng cách nào? Các phương pháp tiếp
cận hướng cấu trúc, tiệm cận hướng logic, tiếp cận hướng hướng đối tượng và tiếp cận hướng tác
tử để có thể giải quyết vấn đề này nhưng ở mức độ khác nhau.
Tổng quát thì việc xây dựng phần mềm phải quan tâm đến tổ chức, các quan hệ và cấu trúc để
hình thành được các hành vi phức tạp của hệ thống. Mọi việc khảo sát hệ thống phải được thực
hiện với mức độ trừu tượng khác nhau, từ các chi tiết đến tổ chức tổng thể. Do vậy, xây dựng
phần mềm là thực hiện dãy tương tác chia nhỏ và hợp nhất. Chia nhỏ để hiểu rõ vấn đề và hợp
nhất để xây dựng hệ thống. Tiến trình chia nhỏ (tách) đã có truyền thống và tuân thủ các tiêu chí
chức năng. Các chức năng của hệ thống được nhận diện, sau đó chúng được tách thành các chức
năng con. Tiến trình này được thực hiện lặp đi lặp lại cho đến khi có được các thành phần đơn
giản đến mức chúng được biểu diễn trực tiếp bằng các hàm hay thủ tục của ngôn ngữ lập trình
(hình 1.1). Cách tiếp cận này được gọi là tiếp cận hướng chức năng (hay còn gọi là thủ tục, truyền
thống). Người phát triển phần mềm sẽ tập trung vào các nhiệm vụ điều khiển và tách thuật toán
lớn thành các thuật toán nhỏ. Khối chính để hình thành phần mềm ở đây là các hàm hay thủ tục. Chức năng chính Chức năng con 1 Chức năng con 2 Chức năng Chức năng Chức năng Chức năng con 1.1 con 1.2 con 2.1 con 2.2
Hình 1.1 Tiếp cận hướng chức năng
Kiến trúc phần mềm được cài đặt theo cách tiếp cận vừa mô tả trên sẽ phản ảnh các chức
năng hệ thống. Tiếp cận trên cơ sở chức năng và cơ chế phân cấp chỉ cho lại kết quả mong muốn
khi các chức năng được nhận biết đầy đủ và nó không được thay đổi theo thời gian. Thực tế lại
không đúng như vậy vì trong rất nhiều trường hợp, phát triển phần mềm không bao giờ kết thúc
hoàn toàn, luôn có cái gì đó phải sửa đổi, nâng cấp. Sửa đổi hay mở rộng hệ thống quá nhiều làm
cho chương trình khác xa quan niệm ban đầu. Do đó cần phải có phương pháp mới cho khả năng
làm chủ được độ phức tạp, giúp quản lý được chất lượng, độ tin cậy phần mềm ngày cả khi cấu
trúc bị tách ra hay tiến hóa.
Phát triển phần mềm bằng UML trang | 7 Mở Cửa Phòng thang máy Lên tầng 2 Bật đèn Đèn Công tắc
Hình 1.2 Tiếp cận hướng đối tượng
Quan điểm hướng đối tượng hình thành trên cơ sở tiếp cận hướng hệ thống, nó coi hệ thống
như thực thể được tổ chức từ các thành phần mà chỉ được xác định khi nó thừa nhận và có quan
hệ với các thành phần khác. Phương pháp tách vần đề đang giải quyết để hiểu chúng ở đây không
chỉ dựa trên cơ sở cái hệ thống làm mà còn dựa trên việc tích hợp hệ thống là cái gì với hệ thống
làm gì
. Thí dụ trên hình 1.2 mô tả các đối tượng và các quan hệ giữa các đối tượng của hệ thống
thang máy. Theo cách tiếp cận này thì các chức năng hệ thống được biểu diễn thông qua cộng tác
của các đối tượng; việc thay đổi, tiến hóa chức năng sẽ không ảnh hưởng đến cấu trúc tĩnh của
phần mềm. Sức mạnh của tiếp cận hướng đối tượng là việc tách (chia) và nhập (thống nhất) được
thực hiện nhờ tập phong phú các cơ chế tích hợp của chúng; khả năng thống nhất cao những cái
nó đã được tách ra để xây dựng các thực thể phức tạp từ các thực thể đơn giản.
Tiếp cận hướng đối tượng đã tỏ rõ lợi thế khi lập trình các hệ thống phức tạp. Những người
phát triển phần mềm nhận thấy rằng phát triển phần mềm hướng đối tượng sẽ cho lại phần mềm
thương mại chất lượng cao: tin cậy, dễ mở rộng và dễ sử dụng lại, chạy trơn tru, phù hợp với yêu
cầu người dùng đang mong đợi. Chúng còn cho khả năng hoàn thành phần mềm đúng kỳ hạn và
không vượt quá khinh phí dự kiến ban đầu.
Ngoài phương pháp cấu trúc và phương pháp hướng đối tượng vừa đề cập trên đây, người ta
còn thấy một số phương pháp khác được các nhà tin học đề xuất cho công nghệ phần mềm như
tiếp cận hướng logic, tiếp cận hướng tác tử (agent)… Phương pháp tiếp cận hướng logic mô tả
quan hệ “logic” giữa tính chất và thuộc tính của các sự kiện nhờ các cơ sở lập luận và luật suy
diễn biểu diễn bởi những gợi ý trước. Tiếp cận này hình thành trên cơ sở ngôn ngữ lập trình
Prolog. Phương pháp tiếp cận tác tử là kiểu mở rộng của tiếp cận hướng đối tượng. Gần đây nó
được giới công nghiệp rất quan tâm. Các đơn vị cơ sở để phát triển hệ thống ở đây là các tác tử,
nó là modun phần mềm. Đối tượng được khởi động khi nhận thông điệp từ bên ngoài và tác tử
tích cực làm việc hay không phụ thuộc vào môi trường chứa nó. Tuy nhiên, phương pháp hướng
đối tượng đang ngày cành được nhiều người sử dụng hơn cả.
1.1 LỊCH SỬ HƯỚNG ĐỐI TƯỢNG
Khái niệm hướng đối tượng hình thành từ ngôn ngữ lập trình Simula, nhưng nó chỉ trở nên
quen thuộc khi xuất hiện ngôn ngữ C++SmallTalk vào cuối những năm 80 của thế kỳ XX. Sơ
đồ trong hình 1.3 chỉ ra thời gian xuất hiện và quan hện của các ngôn ngữ lập trình [OES00].
Trong hình vuông với góc tròn là tên các ngôn ngữ lập trình hướng đối tượng.
Phát triển phần mềm bằng UML trang | 8 Fortran LISP Algol 1960 Cobol PL/1 Simula Smalltalk-72 1970 Prolog Smalltalk-74 Pascal Smalltalk-76 C Smalltalk-78 Loops Smalltalk-80 1980 Objective C Ada C++ ObjectPascal CLOS Eiffel 1990 Ada 9 ObjectCobol Java Hướng đối tượng
Không hướng đối tượng
Hình 1.3 Các ngôn ngữ lập trình
Khi các ngôn ngữ hướng đối tượng được sử dụng rộng rãi thì nhu cầu có phương pháp phát
triển phần mềm hướng đối tượng trở nên cấp bách. Vào đầu những năm 90 của thế kỷ XX đã xuất
hiện các phương pháp hướng đối tượng sau đây: Phương pháp Booch, OMT (Object Modeling
Technique
), OOSE (Object Oriented Software Engineering)/Objectory, FusionCoad/Yourdon.
Mỗi phương pháp có ký pháp, tiến trình và công cụ hỗ trợ riêng. Chúng đều có ưu điểm và nhược
điểm riêng. Người sử dụng rất khó khăn để chọn cho mình một phương pháp phù hợp. Do nhận
biết đươc các vấn đề này, vào năm 1994 các tác giả của các phương pháp này đã hợp tác nhằm
tạo ra phương pháp mới. Bắt đầu là sự thống nhất phương pháp Booch với OMT-2 của Rumbagh
để hình thành Unified Method 0.8 tại Rational Rose Corporation. Tháng 6 năm 1995, Ivar
Jacobson
(tác giả của OOSE/Objectory) gia nhập với họ. Từ thời điểm này, nhóm phát triển
phương pháp hướng đối tượng nói trên cho rằng nhiệm vụ của họ là tạo ra ngôn ngữ mô hình hóa
thống nhất cho cộng đồng hướng đối tượng. Do vậy, họ đã đổi tên công việc của mình thành
Unified Modeling Language – UML (Ngôn ngữ mô hình hóa thông nhất). Booch, Rumbaugh
Jacobson đã đưa ra nhiều phiên bản UML, trong đó phiên bản UML 0.9 xuất hiện năm 1995,
UML xuất hiện vào năm 1997. Phần lớn UML được xây dựng trên nền tảng của các phương pháp
Booch, OMT và OOSE, nhưng UML còn bao gồm cả các khái niệm có nguồn gốc từ các phương
pháp khác như David Harel, Gamma – Helm – Johnson – VlissidesFusion. UML còn là kết
quả của sự đóng góp từ các hãng lớn như Digital Equipment Corporation (DEC), Hewlett –
Phát triển phần mềm bằng UML trang | 9
Packard (HP), I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft,
Oracle, Rational Software Corporation, Texas Instrument, Taskon, ObjectTime và Unisys. Phiên
bản UML 1.1 đã được đệ trình lên OMG (Object Management tháng 11-1997. Phiên bản UML
1.3 xuất hiện vào năm 1999. Phiên bản UML 1.4 xuất hiện vào tháng 2-2000.
1.2 MỘT SỐ KHÁI NIỆM CƠ BẢN
Phần này trình bày một số khái niệm cơ bản áp dụng trong phân tích và thiết kế hướng đối tượng.
Phương pháp (method). Phương pháp (hay phương thức) là cách thức cấu trúc các suy nghĩ
và hành động của con người. Nó cho biết chúng ta phải làm cái gì, làm như thế nào, làm khi nào
và tại sao phải làm như vậy để hình thành hệ thông phần mềm.
Đối thương (object). Theo nghĩa thông thường thì đối tượng là người, vật hay hiện tượng mà
con người nhằm vào trong suy nghĩ, trong hành động [PHE96]; là bất kỳ cái gì nhìn thầy và sờ
mó được. Trong phương pháp hướng đối tượng thì đối tượng là trừu tượng cái gì đó trong lĩnh
vực vấn đề hay trong cài đặt của nó; phản ảnh khả năng hệ thống lưu giữ thông tin về nó và tương
tác với nó; gói các giá trị thuộc tính và các dịch vụ (phương thức, phương pháp) [OCAD91].
Lớp (class). Theo nghĩa thông thường thì lớp là nhóm của nhiều người hay vật có tính tương
tự nhất định hay đặc điểm chung (từ điển Webster’s). Trong phương pháp hướng đối tượng thì
lớp là mô tả một hay nhiều đối tượng, mô tả tập thống nhất các thuộc tính và phương thức. Nó
còn có thể mô tả cách tạo đối tượng mới trong lớp như thế nào [COAD91].
Trừu tượng (abstract). Trừu tượng là nguyên lý bỏ qua những khía cạnh của chủ thể
(subject) không liên quan đến mục đích hiện tại để tập trung đầy đủ hơn vào các khía cạnh còn
lại. Như vậy có thể nói rằng trừu tượng là đơn giản hóa thế giới thực một cách thông minh. Trừu
tượng cho khả năng tổng quát hóa và ý tưởng hóa vấn đề đang xem xét. Chúng loại bỏ đi các chi
tiết dư thừa mà chỉ tập chung và các điểm chính, cơ bản [LIBE98].
Mô hình (model). Nếu phải xây ngôi nhà thì chắc chắn không làm đơn giản là cứ mua gạch,
sắt thép về lắp dần đến khi hình thành nhà ở, mà phải có kế hoạch chi tiết và thiết kế trước. Nói
cách khác là phải xây dựng mô hình. Tương tự như vậy, trong lĩnh vực phần mềm, mô hình là kế
hoạch chi tiết của hệ thống, nó giúp ta lập kế hoạch trước khi xây dựng hệ thống. Mô hình giúp ta
khẳng định tính đúng đắn của thiết kế, phù hợp yêu cầu, hệ thống vẫn giữ vững khi yêu cầu người
dùng thay đổi. Phương pháp hướng đối tượng xem một phần của thế giới thực như các đối tượng.
Máy điện thoại, xe ô tô, con người … là các đối tượng. Các đối tượng này lại bao gồm nhiều đối
tượng khác như xe ô tô có tay lái, bánh xe, … con người có tay, chân, mắt, mũi … Đối tượng thế
giới thực có thế có cấu trúc rất phức tạp, làm cho con người khó nhận thức được chúng. Trong
cuộc sống hàng ngày ta đơn giản hóa đối tượng khi suy nghĩ, hay nói cách khác ta làm việc với
mô hình. Thí dụ, quả địa cầu là mô hình của trái đất. Mô hình chỉ lựa chọn một vài khía cạnh có ý
nghĩa cho việc thực hiện công việc cụ thể nào đó. Chúng cho phép dự đoán, hiểu các khía cạnh
của vấn đề đang quan tâm. Thí dụ khi làm việc với đối tượng con người: trong sổ lương có tên, số
bảo hiểm xã hội và tiền lương. Nhưng trong sổ điện thoại lại chỉ có tên, số điện thoại và địa chỉ.
Vậy, mô hình là bức tranh hay mô tả của vấn đề đang được cố gắng giải quyết hay biểu diễn. Mô
hình còn có thể là mô tả chính giải pháp. Trong phát triển phần mềm, thay cho đối tượng thực, ta
sẽ làm việc với biểu tượng (hình 1.4). Tiến trình phát triển phần mềm là làm giảm một số đặc
trưng của đối tượng để hình thành mô hình: làm giảm độ phức tạp bằng mô hình trừu tượng.
Phát triển phần mềm bằng UML trang | 10
Hình 1.4 Mô hình thế giời thực
Phương pháp luận (methodology). Phương pháp luận mô tả cách thức suy nghĩ về phần
mềm và phát triển phần mềm. Nó bao gồm ngôn ngữ mô hình hóa metamodel (mô hình của mô
hình) và tiến trình. Phương pháp luận khác với phương pháp. Phương pháp luận là nghiên cứu
phương pháp. Metamodel mô tả hình thức các phần tử mô hình, cú pháp và ngữ nghĩa của các ký pháp trong mô hình.
Lĩnh vực vấn đề (domain problem). Mục tiêu của tiếp cận hướng đối tượng là mô hình hóa
các đặc tính tĩnh và động của môi trường, nơi xác định yêu cầu phần mềm. Môi trường này được
gọi là lĩnh vực vấn đề. Vấn đề là câu hỏi đặt ra để giải quyết hoặc xem xét. Lĩnh vực là không
gian (vùng) của các hoạt động hoặc ảnh hưởng. Nó là vùng tác nghiệp hay kinh nghiệm của con
người trong đó phần mềm được sử dụng. Vậy, lĩnh vực vấn đề là vùng mà ta đang cố gắng xem
xét. Thí dụ của lĩnh vực vấn đề có thể là tài chính, giáo dục,…
Phân tích. Phân tích là tách, chia nhỏ tổng thể thành các phần để tìm ra đặc tính, chức năng,
quan hệ… của chúng (từ điển Webster’s). Khái niệm phân tích trong tiếp cận hướng đối tượng là
thực hiện nghiên cứu lĩnh vực vấn đề, dẫn tới đặc tả hành vi quan sát từ ngoài và các thông báo
nhất quán, hoàn chỉnh, khả thi của những cái cần [COAD91]. Phân tích hướng đối tượng tập
trung vào tìm kiếm, mô tả các đối tượng (khái niệm) trong lĩnh vực vấn đề. Thí dụ hệ thống thư
viện có khái niệm Sách, Thư viện …
Thiết kế. Là tập tài liệu kỹ thuật toàn bộ, gồm có bản tính toán, bản vẽ… để có thể theo đó
mà xây dựng công trình, sản xuất thiết bị, làm sản phẩm… [PHE96]. Khái niệm phân tích trong
tiếp cận hướng đối tượng là thực hiện đặc tả các hành vi bên ngoài, bổ sung chi tiết nếu cần thiết
để cài đặt hệ thống trên máy tính, bao gồm tương tác người - máy, quản lý nhiệm vụ, quản lý dữ
liệu [COAD91]. Thiết kế hướng đối tượng tập trung vào xác định đối tượng phần mềm logic sẽ
được cài đặt bằng ngôn ngữ hướng đối tượng.
Xây dựng (lập trình) hướng đối tượng: là thiết kết các modun sẽ được cài đặt. Thí dụ lớp
Book sẽ được cài đặt bằng C++, Java … như thế nào.
Mô hình hóa (modeling). Khái niệm mô hình hóa thường được sử dụng đồng nghĩa với phân
tích, đó là việc thực hiện tách hệ thống thành các phần tử đơn giản để dễ hiểu. Trong khoa học
máy tính, mô hình hóa bắt đầu từ mô tả vấn đề, sau đó là mô tả giải pháp vấn đề. Các hoạt động
này còn được gọi là phân tích và thiết kế. Khi thu thập yêu cầu cho hệ thông, ta phải tìm ra nhu
cầu tác nghiệp của người dùng và ánh xạ chúng thành yêu cầu phần mềm sao cho đội ngũ phát
triển phần mềm hiểu và sử dụng được chúng. Tiếp theo là khả năng phát sinh mã trình từ các yêu
cầu này, đồng thời đảm bảo rằng các yêu cầu phải phù hợp với mã trình vừa phát sinh và dễ dàng
chuyển đổi mã trình ngược lại thành yêu cầu. Tiến trình này được gọi là mô hình hóa.
Phát triển phần mềm bằng UML trang | 11
Mô hình hóa trực quan. Mô hình hóa trực quan là tiến trình lấy thông tin từ mô hình và hiển
thị đồ họa bằng tập các phần từ đồ họa chuẩn. Tiêu chuẩn là cốt lõi để thực hiện một trong các lợi
thế của mộ hình trực quan, đó là vấn đề giao tiếp. Giao tiếp giữa người dùng, người phát triển,
phân tích viên, kiểm tra viên, người quản lý và những người khác tham gia dự án là mục tiêu
quan trọng nhất của mô hình hóa trực quan. Tương tác này có thể được thực hiện bằng văn bản.
Nhờ mô hình trực quan mà ta có thể chỉ ra các tầng mà hệ thống làm việc, bao gồm tương tác
giữa người dùng với hệ thống, tương tác giữa các đối tượng trong hệ thống hay giữa các hệ thông
với nhau. Sau khi tạo mô hình, ta có thể chỉ ra từng phần quan tâm. Thí dụ, người dùng có thể
quan sát tương tác giữa họ với hệ thông từ mô hình, phân tích viên quan sát tương tác các đối
tượng từ mô hình, người phát triển sẽ quan sát được đối tượng mà họ sẽ phát triển… Các nhà tin
học đã rất cố gắng để hình thành ký pháp mô hình hóa trực quan. Một số ký pháp quen thuộc là
của Booch, OMT và UML. Phần mềm công cụ Rational Rose 2000 trợ giúp các ký pháp này.
Tóm lại, lý do cơ bản để mô hình hóa là: xây dựng mô hình để hiểu sâu sắc hơn về hệ thống đang
được xây dựng. Chúng ta xây dưng mô hình cho các hệ thống phức tạp vi ta không thể hiểu nó
như tổng thể. Nhờ mô hình hóa ta sẽ đạt được các mục tiêu sau:
Mô hình giúp ta hiển thị hệ thống như chính nó hay như cách mà ta muốn nó hiển thị.
Mô hình cho phép ta đặc tả cấu trúc hay hành vi hệ thống.
Mô hình cho ta mấu để hướng đẫn trong việc xây dựng hệ thống.
Mô hình giúp ta làm tài liệu cho các quyết định khi phân tích thiết kế hệ thống.
1.3 NGUYÊN TẮC QUẢN LÝ ĐỘ PHỨC TẠP
Như đã trình bày trên thì nhiệm vụ quan trọng nhất của người xậy dựng hệ thống phần mềm
ngày nay là quản lý được độ phức tạp. Theo CoadYourdon [COAD91] thì các nguyên tắc
quản lý độ phức tạp của hệ thống trong phân tích và thiết kế hướng đối tượng bao gồm các vấn đề mô tả dưới đây.
Trừu tượng hóa. Sử dụng nguyên tắc trừu tượng hóa có nghĩa là thừa nhận thế giới thực là
phức tạp; thay vì cố gắng hiểu biết toàn bộ bằng lựa chọn một phần của vấn đề. Trừu tượng bao
gồm hai loại chính: trừu tượng thủ tục (procedural) và trừu tượng dữ liệu (data). Trừu tượng thủ
tục thường được đặc trưng bởi trừu tượng chức năng/chức năng con. Chia nhỏ tiến trình xử lý
thành các bước là phương pháp cơ bản để quản lý độ phức tạp. Tuy nhiên việc chia nhỏ để tổ
chức thiết kế là khá tùy tiện và không ổn định. Trừu tượng thủ tục không phải là hình thức trừu
tượng của phương pháp hướng đối tượng. Trừu tượng dữ liệu là cơ chế mạnh, dựa trên cơ sở tổ
chức suy nghĩ và đặc tả về các nhiệm vụ của hệ thống. Trừu tượng dữ liệu là nguyên tắc xác định
kiểu dữ liệu cho các thao tác áp dụng cho đối tượng, với ràng buộc là các giá trị lưu trữ trong đối
tượng chỉ được sửa đổi hay quan sát thông qua các thao tác đó. Người thiết kế áp dụng trừu tượng
dữ liệu đễ xác định thuộc tính và phương thức xử lý thuộc tính xâm nhập thuộc tính thông qua phương thức.
Bao bọc (encapsulation). Còn gọi là dấu thông tin. Nguyên tắc này dựa trên nền tảng là mỗi
thành phần của chương trình được bao bọc hay dấu quyết định thiết kế đơn lẻ. Giao diện tời mỗi
mođun được hình thành sao cho ít nhìn thấy các công việc bên trong. Bao bọc làm tăng tính sử
dụng lại khi phát triển hệ thống mới. Bao bọc các nội dung liên quan với nhau làm giảm lưu
lượng giữa các phần của hệ thông khi hoạt đông.
Kế thừa (inheritance). Cơ chế biểu diễn tính tương tự của các lớp, đơn giản hóa định nghĩa
những lớp tương tự từ các lớp khác đã định nghĩa trước. Nó miêu tả tổng quát hóa và đặc biệt
hóa, tạo ra các thuộc tính và phương thức chung cho các lớp phân cấp. Nguyên tắc này hình thành
nền tảng của kỹ thuật biển diễn những cái chung của các lớp.
Phát triển phần mềm bằng UML trang | 12
Kết hợp (association). Là hợp nhất hay liên kết các ý tưởng (từ điển Webster’s). Sử dụng kết
hợp để gắn một vài phần tử xảy ra vào thời điểm cụ thể hay dưới điều kiện tương tự nhau. Thí dụ,
gắn xe cộ vào chủ xe…
Giao tiếp bằng thông điệp. Thông điệp là giao tiếp (viết nói) được trao đổi giữa người với
người (từ điển Webster’s). Giao tiếp bằng thông điệp liên quan đến tính bao bọc trong đó các chi
tiết của hành động sẽ thực hiện được bao bọc trong nơi nhận thông điệp.
Đa hình (polymorphism). Đa hình là các thông điệp đồng âm được gứi đến các đối tượng của
lớp khác nhau để khởi sự những hành vị khác nhau [OEST00].
Ảnh hưởng của phương pháp tổ chức. Bách khoa toàn thư Britannica cho rằng để hiểu thế
giới thực, con người sử dụng ba phương pháp tổ chức suy nghĩ như sau: (1) Phân biệt đối tượng
cụ thể với các thuộc tính của nó; thí dụ, phân biệt cây với kích thước của nó hoặc quan hệ không
gian với các đối tượng khác. (2) Phân biệt giữa toàn bộ đối tượng với thành phần của nó; thí dụ,
phân biệt cây với cành cây.(3) Phân biệt giữa các lớp đối tượng với nhau; thí dụ, phân biệt lớp
cây với lớp đất đá. Cả ba phương pháp tổ chức này được áp dụng và chúng cho cái nhìn rõ ràng
hơn trong lĩnh vực vấn đề và trách nhiệm của hệ thống khi tiếp cận hướng đối tượng.
Quy mô (scale). Nguyên tắc áp dụng qui tắc tổng thể-thành phần để quan sát cái gì đó rất lớn được gọi là qui mô.
Phân lớp hành vi. Sau khi đã tìm ra ảnh hưởng tổ chức suy nghĩ, ta phải hiểu rõ các hành vi
của đối tượng. Hành vi là những phản ứng, cách cư xử biểu hiện ra ngoài. Phân lớp hành vi bao
gồm ba loại sau: (a) trên cơ sở tạo ra kết quả tức thì; (b) sự tương tự của lịch sử tiến hóa (thay đổi
theo thời gian) và (c) sự tương tự của các chức năng.
Mẫu (pattern). Năm 1977 Christopher Alexander [MULL97] đã đề xuất khái niệm mẫu khi
thiết kế hệ thống theo quan điểm hướng đối tượng. Mẫu là tổ hợp đối tượng và lớp. Lợi thế của
thiết kế theo mẫu cho phép xử lý các quan niệm về kiến trúc ở mức cao hơn đối tượng vì chúng là
cụ thể trong lĩnh vực ứng dụng. Có thể xem mối tương ứng giữa mẫu và các đối tượng như mối
tương ứng giữa chương trình con và các dòng lệnh chương trình. Mẫu là đơn vị sử dụng lại trong
thiết kế hướng đối tượng.
1.4 NGUYÊN TẮC MÔ HÌNH HÓA
Khả năng của con người là có giới hạn khi khảo sát các vấn đề phức tạp như tổng thể. Thông
qua mô hình hóa ta sẽ giới hạn vấn đề nghên cứu bằng cách chỉ tập trung vào một khía cạnh của
vấn đề vào một thời điểm. Đó là quan điểm chia để trịEdsger Dijkstra đã phát biểu từ vài năm
trước đây: Tấn công vào vấn đề khó bằng cách chia nhỏ nó thành dãy các vấn đề nhỏ hơn mà ta
có thể giải quyết được
. Mô hình hóa sẽ làm tăng tri thức của con người. Việc chọn mô hình đúng
cho khả năng mô hình làm việc ở mức trừu tượng cao. Mô hình hóa đã có lịch sử lâu đời trong
mọi lĩnh vực kỹ nghệ. Người ta đã rút ra bốn nguyên tắc cơ bản sau [BRJ99]:
1. Việc chọn mô hình nào để tạo lập có ảnh hưởng sâu sắc đến cách giải quyết vấn đề và
cách hình thành các giải pháp.
Các mô hình đúng sẽ làm sáng tỏ vấn đề phát triển phức tạp nhất, cho cái nhìn thấu đáo
vấn đề cần giải quyết. Mặt khác, mô hình tồi sẽ làm ta lạc lối, làm cho ta chỉ tập trung vào
các nhiệm vụ không thích hợp. Việc chọn mô hình cho hệ thống phần mềm tác động mạnh
đến cách quan sát thế giới. Nếu xây dựng hệ thống theo cách nhìn của người phát triển
CSDL thì họ sẽ tập trung vào mô hình quan hệ thực thể, đẩy hành vi vào trigger (khởi sự
hành động) và thủ tục lưu trữ. Dưới con mắt của người phân tích cấu trúc, mô hình tập
trung vào thuật toán và luồng dữ liệu từ tiến trình này sang tiến trình khác. Dưới con mắt
của người phát triển hướng đối tượng, hệ thống có kiến trúc tập trung vào vô số lớp và các
Phát triển phần mềm bằng UML trang | 13
mẩu thử tương tác giữa các đối tượng lớp. Một cách tiếp cận trên có thể phù hợp cho mỗi
lớp ứng dụng hay thói quen phát triển hệ thống. Tuy nhiên kinh nghiệm cho thấy rằng tiếp
cận hướng đối tượng là ưu việt nhất cho mọi kiến trúc. Mỗi cách nhìn thế giới sẽ dẫn đến
sự khác nhau về giá cả và lợi nhuận của hệ thống được xây dựng.
2. Mỗi mô hình biểu diễn hệ thống với mức độ chính xác khác nhau.
Khi xây dựng nhà cao tầng, đôi khi ta phải đứng xa hàng trăm mét để quan sát tổng thể.
Tương tự với các mô hình phát triển phần mềm, đôi khi ta chỉ cần có mô hình nhanh, đơn
giản về giao diện người dùng; đôi khi lại phải quan sát sâu hơn đến mức các bit khi giải
quyết vấn đề tắc nghẽn đường truyền hệ thống. Trong mọi trường hợp nói trên thì các loại
mô hình tốt nhất là mô hình cho phép ta lựa chọn mức độ chi tiết khác nhau, phụ thuộc vào
ai sẽ là người quan sát và tại sao họ lại cần quan sát nó. Người phân tích và người sử dụng
cuối cùng muốn tập trung vào câu hỏi cái gì?, người phát triển sẽ tập trung trả lời câu hỏi
như thế nào?. Cả hai muốn biểu diễn hệ thống ở mức độ chi tiết khác nhau và vào thời điểm khác nhau.
3. Mô hình tốt nhất phải là mô hinh phù hợp với thế giới thực.
Mô hình càng gần với cách suy nghĩ của ta về thế giới thực thì càng dễ dàng quản lý độ
phức tạp. Nếu mô hình vật lý của ngôi nhà mà không đáp ứng cách sử dụng của các vật liệu
có trên thị trường thì giá trị của mô hình đó chỉ có hạn. Nếu giả thiết của mô hình toán học
của con tàu vũ trụ là điều kiện lý tưởng và công nghệ hoàn hảo thì sẽ loại bỏ các đặc điểm
nguy hiểm tiềm tàng của tàu vũ trụ thực. Tốt nhất là phải có mô hình kết nối rõ ràng với thế
giới thực. Mọi mô hình đều đơn giản hóa thế giới thực, do vậy phải đảm bảo tiến trình đơn
giản hóa sẽ không loại bỏ đi các chi tiết quan trọng. Với phần mềm, trong các kỹ thuật phân
tích cấu trúc thì mô hình phân tích và mô hình thiết kế hệ thống sẽ được tách biệt nhau.
Thiếu cầu nối giữa hại loại mô hình này, dẫn tới hệ thống sẽ được hiểu và xây dựng khác
nhau vào các thời điểm khác nhau. Trong hệ thống hướng đối tượng, có khả năng liên kết
mọi quan sát tương đối độc lập vào toàn thể.
4. Không mô hình nào là đầy dủ. Mỗi hệ thống thường được tiếp cận thông qua tập mô hình
gần như độc lập nhau.
Khi xây dựng tòa nhà, không có một bản thiết kế nào có thể bộc lộ toàn bộ chi tiết của
nó. Ít nhất thì ta phải có thiết kế các tầng, thiết kế cầu thang, thiết kế hệ thông điện, nước,
thiết kế hệ thống cứu hỏa,… Khái niệm gần như độc lập nhau ở đây có nghĩa rằng các mô
hình này được hình thành và nghiên cứu tách biệt nhưng nó vẫn có quan hệ với nhau. Thí
dụ, ta có thể thiết kế hệ thông điện, nước một cách độc lập, nhưng trong quá trình thiết kế
này thì phải quan tâm đến thiết kế của các tầng nhà cho nó phù hợp. Tương tự trong hệ
thống phần mềm hướng đối tượng, để hiểu kiến trúc hệ thống phần mềm ta cần một vài
quan sát bổ trợ nhau: quan sát trường hợp sử dụng diễn tả yêu cầu hệ thống, quan sát thiết
kế (thu thập từ vựng của không gian vấn đề và không gian giải pháp), quan sát tiến trình
(mô hình hóa phân bổ tiến trình và luồng của hệ thống), quan sát cài đặt (tập trung vào hiện
thực vật lý của hệ thống), quan sát triển khai (tập trung vào các nhiệm vụ kỹ nghệ của hệ
thống). Mỗi quan sát đều có khía cạnh kiến trúc hay hành vi riêng. Tập hợp lại các quan sát
này có khả năng biểu diễn được kế hoạch chi tiết của phát triển phần mềm.
Phục thuộc vào bản chất của hệ thống mà mỗi mô hình có tầm quan trọng khác nhau. Thí dụ,
với hệ thống quản lý nhiều dữ liệu thì các mô hình quan sát thiết kế tĩnh sẽ quan trọng hơn. Nếu
hệ thống phải có nhiều giao diện người dùng thì các quan sát trường hợp sử dụng tĩnh và động
đều rất quan trọng. Hệ thống thời gian thực coi trọng quan sát tiến trình động. Cuối cùng, hệ
thống phân tán (các ứng dụng Web) coi mô hình triển khai và cài đặt là quan trọng nhất.
Phát triển phần mềm bằng UML trang | 14
1.5 KHÁI QUÁT VỀ TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM
Hệ thống là tổ hợp phần cứng, phần mềm cung cấp giải pháp cho vấn đề cần giải quyết. Ngày
nay, trong khi hệ thống quá phức tạp mà tri thức lại quá chuyên ngành cho nên một người không
thể biết mọi khía cạnh tác nghiệp. Một người không thể hiểu đồng thời mọi vấn đề của hệ thống:
từ thiết kế giải pháp, viết mã trình, triển khai trên nền phần cứng đến đảm bảo chắc chắn mọi
thành phần phần cứng đều làm việc tốt với nhau. Tiến trình phát triển phần mềm phức tạp phải
được nhiều người thực hiện. Trước hết là khách hàng, đó là người đưa ra vấn đề cần giải quyết.
Phân tích viên làm tài liệu vấn đề của khách hàng và chuyển nó tới người phát triển, đó là những
lập trình viên xây dựng phần mềm để giải quyết, kiểm tra và triển khai nó trên các phần cứng.
Phát triển phần mềm có thể được thực hiện bằng nhiều con đường khác nhau. Các dự án có thể
tuân thủ một trong các loại tiến trình lặp và tăng dần. Mỗi loại có ưu và nhược điểm riêng.
1.5.1 - Các phương pháp mô hình hóa hệ thống
1.5.1.1 - Mô hình thác nước
Từ đã lâu, hệ thống phần mềm thường được mô hình hóa theo phương pháp thác nước
(waterfall). Phương pháp này được Royce mô tả từ năm 1970 (hình 1.5). Trong mô hình này phát
triển phần mềm là dãy các pha liên tiếp từ phân tích yêu cầu, thiết kế hệ thống, phát triển hệ
thống đến thử nghiệm và triển khai hệ thống. Pha sau chỉ được bắt đầu khi pha trước đã hoàn thành. Phân tích Thiết kế Viết chương trình Thử nghiệm
Hình 1.5 Mô hình thác nước
Để xây dựng được hệ thống phần mềm ta phải mô tả được vấn đề (problem) và yêu cầu
(requirement) của khách hàng bằng trả lời các câu hỏi như vấn đề của hệ thống là gì?hệ thống
cần phải làm gì?
. Pha phân tích của tiến trình tập trung vào việc điều tra vấn đề thay cho việc tìm
ra giải pháp. Thí dụ, khi xây dựng hệ thống quản lý thư viện thì phân tích có nghĩa là tìm kiếm
tiến trình tác nghiệp nào liên quan đến việc sử dụng nó. Để có tài liệu phân tích đầy đủ và đúng
đắn thì phải phân tích lĩnh vực vấn đề. Lĩnh vực vấn đề là khu vực tác nghiệp của con người,
trong đó phần mềm được xây dựng. Thí dụ, hệ thống phần mềm thư viện trong trường học lĩnh
vực là giáo dục, sinh viên… Pha thiết kế tập trung vào giải pháp logic, thí dụ phải trả lời câu hỏi
hệ thống đang xây dựng thực hiện các yêu cầu và các ràng buộc như thế nào?. Trong hệ thống
quản lý thư viện thì pha này thực hiện trả lời câu hỏi thu thập, ghi chép việc mượn, trả sách hay
tạp chí như thế nào?
. Pha cài đặt (viết trương trình) tập trung vào mà hóa trương trình.
Phát triển phần mềm bằng UML trang | 15 Phân tích Kiểm tra chức năng Thiết kế Kiểm tra tích hợp Viết chương trình Kiểm tra mô đun Chương trình ứng dụng
hình 1.6 Mô hình chữ “V”
Những người tham gia vào xây dựng hệ thống phần mềm như khách hàng, phân tích viên, lập
trình viên… theo phương pháp thác nước rất ít khi cùng làm việc với nhau để chia sẽ các hiểu
biết sâu sắc vấn đề đang giải quyết. Do vậy họ mất rất nhiều thời gian để xây dựng được hệ thống phần mềm.
Chu kỳ thác nước còn được biểu diễn dưới dạng chữ V (hình 1.6), trong đó pha kiểm tra được
thực hiện đồng thời với các pha phát triển khác. Thí dụ, kiểm tra chức năng được thực hiện trong
quá trình phân tích, kiểm tra tích hợp trong pha thiết kế, kiểm tra mođun trong pha mã hóa chương trình.
1.5.1.2 - Mô hình lặp và tăng dần
Mô hình thác nước không cho ta đi ngược lại chuỗi trình tự phát triển phần mềm như trình
bày trên. Bắt đầu dự án, theo mô hình này thì ta phải xác định toàn bộ yêu cầu, nó được thực hiện
thông qua bàn bạc với người sử dụng hệ thống và khảo sát chi tiết các tiến trình tác nghiệp. Thực
tế thì khi kết thúc công việc, may mắn lắm chỉ 80% nhu cầu hệ thống là được thu thập trong pha
phân tích. Tiếp theo là pha thiết kế, nơi kiến trúc hệ thống sẽ được xác định. Pha này tập trung
vào những nhiệm vụ như đặt chương trình ở đâu, cần phần cứng nào… Trong khi thực hiện công
việc này, ta có thể tìm ra một số nhiệm vụ mới (nhu cầu mới) của hệ thống. Do đó, xuất hiện nhu
cầu đi trở lại người sử dụng để trao đổi, bàn bạc về nó; có nghĩa rằng chúng ta phải trở lại pha
phân tích. Sau khi đi lại vài lần như vậy ta mới chuyển đến pha phát triển để bắt đầu lập trình hệ
thống. Khi mã hóa chương trình, ta phát hiện ra rằng một vài quyết định khi thiết kế là không thể
cài đặt. Vậy ta lại phải trở lại pha thiết kế xem xét lại các nhiệm vụ. Sau khi mã hóa xong, pha
kiểm tra bắt đầu. Trong khi kiểm tra ta nhận thấy rằng một vài yêu cầu chưa đủ chi tiết, giải thích
nhầm lẫn có thể xảy ra. Vậy ta phải quay trở lại pha phân tích để xem xét lại yêu cầu. Sau vài lần
lặp ta mới có được hệ thống hoàn chỉnh và phân phát cho người sử dụng. Tác nghiệp có thể thay
đổi theo thời gian khi xây dựng hệ thống. Người sử dụng có thể phàn nàn về sản phẩm ta làm ra
không hoàn toàn như họ mong đợi. Nguyên nhân có thể là: vấn đề tác nghiêp (bussiness) thay đổi
quá nhanh; người sử dụng không truyền đạt đúng cái họ muốn; đội ngũ dự án không tuân thủ tiến
trình… Đội ngũ phát triển thường lập ra các biểu đồ và vô số tài liệu, văn bản, nhưng người dùng
không phải lúc nào cũng hiểu cái mà đội ngũ phát triển cung cấp cho họ. Giải pháp nào để tránh
các vấn đề này? Câu trả lời là mô hình hóa trực quan có thể giúp họ.
Phát triển phần mềm là tiến trình phức tạp. Nếu bỏ qua khả năng quay trở lại các bước thực
hiện trước đó thì thiết kế hệ thống có thể sai làm và thiếu sót nhu cầu. Để có thể đi ngược lại các
bước phát triển hệ thống phần mềm ta có phương pháp mới, phương pháp phát triển lặp
(iterative). Phát triển lặp là làm đi làm lại việc gì đó. Trong phương pháp này ta sẽ đi qua các
bước phân tích, thiết kế, phát triển, kiểm tra và triển khai phần mềm theo từng bước nhỏ nhiều
Phát triển phần mềm bằng UML trang | 16
lần. Cần nhớ rằng không có khả năng thu thập đầy đủ mọi yêu cầu vào công đoạn đầu tiên của dự
án. Các vấn đề có thể nảy sinh, vậy ta phải lập kế hoạch lặp trong dự án. Theo quan niệm này thì
dự án được coi là dãy các thác nước nhỏ. Mỗi thác nước được thiết kế sao cho đủ lớn để hoàn
thành thiện từng bộ phận quan trọng của dự án và đủ nhỏ để tối thiểu nhu cầu đi trở lại.
Hình 1.7 [MULL97] cho thấy mỗi chu kỳ lặp là một vòng đời thác nước nhỏ. Vòng lặp sau
được hình thành trên cơ sở tiến hóa của vòng lặp trước đó. Như vậy, các pha truyền thống được
lặp đi lặp lại và tăng dần. Trong phương pháp này, phân tích viên, người thiết kế, người lập
trình… hợp tác làm việc để hiểu biết sâu sắc hệ thống, chi sẻ các ý tưởng mới dẫn tời xây dựng
được hệ thông mạnh, phức tạp hơn. Phân tích Thiết kế Mã hóa Tích hợp
Hình 1.7 Mô hình lặp và tăng dần
Có nhiều biết thể của chu kỳ lặp. Các chu kỳ lặp này được hình thành trên cơ sở phạm vi của
dự án, độ phức tạp của vấn đề và các lựa chọn kiến trúc. Thí dụ, chu kỳ lặp hình chữ b của Birrel
N.D
Ould M.A. (1985) tập trung vào pha bảo trì hệ thống, được áp dụng cho các dự án trung
bình; chu kỳ lặp hình chữ O của Boehm B.M (1988) bao gồm lặp công việc phân tích và thiết kế.
Mô hình này cho khả năng các nhóm thực hiện song song dự án.
1.5.2 - Các pha phát triển phần mềm
Không có tiến trình phát triển phần mềm nào là phù hợp cho mọi dự án, mọi lĩnh vực ứng
dụng [MULL97]. Phần này mô tả tiến trình phát triển phần mềm tổng quát, mỗi dự án phải thích
nghi chúng với các ràng buộc riêng. Phát triển phần mềm được quan sát từ hai góc độ bổ trợ
nhau. Đó là, góc độ hỗ trợ bao gồm các khía cạnh tài chính, chiến lược, thị trường và con người
và góc độ kỹ thuật bao gồm kỹ nghệ, kiểm tra chất lượng và phương pháp mô hình hóa.
1.5.2.1 - Khía cạnh kỹ thuật trong tiến trình phát triển phần mềm
Góc nhìn kỹ thuật tập trung vào triển khai và tổ chức các hoạt động kỹ thuật để dẫn tời sản
sinh các thế hệ phần mềm khác nhau. Như trình bày trên, chu kỳ phát triển được xem như trình tự
các lặp, thông qua nó mà phần mềm tiến triển dần. Kết quả của mỗi vòng lặp là chương trình có
thể chạy được (khả thực). Nội dung của lặp phải có ích cho tiến trình phát triển và cho người sử
dụng. Một số kết quả của lặp chỉ được sử dụng nội bộ tiến trình phát triển, một số khác được sử
dụng để thể hiện trạng thái tiến triển. Từ lặp này đến lặp khác, chương trình sẽ được bổ sung các
chức năng mới và chất lượng của nó đươc nâng cao cho đến một vòng lặp nào đó sẽ sản sinh ra
thế hệ thứ nhất của phần mềm.
Phát triển phần mềm bằng UML trang | 17 Lặp Kết quả Pha Lặp Khảo sát khởi đầu Makét khả thi Lặp kiến trúc Bản mẫu kiến trúc Chi tiết Lặp kiến trúc Bản mẫu kiến trúc Lặp phát triển Bản mẫu phát triển Lặp Xây dựng phát triển Bản mẫu phát triển Lặp phát triển Bản beta Lặp chuyển giao Bản beta Chuyển giao Lặp chuyển giao Thế hệ phần mềm
Hình 1.8 Tiến trình phát phần mềm
Các hoạt động truyền thống không được thực hiện trình tự như trong chu kỳ phát triển thác
nước, nó được phân bổ vào các lặp khác nhau. Mỗi lặp bao gồm lập kế hoạch, phân tích, thiết kế,
cài đặt, thử nghiệm và tích hợp. Chương trình khả thực là kết quả của các bước lặp được gọi là
bản mẫu (prototype). Bản mẫu là tập con của một ứng dụng, nó được sử dụng để hình thành các
yêu cầu hay đánh giá hiệu quả của công nghệ lựa chọn. Bản mẫu ngày càng phong phú thông qua
mỗi bước lặp. Thông thường, bản mẫu thứ nhất chỉ có một mục đích là chưng minh quan niệm
ứng dụng. Nó được hình thành càng nhanh càng tốt, đôi khi bỏ qua tiêu chuẩn chất lượng thông
thường. Bản mẫu này thường được gọi là mô hình hay maket. Các bước lặp áp chót sẽ phát sinh
các phiên bản beta, nó được gửi đến nhóm người sử dụng thử nghiệm. Phiên bản chính thức cũng
là bản mẫu như các bản mẫu khác (hình 1.8) [MULL97]. Nó được xem như bản mẫu cuối cùng
của thế hệ phần mềm đang phát triển và là bản mẫu đầu tiên của thế hệ phần mềm tiếp theo.
1.5.2.2 - Quản lý rủi ro trong tiến trình phát triển lặp
Như trong mọi hoạt động khác của con người, phát triển phần mềm phải tuân thủ luật chia sẻ
rủi ro. Phân tích rủi ro bao gồm đánh giá dự án, công nghệ và tài nguyên để xác định, hiểu rõ bản
chất của rủi ro và quan hệ giữa chúng phải được mô tả vắn tắt để mọi thành viên trong dự án biết
chúng. Rủi ro phải được lượng hóa và phải biết rằng nó có thể hay không có thể loại bỏ. Không
được mô tả thiếu rõ ràng trong tài liệu như “Hệ thống cần đủ nhanh” hay “Bộ nhớ cần đủ lớn”…
Rủi ro của dự án được chia thành bốn nhóm như sau đây:
Rùi ro về thương mại: Có thể thu thập đầy đủ thông tin cạnh tranh của sản phẩm trên thị trường?
Rủi ro về tài chính: Nhà đầu tư phát triển phần mềm có đủ kinh phí để hoàn thành dự án?
Rủi ro về kỹ thuật: Nền tảng công nghệ vững chắc và đã được thử thách?
Phát triển phần mềm bằng UML trang | 18
Rủi ro về phát triển: Đội ngũ phát triển có đủ kinh nghiệm? Họ có làm chủ hoàn toàn công nghệ đang sử dụng?
Tuy nhiên, luôn nhớ rằng cái rủi ro lớn nhất là không biết được rủi ro xảy ra ở đâu. Nhiệm vụ
quản lý rủi ro là phải lập kế hoạch làm giảm rủi ro, sau đó là thực hiện kế hoạch này.
1.5.2.3 - Khía cạnh hỗ trợ tiến trình phát triển phần mềm
Từ góc nhìn hỗ trợ, phát triển phần mềm được thực hiện trong bố pha: Khảo sát khả thi hay
khởi đâu (inception), chi tiết (elaboration), xây dựng (construction) và chuyển giao (transition).
Chu kỳ phát triển phần mềm từ góc độ này được mô tả trên hình 1.8. Hình này còn cho thấy quan
hệ giữa hai góc nhìn khác nhau: góc nhìn hỗ trợ và góc nhìn kỹ thuật. Dưới đây là mô tả các pha
phát triển phần mềm từu góc nhìn hỗ trợ.
Pha khởi đầu (hay khảo sát khả thi). Pha này bao gồm khảo sát thị trường, đặc tả sản phẩm
cuối cùng, xác định phạm vi dự án. Khởi đầu là bắt đầu dự án, từ khi ai đó cho rằng nếu có hệ
thống phần mềm mới để giúp đỡ công việc của họ thì tốt hơn. Tiếp theo là ai đó nghiên cứu ý
tưởng. Người quản lý (khách hàng) hỏi bao lâu thì có phần mềm? Kinh phí là phần mềm là bao
nhiêu? Tính khả thi của dự án thế nào? Tiến trình tìm ra các câu trả lời cho các câu hỏi này thuộc
pha khởi đầu. Khảo sát thị trường không phải là công việc của các kỹ sư phần mềm mà là công
việc của chuyên gia khảo sát thị trường và phân tích cạnh tranh. Họ cố gắng đánh giá việc xây
dựng hệ thống phần mềm mới hay nâng cấp phần mềm có sẵn có kinh tế không, giúp các công ty
xác định các ưu, nhược điểm. Công việc đầu tiên ở đây là hình dung bức tranh tổng quát của sản
phẩm để dễ dàng nhận ra và tách các thành phần cho pha chi tiết. Theo E. Morel thì bức tranh này được mô tả như sau:
Bức tranh sản phẩm = Cái gì + Cho ai + Giá bao nhiêu
trong đó, Cái gì muốn đề cập đến các đặc trưng tông thể về sản phẩm; Cho ai xác định khách
hàng sử dụng sản phẩm và Giá bao nhiêu dự báo giá của mỗi sản phẩm mà người sử dụng có thể chấp nhận.
Thông thường phải xây dựng bản mẫu khái niệm cho pha khảo sát khả thi để đánh giá tính rủi
ro của các chức năng phần mềm, sức mạnh và độ phức tạp của hệ thống, công nghệ mới sẽ áp
dụng. Từ đó mà các quyết định về quan niệm sản phẩm được hình thành. Loại bản mẫu này
không cần tuân thủ các quy luật phát triển phần mềm thông thường như độ tin cậy cao hay tốc độ
xử lý phải nhanh. Đó chỉ là maket hệ thống, mã trình của nó sẽ không đóng vai trò gì trong sản
phẩm cuối cùng. Từ đây, tính rủi ro của dự án được nhận biết và pha khảo sát thì sẽ tiếp tục cố
gắng đánh giá kinh phí cho dự án và lợi nhuận sẽ đem lại. Dự báo kinh phí luôn là công việc khó
khăn. Số liệu của dự báo ban đầu sẽ không bao giờ đúng, chỉ có được số liệu đúng khi kết thúc
phát triển hệ thống. Do vậy, việc dự báo này thường được hiệu chỉnh dần dần trong nhiều bước khác.
Phát triển phần mềm bằng UML trang | 19 Độ tin cậy của dự báo Kinh phí thực tế
Độ chính xác của dự báo Thời gian Khỏa sát Chi tiết Xây dựng Chuyển giao khả thi
Hình 1.9 Độ tin cậy của dự báo kinh phí dự án
Với các dự án nhỏ, khảo sát khả thi thường chỉ giới hạn bởi danh sách yêu cầu phần mềm.
Với các dự án trung bình (thực hiện khoảng một năm) thì pha khảo sát khả thi sẽ thực hiện trong
khoảng một tháng, bao gồm cả việc xây dựng maket. Với các dự án lớn, việc xây dựng maket có
thể là một dự án con và nó cũng có các bước thực hiện như mô tả trên.
Pha chi tiết. Pha chi tiết bắt đầu bằng phân tích yêu cầu và mô hình hóa lĩnh vực. Nó có
nhiệm vụ lựa chọn kiến trúc, làm giảm mức độ rủi ro của dự án, cuối cùng là xác định được kế
hoạch đầy đủ cho các nhiệm vụ phát triển hệ thống phần mềm. Tham gia vào pha này bao gồm
kiến trúc sư hệ thống, chuyên gia lĩnh vực, người sử dụng, đại diện của nhóm kiểm tra chất lượng
và thử nghiệm, người viết tài liệu, chuyên gia về các công cụ phát triển phần mềm.
Phân tích yêu cầu được thực hiện trên cơ sở khảo sát các trường hợp sử dụng. Các trường hợp
sử dụng được mô tả theo khái niệm khách hàng, có thể khác xa với hình thức mô tả của kỹ nghệ
phần mềm. Các phân tích viên có nhiệm vụ chuyển đổi chúng sang hình thức gần máy tính hơn,
thí dụ, chuyển đổi trường hợp sử dụng sang cộng tác của các đối tượng trong lĩnh vực ứng dụng.
Đó là các đối tượng trong thế giới thực, công tác với nhau để hình thành các chức năng trong
trường hợp sử dụng. Người sử dụng vẫn có thể hiểu rõ trên hình thức biểu diễn này. Hình 1.10 là
thí dụ về cài đặt trường hợp sử dụng Bán hàng bằng ba đối tượng hợp tác là khách hàng, người bán hàng và xe ô tô. Người sử dụng Kỹ sư phần mềm Bán hàng: Bán hàng: Trường hợp sử dụng Cộng tác <> <> Khách hàng <> Xe ô tô Nhân viên bán hàng
Hình 1.10 Cài đặt trường hợp sử dụng
Phát triển phần mềm bằng UML trang | 20