MSc: Architectures of Software Systems
Architectures of Software Systems
- Course name: Architectures of Software Systems
- Code discipline: SE-02
- Subject area:
Short Description
This course covers the following concepts: Architectural styles and patterns; Tactics; Quality attribute scenario; Architectural documentation; Architecture tradeoff analysis method.
Prerequisites
Prerequisite subjects
Prerequisite topics
Course Topics
Section | Topics within the section |
---|---|
Structures and Properties |
|
Documenting Designs |
|
Architecting for X |
|
Styles and Patterns |
|
Intended Learning Outcomes (ILOs)
What is the main purpose of this course?
Modern software systems are complex and their development require a deep knowledge of how to control the growing complexity starting from correct choices in the architectural design. The Course is a reflection on the comprehensive approach to modern software architectural design to stimulate the SW engineers sensitivity to the robustness and the resilience of the applications. Software engineering and software architecture concepts will be deconstructed and reconstructed considering well-known and innovative approaches used in the real world to manufacture software solutions through lectures and practical activities. The students will develop real applications on the subject of project courses assigned to different competing teams. Individual contributions will be evaluated as well as the participation in teamwork.
ILOs defined at three levels
Level 1: What concepts should a student know/remember/explain?
By the end of the course, the students should be able to ...
- A number of architectural patterns.
- Quality attributes and tactics to promote them.
- Different perspectives for documenting software architecture.
- Module, component-and-connector and allocation categories of styles.
Level 2: What basic practical skills should a student be able to perform?
By the end of the course, the students should be able to ...
- Dataflow architectural style, patterns belonging to this style, their properties, qualities promoted and inhibited.
- Call-return architectural style, patterns belonging to this style, their properties, qualities promoted and inhibited.
- EVent-based architectural style, patterns belonging to this style, their properties, qualities promoted and inhibited.
- Data-centered architectural style, patterns belonging to this style, their properties, qualities promoted and inhibited.
- Architecture evaluation techniques such as ATAM and ARB
- Static, dynamic and physical perspectives of architecture documentation
Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?
By the end of the course, the students should be able to ...
- Perform quality attribute scenario analysis.
- Derive architectural drivers from the given requirements and constraints.
- Perform attribute driven architecture design.
- Recognize different architectural patterns.
- Read and design UML diagrams.
Grading
Course grading range
Grade | Range | Description of performance |
---|---|---|
A. Excellent | 90-100 | - |
B. Good | 75-89 | - |
C. Satisfactory | 60-74 | - |
D. Poor | 0-59 | - |
Course activities and grading breakdown
Activity Type | Percentage of the overall course grade |
---|---|
Labs/seminar classes | 20 |
Interim performance assessment | 60 |
Exams | 20 |
Recommendations for students on how to succeed in the course
Resources, literature and reference materials
Open access resources
- David Garlan, Felix Bachmann, James Ivers, Judith Stafford, Len Bass, Paul Clements, and Paulo Merson. 2010. Documenting Software Architectures: Views and Beyond (2nd ed.). Addison-Wesley Professional.
- Anthony J. Lattanze. 2008. Architecting Software Intensive Systems: A Practitioners Guide (1st ed.). Auerbach Publications, Boston, MA, USA.
- Len Bass, Paul Clements, and Rick Kazman. 2012. Software Architecture in Practice (3rd ed.). Addison-Wesley Professional.
Closed access resources
Software and tools used within the course
Teaching Methodology: Methods, techniques, & activities
Activities and Teaching Methods
Learning Activities | Section 1 | Section 2 | Section 3 | Section 4 |
---|---|---|---|---|
Homework and group projects | 1 | 1 | 1 | 1 |
Midterm evaluation | 1 | 1 | 1 | 1 |
Testing (written or computer based) | 1 | 1 | 1 | 1 |
Discussions | 1 | 0 | 0 | 0 |
Development of individual parts of software product code | 0 | 0 | 1 | 1 |
Formative Assessment and Course Activities
Ongoing performance assessment
Section 1
Activity Type | Content | Is Graded? |
---|---|---|
Question | What is a view and how is it different from a structure? | 1 |
Question | What is “perspective” and how does it affect our analysis of structures? | 1 |
Question | What are architectural drivers? | 1 |
Question | What is system architecture? | 1 |
Question | What is the role of architect? | 1 |
Question | Given the following requirement: “The system shall have the capability to detect software faults and automatically restart the corresponding component.” Are there potential problems with this requirement - does this seem like a reasonable requirement or not? If not, describe the problems that with this requirement. | 0 |
Question | Decompose given requirement according to quality attribute scenario. | 0 |
Question | Explain the difference between enterprise, solution and system architect. | 0 |
Section 2
Activity Type | Content | Is Graded? |
---|---|---|
Question | Is architectural documentation relevant for systems developed using agile methods or for systems whose architecture changes frequently? | 1 |
Question | What perspectives are intended to be represented by each documentation style? | 1 |
Question | Write the general structure of the OLS equation for one variable. | 1 |
Question | What is a sequence diagram? | 1 |
Question | What are the different interaction diagram notations does UML have? | 1 |
Question | Explain briefly how architectural documentation needs to be adapted to the context of agile development. | 0 |
Question | List three kinds of stakeholders and identify specifically the kind of information they would need to extract from the document. What kind of views would likely contain this information? | 0 |
Section 3
Activity Type | Content | Is Graded? |
---|---|---|
Question | What is real-time scheduling and what are the key scheduling issues? | 1 |
Question | What is the difference between model-based analysis and measurement-based analysis for analyzing reliability and availability? | 1 |
Question | How does Least Privileges principle promote security in a system? | 1 |
Question | what do you think is an important strength and weakness of the ATAM? | 1 |
Question | What issues and observations can ACDM help design teams address? | 1 |
Question | What approach would you use to analyze the availability of a data server – why? | 0 |
Question | How might promoting availability in a system impact change-oriented quality attributes | 0 |
Question | Describe what a fault model is and what it’s used for. | 0 |
Question | Give 3 possible response mechanisms once a fault has been detected. | 0 |
Question | Describe the types of intrusion indicators. | 0 |
Question | Contrasting ATAM with the Architecture Review Board process describe 3 differences between the two review processes | 0 |
Section 4
Activity Type | Content | Is Graded? |
---|---|---|
Question | With respect to layered structures: (a) what are the elements and relations in a layered structure? | 1 |
Question | Under what conditions would client server provide better performance than a 3-tiered system and conversely, under what conditions would a 3-tiered system provide better performance than client server? | 1 |
Question | What is heterogeneity and what challenges does it present? | 1 |
Question | What role does middleware play in managing and resolving heterogeneity? | 1 |
Question | What are the key challenges in wireless sensor networks and cyber physical systems that are not experienced in large scale development? | 1 |
Question | What is the basic structure of the Relational Database Model and what does this model hide? | 1 |
Question | What is the difference between and analytical and operational database? | 1 |
Question | What are the essential elements of the Blackboard Pattern? | 1 |
Question | Characterize the pipe-and-filter pattern in terms of perspective, topological arrangement/elements and relationships, semantics, qualities promoted and inhibited | 0 |
Question | Using only call-return components and connectors, how could you mimic a pipe? | 0 |
Question | Explain what middleware is, why we use it, and the general categories of middleware | 0 |
Question | Describe what DDS is and summarize its unique strengths in comparison to similar middleware technologies. | 0 |
Question | Describe a situation where an event-oriented pattern might be a better choice than call-return and why. | 0 |
Question | Describe a situation where call-return pattern might be a better choice than event-oriented and why. | 0 |
Question | What is a NoSQL database and describe the three general data representation models. | 0 |
Question | Describe the functional role each element plays in the Blackboard pattern. | 0 |
Final assessment
Section 1
Section 2
Section 3
Section 4
- Is it possible to get rid off from FR and describe the system by Quality Attributes and Constraints only?
- You got all the required information from stakeholders about the business goals that system should achieve and impact of each of them (business goals) to the system (system’s architecture). Is it true that you have everything for preparing list of ASRs?
- What groups participated in ATAM are external to the project?
- What are the perspectives Call-Return patterns might be depicted from?
- Which role in ATAM (Architecture Tradeoff Analysis Method) is best described as follows: Sets up the evaluation; establishes evaluation contract; forms evaluation team; sees that final report is produced and delivered
- What pattern is more appropriate in developing a system that changed, added or removed process data?
- In six part Quality Attribute Scenario, what part can be described as "a condition that requires a response when it arrives at a system"?
- What is Software Architecture?
- To which category of security tactics Ignore Faulty Behavior belongs?
- What quality attribute does Single Access Point pattern promote?
- What is the right sequence of steps for implementing ADD?
- Which patterns belong to the Dataflow style?
- What quality attribute (according to the ISO/IEC 25010 quality model) is disrupted by a successful denial of service attack?
- What is Component-and-Connector View is used for?
The retake exam
Section 1
Section 2
Section 3
Section 4