Úvod do softwarového inženýrství IUS 2009/2010 5. pˇrednáška Ing. Radek Koˇc´ı, Ph.D. Ing. Bohuslav Kˇrena, Ph.D.
´ ´ sky doc. Ing. Jaroslava Zendulky, CSc. Vytvoˇreno na zaklad eˇ pˇrednaˇ
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.1/30 Uvod do softwaroveho
´ Tema prˇedna´ sˇ ky • Strukturovaná analýza a návrh ◦ Entity Relationship Diagrams (ERD) ◦ State-Transition Diagrams (STD)
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.2/30 Uvod do softwaroveho
ˇ sˇ ´ı prˇ´ıstupy k anal´yze a navrhu ´ Nejpouˇz´ıvanej
Strukturovaná analýza a návrh chápe systém jako kolekci funkcí (procesu) ˚ operujících nad daty.
Objektoveˇ orientovaná analýza a návrh chápe systém jako kolekci vzájemneˇ komunikujicích objektu. ˚
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.3/30 Uvod do softwaroveho
´ Zakladn´ ı modely strukturovane´ anal´yzy • Funkcní ˇ (procesní) modelování ◦ základní model strukturované analýzy ◦ ukazuje funkce systému, toky dat mezi systémem a okolím a mezi funkcemi, data ukládaná v systému ◦ diagram datových toku˚ (Data Flow Diagram – DFD)
• Minispecifikace ◦ popis funkcí (procesu) ˇ ˚ – co delají • Datové modelování ◦ ukazuje entity aplikaˇcní domény zpracovávané systémem a statické vztahy mezi nimi (typicky perzistentní data ukládaná v databázi) ◦ duležitý ˚ model datoveˇ intenzivních aplikací ◦ zásadní význam pro návrh databáze ◦ diagram entit a vztahu˚ (Entity Relationship Diagram – ERD)
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.4/30 Uvod do softwaroveho
´ Zakladn´ ı modely strukturovane´ anal´yzy • Datový slovník ◦ obsahuje specifikace prvku˚ modelu˚ ◦ notace pro specifikaci informaˇcního obsahu prvku˚ DFD a ERD • Modelování dynamického chování ◦ zachycuje stavy systému, události v systému a provádené ˇ akce v závislosti na stavu a události ◦ stavový diagram
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.5/30 Uvod do softwaroveho
´ ı – ER model Datove´ modelovan´ • Slouží k modelování dat aplikaˇcní domény a jejich vztahu˚ "v klidu". • podstatné v datoveˇ intenzivních aplikacích
• Která data potˇrebujeme v systému uchovávat? • Jaké jsou mezi nimi vztahy? ´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.6/30 Uvod do softwaroveho
´ ı – zakladn´ ´ Datove´ modelovan´ ı pojmy • Entita – "vec" ˇ reálného sveta ˇ (objekt) rozlišitelný od jiných objektu. ˚ Napˇr. klient banky s identifikaˇcním cˇ íslem K999, úˇcet cˇ íslo U100
• Entitní množina – množina entit téhož typu, které sdílí tytéž vlastnosti (atributy). Napˇr. Klient, Úˇcet
• Atribut – vlastnost entity, která nás v kontextu daného problému zajímá. Napˇr. Klient: cˇ ísloKlienta, jméno, pˇríjmení, adresa, . . .
• Vztah – asociace mezi nekolika ˇ entitami. Napˇr. klient s cˇ íslem klienta K999 vlastní úˇcet s cˇ íslem úˇctu U100.
• Vztahová množina – množina vztahu˚ téhož typu, které sdílí tytéž vlastnosti. Napˇr. Klient vlastní Úˇcet – pro vztah mezi entitami typu Klient a Úˇcet ´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.7/30 Uvod do softwaroveho
Tvorba ER diagramu
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.8/30 Uvod do softwaroveho
Typy atributu˚ • jednoduché (simple) a složené (composite) atributy
´ ´ inˇzen´yrstv´ı IUS 2009/2010 – p.9/30 Uvod do softwaroveho
Typy atributu˚ • jednohodnotové (single-valued) a vícehodnotové (double-valued) atributy ◦ napˇr. telefon – muže ˚ být více cˇ ísel ◦ lze omezit minimální a maximální poˇcet hodnot • prázdné (NULL) atributy ◦ mohou nabývat speciální hodnoty NULL ◦ muže ˇ ˚ zastupovat chybející hodnotu – existuje, ale neznáme ji ◦ muže ˚ zastupovat naznámou hodnotu – nevíme, zda existuje • odvozené atributy ◦ hodnotu lze odvodit od jiných atributu˚ nebo entit ◦ napˇr. datumNarození ⇒ vek ˇ
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.10/30
Parametry vztahu˚ Jméno vztahové množiny i jméno role vyjadˇruje význam vztahu.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.11/30
Stupenˇ
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.12/30
Kardinalita Kardinalita (cardinality ) je maximální poˇcet vztahu˚ daného typu (vztahové množiny), ve kterých muže ˚ participovat jedna entita. ˇ Typické hodnoty: 1,M, pˇrípadneˇ pˇresneji
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.13/30
ˇ Clenstv´ ı / u´ cˇ ast ˇ Clenství (membership) / úˇcast (participation) je minimální poˇcet vztahu˚ daného typu (vztahové množiny), ve kterých musí participovat jedna entita. Typické hodnoty: 0 – volitelné, 1 – povinné
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.14/30
Atributy vztahu • Použijeme tehdy, když atribut nelze pˇriˇradit ani jedné z entit. • Jedná se o vztah povýšený na entitu.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.15/30
Alternativn´ı notace ERD Jakou notaci jsme používali doposud?
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.16/30
Doporucˇ en´ı pro tvorbu ERD (1.) • Jména ◦ Musí být srozumitelná a musí vyjadˇrovat význam entitních a vztahových množin. ◦ entitní množiny: podstatná jména ◦ vztahové množiny: slovesa, pˇredložky ◦ Je-li jméno vztahové množiny jasné ze jmen entitních množin, ˇ není nutné uvádet.
• Mezi stejnými entitními množinami muže ˇ ˚ být nekolik vztahových množin.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.17/30
Doporucˇ en´ı pro tvorbu ERD (2.) • Identifikátor (klíˇc, primární klíˇc) ◦ Entity a vztahy musí být identifikovatelné. ◦ Hodnota identifikátoru musí být unikátní (a minimální). ◦ Identifikátorem je jednoduchý nebo složený atribut. ◦ Unikátnost hodnoty jen v rámci vyvíjeného systému (ne celého vesmíru).
• Celkový systém by nemel ˇ být zahrnut do ERD.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.18/30
Doporucˇ en´ı pro tvorbu ERD (3.) • Použít entitní množinu nebo atribut?
Pravidlo: Je-li hodnota atributu duležitá, ˚ i když neexistuje žádná entita s touto ˇ modelovat jako entitu. hodnotou jako vlastností, pak bychom ji meli
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.19/30
Doporucˇ en´ı pro tvorbu ERD (4.) • Atributy a vztahy 1:M
Bude záležet na tom, zda budeme chtít uchovávat i historii registrací. ´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.20/30
Doporucˇ en´ı pro tvorbu ERD (5.) • Náhrada vztahu˚ M:M vazební entitní množinou
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.21/30
Slabe´ (weak) entitn´ı mnoˇziny • Silná (strong) entitní množina má identifikátor tvoˇrený vlastními atributy. • Slabá entitní množina nemá identifikátor tvoˇrený vlastními atributy.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.22/30
Identifikace slabe´ entitn´ı mnoˇziny • Rysy slabé entitní množiny: ◦ identifikátor = identifikátor_dominantní + diskriminátor ◦ existenˇcní závislost slabé na identifikující • Slabá nebo silná entitní množina? 1. Jako slabou modelovat tehdy, kdy entita kompletneˇ zmizí pˇri ˇ odpovídající identifikující entity. odstranení Pˇríklad: Objednávka - PoložkaObjednávky ˇ být modelováno 2. Cokoliv s atributem, který je jednoznaˇcný, by nemelo jako slabá entitní množina. 3. Jsme-li na pochybách, modelujeme jako silnou entitní množinu.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.23/30
´ spravy ´ u´ cˇ tu˚ Cvicˇ en´ı – system Provádíme analýzu systému správy úˇctu˚ banky. Každý úˇcet má jednoznaˇcné cˇ íslo, dále je potˇreba znát jméno a adresu majitele úˇctu. Kromeˇ majitele mohou ˇ je tˇreba znát stejné údaje s úˇctem disponovat i další jím urˇcené osoby. O tech ˇ jako o majiteli. Každá z disponujících osob muže ˚ mít stanoven limit pro výber z daného úˇctu. S úˇcty manipuluje úˇredník banky na základeˇ pˇríkazu osoby ˇ oprávnené s úˇctem disponovat. ˇ vklad, z úˇctu lze provádet ˇ výber ˇ a lze pˇrevádet ˇ cˇ ástky Na úˇcet lze provádet na jiné úˇcty v téže nebo jiné bance. Musí být k dispozici informace, kdo pˇríkaz zadal a který úˇredník ho provedl. Systém musí poskytovat prostˇredky ˇ pro správu informací o klientech banky, musí umožnovat vytváˇret a rušit úˇcty, zadávat pˇríkazy, importovat pˇríkazy pro pˇrevody z jiných bank a naopak exportovat pˇríkazy pro pˇrevody na úˇcty v jiných bankách. Systém musí být schopen ˇ cní výpisy z úˇctu˚ a ˇradu dalších tiskových sestav. tisknout mesíˇ
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.24/30
´ spravy ´ u´ cˇ tu˚ Cvicˇ en´ı – system
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.25/30
Stavov´y diagram (State-Transition Diagram) Dosud známé diagramy
• DFD – modelování funkcí, které systém vykonává • ERD – modelování uložených dat, která si systém musí pamatovat STD
• zachycuje chování systému v závislosti na cˇ ase • zachycuje stavy, ve kterých se systém muže ˚ vyskytovat • zachycuje pˇrechody mezi stavy (zmeny ˇ stavu) ˚ Stav systému
• je reprezentován boxem (elipsou) • stav ⇒ množina okolností nebo atributu˚ charakterizující entitu v daném cˇ ase
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.26/30
Stavov´y diagram (State-Transition Diagram)
IDLE
WAITING FOR CALL
RECORDING MESSAGE
REWINDING
PLAYING MESSAGES
ANSWERING CALL
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.27/30
Stavov´y diagram (State-Transition Diagram) Koncové a poˇcáteˇcní stavy
• systém má pouze jeden poˇcáteˇcní stav • systém muže ˚ mít více koncových stavu˚ • koncové stavy jsou vzájemneˇ vylouˇceny (muže ˚ nastat pouze jeden z nich) Podmínky
• každá zmena ˇ ˇ muže ˚ být podmínena • ⇒ vetšinou ˇ události z okolního prostˇredí Akce
• s každou zmenou ˇ lze vykonat akce • ⇒ akce zaslané okolnímu prostˇredí • ⇒ výpoˇcet, jehož výsledky si má systém pamatovat
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.28/30
Stavov´y diagram (State-Transition Diagram)
IDLE "s t a rt " p u s h e d d is p la y "in s e rt c a rd "
"re s e t " p u s h e d
WAITING FOR CARD c a rd in s e rt e d d is p la y "e n t e r p a s s wo rd "
WAITING FOR PWD ...
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.29/30
Studijn´ı koutek – Studentska´ Unie FIT • SU FIT zastupuje studenty pˇri jednání s fakultou. • SU FIT pomáhá fakulteˇ s organizací ruzných ˚ akcí. • Oficiální informace o SU FIT najdete na URL http://www.su.fit.vutbr.cz/
• Každá pˇrednášková skupina má alesponˇ jednoho voleného zástupce v Zastupitelstvu SU FIT.
• Studenti mají své zástupce (4 + 1) v akademickém senátu FIT. • Studenti mají své zástupce na kolegiu dekana ˇ FIT. • Studenti mají svého zástupce v akademickém senátu VUT. • Studenti mají svého zástupce v oborových radách.
´ ´ Uvod do softwaroveho inˇzen´yrstv´ı IUS 2009/2010 – p.30/30