ế

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

Pipe­and­Filter Chia s  d  li u (Shared­data) ẻ ữ ệ Client ­ Server

Pipe­and­Filter

ầ ậ

ữ ệ ế ữ ệ ầ ổ

ử ừ ể ế ổ ộ  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  pipe­connector ụ ệ ố ừ ế ệ trong 1 t p

ẻ ữ ệ

Chia s  d  li u (Shared­data)

 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 (Shared­data)

ữ ệ ữ ệ ệ ẻ ữ  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ụ

Client­Server

ể ế ố ớ

ỉ ộ

 Two components: Client và Server  Client ch  có th  k t n i v i Server  Ch  có m t lo i connector (between C­S)

Ví dụ

Ví dụ

ế

 Mô  hình  n­tier:  các  tier  g i  các  yêu  c u  đ n

ế

các l p ti p theo

ớ ụ ể  C  th : 3­tier: client/business/database tiers  Phân bi

t n­tier và n­layer

ế ớ  N­tier:  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 ứ

 N­layer:

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., McGraw­Hill, 2001. Chapter 14.  I.  Sommerville,  Software  Engineering.  5th  Ed.,

Addison­Wesley, 1995. Chapter 10.

 Wendy  Boggs,  Michael  Boggs.  Mastering  UML  with  Rational Rose 2002. Copyright © 2002 SYBEX Inc.