Lecturer(s)
|
-
Melichar Petr, doc. Ing. MSc., Ph.D.
|
Course content
|
Lecture topics (this is not a week-by-week schedule): 1. Software process, its parts and special cases. Relation to system engineering and QA in software. 2. Software lifecycle models, their properties. Iterative software development - elements, methods, phases. Concrete methodologies - Scrum, RUP, V-model. 3. Principles of measurement in software engineering. Software development planning and management, project and iteration plan. Estimation, measurement, tracking and modifications of progress. 4. Project inception phase. Defining product vision and scope. Methods for requirements elicitation and documentation. Detailed requirements analysis and definition -- functional and non-functional, use cases and user stories, related models. 5. Software systems architecture -- elements, views, related models and documentation. Relationship between requirements and design. Architecture verification, executable architecture. 6. Software product construction discipline. Configuration management - terminology and concepts. Change management, version management, build management, related patterns and methods, tools. Relationship of configuration management and other sw system development disciplines. 7. Software product delivery, project closure. Activities during system deployment, maintenance and phase-out, DevOps. Related tools and IT governance processes. 8. Quality in software engineering. QA-related concepts and methods: metrics, verification and validation, reviews. QA systems and standards in software area (incl. CMMI, EN 50128, ISO 26262). 9. Ethics and professional conduct in software engineering. 10. Guest lecture (examples of concrete methodologies or methods in practice, case studies of sw system development, etc.)
|
Learning activities and teaching methods
|
Interactive lecture, Group discussion, Skills demonstration
- Contact hours
- 32 hours per semester
- Graduate study programme term essay (40-50)
- 10 hours per semester
- Team project (50/number of students)
- 90 hours per semester
- Preparation for an examination (30-60)
- 24 hours per semester
|
prerequisite |
---|
Knowledge |
---|
Have an overview knowledge of the UML notation, options of its use and diagram types, with more detailed knowledge of most commonly used parts. |
Explain the principles of database and web software applications. |
Explain key parts of a software system lifecycle, describe key methods and processes used during software system development. |
Understand the importance of quality in software and explain the methods for its assurance. |
popsat způsoby modelování a dokumentace software |
znát způsoby použití nástrojů pro efektivní tvorbu programového kódu |
Understand the importance and use of computer science in the society at large as well as in individual domains. |
The expected knowledge can be learned e.g. in the KIV/DB1, KIV/ZSWI and KIV/OKS courses. |
Skills |
---|
Be able to efficiently develop program code in at least one higher-level programming language, including the use of libraries, design patterns and development environments. |
Perform a given role in a team, with responsibility for a concrete part of a larger system. |
Work on and successfully finish an individual project according to a specification. |
Create human-understandable documentation of software products, including UML class and use-case diagrams. |
Test small and large software or information systems, find root causes of defects and perform steps for appropriate remedy |
utřídit, zpracovat a prezentovat získané informace písemnou i ústní formou v českém i anglickém jazyce; vytvořit dokumentaci k realizovanému dílu nebo jeho součásti |
The expected skills can be learned e.g. in the KIV/DB1, KIV/ZSWI and KIV/OKS courses. |
Competences |
---|
N/A |
Find, select, analyse and present information in written and oral form; create written documentation for a delivered work or its part |
learning outcomes |
---|
Knowledge |
---|
vysvětlit postupy plánování a řízení softwarových projektů, využití konkrétních meziproduktů, postupů a nástrojů pro tuto činnost. Diskutovat rozdílné druhy metodik vývoje (sekvenční, iterativní, agilní) a jejich vhodné použití v konkrétním kontextu |
vysvětlit různé způsoby popisu uživatelských požadavků na softwarový systém, návrhu jeho technického řešení a ověření kvality. Rozumět souvislostem s prostředím a oblastí působnosti zákazníka |
popsat a ilustrovat postupy a vzory pro řízení konfigurace během vývoje a údržby softwarového produktu, rozumět využití souvisejících nástrojů |
charakterizovat způsoby komunikace s různými rolemi souvisejícími s vývojem a provozem softwarových systémů |
rozumět principům měření software, popsat základní metriky produktové a procesní |
charakterizovat možnosti, podmínky a omezení využití poznatků informatiky v dalších oborech. Uvědomovat si význam a přínosy i negativní vlivy moderních informačních a komunikačních technologií na společnost |
charakterizovat vlastnosti programů a algoritmů |
Skills |
---|
sbírat, analyzovat, třídit a popisovat požadavky na softwarový systém s ohledem na business cíle zákazníka; prakticky aplikovat UML a dokumentaci (Vize, Specifikace požadavků) v tomto kontextu |
vhodně vybrat a použít metriky pro analýzu kvantitativních a kvalitativních charakteristik vyvíjeného produktu či vývojového postupu |
analyzovat a navrhnout varianty vhodného technologického řešení pro projektovaný systém a doporučit konkrétní volbu |
samostatně navrhovat nebo rozšiřovat rozsáhlé softwarové systémy s různými druhy architektur (samostatné, webové, servisně orientované). Vytvořit kvalitní dokumentaci k realizovanému dílu či návrhu architektury ještě projektovaného systému |
vhodně zvolit metodiku vedení projektu včetně potřebných technických prací a související podpůrné nástroje s ohledem na jeho kontext, sledovat postup projektu a reagovat na situace v jeho průběhu |
efektivně používat postupy a nástroje pro správu změn a správu verzí při vývoji software. Umět demonstrovat vývoj projektu na základě nasbíraných dat správy změn, včetně propojení správy změn a verzí |
analyzovat i nestandardní požadavky a situace a zpravidla navrhnout řešení postavené na netriviální modifikaci stávajících postupů a komponent |
komunikovat s lidmi jak z oblasti ICT tak z jiných oborů, a to jak partnery (členy týmu), tak i se zákazníky |
Competences |
---|
samostatně a odpovědně se na základě rámcového zadání rozhodují v souvislostech jen částečně známých. Dle rámcového zadání a přidělených zdrojů koordinují činnost týmu, nesou odpovědnost za jeho výsledky |
N/A |
teaching methods |
---|
Knowledge |
---|
Interactive lecture |
Skills demonstration |
Group discussion |
Self-study of literature |
Skills |
---|
Project-based instruction |
Group discussion |
Competences |
---|
Interactive lecture |
assessment methods |
---|
Knowledge |
---|
Continuous assessment |
Individual presentation at a seminar |
Combined exam |
Skills |
---|
Project |
Continuous assessment |
Competences |
---|
Combined exam |
Recommended literature
|
-
Ambler, S., Lines, M. Choose your WoW: A Disciplined Agile Delivery Handbook. Project Management Institute, 2020. ISBN 978-1628256505.
-
Berczuk, Stephen P.; Appleton, Brad. Software configuration management patterns : effective teamwork, practical integration. Boston : Addison-Wesley, 2003. ISBN 0-201-74117-2.
-
Cohn, Mike. Succeeding with agile : software development using Scrum. Upper Saddle River : Addison-Wesley, 2010. ISBN 978-0-321-57936-2.
-
Humble, Jez; Farley, David. Continuous delivery : reliable software releases through build, test, and deployment automation. 2011. ISBN 978-0-321-60191-9.
-
Karl Wiegers. Software requirements. 2003. ISBN 0-7356-1879-8.
-
Kroll, Per; Kruchten, Philippe. The Rational unified process made easy : a practitioner's guide to the RUP. Boston : Addison-Wesley, 2003. ISBN 0-321-16609-4.
-
Larman, Craig. Agile and iterative development : a manager's guide. Boston : Addison-Wesley, 2004. ISBN 0-13-111155-8.
|