intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Phân tích thiết kế phần mềm hướng đối tượng và hướng thành phần

Chia sẻ: Phan Thi Ngoc Giau | Ngày: | Loại File: PDF | Số trang:51

195
lượt xem
69
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong thập kỉ vừa qua có nhiều phương pháp và ngôn ngữ phân tích và thiết kế hướng đối tượng đã đưuọc phát triển. Mặc dù các phương pháp này đều có mục đích chung tuy nhiên chúng đều có thuật ngữ và ký hiệu khác nhau nên gây nhiều khó khăn khi so sánh...

Chủ đề:
Lưu

Nội dung Text: Phân tích thiết kế phần mềm hướng đối tượng và hướng thành phần

  1. Software Engineering Departmnet – Hanoi University of Technology Faculty of Information Technology UML – OOAD ph©n tÝch thiÕt kÕ phÇn mÒm h−íng ®èi t−îng vµ h−íng thµnh phÇn 1. §ç V¨n Uy 2. NguyÔn Ngäc B×nh 3. Th¹c B×nh C−êng 4. L−¬ng M¹nh B¸ 5. Huúnh QuyÕt Th¾ng 6. Bïi ThÞ Hoµ 7. Lª TÊn Hïng 8. Lª §øc Trung C¸c nghiªn cøu ®−îc hç trî kinh phÝ tõ ®Ò tµi nghiªn cøu khoa häc c¬ b¶n KHCB 230701 LUu HANH NOI BO Hµ néi 2001
  2. Ch−¬ng 1. Tæng quan vÒ UML 1.1. Giíi thiÖu Trong thËp kû võa qua cã nhiÒu ph−¬ng ph¸p vµ ng«n ng÷ ph©n tÝch vµ thiÕt kÕ h−íng ®èi t−îng ®· ®−îc ph¸p triÓn. MÆc dï c¸c ph−¬ng ph¸p nµy ®Òu cã mét môc ®Ých chung tuy nhiªn chóng ®Òu cã thuËt ng÷ vµ ký hiÖu kh¸c nhau nªn g©y nhiÒu khã kh¨n khi so s¸nh c¸c m« h×nh vµ dïng l¹i c¸c thiÕt kÕ. C¸c ph−¬ng ph¸p nµy kh«ng cã ph−¬ng ph¸p nµo næi bËt h¬n nh÷ng ph−¬ng ph¸p kh¸c. Trong t×nh h×nh ®ã UML ra ®êi, vµ ®−a ra mét ng«n ng÷ chuÈn cho m« h×nh ho¸ h−íng ®èi t−îng. UML - Unified Modeling Language - lµ ng«n ng÷ m« h×nh hîp nhÊt. Nã lµ mét ph−¬ng tiÖn gióp cho c¸c tæ chøc cã thÓ nhËn thøc mét c¸ch tèt nhÊt lîi thÕ c¹nh tranh th«ng qua viÖc n¾m b¾t, truyÒn ®¹t, trao ®æi vµ n©ng cao tri thøc trong lÜnh vùc c«ng nghÖ phÇn mÒm. ChÝnh x¸c h¬n UML lµ mét ng«n ng÷ m« h×nh hãa dïng ®Ó ®Æc t¶, trùc quan hãa, x©y dùng vµ lµm s−u liÖu cho c¸c hÖ thèng phÇn mÒm Unified (hîp nhÊt) UML ®−îc ®−a ra lÇn ®Çu tiªn bëi h·ng Rational vµ ba chuyªn gia vÒ ph−¬ng ph¸p luËn hµng ®Çu trong lÜnh vùc hÖ thèng th«ng tin/ kü thuËt c«ng nghÖ Grady Booch, James. Rumbaugh, Ivar Jacobson. Nã lµ sù hîp nhÊt gi÷a nh÷ng ph−¬ng ph¸p cò (Booch, OMT, OOSE ), kÕt hîp víi nh÷ng kinh nghiÖm, nh÷ng kiÕn thøc thùc tÕ. (m« h×nh hãa) gióp chóng ta hiÓu ®−îc thÕ giíi thùc, m« h×nh hãa Modeling thÕ giíi thùc ®Ó cã thÓ hiÓu ®−îc nh÷ng ®Æc tr−ng, tÝnh to¸n c¸c th«ng sè vµ dù ®o¸n kÕt qu¶ sÏ ®¹t ®−îc. Language (ng«n ng÷) chøc n¨ng cña UML nh− lµ mét ph−¬ng tiÖn ®Ó bµy tá vµ trao ®æi tri thøc. Nã cã bèn ®Æc ®iÓm chñ yÕu cã thÓ ph©n biÖt víi c¸c ng«n ng÷ m« h×nh hãa kh¸c • General-purpose - ®a môc ®Ých • Broadly applicable - cã thÓ øng dông réng r·i • Tool-supported - ®−îc hç trî bëi c¸c c«ng cô • Industry standardized - chuÈn c«ng nghiÖp UML lµ mét ng«n ng÷ m« h×nh hãa chuÈn nh−ng kh«ng ph¶i lµ mét qui tr×nh ph¸t triÓn phÇn mÒm chuÈn. MÆc dï UML ph¶i ®−îc ¸p dông trong ph¹m vi mét qui tr×nh cô thÓ, c¸c qui tr×nh ph¸t triÓn nµy th−êng kh¸c nhau ë c¸c tæ chøc ph¸t triÓn phÇn mÒm, ë c¸c vÊn ®Ò thuéc c¸c lÜnh vùc kh¸c nhau. Do ®ã, c¸c nhµ ph¸t triÓn UML ®· cè g¾ng tËp trung vµo ®Þnh nghÜa møc siªu m« h×nh (metamodel) ®Ó thèng nhÊt c¸c kh¸i niÖm vÒ ng÷ nghÜa vµ ký hiÖu, cã thÓ hç trî cho nhiÒu ng«n ng÷ lËp tr×nh vµ qui tr×nh ph¸t triÓn phÇn mÒm kh¸c nhau. UML lµ tæng hîp c¸c ph−¬ng ph¸p cña Booch, OMT vµ OOSE t¹o thµnh mét ng«n ng÷ m« h×nh hãa chung vµ cã thÓ sö dông réng r·i cho nh÷ng ng−êi tr−íc ®©y ®· quen víi ba ph−¬ng ph¸p trªn hay c¸c ph−¬ng ph¸p kh¸c. Ngoµi ra, UML http://www.ebook.edu.vn 2
  3. më réng ph¹m vi m« h×nh hãa cña c¸c ph−¬ng ph¸p hiÖn cã vµ cã thÓ m« h×nh hãa ®Çy ®ñ c¸c hÖ thèng ®ång thêi hay ph©n t¸n. UML lµ ng«n ng÷ cã thÓ ®−îc sö dông cho nhiÒu môc ®Ých kh¸c nhau. UML cung cÊp c¬ chÕ tæ chøc vµ ph©n lo¹i tri thøc theo ng÷ c¶nh cña vÊn ®Ò cÇn gi¶i quyÕt. C¸c tri thøc nµy ®−îc n¾m b¾t ®Çy ®ñ bëi m« h×nh bao gåm nhiÒu thµnh phÇn vµ ®−îc thÓ hiÖn qua tËp c¸c biÓu ®å kh¸c nhau cã liªn hÖ chÆt chÏ víi nhau. H¬n n÷a, mçi biÓu ®å n¾m b¾t vÊn ®Ò ë nh÷ng khÝa c¹nh kh¸c nhau qua c¸c kh¸i niÖm, cÊu tróc, c¸c thµnh phÇn m« h×nh thÓ hiÖn nh÷ng ng÷ nghÜa vµ tri thøc kh¸c nhau. C¸c biÓu ®å nµy m« t¶ néi dung giao tiÕp gi÷a c¸c thµnh viªn trong qui tr×nh ph¸t triÓn phÇn mÒm vµ ®−îc tÝch hîp víi nhau ®Ó t¹o nªn tri thøc m« t¶ hÖ thèng, nh÷ng vÊn ®Ò còng nh− c¸ch thøc thùc hiÖn ®Ó gi¶i quyÕt chóng. C¸c lîi Ých cña UML • Cã thÓ m« h×nh hãa nhiÒu lo¹i hÖ thèng, cã thÓ dïng trong nh÷ng giai ®o¹n kh¸c nhau cña qui tr×nh ph¸t triÓn phÇn mÒm. UML lµ sù thèng nhÊt c¸c kh¸i niÖm m« h×nh hãa cña nh÷ng nhµ nghiªn cøu vµ ph¸t triÓn c«ng nghÖ h−íng ®èi t−îng. UML cung cÊp mét sè tÝnh n¨ng sau §Çy ®ñ ng÷ nghÜa vµ ký hiÖu ®Ó gi¶i quyÕt trùc tiÕp c¸c vÊn ®Ò hiÖn t¹i trong m« h×nh hãa. §Çy ®ñ ng÷ nghÜa ®Ó gi¶i quyÕt mét sè khã kh¨n t−¬ng lai trong m« h×nh hãa ®Æc biÖt cã liªn quan ®Õn c«ng nghÖ thµnh phÇn, xö lý ph©n t¸n, framework vµ executability. C¬ chÕ më réng siªu m« h×nh cho m« h×nh hãa c¸c øng dông ®Æc biÖt. C¬ chÕ nµy còng khiÕn cho c¸c h−íng tiÕp cËn m« h×nh hãa t−¬ng lai cã thÓ ph¸t triÓn dùa trªn nÒn t¶ng UML. §Çy ®ñ ng÷ nghÜa ®Ó dÔ dµng chuyÓn ®æi m« h×nh gi÷a c¸c c«ng cô hç trî ph©n tÝch thiÕt kÕ kh¸c nhau còng nh− ®Þnh râ giao tiÕp víi c¸c repository ®Ó l−u tr÷ vµ chia xÎ c¸c thµnh phÇn m« h×nh. • §èi víi ng−êi sö dông UML cung cÊp mét ng«n ng÷ m« h×nh hãa trùc quan mang tÝnh diÔn ®¹t cao ®Ó ph¸t triÓn vµ trao ®æi gi÷a c¸c m« h×nh. Mét ng«n ng÷ m« h×nh hãa nãi chung ®−îc cÊu tróc dùa trªn c¸c thµnh phÇn c¬ b¶n nhÊt ë møc siªu-siªu m« h×nh. NÕu cÊu tróc nµy thay ®æi theo mét tËp c¸c kh¸i niÖm m« h×nh hãa kh¸c nhau theo c¸c ph−¬ng ph¸p kh¸c nhau th× viÖc chuyÓn ®æi gi÷a c¸c m« h×nh sÏ kh«ng tr¸nh khái mÊt th«ng tin. §Ó kh¾c phôc vÊn ®Ò nµy, UML ®· tËp hîp c¸c kh¸i niÖm m« h×nh hãa cèt lâi (core modeling concepts) ®−îc sö dông trong nhiÒu ph−¬ng ph¸p vµ c«ng cô m« h×nh hãa kh¸c nhau. C¸c kh¸i niÖm nµy cã thÓ hç trî cho ph¹m vi lín c¸c øng dông. Ngoµi ra, c¸c kh¸i niÖm m« h×nh hãa ë møc thÊp h¬n vµ cô thÓ h¬n cho viÖc giao tiÕp còng ®−îc ®Þnh nghÜa cho ng−êi sö dông ®Ó m« h×nh hãa mét hÖ thèng cô thÓ. • UML cung cÊp c¬ chÕ më réng vµ ®Æc biÖt hãa ®Ó më réng c¸c kh¸i niÖm c¬ së. • Dùa trªn nh÷ng kh¸i niÖm ®· ®−îc ®Þnh nghÜa nµy, OMG mong ®îi ë UML kh¶ n¨ng biÕn ®æi ®Ó ®¸p øng c¸c yªu cÇu míi cña nh÷ng ph¹m vi http://www.ebook.edu.vn 3
  4. øng dông ®Æc biÖt. C¸c nhµ ph¸t triÓn UML kh«ng muèn r»ng mçi khi cã thay ®æi. th× c¸c kh¸i niÖm cèt lâi ph¶i ®−îc ®Þnh nghÜa l¹i. V× vËy, hä tin r»ng viÖc ®−a ra c¬ chÕ më réng cho UML sÏ hç trî nh÷ng xu h−íng ph¸t triÓn míi. Ng−êi sö dông cã thÓ khai th¸c c¸c tÝnh n¨ng sau cña UML X©y dùng m« h×nh b»ng c¸ch sö dông nh÷ng thµnh phÇn c¬ b¶n ®· ®−îc ®Þnh nghÜa kh«ng sö dông c¬ chÕ më réng cho hÇu hÕt c¸c øng dông th«ng th−êng. Thªm c¸c kh¸i niÖm vµ ký hiÖu míi cho nh÷ng v−íng m¾c kh«ng gi¶i quyÕt ®−îc víi c¸c kh¸i niÖm c¬ b¶n. §Æc biÖt hãa c¸c kh¸i niÖm, ký hiÖu vµ rµng buéc cho mét ph¹m vi øng dông (application domain) cô thÓ. • UML ®Èy m¹nh t¸i sö dông trong nÒn c«ng nghÖ phÇn mÒm. T¸i sö dông lµ mét trong nh÷ng vÊn ®Ò ®−îc quan t©m hµng ®Çu trong c«ng nghÖ phÇn mÒm. Nguyªn t¾c cña t¸i sö dông lµ dùa trªn c¸c thµnh phÇn hiÖn cã ®· ®−îc kiÓm chøng vÒ chÊt l−îng vµ chØ x©y dùng c¸c thµnh phÇn míi khi thùc sù cÇn thiÕt. §iÒu nµy kh«ng nh÷ng gióp ®−¬ng ®Çu víi møc ®é phøc t¹p ngµy cµng cao cña øng dông mµ cßn gi¶m chi phÝ, gi¶m thêi gian ph¸t triÓn vµ t¨ng kh¶ n¨ng c¹nh tranh cña nhµ ph¸t triÓn phÇn mÒm. UML cho phÐp t¸i sö dông hiÖu qu¶ c¸c thµnh phÇn cña mét hÖ thèng v× ®−îc x©y dùng trªn nÒn t¶ng h−íng ®èi t−îng. Ngoµi ra, UML cßn hç trî c¸c kh¸i niÖm ph¸t triÓn phÇn mÒm møc cao nh− collabarations, frameworks, patterns vµ components. Ng÷ nghÜa cña chóng ®−îc ®Þnh nghÜa rÊt râ rµng vµ ®iÒu nµy gióp ®¹t ®−îc nh÷ng gi¸ trÞ thùc sù ®Çy ®ñ cña h−íng ®èi t−îng vµ t¸i sö dông. 1.2. KiÕn tróc cña UML Siªu m« h×nh UML ®Þnh nghÜa c¸c ng÷ nghÜa ®Çy ®ñ ®Ó biÓu diÔn c¸c m« h×nh sö dông UML. Nã sö dông tËp con kh¸i niÖm cña UML vµ c¸c ng÷ nghÜa ®Ó x¸c ®Þnh b¶n th©n nã. siªu m« h×nh UML ®−îc ®Þnh nghÜa nh− lµ mét trong c¸c tÇng cña kiÕn tróc siªu m« h×nh bèn tÇng, ®−îc minh ho¹ trong h×nh 4.1. TÇng M« t¶ VÝ dô Siªu-siªu m« h×nh Lµ c¬ së ®Ó m« h×nh MetaClass, ho¸ kiÕn tróc. §Þnh nghÜa MetaAttribute (meta-metamode) ng«n ng÷ x¸c ®Þnh c¸c siªu m« h×nh Siªu m« h×nh Mét thÓ hiÖn cña siªu- Class, Attribute siªu m« h×nh. §Þnh nghÜa (metamode) ng«n ng÷ ®Ó x¸c ®Þnh m« h×nh. M« h×nh (model) Mét thÓ hiÖn cña siªu m« h×nh. §Þnh nghÜa ng«n ng÷ ®Ó m« t¶ lo¹i th«ng tin. http://www.ebook.edu.vn 4
  5. §èi t−îng ng−êi sö Mét thÓ hiÖn cña m« dông (User object) h×nh. §Þnh nghÜa mét lo¹i th«ng tin cô thÓ. H×nh 4.1. KiÕn tróc UML • TÇng siªu-siªu m« h×nh gåm cã c¸c thµnh phÇn c¬ b¶n nhÊt trªn ®ã UML dùa vµo kh¸i niÖm “Thing” ®Ó biÓu diÔn bÊt cø nh÷ng g× cã thÓ ®Þnh nghÜa. Møc trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ kh¸i niÖm vµ ®Þnh nghÜa mét ng«n ng÷ ®Ó x¸c ®Þnh c¸c siªu m« h×nh. • TÇng siªu m« h×nh gåm nh÷ng thµnh phÇn cÊu t¹o nªn UML, bao gåm c¸c kh¸i niÖm tõ c¸c biÓu ®å h−íng ®èi t−îng vµ h−íng thµnh phÇn. Mçi kh¸i niÖm trong tÇng nµy ®Òu lµ mét thÓ hiÖn cña kh¸i niÖm siªu - siªu m« h×nh “Thing”. TÇng trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ c¸c kh¸i niÖm cña biÓu ®å vµ ®Þnh nghÜa ra mét ng«n ng÷ ®Ó x¸c ®Þnh c¸c m« h×nh. • TÇng m« h×nh gåm cã c¸c m« h×nh UML. §©y lµ tÇng mµ t¹i ®ã viÖc m« h×nh ho¸ c¸c bµi to¸n, c¸c lêi gi¶i hay c¸c hÖ thèng ®−îc thùc hiÖn. Mçi kh¸i niÖm trong tÇng nµy lµ mét thÓ hiÖn cña kh¸i niÖm trong tÇng siªu m« h×nh. TÇng trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ c¸c kh¸i niÖm vµ ®Þnh nghÜa mét ng«n ng÷ ®Ó trao ®æi c¸c tõ ng÷ vÒ mét chñ ®Ó cho tr−íc. C¸c m« h×nh trong tÇng nµy th−êng ®−îc gäi lµ c¸c m« h×nh líp hay m« h×nh kiÓu. • TÇng c¸c ®èi t−îng ng−êi sö dông bao gåm c¸c thµnh phÇn ®Ó minh ho¹ c¸c m« h×nh UML. Mçi kh¸i niÖm trong tÇng nµy lµ mét thÓ hiÖn cña kh¸i niÖm trong tÇng m« h×nh. TÇng trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ c¸c tõ ng÷ cô thÓ vÒ mét chñ ®Ò cho tr−íc. C¸c m« h×nh trong tÇng nµy th−êng ®−îc gäi lµ c¸c m« h×nh ®èi t−îng hay m« h×nh thÓ hiÖn. Trong ng÷ c¶nh nµy, kh¸i niÖm “siªu” ®−îc sö dông ®Ó biÓu thÞ mèi quan hÖ gi÷a mét tËp c¸c phi-siªu kh¸i niÖm (non-metaconcepts) vµ siªu kh¸i niÖm cña chóng. Kh¸i niÖm “siªu” kh«ng ph¶i lµ ®Æc tÝnh cña m« h×nh, nh−ng l¹i cã vai trong trong mèi quan hÖ gi÷a c¸c m« h×nh: mét siªu - siªu m« h×nh quan hÖ víi mét siªu m« h×nh theo c¸ch gièng nh− mét siªu m« h×nh quan hÖ víi mét m« h×nh vµ còng gièng nh− c¸ch mµ mét m« h×nh quan hÖ víi ®èi t−îng ng−êi sö dông. VÒ c¬ b¶n th× biÓu diÔn siªu kh¸i niÖm cña siªu kh¸i niÖm trong ®ã kh¸i niÖm trõu t−îng bao gåm viÖc ®−a vµo siªu kh¸i niÖm vµ biÓu diÔn bao gåm thÝ dô minh ho¹ (hay dÉn chøng cô thÓ) mét siªu kh¸i niÖm lµ sù trõu t−îng mét tËp c¸c phi - siªu kh¸i niÖm. http://www.ebook.edu.vn 5
  6. http://www.ebook.edu.vn 6
  7. Ch−¬ng 2. Ng÷ nghÜa vµ có ph¸p c¸c phÇn tö trong UML (UML Semantic) 2.1. Giíi thiÖu UML gåm cã siªu m« h×nh UML vµ m« h×nh UML. siªu m« h×nh UML gi÷ chøc n¨ng ®Þnh nghÜa c¸c phÇn tö vµ có ph¸p UML. M« h×nh UML m« t¶ ký hiÖu c¸c phÇn tö vµ c¸c biÓu ®å dùa trªn siªu m« h×nh UML. siªu m« h×nh UML bao gåm c¸c phÇn tö vµ mét sè quy t¾c vÒ có ph¸p. Ngoµi viÖc phÇn tö UML mang mét ý nghÜa x¸c ®Þnh, có ph¸p UML cßn m« t¶ c¸ch liªn kÕt nh÷ng phÇn tö nµo víi nhau ®Ó t¹o ra ý nghÜa nµo ®ã. ë gãc ®é m« h×nh hãa, c¸c phÇn tö UML cã thÓ ph©n chia lµm ba lo¹i lµ c¸c phÇn tö m« h×nh hãa tÜnh, c¸c phÇn tö m« h×nh hãa t−¬ng t¸c vµ c¸c phÇn tö quan hÖ cã chøc n¨ng liªn kÕt gi÷a hai phÇn tö trªn víi nhau. siªu m« h×nh UML gi÷ vai trß h−íng dÉn ng−êi sö dông UML vÒ có ph¸p trong m« h×nh hãa. Ngoµi ra, siªu m« h×nh UML cßn ®−îc sö dông bëi c¸c nhµ ph¸t triÓn CASE tool ®Ó m« h×nh hãa d÷ liÖu cho mét CASE tool hç trî UML. M« h×nh d÷ liÖu nµy sö dông l¹i ®Þnh nghÜa phÇn tö UML ®Ó thiÕt kÕ c¸c líp c¬ b¶n vµ bæ sung thªm c¸c líp míi tïy theo chøc n¨ng CASE tool cung cÊp cho ng−êi sö dông. M« h×nh UML lµ biÓu diÔn ký hiÖu cña c¸c phÇn tö UML ®ång thêi cung cÊp cho ng−êi sö dông c¸c biÓu ®å UML cô thÓ ®Ó m« h×nh hãa còng nh− lµm ng«n ng÷ giao tiÕp gi÷a c¸c thµnh viªn cña nhãm trong qu¸ tr×nh ph¸t triÓn phÇn mÒm. Nãi c¸ch kh¸c, c¸c biÓu ®å trong M« h×nh UML lµ thÓ hiÖn cña c¸c có ph¸p t−¬ng øng trong siªu m« h×nh UML. siªu m« h×nh UML ®−îc chia thµnh nhiÒu gãi thµnh phÇn (package) dùa trªn ý nghÜa cña có ph¸p ®−îc m« t¶. Mçi gãi ®Þnh nghÜa c¸c phÇn tö kh¸c nhau vµ m« t¶ mét nhãm có ph¸p dùa trªn c¸c phÇn tö nµy. Trong mçi gãi l¹i cã thÓ bao gåm c¸c gãi con. ViÖc ph©n chia nµy gióp cho ®Þnh nghÜa cña siªu m« h×nh UML râ rµng h¬n, chØ quan t©m ®Õn c¸c phÇn tö trong gãi vµ lo¹i bá c¸c phÇn tö kh«ng cÇn thiÕt v−ît ra khái ph¹m vi ng÷ nghÜa cÇn m« t¶ cña gãi. Gãi ®−îc biÓu diÔn nh− sau Tªn gãi H×nh 2.1. Ký hiÖu gãi 2.2. Tæng quan vÒ c¸c lo¹i quan hÖ gi÷a c¸c phÇn tö Trong qu¸ tr×nh ®Þnh nghÜa phÇn tö cÇn ph¶i m« t¶ c¸c mèi liªn hÖ gi÷a phÇn tö nµy víi c¸c phÇn tö kh¸c nªn UML sö dông mét tËp hîp c¸c quan hÖ. Mçi http://www.ebook.edu.vn 7
  8. quan hÖ cã mét ý nghÜa x¸c ®Þnh. C¸c quan hÖ nµy bao gåm quan hÖ tæng qu¸t hãa (generalization), quan hÖ kÕt hîp (association), quan hÖ phô thuéc (dependency). Mçi phÇn tö ®Òu cã ng÷ nghÜa riªng. §Ó biÓu diÔn phÇn tö vµ quan hÖ gi÷a c¸c phÇn tö, UML sö dông c¸c ký hiÖu riªng. Mét phÇn tö cã ký hiÖu nh− sau: T ª n p h Çn tö C ¸ c th u é c tÝ n h H×nh 2.2. Ký hiÖu phÇn tö PhÇn sau tr×nh bµy s¬ l−îc c¸c lo¹i quan hÖ. Chi tiÕt vÒ c¸c lo¹i quan hÖ gi÷a c¸c phÇn tö ®−îc tr×nh bµy trong ch−¬ng sau. 2.2.1. Quan hÖ tæng qu¸t ho¸ (generalization) Quan hÖ tæng qu¸t ho¸ lµ quan hÖ gi÷a mét phÇn tö tæng qu¸t h¬n vµ mét phÇn tö ®Æc biÖt h¬n. PhÇn tö ®Æc biÖt h¬n chøa ®Çy ®ñ c¸c ®Æc ®iÓm cña phÇn tö tæng qu¸t h¬n vµ ngoµi ra cßn cã nh÷ng th«ng tin riªg. Quan hÖ tæng qu¸t hãa cã ký hiÖu nh− sau: H×nh 2.3. Ký hiÖu quan hÖ tæng qu¸t ho¸ 2.2.2. Quan hÖ kÕt hîp (association) Quan hÖ kÕt hîp thÓ hiÖn liªn hÖ vÒ mÆt ng÷ nghÜa gi÷a hai phÇn tö. NghÜa lµ phÇn tö nµy cã sö dông hay nhËn biÕt c¸c th«ng tin cña phÇn tö kia. Quan hÖ kÕt hîp cã thÓ bao gåm hai lo¹i con lµ quan hÖ ng÷ nghÜa th«ng th−êng (association) vµ quan hÖ kÕt tËp (aggregation). Quan hÖ ng÷ nghÜa th«ng th−êng H×nh 2.4 Ký hiÖu quan hÖ kÕt hîp Quan hÖ kÕt tËp: phÇn tö nµy chøa phÇn tö kia theo nghÜa vËt lý. http://www.ebook.edu.vn 8
  9. H×nh 2.5 Ký hiÖu quan hÖ kÕt tËp 2.2.3. Quan hÖ phô thuéc (dependency) Quan hÖ phô thuéc thÓ hiÖn sù phô thuéc chøc n¨ng cña mét hay nhiÒu phÇn tö nhËn vµo mét hay nhiÒu phÇn tö cho. Quan hÖ phô thuéc kÐm chi tiÕt vÒ møc ®é ng÷ nghÜa h¬n quan hÖ kÕt hîp vµ th−êng sö dông ®Ó m« t¶ sù phô thuéc lÉn nhau gi÷a c¸c gãi. H×nh 2.6 Ký hiÖu quan hÖ phô thuéc 2.3. Tæng quan vÒ c¸c phÇn tö vµ cÊu tróc siªu m« h×nh UML 2.3.1. Ph©n lo¹i phÇn tö trong siªu m« h×nh UML ë gãc ®é ®Þnh nghÜa, c¸c phÇn tö trong UML cã thÓ ®−îc chia lµm hai lo¹i lµ phÇn tö trõu t−îng vµ phÇn tö cô thÓ. C¸c phÇn tö trõu t−îng cã tÝnh tæng qu¸t cao gi÷ chøc n¨ng tham gia vµo ®Þnh nghÜa c¸c phÇn tö kh¸c. C¸c phÇn tö cô thÓ th−êng cã quan hÖ tæng qu¸t hãa qua nhiÒu tÇng víi c¸c phÇn tö trõu t−îng, ngoµi ra cßn cã c¸c quan hÖ kÕt hîp (association) víi c¸c phÇn tö kh¸c. ChØ c¸c phÇn tö cô thÓ míi cã ký hiÖu trong M« h×nh UML vµ ®−îc sö dông trong m« h×nh hãa. 2.3.2. CÊu tróc siªu m« h×nh UML Siªu m« h×nh UML bao gåm ba gãi chÝnh nh− sau B e havior al M o d e l M a nagem e nt E lem ents F o undation H×nh 2.7. C¸c gãi chÝnh cña UML http://www.ebook.edu.vn 9
  10. Foundation Package (Gãi nÒn t¶ng) lµ gãi bao gåm phÇn lín c¸c phÇn tö trõu t−îng vµ mét sè phÇn tö cô thÓ mang tÝnh chÊt c¬ b¶n. C¸c phÇn tö trong gãi nµy ®−îc sö dông bëi hai gãi lµ BehavioralElements Package (gãi phÇn tö hµnh vi) vµ ModelManagement Package (gãi qu¶n trÞ m« h×nh). lµ gãi ®Þnh nghÜa c¸c phÇn tö sö dông cho viÖc m« BehavioralElements Package t¶ qu¸ tr×nh vËn ®éng cña mét phÇn tö hay t−¬ng t¸c gi÷a c¸c phÇn tö trong thÕ giíi thùc. lµ gãi ®Þnh nghÜa c¸c phÇn tö cho viÖc qu¶n lý m« h×nh cña ModelManagement ng−êi sö dông. 2.4. Package Foundation Package (gãi nÒn t¶ng) Foundation Package ®Þnh nghÜa nh÷ng phÇn tö UML c¬ b¶n. Foundation Package bao gåm ba gãi con lµ Core Package (gãi c¬ b¶n), gãi c¸c Data Types Package (gãi kiÓu d÷ liÖu) vµ Extension Mechanism Package (gãi kü thuËt më réng). Ex ten s io n Core M e chanis m D a ta T y pes H×nh 2.8 Core Package ®Þnh nghÜa nh÷ng phÇn tö c¬ b¶n bao gåm c¶ c¸c phÇn tö quan Core Package hÖ vµ ®a sè lµ ë møc trõu t−îng. Extension Mechanism Package ®Þnh nghÜa c¬ chÕ më réng cho c¸c phÇn tö UML ®Ó bæ sung c¸c phÇn tö míi. Data Types Package ®Þnh nghÜa c¸c kiÓu d÷ liÖu ®−îc sö dông trong siªu m« h×nh UML. C¸c thuéc tÝnh cña c¸c phÇn tö trong siªu m« h×nh UML cã kiÓu d÷ liÖu thuéc vÒ Data Types. 2.4.1. Core Package (gãi c¬ b¶n) Core package bao gåm c¸c phÇn tö c¬ b¶n vµ ®−îc m« t¶ bëi n¨m m« h×nh lµ Backbone (x−¬ng sèng), Relationships (quan hÖ), Dependencies (phô thuéc), Classifiers (ph©n lo¹i) vµ Auxiliary Elements (bæ sung). Core package giíi thiÖu có ph¸p cho m« h×nh hãa tÜnh, kh«ng quan t©m ®Õn qu¸ tr×nh vËn ®éng vµ t−¬ng t¸c gi÷a c¸c ®èi t−îng trong thÕ giíi thùc. http://www.ebook.edu.vn 10
  11. 2.4.1.1. M« h×nh Backbone (x−¬ng sèng) E lem ent M o d e l E lem ent 1 ..* + c ons tra int E lem ent E lem entO w ne r S hip na me : Nam e vis ib ilit y : V is ib ilit y K ind + o w ne dE le m e nt * is S p e c if ic a t io n: B o o le a n + na me S pace * + c o n s t r a i nt 0.. 1 Na m e S p a c e G e ne ra liza bleE le m e nt C o ns tr aint P a r a m ete r F eat ur e is R o ot: Bo olea n bo dy: B oole a nE xp r e ss io n de fault Va lue: E xpre ssion o w ne rsco pe: S c op eK ind is L eaf :B oole a n vis ib ilit y : V is ib ilit y K ind kind : P a r a m ete rD ir e c tio nKind is A b s t ra ct:b oo le an * + f e at ur e + parameter * * 0 ..1 C la ssifier 1 + type { o r d er ed } + o w ne r + type 1 * S t uc t ualF eat ur e B e ha vior alF eat ur e 0..1 m ult ip lic it y : M ult ip lic it y is Q uery : B oole a n { o r der ed } c ha ng e a b ilit y : C ha ng e a b le K ind ta get Sc ope : S c o peK ind A ttr ib ut e * M e t ho d O p e r a t io n 1 co nc ur ency: CallC onc ur e ncyK ind init ia lvalue : E xpr essio n bo dy: P r o c edureE xp r es stio n + s p e c if ic a tio n is R o ot:B o o le a n is Le af :B oole a n is A b st ra ct:b oole a n s p e c if ic a t io n: S t r ing H×nh 2.9. M« h×nh BackBone chñ yÕu ®Þnh nghÜa phÇn tö Classifier. Classifier lµ phÇn tö trõu t−îng Backbone ®ãng vai trß tæng qu¸t hãa trùc tiÕp cña phÇn lín c¸c phÇn tö cô thÓ kh¸c. Ngoµi ra, c¸c phÇn tö c¬ b¶n cña UML ®−îc ®Þnh nghÜa trong Core bao gåm attribute (thuéc tÝnh), operation (ho¹t ®éng) vµ method (ph−¬ng thøc), parameter (tham sè) vµ constraint (rµng buéc). §Ó phôc vô cho qu¸ tr×nh ®Þnh nghÜa Classifier, UML ®−a ra c¸c phÇn tö trõu t−îng cã vai trß lµ tæng qu¸t hãa (trùc tiÕp hay gi¸n tiÕp) cña Classifier. C¸c phÇn tö nµy cã quan hÖ víi nhau vµ cã quan hÖ víi Classifier ®−îc m« t¶ trong m« h×nh Backbone bao gåm: (phÇn tö) : Element lµ mét phÇn tö trõu t−îng ë møc cao nhÊt, tæng Element qu¸t nhÊt trong c¸c phÇn tö UML. (phÇn tö m« h×nh) : ModelElement lµ phÇn tö ®−îc ®Þnh danh ModelElement trong m« h×nh vµ lµ tæng qu¸t hãa cÊp cao nhÊt thø hai cho c¸c phÇn tö kh¸c sau Element. ModelElement lµ phÇn tö ®−îc x¸c ®Þnh qua tªn. (kh«ng gian c¸c phÇn tö tham chiÕu theo tªn): Namespace lµ tËp Namespace hîp c¸c phÇn tö ModelElement víi ®iÒu kiÖn ®Þnh danh cña mét ModelElement trong mét Namespace lµ duy nhÊt. ElementOwnership: ElementOwnership ®Þnh nghÜa tÇm vùc (visibility) cña mét phÇn tö chøa trong Namspace (kh«ng gian c¸c phÇn tö). ElementOwnership quy ®Þnh tÇm vùc cña mét phÇn tö ®−îc giíi h¹n trong Namespace (chØ cã thÓ ®−îc tham chiÕu bëi c¸c phÇn tö trong Namespace) hay v−ît khái Namespace (cã thÓ ®−îc tham chiÕu bëi c¸c phÇn tö ngoµi Namespace). http://www.ebook.edu.vn 11
  12. GeneralizableElement (phÇn tö cã thÓ tæng qu¸t hãa hay ®Æc biÖt hãa): GeneralizableElement lµ c¸c phÇn tö cã thÓ tham gia vµo quan hÖ tæng qu¸t hãa hay ®Æc biÖt hãa. Do ®ã mét GeneralizableElement cã thÓ lµ tæng qu¸t hãa hay ®Æc biÖt hãa cña mét GeneralizableElement kh¸c. (®Æc tÝnh) : m« t¶ c¸c ®Æc tÝnh cña mét Classifier chñ yÕu lµ tÇm vùc Feature (visibility) cña ®Æc tÝnh. TÇm vùc nµy x¸c ®Þnh mét ®Æc tÝnh cña Classifier cã thÓ ®−îc tham chiÕu bëi c¸c Classifier kh¸c hay chØ ®−îc sö dông bëi chÝnh Classifier chøa ®Æc tÝnh ®ã. (®Æc ®iÓm cÊu tróc) : ®−îc thõa kÕ tõ Fearture, StructuralFeature StructuralFeature m« t¶ ®Æc tÝnh vÒ mÆt cÊu tróc cña mét Classifier, m« t¶ cÊu tróc nµy cã thÓ thay ®æi hay cè ®Þnh qua thuéc tÝnh changeability cña StructuralFeature. StructualFeature cã mét ®Æc biÖt hãa lµ Attribute (thuéc tÝnh). (®Æc ®iÓm hµnh vi) §−îc kÕ thõa tõ Feature vµ biÓu diÔn c¸c BehavioralFeature ®Æc tÝnh vÒ mÆt hµnh vi cña mét Classifier ®ång thêi m« t¶ ®Æc tÝnh hµnh vi nµy cã ¶nh h−ëng lªn tr¹ng th¸i cña Classifier hay kh«ng qua thuéc tÝnh isQuery. BehavioralFeature gåm hai ®Æc biÖt hãa lµ Operation (ho¹t ®éng) vµ Method (ph−¬ng thøc). Ngoµi ra, m« h×nh Backbone cßn ®Þnh nghÜa c¸c phÇn tö cô thÓ ®ãng vai trß quan träng bËc nhÊt lµ Attribute (thuéc tÝnh), Method (ph−¬ng thøc), Operation (m« t¶ ph−¬ng thøc), Parameter (tham sè) vµ Constraint (rµng buéc). (thuéc tÝnh) : Attribute m« t¶ c¸c gi¸ trÞ mµ mét Classifier cã thÓ sö Attribute dông ®Ó thÓ hiÖn tr¹ng th¸i. Attribute cã c¸c thuéc tÝnh chÝnh lµ name (tªn), initial value (gi¸ trÞ khëi ®Çu) Operation (m« t¶ ph−¬ng thøc): Operation lµ ph−¬ng thøc cã thÓ ®−îc yªu cÇu tõ mét Classifier chøa Operation ®Ó t¸c ®éng lªn Classifier nµy. Operation cã quan hÖ kÕt hîp (association) víi Parameter (tham sè) nghÜa lµ Operation sö dông mét tËp tham sè ®Ó khëi ®Çu cho viÖc thi hµnh. Mét Operation cã thÓ ®−îc kÕ thõa tõ c¸c Operation kh¸c. Method (ph−¬ng thøc) : Method cã quan hÖ kÕt hîp víi Operation (m« t¶ ph−¬ng thøc) m« t¶ cô thÓ c¸ch thøc thùc hiÖn mét ph−¬ng thøc bao gåm c¸c quy tr×nh vµ c¸c thuËt to¸n. Method cã t¸c ®éng ®Õn kÕt qu¶ cña ph−¬ng thøc. Parameter (tham sè) : Parameter lµ tham sè cã thÓ thay ®æi, göi vµ nhËn. Mét Parameter cã thÓ bao gåm tªn, kiÓu d÷ liÖu vµ quan hÖ víi c¸c phÇn tö kh¸c giao tiÕp víi nã. Parameter ®−îc sö dông trong Operation (m« t¶ ph−¬ng thøc), Templates (mÉu)... (rµng buéc) : Constraint lµ c¸c ®iÒu kiÖn vÒ mÆt ng÷ nghÜa hay c¸c Constraint giíi h¹n cho mét phÇn tö, cã thÓ diÔn t¶ ë d¹ng v¨n b¶n hay mét biÓu thøc logic cña mét ng«n ng÷ m« t¶ rµng buéc. Ngoµi viÖc ®Þnh nghÜa phÇn tö rµng buéc Constraint, UML cßn ®Þnh nghÜa mét ng«n ng÷ cho m« t¶ rµng buéc lµ ng«n ng÷ rµng buéc ®èi t−îng(Object Constraint Language). Gi÷a c¸c Classifier cã quan hÖ tæng qu¸t hãa. Do Classifier lµ phÇn tö trõu t−îng nªn tÊt c¶ c¸c phÇn tö thõa kÕ Classifier ®Òu cã tÝnh chÊt nµy. 2.4.1.2. M« h×nh Relationships (c¸c quan hÖ) http://www.ebook.edu.vn 12
  13. * + source Model Element name :Name * + target Relationship + target Flow + source Flow * * GeneralizableElement + generalization + child Flow Generalization * isRoot:Boolean 1 dicrimonator: Name isLeaf:Boolean 1 * specialization + + parent isAbstract:boolean * + powertypeRange + powertype 0..1 + type Classifier Asosication {ordered} AsosicationEnd 1 * 1 2..* body: BooleanExpression isNavigable: Boolean * * + connection ordering: OrderingKind + specialization aggregation:AggregationKind multiplicity: Multiplicity + qualifier + asosicationEnd changeability:ChangeableKind Class Attribute * 0..1 visibility: VisibilityKind isActive: Boolean initialvalue: Expression {ordered} Assosication Class H×nh 2.10. M« h×nh Relationships http://www.ebook.edu.vn 13
  14. M« h×nh Relationships ®Þnh nghÜa c¸c quan hÖ gi÷a c¸c phÇn tö UML bao gåm hai lo¹i quan hÖ c¬ b¶n lµ generalization (quan hÖ tæng qu¸t hãa), association (quan hÖ kÕt hîp). ®−îc ®Þnh nghÜa lµ sù liªn hÖ gi÷a hai phÇn tö. PhÇn tö ®Æc Generalization biÖt h¬n gäi lµ phÇn tö con (child) vµ phÇn tö tæng qu¸t h¬n lµ phÇn tö cha (parent). Association (Quan hÖ kÕt hîp) m« t¶ nhiÒu Classifier tham gia vµo nhiÒu AssociationEnd (mèi kÕt hîp). Association th−êng gÆp lµ quan hÖ kÕt hîp cã hai AssociationEnd (mèi kÕt hîp). Mçi mèi kÕt hîp g¾n víi mét Classifier. Association m« t¶ sù liªn hÖ vÒ ng÷ nghÜa gi÷a c¸c Classifier. AssociationClass (Líp kÕt hîp), Thõa kÕ tõ Class vµ Association, AssociationClass võa cã tÝnh chÊt cña mét Class võa cã tÝnh chÊt cña mét Association. AssociationClass nèi mét tËp c¸c classifier víi nhau vµ cã c¸c thuéc tÝnh riªng ®Æc tr−ng cho quan hÖ gi÷a c¸c classifier nµy. Nh©n sù 1..* Nh©n sù TiÒn l−¬ng C«ng ty 0..* H×nh 2.11. VÝ dô líp kÕt hîp 2.4.1.3. M« h×nh Classifiers (c¸c ®Æc biÖt hãa cña classifiers) M« h×nh Classifiers m« t¶ c¸c ®Æc biÖt hãa cña Classifier bao gåm c¸c phÇn tö Class (líp), Interface (giao diÖn), DataType (kiÓu d÷ liÖu), Node (nót) vµ Component (thµnh phÇn) http://www.ebook.edu.vn 14
  15. Classifier Class DataType isActive: Boolean +deploymentLocation * Node Component Interface +resident * * +ImplementationLocation Element visibility: VisibilityKind * +resident ModelElement H×nh 2.12. C¸c líp ®Æc biÖt cña Classifier Class (líp) lµ tËp hîp c¸c ®èi t−îng cã cïng c¸c thuéc tÝnh, hµnh ®éng vµ ng÷ Class nghÜa. Mét Class cã thÓ lµ trõu t−îng (abstract) nghÜa lµ kh«ng cã thÓ hiÖn (®èi t−îng) nµo ®−îc t¹o ra trùc tiÕp tõ nã. Class lµ phÇn tö cô thÓ cã biÓu diÔn ký hiÖu trªn M« h×nh UML. Lµ ®Æc biÖt hãa cña Classifier, Class bao gåm c¸c Attribute (thuéc tÝnh), Operation (m« t¶ ph−¬ng thøc) vµ Method. Gi÷a c¸c Class cã quan hÖ tæng qu¸t hãa, quan hÖ kÕt hîp. C«ng viÖc KÕ to¸n viªn Thùc hiÖn Tæng qu¸t ho¸ Quan hÖ Th− ký Nh©n viªn kÕt hîp Tªn nh©n viªn LÊy th«ng tin nh©n viªn() Phßng ban Trùc thuéc Thuéc tÝnh Ph−¬ng thøc H×nh 2.13. VÝ dô vÒ líp vµ quan hÖ gi÷a c¸c líp http://www.ebook.edu.vn 15
  16. Interface (giao diÖn) Interface lµ tËp c¸c operation (ph−¬ng thøc) cña mét Classifier. Mçi Interface cung cÊp mét dÞch vô cña Classifier bao gåm mét nhãm c¸c operation cã quan hÖ víi Interface ®ã. Mçi Classifier cã thÓ cung cÊp nhiÒu dÞch vô kh¸c nhau qua c¸c Interface kh¸c nhau. DataType (kiÓu d÷ liÖu) m« t¶ kiÓu d÷ liÖu cña ng−êi sö dông. UML kh«ng ®Þnh nghÜa c¸c DataType kiÓu d÷ liÖu cô thÓ. ViÖc ®Þnh nghÜa c¸c kiÓu d÷ liÖu cña ng−êi sö dông tïy thuéc vµo m«i tr−êng ph¸t triÓn phÇn mÒm nªn th−êng c¸c CASE tool ®¶m nhËn chøc n¨ng ®Þnh nghÜa c¸c kiÓu d÷ liÖu nµy. Node (nót) lµ phÇn tö ®¹i diÖn cho mét tµi nguyªn vËt lý cã bé nhí vµ kh¶ n¨ng Node xö lý tÝnh to¸n. C¸c node th−êng ®¹i diÖn cho c¸c m¸y tÝnh vµ m« t¶ viÖc ph©n bè c¸c m¸y tÝnh trªn m¹ng. Component (thµnh phÇn) lµ mét phÇn riªng biÖt ë møc vËt lý cña hÖ thèng. Component Component ®ãng gãi c¸c ph−¬ng thøc xö lý vµ cung cÊp tËp c¸c dÞch vô xö lý nµy qua mét tËp interface (giao diÖn) kh¸c nhau. Mçi giao diÖn bao gåm nhiÒu ph−¬ng thøc kh¸c nhau ®Ó phôc vô cho mét môc ®Ých cô thÓ. C¸c ph−¬ng thøc cã thÓ lµ c¸c ®o¹n m· thi hµnh ®−îc, c¸c script hay lÖnh. Mét component th−êng cung cÊp nhiÒu lo¹i dÞch vô kh¸c nhau liªn quan ®Õn mét ®èi t−îng cô thÓ. Giao diÖn DBindingColectionEvents DBinding MSBind Mét MSBind lµ mét component nèi mét control cña Window víi mét recordset. MSBind cung cÊp DBindingColection nhiÒu dÞch vô, trong ®ã dÞch vô g¾n control vµo recordset Component lµ Bindding H×nh 2.14. VÝ dô vÒ component vµ interface http://www.ebook.edu.vn 16
  17. 2.4.1.4. M« h×nh Dependencies (c¸c quan hÖ phô thuéc) Dependency m« t¶ sù phô thuéc chøc n¨ng gi÷a hai thµnh phÇn cho vµ thµnh phÇn nhËn. Thµnh phÇn cho ®ãng vai trß cung cÊp dÞch vô cho thµnh phÇn nhËn. Dependency ®Þnh nghÜa phô thuéc gi÷a hai phÇn tö ModelElement nªn hÇu nh− tÊt c¶ c¸c phÇn tö cô thÓ thõa kÕ ModelElement ®Òu cã thÓ cã quan hÖ phô thuéc. Quan hÖ phô thuéc cã c¸c ®Æc biÖt hãa lµ Binding (g¾n), Abstraction (trõu t−îng hãa), Usage (sö dông) vµ Permisson (cho phÐp). Relation + supplier + supplierDependency ModelElement Dependency 1.. * * name: Name 1.. * * + clientDependency + client 1.. * + argument {ordered} Binding Usage 0..1 Abstraction Permission mapping: MappingExpression H×nh 2.15. M« h×nh Dependence Binding (g¾n) Binding ®Þnh nghÜa quan hÖ gi÷a mét Template (mÉu) lµ thµnh phÇn cho cña Dependency víi mét thµnh phÇn ®−îc t¹o tõ Template ®ã lµ thµnh phÇn nhËn cña Dependency. Binding bao gåm c¸c ®èi sè phï hîp víi c¸c tham sè cña Template. Abstraction (trõu t−îng hãa) m« t¶ mèi liªn hÖ gi÷a c¸c phÇn tö ë c¸c møc trõu t−îng hãa Abstraction kh¸c nhau. VÝ dô nh− chuyÓn mét kh¸i niÖm ë møc ph©n tÝch sang møc thiÕt kÕ b»ng quan hÖ Abstraction. http://www.ebook.edu.vn 17
  18. Usage (sö dông) lµ quan hÖ gi÷a mét phÇn tö ModelElement cã sö dông ph−¬ng thøc Usage cña mét phÇn tö ModelElement kh¸c. Permisson (cho phÐp) cung cÊp quyÒn h¹n cho mét phÇn tö ngoµi Namespace (kh«ng Permisson gian c¸c phÇn tö) tham chiÕu c¸c phÇn tö kh¸c trong Namespace. PhÇn tö nhËn lµ mét ModelElement phÇn tö cho b¾t buéc lµ mét Namespace. 2.4.1.5. M« h×nh AuxiliaryElements (c¸c phÇn tö bæ sung) TemplateParameter Element * + defaultElement {ordered} 0..1 + templateParameter * ModelElement PresentationElement + subject +presentation name:Name * * 1.. * * +argument + annotatedElement {ordered} 0..1 * Element Comment H×nh 2.16. M« h×nh AuxiliaryElements Template Parameter (tham sè cho mÉu) Tham sè cho mÉu lµ tham sè cho c¸c phÇn tö Template. VÝ dô nh− trong mét m«i tr−êng ng«n ng÷ lËp tr×nh hç trî Template, ta cã thÓ x©y dùng líp míi b»ng c¸ch cung cÊp c¸c líp tham sè cho Template. TemplateParameter ®Þnh nghÜa quan http://www.ebook.edu.vn 18
  19. hÖ gi÷a mét phÇn tö ModelElement víi c¸c tham sè (c¸c tham sè nµy lµ c¸c phÇn tö ModelElement). ModelElement lµ mét Template khi sö dông Ýt nhÊt mét TemplateParameter. Presentation Element (phÇn tö biÓu diÔn trùc quan) m« t¶ th«ng tin cho viÖc biÓu diÔn c¸c ModelElement. PresentationElement UML kh«ng ®Þnh nghÜa cô thÓ c¸c th«ng tin nµy mµ ®Ó cho c¸c CASE tool tù do ®Þnh nghÜa. 2.4.2. Package Extension Mechanisms (gãi kü thuËt më réng) 2.4.2.1. Kh¸i qu¸t ®Þnh nghÜa c¸ch thøc më réng ng«n ng÷ UML b»ng Extension Mechanisms c¸ch ®−a ra c¬ chÕ bæ sung c¸c phÇn tö víi ng÷ nghÜa míi. Package nµy ®Þnh nghÜa Stereotypes, Constraint (rµng buéc) vµ Tagged Value (thÎ gi¸ trÞ) lµ ba c¬ chÕ më réng cña UML. UML cung cÊp c¬ chÕ më réng ®Ó thªm c¸c phÇn tö míi cho c¸c lÜnh vùc ®Æc biÖt mµ UML chuÈn kh«ng ®Þnh nghÜa. C¸c lÜnh vùc cÇn c¸c kh¸i niÖm míi cã thÓ tù ®Þnh nghÜa c¸c kh¸i niÖm nµy qua c¬ chÕ më réng UML. ViÖc më réng nµy kh«ng ®¬n gi¶n lµ g¾n tªn Stereotypes vµo phÇn tö vµ quy ®Þnh ng÷ nghÜa míi do ®«i khi cßn cã c¸c rµng buéc ng÷ nghÜa trong thÕ giíi thùc. Do ®ã c¸c stereotype th−êng chøa c¸c rµng buéc vµ c¸c gi¸ trÞ thÎ. Mçi StereoType quy ®Þnh lo¹i phÇn tö ModelElement mµ stereotype nµy cã thÓ t¸c ®éng. PhÇn tö ®−îc t¸c ®éng nµy lµ c¸c phÇn tö trong siªu m« h×nh UML vÝ dô nh− Class, Association, Component... Khi g¾n stereotype vµo c¸c phÇn tö nµy th× ®−îc phÇn tö míi thõa kÕ phÇn tö cò vµ cã tªn cña stereotype. VÝ dô nh− Component cã c¸c stereotype lµ "document”,"executable”,"table”. C¸c stereotype nµy b¶n chÊt còng lµ component nh−ng "document" lµ mét thµnh phÇn (component) chøa c¸c s−u liÖu, "executable" lµ thµnh phÇn chøa c¸c dÞch vô xö lý cßn "table" chøa c¸c b¶ng trong mét c¬ së d÷ liÖu. http://www.ebook.edu.vn 19
  20. + taggedValue + extendedElement Element ModelElement 0..1 * (from Core) * 1..* {ordered} * + requiredTag + constrainedElement Constraint + constraint (from Core) * GeneralizableElement * (from Core) + stereotypeConstraint {xor} + stereotype Stereotype + constrainedElement 0..1 1 icon:Geometry baseClass:Name 0..1 H×nh 2.17. M« h×nh Extension Mechanisms 2.4.2.2. Constraint (rµng buéc) Lµ c¸c rµng buéc ng÷ nghÜa ®−îc g¾n víi mét phÇn tö cÇn më réng ®Ó ¸p ®Æt c¸c ®iÒu kiÖn lªn phÇn tö nµy vµ cã t¸c dông thay ®æi hay giíi h¹n ng÷ nghÜa. PhÇn tö më réng ph¶i tháa m·n c¸c rµng buéc nµy ®Ó ®¶m b¶o sù chÝnh x¸c vÒ ng÷ nghÜa. Constraint còng cã thÓ ®−îc g¾n víi stereotypes ®Ó t¸c ®éng lªn c¸c phÇn tö cã quan hÖ víi stereotypes nµy. 2.4.2.3. Stereotype Lµ c¬ chÕ ph©n lo¹i mét phÇn tö theo quan hÖ kÕt hîp cña phÇn tö nµy víi c¸c stereotype. Mçi stereotype g¾n mét phÇn tö sÏ cho mét phÇn tö míi thõa kÕ phÇn tö cò ngoµi ra cã thªm c¸c th«ng riªng. Stereotype chÝnh lµ sù kh¸c nhau vÒ ng÷ nghÜa cña hai phÇn tö cïng cÊu tróc. VÝ dô nh− trong quy tr×nh ph¸t triÓn phÇn mÒm Rational Unified Process, c¸c stereotype cho phÇn tö Class ®−îc ®Þnh nghÜa thªm trong ®ã cã stereotype "boundary”. Stereotype nµy lµ mét Class ®ãng vai trß giao tiÕp víi c¸c t−¬ng t¸c bªn ngoµi hÖ thèng. Môc ®Ých cña më réng nµy lµ ph©n lo¹i c¸c Class theo chøc n¨ng phôc vô cho qu¸ tr×nh ph©n tÝch. http://www.ebook.edu.vn 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2