Nghiên cứu UML và ứng dụng UML vào quá trình phát triển phần mềm
Xu thế áp dụng phương pháp hướng đối tượng thay cho phương pháp hướng chức năng (phương pháp truyền thống) ngày càng được áp dụng phổ biến vào các hệ thống phần mềm.
Đối với một hệ thống lớn, phương pháp tiếp cận hướng đối tượng sử dụng UML được áp dụng như một quá trình suy diễn phát triển hệ thống để việc trao đổi giữa người thu thập thông tin với khách hàng, giữa người thiết kế với người lập trình . cùng sử dụng một ngôn ngữ mô hình hoá.
Rất nhiều dự án phải thay đổi dẫn đến tăng thêm chi phí do không có sự thống nhất giữa khách hàng và nhà sản xuất, giữa nhà quản lý và người thiết kế, những người phát triển sản phẩm với nhau.
Nhận thấy rõ vai trò và tầm quan trọng của nó, Trung tâm Công nghệ thông tin – CDiT (thuộc Học viện Công nghệ BCVT) đã quyết định chọn hướng nghiên cứu ứng dụng UML nhằm nâng cao chất lượng sản phẩm thông qua cải tiến tối ưu quy trình sản xuất phần mềm bằng việc mô hình hóa quá trình.
5 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 1949 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Nghiên cứu UML và ứng dụng UML vào quá trình phát triển phần mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
nghiªn cøu UML vµ øng dông UML vµo qu¸ tr×nh
ph¸t triÓn phÇn mÒm
KS. Lu ThÞ Thu HiÒn
Trung t©m C«ng nghÖ th«ng tin
Tãm t¾t:
Xu thÕ ¸p dông ph¬ng ph¸p híng ®èi tîng thay cho ph¬ng ph¸p híng chøc n¨ng (ph¬ng ph¸p truyÒn thèng) ngµy cµng ®îc ¸p dông phæ biÕn vµo c¸c hÖ thèng phÇn mÒm.
§èi víi mét hÖ thèng lín, ph¬ng ph¸p tiÕp cËn híng ®èi tîng sö dông UML ®îc ¸p dông nh mét qu¸ tr×nh suy diÔn ph¸t triÓn hÖ thèng ®Ó viÖc trao ®æi gi÷a ngêi thu thËp th«ng tin víi kh¸ch hµng, gi÷a ngêi thiÕt kÕ víi ngêi lËp tr×nh ... cïng sö dông mét ng«n ng÷ m« h×nh ho¸.
RÊt nhiÒu dù ¸n ph¶i thay ®æi dÉn ®Õn t¨ng thªm chi phÝ do kh«ng cã sù thèng nhÊt gi÷a kh¸ch hµng vµ nhµ s¶n xuÊt, gi÷a nhµ qu¶n lý vµ ngêi thiÕt kÕ, nh÷ng ngêi ph¸t triÓn s¶n phÈm víi nhau.
NhËn thÊy râ vai trß vµ tÇm quan träng cña nã, Trung t©m C«ng nghÖ th«ng tin – CDiT (thuéc Häc viÖn C«ng nghÖ BCVT) ®· quyÕt ®Þnh chän híng nghiªn cøu øng dông UML nh»m n©ng cao chÊt lîng s¶n phÈm th«ng qua c¶i tiÕn tèi u quy tr×nh s¶n xuÊt phÇn mÒm b»ng viÖc m« h×nh hãa qu¸ tr×nh.
Nhu cÇu thùc tÕ vµ kh¶ n¨ng øng dông cña UML
Ng«n ng÷ m« h×nh hîp nhÊt (UML - Unified Modelling Language) ®îc tæ chøc OMG (Object Management Group) c«ng nhËn chuÈn c«ng nghiÖp vµo th¸ng 11/1997 lµ c«ng cô hç trî ®¾c lùc cho ph¬ng ph¸p luËn híng ®èi tîng.
Ng«n ng÷ m« h×nh hîp nhÊt nµy phï hîp cho viÖc m« h×nh ho¸ c¸c hÖ thèng nh: hÖ thèng th«ng tin doanh nghiÖp, c¸c øng dông ph©n t¸n trªn nÒn Web, hÖ thèng nhóng thêi gian thùc…
§Æc biÖt, nã cßn ®îc sö dông cho mäi tiÕn tr×nh ph¸t triÓn phÇn mÒm, xuyªn suèt vßng ®êi ph¸t triÓn s¶n phÈm vµ ®éc lËp víi c¸c c«ng nghÖ cµi ®Æt hÖ thèng.
§èi víi ngµnh Bu chÝnh ViÔn th«ng, c¸c bµi to¸n ®Æc thï cña ngµnh cã mét sè ®Æc ®iÓm ®ßi hái kh¸ kh¾t khe:
Ph¹m vi ¸p dông bµi to¸n rÊt lín vµ cã tÝnh më cao.
Phøc t¹p vµ ®a d¹ng, ®ßi hái ®é chÝnh x¸c cao.
Thêi gian ph¸t triÓn vµ n©ng cÊp hÖ thèng kh«ng cã giíi h¹n v× nghiÖp vô viÔn th«ng kh«ng chØ lu«n cã nh÷ng bíc tiÕn míi mµ cßn tèc ®é c¸c c«ng nghÖ kü thuËt tiªn tiÕn kh«ng ngõng gia t¨ng.
§ßi hái cÇn cã mét kiÕn tróc v÷ng vµng vµ hiÓu ®îc bøc tranh tæng thÓ còng nh hiÓu ®óng yªu cÇu thùc tÕ. VÊn ®Ò nµy rÊt cÇn cho nh÷ng bµi to¸n lín trong c¸c trêng hîp nÕu hÖ thèng bæ sung thªm c¸c chøc n¨ng mµ nhãm ph¸t triÓn ph¶i lµm l¹i tõ ®Çu th× mÊt rÊt nhiÒu c«ng søc, chi phÝ vµ thêi gian. Do vËy, kiÕn tróc lµ mét x¬ng sèng cña hÖ thèng.
§Ó chuyÓn t¶i vµ hiÓu râ yªu cÇu ®ã cña kh¸ch hµng, viÖc ¸p dông UML trong qu¸ tr×nh ph¸t triÓn phÇn mÒm lµ hoµn toµn phï hîp vµ ®¸p øng ®îc yªu cÇu bµi to¸n ®Æt ra.
UML lµ ng«n ng÷ m« h×nh hîp nhÊt:
§Æc t¶ th«ng tin(specifying): m« t¶ râ rµng nh÷ng ®iÓm mÊu chèt cña vÊn ®Ò, cho phÐp m« t¶ m« h×nh chÝnh x¸c, kh«ng nhËp nh»ng. UML híng tíi ®Æc t¶ thiÕt kÕ, ph©n tÝch vµ quyÕt ®Þnh cµi ®Æt trong qu¸ tr×nh ph¸t triÓn vµ triÓn khai hÖ thèng phÇn mÒm.
Trùc quan (Visualizing - cã thÓ nh×n thÊy ®îc): ngêi ph¸t triÓn cã thÓ giao tiÕp th«ng qua m« h×nh kh¸i niÖm.
X©y dùng (Constructing): cã thÓ ¸nh x¹ m« h×nh trong UML tíi c¸c ng«n ng÷ lËp tr×nh kh¸c nhau nh: Java, C++, hay c¸c b¶ng CSDL quan hÖ, CSDL híng ®èi tîng. ¸nh x¹ nµy cho kh¶ n¨ng biÕn ®æi thuËn tõ m« h×nh UML sang ng«n ng÷ lËp tr×nh. §ång thêi cã kh¶ n¨ng biÕn ®èi ngîc tõ cµi ®Æt vÒ m« h×nh UML; cã nghÜa r»ng nã cho kh¶ n¨ng lµm viÖc víi v¨n b¶n hay ®å häa nhÊt qu¸n.
LËp tµi liÖu(documenting): UML híng tíi lµm tµi liÖu kiÕn tróc hÖ thèng vµ c¸c chi tiÕt cña nã. UML cho kh¶ n¨ng biÓu diÔn yªu cÇu, thö nghiÖm, m« h×nh hãa c¸c ho¹t ®éng lËp kÕ ho¹ch vµ qu¶n lý s¶n phÈm.
Chóng ta cã thÓ ¸p dông UML cho c¸c kiÓu hÖ thèng kh¸c nhau, c¸c lÜnh vùc, c¸c ph¬ng ph¸p hoÆc c¸c quy tr×nh, m« h×nh ph¸t triÓn kh¸c nhau. Trong qu¸ tr×nh x©y dùng hÖ thèng phÇn mÒm theo híng ®èi tîng UML ®îc sö dông cho mäi tiÕn tr×nh, xuyªn suèt vßng ®êi ph¸t triÓn vµ kh«ng phô thuéc c«ng nghÖ dïng trong lËp tr×nh hÖ thèng.
C¸c ®Æc ®iÓm cña UML:
Lµ mét ng«n ng÷ m« h×nh ®a dông: tËp trung chñ yÕu vµo c¸c kh¸i niÖm c¬ b¶n cho viÖc yªu cÇu, chia sÎ vµ tËn dông tèi ®a kiÕn thøc víi c¸c c¬ cÊu më réng.
Lµ mét ng«n ng÷ m« h×nh ®îc ¸p dông réng r·i, nã ®îc ¸p dông ë c¸c kiÓu hÖ thèng (phÇn mÒm vµ phi-phÇn mÒm ), c¸c miÒn, c¸c ph¬ng thøc vµ c¸c quy tr×nh kh¸c nhau.
UML lµ mét ng«n ng÷ m« h×nh hç trî c«ng cô, c¸c c«ng cô nµy lµ s½n sµng hç trî øng dông ng«n ng÷ ®Ó chi tiÕt hãa(®Æc t¶), trùc quan, x©y dùng vµ lËp tµi liÖu cho c¸c hÖ thèng dÔ dµng vµ tiÖn lîi.
UML lµ mét ng«n ng÷ m« h×nh chuÈn, nã lµ mét ng«n ng÷ ®îc c«ng nhËn cã tÝnh më cao.
UML cã kh¶ n¨ng lµm gi¶m chi phÝ vµ thêi gian thùc hiÖn, h¹n chÕ tèi thiÓu c¸c rñi ro cã thÓ x¶y ra khi hÖ thèng cã sù thay ®æi liªn tôc vµ ®èi víi nh÷ng hÖ thèng phøc t¹p.
Mét ®Æc ®iÓm cña UML n÷a lµ tÝnh hÖ thèng ho¸ tõ ph¬ng ph¸p luËn, m« h×nh ph¸t triÓn cho tíi c«ng cô (thiÕt kÕ, kiÓm tra, qu¶n lý cÊu h×nh) cã mèi liªn kÕt chÆt chÏ víi nhau. §©y lµ ®iÓm rÊt kh¸c biÖt ®èi víi c¸c c«ng cô dïng thiÕt kÕ cho híng chøc n¨ng.
Mét sè kÕt qu¶ ®¹t ®îc trong qu¸ tr×nh nghiªn cøu UML t¹i CDiT
Qu¸ tr×nh nghiªn cøu UML cña Trung t©m C«ng nghÖ th«ng tin bíc ®Çu ®· ®¹t ®îc mét sè kÕt qu¶ kh¸ kh¶ quan: lµm chñ ®îc c«ng nghÖ míi tõ ®ã x©y dùng thµnh c«ng m« h×nh ho¸ quy tr×nh s¶n xuÊt phÇn mÒm øng dông UML, sö dông c«ng cô Rational Rose cho qu¸ tr×nh ph©n tÝch vµ thiÕt kÕ.
Quy tr×nh s¶n xuÊt phÇn mÒm cã øng dông UML m« h×nh hãa qu¸ tr×nh ph¸t triÓn phÇn mÒm tu©n thñ c¸c nguyªn t¾c sau ®©y:
2.1.Ph¸t triÓn theo lÆp vµ t¨ng dÇn
Ngêi ph¸t triÓn ph¶i thö nhiÒu trêng hîp vµ c¶i tiÕn dÇn gi¶i ph¸p cña m×nh cho ®Õn khi cã ®îc m« h×nh tháa m·n yªu cÇu chøc n¨ng còng nh dÔ thay ®æi hay më réng.
2.2.Use case ®iÒu khiÓn (Use-case driven)
Use-case driven: c¸c use case (UC) ®îc sö dông nh lµ mét nh©n tè chÝnh cho viÖc x©y dùng c¸ch thøc ho¹t ®éng cÇn thiÕt cña hÖ thèng. C¸c UC ®iÒu khiÓn tÊt c¶ c«ng viÖc cña nhãm ph¸t triÓn kÓ tõ khi b¾t ®Çu dù ¸n vµ tháa thuËn c¸c yªu cÇu kh¸ch hµng cho ®Õn khi lËp tr×nh. H×nh vÏ díi ®©y cho chóng ta thÊy r»ng: Ngêi sö dông m« t¶ Use-case, ngêi thiÕt kÕ cã nhiÖm vô thiÕt kÕ UC, lËp tr×nh viªn cµi ®Æt UC vµ nh©n viªn kiÓm ®Þnh chÊt lîng kiÓm tra UC.
2.3.TËp trung vµo kiÕn tróc (Architecture centric)
KiÕn tróc cña mét hÖ thèng ®îc xem nh mét nÒn t¶ng c¬ b¶n trong qu¸ tr×nh ph¸t triÓn phÇn mÒm. KiÕn tróc hÖ thèng liªn kÕt víi c¸c use case ®Ó ®iÒu khiÓn vµ gi¸m s¸t c¸c gãc ®é cña hÖ thèng. §øng ë gãc ®é quy tr×nh, kiÕn tróc ®îc thÓ hiÖn râ díi d¹ng c¸c khung nh×n c¬ b¶n trong s¸u m« h×nh. C¸c khung nh×n ®ã ph¶n ¸nh “TÇm quan träng cña kiÕn tróc” c¸c phÇn tö trong c¸c m« h×nh, c¸ch chóng lµm viÖc cïng nhau, c¸c khung nh×n h×nh thµnh nªn m« t¶ kiÕn tróc.
KiÕn tróc hÖ thèng ®îc nhãm ph¸t triÓn dù ¸n m« t¶ vµ h×nh thµnh ngay giai ®o¹n ban ®Çu sau ®ã trong suèt qu¸ tr×nh ph¸t triÓn nã sÏ ®îc bæ sung vµ cËp nhËt theo thùc tÕ thùc hiÖn.
C¸c phÇn mÒm hiÖn nay cã xu híng tËp trung trªn viÖc tÝnh to¸n ph©n t¸n, v× vËy nã còng trë nªn kh¸ phøc t¹p vµ kh«ng ai cã thÓ nãi r»ng c«ng cô vµ c«ng nghÖ sÏ “theo kÞp” ë bÊt cø thêi gian nµo. Yªu cÇu cña kh¸ch hµng thêng xuyªn cã sù thay ®æi. Do vËy chóng ta còng khã thÓ hiÓu ®Çy ®ñ vÒ bøc tranh tæng thÓ cña hÖ thèng. V× lý do nµy mµ kiÕn tróc chÝnh lµ ph¬ng tiÖn ®Çu tiªn gióp cho chóng ta cã thÓ hiÓu ®îc dÔ dµng bøc tranh tæng thÓ cña hÖ thèng. Nhãm ph¸t triÓn cã thÓ sö dông hiÖu qu¶ c¸c m« h×nh kiÕn tróc mÉu cã thÓ trî gióp ®Þnh híng nç lùc ph¸t triÓn ë c¸c møc kh¸c nhau (Client/Server, m« h×nh kiÕn tróc 3 líp, m« h×nh kiÕn tróc n-líp).
Mét trong c¸c nguyªn lý c¬ b¶n cña viÖc ph¸t triÓn dùa trªn c¸c thµnh phÇn (component – based development) lµ kh¶ n¨ng sö dông l¹i cña c¸c thµnh phÇn, víi viÖc bæ sung söa ®æi (customize) lµ tèi thiÓu trong ng÷ c¶nh kh¸c nhau. Mét kiÕn tróc tèt lµ c¸c thµnh phÇn cã thÓ lµm viÖc cïng víi nhau vµ c¸c nhãm ph¸t triÓn cã thÓ ®îc sö dông l¹i trong viÖc x©y dùng mét hÖ thèng kh¸c. ViÖc nµy ®· lµm gi¶m ®îc thêi gian cho c¸c nhãm ph¸t triÓn tËp trung vµo viÖc x©y dùng c¸c thµnh phÇn míi, vµ v× vËy c¸c nhãm cã thÓ tËn dông tèi ®a thêi gian nµy ®Ó t×m hiÓu kü h¬n vÒ c¸c vÊn ®Ò cña kh¸ch hµng vµ c¸c gi¶i ph¸p m« h×nh.
M« h×nh cña UML thÓ hiÖn trong c¸c lo¹i biÓu ®å sau: BiÓu ®å Use-case, BiÓu ®å líp (Class Diagram), BiÓu ®å céng t¸c(Collaboration Diagram), BiÓu ®å ho¹t ®éng (Activity Diagram), BiÓu ®å trang th¸i (State Diagram), BiÓu ®å tuÇn tù (Sequence Diagram), BiÓu ®å ®èi tîng (Object Diagram).
Qua qu¸ tr×nh nghiªn cøu ®ång thêi còng gióp cho nhãm ph¸t triÓn:
N¾m ®îc c¸c kh¸i niÖm c¨n b¶n vµ ph¬ng ph¸p ph©n tÝch hÖ thèng híng ®èi tîng
Ph©n biÖt gi÷a ph¬ng ph¸p ph©n tÝch hÖ thèng híng chøc n¨ng vµ ph¬ng ph¸p ph©n tÝch hÖ thèng híng ®èi tîng, c¸c m« h×nh ph¸t triÓn phÇn mÒm ®Æc trng cho tõng ph¬ng ph¸p.
Kü n¨ng sö dông c«ng cô Rational Rose ®Ó thÓ hiÖn m« h×nh hÖ thèng th«ng tin cÇn ph©n tÝch.
KÕt luËn
UML víi rÊt nhiÒu u ®iÓm ®Æc trng cña m×nh, lµ mét ng«n ng÷ m« h×nh ho¸ cã nhiÒu tiÒm n¨ng trî gióp cho c¸c tæ chøc phÇn mÒm ®¹t ®îc hiÖu qu¶ vµ chÊt lîng cao. Tuy nhiªn, ®Ó ¸p dông thµnh c«ng UML vµo qu¸ tr×nh s¶n xuÊt phÇn mÒm, chóng ta kh«ng thÓ kh«ng nh¾c ®Õn sù quan t©m ®Çu t, chØ ®¹o s¸t sao cña l·nh ®¹o trung t©m CDiT. §ång thêi, yÕu tè mang l¹i thµnh c«ng kh«ng kÐm phÇn quan träng ®ã lµ ®Þnh híng ph¸t triÓn. §èi víi mét m«i trêng c«ng nghÖ cao vµ mét nÒn kinh tÕ tri thøc kh«ng cã con ®êng nµo kh¸c lµ tham gia vµo cuéc ch¹y ®ua tri thøc.
§Æc biÖt trong lÜnh vùc CNPM, ®©y lµ mét lÜnh vùc khã vµ kh¸ míi mÎ ë ViÖt Nam. Do vËy, x¸c ®Þnh híng ®i ®óng ®¾n ngay tõ ban ®Çu ®· tiÕt kiÖm ®îc chi phÝ thùc hiÖn vµ tr¸nh ®îc l·ng phÝ vÒ thêi gian.
Gãp phÇn cho sù thµnh c«ng cña kÕt qu¶ nµy, ®éi ngò trÎ cña CDiT kh«ng ngõng phÊn ®Êu lao ®éng, s¸ng t¹o, trau dåi kiÕn thøc vµ thêng xuyªn trao ®æi, häc hái kinh nghiÖm lÉn nhau.
Dùa vµo thµnh qu¶ ®¹t ®îc trong qu¸ tr×nh nghiªn cøu UML, Trung t©m c«ng nghÖ th«ng tin-CDIT ®· x¸c ®Þnh râ híng ®i tiÕp theo ®ã lµ:
§µo t¹o vÒ UML cho tÊt c¶ c¸c c¸n bé nghiªn cøu cña Trung t©m c«ng nghÖ th«ng tin.
Nghiªn cøu, triÓn khai ¸p dông ®ång bé c«ng cô cã s½n hç trî UML cña Rational theo c¸c ph¬ng diÖn kh¸c nhau nh qu¶n lý dù ¸n, ®¸nh gi¸ kiÓm tra s¶n phÈm, theo c¸c giai ®o¹n kh¸c nhau trong s¶n xuÊt phÇn mÒm: KiÓm so¸t vµ ph©n tÝch yªu cÇu, ph©n tÝch vµ thiÕt kÕ, KiÓm tra, qu¶n lý cÊu h×nh nh»m gi¶m thiÓu lçi trong qu¸ tr×nh s¶n xuÊt phÇn mÒm.
Víi träng t©m: “ChÊt lîng lu«n lu«n lµ vÊn ®Ò sèng cßn”, do vËy Trung t©m c«ng nghÖ th«ng nguyÖn ph¸t huy kÕt qu¶ ®· ®¹t ®îc, ®em hÕt n¨ng lùc vµ nhiÖt t×nh thóc ®Èy sù nghiÖp ph¸t triÓn ngang tÇm víi ®ßi hái cña thêi kú c«ng nghiÖp ho¸, hiÖn ®¹i ho¸ ®Êt níc.
Tµi liÖu tham kh¶o
UML distilled second edition, A brief guide to the standard object modeling language, Martin follower with Kendall scott
UML in a nutshell, Sinan Si Alhir, O’Reilly
Object-Oriented Project management with UML, Murray R.Cantor
Ph©n tÝch thiÕt kÕ híng ®èi tîng b»ng UML, §Æng V¨n §øc
Nghiªn cøu vÒ UML ®Ó ph©n tÝch vµ thiÕt kÕ hÖ thèng th«ng tin qu¶n lý, TrÇn V¨n L¨ng
Object-oriented Analysis and design using the UML, Rational University professional education and product training.
Lecture 4: Software Lifecycles, University of Toroton, Department of computer science.
Lecture8: Advanced design issues, Software engineering.
Các file đính kèm theo tài liệu này:
- Nghiên cứu UML và ứng dụng UML vào quá trình phát triển phần mềm.doc