User Tools

Site Tools


statnice:vyvoj:otazka22

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:vyvoj:otazka22 [22.05.2008 12:53] – diagramy v UML xvalo07statnice:vyvoj:otazka22 [31.05.2008 01:02] (current) xptat04
Line 12: Line 12:
  
 ===== Teorie ===== ===== Teorie =====
 +
 +[[statnice:slovnik:mof|MOF]] - jakýsi standardizovaný jazyk pro tvorbu metamodelů. Je v něm vytvořen i metamodel UML.
 +
 ==== Stručný popis jazyka UML ==== ==== Stručný popis jazyka UML ====
  
Line 20: Line 23:
 Mezi velké přednosti jazyka UML i na něm postavených UML diagramů patří existence otevřeného a rozšiřitelného standardu, podpora celého vývojového cyklu aplikace či jiného (ne nutně programového) systému a velká podpora pro různé aplikační oblasti. Pro širší využití jazyka UML v praxi mluví také významný fakt, že je podporován celou řadou vývojových nástrojů, ať už samostatných aplikací určených pouze pro práci s UML, nebo i integrovaných vývojových prostředí (IDE), které v některých případech dovolují provádět převod informací mezi UML diagramem a algoritmem zapsaným v programovacím jazyce (a samozřejmě i opačným směrem, ten je však z pochopitelných důvodů složitější a ne vždy uskutečnitelný). Mezi velké přednosti jazyka UML i na něm postavených UML diagramů patří existence otevřeného a rozšiřitelného standardu, podpora celého vývojového cyklu aplikace či jiného (ne nutně programového) systému a velká podpora pro různé aplikační oblasti. Pro širší využití jazyka UML v praxi mluví také významný fakt, že je podporován celou řadou vývojových nástrojů, ať už samostatných aplikací určených pouze pro práci s UML, nebo i integrovaných vývojových prostředí (IDE), které v některých případech dovolují provádět převod informací mezi UML diagramem a algoritmem zapsaným v programovacím jazyce (a samozřejmě i opačným směrem, ten je však z pochopitelných důvodů složitější a ne vždy uskutečnitelný).
  
