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í

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

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

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

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

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

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

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

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

JE TŘEBA DBÁT NA ANONYMITU KLIENTA NEBO NE?

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

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

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

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

NAUČTE SE MALOVAT SI INSTANCE!

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

Modelování požadavků

Jak funguje element deep history v UML

Vzor OBSERVER a jeho zajímavá varianta v kombinaci se vzorem ADAPTER Část 2

Unifikovaný modelovací jazyk UML

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

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

Vztah typu Extend v UML a jeho zvláštnosti

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

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

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

A7B36SI2 - Řízení SW projektů. Smart-Fine. Systém evidence parkovacích lístků pomocí chytrých telefonů. Analýza (v. 3)

1. Témata maturitních prací. 2. Termín závazného zadání maturitní práce. 3. Termín odevzdání maturitní práce. 4. Kritéria hodnocení maturitní práce

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

Případy užití (use case) Projektování SW systémů

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

S poděkováním za Váš čas. Doc. RNDr. Markéta Martínková, Ph.D. proděkanka RNDr. Jana Rubešová, Ph.D. správce SIS

Použití informačního systému Helios Orange Personalistika

Uživatelský manuál Radekce-Online.cz

Google Apps. dokumenty 5. verze 2012

Návrh IS - UML. Jaroslav Žáček

Úvod do objektově orientovaného programování s použitím jazyka C# pro střední školy

Vlastnosti dokumentu/stránky

StatSoft Odkud tak asi je?

Penalizační faktury E S O 9 i n t e r n a t i o n a l a. s.

SYSTÉM PRO DRAŽBU ZNÁMEK

Rozdílová dokumentace k ovládání IS KARAT.net

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Rekurze - tvorba a zápis algoritmů v jazyce Pascal

[RDM] STRUČNÁ UŽIVATELSKÁ PŘÍRUČKA. CENTRÁLNÍ REGISTR PODPOR MALÉHO ROZSAHU - de minimis

Vývoj IS - strukturované paradigma II

Postup k obsluze portálu O2 Delivery Desk

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

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

WinFAS. 5 účto. Praktický úvod do WinFASu Prohlížení knih

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Jedna z velmi častých a závažných chyb při návrhu IS aneb jak vznikají tzv. molochální systémy

Tvorba dávek. Uživatelská příručka

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

Chybová hlášení METODIKA MET-01/2014. SZR-56-1/OPICT-2013 počet stran 28 přílohy 0. Nahrazuje:

Uživatelská příručka IS KP14+ pro Integrované nástroje: Žádost o podporu Strategie CLLD

Návod k ovládání programu PATENT.EXE

Příručka pro editaci kontaktů na eagri

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

HELIOS Orange Inventury nedokončené výroby

8 Třídy, objekty, metody, předávání argumentů metod

Metodická příručka pro učitele. InspIS SET modul školní testování

Uživatelská příručka ISKP14+ pro Integrované nástroje: Žádost o podporu strategie ITI/IPRÚ

Popis aplikace Portál práce pro oblast bezpečnostních služeb

Začínáme s Tovek Tools

Zpracování ročních zpráv v IS FKVS Příručka pro koncové uživatele

Didaktický test Na co se mě vlastně ptají?

Montáže E S O 9 i n t r a n e t a. s.

Inventura skladových zásob

UML. Unified Modeling Language. Součásti UML

Reliance 3 design OBSAH

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

Analýza a design na reálném projektu. Richard Michalský

Testování mobilního telefonu Apple iphone 4

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

Výroková logika dokazatelnost

Pro vyúčtování pojišťovnám se používá jednoduchý průvodce, který Vás provede celým vyúčtováním. Pro tvorbu dávek platí:

ZEMĚMĚŘICKÝ ÚŘAD. Uživatelská příručka - Metadatový editor MDE. Pod Sídlištěm 9/1800, Praha 8. Verze IS nebo části IS: Účel poslední změny:

Obsah. 1.1 Úvod do práce s autorským nástrojem ProAuthor 4

