Co to je „softwarové inženýrství“?
X36SIN: Softwarové inženýrství
Stru n e eno: „Souhrn znalostí, metod, postup a praktik používaných p i vytvá ení a využívání softwarových produkt .“
Úvod 1
2
P íklad definice SI (SEI, CMU)
Historie SI
“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
Pro se SI na FEL u í?
1968 – 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 1993 – IEEE a ACM vytvá ejí komise pro SI 2004 – definice SEEK (Software Engineering Education Knowledge)
4
Cíl výuky SI
Protože „softwarové inženýrství“ pat í ke standardní výbav absolvent universit. Absolventi FEL by nem li být pozadu a m li by se um t domluvit s absolventy jiných škol. Zdá se, že tato profese bude ješt dlouho žádaná.
Vysv tlit pokud možno všechny innosti, které souvisejí s p ípravou softwarových projekt , poskytnout poslucha m p ehled a dovednosti, které jsou nezbytné pro tuto innost, aby mohli bez obtíží komunikovat se specialisty a m li p ehled 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že i r zných úrovní. 5
6
Jak toho cíle dosáhnout?
Pozná Poznámky k aktuá aktuální lním úlohá lohám Všichni by m li mít tento týden absolvován osobnostní test. Do p íštího týdne by m ly vzniknout týmy, týmy si volí organizaci. Všichni te p emýšlejí, který projekt si vyberou a vypracují jeho zadání. Tým m budou p id leny projekty, které budou ešit.
Nutíme studenty, aby v týmech ešili softwarové projekty. V rámci p edm tu SIN a SI2 je výstupem „dokumentace projektu“, která zahrnuje: Úvodní studii Analytickou dokumentaci Dokumentaci návrhu Projektovou dokumentaci
7
8
Obsah dokumentace SI Dokumentace SI
Úvodní studie (feasibility study)
Dokumentace projektu
Úvodní studie
Analytická dokumentace
poznamky
Tomu se te budete v novat
Odpov na otázku ZDA a PRO Sb r požadavk na SW produkt
Dokumentace návrhu
Projektová dokumentace
9
10
SIN: Zadávací dokumentace
Úvodní studie
M la by p edstavovat zadání projektu pro ešitelský tým M la by proto obsahovat deklaraci zám ru a odborný lánek Bude podkladem pro úvodní studii, kterou vypracují ešitelé – ta musí odpov d t na otázku “vyplatí se projekt ešit?”
M la by odpov d t na otázku PRO ? Musí odpov d t na otázku: “vyplatí se projekt ešit?” Musí odpov d t na otázku: “je projekt uskute nitelný?” (feasibility study) Musí proto vymezit hranici projektu Musí odpov d t na otázku: “kdo a co bude k ešení zapot ebí?” 11
12
Obsah úvodní studie
Obsah úvodní studie
Definice systému
Požadovaný obsah úvodní studie projektu SI
deklarace zám ru, odborný lánek, model jednání, kontextový diagram, scéná e, datový slovník, ...
Úvodní studie poznamky
1
Plán projektu
1
Projektová dokumentace
Deklarace zám ru text
esitelský tým (funkce, zodpov dnosti). Návrh ešení: HW, SW, komponenty. Rozpo et - cena HW, cena licencí na SW, cena vývoje SW a HW (COCOMO). Seznam úloh a harmonogram ešení (MS Project).
Tomu se te budete Odborný lánek vytvá í zadavatel v novat projektu
2 Rozpo et delka : as cena : peníze 1 Odborný lánek text
1 Model jednání (kontext)
13
Deklarace zám ru
14
Deklarace zám ru pro “Výtah”
Krátký výstižný text se stru nými informacemi o projektu - jaké služby poskytuje, pro koho je ur en a jaká p edpokládá omezení. M la by posloužit pro odpov na otázku “co ano, a co ne?”. Je obvykle základem budoucího prospektu pro vytvo ený produkt.
(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 p etíž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 (kv li bezpe nosti). 15
P íklad: SPU Systém pro p id lování úkol
16
Deklarace zá zám ru pro “SPU” SPU” Systém SPU slouží pro zajišt ní podpory p id lování úkol . Nad ízený pracovník p id luje úkoly pod ízeným pracovník m a ti je plní. SPU poskytuje levné ešení tohoto problému, aby si je firmy s cca 100 zam stnanci mohly dovolit. Jako komunika ní 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 r zné statistiky inností.
• Ve firm se p id lují úkoly • Vykazuje se práce • Je nutno vytvá et statistiky (kv li rozhodování) • Pot eba formalizace (kv li automatizaci a spolehlivosti) • Z toho plyne pot eba IS, který by to umož oval • Komer ní systémy jsou ale drahé a složité
17
18
Obsah úvodní studie Požadovaný obsah úvodní studie projektu SI
Úvodní studie poznamky
Odborný lánek 1
Všechny informace, které lze o projektu sehnat ( lánky, interview, p edpisy, …). Ozna ení „odborný lánek“ má vystihovat p edstavu, že se jedná o texty v p irozeném jazyce, které sepsal odborník na ešenou problematiku. Informatik ji bude analyzovat a vytvo í popis p esn jší. N kdy se odborný lánek nazývá „katalog požadavk “, ale my budeme takto ozna ovat strukturovanou verzi odborného lánku, kterou již tvo í informatik.
Plán projektu
1 Deklarace zám ru text
2 Rozpo et delka : as cena : peníze 1
Odborný lánek vytvá í zadavatel projektu
Odborný lánek text
1 Model jednání (kontext)
Tomu se te budete v novat 19
Odborný lánek pro „Výtah“
20
Chyby v odborném lánku Je p íliš krátký a nepostihuje n které charakteristiky systému. Je p íliš dlouhý a zabývá se problémy, které s popisem systému nesouvisí. Není z n j z ejmé, jaká data bude systém zpracovávat, jaké služby bude poskytovat, jak se budou vlastnosti systému m nit v ase i jako d sledek n jakých (popsaných) okolností. Neobsahuje n který požadavek.
(textový popis požadavk ) Systém “Výtah” slouží pro logické ízení obsluhy výtahu s jednou i více šachtami (p edpokládají se 4 šachty a 40 úrovní). Systém zajiš uje efektivní plánování sb ru a odvozu pasažér mezi obsluhovanými patry podle požadavk (požadavek na p ivolání výtahu pro jízdu sm rem nahoru nebo dol , požadavek na dopravení do ur itého patra). Sm r jízdy se nem ní, dokud výtah nesplní objednávky v daném sm ru (výtah neví o pasažérech – neexistuje indikace prázdnosti klece). P epln ný výtah nereaguje na výzvy (existuje indikace p etížení). Pro každou šachtu existuje samostatný motor ovládaný signály (povely UP, DOWN a STOP). Povel STOP zp sobí zastavení výtahu v nejbližším pat e v daném sm ru a otev ení dve í výtahu (dve e se dají otev ít až v pat e). Uvnit klece je panel s tla ítky pater, indikace aktuální polohy a tla ítko STOP. Tla ítko STOP zabrání zav ení dve í (jde mimo systém). Rovn ž otevírání a zavírání dve í jde mimo systém (kv li bezpe nosti). P íkazy pro systém jsou akceptovány až po zav ení dve í. Operátor výtahu má k dispozici tla ítko ON/OFF, kterým zadává požadavek na zastavení pohybu výtah . 21
Katalog požadavk
22
Katalog požadavk pro „Výtah“
Strukturovaná verze odborného lánku. Odborný lánek je p edzpracován tak, aby tvo il strom požadavk . Požadavky jsou o íslovány a p es ísla se na n lze odvolávat.
(strukturovaný textový popis požadavk ) 1.
2.
3. 4. n. 23
Systém “Výtah” slouží pro logické ízení obsluhy výtahu. 1.1 Výtah m že mít jednu i více šachet (p edpokládají se 4 šachty). 1.2 Výtah m že mít dv a více úrovní - pater (p edpokládá se 40 úrovní). Systém zajiš uje efektivní plánování sb ru a odvozu pasažér mezi obsluhovanými patry podle požadavk . 2.1 Požadavek na p ivolání výtahu pro jízdu sm rem nahoru nebo dol (vzniká v pat e). 2.2 Požadavek na dopravení do ur itého patra (vzniká v kleci výtahu). Sm r jízdy se nem ní, dokud výtah nesplní objednávky v daném sm ru (výtah neví o pasažérech – neexistuje indikace prázdnosti klece). P epln ný výtah nereaguje na výzvy (existuje indikace p etížení). …… Pravd podobnost chyby by m la být menší než 1 chyba za 10 let (p íklad nefunk ního požadavku, který ale musíme též evidovat). 24
Požadavek
P ípad použití
25
Obsah úvodní studie Požadovaný obsah úvodní studie projektu SI
Úvodní studie poznamky
1
Formalizace informací Katalog požadavk je strukturovaný textový dokument. Pro jednozna nou interpretaci je ale nutné formální vyjád ení požadavk zachycených v katalogu. asto se doporu uje 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í), pot ebná a požadovaná data. N které metodiky navrhují vybrat z text 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).
Plán projektu
1 Deklarace zám ru text
2 Rozpo et delka : as cena : peníze 1
Odborný lánek vytvá í zadavatel projektu
Odbo rný lánek text
26
1 Mode l je dnání (kontext)
Tomu se te budeme v novat 27
Seznam aktér
28
Kandidáti na aktéry - „Výtah“
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 p ijmout (výstupní událost – reakce). Akté i tedy p edstavují uživatelské role a spolupracující systémy.
Systém “Výtah” slouží pro logické ízení obsluhy výtahu s jednou i více šachtami (p edpokládají se 4 šachty a 40 úrovní). Systém zajiš uje efektivní plánování sb ru a odvozu pasažér mezi obsluhovanými patry podle požadavk (požadavek na p ivolání výtahu pro jízdu sm rem nahoru nebo dol , požadavek na dopravení do ur itého patra). Sm r jízdy se nem ní, dokud výtah nesplní objednávky v daném sm ru (výtah neví o pasažérech – neexistuje indikace prázdnosti klece). P epln ný výtah nereaguje na výzvy (existuje indikace p etížení). Pro každou šachtu existuje samostatný motor ovládaný signály (povely UP, DOWN a STOP). Povel STOP zp sobí zastavení výtahu v nejbližším pat e v daném sm ru a otev ení dve í výtahu (dve e se dají otev ít až v pat e). Uvnit klece je panel s tla ítky pater, indikace aktuální polohy a tla ítko STOP. Tla ítko STOP zabrání zav ení dve í (jde mimo systém). Rovn ž otevírání a zavírání dve í jde mimo systém (kv li bezpe nosti). P íkazy pro systém jsou akceptovány až po zav ení dve í. Operátor výtahu má k dispozici tla ítko ON/OFF, kterým zadává požadavek na zastavení pohybu výtah . 29
30
Seznam aktér pro „Výtah“
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. Zapomn lo se na “sekundární aktéry” (systém pro n není primárn ur en, ale jsou nezbytní k jeho provozu).
(uživatelské role a spolupracující systémy) PASAŽÉR (primární aktér) – ten, který se výtahem dopravuje (p esn ji, ten který generuje požadavky) OPERÁTOR – ten, který systém spouští a zastavuje SENZOR P ETÍŽENÍ – to, co hlásí p etížení klece SPÍNA PATRA – to, co hlásí p íjezd klece do patra ÍZENÍ MOTORU – to, co ídí motory podle povel
31
Seznam událostí (use cases)
32
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í p es hranici systému. Událost m že vyvolat bezprost ední reakci systému (posílají se data n jakému aktérovi) a/nebo zm nu stavu systému. Události je t eba nahlížet zvenku (ze strany aktér ).
Systém “Výtah” slouží pro logické ízení obsluhy výtahu s jednou i více šachtami (p edpokládají se 4 šachty a 40 úrovní). Systém zajiš uje efektivní plánování sb ru a odvozu pasažér mezi obsluhovanými patry podle požadavk (požadavek na p ivolání výtahu pro jízdu sm rem nahoru nebo dol , požadavek na dopravení do ur itého patra). Sm r jízdy se nem ní, dokud výtah nesplní objednávky v daném sm ru (výtah neví o pasažérech – neexistuje indikace prázdnosti klece). P epln ný výtah nereaguje na výzvy (existuje indikace p etížení). Pro každou šachtu existuje samostatný motor ovládaný signály (povely UP, DOWN a STOP). Povel STOP zp sobí zastavení výtahu v nejbližším pat e v daném sm ru a otev ení dve í výtahu (dve e se dají otev ít až v pat e). Uvnit klece je panel s tla ítky pater, indikace aktuální polohy a tla ítko STOP. Tla ítko STOP zabrání zav ení dve í (jde mimo systém). Rovn ž otevírání a zavírání dve í jde mimo systém (kv li bezpe nosti). P íkazy pro systém jsou akceptovány až po zav ení dve í. Operátor výtahu má k dispozici tla ítko ON/OFF, kterým zadává požadavek na zastavení pohybu výtah . 33
Seznam událostí pro „Výtah“
34
Chyby v seznamu udá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 p edstavuje reakci systému (výstupní stimul generovaný systémem). Není ur en aktér, který m že událost zp sobit.
(stimuly z okolí, na které musí systém reagovat seznam požadavk na služby systému) PASAŽÉR stiskl p ivolávací tla ítko pro jízdu nahoru (UP) PASAŽÉR stiskl p ivolá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 p etížení (SENZOR P ETÍŽENÍ) P etížení opadlo (SENZOR P ETÍŽENÍ)
35
36