Detail předmětu

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

FP-USINAk. rok: 2021/2022

Pojmy softwarové inženýrství a softwarová krize, historie a cíle sofwarového inženýrství, vlastnosti softwarového produktu. Životní cyklus a etapy vývoje softwaru, charakteristika používaných metodik. Analýza a specifikace požadavků, zachycení požadavků v diagramu případů užití. Princip a modelovací techniky strukturované analýzy a návrhu (DFD, ERD). Základy objektové orientace (objekt, třída, abstrakce, zapouzdření, dědičnost, polymorfismus). Modelovací techniky objektově orientované analýzy a návrhu (diagram tříd, diagram objektů, návrhové vzory). UML v etapách vývoje softwaru (diagramy spolupráce, sekvenční diagramy, diagramy aktivit, stavové diagramy, OCL). Implementace, validace a verifikace programů (funkcionální a strukturální testování). Agilní metodiky pro tvorbu softwaru. Problematika provozu a servisu informačních systémů. Řízení softwarových projektů, normy pro zajištění kvality, ochrana intelektuálního vlastnictví, etický kodex softwarového inženýra.

Pro získání 5 kreditů dle ECTS by měl běžný student věnovat přibližně 125 až 150 hodin svého času. V USIN by tento čas mohl být využit například takto:
• 39 hodin přednášek
• 8 hodin cvičení
• 12 hodin práce na domácí úloze
• 16 hodin práce na týmovém projektu
• 13 hodin průběžné samostudium
• 37 hodin příprava na závěrečnou zkoušku

Jazyk výuky

čeština

Počet kreditů

5

Výsledky učení předmětu

Student získá přehled v oblasti tvorby rozsáhlých softwarových systémů. Student se seznámí zejména s etapami vývoje softwaru a modely životního cyklu softwaru. Porozumí základům metodiky analýzy a specifikace požadavků a návrhu softwarových systémů. Naučí se používat vybrané UML modely.

Prerekvizity

U studentů se předpokládají pouze běžné znalosti práce s počítačem na úrovni střední školy.

Plánované vzdělávací činnosti a výukové metody

1) Přednášky - předpokládá se prezenční účast studentů na přednášce, kde přednášející seznamuje studenty s probíranou látkou. Pokud se student nemůže přednášky zúčastnit, může sledovat přednášku on-line nebo ze záznamu.
2) Cvičení - předpokládá se prezenční účast studentů na cvičeních, kde se studenti zapojují do řešení diskutovaných problémů u tabule. Pokud se student nemůže cvičení zúčastnit, může shlédnout záznam democvičení z loňského roku a prostudovat další poskytnuté studijní materiály (např. vzorové řešení ER diagramů).
3) Domácí úloha - každý student samostatně vypracuje pro vybrané zadání ER diagram.
4) Týmový projekt - studenti v týmech s 4-5 členy vytváří komplexní model informačního systému v UML podle zvoleného zadání. Své řešení pak v závěru semestru obhájí před asistentem.
5) Zkouška - je písemná a zahrnuje veškeré probrané učivo, včetně ověření schopnosti studentů své znalosti kreativním způsobem aplikovat.

Způsob a kritéria hodnocení

• Za čtyři dvouhodinová cvičení může student získat až 12 bodů (3 body za každé cvičení), za individuální domácí úlohu (ER diagram) lze získat až 12 bodů, za týmový projekt s obhajobou lze získat až 16 bodů a za závěrečnou zkoušku až 60 bodů.
• Pro získání zápočtu musí student v součtu ze cvičení, domácí úlohy a z projektu získat nejméně 18 bodů.
• Pokud bude odhaleno plagiátorství nebo nedovolená spolupráce na domácí úloze nebo projektu, zápočet nebude udělen a dále bude zváženo zahájení disciplinárního řízení.

Osnovy výuky

1. Softwarové inženýrství, základní problémy při vývoji softwaru, vodopádový model životního cyklu softwaru.
2. Analýza a specifikace požadavků, typy požadavků, techniky komunikace a modelování (diagram případů užití, diagram aktivit, stavový diagram).
3. Strukturovaná analýza a návrh, přehled metodik a modelovacích technik. Diagramy DFD a ERD.
4. Objektově orientovaná analýza a návrh, přehled metodik a modelovacích technik. Jazyk UML (Unified Modelling Language), diagramy tříd a objektů.
5. Modelovací prostředky jazyka UML - sekvenční diagram, diagram komunikace, jazyk OCL.
6. Komplexní modelování v UML.
7. Návrhové vzory.
8. Implementace a testování softwaru.
9. Provoz a údržba softwaru.
10. Lineární a iterativní modely životního cyklu softwaru, agilní metodiky vývoje softwaru.
11. Zajištění a hodnocení kvality softwaru, metriky a posuzování vlastností softwarového produktu.
12. Řízení softwarových projektů.
13. Management SW projektů, ochrana intelektuálního vlastnictví, etický kodex softwarového inženýra.

Učební cíle