-Před vlastním popisem aplikací určených pro tvorbu UML diagramů si ozřejmíme základní principy, na kterých je celý UML založen. Podrobnější popis jazyka UML je uveden například na stránce interval.cz/clanek.asp?article=2783, na kterou navazují i další díly poměrně rozsáhlého seriálu o jazyce UML a zejména o jeho implementaci i nasazení i řešení reálných problémů.+Podrobnější popis jazyka UML je uveden například na stránce http://www.interval.cz/clanek.asp?article=2783 
 + 
 +==== Historie ==== 
 +  * 1995 - Byla jednou jedna metodika s názvem OMT pro object-oriented analýzu (OOA)Booch metodika pro pro object-oriented design (OOD) a OOSE (object-oriented software engineering). Každá byla dítětem jiného pána: Rumbaugh, Booch a Jacobson. A ti se pořád hádali, protože se sešli v jediné firmě - Rational. 
 +  * 1996 dostali za úkol navrhnout společný neproprietální modelovací jazyk 
 +  * z různých kandidátů nakonec vyhrála notace dnešního UML, verze 1.0 vyšla v roce 1997, následována verzí 1.1 
 +  * verze 2.0 vyšla v roce 2003, která rozděluje UML na Superstructure (notace sémantika diagramů), Infrastructure (metamodel), Object-Constraint Language (OCL, pro definice omezujících pravidel) a UML Diagram Interchange (zajištění enositelnosti UML diagramů
 +  * UML spravuje od jeho první verze konsorcium OMG (Object Management Group) 
 + 
 + 
 + 
  
  
Line 57: Line 71:
 Diagramy zachycují různé aspekty modelovaného systému, který nemusí být obecně vyjádřen pouze jedním UML diagramem, protože je možné například pomocí balíčků (packages) sdružovat více diagramů do jednoho hierarchicky organizovaného celku. Každý z níže vyjmenovaných typů diagramů obsahuje poněkud odlišný repertoár dostupných grafických značek (předmětů a relací). Liší se i v tom, že některé jsou statické, jiné zachycují dynamiku, jsou spíše technologické nebo naopak reprezentují lidský pohled na systém. Diagramy zachycují různé aspekty modelovaného systému, který nemusí být obecně vyjádřen pouze jedním UML diagramem, protože je možné například pomocí balíčků (packages) sdružovat více diagramů do jednoho hierarchicky organizovaného celku. Každý z níže vyjmenovaných typů diagramů obsahuje poněkud odlišný repertoár dostupných grafických značek (předmětů a relací). Liší se i v tom, že některé jsou statické, jiné zachycují dynamiku, jsou spíše technologické nebo naopak reprezentují lidský pohled na systém.
  
-  * **Use Case** diagram - diagram užití {{ statnice:vyvoj:hierarchie_uml_diagramu.png?450|Hierarchie UML diagramů}} +  * **Use Case** diagram - diagram užití [[wp>Use_case_diagram]] {{ statnice:vyvoj:hierarchie_uml_diagramu.png?400|Hierarchie UML diagramů}} 
-  * **Class** diagram - diagram tříd +  * **Class** diagram - diagram tříd [[wp>Class_diagram]] 
-  * **Object** diagram - diagram objektů +  * **Object** diagram - diagram objektů [[wp>Object_diagram]] 
-  * **Sequence** diagram - sekvenční diagram+  * **Sequence** diagram - sekvenční diagram [[wp>Sequence_diagram]]
   * **Collaboration** diagram - diagram spolupráce   * **Collaboration** diagram - diagram spolupráce
-  * **Activity** diagram - diagram aktivit +  * **Activity** diagram - diagram aktivit [[wp>Activity_diagram]] 
-  * **State Machine** diagram - stavový diagram+  * **State Machine** diagram - stavový diagram [[wp>State_diagram]]
   * **Component** diagram - diagram komponent   * **Component** diagram - diagram komponent
-  * **Package** diagram - diagram balíčků +  * **Package** diagram - diagram balíčků [[wp>Package_diagram]] 
-  * **Deployment** diagram - diagram nasazení +  * **Deployment** diagram - diagram nasazení [[wp>Deployment_diagram]] 
-  * **Composite structure diagram** (přidáno v UML 2)+  * **Composite structure diagram** (přidáno v UML 2) [[wp>Composite_structure_diagram]]
   * **Interaction overview diagram** (přidáno v UML 2)   * **Interaction overview diagram** (přidáno v UML 2)
   * **Timing diagram** (přidáno v UML 2)   * **Timing diagram** (přidáno v UML 2)
 +
 + TODO: popsat jednotlivé diagramy FIXME
 +
 +==== Kritika ====
 +  * přeplácanost - hodně diagramů je sporadicky využíváno, a často jsou hodně komplikovaný.
 +  * dlouho trvá se to naučit
 +  * snaží se být superuniverzální pro každého
 +  * formát XMI je přímo určený pro přenos UML modelů, ale v praxi je nepoužitelný (špatná implementace)
 +  * není turingově kompletní, tj. nedokáže obsáhnout úplně všechny aspekty, algoritmy atd. takže s ním nelze namodelovat systém do mrtě a nechat ho vygenerovat
 +  * OMG nenabízí žádnou test-suite na ověření, zda CASE nástroj podporuje UML korektně
 +
  
 ===== Praxe ===== ===== Praxe =====
-FIXME+  * **Jaké argumenty poskytnete vývojářům pro to, aby modelovali?**  
 +Ujasní se tím analýza i návrh IS (rozložení komplexního problému na menší), umožní se tím spolupráce více lidí (jinak by stačilo to mít v hlavě), lepší identifikace problémů a nejasností dřív než se na to začne programovat, je to i forma dokumentace, dobré CASE nástroje z UML modelů vytvoří i kostru kódu a naopak - šetří to práci. Diagramy mohou být vhodné i pro prezentaci a ujasnění problémů s klientem. 
 + 
 +  * **Jaká kriteria použijete pro výběr vhodného CASE nástroje případně proč nepoužijete CASE nástroj.** 
 +Nejdříve srovnám, co mi CASE může nabídnout, z toho odvodím přínosy (časové, finanční, řešení problémů) a srovnám to s náklady. Záleží na ceně CASE, velikosti a komplexnosti projektu, počtu pracovníků a jejich zkušenostech s modelováním a s CASE nástroji.  
 + 
 +    - běžné nároky na aplikaci 
 +      * uživatelské rozhraní 
 +      * licenční podmínky 
 +      * nároky na HW, operační systém 
 +      * je to samostatná aplikace nebo plugin do IDE? 
 +    - specifické nároky 
 +      * zda podporuje pouze tvorbu diagramů, nebo celý životní cyklus projektu 
 +      * zda umí kontrolovat syntaktickou správnost modelů 
 +      * zda podporuje cetrální repository pro uložení modelů (spolupráce, verzování, přístupová práva k částem modelu) 
 +      * generování kódu programovacího jazyka (jaké jazyky umí) a reverzní inženýrství a re-engineering (spojení reverzu a generování do vylepšení existujícího systému) 
 +      * integrace s dalšími nástroji 
 +      * podporované diagramy, resp. verze UML 
 +      * jaké jsou možnosti přizpůsobení nástroje pro vlastní potřeby (rozšíření diagramů, nové diagramy, jiné možnosti) 
 +      * podpora importu (XMI), exportu modelů (XMI, PDF, tisk, vektorové formáty) a jiných metadat (dokumentace) 
 + 
 + 
 + 
statnice/vyvoj/otazka22.1211453588.txt.gz · Last modified: 22.05.2008 00:00 (external edit)