460-2009/04 – Úvod do softwarového inženýrství (SWI)
Garantující katedra | Katedra informatiky | Kredity | 4 |
Garant předmětu | Ing. Svatopluk Štolfa, Ph.D. | Garant verze předmětu | Ing. Svatopluk Štolfa, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | povinně volitelný |
Ročník | 2 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2019/2020 | Rok zrušení | |
Určeno pro fakulty | FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem předmětu je uvést studenty do disciplíny zabývající se problematikou vývoje rozsáhlých softwarových systémů. Předmět se zabývá problematikou tvorby požadavků na softwarový systém, jejich analýzou, tvorbou architektury a designu produktu. To vše za využití standardních postupů, nástrojů a jazyků jako je UML, sledování provázání jednotivých kroků apod. Studenti budou schopni aplikovat dané postupy a metody při tvorbě softwarových produktů, použít nástroje specifikace požadavků, použít jazyk UML a umět definovat potřebu koordinovaného vývoje software.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Projekt
Anotace
Tento předmět je úvodem do problematiky tvorby software z hlediska inženýrských metod. Objektově orientovaný přístup a jazyk UML je použit jako základ prezentovaných metod.
Povinná literatura:
Doporučená literatura:
Watts Humphrey’s Introduction to the Team Software Process
Armando Fox and David Patterson ,Engineering Software as a Service: An Agile Approach Using Cloud Computing, Strawberry Canyon Publisher, 2013
Gary McGraw, Real Time UML, Third Edition.
Bruce Powel Douglass, Advances in the UML for Real-Time Systems, Addison-Wesley, 2004.
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Bodované testy na cvičeních a písemné a ústní ověření znalostí zkouškou.
E-learning
Další požadavky na studenta
Student by měl znát základní principy programování.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky:
1. Softwarové procesy – životní cyklus software, Waterfall, V-Model, UP
2. Softwarové procesy - agilní metody, softwarová kvalita
3. Nástroje a prostředí – konfigurační management
4. Nástroje a prostředí – verzovací systémy, výběr nástroje a použití
5. Specifikace a analýza požadavků – získávání požadavků, funkční a nefunční požadavky
6. Specifikace a analýza požadavků - Případy užití a uživatelské příběhy
7. Softwarový design – návrhové principy
8. Softwarový design – softwarové architektury
9. Softwarový design – Návrhové vzory
10. Softwarová konstrukce – kódovací standardy, implementace spolehlivosti, efektivity a robustnosti
11. Softwarová konstrukce - Integrační strategie: top-down, bottom-up, sandwich
12. Verifikace a validace software – Verifikace vs. Validace, Testovací úrovně a typy: kvalifikační testy, integrační testy, unit testy, statické testy
13. Verifikace a validace software - test plán, testovací metody, verifikace a validace nekódpvých artefaktů, regresní testy
14. Závěr a konsolidace
Předmět je vyučován jako blok přednášek a cvičení s časovou dotací 1,5 hodiny na přednášku a 1,5 hodiny na cvičení. Kurz je zaměřen na praktickou aplikaci získaných znalostí na vlastním vybraném příkladě. Je procvičován vývojový cyklus software za pomocí mimo jiné vizuálního modelování pomocí jazyka UML.
Náplň cvičení
Cvičení jsou zaměřena na seznámení se s vývojovým cyklem softwarového díla a specifikaci jednotlivých částí. Náplní cvičení je postupně procházet jednotlivé fáze vývoje software a postupně se seznamovat s různými diagramy jazyka UML. Cvičení jsou pak dále zaměřena na konzultace spojené se samostatným zpracováním softwarového projektu, jeho výslednou implementací. Vypracování projektu a splnění testů na cvičeních jsou požadovány jako nutná podmínka pro udělení zápočtu.
Obsah jednotlivých cvičení:
1. Analýza problému, slovní specifikace požadavků, strukturovaná specifikace požadavků. Procvičení na příkladech.
2. Tvorba případů užití, scénáře, user stories, seznámení se s diagramem případů užití, vazby include a extend. Procvičení na příkladech.
3. Diagram případů užití, vazby dědičnost mezi aktéry, dědičnost mezi případy užití. Procvičení na příkladech.
4. Identifikace entit v systému - analýza podstatných jmen v případech užití. Základy třídního diagramu. Třída, vazby asociace, multiplicita. Způsob převodu diagramu do programovacího jazyka. Procvičení na příkladech.
5. Sestavení strukturálního náhledu na systém. Třídní diagram – vazba dědičnosti, implementace rozhraní, role, rozhraní, agregace a kompozice, asociační třída. Způsob převodu diagramu do programovacího jazyka. Procvičení na příkladech.
6. Realizace případů užití – sekvenční diagramy. Seznámení se se základy – objekt, volání objektu, návratová zpráva. Procvičení na příkladech.
7. Sekvenční diagramy – alternativy, smyčky, synchronní a asynchronní volání, doba běhu operace. Způsob převodu diagramu do programovacího jazyka. Procvičení na příkladech.
8. Komunikační diagramy. Upřesnění třídních diagramů na základě sekvenčních diagramů a komunikačních diagramů. Procvičení na příkladech.
9. Stavové diagramy – změny stavů, způsob realizace v programovacích jazycích. Procvičení na příkladech.
10. Diagramy aktivit a jejich využití pro definici problému – byznys model. Procvičení na příkladech.
11. Využití diagramu aktivit pro popis případů užití, algoritmů v systému. Procvičení na příkladech.
12. Implementace softwarového díla na základě vytvořené analýzy – diagramy balíčků a nasazení. Procvičení na příkladech.
13. Rekapitulace cvičení – postup v jednotlivých fázích projektu, využití diagramů UML.
14. Kontrola projektů.
Náplň projektu
Praktické procvičení jednotlivých fází vývojového cyklu probíraného na přednáškách na vlastním konkrétním kontinuálním příkladě s dotažením do implementační části.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky