|
|
Main menu for Browse IS/STAG
Course info
KIV / SAR
:
Course description
Department/Unit / Abbreviation
|
KIV
/
SAR
|
Academic Year
|
2023/2024
|
Academic Year
|
2023/2024
|
Title
|
Software System Architectures
|
Form of course completion
|
Exam
|
Form of course completion
|
Exam
|
Accredited / Credits
|
Yes,
6
Cred.
|
Type of completion
|
Combined
|
Type of completion
|
Combined
|
Time requirements
|
Lecture
3
[Hours/Week]
Tutorial
2
[Hours/Week]
|
Course credit prior to examination
|
Yes
|
Course credit prior to examination
|
Yes
|
Automatic acceptance of credit before examination
|
No
|
Included in study average
|
YES
|
Language of instruction
|
Czech
|
Occ/max
|
|
|
|
Automatic acceptance of credit before examination
|
No
|
Summer semester
|
0 / -
|
0 / -
|
0 / -
|
Included in study average
|
YES
|
Winter semester
|
0 / -
|
0 / -
|
0 / -
|
Repeated registration
|
NO
|
Repeated registration
|
NO
|
Timetable
|
Yes
|
Semester taught
|
Winter semester
|
Semester taught
|
Winter semester
|
Minimum (B + C) students
|
20
|
Optional course |
Yes
|
Optional course
|
Yes
|
Language of instruction
|
Czech
|
Internship duration
|
0
|
No. of hours of on-premise lessons |
|
Evaluation scale |
1|2|3|4 |
Periodicity |
každý rok
|
Evaluation scale for credit before examination |
S|N |
Periodicita upřesnění |
|
Fundamental theoretical course |
No
|
Fundamental course |
No
|
Fundamental theoretical course |
No
|
Evaluation scale |
1|2|3|4 |
Evaluation scale for credit before examination |
S|N |
Substituted course
|
KIV/JET
|
Preclusive courses
|
KIV/SAR-E
|
Prerequisite courses
|
N/A
|
Informally recommended courses
|
KIV/PIA and KIV/ZSWI
|
Courses depending on this Course
|
KIV/SA
|
Histogram of students' grades over the years:
Graphic PNG
,
XLS
|
Course objectives:
|
The goal of the course is to teach students how to choose and efficiently use a software architecture suitable for the software system under construction, as well as how to analyse and understand the architectures of existing systems.
|
Requirements on student
|
Team project - 60% of grade
Current topic in software architectures - 10% of grade
Written+oral exam - 30% of grade
In case of a repeated registration for this course, an approval of its guarantor is required for credits earned previously to be accepted, due to continuous updates of course contents (see article 24.3 of Study and examination regulations of the UWB).
|
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.
|
Activities
|
|
Fields of study
|
|
Guarantors and lecturers
|
|
Literature
|
-
Basic:
Taylor; et al. Software Architecture: Foundations, Theory, and Practice. Wiley, 2009. ISBN 978-0470167748.
-
Recommended:
Gamma; et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. ISBN 978-0201633610.
-
Recommended:
Clements, Paul. Documenting Software Architectures: Views and Beyond. 2nd Edition. Addison-Wesley, 2010. ISBN 978-0321552686.
-
Recommended:
Fairbanks, George. Just Enough Software Architecture: A Risk-Driven Approach. Marshall and Brainerd, 2010. ISBN 978-0984618101.
-
Recommended:
Research and technology sources - journals IEEE TSE, IEEE Software; conferences ICSA, ICSE, etc.; portals InfoQ, DZone.,
-
Recommended:
Bass, Len; et al. Software Architecture in Practice. 3rd Edition. Addison-Wesley, 2012. ISBN 978-0321815736.
-
Recommended:
Gomaa, Hassan. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge Univeristy Press, 2011. ISBN 978-0521764148.
-
On-line library catalogues
|
Time requirements
|
All forms of study
|
Activities
|
Time requirements for activity [h]
|
Preparation for an examination (30-60)
|
20
|
Individual project (40)
|
20
|
Team project (50/number of students)
|
75
|
Contact hours
|
40
|
Presentation preparation (report) (1-10)
|
5
|
Total
|
160
|
|
Prerequisites
|
Knowledge - students are expected to possess the following knowledge before the course commences to finish it successfully: |
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 - students are expected to possess the following skills before the course commences to finish it successfully: |
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 - students are expected to possess the following competences before the course commences to finish it successfully: |
N/A |
N/A |
|
Learning outcomes
|
Knowledge - knowledge resulting from the course: |
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 - skills resulting from the course: |
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 - competences resulting from the course: |
N/A |
work as reliable members or leaders of small team of professionals, are able to adequately summarise the views of other team members |
|
Assessment methods
|
Knowledge - knowledge achieved by taking this course are verified by the following means: |
Combined exam |
Test |
Group presentation at a seminar |
Skills - skills achieved by taking this course are verified by the following means: |
Skills demonstration during practicum |
Individual presentation at a seminar |
Project |
Group presentation at a seminar |
Competences - competence achieved by taking this course are verified by the following means: |
Group presentation at a seminar |
Skills demonstration during practicum |
|
Teaching methods
|
Knowledge - the following training methods are used to achieve the required knowledge: |
Interactive lecture |
Lecture |
Lecture with visual aids |
Project-based instruction |
Self-study of literature |
Skills - the following training methods are used to achieve the required skills: |
Practicum |
Skills demonstration |
Individual study |
Task-based study method |
Competences - the following training methods are used to achieve the required competences: |
Interactive lecture |
|
|
|
|