ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH



Podobné dokumenty
Druhá část odpovědi na mail ohledně zpracování případů užití

Vztah typu Extend v UML a jeho zvláštnosti

Třetí část odpovědi na mail ohledně zpracování případů užití, aneb jak je to s číslováním pořadí případů užití

JEDNODUCHÁ A PRAKTICKÁ METODA ODHADU PRACNOSTI PROJEKTU (S UTILITOU KE STAŽENÍ ZDARMA)

S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ

Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>>

Problém identity instancí asociačních tříd

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Pokročilé typové úlohy a scénáře 2006 UOMO 71

Úvod do principů objektově orientovaného programování

7.2 Model použití (jednání) (Use Case)

Odpověď na dotaz ohledně asociační třídy v modelu měření

O JEDNÉ ČASTÉ CHYBĚ PŘI ROZKLADU PROCESŮ PODNIKU ANEB KDY MÁME UKONČIT ROZKLAD PROCESŮ PODNIKU?

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Šablona KRYPTON. Slidery na úvodní straně. kompletní návod pro obsluhu všech nově přidaných funkcí

Jak správně psát scénáře k případům užití?

Šumperský efekt rozmnožení případů užití

VYHLEDÁVÁNÍ PRVKŮ ACTOR A PROCESNÍ MODELOVÁNÍ

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007

Objektově orientované technologie. Daniela Szturcová

Záhlaví a zápatí Tvorba obsahu

MS Excel makra a VBA

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

Požadavky Pokročilé modelování případů užití

NAUČTE SE MALOVAT SI INSTANCE!

Práce s programem MPVaK

Obsah. při vyšetření pacienta. GDT souboru do programu COSMED Omnia GDT souboru z programu COSMED Omnia a zobrazení výsledků měření v programu MEDICUS

Manuál k ovládání aplikace INFOwin.

TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC

Model případu užití. Martin Komárek

PŘÍLOHA C Požadavky na Dokumentaci

Jazz Server osobní nastavení uživatele

8/3 Komunikace mezi aplikacemi MS Office

Kurz Postupy návrhu IS pomocí UML a OOP (5 dnů, in-house)

3 druhy UML diagramů

TÉMATICKÝ OKRUH Softwarové inženýrství

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

Nutnost použití vzoru OBSERVER pro zamezení nepříjemných efektů zpětných funkcionálních vazeb mezi objekty

Rady pro tvorbu USE CASE MODELU, rada první: Jak pracovat s pojmy ve scénářích UC

Omezení funkcionalit v softwaru STATISTICA

Základní informace. Modelování. Notace

Modelování požadavků

7.2 Model použití (jednání) (Use Case)

Program Půjčovna sportovních potřeb

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

7.6 Další diagramy UML

Efekty počítačové prezentace

7.6 Další diagramy UML

APS Control Panel. Ovládací panel systému APS mini Plus pro SW balík APS Administrator. Uživatelská příručka

Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ

Algoritmizace a programování

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 21 BOOLEOVSKÉ OPERACE]

OOT Objektově orientované technologie

Generování výkresové dokumentace. Autodesk INVENTOR. Ing. Richard Strnka, 2012

OOT Objektově orientované technologie

Metodika analýzy. Příloha č. 1

Obslužný software. PAP ISO 9001

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Cvičení 7 z předmětu CAD I PARAMETRICKÉ 3D MODELOVÁNÍ TVORBA SESTAVY

Úvod do programu Solid Edge

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PRÁCE S TEXTOVÝM EDITOREM 6.4 TEXTOVÉ POLE

Software602 FormApps Server

Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe

Elektronické podání žádosti o udělení výjimky pro použití konvenčních osiv v ekologickém zemědělství prostřednictvím Portálu farmáře MZe

TDP RPort 1.0. uživatelská příručka. 12. července 2007 Na slupi 2a, Praha 2

Jak funguje element deep history v UML

Podpora skriptování v Audacity

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Modul Outlook2Money.

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Přehledový manuál aplikace GABVAR (verze )

Vytváříme prezentaci její strukturu a celkový vzhled

Příklady práce se software VZDUCH verze 1.2

Podání souhrnného hlášení elektronicky

Tvorba 2D technické dokumentace. SolidWorks Kotva. Ing. Richard Strnka, 2013

Postup instalace umožňující el. podpis v IS KP14+ pro webové prohlížeče Google Chrome a Firefox.

MODUL MUNI ASPI, a. s muni_manual.indd :57:23

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

1 Filozofie knihy jízd

UML. Unified Modeling Language. Součásti UML

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

ÚLOHA 6. Úloha 6: Stěžejní body tohoto příkladu:

Nastavení Internet Exploreru pro vstup do IS ARGIS

Naším cílem je Vaše spokojenost...

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

STATISTICA. Vlastní menu v programu. StatSoft

