Course: Software System Architectures

« Back
Course title Software System Architectures
Course code KIV/SAR
Organizational form of instruction Lecture + Tutorial
Level of course Master
Year of study not specified
Semester Winter
Number of ECTS credits 6
Language of instruction Czech
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Mouček Roman, Doc. Ing. Ph.D.
Course content
1.The notion and role of software architecture, its relationship to qualitative characteristics of software systems. 2.Foundational principles: Software modularity, information hiding, open/closed principle and the notion of contract. The importance of module interface, notion of software components. Examples of realization in monolithic, modular, component-based technologies. Module reusability and design for reuse. 3. Module dependencies, principles of dependency lookup and injection. Examples of concrete technological realizations. 4. Relationships and communication among modules, their abstraction and the notion of connector. Types of connectors with respect to module communication and integration, examples of technological realizations. 5. Architectural styles (N-ties, stream/pipe, blackboard, monolithical, service-oriented, cloud), examples of uses. 6. Details on N-tier and service-oriented architectures and technologies. Product lines, architecture-level software variability. 7. Means of architecture documentation ? UML, ADLs (Architecture Description Languages), views and viewpoints, ad-hoc notations and diagrams. API documentation. Standards in the area of software architectures. 8. Architecture in software development lifecycle. Elicitation and analysis of architecture-related requirements, role of architecture in software design and quality assurance, its importance for system integration, operation and maintentance. Different approaches to architecture in sequential, risk-driven, agile methodologies. Role of the software architect. 9. Software development methods and tools related to architecture (configuration management, quality assurance, project management). QA for software architectures, load testing etc, the notion of executable architecture. 10. Architectural analysis, metrics and qualitative characteristics of software architectures. Methods and tools for analysis, measurement and visualization of architectures. Selecting architecture with respect to software/system purpose, design tradeoffs. 11. Model-driven software development, MDA. Purpose and use of models, the PIM and PSM levels. 12. Hosted lecture ? examples from practice / related technologies / current research.

Learning activities and teaching methods
Interactive lecture, Project-based instruction, Skills demonstration, Task-based study method, Individual study, Self-study of literature, Lecture, Lecture with visual aids, Practicum
  • Preparation for an examination (30-60) - 20 hours per semester
  • Individual project (40) - 20 hours per semester
  • Presentation preparation (report) (1-10) - 5 hours per semester
  • Contact hours - 40 hours per semester
  • Team project (50/number of students) - 75 hours per semester
prerequisite
Knowledge
understand the principles of object-oriented programming
be well versed in the principles of web applications design and implementation
understand the principles of software application architecture
be well-versed in the basics of UML
describe fundamental approaches to software development
Skills
develop software applications in an object-oriented language (e.g. C++ / Java / .NET)
develop web applications using appropriate technologies (e.g. Spring MVC, .NET WPF)
use basic design patterns (e.g. MVC, MVVM) when developing modern applications
evaluate and use an appropriate software development process
Competences
N/A
N/A
learning outcomes
Knowledge
describe various types of software system architectures and understand their differences
understand the principles of modularity and information hiding
describe and interpret software architectural designs using graphical notations, esp. UML
explain the criteria of suitability and quality of large software system architecture
explain the approaches to understand large software applications and analyse their properties
Skills
understand the architecture of large software systems
create an architectural design for a large software system, using models with graphical notations
assess the quality and suitability of architectural design for a large software system
use suitable technologies when developing large software applications
actively use modern technologies and tools when developing large software systems
Competences
N/A
work as reliable members or leaders of small team of professionals, are able to adequately summarise the views of other team members
teaching methods
Knowledge
Lecture
Lecture with visual aids
Interactive lecture
Project-based instruction
Self-study of literature
Skills
Practicum
Skills demonstration
Individual study
Task-based study method
Competences
Interactive lecture
assessment methods
Knowledge
Test
Combined exam
Group presentation at a seminar
Skills
Skills demonstration during practicum
Individual presentation at a seminar
Project
Group presentation at a seminar
Competences
Group presentation at a seminar
Skills demonstration during practicum
Recommended literature
  • Bass, Len; et al. Software Architecture in Practice. 3rd Edition. Addison-Wesley, 2012. ISBN 978-0321815736.
  • Clements, Paul. Documenting Software Architectures: Views and Beyond. 2nd Edition. Addison-Wesley, 2010. ISBN 978-0321552686.
  • Fairbanks, George. Just Enough Software Architecture: A Risk-Driven Approach. Marshall and Brainerd, 2010. ISBN 978-0984618101.
  • Gamma; et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. ISBN 978-0201633610.
  • Gomaa, Hassan. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge Univeristy Press, 2011. ISBN 978-0521764148.
  • Taylor; et al. Software Architecture: Foundations, Theory, and Practice. Wiley, 2009. ISBN 978-0470167748.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester