Mөc tiêu cӫa hӑc phҫn: Cung cҩp các kiӃn thӭFFѫEҧn vӅ phân tích, thiӃt kӃ hӋ thӕng thông tin tin hӑc hoá theo mô hình KѭӟQJÿӕLWѭӧng sӱ dөng UML.. - Tiêu chuҭQÿiQKJLiVLQKYLrQFăQFӭ vào sӵ
Trang 175ѬӠ1*ĈҤI HӐC HÀNG HҦI VIӊT NAM KHOA CÔNG NGHӊ THÔNG TIN
BӜ MÔN Hӊ THӔNG THÔNG TIN
75Î1+ĈӜ Ĉ¬27ҤO : ĈҤI HӐC CHÍNH QUY
DÙNG CHO SV NGÀNH : CÔNG NGH ӊ THÔNG TIN
HҦI PHÒNG - 2011
Trang 2Nӝi dung Trang
2.5 Sӵ WѭѫQJWiFOүn nhau cӫa lӟSYjÿӕLWѭӧng 15
3.1 Tҫm quan trӑng cӫa sӵ phân loҥi 16
4X\WUuQKYƭP{9zQJÿӡi cӫa triӇn khai phҫn mӅm 37
5.3 Quy trình vi mô: Quá trình phân tích và thiӃt kӃ 40
&KѭѫQJ0ӝt sӕ bài toán cө thӇ 44
6.2 Ӭng dөng mҥQJOѭӟi: HӋ thӕng theo dõi kǤ nghӍ 46
Trang 3Tên hӑc phҫn: Phân tích & ThiӃt kӃ hӋ thӕQJKѭӟQJÿӕLWѭӧng Loҥi hӑc phҫn: 2
Bӝ môn phө trách giҧng dҥy: HӋ thӕng Thông tin Khoa phө trách: CNTT
Mã hӑc phҫn: 17407 Tәng sӕ TC: 2
Hӑc phҫn hӑFWUѭӟc: Phân tích và ThiӃt kӃ hӋ thӕng
Hӑc phҫn tiên quyӃt: Không yêu cҫu
Hӑc phҫn song song: Không yêu cҫu
Mөc tiêu cӫa hӑc phҫn:
Cung cҩp các kiӃn thӭFFѫEҧn vӅ phân tích, thiӃt kӃ hӋ thӕng thông tin tin hӑc hoá theo mô hình
KѭӟQJÿӕLWѭӧng sӱ dөng UML
Nӝi dung chӫ yӃu:
3KѭѫQJSKiSOXұn phân tích thiӃt kӃ hӋ thӕQJKѭӟQJÿӕLWѭӧng; Nguyên tҳc và công cө mô hình hoá
hӋ thӕng; ThiӃt kӃ và FjLÿһt hӋ thӕQJKѭӟQJÿӕLWѭӧng; Các ví dө minh hoҥ
Nӝi dung chi tiӃt:
4X\WUuQKYƭP{9zQJÿӡi cӫa triӇn khai phҫn mӅm
5.3 Quy trình vi mô: Quá trình phân tích và thiӃt kӃ
6.2 Ӭng dөng mҥQJOѭӟi: HӋ thӕng theo dõi kǤ nghӍ
NhiӋm vө cӫa sinh viên:
Tham dӵ các buәi hӑc lý thuyӃt và thӵc hành, làm các bài tұSÿѭӧc giao, làm các bài thi giӳa hӑc
phҫn và bài thi kӃt thúc hӑc phҫQWKHRÿ~QJTX\ÿӏnh
Tài liӋu hӑc tұp:
1 Grady Booch, Robert A.Maksimchuk, Michael W.Engle, Bobbi J.Young, Ph.D, Jim
Conallen, Kelli A.Houston, Object-Oriented Analysis And Design with Application, Third
Edition
2 Robert V Stumpf, Lavette C Teague, Object-Oriented Systems Analysis and Design with
UML, Pearson Prentice Hall
ĈRjQ9ăQ%DQPhân tích và thi͇t k͇ h͏ th͙QJK˱ͣQJÿ͙LW˱ͫng, Nhà xuҩt bҧQĈ+4*+j
Nӝi, 2006
Trang 4Hình thӭc và tiêu chuҭQÿiQKJLiVLQKYLrQ:
- Hình thӭc thi: thi viӃt
- Tiêu chuҭQÿiQKJLiVLQKYLrQFăQFӭ vào sӵ tham gia hӑc tұp cӫa sinh viên trong các buәi hӑc lý thuyӃt và thӵc hành, kӃt quҧ làm các bài tұSÿѭӧc giao, kӃt quҧ cӫa các bài thi giӳa hӑc phҫn
Trang 5&+ѬѪ1*,: 0Ð+Î1+ĈӔ,7ѬӦ1*
6SKiWWUL͋QFͯDP{KuQKÿ͙LW˱ͫQJ
Trong mөc này chúng ta khҧo sát sӵ phát triӇn cӫa các công cө ÿӇ giúp chúng ta hiӇu sӵ thành lұp và các nét nәi bұt cӫa kӻ thuұW KѭӟQJ ÿӕL Wѭӧng Trong quá trình phát triӇn công nghӋ phҫn mӅm chúng ta có thӇ ÿӇ ý và nghiên cӭXWKHRKѭӟng sau:
- Phát triӇQFiFFKѭѫQJWUuQKQKӓ tӟLFiFFKѭѫQJWUuQKOӟn
- Sӵ phát triӇn cӫa các ngôn ngӳ lұp trình bұFFDRKѫQ
Hҫu hӃt tҩt cҧ FiFFKѭѫQJWUuQKSKҫn mӅPQJj\FjQJÿzLKӓi cao vào phӭc tҥSKѫQ&KtQKÿLӅu Qj\ÿmWK~Fÿҭy viӋc nghiên cӭXWURQJOƭQKYӵc công nghӋ phҫn mӅPPjÿһc biӋt quan tâm tӟi sӵ phân tích, trӯXWѭӧng và tә chӭc cho hӋ thӕQJĈLÿ{LYӟLÿLӅu này, viӋc phát triӇn các ngôn ngӳ lұp WUuQKFNJQJÿmÿiSӭQJÿѭӧc phҫn nào vӅ giҧi quyӃt yêu cҫu phӭc tҥp cӫa hӋ thӕng
:HQJHUÿmSKkQORҥi ra mӝt sӕ ngôn ngӳ lұp trình bұc cao phә biӃn và sҳp xӃp theo thӭ tӵ tùy thuӝc và mӝt sӕ ÿһc tính cӫa tӯng loҥi ngôn ngӳ:
- ThӃ hӋ ngôn ngӳ thӭ nhҩt (1954 -195)
Flowmatic BiӇu thӭc toán hӑc
mô hình phӭc tҥp
- ThӃ hӋ ngôn ngӳ thӭ ba (1962 ± 1970)
Pascal KӃ thӯDÿѫQJLҧn tӯ ALGOL 60 Simula Lӟp, trӯXWѭӧng dӳ liӋu
- *LDLÿRҥn (1970 - 7URQJJLDLÿRҥn này có rҩt nhiӅu ngôn ngӳ NKiFQKDXÿXӧc phát minh
ra Tuy nhiên có mӝt sӕ ngôn ngӳ VDXÿmÿѭӧc sӱ dөng rӝng rãi:
C HiӋu quҧ, có thӇ thӵFWKLÿXӧc
Trang 6- *LDLÿRҥQKѭӟQJÿӕLWѭӧng (1980 ± 1990)
Ada83 MҥQKKѫQ3DVFDO
- *LDL ÿRҥn Framework (1990 ± ngày nay): NhiӅu ngôn ngӳ mӟL ÿXӧc phát triӇn và yêu cҫu cҫn phҧi tuân theo mӝt tiêu chuҭQQjRÿy'RÿyGүQÿӃn viӋc lұp trình theo các Framework
hӑa cho các ӭng dөng Windows Java KӃ thӯa tӯ Oak
Wѭӧng J2EE DӵD WUrQ FiF )UDPHZRUN Fѫ Eҧn
cӫa Java NET DӵDWUrQFiFÿӕLWѭӧng Framework
FѫEҧn cӫa Microsoft Visual C#
Microsoft NET Bây giӡ chúng ta xem xét cҩu trúc cӫa mӛi thӃ hӋ ngôn ngӳ lұp trình Trong hình 1-1, chúng ta
có thӇ thҩy kiӃn trúc cӫa các ngôn ngӳ lұp trình ӣ thӃ hӋ thӭ nhҩWYjÿҫu thӡi kì thӭ 2 VӅ kiӃn trúc, chúng ÿѭӧc xây dӵng bӣi các khӕLFѫEҧn và các phҫQÿѭӧc liên kӃt vӟLQKDXQKѭWKӃ nào Trong hình này, chúng ta có thӇ thҩy rҵng các khӕLFѫEҧQÿӇ xây dӵng lên các ӭng dөQJOjFiFFKѭѫQJtrình con
Trang 7Các ӭng dөQJÿѭӧc viӃt bӣi nhӳng ngôn ngӳ Qj\WK{QJWKѭӡng ÿѭӧc thiӃt kӃ vӟLFiFFKѭѫQJtrình con và dӳ liӋu toàn cөF&iFPNJLWrQWUrQKuQKYӁ nói rҵQJFiFFKѭѫQJWUuQKSKө thuӝc vào các kiӇu dӳ liӋu khác nhau Trong suӕt quá trình thiӃt kӃ dӳ liӋu cӫa mӝWFKѭѫQJWUuQKFRQFyWKӇ tách biӋt vӟi dӳ liӋu cӫa các chѭѫQJWUuQKFRQNKiF Mӝt lӛi trong mӝt phҫn cӫDFKѭѫQJWUuQKFyWKӇ ҧnh Kѭӣng tӟi toàn bӝ hӋ thӕng bӣi vì cҩu trúc dӳ liӋu toàn cөFÿѭӧc sӱ dөng cho tҩWFiFFiFFKѭѫQJtrình con
Khi chúng ta cҫn chӍnh sӱa mӝt hӋ thӕng lӟn, khó có thӇ duy trì tính toàn vҽn cӫa thiӃt kӃ gӕc
KiӃn trúc cӫa ngôn ngӳ lұp trình ӣ cuӕLJLDLÿRҥQYjÿҫXJLDLÿRҥn 3
GiӳDQăPFXӕLFQJWKuFiFFKѭѫQJWUuQKFNJQJÿѭӧc công nhұn là trung gian giӳD³Yҩn ÿӅ´YjPi\WtQK³&KѭѫQJWUuQKÿҫu tiên, giӡ ÿѭӧc gӑi là thӫ tөF´FiFFKѭѫQJWUuQKFRQÿѭӧFÿӅ xuҩWWURQJJLDLÿRҥQQKѭQJQyYүQFKѭDÿѭӧFFRLQKѭOjPӝt abstraction ӣ thӡLÿLӇPÿy 6XESURJUDPVÿѭӧFÿiQKJLiQKѭOjPӝWKѭӟng tiӃp cұQÿӇ tách các chӭFQăQJFӫDFKѭѫQJWUuQK Các subprogram có thӇ phөc vө QKѭOjPӝWNƭWKXұt tóm tҳt có 3 hê quҧ quan trӑng Thӭ nhҩt, các ngôn ngӳ lұSWUuQKÿѭӧc hӛ trӧ vӟi nhiӅu các truyӅn tham sӕ khác nhau Thӭ hai, nӅn tҧng cӫa lұp trình cҩu trúc là sҳp xӃp, bӕ WUtU}UjQJWK{QJTXDFiFFKѭѫQJWUuQKFRQ7Kӭ EDSKѭѫQJSKiScҩu trúc thӇ hiӋQÿѭӧFѭXÿLӇm, cung cҩSFiFÿӏQKKѭӟQJÿӇ các nhà thiӃt kӃ cӕ gҳng xây dӵng mӝt
hӋ thӕng phӭc tҥSWK{QJTXDFiFFKѭѫQJWUuQKQKӓ KѫQÿѭӧc coi là các khӕLFKѭѫQJWUuQKFѫEҧn KiӃn trúc lұSWUuQKWURQJJLDLÿRҥn này chӍ ra mӝWYjLÿLӅu không phù hӧp cӫa các ngôn ngӳ WUѭӟc ÿy
Trang 8KiӃn trúc ngôn ngӳ lұp trình ӣ cuӕLJLDLÿRҥQÿҫXJLDLÿRҥn 3
KiӃn trúc cӫa ngôn ngӳ lұp trình ӣ cuӕLJLDLÿRҥn thӭ 3
7URQJJLDLÿRҥn này, viӋc phân tích thiӃt kӃ FiFFKѭѫQJWUuQKPDQJWtQKTX\P{Oӟn ngày càng nhiӅXYjÿzLKӓi nhiӅXÿӝi, nhiӅu nhóm phai tham gia cùng mӝt lúc, do vұy rҩt cҫn thiӃt phҧi chia FKѭѫQJWUuQKUDWKjQKFiFSKҫQNKiFQKDX'RÿyKuQKWKjQKYLӋFFKLDFiFFKѭѫQJWUuQKUDWKjQKcác module nhӓ QKѭÿѭӧc hiӇn thӏ ӣ KuQKGѭӟLÿk\
KiӃn trúc ngôn ngӳ lұp trình cӫa cuӕLJLDLÿRҥn 3
KiӃn trúc cӫDÿӕLWѭӧQJFѫEҧn và ngôn ngӳ lұSWUuQKKѭѫQJÿӕLWѭӧng
TrӯXWѭӧng hóa dӳ liӋu là quan trӑQJÿӇ kiӇm soát sӵ phӭc tҥp cӫa dӳ liӋu
1͉QW̫QJFͯDP{KuQKK˱ͣQJÿ͙LW˱ͫQJ
ThiӃt kӃ hӋ thӕQJ WKHR Kѭӟng cҩu trúc giúp nhӳng nhà lұp trình viên xây dӵng các hӋ thӕng phӭc tҥp sӱ dөng thuұWWRiQQKѭOjFiFNKӕLFѫ EҧQ7ѭѫQJWӵ, thiӃt kӃ hӋ thӕQJWKHRKѭӟQJÿӕi WѭӧQJJL~SQJѭӡi lұSWUuQKYLrQNKDLWKiFÿѭӧc nhӳQJÿLӇm mҥnh cӫDÿӕLWѭӧQJFѫEҧn và ngôn ngӳ lұSWUuQKKѭӟQJÿӕi tѭӧng, sӱ dөng lӟSYjÿӕLWѭӧQJQKѭOjFiFNKӕi xây dӵQJFѫEҧn
Trang 9Trên thӵc tӃP{KuQKÿӕLWѭӧQJÿmEӏ chi phӕi bәi mӝt sӕ tác nhân, không chӍ là ngôn ngӳ lұp WUuQK KѭӟQJ ÿӕL Wѭӧng Thӵc vұ\ QKѭ ÿm WKҧo luұn ӣ phҫQ WUѭӟc, nӅn tҧQJ P{ KuQK KѭӟQJ ÿӕi Wѭӧng, P{KuQKÿӕLWѭӧQJÿm FKӭng mình là mӝt khái niӋm thӕng nhҩt trong khoa hӑc máy tính, không chӍ thích hӧp vӟi ngôn ngӳ lұp trình mà còn thích hӧp vӟi thiӃt kӃ giao diӋQQJѭӡLGQJFѫ
sӣ dӳ liӋu, và ngay cҧ vӟi kiӃn trúc cӫa máy tính Nguyên nhân cӫa viӋFÿѭӧFѭDFKXӝng phә biӃn ÿyOjKѭӟQJÿӕLWѭӧQJJL~SFK~QJWDÿӕi phó vӟi các kӃ thӯa phӭc tҥp trong nhiӅu loҥi hӋ thӕng khác nhau
Phân tích và thiӃt kӃ KѭӟQJÿӕLWѭӧQJWKHRÿyÿѭDUDVӵ phát triӇn tiên tiӃQKѫQ1yNK{QJSKi
vӥ các cҩu trúc cӫDFKѭѫQJWUuQK ÿmÿѭӧc thiӃt kӃ WUѭӟFÿy7X\QKLrQKҫu hӃt các lұp trình viên
NK{QJÿѭӧc huҩn luyӋn khҳt khe kӻ QăQJSKkQWtFKYjWKLӃt kӃ KѭӟQJÿӕLWѭӧng
&iFSK̯QW͵FͯDP{KuQKÿ͙LW˱ͫQJ
Hҫu hӃt các lұp trình viên làm viӋc trên mӝt ngôn ngӳ và sӱ dөng chӍ mӝt phong cách lұp trình
Hӑ lұp trình theo mô hình mүu cӫa ngôn ngӳ mà hӑ sӱ dөng
Phong cách lұSWUuQKÿѭӧF[HPQKѭOjPӝt cách tә chӭFFKѭѫQJWUuQKGӵa trên mӝt sӕ các mô hình cӫa lұp trình và ngôn ngӳ ÿmYLӃWUDFKѭѫQJWUuQKPӝt cách rõ ràng Theo thӕng kê thì có mӝt
Không có mӝt kiӇu lұp trình nào mà tӕt nhҩWÿӕi vӟi tҩt các các loҥi ӭng dөng Ví dө: Lұp trình WKHRKѭӟng thӫ tөc thì tӕWÿӕi vӟi viӋc thiӃt kӃ FiFFKѭѫQJWUuQKOLrQTXDQWӟi viӋFWtQKWRiQ«Tӯ WUѭӟc tӟLQD\ÿmYjÿDQJWӗn tҥi nhiӅXSKѭѫQJSKiSÿѭӧc áp dөQJÿӇ phân tích thiӃt kӃ mӝt hӋ thӕng thông tin Mӝt trong nhӳQJSKѭѫQJSKiSÿyOjKѭӟng thӫ tөc, ÿѭӧc sӱ dөng trong viӋc giҧi quyӃt các vҩQÿӅ cӫa hӋ thӕng hiӋn tҥi hoһc cho viӋc xây dӵng mӝt hӋ thӕng mӟi Có nhiӅXSKѭѫQJSKiSÿѭӧc sӱ dөng cho viӋc thiӃt kӃ và phát triӇn hӋ thӕng thông tin bao gӗm: Systems Development Life Cycle (SDLC), Rapid Application Development (RAD), Object-Oriented Analysis and Design 3KѭѫQJ SKiS 6'/& ÿѭӧc sӱ dөng phә biӃn nhҩW ÿy Oj 6WUXFWXUHG 6\VWHP $QDO\VLV DQG 'HVLJQ3KѭѫQJSKiSFҩu trúc cho phép nhà phân tích chia nhӓ hӋ thӕng phӭc tҥp ra thành các hӋ thӕng nhӓ KѫQU}UjQJKѫQYjTXҧQOêFNJQJGӉ GjQJKѫQ
3KѭѫQJSKiS22$'FKӫ yӃXOjSKkQWtFKWKHRKѭӟQJÿӕLWѭӧQJKѫQOjKѭӟng thӫ tөFQKѭOjSKѭѫQJSKiS66$'0ӝWÿӕLWѭӧng là mӝWQJѭӡLÿӏa ÿLӇm hay mӝt sӵ vұWÿѭӧc mô tҧ hay tӗn tҥi trong hӋ thӕQJPjFyÿLӅu cҫn quan tâm:
- &iLJuÿӇ phân biӋt, nhұn biӃWQyĈӏnh danh cӫa nó và toàn bӝ các thuӝc tính)
Trang 103KkQWtFKKѭӟQJÿӕLWѭӧng là quá trình phát triӇn mӝWP{KuQKKѭӟQJÿӕLWѭӧng mà trong mô KuQKQj\FiFÿӕLWѭӧQJEDQÿҫu biӇu diӉn các thӵc thӇ YjFiFSKѭѫQJWKӭc liên quan tӟi vҩQÿӅ cҫn giҧi quyӃt
ThiӃt kӃ KѭӟQJÿӕi Wѭӧng là quá trình phát triӇn mӝWP{KuQKKѭӟQJÿӕLWѭӧQJWURQJJLDLÿRҥn này phҧL[iFÿӏQKÿѭӧc các yêu cҫu Nói tóm lҥLWURQJ22$' FK~QJWDÿӅ cұp tӟi thuұt ngӳ ÿӕi Wѭӧng nhiӅXKѫQOjFKӭFQăQJ
Phân tích và thiӃt kӃ hӋ thӕQJWKHRKѭӟng truyӅn thӕng
là nӅn tҧng cho mӑi hoҥWÿӝng và nhiӋm vө cҫn thiӃWÿӇ hoàn thành viӋc phát triӇn mӝt hӋ thӕng WK{QJWLQ3KѭѫQJSKiSQj\QKѭÿmÿӅ cұp ӣ phҫQWUѭӟFÿѭӧc gӑi là mô hình WKiFQѭӟc
- ĈLӅXÿҫXWLrQWURQJ66$'ÿyOjVӵ SKkQWtFKWKHRKѭӟng tӯ trên xuӕQJGѭӟi Ӣ ÿk\KӋ thӕQJÿѭӧc coi mӝt tәng thӇ EDQÿҫu Chӫ yӃu viӋc phân tích ӣ JLDLÿRҥQQj\ÿӇ hiӇXÿѭӧc nhӳQJÿһc tính cӫa hӋ thӕng, bӓ qua nhӳng phҫn nhӓ và chӍ tiӃt Nhӳng phҫn này sӁ ÿѭӧc phân tích sau
- TiӃp theo, phҥm vi cӫa hӋ thӕQJÿѭӧFÿӏQKQJKƭDOjQѫLKӋ thӕQJÿѭӧc triӇn khai Nhà phân tích tұp trung vào 2 mөFÿtFKFKtQK+Ӌ thӕng mӟi cҫn phҧi làm nhӳng gì và HӋ thӕng mӟi OjPQyQKѭWKӃ nào?
- 3KѭѫQJSKiSQj\\rXFҫXQJѭӡi dùng theo sát tӯ ÿҫu tӟi khi dӵ án hoàn thành Nhà phân tích sӁ gһp gӥ vӟLQJѭӡi dùng và giҧi quyӃt vҩQÿӇ, xác nhұt nhӳng vҩQÿӅ PjQJѭӡi dùng cҫn
- Hai vҩQÿӅ chính trong viӋc phát triӇn hӋ thӕQJWK{QJWLQÿyOjFiFTX\WUuQKYjGӳ liӋXÿѭӧc xây dӵQJÿӝc lұp vӟLSKѭѫQJSKiSQj\&iFTX\WUuQKÿѭӧc xây dӵng bӣLFiFOѭӧFÿӗ luӗng
dӳ liӋuOѭӧFÿӗ này mô phӓng luӗng dӳ liӋu giӳa quy trình và dӳ liӋXOѭXWUӳ YjQyÿѭӧc WKD\ÿәLQKѭWKӃ nào Mô hình dӳ liӋXÿѭӧFÿӏQKQJKƭDEҵng viӋc quan hӋ giӳa các thӵc thӇ (ERD), ERD mô tҧ dӳ liӋu (thӵc thӇ) và sӵ phӕi kӃt hӧp giӳa chúng
Trang 11- 3KkQWtFKKѭӟQJÿӕLWѭӧQJĈLӅu này liên quan tӟi phát triӇQP{KuQKKѭӟQJÿӕLWѭӧng cӫa ӭng dөQJ ĈLӅX Qj\ [iF ÿӏQK ÿӕL Wѭӧng biӇu diӉn các thӵc thӇ và quan hӋ giӳD FiF ÿӕi WѭӧQJYjSKѭѫQJSKiSFҫn thiӃWÿӇ giҧi quyӃt vҩQÿӅ
- ThiӃt kӃ KѭӟQJÿӕLWѭӧng: ĈLӅu này liên quan tӟi phát triӇQP{KuQKKѭӟQJÿӕLWѭӧng cӫa hӋ thӕng cҫn thiӃWÿӇ thӵc hiӋn các yêu cҫu Các nhà phân tích và lұp trình phҧLQJKƭWKXұt ngӳ ÿӕLWѭӧng nhiӅXKѫQOjFKӭFQăQJ
0{KuQKÿӕi Wѭӧng dӵa trên các yêu tӕ FѫEҧn bao gӗm: abstraction, encapsulation, modularity, KLHUDUFK\«0өc tiêu tұp trung ӫDP{KuQKÿӕLWѭӧQJOjSKkQWtFKÿӕLWѭӧng Mӝt hӋ thӕQJKѭӟng ÿӕLWѭӧng sӁ có mӝt sӕ ÿӕLWѭӧng, mӛLÿӕLWѭӧng này sӁ kӃt hӧp vӟLFiFÿӕLWѭӧng NKiFÿӇ hoàn thành mӝt nhiӋm vө
%jLW̵S
1) Trình bày sӵ phát triӇn cӫa các mô hình lұp trình?
2) Trình bày nӅn tҧng cӫDP{KuQKÿӕLWѭӧng?
3) Các thành phҫn cӫDP{KuQKÿӕLWѭӧng?
Trang 12&˯E̫QY͉ÿ͙LW˱ͫQJ
Trong khóa hӑF Qj\ QKѭQJ FK~QJ WD ÿm ÿӅ cұp tӯ FKѭѫQJ WUѭӟF ÿӕi vӟi sӱ dөng OOAD thì QJѭӡi phân tích và lұp trình sӱ dөng thuұt ngӳ ÿӕLWѭӧng rҩt rҩt nhiӅu Vұy ta tӵ hӓLÿӕLWѭӧng là gì?
ĈӕL Wѭӧng là mӝW WUѭӡng hӧp cӫa mӝt sӵ viӋc có kiӇu cө thӇ Chúng ta lҩy mӝt ví dө vӅ ÿӕi tѭӧng là An, mӝWVLQKYLrQWUѭӡQJĈҥi hӑc Hàng hҧi An là mӝWWUѭӡng hӧp trong tҩt cҧ các sinh viên cӫDWUѭӡQJĈҥi hӑc Hàng hҧi
&K~QJWDFNJQJFyWKӇ QyLÿӕLWѭӧQJOjFiLJuÿyPjFK~QJWDPXӕn lҩy thông tin vӅ chúng Ví
dө, tôi muӕn quҧn lý các khóa hӑc khác nhau tҥLWUѭӡQJĈҥi hӑc Hàng hҧL7KHRÿyW{LSKҧi tҥo các ÿӕLWѭӧng mà có thӇ OѭXWUӳ thông tin vӅ các khóa hӑFQj\ÿӇ chúng ta có thӇ theo dõi hay lҩy thông tin vӅ các khóa hӑc khác nhau
1KѭYұy, mӝWÿӕLWѭӧng có thӇ là tӗn tҥi ӣ dҥng vұt chҩWQKѭlà mӝt sinh viên, mӝt khóa hӑc, hay mӝt quyӇn sách hoһc tӗn tҥi ӣ dҥQJWUuXWѭӧQJQKѭOjFҧP[~F«
Trong UML chúng ta xây dӵQJ ÿӕL Wѭӧng bҵng viӋc sӱ dөng mӝt hình chӳ nhұt vӟi 2 phҫn Phҫn trên chӭa tên cӫDÿӕLWѭӧng và tên cӫa lӟSPjÿӕLWѭӧng thuӝc vào lӟSÿy&~SKiSFKXҭn là: WrQÿӕLWѭӧng: tên lӟp PhҫQGѭӟi liӋt kê các thuӝc tính cӫDÿӕLWѭӧQJÿy
Trang 13Mӕi quan hӋ liên kӃt là sӵ kӃt nӕi vұt lý hoһc logic giӳa các ÿӕLWѭӧng MӝWÿӕLWѭӧng phӕi hӧp vӟi FiFÿӕLWѭӧng khác thông qua các liên kӃt cӫa nó vӟLFiFÿӕLWѭӧng này Nói mӝt cách khác, mӝt liên kӃt biӇu diӉn mӝt liên hӧp (association) [iF ÿӏQK WURQJ ÿy PӝW ÿӕi Wѭӧng(client) sӱ dөng nhӳng dӏch vө cӫDÿӕLWѭӧng khác (supplier)
7K{QJ WKѭӡQJ WK{QJ ÿLӋS ÿѭӧc truyӅn giӳa KDL ÿӕL Wѭӧng là mӝt chiӅX ÿ{L NKL Fy WKӇ là cҧ hai chiӅX&iFWK{QJÿLӋSÿѭӧc khӣi tҥo ӣ SKtDFOLHQWVDXÿyÿѭӧFÿѭDWӟi supplier, còn dӳ liӋu có thӇ dӏch chuyӇn theo cҧ hai chiӅu trên liên kӃt
Vӟi mӛi liên kӃt, mӝWÿӕLWѭӧng có thӇ có mӝt trong ba vai trò:
Actor: MӝWÿӕLWѭӧng có thӇ hoҥWÿӝQJWUrQFiFÿӕLWѭӧng khác chӭ không bӏ thao tác bӣi FiFÿӕi Wѭӧng khác
Server: MӝWÿӕLWѭӧng không bao giӡ hoҥWÿӝng trên các ÿӕLWѭӧng khác; nó chӍ có thӇ bӏ thao tác bӣLFiFÿӕLWѭӧng khác
$JHQW/jÿӕLWѭӧng vӯa có thӇ hoҥWÿӝQJWUrQFiFÿӕLWѭӧng khác, lҥi vӯa có thӇ bӏ FiFÿӕi Wѭӧng khác thao tác
Mӕi quan hӋ kӃt tұp (aggregation)
Mӕi quan hӋ kӃt tұp chӍ là mӝt dҥQJÿһc biӋt cӫa mӕi quan hӋ liên hӧSWURQJÿyPӝWÿӕLWѭӧng là sӵ tәng hӧp cӫDFiFÿӕLWѭӧng thành phҫn
Mӝt lӟp là mô tҧ cho mӝt tұSÿӕLWѭӧng có thuӝc tính và hoҥWÿӝng giӕng nhau Nó phөc vө QKѭ
là mӝt mүu khi mà tҥo mӝWÿӕLWѭӧng mӟi MөFÿtFKFӫDQyOjÿӏQKQJKƭDPӝt tұp các thuӝc tính và thao tác mà mô tҧ ÿҫ\ÿӫ cҩu trúc và hành vi cӫDFiFÿӕLWѭӧQJ7URQJFiFKQyLNKiFWKuÿӕLWѭӧng
là mӝWWUѭӡng hӧp cө thӇ cӫa lӟp Nó luôn luôn bҳt nguӗn tӯ lӟp Nó có cҩu trúc và hành vi tùy theo
sӵ mô tҧ trong lӟp
Trong UML mӝt lӟSÿѭӧc biӇu diӉQQKѭOjPӝt hình chӳ nhұt vӟi 3 phҫn riêng biӋWÿѭӧc phân tách bӣi dòng kҿ ngang Phҫn trên cùng thӇ hiên tên lӟp, phҫn giӳDÿӏQKQJKƭDWҩt cҧ các thuӝc tính cӫa lӟp, phҫn cuӕi cùng chӭDFiFÿӏQKQJKƭDWKDRWiF
Trang 14Lӟp là mӝt loҥLÿӕLWѭӧQJÿһc biӋt Nó là mӝt tұp hӧSFiFÿӕLWѭӧQJÿmÿѭӧc tҥo1yÿѭӧc dùng
ÿӇ tҥo và huӹ FiFÿӕLWѭӧng thuӝc vӅ Qy1yFNJQJFyWKӇ ÿѭӧFGQJÿӇ OѭXGӳ liӋu và cung cҩp cho các dӏnh vө trong cùng nhóm Mӝt ӭng dөng có thӇ truy cұp các dӏch vө cӫa nó thông qua tên lӟp
Trang 15M͡t liên h͏ là mӝt sӕ nӕi kӃt giӳa các lӟSFNJQJFyQJKƭDOjVӵ nӕi kӃt giӳDFiFÿӕLWѭӧng cӫa các
lӟp này Trong UML, 1 liên hӋ ÿѭӧFÿӏQKQJKƭDOjPӝt mӕi quan hӋ mô tҧ mӝt tұp hӧp các nӕi kӃt trong khi nӕi kӃWÿѭӧFÿӏQKQJKƭDOjPӝt sӵ liên quan vӅ ngӳ nghƭa giӳa mӝWQKyPFiFÿӕLWѭӧng
biӋWKѫQ&yWKӇ chӭa chӍ các thông tin bә sung mӝt thӵc thӇ (mӝWÿӕLWѭӧng là mӝt thӵc thӇ cӫa mӝt lӟp) cӫa yӃu tӕ mang tính chuyên biӋWKѫQFyWKӇ ÿѭӧc sӱ dөng ӣ bҩt cӭ QѫLQjRPjÿӕLWѭӧng mang WtQKNKiLTXiWKRiKѫQÿѭӧc phép
S phͭ thu͡c là mӝt quan hӋ giӳa các yӃu tӕ gӗm mӝt yӃu tӕ PDQJWtQKÿӝc lұp và mӝt yӃu tӕ mang
tính phө thuӝc mӝt sӵ WKD\ÿәi trong yӃu tӕ ÿӝc lұp sӁ ҧnh KѭӣQJÿӃn yӃu tӕ phө thuӝc
M͡t s nâng c̭p là mӝt quan hӋ giӳa hai lӡi mô tҧ cӫa cùng mӝt sӵ vұWQKѭQJӣ nhӳng mӭFÿӝ
trӯXWѭӧng hoá khác nhau
6W˱˯QJWiFO̳QQKDXFͯDOͣSYjÿ͙LW˱ͫQJ
LӟSYjÿӕLWѭӧng, mһc dù có mӕi liên hӋ WѭѫQJӭng lүQQKDXQKѭQg bҧn chҩt lҥi khác nhau:
Lӟp là sӵ trӯXWѭӧng hoá cӫa các ÿӕLWѭӧng Trong khi ÿy ÿӕLWѭӧng là mӝt thӇ hiӋn cӫa lӟp
ĈӕLWѭӧng là mӝt thӵc thӇ cө thӇ, có thӵc, tӗn tҥi trong hӋ thӕQJ7URQJNKLÿyOӟp là mӝt khái niӋm trӯXWѭӧng, chӍ tӗn tҥi ӣ dҥng khái niӋPÿӇ mô tҧ FiFÿһc tính chung cӫa mӝt sӕ ÿӕi Wѭӧng
1) ĈӕLWѭӧng là gì? Mӕi quan hӋ giӳDFiFÿӕLWѭӧng?
2) Lӟp là gì? Mӕi quan hӋ giӳa các lӟp?
3) Trình bày mӕi quan hӋ giӳa LӟSYjĈӕLWѭӧng?
Trang 16&+ѬѪ1*,,,: 6Ӵ3+Æ1/2Ҥ,
Sӵ phân loҥLÿѭӧc thӵc hiӋn dӵa trên nhӳng gì hiӇu biӃt cӫa chúng ta Trong thiӃt kӃ KѭӟQJÿӕi Wѭӧng, viӋc phân loҥLFiFÿӕLWѭӧng cùng vӟi FiFWѭѫQJWiFFӫa nó trong hӋ thӕng là vô cùng quan trӑng NӃXQKѭFK~QJWDSKkQORҥLNK{QJÿ~QJWKuKӋ thӕng chúng ta sӁ cӗng kӅnh, hoҥWÿӝng không hiӋu quҧNKyNKăQWURQJYLӋc triӇn khai và lұp trình Tuy nhiên nӃu chúng ta có cái nhìn tӕt và viӋc phân loҥLFiFÿӕLWѭӧng, xây dӵng các lӟp chính xác sӁ dүn tӟi hӋ thӕng chúng ta thiӃt kӃ rõ ràng, và triӇQNKDLFNJQJGӉ KѫQQKDQKKѫQWUiQKÿѭӧc viӋc trùng lһp công viӋc
Không có mӝWTX\ÿӏQKFKXQJQjRÿӇ WuPUDÿѭӧc sӵ phân loҥi tӕt nhҩt, tҩt cҧ ÿӅu phҧi dӵa trên kinh nghiӋm và yêu cҫu cӫa hӋ thӕng hiӋn tҥi
7̯PTXDQWU͕QJFͯDYL͏FSKkQOR̩LKͫSOê
ViӋF[iFÿӏnh các lӟSYjFiFÿӕLWѭӧng là mӝt trong nhӳng phҫQÿҫy thӱ thách cӫa phân tích và thiӃt kӃ KѭӟQJÿӕLWѭӧng Kinh nghiӋm cho thҩy rҵQJ[iFÿӏnh bao gӗm cҧ phát hiӋn và sáng tҥo Thông qua phát hiӋn, chúng ta có thӇ nhұQUDÿѭӧc nhӳng lӟSWUuXWѭӧQJYjNƭWKXұt mà tҥo nên vҩn
ÿӅ Thông qua sáng tҥRFK~QJWDÿѭDUDQKӳQJNKiLTXiWWUuXWѭӧQJFNJQJQKѭFiFNƭWKXұt mӟi xác ÿӏQKFiFÿӕLWѭӧng cӝng tiFQKѭWKӃ nào
Cuӕi cùng, phát hiӋn và sáng tҥo là các vҩQÿӅ trong phân loҥi và viӋc phân loҥLOjÿLWuPQKӳng vҩQÿӅ WѭѫQJWӵ nhau Khi chúng ta phân loҥLFK~QJWDWuPÿӃn nhӳng nhóm sӵ viӋc mà có chung mӝt cҩu trúc hoһc các hành vi chung, phә biӃn
Phân loҥL JL~SFK~QJWD FiFK[iFÿӏnh nhӳng lӟp tәng quát, và sӵ phân cҩp giӳa các lӟp vӟi nhau Bҵng viӋc nhұQUDFiFWѭѫQJWiFFKXQJJLӳDFiFÿӕLWѭӧQJFK~QJWDÿѭDUDFiFNƭWKXұWÿѭӧc coi là quyӃWÿӏnh trong viӋc thӵc hiӋn ViӋc phân loҥLFNJQJKѭӟng dүn chúng ta trong viӋFÿѭDUDnhӳng quyӃWÿӏnh vӅ module hóa Chúng ta có thӇ chӑQYjÿһt toàn bӝ các lӟSYjÿӕLWѭӧng trong cùng mӝt module hoһc trong các module khác nhau, tùy thuӝc vào sӵ giӕng nhau mà chúng ta tìm thҩy giӳa các lӟSYjÿӕLWѭӧQJÿy3Kkn loҥLFNJQJÿyQJYDLWUzWURQJYLӋc chӍ ÿӏnh các quy trình xӱ
lý Chúng ta có thӇ ÿһt toàn bӝ các quy trình cùng vӟi nhau trong mӝt bӝ xӱ lý hoһc ӣ các bӝ xӱ lý khác nhau, tùy thuӝc vào viӋFÿyQJJyLFKӭFQăQJKRһFOjÿӝ tin cұy
;iFÿ͓QKFiFOͣSYjÿ͙LW˱ͫQJ
VҩQÿӅ phân loҥLÿmÿѭӧc vô sӕ các nhà triӃt hӑc, ngôn ngӳ hӑc, các nhà khoa hӑc và cҧ các nhà toán hӑFÿһc biӋt quan tâm Chúng ta có thӇ tham khҧo nhӳng kinh nghiӋm cӫa hӑ ӣ WURQJOƭQKYӵc phân loҥi này vào viӋc thiӃt kӃ KѭӟQJÿӕLWѭӧng nhӡ sӵ phân loҥi
3KѭѫQJSKiSWLӃp cұn cә ÿLӇn và hiӋQÿҥi
&yKѭӟng tiӃp cұn phә biӃQWKѭӡQJÿѭӧFGQJÿӇ phân loҥi:
Trang 1880/ÿѭӧc sӱ dөng cho viӋc tҥo các bҧn kӃ hoҥch cho viӋc phát triӇn phҫn mӅm
UML không phҧi là ngôn ngӳ lұSWUuQKQKѭQJFiFF{QJFө có thӇ ÿѭӧFGQJÿӇ sinh ra mã lӋnh trong các ngôn ngӳ khác nhau UML có mӕi liên quan mұt thiӃt vӟi phân tích và thiӃt kӃ hӋ thӕng KѭӟQJÿӕLWѭӧng Vì vұy trong bài giҧng này tôi sӱ dөQJ80/QKѭOjPӝt công cө chính trong viӋc thiӃt kӃ và giҧng dҥy
4.1.1 Các khӕLFѫEҧn trong UML
80/ÿyQJYDLWUzTXDQWUӑng trong viӋc tҥo nên mô hình khái niӋm Mô hình khái niӋm cӫa UML có thӇ ÿѭӧc tҥo bӣi 3 phҫn tӯ chính sau:
- Các khӕi UML
- Các luұt, nguyên tҳFÿӇ kӃt nӕi giӳa các khӕi
- Kӻ thuұt chung cӫa UML
- Class: biӇu diӉn cho mӝt tұSFiFÿӕi tuwngj có cùng trách nhiӋm, nhiӋm vө
x Phҫn trên cùng biӉu diӉn tên lӟp
x Phҫn thӭ 2 biӇu diӉn các thuӝc tính cӫa lӟp
x Phҫn thӭ ÿѭӧFGQJÿӇ mô tҧ các thao tác có thӇ ÿѭӧc thӵc hiӋn
x Phҫn thӭ 4 là phҫn lӵa chӑQGQJÿӇ hiӇn thӏ thêm các thành phҫn phө thêm
Trang 19- ,QWHUIDFHÿӏQKQJKƭDPӝt tұSFiFWKDRWiFPjÿһc tҧ rõ trách nhiӋm cӫa hӋ thӕng Ĉѭӧc biӇu diӉn bҵng mӝWKuQKWUzQErQGѭӟi ghi tên cӫa giao diӋQĈѭӧFGQJÿӇ mô tҧ các chӭFQăQJP{Wҧ cái chung nhҩt Trong giao diӋQFKѭDFyYLӃt mã lӋQKÿӇ thӵc thi
- &ROODERUDWLRQÿӏQKQJKƭDVӵ WѭѫQJWiFOүn nhau giӳa các phҫn tӱ CollDERUDWLRQÿѭӧc biӇu diӉn bҵQJKuQKHFOLSVQpWÿӭt Tên cӫDQyÿѭӧc ghi ӣ bên trong hình
- Use case: biӇu diӉn mӝt tұp các hoҥWÿӝQJÿѭӧc thӵc hiӋn bӣi mӝt hӋ thӕng cho mӝt mөc ÿtFK [iF ÿӏnh 8VH FDVH ÿѭӧc biӇu diӉn bҵng hình eclip liӅn nét vӟL WrQ ÿѭӧc ghi bên trong hình
Trang 20- Actor có thӇ ÿѭӧFÿӏQKQJKƭDQKѭOjFiFWKӵc thӇ bên trong hoһFErQQJRjLWѭѫQJWiFYӟi
hӋ thӕng
- Kí hiӋu bҳWÿҫXÿѭӧFGQJÿӇ khӣi tҥo, bҳWÿҫu mӝt quy trình xӱ lý
- Kí hiӋu kӃWWK~FĈѭӧFGQJÿӇ báo hiӋu kӃt thúc mӝt quá trình xӱ lý
- Active class: có cҩu tҥo giӕng vӟLFODVVQKѭQJÿѭӡng viӅQErQQJRjLÿұPKѫQĈѭӧc GQJÿӇ miêu tҧ KjQKÿӝng hiӋn hành cӫa hӋ thӕng
- Component: Mô tҧ phҫn vұt lý cӫa hӋ thӕng Tên cӫDQyÿѭӧc ghi ӣ bên trong hình và có thӇ add thêm các phҫn tӱ khác nӃu cҫn thiӃt
Trang 21- Node: mô tҧ phҫn tӱ vұt lý mà tӗn tҥi trong thӡi gian chҥ\FKѭѫQJWUuQK 1RGHÿѭӧc biӇu diӉn bӣi hình vuông vӟLWrQÿѭӧc ghi ӣ trong hình
Behavioral things: Behavioral thing gӗm có các phҫQÿӝng cӫDP{KuQK80/7KHRÿyFyPӝt
sӕ loҥi behavioral things sau:
- ,QWHUDFWLRQ ÿѭӧFÿӏQKQJKƭDQKѭOjPӝt hoҥW ÿӝng bao gӗm mӝt nhóm các thông ÿLӋSÿѭӧc chuyӇn giӳa các phҫn tӱ ÿӇ hoàn thành mӝt nhiӋm vө rõ ràng, riêng biӋt
- 6WDWHPDFKLQH6WDWHPDFKLQHÿӏQKQJKƭDPӝt chuӛi các trҥng thái mà mӝt ÿӕLWѭӧng phҧi trҧi qua trong viӋFÿiSӭng sӵ kiӋn Các sӵ kiӋn là nhӳng tác nhân bên ngoài chӏu trách nhiӋPWKD\ÿәi
Grouping things: có thӇ ÿѭӧFÿӏQKQJKƭDQKѭOjPӝWNƭWKXұWÿӇ nhóm các phҫn tӱ cӫa mô hình
UML lҥi vӟi nhau ChӍ có duy nhҩt mӝt loҥi Grouping thing: Package
Annotation things: có thӇ ÿѭӧFÿӏQKQJKƭDQKѭOjPӝWNƭWKXұWÿӇ ÿiQKGҩu, chú thích, mô tҧ
cӫa cuác phҫn tӱ UML Note là Annotational thing duy nhҩt
4.1.3 Quan hӋ
liên kӃt vӟLQKDXQKѭWKӃ nào và sӵ kӃt hӧp này mô tҧ chӭFQăQJFӫDFKѭѫQJWUuQK
Có 4 loҥi quan hӋ ÿѭӧFÿӅ cұSVDXÿk\
- Dependency: là loҥi quan hӋ giӳa 2 sӵ viӋc mà khi có mӝt phҫn tӱ WKD\ÿәLWKuFNJQJҧQKKѭӣng tӟi mӝt phҫn tӱ khác
Trang 22- Generalization: có thӇ ÿѭӧFÿӏQKQJKƭDQKѭOjPӝt quan hӋ mà kӃt nӕi mӝt phҫn tӱ chuyên dөng vӟi nhӳng phҫn tӱ chung Nó mô tҧ quan hӋ kӃ thӯa cӫDFiFÿӕLWѭӧng
- Realization: có thӇ ÿѭӧFÿӏQKQJKƭDQKѭOjPӝt quan hӋ WURQJÿySKҫn tӱ ÿѭӧc liên kӃt vӟi nhau Mӝt phҫn tӱ mô tҧ mӝt sӕ trách nhiӋPPjFKѭDÿѭӧc thӵc thi và môt phҫn tӱ khác thì thӵc thi chúng KiӇu quan hӋ này tӗn tҥLWURQJWUѭӡng hӧp interface
80/ÿyQJYDLWUzTXan trӑng trong viӋc mô tҧ các cách nhìn nhұn khác nhau cӫa hӋ thӕng Có mӝt sӕ cách nhìn nhұQVDXÿk\
Trang 23- Design cӫa mӝt hӋ thӕng bao gӗm các lӟp, giao diӋn và các cӝng tác UML cung cҩp
biӇXÿӗ lӟp, biӇXÿӗ ÿӕLWѭӟQJÿӇ hӛ trӧ cách thiӃt kӃ này
- Implementation ÿӏQKQJKƭDFiFWKjQKSKҫQÿѭӧc sҳp xӃp lҥi vӟLQKDXÿӇ tҥo nên
mӝt hӋ thӕng vұt lý hoàn chӍnh BiӇXÿӗ thành phҫQ80/ÿѭӧFGQJÿӇ hӛ trӧ thӵc thi theo cách này
- Process ÿӏQK QJKƭD OXӗng cӫa hӋ thӕng Sӱ dөng các phҫn tӱ giӕQJ QKѭ ӣ trong
Design
- Deployment biӇu diӉn các nút vұt lý cӫa hӋ thӕng mà tҥo nên phҫn cӭQJ/ѭӧFÿӗ
triӇQNKDLÿѭӧc sӱ dөQJÿӇ hӛ trӧ khía cҥnh này
Trong biӇXÿӗ lӟp miêu tҧ các thuӝc tính và các thao tác cӫa mӝt lӟSYjFNJQJJLjQJEXӝc vӟi hӋ thӕng BiӇXÿӗ lӟSÿѭӧc sӱ dөng rӝng rãi trong viӋc thiӃt kӃ P{KuQKKѭӟQJÿӕLWѭӧng bӣi vì chӍ có biӇXÿӗ UML mӟi có thӇ ánh xҥ trӵc tiӃp sang ngôn ngӳ KѭӟQJÿӕi tuӧng
BiӇXÿӗ lӟp biӇu diӉn mӝt tұp các lӟp, giao diӋn, kӃt hӧp, cӝng tác, và giҵng buӝc BiӇu ÿӗ lӟp ÿѭӧF[HPQKѭOjELӇXÿӗ cҩu trúc
MөFÿtFK
MөFÿtFKFӫa biӇu lӟp là xây dӵQJOrQFiFKQKuQWƭQKFӫa ӭng dөng BiӇXÿӗ lӟp là biӇXÿӗ mà
có thӇ ánh xҥ trӵc tiӃp sang ngôn ngӳ lұSWUuQKKѭӟQJÿӕLWѭӧng MөFÿtFKFӫa biӇXÿӗ lӟp có thӇ tóm tҳWQKѭVDu:
- Phân tích và thiӃt kӃ FiFKQKuQWƭQKFӫa ӭng dөng
- Mô tҧ các trách nhiӋm, chӭFQăQJFӫa hӋ thӕng
- Làm nӅn tҧng cho biӇXÿӗ thành phҫn và biӇXÿӗ triӇn khai
VӁ biӇXÿӗ lӟSQKѭWKӃ nào?
BiӇXÿӗ lӟp có nhiӅu thuӝc tính cҫn phҧi chú ý trong khi vӁ QKѭQJӣ ÿk\WURQJWjLOLӋu này chӍ
ÿӅ cұp tӟi nhӳng thuӝFWtQKFѫEҧn nhҩt và hay dùng nhҩt
Mӝt sӕ ÿLӇm cҫn chú ý khi vӁ biӇXÿӗ lӟp:
- Tên cӫa biӇXÿӗ lӟSQrQÿһt sao cho có thӇ mô tҧ ÿѭӧc diӋn mҥo cӫa hӋ thӕng
- Mӛi mӝt phҫn tӱ và các quan hӋ cӫa nó phҧi rõ ràng
- Khҧ QăQJFӫa lӟp (thuӝc tính và thao tác) phҧi rõ ràng và duy nhҩt
Trang 24khai
- Sӱ dөng nRWHNKLÿѭӧc yêu cҫu mô tҧ diӋn mҥo cӫa biӇXÿӗ Bӣi vì mөFÿtFKFXӕi FQJOjOjPFKRQJѭӡi dùng và lұp trình viên có thӇ hiӇXÿѭӧc hӋ thӕQJÿѭӧc mô tҧ QKѭWKӃ nào
Ví dө: VӁ biӇXÿӗ lӟp cӫa mӝt hӋ thӕQJÿѫQÿһt hàng trong mӝt ӭng dөng bán hàng HӋ thӕng nj\ÿѭӧc mô tҧ QKѭVDX
- Ĉҫu tiêu tҩt cҧ FiF2UGHUÿѫQÿһWKjQJ Yj&XVWRPHU KiFKKjQJ ÿѭӧF[iFÿӏnh QKѭOjSKҫn tӱ cӫa hӋ thӕng và chúng có quan hӋ 1-n bӣi vì khách hàng có thӇ có nhiӅX2UGHUĈѫQÿһt hàng)
- Chúng ta Km\WѭӣQJWѭӧng lӟp Order là mӝt lӟSWUuXWѭӧng và nó có 2 lӟp thӵc tӃ tӗn tҥi (KӃ thӯa tӯ lӟS2UGHU ÿyOj6SHFLDO2UGHUYj1RUPDO2UGHU
- Hai lӟp kӃ thӯa có tҩt cҧ các thuӝc tính cӫa lӟS2UGHU7KrPYjRÿyFK~QJFyWKrPcác chӭFQăQJQKѭOjGLVSDWFK YjUHFHLYH
6ѫÿӗ Object
Sѫÿӗ 2EMHFWWKXÿѭӧc tӯ Vѫÿӗ lӟp vì vұ\Vѫÿӗ ÿӕLWѭӧng Fyÿѭӧc là dӵDWUrQVѫÿӗ lӟp
&iFVѫÿӗ ÿӕLWѭӧng biӇu diӉn mӝWWUѭӡng hӧp cӫa mӝWVѫÿӗ lӟp VӅ FѫEҧQVѫÿӗ lӟSYjVѫÿӗ ÿӕLWѭӧQJOjWѭѫQJWӵ QKDX6ѫÿӗ ÿӕLWѭӧQJFNJQJELӇu diӉQFiFKQKuQWƭQKcӫa mӝt hӋ thӕQJQKѭQJKѭӟQJQKuQWƭQKQj\OjVQDSVKRWFӫa hӋ thӕng tҥi các thӡLÿLӇm khác nhau
6ѫÿӗ ÿӕLWѭӧQJÿѭӧFGQJÿӇ ÿѭDUDPӝt tұSFiFÿӕLWѭӧng và quan hӋ giӳa chúng
Trang 25- ChuyӇn tӟi và nhұn lҥi tӯ FiFNƭVѭSKҫn mӅm
- BiӇu diӉn quan hӋ giӳDFiFÿӕLWѭӧng cӫa mӝt hӋ thӕng
Cҧ KDLVѫÿӗ ÿӅ ÿѭӧc tҥo tӯ các thành phҫQFѫEҧQQKѭQJFiFKWKjQKOұSNKiFQKDX7URQJVѫ
ÿӗ lӟp các phҫn tӱ là ӣ dҥQJWUuXWѭӧng miêu tҧ bҧn kӃ hoҥch hoһc Vѫÿӗ YjWURQJVѫÿӗ ÿӕLWѭӧng các phҫn tӱ là tӗn tҥi hiӋn hӳu biӇu diӉQÿӕLWѭӧng trong thӃ giӟi thӵc
ĈӇ lҩ\ÿѭӧc các hӋ thӕng riêng biӋt, sӕ Vѫÿӗ lӟSÿѭӧc giӟi hҥQ1KѭQJQӃ FKXQJWDWKHRG}LVѫ
ÿӗ ÿӕLWѭӧng thì chúng ta có thӇ không giӟi hҥQFiFWUѭӡng hӧp cӫDVѫÿӗ này
Tӯ nhӳQJJuÿѭDUDӣ trên thì mӝWVѫÿӗ ÿӕLWѭӧQJÿѫQNK{QJWKӇ lҩ\ÿѭӧc tҩt cҧ FiFWUѭӡng hӧp hay không thӇ mô tҧ ÿѭӧc hӃt tҩt cҧ FiFÿӕLWѭӧng cӫa hӋ thӕng Vì thӃ giҧLSKiSÿӇ giҧi quyӃt vҩn
- Liên kӃWWURQJVѫÿӗ ÿӕLWѭӧQJÿѭӧFGQJÿӇ kӃt nӕLFiFÿӕLWѭӧng
- &iF ÿӕL Wѭӧng và các liên kӃt là 2 phҫn tӱ GQJ ÿӇ xây dӵng lên mӝW Vѫ ÿӗ ÿӕi Wѭӧng
Ví dө: Chúng ta sӱ dөng ví dө ӣ phҫQ 6ѫ ÿӗ lӟS ³2UGHU PDQDJHPHQW 6\VWHP´ +Ӌ thӕng quҧQOêÿѫQÿһt hàng) Khi có khách hàng tӟLÿһt mua hàng, tҥi thӡLÿLӇPÿyVӁ có nhӳQJÿӕLWѭӧng sau:
- Customer (Khách hàng)
Trang 26- NormalOrder
Bây giӡ ÿӕLWѭӧQJNKiFKKjQJ& ÿѭӧc liên kӃt vӟLÿӕLWѭӧQJÿѫQÿһt hàng (O1, O2, và O3) NhӳQJÿӕLWѭӧQJÿѫQÿһWKjQJQj\ÿѭӧc liên kӃt vӟLÿѫQÿһWKjQJÿһc biӋt hoһFOjEuQKWKѭӡng (S1, 6Yj1 .KiFKKjQJFyÿѫQÿһt hàng vӟi các sӕ Oѭӧng khác nhau (12, 32 và 40) cho tӯng thӡi ÿLӇm theo dõi
Khách hàng có thӇ WăQJ Vӕ OѭӧQJÿѫQÿһt hàng lên trong thӡi gian tӟLYjWURQJWUѭӡng hӧSÿyVӕ OѭӧQJVѫÿӗ ÿӕLWѭӧng sӁ phҧn ánh rҵng: nӃXÿѫQÿһWKjQJÿӕLWѭӧQJÿѫQÿһWKjQJÿһc biӋt hoһc là EuQKWKѭӡQJÿѭӧc theo dõi thì chúng ta sӁ tìm thҩy chúng có mӝt vài giá trӏ
VӟLFiFÿѫQÿһt hàng có giá trӏ là 12, 32 và 40 cho thҩy rҵQJFiFÿӕLWѭӧng có giá trӏ tҥi thӡi ÿLӇPÿѭӧc quan sát
4.2.3 6ѫÿӗ thành phҫn
&iFVѫÿӗ thành phҫQÿѭӧFGQJÿӇ xây dӵng lên diӋn mҥo vұt lý cӫa hӋ thӕng Vұy chúng ta tӵ hӓi diӋn mҥo vұt lý cӫa hӋ thӕng là gì? DiӋn mҥo vұt lý cӫa hӋ thӕng là các thành phҫn giӕQJQKѭcác tӋSWLQFiFWKѭYLӋn, các tài liӋu, các tӋp tin có thӇ thӵc thi tӗn tҥi ӣ bên trong node Vì vұy, các Vѫÿӗ thành phҫQÿѭӧFGQJÿӇ mô tҧ PѭӡQJWѭӧng vӅ cách tә chӭc và mӕi quan hӋ giӳa các thành phҫn trong hӋ thӕng NhӳQJVѫÿӗ Qj\FNJQJÿѭӧFGQJÿӇ tҥo các hӋ thӕng có thӇ thӵc thi
MөFÿtFK
6ѫÿӗ thành phҫn là mӝt loҥLVѫÿӗ ÿһc biӋt trong UML MөFÿtFKFӫa nó FNJQJNKiFYӟLFiFVѫ
ÿӗ khác Nó không miêu tҧ các chӭF QăQJ Fӫa hӋ thӕQJ QKѭQJ Qy PLrX Wҧ các thành phҫQ ÿѭӧc GQJÿӇ tҥo nên các chӭFQăQJÿy
6ѫÿӗ thành phҫn có thӇ ÿѭӧc miêu tҧ QKѭOj sӵ WKLKjQKWƭQKFӫa hӋ thӕng Sӵ WKLKjQKWƭQKELӇu diӉn cách tә chӭc các thành phҫn tҥi các thӡLÿLӇm riêng biêt
MӝWVѫÿӗ thành phҫQÿѫQNK{QJWKӇ biӇu diӉQÿѭӧc toan bӝ hӋ thӕQJQKѭQJPӝt tұp hӧSFiFVѫ
ÿӗ ÿѭӧc dùng biӇu diӉn toàn bӝ hӋ thӕng Vì thӃ nhӳng mөFÿtFKFӫDVѫÿӗ thành phҫn có thӇ ÿѭӧc tóm tҳWQKѭVDX
... mӝt tәng thӇ EDQÿҫu Chӫ yӃu viӋc phân tích ӣ JLDLÿRҥQQj\ÿӇ hiӇXÿѭӧc nhӳQJÿһc tính cӫa hӋ thӕng, bӓ qua nhӳng phҫn nhӓ chӍ tiӃt Nhӳng phҫn sӁ ÿѭӧc phân tích sau- TiӃp theo, phҥm... tҥo vҩQÿӅ phân loҥi viӋc phân loҥLOjÿLWuPQKӳng vҩQÿӅ WѭѫQJWӵ Khi phân loҥLFK~QJWDWuPÿӃn nhӳng nhóm sӵ viӋc mà có chung mӝt cҩu trúc hoһc hành vi chung, phә biӃn
Phân loҥL... Nhà phân tích tұp trung vào mөFÿtFKFKtQK+Ӌ thӕng mӟi cҫn phҧi làm nhӳng HӋ thӕng mӟi OjPQyQKѭWKӃ nào?
- 3KѭѫQJSKiSQj\\rXFҫXQJѭӡi dùng theo sát tӯ ÿҫu tӟi dӵ án hồn thành Nhà phân