Kontakty Upravení kontaktu - změna údájů Přidání fotky ke kontaktu Založení nového kontaktu Kopírování ze SIM karty do telefonu Základní nastavení

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

Tvorba kurzu v LMS Moodle

Motorola Phone Tools. Začínáme

Knihovna DMX512lib Komunikace protokolem DMX512. TXV prvé vydání srpen 2010 změny vyhrazeny

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

Transkript:

ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH 3. část RNDr. Ilja Kraval, srpen 2009 http://www.objects.cz ÚVOD Tento článek je pokračováním předešlých článků. Článek vysvětluje použití vztahu «extend» v diagramech případů užití a ukazuje jeho možné technologické realizace. Jak bylo řečeno v předešlých částech tohoto mini-seriálu, interakce «extend» se používá na rozdíl od interakce «include» tam, kde případ užití volající (rozšiřovaný) nemá být závislý na případu užití vyvolaném (rozšiřujícím). V praxi to znamená, že samotný scénář by neměl správně obsahovat odkaz na rozšiřující případ užití. Technický rozdíl ve vlastnostech obou interakcí je tedy zřejmý, zůstávají nám nyní k zodpovězení tyto dvě otázky: 1. V jakých konkrétních analytických situacích se vztah «extend» prakticky používá? 2. Jak je tento vztah následně realizován technologicky?

strana 2 PRAKTICKÉ POUŽITÍ INTERAKCE «EXTEND» A NÁSLEDNÁ MOŽNÁ TECHNOLOGICKÁ REALIZACE Je zřejmé, že interakci «extend» nasadíme tam, kde se vyžaduje nezávislost volání případu užití. V praxi a ve školeních jsem se setkal s těmito možnostmi zavedení interakce «extend» v analytickém modelu: 1. Přídavné spustitelné akce nad vybraným prvkem 2. Vyvolání přídavné akce na událost vyvolanou buď systémem anebo uživatelem 3. Vyvolání zvláštního použití Helpu aplikace (tj. v kontextu použití aplikace) 4. Bonusová akce za určité podmínky, avšak podmínka a ani akce není pro požadavek rozšiřitelnosti uvedena přímo ve scénáři pomocí konstrukce if...else..., ale pomocí interakce «extend». PŘÍDAVNÉ SPUSTITELNÉ AKCE NAD VYBRANÝM PRVKEM Jedná se o velmi známou situaci, která se dá technologicky nejsnáze realizovat vyvoláním pop-up menu nad prvkem pomocí klepnutí na pravé tlačítko myši. Uživatel dostává k dispozici seznam akcí, které může následně nad prvkem vyvolat. V analytické rovině můžeme ve scénáři případů zapsat tento seznam akcí pomocí výčtu volání jako interakce «include», například takto: Obsluha má možnost nad vybraným prvkem vyvolat jeden z těchto případů užití: A, B, C Tímto se však sám scénář (tedy daný případ užití) stává závislým na těchto všech voláních. Znamená to, že přidání nové akce znamená otevřít daný scénář a přidat další volání do daného scénáře, což se může jevit jako nevýhoda. Druhou možností je použít interakci «extend». V tom případě můžeme zvolit jako Extension Point bod s názvem je vybrán prvek. Pro zápis podmínky u interakce a daného bodu extenze se použije podle poslední verze UML 2.2. text v Note takto: strana 2

strana 3 Condition: Obsluha chce vyvolat případ užití A Extension Point: je vybrán prvek «extend» X extension points: je v ybrán prv ek A Obrázek 1 Použití vztahu «extend» jako spuštění akcí ze seznamu akcí nad prvkem DŮLEŽITÁ POZNÁMKA K NOTACI PODMÍNKY U «EXTEND» V poslední verzi UML 2.2 se doslova píše: Changes from previous UML The notation for conditions has been changed such that the condition and the referenced extension points may now be included in a Note attached to the extend relationship, instead of merely being a textual comment that is located in the vicinity of the relationship. Verze EA 7.1, kterou momentálně používám, neumí propojit link z Note na interakce, ale pouze na prvek, a tedy neumí propojit linkem Note ani s interakcí «extend». Na předešlém obrázku je tedy ono propojení vytvořeno uměle pomocí jiné čárkované čáry, která není přímo v nabídce EA. Avšak podle starší verze UML stačí umístit tento Note pouze blízko k dané interakci bez propojení s danou interakcí, což lze bez problému použít a je také myslím dostačující. VYVOLÁNÍ PŘÍDAVNÉ AKCE NA UDÁLOST VYVOLANOU BUĎ SYSTÉMEM ANEBO UŽIVATELEM Jedná se o další známou situaci, kdy chceme vyjádřit, že na danou událost se spustí jedna určitá anebo několik akcí. Existuje více možností, jak tuto situaci vyjádřit pomocí případů užití. strana 3