MBI portál pro podporu řízení podnikové informatiky. mbi.vse.cz

PŘÍLOHA C Požadavky na Dokumentaci

Základy analýzy. autor. Jan Novotný února 2007

Popis egon služby. E93 - roszapispravnistav. Název dokumentu: Popis egon služeb Verze: Datum aktualizace: Správa základních registrů

Práce s aplikací pro zpracování statistických výkonových výkazů

MapleSim 4.5 instalační příručka

IS pro podporu BOZP na FIT ČVUT

OBSAH. 48 Příručka ON-LINE KUPEG úvěrová pojišťovna, a.s.

O JEDNÉ ZÁLUDNOSTI INTERAKCE «INCLUDE» V MODELU PŘÍPADŮ UŽITÍ

ESLC Testový program Pokyny pro studenty (CZ)

KRAJSKÝ ÚŘAD KARLOVARSKÉHO KRAJE. Manuál. Uživatele aplikace informačního systému pro

Informační a komunikační technologie

Modul distribuce standardních smluv na MV

WR Reality. Web Revolution. Uživatelský manuál administračního rozhraní

TECHNICKÉ POŽADAVKY PORTÁLU

Návrh IS - UML. Jaroslav Žáček

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Testování operačního systému Windows Phone 8

Návod na obsluhu softwaru Repsale pro WM6.x objednávkový a prodejní software pro PDA a mobilní terminály.

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

Nápověda pro systém ehelpdesk.eu

Transkript:

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í autor RNDr. Ilja Kraval leden 2008 www.objects.cz Úvod Tento článek navazuje jako pokračování na článek předešlý. Minule jsme si zde dali jednu hádanku a s potěšením musím konstatovat, že odpovědělo opravdu překvapivě hodně čtenářů. S potěšením jsem si pročítal v haldě mailů odpovědi na otázku kde je chyba v předešlém článku. Mimochodem, napadla mne zajímavá myšlenka zavést na našem serveru kvízové otázky z modelování a návrhu IS podobného charakteru a zapojit tak čtenáře do živé diskuse. Dnes si důkladně rozebereme první odpovědi. Jenom připomenu, že minule jsme se ptali, kde je chyba v této větě:...například ihned po ukončení UseCase Založit žádost následuje vždy UseCase Vytisknout žádost, jehož obsah ale nemůže být součástí UseCase Založit žádost, protože tisk žádosti se provádí nejen po jejím založení ale i v jiných dalších případech a tak je existence samostatného UseCase pro popis tisku žádosti zcela oprávněná... Strana 1

Jak je to s číslováním pořadí případů užití Některé z odpovědí se sice snažily popsat chybu, ale nebyly úplně přesné anebo se soustředily až na důsledky této chyby. Vybral jsem jednu z nich, která plně vystihuje problém. Zkusme se zamyslet nad touto sice nikoliv chybnou, ale ne úplně přesnou odpovědí: Zdravím Vás, myslím, že v USE CASE nevyjadřujeme časovou posloupnost. Proto je špatně část... ihned po ukončení UseCase Založit žádost následuje vždy UseCase Vytisknout žádost... S pozdravem a díky za vaši práci S.M. Poznámka: Nejprve musím odpovědět na poděkování na konci mailu, které mne potěšilo. Jako odpověď použiji jeden typicky americký výrok: OK, it s my job. A jen dodám, že výuka modelování IS pomocí UML a OOP je prací, která mne baví. Je třeba zdůraznit, že ono to s posloupností případů užití není až tak jednoduché a úvaha o posloupnosti může vést i k omylům! Kolega v předešlém mailu má pravdu v tom, že přímo v syntaxi modelu případů užití není uvedena povinnost uvádět posloupnost případů užití tak, jak jsou vyvolány (instanciovány, použity) po sobě. Dokonce pokud se jedná o případy užití nabízené ven ze systému, tak pořadí případů užití z hlediska principu anonymity klienta systému ani nemá smysl! Posloupnost jak by se případy užití nabízené ven měly vyvolat po sobě (výrazně zdůrazňuji kondicionál v této větě!) je dána pouze posloupností procesů v podniku, tj. posloupností v chodu podniku! Je třeba zdůraznit, že každý samotný případ užití nabízený ven může být vyvolán a použit kdykoliv a proto musí být každý případ užití navržen slangově řečeno blbovzdorně. Například každému je jasné, že před tím, než se odsouhlasí úvěr, musí být daný úvěr založen, musí být vyplněn a také překlopen do stavu připraven k odsouhlasení. Z hlediska procesů podniku je zřejmé, že úvěr v podniku se nejprve zakládá, poté se vyplňuje potřebnými údaji, tak se připravuje k odsouhlasení a poté se zavolá případ užití pro odsouhlasení. Ale v případech užití uvnitř algoritmů se nesmíme spolehnout, že proces podniku venku musí běžet a poběží zrovna takto. Případ užití Odsouhlasení úvěru může být totiž spuštěn kdykoliv! Jak tedy ošetřit tuto libovůli Strana 2

