X36SIN: Softwarové inženýrstv enýrství Co to je softwarové inženýrstv enýrství í? Struneeno: Souhrn znalostí, metod, postup a praktik používaných pi vytváení a využívání softwarových produkt. Úvod Píklad definice SI (SEI, CMU) Software engineering is the computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting. 3 Historie SI 968 NATO sponzoruje prvou konferenci na téma Software Engineering 70-tá léta formulace základních princip, prvá generace nástroj CASE (Computer Aided Software Engineering), které obvykle podporují jeden krok ve vývoji 80-tá léta druhá generace CASE - integrované nástroje, které podporují celý vývojový cyklus 993 IEEE a ACM vytváejí komise pro SI 004 definice SEEK (Software Engineering Education Knowledge) 4 Pro se SI na FEL uí? u Cíl výuky SI Protože softwarové inženýrství patí ke standardní výbav absolvent universit. Absolventi FEL by nemli být pozadu a mli by se umt domluvit s absolventy jiných škol. Zdá se, že tato profese bude ješt dlouho žádaná. Vysvtlit pokud možno všechny innosti, které souvisejí s pípravou softwarových projekt, poskytnout poslucham pehled a dovednosti, které jsou nezbytné pro tuto innost, aby mohli bez obtíží komunikovat se specialisty a mli pehled o užívaných technikách, metodách a nástrojích. Specialisty se zde myslí jak odborníci ve zvolené oblasti, tak odborníci na informatiku a programování, ale i manažei rzných úrovní. 5 6
Jak toho cíle c dosáhnout? Nutíme studenty, aby v týmech ešili softwarové projekty. V rámci pedmtu SIN a SI je výstupem dokumentace, která zahrnuje: Úvodní studii Analytickou dokumentaci Dokumentaci návrhu Projektovou dokumentaci Poznámky k aktuáln lním úlohám Všichni by mli mít tento týden absolvován osobnostní test. Do píštího týdne by mly vzniknout týmy, týmy si volí organizaci. Všichni te pemýšlejí, který projekt si vyberou a vypracují jeho zadání. Týmm budou pidleny projekty, které budou ešit. 7 8 Obsah dokumentace SI Dokumentace SI (feasibility study) Dokumentace Analytická dokumentace Dokumentace návrhu Odpov na otázku ZDA a PRO Sbr požadavk na SW produkt budete Projektová dokumentace 9 0 SIN: Zadávac vací dokumentace Mla by pedstavovat zadání pro ešitelský tým Mla by proto obsahovat deklaraci zámru a odborný lánek Bude podkladem pro úvodní studii, kterou vypracujíešitelé ta musí odpovdt na otázku vyplatí se projekt ešit? Mla by odpovdt na otázku PRO? Musí odpovdt na otázku: vyplatí se projekt ešit? Musí odpovdt na otázku: je projekt uskutenitelný? (feasibility study) Musí proto vymezit hranici Musí odpovdt na otázku: kdo a co bude k ešení zapotebí?
Obsah úvodní studie Definice systému deklarace zámru, odborný lánek, model jednání, konový diagram, scénáe, datový slovník,... Projektová dokumentace esitelský tým (funkce, zodpovdnosti). Návrh ešení: HW, SW, komponenty. Rozpoet - cena HW, cena licencí na SW, cena vývoje SW a HW (COCOMO). Seznam úloh a harmonogram ešení (MS Project). Obsah úvodní studie Požadovaný obsah úvodní studie SI Deklarace zámru budete vytváí zadavatel Model jednání (kon) Plán Rozpoet delka : as cena : peníze 3 4 Deklarace zámruz Krátký výstižný se strunými informacemi o - jaké služby poskytuje, pro koho je uren a jaká pedpokládá omezení. Mla by posloužit pro odpov na otázku co ano, a co ne?. Je obvykle základem budoucího prospektu pro vytvoený produkt. Deklarace zámru z pro Výtah (slouží pro odpov na otázku co ano, a co ne? ) Systém Výtah slouží pro logickéízení obsluhy výtahu s jednou i více šachtami. Systém Výtah reaguje na požadavky uživatel a dále registruje signalizaci ze spína v patrech a indikace ze senzor petížení. Systém Výtah ovládá klece výtah pomocí povel pro motory výtah. Systém Výtah se nezabývá havarijním tlaítkem STOP, rovnž otevírání a zavírání dveí jde mimo systém (kvli bezpenosti). 5 6 Píklad: SPU Systém m pro pidp idlování úkol Ve firm se pidlují úkoly Vykazuje se práce Je nutno vytváet statistiky (kvli rozhodování) Poteba formalizace (kvli automatizaci a spolehlivosti) Z toho plyne poteba IS, který by to umožoval Komerní systémy jsou ale drahé a složité Deklarace zámru z pro SPU Systém SPU slouží pro zajištní podpory pidlování úkol. Nadízený pracovník pidluje úkoly podízeným pracovníkm a ti je plní. SPU poskytuje levnéešení tohoto problému, aby si je firmy s cca 00 zamstnanci mohly dovolit. Jako komunikaní médium využívá sí, což umožuje kontrolu výkaz a zadávání úkol i mimo firmu (nap. ze služební cesty). Dále poskytuje rzné statistiky inností. 7 8
Obsah úvodní studie Požadovaný obsah úvodní studie SI Deklarace zámru vytváí zadavatel budete Model jednání (kon) Plán Rozpoet delka : as cena : peníze Všechny informace, které lze o sehnat (lánky, interview, pedpisy, ). Oznaení odborný lánek má vystihovat pedstavu, že se jedná o y v pirozeném jazyce, které sepsal odborník na ešenou problematiku. Informatik ji bude analyzovat a vytvoí popis pesnjší. Nkdy se odborný lánek nazývá katalog požadavk, ale my budeme takto oznaovat strukturovanou verzi odborného lánku, kterou již tvoí informatik. 9 0 pro Výtah Chyby v odborném lánku (ový popis požadavk) Systém Výtah slouží pro logickéízení obsluhy výtahu s jednou i více šachtami (pedpokládají se 4 šachty a 40 úrovní). Systém zajišuje efektivní plánování sbru a odvozu pasažér mezi obsluhovanými patry podle požadavk (požadavek na pivolání výtahu pro jízdu smrem nahoru nebo dol, požadavek na dopravení do uritého patra). Smr jízdy se nemní, dokud výtah nesplní objednávky v daném smru (výtah neví o pasažérech neexistuje indikace prázdnosti klece). Peplnný výtah nereaguje na výzvy (existuje indikace petížení). Pro každou šachtu existuje samostatný motor ovládaný signály (povely UP, DOWN a STOP). Povel STOP zpsobí zastavení výtahu v nejbližším pate v daném smru a otevení dveí výtahu (dvee se dají otevít až v pate). Uvnit klece je panel s tlaítky pater, indikace aktuální polohy a tlaítko STOP. Tlaítko STOP zabrání zavení dveí (jde mimo systém). Rovnž otevírání a zavírání dveí jde mimo systém (kvli bezpenosti). Píkazy pro systém jsou akceptovány až po zavení dveí. Operátor výtahu má k dispozici tlaítko ON/OFF, kterým zadává požadavek na zastavení pohybu výtah. Je píliš krátký a nepostihuje nkteré charakteristiky systému. Je píliš dlouhý a zabývá se problémy, které s popisem systému nesouvisí. Není z nj zejmé, jaká data bude systém zpracovávat, jaké služby bude poskytovat, jak se budou vlastnosti systému mnit v ase i jako dsledek njakých (popsaných) okolností. Neobsahuje nkterý požadavek. Katalog požadavk adavk Strukturovaná verze odborného lánku. je pedzpracován tak, aby tvoil strom požadavk. Požadavky jsou oíslovány a pes ísla se na n lze odvolávat. Katalog požadavk adavk pro Výtah (strukturovaný ový popis požadavk). Systém Výtah slouží pro logickéízení obsluhy výtahu.. Výtah mže mít jednu i více šachet (pedpokládají se 4 šachty).. Výtah mže mít dv a více úrovní - pater (pedpokládá se 40 úrovní).. Systém zajišuje efektivní plánování sbru a odvozu pasažér mezi obsluhovanými patry podle požadavk.. Požadavek na pivolání výtahu pro jízdu smrem nahoru nebo dol (vzniká v pate).. Požadavek na dopravení do uritého patra (vzniká v kleci výtahu). 3. Smr jízdy se nemní, dokud výtah nesplní objednávky v daném smru (výtah neví o pasažérech neexistuje indikace prázdnosti klece). 4. Peplnný výtah nereaguje na výzvy (existuje indikace petížení). n. Pravdpodobnost chyby by mla být menší než chyba za 0 let (píklad nefunkního požadavku, který ale musíme též evidovat). 3 4
Požadavek Pípad použití 5 6 Obsah úvodní studie Formalizace informací Požadovaný obsah úvodní studie SI Deklarace zámru vytváí zadavatel Model jednání (kon) budeme Plán Rozpoet delka : as cena : peníze Katalog požadavk je strukturovaný ový dokument. Pro jednoznanou interpretaci je ale nutné formální vyjádení požadavk zachycených v katalogu. asto se doporuuje z katalogu požadavk extrahovat hned na zaátku: aktéry (uživatelské role a spolupracující systémy), události (pípady použití), potebná a požadovaná data. Nkteré metodiky navrhují vybrat z podstatná jména (kandidáti na data) a slovesné fráze (kandidáti na služby - pípady použití). Vybrané termíny uložit do významového slovníku (asto se používá termín datový slovník Data Dictionary). 7 8 Seznam aktér Aktér je cokoliv, co se nachází mimo navrhovaný systém, co ale mže vyvolat událost, na kterou systém musí reagovat (vstupní událost - akce), nebo je to cokoliv, co mže informaci od systému pijmout (výstupní událost reakce). Aktéi tedy pedstavují uživatelské role a spolupracující systémy. Kandidáti na aktéry - Výtah Systém Výtah slouží pro logickéízení obsluhy výtahu s jednou i více šachtami (pedpokládají se 4 šachty a 40 úrovní). Systém zajišuje efektivní plánování sbru a odvozu pasažér mezi obsluhovanými patry podle požadavk (požadavek na pivolání výtahu pro jízdu smrem nahoru nebo dol, požadavek na dopravení do uritého patra). Smr jízdy se nemní, dokud výtah nesplní objednávky v daném smru (výtah neví o pasažérech neexistuje indikace prázdnosti klece). Peplnný výtah nereaguje na výzvy (existuje indikace petížení). Pro každou šachtu existuje samostatný motor ovládaný signály (povely UP, DOWN a STOP). Povel STOP zpsobí zastavení výtahu v nejbližším pate v daném smru a otevení dveí výtahu (dvee se dají otevít až v pate). Uvnit klece je panel s tlaítky pater, indikace aktuální polohy a tlaítko STOP. Tlaítko STOP zabrání zavení dveí (jde mimo systém). Rovnž otevírání a zavírání dveí jde mimo systém (kvli bezpenosti). Píkazy pro systém jsou akceptovány až po zavení dveí. Operátor výtahu má k dispozici tlaítko ON/OFF, kterým zadává požadavek na zastavení pohybu výtah. 9 30
Seznam aktér pro Výtah (uživatelské role a spolupracující systémy) PASAŽÉR (primární aktér) ten, který se výtahem dopravuje (pesnji, ten který generuje požadavky) OPERÁTOR ten, který systém spouští a zastavuje SENZOR P ETÍŽENÍ to, co hlásí petížení klece SPÍNA PATRA to, co hlásí píjezd klece do patra ÍZENÍ MOTORU to, co ídí motory podle povel Chyby v seznamu aktér Neúplný seznam aktér. Za aktéra je považováno cosi, co nemá se systémem žádnou možnost komunikace. Zapomnlo se na sekundární aktéry (systém pro n není primárn uren, ale jsou nezbytní k jeho provozu). 3 3 Seznam událost lostí (use cases) Kandidáti na služby - Výtah Událost je cosi, co vzniklo mimo systém, ale systém na to musí reagovat. S událostmi souvisí služby systém musí poskytovat služby zajiš ující zpracování událostí. S událostmi souvisí data, která procházejí pes hranici systému. Událost mže vyvolat bezprostední reakci systému (posílají se data njakému aktérovi) a/nebo zmnu stavu systému. Události je teba nahlížet zvenku (ze strany aktér). Systém Výtah slouží pro logickéízení obsluhy výtahu s jednou i více šachtami (pedpokládají se 4 šachty a 40 úrovní). Systém zajišuje efektivní plánování sbru a odvozu pasažér mezi obsluhovanými patry podle požadavk (požadavek na pivolání výtahu pro jízdu smrem nahoru nebo dol, požadavek na dopravení do uritého patra). Smr jízdy se nemní, dokud výtah nesplní objednávky v daném smru (výtah neví o pasažérech neexistuje indikace prázdnosti klece). Peplnný výtah nereaguje na výzvy (existuje indikace petížení). Pro každou šachtu existuje samostatný motor ovládaný signály (povely UP, DOWN a STOP). Povel STOP zpsobí zastavení výtahu v nejbližším pate v daném smru a otevení dveí výtahu (dvee se dají otevít až v pate). Uvnit klece je panel s tlaítky pater, indikace aktuální polohy a tlaítko STOP. Tlaítko STOP zabrání zavení dveí (jde mimo systém). Rovnž otevírání a zavírání dveí jde mimo systém (kvli bezpenosti). Píkazy pro systém jsou akceptovány až po zavení dveí. Operátor výtahu má k dispozici tlaítko ON/OFF, kterým zadává požadavek na zastavení pohybu výtah. 33 34 Seznam událost lostí pro Výtah (stimuly z okolí, na které musí systém reagovat - seznam požadavk na služby systému) PASAŽÉR stiskl pivolávací tlaítko pro jízdu nahoru (UP) PASAŽÉR stiskl pivolávací tlaítko pro jízdu dol (DOWN) PASAŽÉR stiskl tlaítko patra v kleci výtahu OPERÁTOR stiskl tlaítko ON/OFF Výtah dosáhl patra (SPÍNA PATRA) Výtah opustil patro (SPÍNA PATRA) Došlo k petížení (SENZOR P ETÍŽENÍ) Petížení opadlo (SENZOR P ETÍŽENÍ) Chyby v seznamu událost lostí Neúplný seznam událostí. Za událost je považováno cosi, na co systém nemusí reagovat. Událost je nevhodn popsána (není nahlížena z pohledu vn systému). Za událost je považováno cosi, co pedstavuje reakci systému (výstupní stimul generovaný systémem). Není uren aktér, který mže událost zpsobit. 35 36