strana 4 První možností je přímo ve scénáři vypsat natvrdo seznam vyvolaných akcí, které se vyvolají v daném bodu běhu scénáře (tento bod jinak odpovídá vyvolání události). Jedná se o variantu nejméně vhodnou a nejméně flexibilní. Je zřejmé, každé další rozšíření systému o další moduly, ve kterých se také musí vyvolat nějaká funkcionalita vyvolaná tímto bodem ve scénáři, znamená překopat starý scénář a přidat další volání případu užití. Jako příklad zvolme událost s názvem po zaúčtování převodního příkazu. Potom ve scénáři vypadá situace nějak takto: bla //pozn.: Nyní je převodní příkaz úspěšně zaúčtován v systému. Dále se provedou tyto případy užití: A1, A2, a A3. Je zřejmé, že se jedná o situaci dost nepříjemnou, protože na tento bod události budou reagovat i jiné další budoucí moduly a tento případ užití je tedy do budoucna stále otevřen. Druhou možností je použít interakci «extend» specifickým způsobem: Nejenom, že je bod extenze definován v daném případu užití jako Extension Point, ale navíc se vyskytne také v daném bodě scénáře, tj. tam se přímo explicitně uvede, například takto: bla //Nyní je převodní příkaz úspěšně zaúčtován v systému. Zde se nabízí bod extenze pro událost Po zaúčtování převodního příkazu Další postup je již zřejmý: Extendující případy užití, které se mají spouštět na tuto událost, se zaháčkují interakcí «extend» k tomuto bodu a jsou tedy vyvolány při dosažení tohoto bodu. Není asi třeba zdůrazňovat, že tento bod se může vyskytnout i ve větvi if daného scénáře. V technologii se tato situace řeší buď pomocí vzoru OBSERVER (LISTENER), nebo pomocí tzv. delegátů (např. v C#) anebo nějakým jiným událostním mechanismem. Je však třeba se zmínit o ještě efektivnějším řešení této situace, kdy chceme analyticky vyjádřit zpracování události v systému. Nepoužije se interakce «extend», ale generalizace podle Vzoru Reakce, podrobně je probrán i s příklady na našich školeních. Osobně dávám přednost řešení pomocí tohoto Vzoru Reakce, protože je i pro laika paradoxně mnohem srozumitelnější než zápis pomocí vloženého bodu extenze a interakce «extend». strana 4

strana 5 VYVOLÁNÍ ZVLÁŠTNÍHO POUŽITÍ HELPU APLIKACE (TJ. V KONTEXTU POUŽITÍ APLIKACE) Toto použití interakce «extend» zde uvádím pro úplnost, osobně jsem se s ním v praxi nesetkal. Najdete jej přímo jako příklad ve specifikaci UML. Jedná se o doplnění aplikace o Help, který tzv. může a nemusí být uživatelem vyvolán. Pokud je vyvolán, uživateli se aplikace rozšiřuje o poskytování Helpu. BONUSOVÁ AKCE ZA URČITÉ PODMÍNKY Jedná se o případ obdobný již uvedenému řešení události, ale má oproti klasické události své specifikum. Představme si, že pomocí scénáře popíšeme situaci, kdy za určitých okolností se daný případ užití rozšiřuje o bonusovou akci v daném bodě scénáře. Můžeme tuto situaci zapsat takto Pokud nastane <podmínka bonusu XY >, provede se ještě případ užití A Poté se pokračuje Existuje také druhá možnost. Toto větvení se nahradí bodem extenze a podmínka se umístí do Condition u vyvolání případu užití A pomocí extenze. Situace pak ve scénáři vypadá takto: Zde se nabízí bod extenze pro Bonus XY. Poté se pokračuje A v diagramu se uvede podmínka Condition takto: strana 5

strana 6 Condition: Podmínka bonusu XY Extension Point: Bonus XY «extend» X extension points: Bonus XY A Obrázek 2 Použití interakce «extend» jako bonusová funkcionalita Cílem je opět získat nezávislost toho, kdo volá, na tom, kdo je volán. ZÁVĚR Rozdíl mezi vztahy «include» a «extend» je zřejmý: Interakce «include» reprezentuje klasické volání jednoho případu užití druhým případem užití a proto je volající závislý na volaném, tedy potřebuje jej pro svou konzistenci. Důsledkem je nutnost změnit scénář volaného, pokud potřebuje změnit zavolání. Naopak interakce «extend» zabezpečí nezávislost rozšiřovaného na rozšiřovaném. I když použití interakce «extend» je relativně výjimečnou situaci, předešlý výčet ukazuje, že ji lze používat ve specifických situacích nejen účelně, ale i srozumitelně. Navíc není vyloučeno, že se v praxi můžeme setkat ještě s dalšími možnými použitími této interakce. Konec článku Věnujte pozornost akci cenově výhodných školení OOP a UML v Praze na podzim 2009 Pobytový kurz OOP a UML podzim 2009 má volná místa strana 6