statnice:vyvoj:otazka22
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| statnice:vyvoj:otazka22 [22.05.2008 12:53] – diagramy v UML xvalo07 | statnice:vyvoj:otazka22 [31.05.2008 01:02] (current) – xptat04 | ||
|---|---|---|---|
| Line 12: | Line 12: | ||
| ===== Teorie ===== | ===== Teorie ===== | ||
| + | |||
| + | [[statnice: | ||
| + | |||
| ==== 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 |
| + | |||
| + | ==== 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 | ||
| + | * 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: | + | * **Use Case** diagram - diagram užití |
| - | * **Class** diagram - diagram tříd | + | * **Class** diagram - diagram tříd |
| - | * **Object** diagram - diagram objektů | + | * **Object** diagram - diagram objektů |
| - | * **Sequence** diagram - sekvenční diagram | + | * **Sequence** diagram - sekvenční diagram |
| * **Collaboration** diagram - diagram spolupráce | * **Collaboration** diagram - diagram spolupráce | ||
| - | * **Activity** diagram - diagram aktivit | + | * **Activity** diagram - diagram aktivit |
| - | * **State Machine** diagram - stavový diagram | + | * **State Machine** diagram - stavový diagram |
| * **Component** diagram - diagram komponent | * **Component** diagram - diagram komponent | ||
| - | * **Package** diagram - diagram balíčků | + | * **Package** diagram - diagram balíčků |
| - | * **Deployment** diagram - diagram nasazení | + | * **Deployment** diagram - diagram nasazení |
| - | * **Composite structure diagram** (přidáno v UML 2) | + | * **Composite structure diagram** (přidáno v UML 2) [[wp> |
| * **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, | ||
| + | * 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, | ||
| + | |||
| + | * **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, | ||
| + | * 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)
