ế
ề
ầ
Ki n trúc ph n m m
BM CNPM – Khoa CNTT –
HVKTQS
10/2012
ớ
ệ
Gi
i thi u chung
ủ ề
ể
ầ
ơ ả
ế ệ ầ ị ế
Vai trò c a ki n trúc ph n m m
ế
Các ki u ki n trúc c b n
Chu n b tài li u cho ki n trúc ph n
ẩ
m mề
Đánh giá ki n trúc ph n m m
ế ề ầ
Khái ni mệ
ế
ầ
ề
Ki n trúc ph n m m
ầ
ộ ấ
ặ ề ặ
ề
ệ
ộ ự
ượ
ư
Qui trình thi
ế ế
t k các h th ng con cũng nh mô
ể
ệ ố
ề
ế ế
ế
software
(Software Architecture) <> m t c u trúc ph n m m,
ợ
thông qua đó m t s tích h p ch t v m t khái ni m
ấ
ệ ố
ủ
c a h th ng đ
c cung c p
ệ ố
ữ
ế
hình đi u khi n/giao ti p gi a các h th ng con <>
architectural design
ả ủ
K t qu c a qui trình thi
t k này chính là
architecture.
Khái ni mệ
ầ ế
ồ ộ ệ ố
ầ ủ
ầ
ề
ư ố ủ
ộ
ệ ữ ầ ề
Ki n trúc ph n m m c a m t h th ng
bao g m các thành ph n ph n m m,
các thu c tính c a chúng cũng nh m i
quan h gi a các thành ph n.
Vai trò
ể
ữ
ụ
Có vai trò quan tr ngọ trong p/tri n PM:
ế
Công c giao ti p gi a nh ng ng
ườ
i
ệ
ả ế
ử ụ
ề
ở
liên quan
ki n
ớ ự
i d
ề
ữ
(understanding and communication): Tài li u mô t
ẽ ự
trúc s đ oc s d ng b i nhi u thành viên liên quan t
ầ
án ph n m m
ệ
ố
ự
ế
ề
ệ
ố
Đ phân tích h th ng/xây d ng h th ng:
ự
ể ượ
ể
ể
ầ
ộ
ế
ề
ầ
ệ
ể
ạ
ử ụ
ơ
Ki n trúc
ỉ
ử ụ
c s d ng đ ch ra/d đoán các
ph n m m có th đ
ệ ố
ế
thu c tính c a h th ng. Ngoài ra n u ki n trúc ph n m m
ố
t, thì vi c s d ng phân ho ch đ phát
có phân ho ch t
tri n các ch c năng d dàng h n.
ướ
ớ Chúng ta có xu h
ề
ế
ệ
ể
ề
ầ
ầ
ủ
ạ
ứ
ể
ễ
ử ụ
ạ ở
ử ụ
ng s d ng
i
S d ng l
quy mô l n:
ầ
ầ
ủ
ạ
i các ph n c a ph n m m, do đó, ki n trúc là thông thông
l
ủ
ế
ọ
t các ph n c a ph n m m.
tin quan tr ng trong vi c hi u bi
Vai trò
ộ
ư
ế
ộ
ể
ộ
ầ
ộ
ạ
ự
ỹ ư
ế ề ệ ố
ự
ầ
t v h th ng c n xây d ng
ệ
ể
ng hi u bi
ả
ổ ế
ừ ớ
ử
ủ
ả
ạ
Ki n trúc không ph i là thành ph n ho t
ế
đ ng nh ng nó có tác đ ng sâu r ng đ n
ả
quá trình phát tri n PM, nó là m t lo t mô t
ệ
PM mà cho phép các k s PM th c hi n
công vi c:ệ
ườ
Tăng c
Phân tích hi u qu
Xem xét, s a đ i ki n trúc t
ả
s m, gi m r i ro
ề
ầ
ế
Các mô hình ki n trúc ph n m m
ườ
ượ
Có nhi u mô hình khác nhau, th
ng đ
c
ề
ậ
ộ ậ
ượ
ầ
ph n đ
ộ ố ặ
ướ
i m t s m t:
nhìn nh n d
ế
ệ
Mô hình ki n trúc tĩnh – các h con hay các thành
ể
c phát tri n đ c l p
ộ
ế
ệ ố
Mô hình ti n trình đ ng h th ng đ
ượ ổ
c t
ứ
ch c
ế
ậ
thành các ti n trình v n hành
ư
ệ
ệ
ị
Mô hình giao di n – xác đ nh giao di n đ a ra các
ị
ụ
d ch v
ữ
ế
ỉ
ệ
Mô hình liên k t – ch ra m i liên k t gi a các h
ữ
ố
ế
ầ
con hay gi a các thành ph n
Mô hình phân tán
ả
Gi
i thích
ế
ầ
ề
Các mô hình ki n trúc ph n
m m (Cách nhìn khác)
Module
Thành ph n và k t n i (Component &
ế ố
ấ ầ
Connector – C&C)
C p phát (Allocation)
Mô hình Module
ượ ợ
ậ
ư
ị ẽ ả ệ
ế ầ
ệ ố
c coi nh là t p h p các
H th ng đ
ỗ ơ
ơ
ị
đ n v mã. M i đ n v s đ m nhi m
ứ
ộ
m t vài ph n ch c năng > Ki n trúc
tĩnh
Ví d : Package, classes,…
ụ
ấ
Mô hình c p phát
Mô hình xác d nh cách các đ n v ph n
ầ ơ ị ị
ấ ơ ị
c c p phát cho các đ n v
ượ
ứ ề
m m đ
ầ
ph n c ng.
Mô hình C&C
ợ ậ ự ể
ế
ụ ậ ợ ng
Mô hình là t p h p các th c th runtime
ế
> Ki n trúc liên k t
ố ượ
Ví d : T p h p các đ i t
ố
ấ
Connector cung c p m i liên h gi a
ệ ữ
các thành ph nầ
ổ ế ấ
Đây là mô hình ph bi n nh t
ộ ố ạ
M t s lo i C&C
PipeandFilter
Chia s d li u (Shareddata)
ẻ ữ ệ
Client Server
PipeandFilter
ầ ậ
ữ ệ
ế ữ ệ ầ ổ
ử ừ ể ế ổ ộ
Nh n d li u đ u vào và thông qua b
ọ
l c và bi n đ i thành d li u đ u ra
D li u bi n đ i có th đuwocj g i t
ữ ệ
ộ ọ
Ví d h th ng đ m t
ộ
b l c này sang b lóc khác thông qua
pipeconnector
ụ ệ ố ừ ế ệ trong 1 t p
ẻ ữ ệ
Chia s d li u (Shareddata)
Bao g m 2 thành ph n
ữ ệ ậ
ầ
ậ
Kho d li u t p trung (data repositories)
Thành ph n truy nh p (Data accessors)
ồ ầ
ẻ ữ ệ
Chia s d li u (Shareddata)
ữ ệ
ữ ệ ệ ẻ ữ
D li u chia s gi a các thành viên
D li u riêng cho m i thành ph n. Vi c
ỗ
ử ẻ ầ
ệ
chia s thông qua g i thông đi p
Ví dụ
ClientServer
ể ế ố ớ
ỉ
ộ
ạ
ỉ
Two components: Client và Server
Client ch có th k t n i v i Server
Ch có m t lo i connector (between CS)
Ví dụ
Ví dụ
ử
ế
ầ
Mô hình ntier: các tier g i các yêu c u đ n
ế
các l p ti p theo
ệ
ớ
ụ ể
C th : 3tier: client/business/database tiers
Phân bi
t ntier và nlayer
ế ớ
Ntier: m i tier là m t component và liên k t v i
ỗ
ầ
ộ
ằ
ứ
ậ
thành ph n lân c n b ng giao th c
ứ
Nlayer:
ch c
ị
thành các module và các
ở
ụ ủ
ạ
ổ
t
ẽ
modules s kích ho t các d ch v c a modules
ơ
ấ
ớ
l p th p h n
ộ ố
M t s mô hình khác
ộ ệ
: M t h con có trách
ể
ừ
ề
ệ
ở ộ
ồ
ọ
ả
ể
ự ệ : Thông tin
ể ậ
Đi u khi n t p trung
ệ
ề
nhi m đi u khi n, kh i đ ng hay d ng h
con khác. G m có:
ả ạ
i
Mô hình g i – tr l
Mô hình qu n lý (manager model)
ự
Đi u khi n d a trên s ki n
ượ
ộ ố ệ
ề
ề
ế
ể
ể
c chuy n đ n m t s h con
ự ệ ừ
ứ
ể
ể
ể
đi u khi n đ
ỗ ệ
khác, m i h con có th đáp ng s ki n t
ồ
bên ngoài. G m có:
ả
ề
Mô hình đi u khi n qu ng bá
ắ
ề
Mô hình đi u khi n ng t
ể
ề
ả
Mô hình đi u khi n qu ng bá
ể ắ
ề
Mô hình đi u khi n ng t
ế
ề
ệ
ầ
Tài li u cho ki n trúc ph n m m
ệ ữ ả ạ ậ
ủ ố
ả
Bao g m:ồ
ố
Ng c nh h th ng: nh n d ng các
stakeholders và các m i quan tâm c a
họ
mô hình ki n trúc
Mô t
Các cách nhìn nh n khác nhau
ế
ậ
ế
ề
ầ
Đánh giá ki n trúc ph n m m
ầ
ả
ế
ớ
ng l n t
ặ
ấ
ệ
ớ
ưở
i
Ki n trúc ph n m m có nh h
ư
ứ
ng phi ch c năng nh
ộ
ữ
ặ
ể
Chúng ta s s d ng nh ng đ c tính này đ
ứ
ng pháp hình th c
ấ
ủ ụ
ừ
ế
ươ
ng pháp th t c l y ý ki n t
phía
ề
ấ ượ
các đ c tính ch t l
ậ
ộ
hi u su t, đ tin c y, đ an toàn, vv…
ẽ ử ụ
ế
đánh giá ki n trúc
Dùng các ph
ươ
Dùng ph
stakeholders
Câu h iỏ
Tài li u ki n trúc ph n m m nên có
ề ầ
ữ ế
ệ
nh ng gì?
ệ
ả
Tài li u tham kh o
ệ
ầ
ề
ườ
ậ
ị
ụ
ộ
R. Pressman, K ngh ph n m m. T p 1, 2, 3. NXB
i d ch: Ngô Trung
ỹ
Giáo d c, Hà N i, 1997 (Ng
Vi
t).ệ
R. Pressman, Software Engineering: A Practioner’s
Approach. 5th Ed., McGrawHill, 2001. Chapter 14.
I. Sommerville, Software Engineering. 5th Ed.,
AddisonWesley, 1995. Chapter 10.
Wendy Boggs, Michael Boggs. Mastering UML with
Rational Rose 2002. Copyright © 2002 SYBEX Inc.