Nghiên cứu UML và ứng dụng UML vào quá trình phát triển phần mềm

Chia sẻ: Quanghai Quanghai | Ngày: | Loại File: DOC | Số trang:7

0
469
lượt xem
125
download

Nghiên cứu UML và ứng dụng UML vào quá trình phát triển phần mềm

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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......

Chủ đề:
Lưu

Nội dung Text: Nghiên cứu UML và ứng dụng UML vào quá trình phát triển phần mềm

  1. LÜnh vùc C«ng nghÖ th«ng tin 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. 1. 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. Häc viÖn C«ng nghÖ BCVT
  2. Héi nghÞ Khoa häc lÇn thø 5 - 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 Häc viÖn C«ng nghÖ BCVT
  3. LÜnh vùc C«ng nghÖ th«ng tin 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. 2. 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. Häc viÖn C«ng nghÖ BCVT
  4. Héi nghÞ Khoa häc lÇn thø 5 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. Diendat Hieu Nguoi su dung Nguoi phan tich Kiemtra Caidat UseCase Thietke Kiemtra Lap trinh vien Thietke 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 Häc viÖn C«ng nghÖ BCVT
  5. LÜnh vùc C«ng nghÖ th«ng tin 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 tr ng 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. 3. KÕt luËn UML víi rÊt nhiÒu u ®iÓm ®Æc tr ng 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 Häc viÖn C«ng nghÖ BCVT
  6. Héi nghÞ Khoa häc lÇn thø 5 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 1. UML distilled second edition, A brief guide to the standard object modeling language, Martin follower with Kendall scott 2. UML in a nutshell, Sinan Si Alhir, O’Reilly 3. Object-Oriented Project management with UML, Murray R.Cantor 4. Ph©n tÝch thiÕt kÕ híng ®èi t îng b»ng UML, §Æng V¨n §øc 5. 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 6. http://www.hoora.org 7. Object-oriented Analysis and design using the UML, Rational University professional education and product training. Häc viÖn C«ng nghÖ BCVT
  7. LÜnh vùc C«ng nghÖ th«ng tin 8. Lecture 4: Software Lifecycles, University of Toroton, Department of computer science. 9. Lecture8: Advanced design issues, Software engineering. Häc viÖn C«ng nghÖ BCVT
Đồng bộ tài khoản