Bài 4: Thiết kế hệ thống phần mềm. Bài giảng bao gồm các nội dung về: Khái niệm, một số hoạt động chính trong giai đoạn thiết kế, vai trò của thiết kế, quy trình thiết kế, sự ghép nối (Coupling)... Mời các bạn cùng tham khảo.
Trang 1THI T K H TH NG PH N M M Ế Ế Ệ Ố Ầ Ề
BM CNPM – Khoa CNTT –
HVKTQS 10/2012
Trang 3Khái ni m ệ
Ho t đ ng thi t k s đạ ộ ế ế ẽ ược th c hi n sau khi ự ệtài li u yêu c u đệ ầ ược xác đ nhị
Là quá trình chuy n hóa các đ c t yêu c u ể ặ ả ầ
ph n m m thành m t bi u di n thi t k c a ầ ề ộ ể ễ ế ế ủ
h th ng PM c n xây d ng, sao cho ngệ ố ầ ự ười
l p trình có th ánh x nó thành m t chậ ể ạ ộ ương trình
M c đích: T o ra b n thi t k ụ ạ ả ế ế đúng
Trang 4M t s ho t đ ng chính trong ộ ố ạ ộ
giai đo n thi t k ạ ế ế
Nghiên c u đ hi u v n đứ ể ể ấ ề
Ch n m t s gi i pháp thi t k và xác ọ ộ ố ả ế ế
đ nh các đ c đi m thô c a nóị ặ ể ủ
Mô t tr u tả ừ ượng cho m i gi i pháp thi t ỗ ả ế
k , các sai sót c n phát hi n và ch nh s a ế ầ ệ ỉ ử
trước khi l p tài li u TK chính th cậ ệ ứ
Trang 5Vai trò c a Thi t k ủ ế ế
Là cách duy nh t đ chuy n hóa m t cách chính xác ấ ể ể ộ các yêu c u c a khách hàng thành mô hình thi t k ầ ủ ế ế
h th ng ph n m m cu i cùng làm c s cho vi c ệ ố ầ ề ố ơ ở ệ tri n khai ch ể ươ ng trình PM
Là công c giao ti p gi a các nhóm cùng tham gia ụ ế ữ phát tri m ph n m m, qu n lý r i ro, đ t đ ể ầ ề ả ủ ạ ượ c PM
Trang 6Các khái ni m trong thi t k ệ ế ế
Tr u t ừ ượ ng hóa (abstraction): chia ra 3 m c cao ứ
nh t, m c v a, m c th p, có các d ng tr u t ấ ứ ừ ứ ấ ạ ừ ượ ng
nh tr u t ư ừ ượ ng th t c, tr u t ủ ụ ừ ượ ng d li u, tr u ữ ệ ừ
t ượ ng đi u khi n ề ể
Phân rã (Decomposition): Chia nh đ i t ỏ ố ượ ng
Làm m n (refinement): Chi n l ị ế ượ c thi t k t trên ế ế ừ
xu ng ố
Modul: Chia thành các ph n riêng có tên và đ a ch ầ ị ỉ
Th t c ph n m m (software procedure) ủ ụ ầ ề
Che d u thông tin (information hidding) ấ
Trang 7Các giai đo n c n tr i qua ạ ầ ả
Thi t k ki n trúc: Xác đ nh các h con t o nên h ế ế ế ị ệ ạ ệ
th ng t ng th và m i quan h gi a chúng ố ổ ể ố ệ ữ
Đ c t tr u t ặ ả ừ ượ ng: Mô t tr u t ả ừ ượ ng các d ch v c a ị ụ ủ
h con ệ
Thi t k giao di n thành ph n ế ế ệ ầ
Thi t k h th ng giao di n ng ế ế ệ ố ệ ườ i dùng
Thi t k các thành ph n ế ế ầ
Thi t k c u trúc d li u ế ế ấ ữ ệ
Thi t k th t c (thu t toán): Stepwise refinement ế ế ủ ụ ậ
Trang 8Quy trình thi t k ế ế
Trang 9Các hình th c bi u di n ứ ể ễ
gi a các TP c a h th ng, v a là mô hình ữ ủ ệ ố ừ
mô t th gi i th cả ế ớ ự
ki m tra và c u trúc các c c u thi t k d a ể ấ ơ ấ ế ế ựtrên các c u trúc c a m t ngôn ng l p trìnhấ ủ ộ ữ ậ
các thông tin không th hình th c hóa để ứ ược
nh thông tin phi ch c năng bên c nh cách ư ứ ạ
mô t khácả
Trang 10Cách ti p c n chung c a ế ậ ủ
các p/pháp t/kế
Cách nhìn c u trúc – thông qua lấ ược đ c u ồ ấtrúc
Cách nhìn quan h th c th mô t c u trúc ệ ự ể ả ấ
d li u logic đữ ệ ược dùng
Cách nhìn lu ng d li u – th hi n quá trình ồ ữ ệ ể ệ
v n đ ng c a d li u ậ ộ ủ ữ ệ
Cách nhìn v n đ ng – Lậ ộ ược đ chuy n sang ồ ể
tr ng thái đ b sung cho các phạ ể ổ ương pháp trên
Trang 11 S ghép n i: ch ra m c đ đ c l p gi a các đ n v ự ố ỉ ứ ộ ộ ậ ữ ơ ị thành ph n c a m t ch ầ ủ ộ ươ ng trình. Có 5 lo i k t n i ạ ế ố
đ ượ c x p theo th t t t t đ n x u: Ghép n i d ế ứ ự ừ ố ế ấ ố ữ
li u, ghép n i nhãn, ghép n i đi u khi n, ghép n i ệ ố ố ề ể ố chung, ghép n i n i dung ố ộ
S k t dính c a các thành ph n, đ ự ế ủ ầ ượ c chia ra các
m c theo th t tăng d n: k t dính gom góp, k t ứ ứ ự ầ ế ế dính h i h p logic, theo th i đi m, th t c, truy n ộ ợ ờ ể ủ ụ ề thông, tu n t , ch c năng, đ i t ầ ự ứ ố ượ ng
Tính hi u đ ể ượ c liên quan đ n các đ c tr ng: Tính ế ặ ư
k t dính, đ t tên, so n t li u, đ ph c t p ế ặ ạ ư ệ ộ ứ ạ
Tính thích nghi đ ượ c cho quá trình b o trì – đ ả ượ c ghép n i l ng l o ố ỏ ẻ
Trang 12S ghép n i (Coupling) ự ố
Thông th ườ ng chúng ta nói đ n các h ế ệ
th ng đ ố ượ c module hóa
S ghép n i chính là m t trong nh ng ự ố ộ ữ tiêu chí đánh giá module hóa
Th hi n m c đ liên k t gi a các ể ệ ứ ộ ế ữ module
Trang 13Các tiêu chính đánh giá s k t n i ự ế ố
Trang 14Ki u ghép n i trong các h ể ố ệ
Ghép n i t ố ươ ng tác: Ph ươ ng th c c a ứ ủ
l p này kích ho t ph ớ ạ ươ ng th c c a l p ứ ủ ớ khác
Trang 15 Logic: T n t i các m i quan h logic gi a các thành ph n ồ ạ ố ệ ữ ầ
Theo th i gian: m i quan h logic trong th i gian ch y ờ ố ệ ờ ạ
Trang 16 Các th c th ph n m m nên đ ự ể ầ ề ượ c thi t ế
k m đáp ng nhu c u m r ng đ ế ở ứ ầ ở ộ ể đáp ng nhu c u, nh ng tránh thay đ i ứ ầ ư ổ (vào code đang có)
Trang 17Đánh giá thi t k t t ế ế ố
Thi t k ph n m m đế ế ầ ề ược g i là t t n u nó ọ ố ế
s n sinh ra m t chả ộ ương trình t i u. Càng ố ư
Trang 18Các gi i pháp cho m t thi t ả ộ ế
Trang 19Nh ng nguyên lý thi t k ữ ế ế
C n tính đ n m i cách ti p c n khác nhau thay vì 1 cách ầ ế ọ ế ậ
Có th l n v t tr l i mô hình hay b ể ầ ế ở ạ ướ c tr ướ c đó
Không nên gi i quy t v n đ đã đ ả ế ấ ề ượ c gi i quy t mà nên s ả ế ử
d ng l i ụ ạ
Ph i rút ng n kho ng cách ph n m m và v n đ t n t i h ả ắ ả ầ ề ấ ề ồ ạ ệ
th c ự
Th hi n đ ể ệ ượ c tính nh t quán và tích h p ấ ợ
C n đ ầ ượ c c u trúc đ d thay đ i ấ ể ễ ổ
Thi t k không ph i là mã hóa và ng ế ế ả ượ ạ c l i
C n đ ầ ượ c theo dõi ngay t đ u đ tránh l i ừ ầ ể ỗ
C n đ ầ ượ c đánh giá và rà soát ch t l ấ ượ ng
Trang 20M u thi t k ẫ ế ế
Trong công ngh ph n m m, m t ệ ầ ề ộ m u thi t k ẫ ế ế là m t gi i pháp t ng th cho ộ ả ổ ể các v n đ chung trong thi t k ph n m m. M t m u thi t k không ph i là ấ ề ế ế ầ ề ộ ẫ ế ế ả
m t thi t k hoàn thi n đ mà có th đ ộ ế ế ệ ể ể ượ c chuy n đ i tr c ti p thành mã; nó ể ổ ự ế
ch là m t mô t hay là s ỉ ộ ả ườ n (template) mô t cách gi i quy t m t v n đ mà ả ả ế ộ ấ ề
có th đ ể ượ c dùng trong nhi u tình hu ng khác nhau. Các m u thi t k h ề ố ẫ ế ế ướ ng
đ i t ố ượ ng th ườ ng cho th y m i quan h và s t ấ ố ệ ự ươ ng tác gi a các l p hay ữ ớ các đ i t ố ượ ng, mà không c n ch rõ các l p hay đ i t ầ ỉ ớ ố ượ ng c a t ng ng d ng ủ ừ ứ ụ
c th Các gi i thu t không đ ụ ể ả ậ ượ c xem là các m u thi t k , vì chúng gi i quy t ẫ ế ế ả ế các v n đ v tính toán h n là các v n đ v thi t k ấ ề ề ơ ấ ề ề ế ế
Các m u thi t k có th giúp tăng t c quá trình phát tri n ph n m m b ng cách ẫ ế ế ể ố ể ầ ề ằ cung c p các m u hình ( ấ ẫ paradigms) phát tri n đã đ c ch ng th c và ki m ể ượ ứ ự ể
ch ng. Đ thi t k ph n m m hi u qu đòi h i ph i xem xét các y u t mà ch ứ ể ế ế ầ ề ệ ả ỏ ả ế ố ỉ
tr nên rõ ràng sau khi hi n th c. Xác đ nh đ ở ệ ự ị ượ c chúng, thông qua các m u ẫ thi t k , chúng ta s thoát kh i chúng vì chúng có th d n đ n nh ng r c r i ế ế ẽ ỏ ể ẫ ế ữ ắ ố
l n và c i ti n kh năng d đ c c a mã cho ng ớ ả ế ả ễ ọ ủ ườ i vi t mã và các nhà ki n trúc ế ế
s c m th y quen thu c v i các m u ẽ ả ấ ộ ớ ẫ
Trang 21Phân lo i m u thi t k ạ ẫ ế ế
Các m u thi t k có th đ ẫ ế ế ể ượ c phân lo i d a vào nhi u tiêu chí, ạ ự ề chung nh t là d a vào v n đ c b n mà chúng gi i quy t. ấ ự ấ ề ơ ả ả ế
Theo tiêu chu n này, các m u thi t k có th đ ẩ ẫ ế ế ể ượ c phân lo i ạ thành nhi u l p, m t s trong chúng là: ề ớ ộ ố
Trang 22Ph ươ ng pháp thi t k ph n m m ế ế ầ ề
Ph ươ ng pháp h ướ ng c u trúc ấ
Ph ươ ng pháp h ướ ng đ i t ố ượ ng
Ph ươ ng pháp thi t k theo th i gian ế ế ờ
th c ự
Trang 23Ph ươ ng pháp h ướ ng c u trúc ấ
H th ng đ ệ ố ượ c phân chia thành các
ch c năng, b t đ u m c cao nh t, và ứ ắ ầ ở ứ ấ
Trang 24Thi t k d li u ế ế ữ ệ
Thi t k d li u ế ế ữ ệ
G m 2 b ồ ướ c: Thi t k DL logic và TK CSDL v t lý ế ế ậ
Thi t k DL logic: Đ u vào c a b ế ế ầ ủ ướ c này là mô hình th c th quan h , đ ự ể ệ ượ c mô t ả
Thi t k CSDL v t lý: Th c hi n trên CS mô hình quan h nh n đ ế ế ậ ự ệ ệ ậ ượ c, l a ch n h qu n ự ọ ệ ả
tr CSDl ti n hành phi chu n hóa, thi t k t p ị ế ẩ ế ế ệ
Thi t k x lý ế ế ử
G m 2 b ồ ướ c: TK x lý logic & TK ki n trúc modul ử ế
Thi t k x lý logic: Xu t phát t lu ng DL v t lý , b đi các y/t v t lý và c u trúc l i đ ế ế ử ấ ừ ồ ậ ỏ ố ậ ấ ạ ể
mô hình v n đ m b o th c hi n đúng các ch c năng ẫ ả ả ự ệ ứ
Thi t k ki n trúc modul: Tr ế ế ế ướ c h t c n xác đ nh lu ng h th ng t bi u đ lu ng DL ế ầ ị ồ ệ ố ừ ể ồ ồ
b ng cách ch n các ti n trình máy th c hi n và ph ằ ọ ế ự ệ ươ ng th c th c hi n ứ ự ệ
Ư u và nh ượ c đi m ể
Đã có th i gian phát tri n lâu dài nên các ph ờ ể ươ ng pháp và các công c cũng đã hoàn ụ thi n ệ
Có các h q/tr CSDL m nh: SQLServer, Oracle tr giúp vi c l u tr và t đ ng hóa cao ệ ị ạ ợ ệ ư ữ ự ộ
Thích h p v i các bài toán x lý trên các DL có th mô t d ng b ng ợ ớ ử ể ả ở ạ ả
Tuy nhiên h n ch v i các bài toán DL đa d ng và đòi h i nhi u đ i t ạ ế ớ ạ ỏ ề ố ượ ng t ươ ng tác v i ớ nhau
N u HT s d ng CSDL dùng chung nên khó SD l i và sai sót m t s b ph n thì nh ế ử ụ ạ ở ộ ố ộ ậ ả
h ưở ng đ n toàn h th ng ế ệ ố
Trang 25Các b ướ c trong thi t k ế ế
h ướ ng c u trúc ấ
Phát bi u l i bài toán nh m t DFD ể ạ ư ộ
Ch ra các thành ph n d li u vào/ra ỉ ầ ữ ệ
Phân chia m c cao ứ
Phân chia m c chi ti t ở ứ ế
=> L ượ c đ c u trúc (structural charts) ộ ấ
Trang 26 Ư u đi m: ể
Quen thu c ộ
Xây d ng h th ng thông qua bi u đ lu n d li u, mô t vi c ự ệ ố ể ồ ồ ữ ệ ả ệ
bi n đ i d li u m t cách logic. Đây là k t qu h p nh t c a ế ổ ữ ệ ộ ế ả ợ ấ ủ nhi u ph ề ươ ng pháp di n t d li u vào ra qua m t dãy bi n ễ ả ữ ệ ộ ế
đ i. Ngoài ra ng ổ ườ i ta còn ph i xây d ng các b ng bi u d ả ự ả ể ữ
li u, các m i liên k t cũng nh l ệ ỗ ế ư ượ c đ c u trúc đ th hi n ồ ấ ể ể ệ
c u trúc c a h th ng ấ ủ ệ ố
Nh ượ c đi m: ể
Do chung nhau tr ng thái h th ng nên vi c thay đ i m t ạ ệ ố ệ ổ ộ
ch c năng nào đó thì s nh h ứ ẽ ả ưở ng đ n các ch c năng khác ế ứ
=> Ph ươ ng pháp này ch đ ỉ ượ c s d ng t t khi các bi n dùng ử ụ ố ế chung, các tr ng thái chung ít và ph i đ ạ ả ượ c xác đ nh m t cách ị ộ
rõ ràng.
Trang 27Ví d : Ch ụ ươ ng trình đ m s ế ố từ
Trang 28Ph ươ ng pháp h ướ ng đ i t ố ượ ng
Trang 29Th a k ừ ế
Trang 30Khái ni m v Thi t k ệ ề ế ế
Là m t ph n c a c a chi n l ộ ầ ủ ủ ế ượ c phát tri n đ nh h ể ị ướ ng đ i ố
+ V i m i gói thi t k ca s d ng t ớ ỗ ế ế ử ụ ươ ng ng ứ
+ Xây d ng bi u đ t ự ể ồ ươ ng tác
+ Thi t k chi ti t các l p ế ế ế ớ
+ Phân tích và hoàn thi n bi u đ l p d a trên m u thi t k ệ ể ồ ớ ự ẫ ế ế
Trang 31u và nh c đi m
D b o trì, m i thay đ i c a đ i tễ ả ọ ổ ủ ố ượng không làm nh hả ưởng đ n các đ i tế ố ượng khác
Các đ i tố ượng có th s d ng l i để ử ụ ạ ược
Có th ph n ánh để ả ược th gi i th c m t cách ế ớ ự ộ
c thụ ể
Tuy nhiên có nhược đi m nh : khó th c hi n ể ư ự ệ
vì khó xác đ nh đ i tị ố ượng c a h th ng. ủ ệ ố
Thường cách nhìn t nhiên là nhìn ch c năng ự ứ
Trang 32 UML là ngôn ng mô hình hóa th ng nh t, là ữ ố ấngôn ng chu n cho phát tri n ph n m m ữ ẩ ể ầ ề
hướng đ i tố ượng
L p (class) đ đ c t các đ i tớ ể ặ ả ố ượng được
bi u diên b ng hình vuông có tên và các ể ằthu c tính cũng nh phộ ư ương th cứ
Các l p có m i quan h v i nhau: quan h ớ ố ệ ớ ệ
ph c thu c, quan h k th a, quan h k t ụ ộ ệ ế ừ ệ ế
h p (gi a toàn th và b ph n), quan h k t ợ ữ ể ộ ậ ệ ế
t p (đ i tậ ố ượng và thành ph n c u thành c a ầ ấ ủnó)
Trang 33Ví dụ
Trang 34attributes operations
L p/đ i t ớ ố ượ ng
Trang 36Member
memberNumber firstName
lastName telephone address city etc
checkOutVideo checkInVideo buyItem
Top: Class Name Middle: attributes Bottom: operations
Class
Trang 37Person
A generalization connects a subclass
to its superclass. It denotes an inheritance of attributes and behavior from the superclass to the subclass and indicates a specialization in the subclass
of the more general superclass.
Student
Trang 39Role
attributes operations
Staff
attributes operations
Visitor
attributes operations
Trang 40attributes operations
Poor Generalization Example (violates the “is a” or “is a kind of” heuristic)
Head
attributes operations
Trang 41• roles have multiplicity (e.g., cardinality, constraints)
• To restrict navigation to one direction only, an arrowhead is used to indicate the navigation direction
No inheritance as in generalizations
Trang 42 Multiplicity: refers to how many objects of one class can relate to each object of another
Trang 44Association Relationships (Cont’d)
Instructor Student
1 *
Trang 45Association Relationships (Cont’d)
The example indicates that every Instructor has one or more Students:
Instructor Student
1 *
Trang 47Association Relationships (Cont’d)
We can also name the association.
Team
Trang 48Association Relationships (Cont’d)
We can specify dual associations.
Team Student
member of 1 *
president of
1 *
Trang 49Association Relationships (Cont’d)
Trang 50Association Relationships (Cont’d)
Associations can also be objects themselves, called link classes or an
association classes.
Warranty Product
Registration
modelNumber serialNumber warrentyCode
Trang 51Association Relationships (Cont’d)
We can model objects that contain other objects by way of special
associations called aggregations and compositions.
An aggregation specifies a wholepart relationship between an aggregate (a
whole) and a constituent part, where the part can exist independently from the aggregate. Aggregations are denoted by a hollowdiamond adornment
on the association.
Car
Engine Transmission
Trang 521 1 1
1 1
1 *
Trang 53Các l ượ c đ UML ồ
L ượ c đ l p ồ ớ
L ượ c đ tu n t ồ ầ ự
Trang 54L ượ c đ l p ồ ớ
Trang 55L ượ c đ tu n t ồ ầ ự
Trang 56 V i m i kích thích t ớ ỗ ươ ng ng xác đ nh các ràng bu c ứ ị ộ
Phân tích các kích thích và quá trình x lý đáp ng thành 1 ti n trình song song ư ứ ế
V i m i c p kích thích/đáp ng thi t k các thu t toán t ớ ỗ ặ ứ ế ế ậ ươ ng ng ứ
Thi t k h th ng l p l ch đ m b o các quá trình đ ế ế ệ ố ậ ị ả ả ượ c b t đ u đúng th i đi m ắ ầ ở ờ ể thích h p ợ
Tích h p h th ng d ợ ệ ố ướ ự ề i s đi u khi n c a m t b đi u ph i th i gian th c ể ủ ộ ộ ề ố ờ ự
Trang 59B đi u ph i không gian th c ộ ề ố ự
Ch u trách nhi m qu n lý quá trình và đ nh v tài ị ệ ả ị ị
nguyên trong h th i gian th c ệ ờ ự
T ươ ng t h đi u hành trong máy tính v i m c đích ự ệ ề ớ ụ khái quát hóa
V i các h/th ng c n cung c p d ch v liên t c thì ớ ố ầ ấ ị ụ ụ
c n thêm b qu n lý c u hình và b qu n lý l i ầ ộ ả ấ ộ ả ỗ
Các kích thích tùy theo m c đ quan tr ng mà có ứ ộ ọ
m c u tiên khác nhau, g m 2 m c ứ ư ồ ứ
M c ng t: Là m c u tiên cao nh t ứ ắ ứ ư ấ
M c đ ng h : M c sau ứ ồ ồ ứ
Trang 60 H giám sát s có ho t đ ng tệ ẽ ạ ộ ương ng khi ứ
có c m bi n ngo i lả ế ạ ệ
Thi t kê này d a trên s phân tích c th ế ự ự ụ ể
Trang 61Th ướ c đo (metrics) thi t k ế ế
Kích thước: s lố ượng modules
Đ ph c t pộ ứ ạ
M i m t module s có m t đ ph c t p ỗ ộ ẽ ộ ộ ứ ạ
Dc = kichthuoc*(s t h p đ u vào và đ u ra)^2 ố ổ ợ ầ ầ
Trong các h OO, đ ph c t p c a l p đệ ộ ứ ạ ủ ớ ược tính b ng t ng các đ ph c t p c a các ằ ổ ộ ứ ạ ủ
phương th cứ
Đ sâu c a cây th a k trong OOộ ủ ừ ế
Trang 62Tài li u đ c t thi t k ệ ặ ả ế ế
IEEE 10161998, also known as the Recommended Practice for Software Design Descriptions, is an IEEE standard that specifies an organizational
structure for asoftware design description (SDD). An SDD is a document used
to specify system architecture and application design in a software related
project.