MSc: Architectures of Software Systems

From IU
Jump to navigation Jump to search

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