Difference between revisions of "MSc: Architectures of Software Systems"

From IU
Jump to navigation Jump to search
 
Line 1: Line 1:
  +
 
= Architectures of Software Systems =
 
= Architectures of Software Systems =
  +
* '''Course name''': Architectures of Software Systems
  +
* '''Code discipline''': SE-02
  +
* '''Subject area''':
   
  +
== Short Description ==
* <span>'''Course name:'''</span> Architectures of Software Systems
 
  +
This course covers the following concepts: Architectural styles and patterns; Tactics; Quality attribute scenario; Architectural documentation; Architecture tradeoff analysis method.
* <span>'''Course number:'''</span> SE-02
 
   
== Course characteristics ==
+
== Prerequisites ==
   
=== Key concepts of the class ===
+
=== Prerequisite subjects ===
   
* Architectural styles and patterns
 
* Tactics
 
* Quality attribute scenario
 
* Architectural documentation
 
* Architecture tradeoff analysis method
 
   
  +
=== Prerequisite topics ===
=== What is the 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.
 
   
== Course Objectives Based on Bloom’s Taxonomy ==
+
== Course Topics ==
  +
{| class="wikitable"
  +
|+ Course Sections and Topics
  +
|-
  +
! Section !! Topics within the section
  +
|-
  +
| Structures and Properties ||
  +
# Software architecture definition
  +
# Architectural drivers
  +
# Design structures
  +
|-
  +
| Documenting Designs ||
  +
# Architecture documentation views and perspectives
  +
# Documentation techniques
  +
# Notations for documentation
  +
|-
  +
| Architecting for X ||
  +
# Architecting for Performance, Availability, Security
  +
# ADD technique
  +
# Guidance for the Architect
  +
# Architecture Evaluation
  +
# Architecture and Design
  +
|-
  +
| Styles and Patterns ||
  +
# Dataflow Styles
  +
# Call-Return Styles
  +
# Client-Server and Tiered Architectures
  +
# Middleware
  +
# Event Styles
  +
# Data-centered styles
  +
|}
  +
== Intended Learning Outcomes (ILOs) ==
   
=== What should a student remember at the end of the course? ===
+
=== 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 ===
By the end of the course, the students will remember:
 
   
  +
==== 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.
 
* A number of architectural patterns.
 
* Quality attributes and tactics to promote them.
 
* Quality attributes and tactics to promote them.
Line 29: Line 61:
 
* Module, component-and-connector and allocation categories of styles.
 
* Module, component-and-connector and allocation categories of styles.
   
=== What should a student be able to understand at the end of the course? ===
+
==== 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 ...
 
By the end of the course, the students should be able to describe and explain (with examples)
 
 
 
* Dataflow architectural style, patterns belonging to this style, their properties, qualities promoted and inhibited.
 
* 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.
 
* Call-return architectural style, patterns belonging to this style, their properties, qualities promoted and inhibited.
Line 40: Line 70:
 
* Static, dynamic and physical perspectives of architecture documentation
 
* Static, dynamic and physical perspectives of architecture documentation
   
=== What should a student be able to apply at the end of the course? ===
+
==== 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 ...
 
By the end of the course, the students should be able to
 
 
 
* Perform quality attribute scenario analysis.
 
* Perform quality attribute scenario analysis.
 
* Derive architectural drivers from the given requirements and constraints.
 
* Derive architectural drivers from the given requirements and constraints.
 
* Perform attribute driven architecture design.
 
* Perform attribute driven architecture design.
 
* Recognize different architectural patterns.
 
* Recognize different architectural patterns.
* Read and design UML diagrams.
+
* Read and design UML diagrams.
  +
== Grading ==
   
  +
=== Course grading range ===
== Evaluation ==
 
  +
{| class="wikitable"
 
{|
+
|+
|+ Course grade breakdown
 
!
 
!
 
!align="center"| '''Proposed points'''
 
 
|-
 
|-
  +
! Grade !! Range !! Description of performance
| Labs/seminar classes
 
| 20
 
|align="center"| 20
 
 
|-
 
|-
  +
| A. Excellent || 90-100 || -
| Interim performance assessment
 
| 30
 
|align="center"| 60
 
 
|-
 
|-
  +
| B. Good || 75-89 || -
| Exams
 
| 50
+
|-
  +
| C. Satisfactory || 60-74 || -
|align="center"| 20
 
  +
|-
  +
| D. Poor || 0-59 || -
 
|}
 
|}
   
  +
=== Course activities and grading breakdown ===
The students performance will be evaluated as follows:
 
  +
{| class="wikitable"
 
  +
|+
* RQs (30%)
 
* Assignments (30%)
 
* Tests (20%)
 
* Project (20%)
 
 
=== Grades range ===
 
 
<div id="tab:ModelsCourseGradingRange">
 
 
{|
 
|+ Course grading range
 
!
 
!
 
!align="center"| '''Proposed range'''
 
 
|-
 
|-
  +
! Activity Type !! Percentage of the overall course grade
| A. Excellent
 
| 90-100
 
|align="center"| 90-100
 
 
|-
 
|-
  +
| Labs/seminar classes || 20
| B. Good
 
| 75-89
 
|align="center"| 75-89
 
 
|-
 
|-
  +
| Interim performance assessment || 60
| C. Satisfactory
 
| 60-74
 
|align="center"| 60-74
 
 
|-
 
|-
| D. Poor
+
| Exams || 20
| 0-59
 
|align="center"| 0-59
 
 
|}
 
|}
   
  +
=== Recommendations for students on how to succeed in the course ===
   
</div>
 
=== Resources and reference material ===
 
   
  +
== 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.
 
* 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.
 
* 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.
 
* Len Bass, Paul Clements, and Rick Kazman. 2012. Software Architecture in Practice (3rd ed.). Addison-Wesley Professional.
   
== Course Sections ==
+
=== Closed access resources ===
   
The main sections of the course and approximate hour distribution between them is as follows:
 
   
  +
=== Software and tools used within the course ===
{|
 
  +
|+ Course Sections
 
  +
= Teaching Methodology: Methods, techniques, & activities =
!align="center"| '''Section'''
 
  +
! '''Section Title'''
 
!align="center"| '''Teaching Hours'''
+
== Activities and Teaching Methods ==
  +
{| class="wikitable"
  +
|+ Activities within each section
 
|-
 
|-
  +
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4
|align="center"| 1
 
| Structures and Properties
 
|align="center"| 6
 
 
|-
 
|-
  +
| Homework and group projects || 1 || 1 || 1 || 1
|align="center"| 2
 
| Documenting Designs
 
|align="center"| 4
 
 
|-
 
|-
  +
| Midterm evaluation || 1 || 1 || 1 || 1
|align="center"| 3
 
| Architecting for X
 
|align="center"| 14
 
 
|-
 
|-
  +
| Testing (written or computer based) || 1 || 1 || 1 || 1
|align="center"| 4
 
  +
|-
| Styles and Patterns
 
  +
| Discussions || 1 || 0 || 0 || 0
|align="center"| 22
 
|}
+
|-
  +
| Development of individual parts of software product code || 0 || 0 || 1 || 1
  +
|}
  +
== Formative Assessment and Course Activities ==
   
=== Section 1 ===
+
=== Ongoing performance assessment ===
   
==== Section title: ====
+
==== Section 1 ====
  +
{| class="wikitable"
 
  +
|+
Structures and Properties
 
  +
|-
 
  +
! Activity Type !! Content !! Is Graded?
=== Topics covered in this section: ===
 
  +
|-
 
  +
| Question || What is a view and how is it different from a structure? || 1
* Software architecture definition
 
  +
|-
* Architectural drivers
 
  +
| Question || What is “perspective” and how does it affect our analysis of structures? || 1
* Design structures
 
  +
|-
 
  +
| Question || What are architectural drivers? || 1
=== What forms of evaluation were used to test students’ performance in this section? ===
 
  +
|-
 
  +
| Question || What is system architecture? || 1
<div class="tabular">
 
  +
|-
 
  +
| Question || What is the role of architect? || 1
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
  +
|-
Development of individual parts of software product code &amp; 0<br />
 
  +
| 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
Homework and group projects &amp; 1<br />
 
  +
|-
Midterm evaluation &amp; 1<br />
 
  +
| Question || Decompose given requirement according to quality attribute scenario. || 0
Testing (written or computer based) &amp; 1<br />
 
  +
|-
Reports &amp; 0<br />
 
  +
| Question || Explain the difference between enterprise, solution and system architect. || 0
Essays &amp; 0<br />
 
  +
|}
Oral polls &amp; 0<br />
 
  +
==== Section 2 ====
Discussions &amp; 1<br />
 
  +
{| class="wikitable"
 
  +
|+
 
  +
|-
 
  +
! Activity Type !! Content !! Is Graded?
</div>
 
  +
|-
=== Typical questions for ongoing performance evaluation within this section ===
 
  +
| Question || Is architectural documentation relevant for systems developed using agile methods or for systems whose architecture changes frequently? || 1
 
  +
|-
# What is a view and how is it different from a structure?
 
  +
| Question || What perspectives are intended to be represented by each documentation style? || 1
# What is “perspective” and how does it affect our analysis of structures?
 
  +
|-
# What are architectural drivers?
 
  +
| Question || Write the general structure of the OLS equation for one variable. || 1
# What is system architecture?
 
  +
|-
# What is the role of architect?
 
  +
| Question || What is a sequence diagram? || 1
 
  +
|-
=== Typical questions for seminar classes (labs) within this section ===
 
  +
| Question || What are the different interaction diagram notations does UML have? || 1
 
  +
|-
# 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.
 
  +
| Question || Explain briefly how architectural documentation needs to be adapted to the context of agile development. || 0
# Decompose given requirement according to quality attribute scenario.
 
  +
|-
# Explain the difference between enterprise, solution and system architect.
 
  +
| 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 2 ===
 
  +
==== Section 3 ====
 
  +
{| class="wikitable"
==== Section title: ====
 
  +
|+
 
  +
|-
Documenting Designs
 
  +
! Activity Type !! Content !! Is Graded?
 
  +
|-
=== Topics covered in this section: ===
 
  +
| Question || What is real-time scheduling and what are the key scheduling issues? || 1
 
  +
|-
* Architecture documentation views and perspectives
 
  +
| Question || What is the difference between model-based analysis and measurement-based analysis for analyzing reliability and availability? || 1
* Documentation techniques
 
  +
|-
* Notations for documentation
 
  +
| Question || How does Least Privileges principle promote security in a system? || 1
 
  +
|-
=== What forms of evaluation were used to test students’ performance in this section? ===
 
  +
| Question || what do you think is an important strength and weakness of the ATAM? || 1
 
  +
|-
<div class="tabular">
 
  +
| Question || What issues and observations can ACDM help design teams address? || 1
 
  +
|-
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
  +
| Question || What approach would you use to analyze the availability of a data server – why? || 0
Development of individual parts of software product code &amp; 0<br />
 
  +
|-
Homework and group projects &amp; 1<br />
 
  +
| Question || How might promoting availability in a system impact change-oriented quality attributes || 0
Midterm evaluation &amp; 1<br />
 
  +
|-
Testing (written or computer based) &amp; 1<br />
 
  +
| Question || Describe what a fault model is and what it’s used for. || 0
Reports &amp; 0<br />
 
  +
|-
Essays &amp; 0<br />
 
  +
| Question || Give 3 possible response mechanisms once a fault has been detected. || 0
Oral polls &amp; 0<br />
 
  +
|-
Discussions &amp; 0<br />
 
  +
| 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
 
  +
|}
</div>
 
  +
==== Section 4 ====
=== Typical questions for ongoing performance evaluation within this section ===
 
  +
{| class="wikitable"
 
  +
|+
# Is architectural documentation relevant for systems developed using agile methods or for systems whose architecture changes frequently?
 
  +
|-
# What perspectives are intended to be represented by each documentation style?
 
  +
! Activity Type !! Content !! Is Graded?
# Write the general structure of the OLS equation for one variable.
 
  +
|-
# What is a sequence diagram?
 
  +
| Question || With respect to layered structures: (a) what are the elements and relations in a layered structure? || 1
# What are the different interaction diagram notations does UML have?
 
  +
|-
 
  +
| 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
=== Typical questions for seminar classes (labs) within this section ===
 
  +
|-
 
  +
| Question || What is heterogeneity and what challenges does it present? || 1
# Explain briefly how architectural documentation needs to be adapted to the context of agile development.
 
  +
|-
# 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?
 
  +
| Question || What role does middleware play in managing and resolving heterogeneity? || 1
 
  +
|-
=== Section 3 ===
 
  +
| Question || What are the key challenges in wireless sensor networks and cyber physical systems that are not experienced in large scale development? || 1
 
  +
|-
==== Section title: ====
 
  +
| Question || What is the basic structure of the Relational Database Model and what does this model hide? || 1
 
  +
|-
Architecting for X
 
  +
| Question || What is the difference between and analytical and operational database? || 1
 
  +
|-
==== Topics covered in this section: ====
 
  +
| Question || What are the essential elements of the Blackboard Pattern? || 1
 
  +
|-
* Architecting for Performance, Availability, Security
 
  +
| Question || Characterize the pipe-and-filter pattern in terms of perspective, topological arrangement/elements and relationships, semantics, qualities promoted and inhibited || 0
* ADD technique
 
  +
|-
* Guidance for the Architect
 
  +
| Question || Using only call-return components and connectors, how could you mimic a pipe? || 0
* Architecture Evaluation
 
  +
|-
* Architecture and Design
 
  +
| Question || Explain what middleware is, why we use it, and the general categories of middleware || 0
 
  +
|-
=== What forms of evaluation were used to test students’ performance in this section? ===
 
  +
| Question || Describe what DDS is and summarize its unique strengths in comparison to similar middleware technologies. || 0
 
  +
|-
<div class="tabular">
 
  +
| Question || Describe a situation where an event-oriented pattern might be a better choice than call-return and why. || 0
 
  +
|-
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
  +
| Question || Describe a situation where call-return pattern might be a better choice than event-oriented and why. || 0
Development of individual parts of software product code &amp; 1<br />
 
  +
|-
Homework and group projects &amp; 1<br />
 
  +
| Question || What is a NoSQL database and describe the three general data representation models. || 0
Midterm evaluation &amp; 1<br />
 
  +
|-
Testing (written or computer based) &amp; 1<br />
 
  +
| Question || Describe the functional role each element plays in the Blackboard pattern. || 0
Reports &amp; 0<br />
 
  +
|}
Essays &amp; 0<br />
 
  +
=== Final assessment ===
Oral polls &amp; 0<br />
 
  +
'''Section 1'''
Discussions &amp; 0<br />
 
 
 
 
</div>
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# What is real-time scheduling and what are the key scheduling issues?
 
# What is the difference between model-based analysis and measurement-based analysis for analyzing reliability and availability?
 
# How does Least Privileges principle promote security in a system?
 
# what do you think is an important strength and weakness of the ATAM?
 
# What issues and observations can ACDM help design teams address?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# What approach would you use to analyze the availability of a data server – why?
 
# How might promoting availability in a system impact change-oriented quality attributes
 
# Describe what a fault model is and what it’s used for.
 
# Give 3 possible response mechanisms once a fault has been detected.
 
# Describe the types of intrusion indicators.
 
# Contrasting ATAM with the Architecture Review Board process describe 3 differences between the two review processes
 
 
=== Section 4 ===
 
 
==== Section title: ====
 
 
Styles and Patterns
 
 
==== Topics covered in this section: ====
 
 
* Dataflow Styles
 
* Call-Return Styles
 
* Client-Server and Tiered Architectures
 
* Middleware
 
* Event Styles
 
* Data-centered styles
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
<div class="tabular">
 
 
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
Development of individual parts of software product code &amp; 1<br />
 
Homework and group projects &amp; 1<br />
 
Midterm evaluation &amp; 1<br />
 
Testing (written or computer based) &amp; 1<br />
 
Reports &amp; 0<br />
 
Essays &amp; 0<br />
 
Oral polls &amp; 0<br />
 
Discussions &amp; 0<br />
 
 
 
 
</div>
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# With respect to layered structures: (a) what are the elements and relations in a layered structure?
 
# 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?
 
# What is heterogeneity and what challenges does it present?
 
# What role does middleware play in managing and resolving heterogeneity?
 
# What are the key challenges in wireless sensor networks and cyber physical systems that are not experienced in large scale development?
 
# What is the basic structure of the Relational Database Model and what does this model hide?
 
# What is the difference between and analytical and operational database?
 
# What are the essential elements of the Blackboard Pattern?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
   
  +
'''Section 2'''
# Characterize the pipe-and-filter pattern in terms of perspective, topological arrangement/elements and relationships, semantics, qualities promoted and inhibited
 
# Using only call-return components and connectors, how could you mimic a pipe?
 
# Explain what middleware is, why we use it, and the general categories of middleware
 
# Describe what DDS is and summarize its unique strengths in comparison to similar middleware technologies.
 
# Describe a situation where an event-oriented pattern might be a better choice than call-return and why.
 
# Describe a situation where call-return pattern might be a better choice than event-oriented and why.
 
# What is a NoSQL database and describe the three general data representation models.
 
# Describe the functional role each element plays in the Blackboard pattern.
 
   
  +
'''Section 3'''
=== Test questions for final assessment in the course ===
 
   
  +
'''Section 4'''
 
# Is it possible to get rid off from FR and describe the system by Quality Attributes and Constraints only?
 
# 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?
 
# 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?
Line 335: Line 266:
 
# 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
 
# 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?
 
# 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 &quot;a condition that requires a response when it arrives at a system&quot;?
+
# 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?
 
# What is Software Architecture?
 
# To which category of security tactics Ignore Faulty Behavior belongs?
 
# To which category of security tactics Ignore Faulty Behavior belongs?
Line 343: Line 274:
 
# What quality attribute (according to the ISO/IEC 25010 quality model) is disrupted by a successful denial of service attack?
 
# 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?
 
# What is Component-and-Connector View is used for?
  +
  +
=== The retake exam ===
  +
'''Section 1'''
  +
  +
'''Section 2'''
  +
  +
'''Section 3'''
  +
  +
'''Section 4'''

Latest revision as of 12:02, 29 August 2022

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

Course Sections and Topics
Section Topics within the section
Structures and Properties
  1. Software architecture definition
  2. Architectural drivers
  3. Design structures
Documenting Designs
  1. Architecture documentation views and perspectives
  2. Documentation techniques
  3. Notations for documentation
Architecting for X
  1. Architecting for Performance, Availability, Security
  2. ADD technique
  3. Guidance for the Architect
  4. Architecture Evaluation
  5. Architecture and Design
Styles and Patterns
  1. Dataflow Styles
  2. Call-Return Styles
  3. Client-Server and Tiered Architectures
  4. Middleware
  5. Event Styles
  6. Data-centered styles

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

Activities within each section
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

  1. Is it possible to get rid off from FR and describe the system by Quality Attributes and Constraints only?
  2. 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?
  3. What groups participated in ATAM are external to the project?
  4. What are the perspectives Call-Return patterns might be depicted from?
  5. 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
  6. What pattern is more appropriate in developing a system that changed, added or removed process data?
  7. In six part Quality Attribute Scenario, what part can be described as "a condition that requires a response when it arrives at a system"?
  8. What is Software Architecture?
  9. To which category of security tactics Ignore Faulty Behavior belongs?
  10. What quality attribute does Single Access Point pattern promote?
  11. What is the right sequence of steps for implementing ADD?
  12. Which patterns belong to the Dataflow style?
  13. What quality attribute (according to the ISO/IEC 25010 quality model) is disrupted by a successful denial of service attack?
  14. What is Component-and-Connector View is used for?

The retake exam

Section 1

Section 2

Section 3

Section 4