Nástroje pro modelování – DFD, ERA a UML modely, využití v analýze a návrhu.

Z Na státnice zvesela!

Přejít na: navigace, hledání

Při strukturální analýze je používáno několik modelovacích technik. Důvody jejich použití jsou následující:

  • Abstrahují reálný systém
  • Slouží ke komunikaci s uživatelem (zpětná vazba) při návrhu nového systému; musí být pochopitelné i pro uživatele (SW laika)
  • Dokumentace – aby lidé, kteří přijdou po nás mohli pokračovat

Obsah

[skrýt]

[editovat] Dataflow diagram (DFD)

  • Graficky vyjadřují toky dat (šipky) mezi procesy (bubliny)
  • Při komunikaci s uživatelem pomáhají vyjasnit hranice systému
  • Malá omezená množina symbolů – příjemné pro uživatele


Notace

Soubor:DFD-notace.jpg

  • Procesy – označují se většinou bublinou; měli by se číslovat, pokud jsou víceúrovňové, měli by se i číslovat víceúrovňově (3, 3.1, 3.2, 3.3); popisují to, co funkce dělá a co je výsledkem funkce
  • Úložiště dat – označují se většinou čtvercem bez boků; slouží k uchování dat
  • Toky – označují se šipkou; vyjadřují data, která putují mezi jednotlivými procesy
  • Terminátory – Lidé, stroje a systémy komunikující s naším systémem (jsou mimo hranice systému); dají se dělat duplikáty (aby nevedlo moc toků od jednoho), které se označují přeškrtnutým pravým horním rohem, nebo hvězdičkou

Kontextový diagram

  • Zvláštní případ DFD, obsahuje jediný proces (bublinu) reprezentující celý systém
  • Slouží k určení a odsouhlasení hranic systému uživatelem
  • Terminátory komunikují se systémem přímo přes datové a řídící toky, nebo přes externí datová úložiště
  • Terminátory nekomunikují mezi sebou. Ve skutečnosti to zřejmě dělají, ale protože jsou oba terminátory vně systému, je jejich komunikace pro systém irelevantní.

Soubor:kontext-diagram.jpg

[editovat] Entity relationship diagram (ERA)

Slouží k reprezentaci dat obsažených v systému a vztahů mezi nimi. Používán především pro modelování strukturovaných dat v relačních databázích.

Objektové typy Obdélník – zastupuje kolekci objektů (instancí, entit) z reálného světa, kde pro každý objekt platí: jednoznačně identifikovatelný, musí hrát určitou roli v systému, popsán jedním nebo více atributy. Podstatná jména.

Soubor:entita.jpg

Obrázek 9: ERD - objektové typy

Relace (vztahy) Kosočtverec - Spojuje dva nebo více objektů, popisek v diagramu. Slovesa. Popisuje vztah:

zákazník -< kupuje >- zboží. 

Soubor:relace.jpg

Obrázek 10: ERD – relace

Alternativní notace pro relace:

Soubor:alt-relace.jpg

Asociativní objektové typy Některé údaje které potřebujeme uložit se nevztahují ani k jednomu objektovému typu, ale přímo k vazbě – např. čas nákupu.

Soubor:asociace.jpg

Obrázek 11: ERD - asociační objektové typy

Identifikátory nadřazených typů a podtypů Dědění, děti mají stejné atributy jako rodiče + navíc své vlastní

Soubor:subtype-supertype.jpg

Obrázek 12: ERD - Subtype/Supertype Indicators

[editovat] UML(Unified/Universal Modeling Language) diagramy pro vytváření OO modelu

UML je obecný a standardizovaný modelovací jazyk, který zahrnuje grafickou notaci pro vytváření abstraktního modelu systému označovanému jako UML model. Model lze automaticky transformovat na jinou reprezentaci např. jazyk Java.

[editovat] Diagram tříd (Class diagram)

  • ukazuje třídy a vztahy mezi nimi (zobecnění, asociace, agregace, … )

Třídy

  • obdélník rozdělen na tři části
    • 1. název třídy
    • 2. atributy
    • 3. metody


Rozhraní

  • stereotyp «interface»
  • jinak se kreslí stejně jako třída (část s atributy se vynechává)
  • třídy, které implementují rozhraní se spojují s rozhraním přerušovanou šipkou
  • rozhraní se může kreslit také jako kroužek spojený s plnou čarou s třídou, která ho implementuje, pod kroužkem název rozhraní