spuštění zvenku? Samotný případ užití odsouhlasení musí být uvnitř navržen tak, že nelze obsloužit jiné úvěry, než úvěry připravené k odsouhlasení. Například případ užití začíná výběrem úvěrů v tomto stavu, tj. ve stavu připraven k odsouhlasení : část scénáře:...obsluze se zobrazí seznam úvěrů ve stavu úvěr připraven k odsouhlasení, obsluha vybere jeden úvěr atd. Poznámka na okraj, opravdu technická: S výhodou lze použít pro odkazy nástroj EA Object Editor (viz http://www.objects.cz/eaoe/eaoe.html ), který se zavádí ve firmách ve stále větším počtu licencí. Tzv. živé odkazy na prvky v modelu EA jsou zde zdůrazněny pomocí žluté barvy. Zde ve scénářích UC jsou jimi modelovací prvky tzv. user concepts, které budou mapovány na objekty programu a poté na model tříd programu. Nyní již vidíme první kandidáty na toto mapování žlutě: 1. seznam úvěrů, tj. budoucí objekt správce seznamu úvarů 2. samotný úvěr, tj. budoucí objekt samotného úvěru 3. číselník stavů úvěrů, jehož jedním itemem je úvěr stav připraven k odsouhlasení Tyto prvky se dále mapují na nalezené třídy a tím vzniká vztah mezi pojmy uživatele a modelem tříd, tedy vzniká to, co nazýváme interpretací evidované informace v programu uživatelem. Pokud v systému není ani jeden úvěr v tomto stavu, není co odsouhlasit a případ užití odsouhlasení končí hned na svém začátku. Je vidět, že vnitřní dobře navržená konzistentní stavovost výskytů informace je právě onou skutečností, která zaručuje požadovanou blbovzdornost v případech užití! Je třeba si uvědomit, že v předešlém odstavci byla řeč o případech užití nabízených ven spustitelných vnějším klientem systému kdykoliv. Pokud však popisujeme vnitřní implementaci případu užití, tj. popisujeme co se děje uvnitř případu při jeho použití (tj. v rámci vyvolání), tak v této implementaci, tj. popisu vnitřku, je již posloupnost toho, co se děje, dána přesně v časovém sledu a tedy takříkajíc po sobě. Jinak řečeno v popisu scénáře programu se doslova píše: udělá se toto, potom toto...atd.. Tímto vlastně popisujeme požadovaný algoritmus programu. Znamená to, že ve vnitřním scénáři případu užití vyjadřujeme velmi přesně (a pokud možno detailně) posloupnost toho, co se po čem děje. Z toho plyne, že pokud se v rámci scénáře odvoláme na případ užití pomocí <<include>>, tak toto volání má přesně definovanou pozici v posloupnosti scénáře a má proto smysl hovořit o pořadí tohoto zavolání v rámci tohoto scénáře. Uveďme si příklad pomocí jednoho klasického vzoru z modelování pomocí případů užití. Velmi často se vyskytuje situace, kdy obsluze se zobrazí seznam nějakých prvků, obsluha vybere jeden prvek ze seznamu a provede jeho editaci. Tento Strana 3

analytický scénář lze realizovat v designu pomocí jedné obrazovky, kde v jedné části (například vlevo) se zobrazuje seznam prvků a jinde (například vpravo) se zobrazuje detail vybraného prvku s možností editace. Protože se části scénáře výběr prvku a editace vybraného prvku volají i odjinud, zavedeme tyto části jako případy užití a provedeme na ně <<include>> (tj. vytkneme). Aplikace vzoru by pak mohl vypadat v příkladu třebas takto: Textový tvar: Případ užití Editace fyzické osoby s výběrem Scénář: Provede se výběr fyzické osoby obsluhou, viz UC Výběr fyzické osoby. Provede se editace aktuálně vybrané fyzické osoby, viz UC Editace aktuálně vybrané fyzické osoby. Poznámka: Jak vidět, opět je zřejmou výhodou, pokud i pro volání mezi případy užití pomocí <<include>> používáme nástroj EA Object Editor Graficky v diagramu potom toto řešení vypadá takto: «include» Editace fyzické osoby s výběrem Výběr fyzické osoby Editace aktuálně vybrané fyzické osoby «include» obrázek 1 Aplikace USE CASE PATTERNu Editace prvku s výběrem (tento diagram musí být v plném souladu s textem scénáře). Strana 4

Je logické a zřejmé (z uvedeného scénáře to vyplývá), že nejprve se v posloupnosti zavolá případ užití Výběr fyzické osoby a poté případ užití Editace aktuálně vybrané fyzické osoby. Syntaxe UML to nevyžaduje, ale tuto skutečnost bychom mohli znázornit také přímo v diagramu jako vlastnost samotného vztahu <<include>> pomocí prvku CONSTRAINT s udáním hodnoty v pořadí: «include» {order = 1} Editace fyzické osoby s výběrem Výběr fyzické osoby «include» {order = 2} Editace aktuálně vybrané fyzické osoby obrázek 2 Možnost využití prvku CONSTRAINT pro pořadí Poznámka: Jak se můžete seznámit se vzory modelování? Všechny užitečné a potřebné vzory návrhu IS (nejenom tento jeden) jsou podrobně probrány například na pobytovém školení (viz http://www.objects.cz/pobyt/pobytovaskolauml.html ), proto doporučuji účast na tomto školení. Všimněte si, že v předešlém obrázku má smysl očíslovat si vztahy typu <<include>> (nikoliv samotné případy užití,ale vztahy <<include>>!). Má tedy v tomto případě smysl udat třeba i graficky, jako jsou které případy užití volány v jakém pořadí. Pořadí vyplývá přímo ze scénáře volajícího případu užití. Poznámka: Osobně do diagramu toto pořadí neznázorňuji a ponechávám je čitelné pouze v textu scénáře. Strana 5

Závěr první: Ve svém důsledku závěrečná věta znamená, že odpověď kolegy není dostatečně úplně přesná, protože lze popsat situace, kdy má smysl očíslovat si pořadí volání případů užití! Ale přes tuto ne úplnou přesnost v odpovědi, kolega ve svém mailu vystihuje jako důsledek chybu v původním mailu! O opravdu přesné odpovědi pojednáme podrobně příště, nyní následuje pouze nápověda : Porovnejme si dvě situace. Na straně jedné máme situaci jako dotaz z mailu v úvodu tohoto článku, tj. předmět hádanky. Na straně druhé si prohlédněme číslování volání případů užití, tedy vztahů <<include>> v našem příkladu, viz obrázek 2 Možnost využití prvku CONSTRAINT pro pořadí! Tyto dvě situace se podstatně liší! V prvém případě, tj. v dotazu mailu, opravdu (jak píše odpověď) nemá smysl číslovat nějaké pořadí, v druhém však smysl má! Odpověď na hádanku následuje v dalším pokračování článku!...článek bude pokračovat! Strana 6