|
Lecturer(s)
|
-
Veisheipl Jan, doc. Ing. MSc., Ph.D.
|
|
Course content
|
Topics covered (not as semester weeks): 1. Introduction to software modeling, types and roles of models. Software modularity principles. 2. Modeling for structured programming approaches (flowchards, data flow, models of data) and system design (UI/UX, SysML) 3. Object-oriented modeling, UML notation in detail 4. Techniques for structured and object-oriented program design, modeling tools 5. Design patterns (object-oriented: structural, behavioural and interaction, other: microservices, reactive systems) 6. Model quality and verification. Use of models in software development 7. API design and documentation
|
|
Learning activities and teaching methods
|
- Contact hours
- 36 hours per semester
- Preparation for an examination (30-60)
- 24 hours per semester
- Preparation for comprehensive test (10-40)
- 8 hours per semester
- Individual project (40)
- 36 hours per semester
|
| prerequisite |
|---|
| Knowledge |
|---|
| write computer programs in at least one higher-level language |
| understand basic techniques used in software development |
| Skills |
|---|
| use fundamental data structures and algoritms incl. library functions or classes (collections etc.) |
| develop a simple software application with a command line or graphical user interface |
| Competences |
|---|
| N/A |
| N/A |
| learning outcomes |
|---|
| Knowledge |
|---|
| correct design and decomposition of programs and small software systems |
| models and tools for modeling structure and behaviour of software systems, incl. UML |
| importance and use of models and specifications in software development |
| principles, importance and use of software design patterns |
| techniques of structured and object-oriented program design |
| Skills |
|---|
| use of models for the documentation of structure and behaviour of programs and software systems |
| design of software systems using correct decomposition and design patterns |
| working with tools for software design and modeling |
| Competences |
|---|
| N/A |
| N/A |
| teaching methods |
|---|
| Knowledge |
|---|
| Lecture |
| Lecture with visual aids |
| Practicum |
| Skills |
|---|
| Practicum |
| Task-based study method |
| Individual study |
| Competences |
|---|
| Lecture |
| Lecture with visual aids |
| Practicum |
| Individual study |
| assessment methods |
|---|
| Knowledge |
|---|
| Combined exam |
| Test |
| Skills |
|---|
| Combined exam |
| Individual semester work |
| Competences |
|---|
| Individual semester work |
| Combined exam |
|
Recommended literature
|
-
Gamma, Erich. Design patterns : elements of reusable object-oriented software. Boston : Addison-Wesley, 1995. ISBN 0-201-63361-2.
-
Gomaa, Hassan. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge Univeristy Press, 2011. ISBN 978-0521764148.
-
Larman, Craig. Applying UML and patterns : an introduction to object-oriented analysis and design and the Unified Process. Upper Saddle River : Prentice Hall PTR, 2002. ISBN 0-13-092569-1.
|