Přeskočit na hlavní obsah
Přeskočit hlavičku
Terminated in academic year 2020/2021

Úvod do softwarového inženýrství

Typ studia bakalářské
Jazyk výuky angličtina
Kód 460-2009/03
Zkratka SWI
Název předmětu česky Úvod do softwarového inženýrství
Název předmětu anglicky Introduction to Software Engineering
Kreditů 5
Garantující katedra Katedra informatiky
Garant předmětu Ing. Svatopluk Štolfa, Ph.D.

Subject syllabus

Přednášky:
Úvod do problematiky softwarového inženýrství.
Softwarový proces.
Cykly, fáze a iterace procesu RUP.
Byznys modelování.
Specifikace požadavků.
Definice pojmu objekt, vztahy mezi objekty a jejich interakce.
Analýza softwarového systému.
Návrh softwarového systému.
Návrhové vzory a jejich použití.
Implementace a realizace softwarového díla.
Mapování elementů logického modelu na komponenty.
Zdrojové, binární a spustitelné komponenty.
Testování.
Nasazení softwarového systému.


Náplň PC 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í pomocí jazyka UML. 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. 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 a zejména na cvičeních na vlastním konkrétním kontinuálním příkladě s dotažením do implementační části. Předpokládaná náročnost 10 hodin.

Literature

Pfleeger, Shari Lawrence, and Joanne M. Atlee. 2009. Software Engineering: Theory and Practice: Prentice Hall, ISBN 0136061699.
Pressman, Roger S. 2010. Software Engineering : A Practitioner's Approach. 7th ed. New York: McGraw-Hill Higher Education, ISBN 9780073375977.
Sommerville, Ian. 2010. Software Engineering. 9th ed, International Computer Science Series. Harlow: Addison-Wesley, ISBN 978-0137035151.

Advised literature

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.