Soubor:interface.jpg


Zobecnění

  • vyznačení dědičnosti

Soubor:generalization.jpg


Asociace

  • objekty, které jsou instancemi jedné třídy, mohou mít vztah s objekty jiné nebo stejné třídy (př. objekt třídy zaměstnanec bude mít asociaci k objektům třídy oddělení)
  • v UML se znázorňuje plnou čarou, u čáry volitelně název vztahu, u názvu volitelně malý černý rojúhelníček – kterým směrem se má asociace číst
  • konce asociace mohou být volitelně popsány rolemi ve vztahu

Soubor:association.jpg

  • asociační třída – pokud má asociace vlastnosti jako atributy, operace aj.
  • asociace nemusí být jen binární, ale obecně n-ární

Soubor:association_2.jpg

  • asociace je velmi obecný typ vztahu


Agregace (volná vazba)

  • jednou z nejčastějších binárních asociací je agregace (znázorňuje se prázdným kosočtvercem na straně agregátu)
  • znamená to, že objekt je vytvořen z dalších objektů = je agregátorem množiny objektů (př. stádo je agregátem ovcí, les je agregátem stromů, rodina je agregátem objektu typu muž a objektu typu žena a množiny objektů typu dítě, …)

Soubor:agregation.jpg

Jiný příklad: počítač a periferní zařízení


Kompozice (pevná vazba)

  • je silná asociace – součást nemůže existovat samostatně (př. políčko nemůže existovat bez šachovnice).
  • Znázorňuje se plným kosočtvercem nebo grafickým vnořením.

Soubor:composition.jpg

Jiný příklad: strom a jeho listy

[editovat] Diagram případů užití (Use case diagram)

  • popisuje, co systém dělá, nikoli, jak to dělá
  • obsahuje
    • aktéry (znázorněny jako panáčci) – cokoliv co potřebuje komunikovat se systémem; představuje to roli
    • případy užití (znázorněny elipsou) – představuje dialog nebo transakci vykonávanou systémem
      • spojeny se scénáři – posloupnost kroků
    • komunikace (čáry mezi akterý a PU) – spojuje aktéry s PU

Soubor:use_case.jpg

[editovat] Diagram sekvencí, Sekvenční diagram (Sequence diagram)

  • popisují stejnou informaci jako digramy spolupráce, ale soustředí se na časové závislosti
  • znázorňují aktéry, objekty v systému, se kterými interagují a posloupnost výměny zpráv
  • čas plyne shora dolů – pro každý objekt svislá přerušovaná čára (lifeline)
  • horizontální uspořádání není podstatné a má být zvoleno s ohledem na přehlednost
  • šipky podle typu komunikace
    • volání procedury nebo jiný vnořený tok řízení (tj. vnější sekvence může pokračovat, až po dokončení vnitřní sekvence) – plná šipka, viz a)
    • asynchroní komunikace – neplná šipka, viz b)
    • návrat z procedury – přerušovaná šipka, viz c)

Soubor:sequence.jpg

[editovat] Diagram spolupráce (collaboration diagram)

  • popisují spoluprácí mezi objekty nebo jejich rolemi
  • znázorňuje strukturu objektů i dynamické chování
  • vyskytují se zde:
    • spojení pro přenos zprávy – kreslí se jako plná čára
    • zprávy (stimuly) – kreslí se jako šipečka blízko čáry; šipečka s plnou hlavou znamená volání procedury, volající pokračuje až po návratu z procedury
    • každá zprává má pořadové číslo, zpráva na nejvyšší úrovni má číslo 1
    • obdélníčky jsou buď objekty (název je podtržený) nebo role (není podtržený)
    • lze znázornit iteraci nebo podmíněnou zprávu

Soubor:collaboration.jpg

[editovat] Stavový diagram (State transition diagram)

  • typicky pro popis chování instance třídy
  • stav – během života objektu – provádí nějakou akci, čeká na událost
  • přechod – změna stavu způsobená událostí
  • uzly grafu = stavy, znázorněny jako obdélníky s kyulatými rohy
  • orientované hrany grafu = přechody mezi stavy
  • počáteční stav – znázorněn jako černé kolečko
  • koncový stav – znázorněn jako černé kolečko v kroužku („býčí oko“)

Soubor:state.jpg

(zdroj: Potuzák, Kubovec - Okruhy otázek ke státní závěrečné zkoušce z předmětu - Návrh informačních systémů (NIS) 2005/2006)