Kỹ nghệ phần mềm
Software Engeneering
NguyÔn V¨n Vþ
Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
[email protected]
Bài 6: Các hoạt động thiết kế
NguyễnVănVỵ
Nội dung
ThiÕt kÕ kiÕn tróc
ThiÕt kÕ giao diÖn
Bộ môn Công nghệ phần mềm – ĐHCN
2
TÀI LiỆU THAM KHẢO
NguyễnVănVỵ
1.
2.
3.
4.
5.
6.
Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần
mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008
Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
Roger S.Pressman, Software Engineering, a Practitioner’s
Approach. Fifth Edition, McGraw Hill, 2001.
Ian Sommerville, Software Engineering. Sixth Edition, AddisonWasley, 2001.
Nguyễn Văn Vỵ. Phân tích thiết kế hệ thống thông tin hiện đại.
Hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002, Hà
Nội.
Bộ môn Công nghệ phần mềm – ĐHCN
3
ThiÕt kÕ kiÕn tróc phÇn mÒm
software achitecture design
NguyễnVănVỵ
Kh¸i niÖm kiÕn tróc
KiÕn tróc phÇn mÒm chØ cÊu tróc tæng thÓ cña 1 phÇn mÒm
vµ c¸ch thõc tổ chức qua ®ã cho ta 1 sù tÝch hîp vÒ mÆt kh¸i
niÖm cña 1 hÖ thèng [SHA95a]
Th«ng th−êng: thÓ hiÖn b»ng mét biÓu ®å ph©n cÊp cña c¸c
thμnh phÇn vμ quan hÖ gi÷a chóng
§Çy ®ñ: thÓ hiÖn cÇu tróc hÖ thèng theo nhiÒu gãc nh×n kh¸c
nhau: tÜnh, ®éng, d÷ liÖu, triÓn khai
[SHA95a] Shaw,M and D.Garlan, Formulation and formalisms in software achitecture,
volume 100-lecture Notes in computer Science, Springer-verlag,1995
Bộ môn Công nghệ phần mềm – ĐHCN
4
Vai trß kiÕn tróc phÇn mÒm
NguyễnVănVỵ
Kh«ng ph¶i lμ m« h×nh ho¹t ®éng
lμ m« h×nh ph©n ho¹ch theo những c¸ch nh×n kh¸c
nhau (chøc n¨ng, d÷ liÖu, tiÕn tr×nh, tÜnh hay ®éng..)
gióp kÜ s− hÖ thèng:
Ph©n tÝch tÝnh hiÖu qu¶ cña thiÕt kÕ ®¸p øng ®−îc yªu
cÇu cña phÇn mÒm
T×m c¸c gi¶i ph¸p thay thÕ cÊu tróc ë giai ®o¹n sím
Gi¶m c¸c rñi ro liªn quan tíi cÊu tróc
Bộ môn Công nghệ phần mềm – ĐHCN
5
Kh¸i niÖm thiÕt kÕ kiÕn tróc
NguyễnVănVỵ
Qu¸ tr×nh x¸c ®Þnh c¸c hÖ con lËp thµnh hÖ
thèng vµ khung lµm viÖc ®Ó ®iÒu khiÓn & giao tiÕp
gi÷a c¸c hÖ con víi nhau
B¾t ®Çu sím ngay tõ giai ®o¹n ®Çu cña thiÕt kÕ hÖ
thèng, tiÕn hμnh cïng víi mét sè ho¹t ®éng ®Æc t¶
Nã bao gåm viÖc x¸c c¸c thμnh phÇn chÝnh cña hÖ
thèng sù truyÒn thèng gi÷a chóng
Bộ môn Công nghệ phần mềm – ĐHCN
6
C¸c b−íc thiÕt kÕ kiÕn tróc
NguyễnVănVỵ
1. CÊu tróc hãa hÖ thèng: ph©n chia hÖ thèng thμnh c¸c
hÖ con (sub-system) ®éc lËp vμ x¸c ®Þnh trao ®æi th«ng
tin gi÷a c¸c hÖ con x¸c định c¸c giao diÖn cña chóng
2. M« hinh hãa ®iÒu khiÓn: x¸c lËp m« hinh ®iÒu khiÓn
gi÷a c¸c phÇn kh¸ nhau cña hÖ thèng ®· ®−îc x¸c ®Þnh
3. Ph©n r· thμnh c¸c module: ph©n r· c¸c hÖ con thμnh
c¸c module.
HÖ con: phÇn hÖ thèng ho¹t ®éng ®éc lËp víi c¸c dÞch
vô mμ c¸c hÖ con kh¸c cung cÊp
M«dun: phÇn hÖ thèng cung cÊp dÞch vô vμ t−¬ng t¸c
cïng phÇn kh¸c ®Ó t¹o ra dÞch vô hay s¶n phÈm
Bộ môn Công nghệ phần mềm – ĐHCN
7
C¸c m« h×nh kiÕn tróc
NguyễnVănVỵ
C¸c m« h×nh kiÕn tróc kh¸c nhau ®−îc t¹o ra trong
qu¸ tr×nh thiÕt kÕ
Mçi m« h×nh biÓu diÔn mét c¸ch nh×n cña kiÕn tróc
M« h×nh kiÕn tróc tÜnh chØ ra c¸c thμnh phÇn chÝnh cña
hÖ thèng (biÓu ®å ph©n r·)
M« h×nh ®éng chØ ra cÊu tróc tiÕn tr×nh cña hÖ thèng
(biÓu ®å luång d÷ liÖu)
M« h×nh giao diÖn x¸c ®Þnh hÖ thèng giao diÖn cña hÖ
thèng (hÖ thèng giao diÖn t−¬ng t¸c)
M« h×nh mèi quan hÖ nh− m« h×nh kh¸I niÖm thùc thÓ
miÒn d÷ liÖu cña hÖ thèng
Bộ môn Công nghệ phần mềm – ĐHCN
8
Mét sè m« h×nh kiÕn tróc
NguyễnVănVỵ
1. KiÕn tróc d÷ liÖu tËp trung (Data-centered architectures)
2. KiÕn tróc kh¸ch/dÞch vô (Client-server architectures)
3. Kiªn tróc ph©n tÇng (Layered architectures)
4. KiÕn tróc gäi vμ tr¶ l¹i (Call and return architectures)
5. KiÕn tróc luång d÷ liÖu (Data flow architectures)
6. KiÕn tróc h−íng ®èi t−îng (Object-oriented architectures)
Bộ môn Công nghệ phần mềm – ĐHCN
9
KiÕn tróc d÷ liÖu tËp trung
NguyễnVănVỵ
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
Kho d÷ liÖu
(repository)
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
Bộ môn Công nghệ phần mềm – ĐHCN
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
10
KiÕn tróc cña bé c«ng cô CASE
NguyễnVănVỵ
Bé ph©n
tÝch thiÕt kª
Bé biªn tËp
thiÕt kÕ
Bé biªn tËp
ch−¬ng tr×nh
Kho d÷ liÖu cña dù ¸n
(präject repository)
Bé dÞch
thiÕt kÕ
Bộ môn Công nghệ phần mềm – ĐHCN
Bé t¹o sinh
m·
Bé t¹o sinh
b¸o c¸o
11
KiÕn tróc d÷ liÖu trung t©m(t)
NguyễnVănVỵ
¦u ®iÓm
TiÖn lîi cho chia sÎ d÷ liÖu lín
Ph©n hÖ kh«ng cÇn biÕt d÷ liÖu ®−îc qu¶n lý vμ
t¹o ra nh− thÕ nμo (sao l−u, b¶o mËt,..)
Nh−îc ®iÓm
C¸c hÖ con ph¶i theo m« h×nh d÷ liÖu cña kho
ViÖc tiÕn ho¸ d÷ liÖu lμ khã kh¨n vμ ®¾t ®á
Khã cã chÝnh s¸ch qu¶n lý riªng cho c¸c hÖ con
Khã ph©n bè d÷ liÖu mét c¸ch hiÖu qu¶
Bộ môn Công nghệ phần mềm – ĐHCN
12
KiÕn tróc client-server
NguyễnVănVỵ
M¸y kh¸ch 1
M¸y kh¸ch 2
M¸y kh¸ch 3
M¸y kh¸ch 4
M¹ng b¨ng th«ng réng
server
server
server
server
Danh môc
fim
¶nh sè
web HTML
Bộ môn Công nghệ phần mềm – ĐHCN
13
KiÕn tróc client-server (t)
NguyễnVănVỵ
¦u ®iÓm
Ph©n phèi d÷ liÖu trùc tiÕp
Sö dông hiÖu qu¶ m¹ng, dïng thiÕt bÞ rÎ h¬n
DÔ dμng më réng, thªm dÞch vô
Nh−îc ®iÓm
C¸c hÖ con dïng cÊu tróc d÷ liÖu kh¸c nhau kh«ng
chia sÎ ®−îc, trao ®æi d÷ liÖu cã thÓ kh«ng hiÖu qu¶
Qu¶n lý ë mçi server lμ d− thõa
Kh«ng l−u gi÷ chung tªn vμ dÞch vô -> khã t×m server
hay dÞch vô rçi
§ang lμ m« h×nh ph¸t triÓn øng dông phæ biÕn
Bộ môn Công nghệ phần mềm – ĐHCN
14
KiÕn tróc ph©n tÇng
Layered Architecture
C¸c thμnh phÇn
NguyễnVănVỵ
tÇng giao diÖn
ng−êi dung
tÇng øng dông
tÇng tiÖn Ých
tÇng lâi
M« h×nh m¸y trõu t−îng
Bộ môn Công nghệ phần mềm – ĐHCN
15
KiÕn tróc ph©n tÇng (t)
NguyễnVănVỵ
Dïng ®Ó m« hinh hãa giao diÖn cña c¸c ph©n hÖ
(sub-systems)
Ph©n r· hÖ thèng thμnh c¸c tÇng, mçi tÇng lμ mét
tËp c¸c dÞch vô
Hç trî sù ph¸t triÓn t¨ng tr−ëng cña c¸c tÇng, khi
giao diÖn mçi tÇng thay ®æi thi chØ ¶nh h−ëng tíi c¸c
tÇng liÒn kÒ
Kh«ng ph¶i hÖ thèng nμo còng dÔ dμng ph©n chia
theo m« hinh nμy
Bộ môn Công nghệ phần mềm – ĐHCN
16
KiÕn tróc ph©n tÇng tham kh¶o OSI
NguyễnVănVỵ
tầng ứng dụng
tầng ứng dụng
tầng trình diễn
tầng trình diễn
tầng phiên
tầng phiên
tầng giao vận
tầng giao vận
tầng mạng
Tầng mạng
tầng mạng
tầng liên kết dữ liệu
tầng liên kết dữ liệu
tầng liên kết dữ liệu
tầng vật lý
tầng vật lý
tầng vật lý
Phương tiện giao tiếp
Hình 3.15 Kiến trúc của mô hình tham chiếu OSI
Bộ môn Công nghệ phần mềm – ĐHCN
17
KiÕn tróc gäi & tr¶ l¹i
Call and Return Architecture
NguyễnVănVỵ
s« m« ®un ra
®é s©u
s« m«
®un vμo
®é réng
Bộ môn Công nghệ phần mềm – ĐHCN
18
KiÕn tróc luång d÷ liÖu
Data Flow Architecture
LËp ho¸
®¬n
§¬n hµng
Ho¸ ®¬n
T×m tµI
kho¶n TT
®äc ®¬n
hµng
LËp giÊy
nh¾c t.to¸n
NguyễnVănVỵ
KiÓm tra
thanh to¸n
GiÊy nh¾c
PhiÕu thanh
to¸n
HÖ thèng xö lý ®¬n hμng
Bộ môn Công nghệ phần mềm – ĐHCN
19
KiÕn tróc h−íng ®èi t−îng
Object-oriented architecture
Customer
NguyễnVănVỵ
Receipt
customer#
name
address
credit period
Invoice
invoice#
date
amount
customer#
invoice#
date
amount
customer
Payment
issue ()
sendReminder ()
acceptPayment ()
sendReceipt ()
invoice#
date
amount
customer#
HÖ thèng xö lý ®¬n hμng
Bộ môn Công nghệ phần mềm – ĐHCN
20