Získat přehled v oblasti výstavby rozsáhlých softwarových systémů. Seznámit s procesem tvorby softwaru. Proces tvorby softwarového systému se analyzuje jako integrace vývoje systému, zabezpečení kvality softwaru a managementu softwarového projektu. Seznámit s etapami životního cyklu softwaru. Pozornost se věnuje všem etapám, zejména analýze a specifikaci požadavků a metodám návrhu softwaru. Naučit se používat základní modely UML a osvojit si metodiku modelování v UML.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

• Účast na přednáškách v tomto předmětu není kontrolována.
• Znalosti studentů jsou ověřovány na cvičeních, vypracováním domácí úlohy, a vypracováním a obhajobou týmového projektu a závěrečnou zkouškou.
• Body za cvičení jsou přidělovány na základě aktivní účasti. Chyba při řešení příkladu u tabule nebo nesprávná či neúplná odpověď na položenou otázku ke snížení bodového hodnocení cvičení nepovede (cílem cvičení je si látku procvičit, ne tlumit zájem studentů o procvičovanou problematiku hodnocením). Naopak neochota se zapojit do cvičení například řešením příkladu či diskuzí může vést k udělení menšího počtu bodů (nelze očekávat, že za dvě hodiny hraní her na notebooku nějaké body získáte).
• Pokud se student nemůže cvičení z vážného důvodu (například pro nemoc) zúčastnit a tento důvod doloží v souladu s Článkem 55 Studijního a zkušebního řádu VUT, může se cvičení se stejným tématem zúčastnit s jinou skupinou (na což dotyčného cvičícího upozorní) nebo, pokud to již není možné, požádá svého cvičícího, aby mu byly body za cvičení přiděleny podle bodů získaných za domácí úlohu (1. a 2. cvičení) nebo za projekt (3. a 4. cvičení).

Základní literatura

Beck, K.: Extrémní programování. Grada, Praha, 2002. ISBN 80-247-0300-9. (CS)
Page-Jones, M.: Základy objektově orientovaného návrhu v UML. Grada, 2001. ISBN 80-247-0210-X. (CS)
Paleta, P.: Co programátory ve škole neučí aneb Softwarové inženýrství v reálné praxi. Computer press, 2004. ISBN 80-251-0073-1. (CS)
Pezze, M., Young, M. Software Testing and Analysis: Process, Principles, and Techniques. John Wiley & Sons, 2007. ISBN 978-0-471-45593-6. (EN)
Richta, K., Sochor, J.: Softwarové inženýrství I. Vydavatelství ČVUT, Praha 1996 (dotisk 1998). ISBN: 80-01-01428-2. (CS)

Doporučená literatura

Arlow, J., Neustadt, I.: UML2 a unifikovaný proces vývoje aplikací. Computer Press, Brno, 2007. ISBN 978-80-251-1503-9. (CS)
Kočí, R., Křena, B.: Úvod do softwarového inženýrství. Studijní opora, Vysoké učení technické v Brně, 2010. (CS)
Křena, B., Kočí, R.: Zadání a vzorová řešení ER diagramů ze zkoušek. Sbírka úloh. VUT v Brně, 2016. (CS)
Objektově orientované modelování systémů - učební text : učební text zaměřený na jazyk UML 2.0. Vysoké učení technické v Brně, 2004. (CS)

Elearning

Zařazení předmětu ve studijních plánech

  • Program BAK-MIn bakalářský 1 ročník, zimní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

1. Softwarové inženýrství, základní problémy při vývoji softwaru, vodopádový model životního cyklu softwaru.
2. Analýza a specifikace požadavků, typy požadavků, techniky komunikace a modelování (diagram případů užití, diagram aktivit, stavový diagram).
3. Strukturovaná analýza a návrh, přehled metodik a modelovacích technik. Diagramy DFD a ERD.
4. Objektově orientovaná analýza a návrh, přehled metodik a modelovacích technik. Jazyk UML (Unified Modelling Language), diagramy tříd a objektů.
5. Modelovací prostředky jazyka UML - sekvenční diagram, diagram komunikace, jazyk OCL.
6. Komplexní modelování v UML.
7. Návrhové vzory.
8. Implementace a testování softwaru.
9. Provoz a údržba softwaru.
10. Lineární a iterativní modely životního cyklu softwaru, agilní metodiky vývoje softwaru.
11. Zajištění a hodnocení kvality softwaru, metriky a posuzování vlastností softwarového produktu.
12. Řízení softwarových projektů.
13. Management SW projektů, ochrana intelektuálního vlastnictví, etický kodex softwarového inženýra.

Cvičení

13 hod., povinná

Vyučující / Lektor

Osnova

1. Specifikace požadavků v UML - diagramy případů užití, diagramy aktivit a stavové diagramy (3. a 4. týden výuky, max. 3 body)
2. Datové modelování - ER diagramy (5. a 6. týden výuky, max. 3 body)
3. Analýza a návrh v UML - diagramy tříd a diagramy objektů (7. a 8. týden výuky, max. 3 body)
4. Analýza a návrh v UML - sekvenční diagramy a diagramy komunikace (9. a 10. týden výuky, max. 3 body)
*. Individuálně řešená domácí úloha - ER diagram (max. 12 bodů)
*. Týmově řešený komplexní model informačního systému (max. 16 bodů)

Elearning