Uml – ooad

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ế. Modeling (mô hình hóa) giúp chúng ta hiểu được thế giới thực, mô hình hóa 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.

pdf6 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2132 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Uml – ooad, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 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Õ. Modeling (m« h×nh hãa) gióp chóng ta hiÓu ®−îc thÕ giíi thùc, m« h×nh hãa 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 2 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 3 ø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 (meta-metamode) Lµ c¬ së ®Ó m« h×nh ho¸ kiÕn tróc. §Þnh nghÜa ng«n ng÷ x¸c ®Þnh c¸c siªu m« h×nh MetaClass, MetaAttribute Siªu m« h×nh (metamode) Mét thÓ hiÖn cña siªu- siªu m« h×nh. §Þnh nghÜa ng«n ng÷ ®Ó x¸c ®Þnh m« h×nh. Class, Attribute 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. 4 §èi t−îng ng−êi sö dông (User object) Mét thÓ hiÖn cña m« 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. 5 6

Các file đính kèm theo tài liệu này:

  • pdfpages_from_ngon_ngu_mo_hinh_hoa_uml_1_4338.pdf
Tài liệu liên quan