Đ tài 1. Ngôn ng mô hình hóa UMLề ữ
I. Xây d ng h th ng ph n m m theo h ng đ i t ngự ệ ố ầ ề ướ ố ượ
I.1 Các khái ni m căn b n c a công ngh h ng đ i t ngệ ả ủ ệ ướ ố ượ
H ng đ i t ng là m t công ngh đ s n sinh ra các mô hình ph n ánh m t cách tướ ố ượ ộ ệ ể ả ả ộ ự
nhiên các nghi p v th c t . Xét cho cùng thì m i quy trình nghi p v trong th c t đ u là sệ ụ ự ế ọ ệ ụ ự ế ề ự
t ng tác c a các đ i t ng theo m t trình t nh m đ t đ c m t m c đích c th . Nói cáchươ ủ ố ượ ộ ự ằ ạ ượ ộ ụ ụ ể
khác, các đ i t ng và m i quan h gi a chúng ph n ánh quy trình nghi p v . Ví d nhố ượ ố ệ ữ ả ệ ụ ụ ư
nghi p v tuy n nhân s cho m t công ty có th đ c tóm t t qua m t chu i các t ng tácệ ụ ể ự ộ ể ượ ắ ộ ỗ ươ
nh sau:ư
1. Công ty đ a ra thông báo tuy n nhân s t i các ng viên có nhu c uư ể ự ớ ứ ầ
2. ng viên g i h s d tuy n t i công tyỨ ử ồ ơ ự ể ớ
3. Công ty duy t h s và g i gi y h n ph ng v n t i ng viênệ ồ ơ ử ấ ẹ ỏ ấ ớ ứ
4. Công ty ph ng v n ng viênỏ ấ ứ
5. Công ty ký h p đ ng v i ng viên ho c t ch iợ ồ ớ ứ ặ ừ ố
Trong ví d trên có s tham gia c a hai đ i t ng “công ty” và “ ng viên”. S trao đ iụ ự ủ ố ượ ứ ự ổ
thông tin gi a hai đ i t ng này cho th y m i quan h ph thu c gi a chúng (dependence).ữ ố ượ ấ ố ệ ụ ộ ữ
M t ví d khác là trong h th ng qu n lý nhân s chúng ta có các đ i t ng nh : nhânộ ụ ệ ố ả ự ố ượ ư
viên, qu n lý,…cho th y m i quan h d ng khác: các nhân viên làm công vi c qu n lý t tả ấ ố ệ ạ ệ ả ấ
nhiên cũng là nhân viên c a công ty nh ng có thêm các thu c tính riêng bi t – m t quan h kủ ư ộ ệ ộ ệ ế
th a (inheritance).ừ
Trong m t h th ng bán hàng, m i đ n hàng bao g m trong nó các thông tin v kháchộ ệ ố ỗ ơ ồ ề
hàng, ngày gi , …và m t danh m c các m t hàng. Khi này ta nói r ng gi a đ n hàng và m tờ ộ ụ ặ ằ ữ ơ ặ
hàng t n t i m t quan h bao g m (aggregation) ồ ạ ộ ệ ồ
M c tiêu c a công ngh h ng đ i t ng chính là th hi n đ c các đ i t ng vàụ ủ ệ ướ ố ượ ể ệ ượ ố ượ
m i quan h gi a chúng vào trong các h th ng ph n m m. Vì v y, các h th ng ph n m mố ệ ữ ệ ố ầ ề ậ ệ ố ầ ề
theo công ngh h ng đ i t ng ph n ánh m t cách t nhiên và trung th c nghi p v th c tệ ướ ố ượ ả ộ ự ự ệ ụ ự ế
và có kh năng đáp ng các thay đ i d dàng.ả ứ ổ ễ
Phát tri n m t h th ng ph n m m theo h ng đ i t ng d a trên 5 khái ni m cể ộ ệ ố ầ ề ướ ố ượ ự ệ ơ
b n: L p (class), đ i t ng (object), thông đi p (mesage), th a k (inheritance) và đa hìnhả ớ ố ượ ệ ừ ế
(polymorphism).
L p là s tr u t ng hóa các đ i t ng th c t theo ph m vi nghi p v . L y ví d vớ ự ừ ượ ố ượ ự ế ạ ệ ụ ấ ụ ề
h th ng qu n lý sinh viên c a tr ng ĐHBK Hà N i c n qu n lý r t nhi u đ i t ng sinhệ ố ả ủ ườ ộ ầ ả ấ ề ố ượ
viên khác nhau nh ng có th ch đ c tr u t ng hóa thành m t l p đ i t ng có tênư ể ỉ ượ ừ ượ ộ ớ ố ượ
SinhVien ch ng h n. S tr u t ng hóa m t l p đ i t ng cho ta k t qu m t t p các thu cẳ ạ ự ừ ượ ộ ớ ố ượ ế ả ộ ậ ộ
tính (attributes) và các hành vi (operations) đ c tr ng cho b t kỳ đ i t ng nào thu c l p đó.ặ ư ấ ố ượ ộ ớ
Đ i t ng th c t thì có vô s thu c tính và hành vi nh ng ch thu c tính và hành vi trongố ượ ự ế ố ộ ư ỉ ộ
ph m vi nghi p v là đ c xét đ n. S chi ti t ph thu c vào ph m vi nghi p v .ạ ệ ụ ượ ế ự ế ụ ộ ạ ệ ụ
S tr u t ng hóa di n ra nhi u c p đ . L y ví d : l p đ ng v t có vú bao g m l pự ừ ượ ễ ở ề ấ ộ ấ ụ ớ ộ ậ ồ ớ
đ ng v t 4 chân, l p 4 chân l i bao g m các l p nh l p mèo, l p trâu,…ộ ậ ớ ạ ồ ớ ư ớ ớ
M i đ i t ng là m t bi u hi n th c t c a m t l p.ỗ ố ượ ộ ể ệ ự ế ủ ộ ớ
object = name + attributes + operations
H th ng h ng đ i t ng n u đ c mô hình đúng s r t linh ho t, d hi u ch nh,ệ ố ướ ố ượ ế ượ ẽ ấ ạ ễ ệ ỉ
đ c cài đ t d dàng b ng các ngôn ng h ng đ i t ng. Các h th ng ph n m m h ngượ ặ ễ ằ ữ ướ ố ượ ệ ố ầ ề ướ
đ i t ng cũng đ c cài đ t b i các ngôn ng l p trình h ng đ i t ng.ố ượ ượ ặ ở ữ ậ ướ ố ượ
13
H ng đ i t ng không ch là m t lý thuy t mà đã đ c ch ng minh b ng nh ng ngướ ố ượ ỉ ộ ế ượ ứ ằ ữ ứ
d ng r t thành công trong th c t nhi u lĩnh v c khác nhau. Tuy nhiên, lĩnh v c này v n c nụ ấ ự ế ở ề ự ự ẫ ầ
đ c chu n hóa h n n a.ượ ẩ ơ ữ
I.2 Quy trình chung phát tri n h th ng ph n m mể ệ ố ầ ề
Xây d ng m t h th ng ph n m m h ng đ i t ng cũng tuân theo quy trình chungự ộ ệ ố ầ ề ướ ố ượ
nh m i công ngh khác:ư ọ ệ
1. Requirements : Thu th p yêu c uậ ầ
2. Analysis : Phân tích
3. Design: Thi t kế ế
4. Implementation: Cài đ tặ
5. Test: Ki m thể ử
6. Deployment: Tri n khaiể
Theo nguyên t c chung này, m i công ty l i ng d ng nh ng công ngh khác nhau đắ ỗ ạ ứ ụ ữ ệ ể
phát tri n ng d ng nh các mô hình water fall, mô hình h ng ch c năng,…ể ứ ụ ư ướ ứ
I.3 Nh ng thách th c c a ngành công nghi p ph n m m hi n nayữ ứ ủ ệ ầ ề ệ
M c dù đã ng d ng các công ngh ti n ti n và quy trình phát tri n chu n hóa nh ngặ ứ ụ ệ ế ế ể ẩ ư
ngành công nghi p ph n m m v n ph i đ i m t v i nh ng thách th c:ệ ầ ề ẫ ả ố ặ ớ ữ ứ
1. S gia tăng v quy mô t nh đ n l n c a ng d ngự ề ừ ỏ ế ớ ủ ứ ụ
2. S c ép v th i gian hoàn thànhứ ề ờ
3. S phân tán v không gian làm vi cự ề ệ
4. Đa d ng v n i dungạ ề ộ
5. S thay đ i các yêu c u c a ng i s d ngự ổ ầ ủ ườ ử ụ
Nh ng thách th c này có th nói là g n li n v i m i công ty ph n m m đ c bi t là ữ ứ ể ắ ề ớ ọ ầ ề ặ ệ ở
Vi t Nam, n i mà vai trò c a quá trình kh o sát, phân tích còn b xem nh cũng nh các côngệ ơ ủ ả ị ẹ ư
ty còn đang b ng v i s m r ng v quy mô và thi u nhân l c chuyên môn v phân tíchỡ ỡ ớ ự ở ộ ề ế ự ề
thi t k .ế ế
II. L ch s phát tri n ngôn ng mô hình hóa UMLị ử ể ữ
II.1. Tóm t t l ch s UMLắ ị ử
Nh ng năm 1980 là th i kỳ bùng n s l ng các công ty ph n m m s d ng ngônữ ờ ổ ố ượ ầ ề ử ụ
ng l p trình h ng đ i t ng(Object Oriented Programming - OOP) đ xây d ng các ngữ ậ ướ ố ượ ể ự ứ
d ng. Đi u này d n t i m t đòi h i ph i có m t quy trình làm ph n m m ti p c n theo h ngụ ề ẫ ớ ộ ỏ ả ộ ầ ề ế ậ ướ
phân tích và thi t k h ng đ i t ng (Object Oriented Analyze and Design - OOAD). Nhi uế ế ướ ố ượ ề
nhà nghiên c u ph ng pháp trong đó có Booch, Rumbaugh và Jacobson đã làm vi c đ c l pứ ươ ệ ộ ậ
và đã đ xu t các quy trình th a mãn yêu c u này. M i m t quy trình có m t t p ký hi u môề ấ ỏ ầ ỗ ộ ộ ậ ệ
hình riêng đ truy n đ t và di n t các k t qu phân tích và thi t k .ể ề ạ ễ ả ế ả ế ế
Vào đ u nh ng năm 1990, các công ty khác nhau, th m chí là các b ph n khác nhauầ ữ ậ ộ ậ
c a cùng m t công ty đã s d ng các quy trình khác nhau. Thêm vào đó, các công ty này l iủ ộ ử ụ ạ
mu n s d ng các công c ph n m m h tr các quy trình c a h . V i quá nhi u quy trìnhố ử ụ ụ ầ ề ỗ ợ ủ ọ ớ ề
khác nhau, các công ty ph n m m đã r t khó khăn trong vi c cung c p các công c này. Đi uầ ề ấ ệ ấ ụ ề
này cho th y vi c c n thi t ph i có m t quy trình v i t p ký hi u th ng nh t.ấ ệ ầ ế ả ộ ớ ậ ệ ố ấ
Năm 1994, James Rumbaugh đã h p tác cùng Grady Booch t i công ty ph n m mợ ạ ầ ề
Rational Software Corporation đ cùng xây d ng m t quy trình th ng nh t d a trên k t quể ự ộ ố ấ ự ế ả
14
c a t ng ng i. Sau đó Ivar Jacobson cũng s m gia nh p nhóm này. Năm 1996, nhóm đã choủ ừ ườ ớ ậ
xu t b n phiên b n đ u tiên c a UML t i c ng đ ng phát tri n ph n m m và yêu c u ph nấ ả ả ầ ủ ớ ộ ồ ể ầ ề ầ ả
h i. Cũng cùng th i gian đó, m t t ch c có tên Object Management Group (OMG) đã m iồ ờ ộ ổ ứ ờ
nhóm đ trình m t ngôn ng mô hình. OMG là m t t ch c phi l i nhu n chuyên xúc ti n vi cệ ộ ữ ộ ổ ứ ợ ậ ế ệ
s d ng công ngh h ng đ i t ng trong ngành công nghi p ph n m m thông qua vi c đ aử ụ ệ ướ ố ượ ệ ầ ề ệ ư
ra các h ng d n và đ c t OOP. Các thành viên c a OMG ban đ u là 3Com Corporation;ướ ẫ ặ ả ủ ầ
American Airlines; Canon, Inc.; Data General; Hewlett-Packard; Philips Telecommunications
N.V.; Sun Microsystems; và Unisys Corporation. Các t p đoàn l n nh HP, IBM, Microsoft,ậ ớ ư
Oracle và Rational Software đã nh n th y l i ích c a UML và đã nh n l i tài tr cho các d ánậ ấ ợ ủ ậ ờ ợ ự
v UML c a OMG. Năm 1997, OMG ti p t c xem xét l i UML và đ n năm 2001 thì phiênề ủ ế ụ ạ ế
b n UML 1.4 ra đ i. Hi n nay OMG đã phát hành t i phiên b n UML 2.0 và đang nghiên c uả ờ ệ ớ ả ứ
phiên b n 2.1.ả
II.2. Khái ni m v UMLệ ề
UML – Unified Modeling Language là m t ngôn ng dùng các s đ và mô hình th ngộ ữ ơ ồ ố
nh t đ mô hình các h th ng ph n m m.ấ ể ệ ố ầ ề
M c đích c a UML là:ụ ủ
• Tr thành ngôn ng mô hình mà t t c m i ng i làm mô hình có th s d ngở ữ ấ ả ọ ườ ể ử ụ
• T p trung h ng t i gi i quy t các v n đ t n t i trong phát tri n ph n m mậ ướ ớ ả ế ấ ề ồ ạ ể ầ ề
hi n nay.ệ
• Đ n gi n nh t có th trong khi v n mô hình đ c ph n l n các ng d ng.ơ ả ấ ể ẫ ượ ầ ớ ứ ụ
• Nâng cao tính tái s d ng các thành ph n c a m t h th ng ph n m mử ụ ầ ủ ộ ệ ố ầ ề
• UML là m t ngôn ng di n t , UML không ph i là m t quy trình. ộ ữ ễ ả ả ộ
Thu t ng “Unified” đây có m t ý nghĩa quan tr ng, nó nói lên các nguyên t c c aậ ữ ở ộ ọ ắ ủ
UML:
• Th ng nh t ph ng th c, ký hi u, thu t ngố ấ ươ ứ ệ ậ ữ
• G n k t gi a các chu trình phát tri nắ ế ữ ể
• Không ph thu c vào lĩnh v c ng d ngụ ộ ự ứ ụ
• Không ph thu c vào ngôn ng l p trình và môi tr ng th c hi nụ ộ ữ ậ ườ ự ệ
• Không ph thu c vào quy trình phát tri nụ ộ ể
• G n k t ch t ch các khái ni m n i t i c a h th ng.ắ ế ặ ẽ ệ ộ ạ ủ ệ ố
II.3 Đ c tr ng c a UMLặ ư ủ
Hi n nay, UML là m t ngôn ng đã đ c OMG chu n hóa và đ c đ c t rõ ràng. T tệ ộ ữ ượ ẩ ượ ặ ả ấ
c các mô hình, s đ c a UML đ u theo h ng đ i t ng.ả ơ ồ ủ ề ướ ố ượ
Các đ c tính c a UML bao g m:ặ ủ ồ
• Mô hình class (class diagrams) mô t c u trúc tĩnh c a h th ng và m i quan hả ấ ủ ệ ố ố ệ
gi a các đ i t ngữ ố ượ
• Mô hình t ng tác (interaction diagrams), mô hình tr ng thái (state diagrams), môươ ạ
hình ho t đ ng (activity diagrams) mô t các hành vi đ ng c a các đ i t ngạ ộ ả ộ ủ ố ượ
trong h th ng cũng nh các thông đi p gi a chúng.ệ ố ư ệ ữ
• Mô hình Use-case và mô hình ho t đ ng mô t các yêu c u và các lu ng côngạ ộ ả ầ ồ
vi c trong h th ng.ệ ệ ố
• Các mô hình c u trúc h n h p (composite structure diagrams) mô t s h p tácấ ỗ ợ ả ự ợ
cũng nh các đ c đi m v cài đ t.ư ặ ể ề ặ
15
• Mô hình tri n khai (deployment diagrams) mô t vi c tri n khai ph n m m trênể ả ệ ể ầ ề
m t môi tr ng xác đ nh.ộ ườ ị
III. Ngôn ng UMLữ
III.1. Các thành ph n c a UMLầ ủ
Xét trên khía c nh ngôn ng di n t , UML có đ y đ các mô hình và s đ đ thạ ữ ễ ả ầ ủ ơ ồ ể ể
hi n h u hêt các khía c nh c a h th ng ph n m m. Các thành ph n c a ngôn ng UML baoệ ầ ạ ủ ệ ố ầ ề ầ ủ ữ
g m:ồ
• Các Views (các h ng nhìn): Các view th hi n các cách nhìn khác nhau t i hướ ể ệ ớ ệ
th ng. M t h th ng không th ch đ c mô t b i m t s đ . Nhi u h ngố ộ ệ ố ể ỉ ượ ả ở ộ ơ ồ ề ướ
nhìn khác nhau cho ta nhi u s đ mô t đ y đ v h th ng. Các h ng nhìnề ơ ồ ả ầ ủ ề ệ ố ướ
cũng liên k t ngôn ng mô hình v i các quy trình đ c ch n cho vi c phát tri nế ữ ớ ượ ọ ệ ể
h th ng.ệ ố
• Các Diagrams (các s đ ): Các s đ bao g m các ph n t hình v dùng đ môơ ồ ơ ồ ồ ầ ử ẽ ể
t nôi dung c a các View. UML 2.0 bao g m 13 lo i s đ khác nhau.ả ủ ồ ạ ơ ồ
• Các Model Elements (các ph n t mô hình): Các khái ni m đ c s d ng trongầ ử ệ ượ ử ụ
các s đ và các ph n t c a s đ di n t các khái ni m ph bi n c a côngơ ồ ầ ử ủ ơ ồ ễ ả ệ ổ ế ủ
ngh h ng đ i t ng nh class, object, message (thông đi p) và m i quan hệ ướ ố ượ ư ệ ố ệ
gi a chúng bao g m quan h dependence, inheritance và aggregation. M t ph nữ ồ ệ ộ ầ
t mô hình có th đ c s d ng trong nhi u s đ nh ng chúng luôn có cùng ýử ể ượ ử ụ ề ơ ồ ư
nghĩa và ký hi u gi ng nhau.ệ ố
16
Cỏc General Mechanisms (cỏc c t chung m r ng): Mụ t cỏc thụng tin chỳ
thớch, ng ngha c a cỏc ph n t mụ hỡnh, thu t ng .
III.2. Cỏc h ng nhỡn (view)
Use-case view: õy l h ng nhỡn v m t ch c nng c a h th ng c th c hi n b i
cỏc tỏc nhõn bờn ngoi.
ud Primary Use Cases
Hệ thống bán hàng qua mạng Interrnet
Chọn hàng
Khách hàng
Đ ăng ký
khách hàng
Quản trị hệ
thống
Nhân viên kinh
doanh
Lập đơn mua
hàng
Gửi thông
tin phản hồi
Xem chi tiết
sản phẩm
Cập nhật giỏ
hàng
Cập nhật
thông tin
mặt hàng
Quản lý
danh mục
hàng hóa
Trả lời
khách hàng
Theo dõi
đơn hàng
Cỏc nguyờn t c cho vi c xõy d ng use-case view l:
Cỏc use-case c hỡnh thnh trờn c s nhỡn t bờn ngoi vo trong h th ng
(out-> in).
Cỏc use-case ph i y , chỳng c t ng h p theo ph ng phỏp i t t i a
n t i thi u (ban u m r ng t i a cỏc use-case cú th sau ú thu h p l i
theo nhu c u khỏch hng).
Cỏc use-case c n cú tớnh c l p t ng i d t ch c nhúm lm vi c v cú
tớnh tỏi s d ng cao.
Bờn c nh s , ng i lm mụ hỡnh cú th s d ng mụ t b ng vn b n chi ti t cho
m i use-case (text detail). M i mụ t c n m b o cỏc thụng tin sau:
17
1. Tên use-case
2. M c tiêu c a use-caseụ ủ
3. Ph m vi c a use-caseạ ủ
4. Các tác nhân chính
5. Ti n đi u ki nề ề ệ
6. Dòng chính
7. Dòng phụ
8. Ngo i lạ ệ
9. H u đi u ki nậ ề ệ
Sau đây là m t ví d v use-case text detail:ộ ụ ề
Use-case: Đòi ti n b i th ngề ồ ườ
Ph m vi: ạ Công ty B o hi m PCMả ể
Actor chính: Ng i đòi b i th ngườ ồ ườ
Dòng chính
1. Ng i đòi b i th ng g i đ n yêu c u v i các d li u b ng ch ng v tai n nườ ồ ườ ử ơ ầ ớ ữ ệ ằ ứ ề ạ
2. Công ty b o hi m xác nh n ng i vi t đ n có quy n l i b o hi m h p lả ể ậ ườ ế ơ ề ợ ả ể ợ ệ
3. Công ty b o hi m phân công cho m t đ i lý xác minh tr ng h p nàyả ể ộ ạ ườ ợ
4. Đ i lý đ i chi u t t c các chi ti t trong đ n theo chính sách b o hi m c aạ ố ế ấ ả ế ơ ả ể ủ
công ty
5. Công ty b o hi m tr ti n b o hi mả ể ả ề ả ể
Dòng phụ
1a. B ng ch ng tai n n không đ y đằ ứ ạ ầ ủ
1a1. Công ty b o hi m yêu c u d li u thi uả ể ầ ữ ệ ế
1a2. Ng i đòi b i th ng g i l i các d li u thi uườ ồ ườ ử ạ ữ ệ ế
2a. Ng i đòi b i th ng không có chính sách b o hi m h p lườ ồ ườ ả ể ợ ệ
2a1. Công ty b o hi m t ch i yêu c u, nh c nh , ghi l i và k t thúc x lý v vi cả ể ừ ố ầ ắ ở ạ ế ử ụ ệ
3a. Không có đ i lý nào r nh r iạ ả ỗ
3a1. (Công ty b o hi m s làm gì trong tr ng h p này???)ả ể ẽ ườ ợ
4a. V tai n n vi ph m chính sách b o hi m c b nụ ạ ạ ả ể ơ ả
4a1. Công ty b o hi m t ch i yêu c u, nh c nh , ghi l i và k t thúc x lý v vi cả ể ừ ố ầ ắ ở ạ ế ử ụ ệ
4b. V tai n n ch vi ph m chính sách b o hi m nhụ ạ ỉ ạ ả ể ỏ
4b1. Công ty b o hi m đi u đình v i ng i đòi b o hi m và đ ng ý tr b o hi mả ể ề ớ ườ ả ể ồ ả ả ể
Trong tr ng h p các use-case quá ph c t p và ch a đ c mô t rõ ràng, chúng có thườ ợ ứ ạ ư ượ ả ể
đ c tác ra thành các use-case nh h n theo hai d ng:ượ ỏ ơ ạ
• Include: use-case m i đ c tách ra và đ c bao g m trong use-case chính m tớ ượ ượ ồ ộ
cách vô đi u ki nề ệ
18