Xem mẫu
- Chương VI
T H ia K ễ
Sau khi Ihực hiện xong 6 bước đầu của tiến trình 10 bước, chúng ta
đã xây dựng xong mỏ hình phân tích cúa hệ thống. Trong phân tích ta
luôn luôn tự hạn ch ế trong câu hói "Là gi?" hay "Làm gì?", mà không
bao giờ lấn sang câu hỏi "Làm như thế nào?". Tới đây, ta bắt đầu
c h u y ể n s a n g ih iế t k ế , n g h ĩa là n g u v ê n cứii s ự th ự c thi h ệ th ố n g v à đ ư a
ra những quyết định về cài đặt. phù li(Tp \ớ i điều kiện công nghệ có
được và đáp ứng các đòi hói phi chức nãng từ phía người dùng (như là
hiệu nãng, tính kliả dụng, lính bdo mật.v.v,..).
Ba bước 7. 8. 9 sẽ lần lượt dề cập ba vãn đề cua thiết kế;
• Làm nguyên mẫu giao diện người dùng;
• Thiết kế hệ thống:
• Thiết k ế chi tiết.
7’rong thiết kế, ta klió tránh khói đi sâu vào việc chọn lựa và vận
đụng các công cụ cài đật (như là cúc ngòii ngữ lập trình, các hệ quản
trị cơ sỏ dữ liệu, các hệ lạo lập giao diện, các thư viện thành
phần.v.v...), Tuy nhiên, vì sự hạn chô' của khuôn khổ cuốn sách, ta
khóng thế (rình bày vé các cóng cụ đó ỏ đày. mà chỉ trình bày sự thiết
kế ở mức độ độc lặp với côni’ ru cài (!ậl, Mãt khác một vấn đề rất thú
vị và đ ồ n g ihời là xu hướng tâì y ố u c ú a thiết kế hiện đ ạ i là v ấ n đề mẩi(
ỉhiết /iré'(design patterns) cũng không lliể irình bày một cách c ó hệ
thống, mà chí có thể được giới tliiộu qua. mổi khi cần đến. Đ ể đi sâu
vào mầu thiết ké, bạii dọc có tho ihain kháo 113].
- 184 Chương VI. Th iết k ế
§1. BƯỚC 7: LẢM NGUYÊN MẪLI
G IA O D IỆ N N G Ư Ờ I DÙ N G
1. MỤC ĐÍCH
Cõn« việc ở bước 7 nàv là dưa vào các bộ tạo lập GUI (Gruphiciil liscr
Uìteiiace builder) thàrứi lập sớin \ ’ Dhaiili một nguyên mảu (protoíype)
à
p.iao diên người dùnc, có íínli thãm dò. nhẳm vào các rnục đích sau:
• Tạo ra một mối irườiig làm việc cụ ihế. dễ tiến xúc. dề làm thử.
làm cho nsười dùng irở nên yên tâm hơn. không như khi chí được
Ihấy nhữiic cì ve irẽn eiấ)'. \'à !iọ cũng iró' ncn nìiiic độnạ !iciì tr:Mìg
'. iộc dona góp cl'0 \'iộc phái iriến t'>ệ Ihốiig
• Quii quá irình dùng tliú. ta ihu Ihập dược nhiẽu ý kicn phánhổi bố
ícli lù pliía người dùng.
• S ớ m p h á t h iệ n d ư ợ c c á c y ê u c ầ u h a v c h ứ c n â n g bị b ỏ s ó t, s ớ m n lììn
thấy các chỗ yếu. chỗ khó khăn nhất cúa hộ ihống.
Vì mục đích thăm dò cúa nguyên inảu. ta nên làm nguyên mảucàng
sớin caní! lổt (dù rầna ta gọi đây là bước 7). Oiáng hạn có the báí đáu làm
ncuyên mầu ngay sau khi đưa ra các ca sử dụng (bước 2). Nguyên inảu có
ỉhé dược làm đi làm lại nlìiổu lấn. lìan đẩu có ihể dó chi là các hình vẽ trên
giấy. Iiliưiig sau đ ó sẽ đ ư a lên m à n hìiìli. Ban đầu c ó ihể n ó chi đưa ra các
dử liệu giá, nhuiig sau dó nó phái đề cập dữ liệu Ihật với kliối lượiig lãng
dán. Quá liinh phái triển nguyên inău làiiì dòng ihc/i với tịuá trìiili pliân lích
v a ih i c l k c . % lìi) l i ọ ciiO piiìiii líciì / à i h ì ẽ i k ẽ .
'à
2. M Ô 'IẢ C Á C ( ; iA ( ) D IỆ N C Ú A H Ệ T H Ổ N í ;
Như ta đã biết (§ 3 .2 0 , Chưmig IV), cứ m ỗi cặp dối tác - ca sử dụng
licn quan, có ít nhất một lớp biên de chuyến dổi các ihòng tin vào-ra.
The hiện của lớp biên chính là giao diện mà bây giờ ta cẩn phái mô tả.
Muổn vậy, ta dõi íhco từng bước trong kịch bản của mỗi ca sử dụng,
xét nội dung ciia tươiìg tác giữa đối tác và hệ thống, các thõng lin vào và
ra. các hàiih động dược ycu câu để tố hợp vào mộl phán tứ giao diện.
Chảng hạn, trong Bủng VI. 1. la thực hiện sự phân bố các giao diện cho
từng bước trong ca sử dụng 'Chọn inôn học để giáng dạy'.
- § 1. Bưóc 7: Làm nguyên m àu giao diện người dùng 185
Báiiii V l . ỉ . Ẩ^hân b ố cúc ịiiao diộn cho các bước irong
ca sử dụng 'Chọn môn học J ể ^iảng dạy'
Các bước/ hoạt động trong ca sử dụng Phần tử giao diện cần có
Đ ãng nhập người dùng
Yêu cầu mã số người dùng Màn hình đãng nhập
Xác định người dùng
Ghi nhận ý định người dùng
Chọn học kỳ Màn hlnh chọn việc
Chọii việc (thêm, bò. xem , in, ra)
TTièm ỉớp giíing
Nhập lên. mã số môn học Màn hình chọn lúp giảng
Hiến lliị các lớp giảng
Chọn m ộl lớp giáng
Kết nối tháy với lớp giảng
Bỏ lớp giảng
Hiến ihị các lớp giảng của thầy Màn hình bò lớp giảng
Bó một lớp giáng
Xein lịc h biểu
Hicn ihị lịch bicu cúa thầy M àn hìn h lịch biểu
In lịch bicu
Tiếp đó, ta m ỏ tả lìm g giao diện theo các cliểm sau:
• 'ĩẽn c ú a giao diện;
• Diền tá ngắn độ 2 - 10 dòng vãn tự;
• Mức độ phức tạp của giao diện (phức tạp/chuẩn/dơn giản);
• Ghi chú thêm, nếu có.
Có bốn [oại giao diện, mà đặc điểm kv ihuật có những khác biệt,
cần dược bổ sung thêm chi tiết. Đ ó là;
• Các giao diện đối thoại;
- 186__________________________________________ Chương VI. Thiết kế
• Các thông tin xuất (thư. báo cáo v.v,..):
• Các giao diện dữ liệu từ và đến các hệ thống ngoài;
• Các giao diện chức nãng đến các hệ thống ngoài.
Đ ối với hai loại cuối (giao diện chức nãng và giao diện dữ liệu),
các chi liết m ô tá sau đây cần được bổ sung;
• Tòn của hệ Ihóng ngoài có liên liệ (tên cliươiig irìiih. lèn giao
tác.v.v...):
• Loại gr.ic diên' đống bộ (,gi‘ diện chức
i0 khòng đổn
- §1 . Bườc 7: Làm nguyên m ẫu giao diện người dũng _______________ 187
Mỗi tháy giáo có thế Ihực hiện dối thoại ngay trên máy tính ở
phòng làm việc ciia inìnli (nối mạng cục bộ của trường). Mỗi thầy
thưc hiện vài ba lần. tập trung vào một tuần trước kiii bước vào học
kv mới.
Mức đô phức íạp:
Chuán
CỚC' Iriỉờ/I^ nhập d ữ liệu
Tên thấy, học kỳ, m ôn học. mã số môn học.
C á c ĩn ỉờ n ^ Itiểii lỉìị:
Dunlì sách các lớp giảng ứng VỚI mòn học và học kỳ (mã số lớp
giảng, đối iượns học, khối lượng, dự kiến thời gian biếu).
C á c khả nãng r ẽ ngang:
Thoát. Kết thúc, Bỏ lớp giảng.
C á c hành động
Đánh dấu lớp giáng, Nhận lớp giáng. Hoàn lại lớp giảng.
Bdnỵ VI.3. Miêu id iliônỊỉ tin xiuíi: Lịch trình giảng dạy
Tên: Lịch irinh giáng dạy
M iẽỉt ỉii n^âii:
M ôl thòng báo viết (trẽn màn liiiìh liay in ra giấy, về lịch Irình
ộl viêt iiiiìli hay
giáng dạy cúa các lớp giáng cùa Ilìộí riiiìy giáo.
SửclựnịỊ:
Tiìầy giáo c ó llìể xem lịch trình hay in lịch trình cúa mình Irên máy
tính (nối m ạng) ó phòng làm việc của 'rhầy,
Mức d ộ phức tạp:
Chuẩn
C á c Irư ờ n íỊ xuất:
Lịch giáng cúa từng m ón học (tên Tliầy giáo, tên học kỳ, lên môn
học. mã số m ôn học, mã số lớp giáng, dối tượng học, khối lượng,
ngày Irong tuán, giờ, địa điểm).
- 188 Chương VI. Th iết k ế
3. DI C H U Y Ể N G IỮ A C Á C G IA O D IỆ N N C Ư Ờ I D Ù N G
Cách phái hiện \’à m iêu tả các giao diện như trên là đơn gián, dễ
làm, Nhươc dicm chính cùa nó là bỏ qua sắc thái động cùa giao d'ện.
V'ị \’ãy. cých iàm dó nếu có tlĩể đã ihành công với nliững giuo diện dơn
aiáii, Ihì lại trớ nên khá lúng túng khi sập các giao diện phức tạn.
Cháng hụn với các giao diện ircn mộl NVebsile, với cúc đơn chọn, các
kết nối. các siêu kếí nố'„ các núl dản d:U v.v. .. ih.ì việc '0 hơp các yếii
tố giao diện đó lại với nhau thành một giao diện hcíp lý. uyến chuyến
và đẻ dùng không phái là việc ỉàm gián đơn.
ƯML cung cấp cho lii m ệt ccng cụ lốl đe dicn lả inối các!i chír.h
xác. khóns bỏ sót các sắc Ihái độriL’ của ;nột hộ tliông gi.io rìiện, đó là
bieu đổ hoạt động (xem § 3 , C'hươiìg V). Vốn là m ỏ hìiih cúa luỏng
còng việc, nó được áp dụng vào đày đc diỗn tá sự di chuycn giữa các
yếu tố giao diện đối với một người dùng.
Đ ế áp dụng cho giao diện, khái niệm 'hoạt động' trong biếu dồ hoạt
động được chuyên biệt hoá thành năm loại (Hình VI. 1), mang các
khuờn dập thích hợp, nliư sau:
• Một trang đ ầ y đú cùa V V e b sile (« p a g e » );
• Một kliiuìg nằm trong inột trang ( « f r a m e » ) ;
• Một hành íiộnịỊ đơn giàn ( « a c t i o n » ) ;
• Một sơi lồi hav hành vi không cbờ íỉợi của hệ thống
( « e x c e p t i o n » , được tô màu ẹhi nhạt):
• Một mõĩ nổi lới một biểu đổ hoạt dộng khác,nhằm thực hiệii sự
cấu trúc hoá, \ ’à nhằm làm cho biểu đồ dễ đọc hơn ( « c o n n e c l o r » ,
được tò màu ghi đạm).
Các khái niệm trang và khung tươiig ứng trực tiếp vứi các lớp biên
( § 3 , Chương IV). Khái niệm hành động nói chung là tương ứng với
m ội thao túc trong một lớp biên hoặc trong một lớp điểu khiển.
- §7. Bưởc 7; Làm nguyên mẫu giao diện người dùng 189
«p ages» « fr a in e » « a c tio n »
« e x c e p tio n » « c o n n e c to r »
L
Hìiilì V I . i . C ác qii\' ước d ổ lìoạ chuyên biệt
V iệc m ô hình hoú di chuycn bắt dấu lừ một đối tác (Hình VĨ.2).
Tliường thì mội đối tác liên kết với nhiểu ca sử dụng. Nếu các ca sử
đụng đó là độc lập hoàn loàn \ ’ới nhau, thì la xây dựng m ộl biểu đổ di
chuyến ch o m ỗi ca sừ dụng đó. và các biểu đổ đó ià đơn gián và dẻ
dọc. Trái lại nếu các ca sử dụtig đó lại có liên hệ và ràng buộc lẫn
nhau, Ihì la phái xây clLm a một biếu đổ thống nhất, và các ràng buộc
dược thc hiện bằng các cảnh giới trẽn các di chuyển giữa các trang
iươiig ứng. Và như vậy, các biếu đồ di chuyên lại cho la một cách diễn
đạt các ràng buộc một cách hình iliức và minh bạch.
Đối tác
D ối lác • intranet
▼
( « fra m e » >
/ «pagcs» Đăng nhập
1 Trang đón liếp ]
\ - /
« e x c e p tio n » \ ỊkhôngỊ__ A
4' Lỗi đãng nhập ^ ^ x a c n liỊn '
*‘
_______
/ «pages»
v_ 1 Trang đón tiếp
/
có]
H ĩnh VỊ.2. K h ỏ i cỉâii ciía hiểu đồ
- 190 Chương VI. Thiết kế
T h í dụ
Hãy lập biểu đổ di chuyển cho một khách hàng trên \Vcbsite
thương mại điện lử của một hiệu sách. Ta có biểu đồ các ca sir dụng
cùa khách hàng nhir trẽn Hình V I.3.
c ')
Thực hiên một đơii hàng
\ « e x ĩe n d »
V
c _______
Sữ dụng giỏ xách
/
/
/
' « ex ten d »
c
Tim sách
^ í
ị
CZ^
l ì m nhanh c n m theo chủ để
'Hin sáu
Hinli Vỉ.3. Biểu đ ồ ca sửdụnỊỊ của khácìì hàiiị’
Ta xét lần lưọt từng ca sử dụng.
Tìm sách
Thông thường khách hàng irưỏc liên tìm và chọn sách, cho sách
Lfng ý vào giỏ xách và cuối cùng thực hiện đơn mua hàng. V ậ) :ừ trang
đón tiếp, khách hàng có thể tìm nhanh các sách, hoặc tìm sâu theo một
ý định nào đó, hoặc xem qua một lập hợp các trang như là: Sá;h mới.
Sách bán chạy nhất, v.v... (Hình VI.4).
- §1. Bước 7: Làm nguyên mẫu giao diện người dùng 191
Tim nhanh dựa trên một vài từ klioá. chi cần thực hiện bằng một
« f r a m e » luôn có mặl trên tiang lìm kiô’ Trái lại tim sâu với nhiều
m.
liêu ch í lại được tliực hiện bãng niội Uaiig nguyên. Tim kiếm là một
« a c t i o n » mà kết quả là một framc chứa danh sách các sách lìm
được hoặc một thông báo lổi khi khòng tìm dược sách.
«page»
Sách mới
«page»
«page»
Trang đón tiếp
Sách bán
chạy nhất
«page»
«page»
V Tim sâu
V
« a c tio n »
Tìm kiếm
« e x c e p tio n »
không tìm được?
Lỗi: không tìm )< ■
được sách có
______
- 192 Chương VI. T hiết k ế
vào giỏ xách (ảo), hoặc có thế sắp xếp lại các kết quá. Nếu có nhiều
sách tìm được, khách hàng có thể duyệt các Irans kết quá {Hình V I.5).
Phiếu sách lại cũng cho phép dưa sách vào giỏ xách hoặc yêu cầu
xein phiếu tác giá bao gồm tiếu sứ và danh sách các sách cúa lác giả
đó. N ó cũng cho pbcp I.niy cập các thỏpg tin bổ sun*’ như la: ảnli
phóng dại, lời bình, mục iục chi liết, tóm láỉ cac chuơiig, Vì sự
rườm rà kéo đài từ phiếu sách này. ta cắỉ phẩn di chuycn kc từ phiếu
sách ''ào một biểu đồ hoạt động khác, bằng cách dùng mối nối
« c o n n e c t o r » (Hình VI,6). Cũng tifcf!ig tự, phấn Sừ dựiiíí G iỏ xách
chưa triến khai cũng được ihay Ihế bằng một mối nối « c o n n e c i o r » .
•Sávb Tiì / • A^v,vhicvsach í-or.i
------------- ' (
< < pãgẽ» Sách b án 1^
chạy ah ăt
H ỉn h V I.5. D i ch uyển đ ể tìm kiếm (m à thêm )
- §1. Bưóc 7; Làm nguyên m ẫu giao diện người dùng 193
P h iế u s á c h
Hình Vỉ.6. D i chuyển ỉừphiếu iỉiới thiệu sách
Siỉ dung giỏ xách
Xem lại biểu đổ ca sử dụng ờ Hình V I.3, ta ihấy ca sử dụng 'Thực
hiện mộl đcm hàng' m ớ rộng ca sử dụng 'Sừ dụna giỏ xách'. Đ iểu đó có
nghĩa là đang sừ dụng giỏ xách, ta có thc cliu\’ến sang ihực hiện đcm
mua hàng. Tuy nhiôn ờ đây phải có inộl ràng buộc: G iỏ xách phải
khòiig lồn g tlìì mới chuyển sang Ihực hiện rnua hàng được. Đ ể thể hiện
sự ràng buộc này la phải đưa ihêin một trang "Cìiỏ xách rỗng', iruy cập
đưực từ nhiều trang, kể cả Irang dón tiép. nhưna nó ngăn không cho
chuyến sang trang Đặt hàng. Bới việc lách irang G ió xách thành hai
(rỗng và không rỗng), nên « c o n n e c t o r » Giỏ xách trên hình V I.5 nay
lại tương ứng với « p a g e » G iỏ xách ở Hình VI.7, mà không phải
tương ứng với m ội điểm vào biểu đổ mới như trường hợp trên.
- i i i n h V 1 7 . ỈỈU'II d ồ íli clniYCíì cho s ứ c l ụ n i i ÍỊÌÓ xách
!'/ntc hiện mội (ừ/n ìiảini
« c o n n e c t o r » Đơn hùng trên Hình V I.7 trớ thành điểin vào cho
biểu đồ di chuyến để thực hiện một đơn hàng trèn Hình V I.8.
D ơ n ìià n g
[K h á c h đ ã đ a n g k K h á c h c h ư a đ ỉln g k ý l
/ « jn ìg c » « p a g c »
P h iế u k liá c h P h iế u k h á c h
y h ù n g d iẻ u sá n h à n g rỏ n g
z 2
« 'a c i i o n » « a c L io n »
Đ i c u c h in h N h ậ n t h ô n g tiìì
tà i k h o ả n m ua hàng
/< ^ x c c p tío n > > « p a G e » V /
( Đ cm h à n g p h iê í m ua -< ề >
\ chưa đụt hùnM n
ỉỉìiih Vỉ.8. Biển d ố dì cìuivểii clioTliực hiện m ột dơn hủiiíi
- § í, Bườc 7: Làm nguyên m ấu giao diện người dùng 195
Cuối cùng thì la có thế lổng hợp vào một biếu đổ di chuyển chung
ciia một khách hàng, như trên Hình VII,9. Trẽn biểu đổ này ta lược bớt
các báo lỗi « e x c e p t i o n » và các rẽ nhánh Iheo điều kiện. Đ iều thú vị
là ta thấy chỉ với một trang giấy mà la có thc thâu tóm mọi quy tắc
dịch chuyển trên m ộl W ebsite.
« page»
S ách m ớ i
« page» « pagc»
«pagc»
bán T rợ g iú p
T rang đón tií p
nhất
^ .
« fra m e » «page»
T im n h a n h j T ìm s â u j
ỉ « a c iio n » « a c tio ii»
1 R à lại c h o v ào giò
[còn ít
nhất 1 cuốnl
«page»
G iỏ sách
í« a c tio n » \ / «page»
VL ập d ự toán 1 VyPhiếu giới th iệ u s á c íy
> •
« fra n ie » Đ ặ t h àn g / «page» « a c tio n »
D ự to á n Ị
1 P h iéu khách Đ iể u ch in h
\ h à n g đ ié n sẩn tài k h o ả n
Ị « p ag c» Ị « a c tia n »
P h iế u k h á c h
y h à n g rỗ n g j N h ạ p thỏng tin
m u a tìàng Kết thúc bình Ihuờng
có mua % ách
í « p ag e» \ í « a c tio n » 1
1 P h iế u m u a h à n g ì \ M ua J
H ìn h V ỉ. 9. B iểu đồ d i chuyển tổn ^ íỉìể c ủ a khách hàng
- 196___________________________________________ Chương VI. Thiết k ế
4. L À M N G U Y Ê N M Ẫ U
N gày nay có nhiều bộ tạo ỉập giao diện người dùng (GUI builders)
cho phép làm các nguyên mảu giao diện mà khỏng tốn mấv công sức.
Bước đầu thì các trường là rỗng hoạc cho giá trị giá, Các núi và các
phần lử đối thoại khác có thê’ chưa có 'liệu ứng rõ rêi và cJìn giái thích
"miệng". Song dần dần qua nhiêu \ ’òng lạp, tli: giao diện tiớ nên sinli
động hcfn và đi gần tới phương án cuối. Và như vậy người dùng có Ihc
làm việc ihử vứi các nguyên mầu.
Các bước ihực hiện nguyẽn inẫu có Ihể là như sau:
• X ciĩi xét lừng ca sử dụng dế phát hiệti yêu cáu \'ề giao cliẹn cửa
c h ú n g . D Õ ! i h e o c á c b ư ớ c f o n g k ị c h b ả n c ử a C'd s ử đ ụ n g m à la p h á t
la ii iư ợ i c iíc phán i ừ g i a o c l i ệ ') c â n th iế t. C -ẩn p h á ’ c h ú V sụ
iư
- §2. Bưôc 8: Thiết k ế hệ thống 197
§2. BƯỚC 8: THIẾT KÊ HÊ THỐNG
l. MỤC ĐÍCH
Thiêì k ế hệ thống chính là thiết k ế kiẽii Irúc tổng thể của nó.
Kiến írúc (architechture) là tập họp các quy tắc về sự hợp thành và
sấp đặt các Ihành phần của một hệ thống phức tạp, nhờ đ ó mà nó hoạt
đ ộ n s được.
Các thành phần lạo nên hệ thống là gì và các m ối ỉiên quan giữa
chúng ra sao, cái đó lại phụ thuộc vào lừng cách nhìn đối với hệ thống.
U M L miêu tả năm góc nhìn đối với hệ ihống (xem § 2 .1 , Chưcíng II)
và đó cũng chính là nãm cách nhìn khác nhau \ ề kiến trúc. Có thể tách
năm góc nhìn đ ó thành hai nhóm:
• C á c góc nhìn v é kiến trúc lôgic: Kiến trúc lôgic đề cập tới các
chức núng của hộ thống, sự phân bổ cùa cúc chức năng đó vào các
phấn khiíc nhau của hệ thống và cho thấy vì sao các giải pháp đã
làin việc được và đáp ứng yêu cầu. Kiến trúc lôgic chứa lôgic của
ứng dụiig, nhưng không chứa sự bố trí vật iý cúa lôgic đó vào các
quá Irình, các chương Irình hay các máy tính. Vậy kiến trúc lôgic
thể hiện trên ba góc nhìn cùa ƯML:
- G óc nhìn ca sứ dụng, ch o thấy hệ Ihnng phãi có các chức năng
(lớn) nào đổ đáp ứng các yêu cầu của người dùng.
- G óc nhìn thiết kế, cho thấy hệ thống dirơc thiết k ế với các lớp
và dối tượng nào, hoạt động của chúng ra sao và chúng được
gom vào các hệ con ra sao.
- G óc nhìn quá trình, cho thấy sự thực hiện của hệ thống diễn ra
t h e o c á c t u y ế n đ i ể u k h i ề n n à o , thiíộc loiỊÌ h ì n h đ i ể u k h i ể n gì
(đcfn, song hành-..)-
• C á c góc nhìn v é kiến trúc vật lý: Kiến trúc vật lý đề cập sự hợp
thành của hệ thống từ các bộ phận tổn tại thực sự trong thực lế (chứ
không phải trong sự hình dung của con người) bao gồm các phần
mềm (các mã nguồn, các mã khả thi, các thư viện chương trình...)
và các phẩn cứng (các m áy lính, các thiết bị, các đường kết nối)
cùng với sự b ố trí của các phẩn m ềm chạv được trên các phần cứng.
- 198__________________________________________ Chương VI. Thiết k ế
Như vậy kiến trúc vật lý thể hiện trên hai góc nhìn còn lại cúa
ƯML:
- G óc nhìn thành phần, ch o thấy hệ thống bao gồm các Ihành
phần phần mềm nào, các mối liên quan giữa chúng ra sao.
- Góc nhìn bỏ’ trí. cho thấy ỉiệ thống bao gổni oác pỉiầii cúng
nào; các nút (các bộ xử lý. các thiết bị), các k ít nôi (đường
truyền) giữa các nút đó và sự bố li’í các Ihàrih phần pliầa mém
trèn các núỉ.
• Rốt cục, nếu hiểu kiến trúc là sự m ó lả hệ thỗng theo nãm góc nhin
írôn, ihì chắng phủi mãi đến bước 8 này ta mới đế cập tới kiến trúc.
Tlìậl vậy, dọc theo quá tpnh phàn 'ích nhiều khía cạnh của kiến
trú.: h ị ‘hứng, (lậc biộĩ là kiến irúc íôgic do được xcrn xét, vớ; nhiềii
loại biếii dổ, nhu ìà biểu đổ ca sử dụng, biếu đồ lop, bieii đò doi
tượng, các biểu đổ lương tác, biểu đổ máy trạng thái, biểu đổ hoại
động... Vậy ò đây. irong bước 8 này, ta chi còn phài để cặp lới bốn
ván để còn lại cùa kiến trúc hệ thống, là:
- V ỡ hệ thống thành các hệ con (các gói).
- Chọn lựa loai hình điều khiển
- M iêu tả các thành phần vật lý của hệ thống.
- Bố trí các thành phần khả thi vào các nút phần cứng.
2. V Ớ H Ệ T H Ố N G T H À N H C Á C H Ệ C O N
a) K h ái niệm về hệ con
Các lớp là những thực thể cấu trúc quá nhỏ bé so với một hệ thống
thực. Bời vậy khi số các ỉớp trong hệ thống đã lên lới hàng chục, thì ta
nên gom các lớp liên quan mạnh với nhau thành từng nhóm gọi là các
hệ con.
H ệ con (subsystem ) là một sự gom nhóm lôgic các lớp c ó sự c ố kết
bên trong mạnh và sự tương liên bên ngoài yếu.
Thuật ngữ hệ con được nhiều tác giả dùng, và G. Booch lại g ọ i là
phạm trù (category), ihực ra không phải íà thuật ngũ chuẩn của UM L.
Trái lại UM L dùng thuật ngữ gói (package). Tuy nhiên khái niêm gói
(xem lại Chương IV § 1 .1 0 và § 2 .6 ) lại có ý nghĩa khái quát hơn;
- §2. Bưởc 8: Thiết k ế hệ thống 199
• Gói là một cơ ch ế gom nhóm nliiC'1 pÍKiii lử. Các phần tứ nói dày
.1
có thế là các lớp, các giao diện, các ihàiili pỉum. các hợp tác. các ca
.sứ dụng, các nút. bicu đồ và cũni’ có (hc là c.k' gói khác.
• Gói và biéu đổ gói có thế được vận dụng á inọi giai đoạn phá! tricn
hệ thống. Khi ta có một bicu dổ lùio dó (ci) ihế là biểu đổ lớp. biểu
đổ ca sử dụng...) là quá lớn, quá phức lap. \à ta muốn diẻn tá nó lại,
sơ lược hơn, nhưng dỗ nắm bắt hơn, (iỏ phãii công nghiên cứu và
Iriến khui hơn. ihì ta dùng gói và biéu đỏ ụói.
Còn \'ề các hệ con mà ta ihiết lặp tion< '2 đoạn Ihiết kê' kiến trúc
2 .'m
cùa hệ lliống, thì;
• Đ ó chí là gói cúa các lớp. thưừiiỵ mang thêm khuôn dập
« s u b s y s t e m » . như trên Hình VI.ỈO. Sô cúc lớp trong một hệ con
klìông nên ít quá. mà cũng chắni’ iiC 1 iiliicu quá (thường thì có
-1
l:hoảng mươi lớp là vừa).
« s u b s y s te m »
Lich biểu
ỉỉiỉilt V ỉ . i O . B i ể u d i ề n Ììệ v o n
Nội dung của một hệ con (gồm các lóp \'à các mối liên quaii giữa
chúag) dược U M L 2.0 diễn tả irong n\ộl kìuút^ (íiain e). vứi niột lựa ỏc
viếi trong một hình chữ nhật cắt góc (lu;o khuôn dụng [] Tên
], như trên Hình V I.11.
• Sự có' kếĩ của các lớp irong cùng ipột lìc ':«'n thc hiên ờ chỗ:
- V é mục đích; Chúng phái cuny cãp các dịch vụ C ) cùng bán
C
chất cho người dùng. Như vậy chúng pliái ihuộc vùo cùng mộl
lĩnh vực và đề cập một số thuậl ngữ chung (cháng hạn hệ con
giao diện để cập các thuật ngữ như: cửa sổ. đơn chọn, nút hành
động v.v...).
- V ề xu thế phát triển: Người tu tác h các !ớp bền vững \'ới các
lớp còn nhiều khả nãna thay đối. phát triến. Đặc biệt là tii
- 200 Chương VI. Thiết k ế
thường tách các lớp nghiệp \'ÌỊ với các iớp ửììi’ clụniỊ và xếp
chúng vào các hệ con khác nhau.
V ề ứng dụng các công nghệ: để tận dụng các dịch \ụ còng
nghệ có sẵn, như các thư viện chương trình (lớp/thành phan),
các GUI, các hệ quản irị cơ sờ dữ liệu v.v..., ta thường tách các
hệ .-:on giao tiếp, hệ con quàn trị dữ liệu ra khói phần lõi {ưiig
dung và nghiệp vu) của hè thống.
T
Hệ t'on Lịch biêu
Hin/ì V Ỉ . Ị ỉ . N ội dung cứa hệ con Lịch biêu
Sự tưcíng liên giữa các hệ con thể hiện ở mổi liên quan phụ thuộc
giữa chúng. Mà sự phụ Ihuộc giữa hai hệ con phản ánh các mối liên
quan tĩnh (thừa kế, liên kết...) và các m ối liên quan động {trao đổi,
thông điệp) giữa các lớp ihuộc hai hệ con đó. Sự phụ thuộc giữa các
hệ con phải càng đơn giản, càng lỏng lẻo càng tốt. Đ ể đảm bảo tính
tương liên yếu này, khi thành lập hệ con, ta áp dụng các quy tắc
sau:
- Các lớp thuộc vào cùng m ội pha hệ thừa kế nên đưực xếp vào
cùng một hệ con.
- Các lớp có m ối liên quan kết nhập và hợp thành với nhau
thường được xếp vào cùng một hệ con.
- §2. Bưóc 8: Thiết k ế hệ thống 201
- Các lớp cộng tác với nhau nhiéu. irao đối thông tin nhiều, thế
hiện qua các biổu dổ tương tác. ihì nên đặt chung vào m ộl hệ
con.
- Nên tránh sự phụ thuộc vòng quanh giữa các lớp.
b) Kiến trú c p h â n tầng
Một hệ con ihường được định nghĩa bỏi các dịch vụ mà nó cung
cấp. M ối liên quan giữa một hệ con với phần còn lại của hệ thống có
thể là ngang hàng hay ỉà khách hàng/dịch vụ.
Trong m ối liên quan níỊang lìàii^ (peer-lo-peer) thì mỗi bèn đều có
thể truy cập các dịch vụ của bẽn kia. Bấy giờ sự giao tiếp không nhất
thiết là ờ dạng câu hỏi và trả lời liền sau đó, mà có thể là một sự giao
tiếp loanh quanh, rất dễ dẫn tới những sai ỉỗí đáng liếc về thiết kế.
Còn mới liên quan khách lìàngklịclí vụ (client/server) thì đơn giản
hcfn: bên khách hàng gọi bên dịch vụ và bên dịch vụ thực hiện một
dịch vụ theo yêu cầu và trá kết quá cho bên khách hàng. Bên khách
hàng thì phải biết giao diện của bèn dịch vụ, song bẽn dịch vụ ihì
không cần biếl giao diện cùa bên khách hàng.
Từ hai hình thức giao tiếp đó mà ta có hai cách để vỡ hệ thống
thành các hệ con;
• Tổ chức hệ thống thànli các tầng iheo chiều ngang, với m ối quan
hệ khách hàng/dịch vụ luôn luôn hướng từ tầng trèn xuống (các)
láng dưới. Mộl thí dụ của hệ thống phãii Ihành tầng là hệ thống tạo
cứa sổ trong giao diên người dùng cứa máv tính.
• Tố chức hộ thống thành lát theo chiều đứng, với quan hệ ngang
hàng giửa các lát. tuy nhiên các lát là khá độc lập hoặc tương liên
yếu vói nhau. Một thí dụ của hệ thống phân lát là m ộl hệ điều hành,
ihường gổm các hệ con như là các hệ quản lý tệp, điều khiển thiết
bị, quản lý sự kiện và ngắt...
R õ r à n g l à t ổ c h ứ c p h â n t ầ n g l à đ á n g đ ư ợ c UTJ l i ê n h c í n , v ì n ó m a n g
lại nhiều ưu thế Irong ihiết kế, trong cài đặt cũng như trong sử dụng
lại. Song đối với các hệ thống lớn thì ta thường phải phối hợp cả hai
cách tổ chức phân tầng và phân lái, chẳng hạn phân hệ ihống thành
tầng, nhưng trong mồi tầng thi lại phân thành lát.
- 202__________________________________________ Chương VI. T tiế t k ế
Khi thực hiện phân tầng, thì s ố tầng là tuỳ thuộc sự phức lạp của hộ
ihống;
• Trong một hệ đơn giản, thì số tầng có thổ chi là hai (2-tiers . Bâv
giờ tầng khách hàng thì quán lý-giao diện người dùng và các quá
trìnb k h a i I.hác. c ò n l á n g d i c h vụ tbì x ử lý víêc c ấ t í i ữ c á c d ữ liệu.
• Trong mộr hệ phức tạp hơi‘i. thì người ĩa íácti tổng trên ihun^. tầng
giao diện - ứng dụng, và ở dưới né là tầng nghiệp vụ (hay lĨ!ih vực),
bổn vững hơii và có nhiều khả nâng sứ dụng lại hơn. Vậy đó là một
kiến tĩúc khách hàng/dịch vụ ba táníỉ (3- liers),
• Cuối cùng ihì trong các bộ lớn. số tầng còn có thế nhiều hưn (n-
tiers). mà điển hình ỉà kiếii trúc nãni tầng, với các lầng kê' tư trẽn
:«uổ()g l;l:
- 'rrùig ti-ình bà>: Chuyến các dữ lìèu cho Iiỵư(íi. dỉjng vu blcri
đổi các hành động cùa người dùng thành các sự kiện vào của
hệ thống.
- Tầng ứng dụng; bao gổm các đối tượng điểu khiển và dần dát
các quy luật của ứng dụng.
- Tầng nghiép vụ; bao gổm các đối lượng nghiệp vụ (huv lĩnh
vực), cùng sự cài đặt các quy lắc quản lý chúng.
- Tầng truy cập dữ liệu: phục hổi các đối tượng nghiệp vụ từ các
phương tiện lưu trữ.
- Táng lưu trữ dữ liệu; bảo dảin sự lưu giữ làu dài các dừ liệu.
Một thí dụ về kiến trúc khdch hùng/dịch \ụ nărn tầng cho irong
Hình Irong đó m ỗi gói (hệ con) đcu có mang khuôr dập Ihícb
hợp. như là « u s e í interíace fr a m e w o r k » (khuón khổ giao diện người
dùng), « u s e r in te r f a c e » (giao diện người dùng), « d o m a i n » (lĩnh
vực), « in fr a s t r u c t u r e » (cơ sở hạ tầng), « d a t a b a s e » (cơ sở dữ
liệu).
3. CHỌN LựA LOẠI HÌNH ĐlỂU KHlỂN
Đ â y là v ấ n đ ề đ ặ t ra từ g ó c n h ìn h ệ th ố n g v ề q u á trìn h t h J c h iệ n ,
nghĩa là xein xél các luồng diều khiển trong hệ tliống khi bệ tiiống
đang làm việc.
Có hai loại luồng điều khiển ớ trong một hệ thống phần inềTi, đó là
luồng điều khiển ngoài và luồng điều khiển trong. Đ iều khiển ngoài là
nguon tai.lieu . vn