MSc: Architectures of Software Systems.previous version

From IU
Jump to navigation Jump to search

Architectures of Software Systems

  • Course name: Architectures of Software Systems
  • Course number: SE-02

Course characteristics

Key concepts of the class

  • Architectural styles and patterns
  • Tactics
  • Quality attribute scenario
  • Architectural documentation
  • Architecture tradeoff analysis method

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

What should a student remember at the end of the course?

By the end of the course, the students will remember:

  • 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.

What should a student be able to understand at the end of the course?

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.
  • 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

What should a student be able to apply at the end of the course?

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.

Evaluation

Course grade breakdown
Proposed points
Labs/seminar classes 20 20
Interim performance assessment 30 60
Exams 50 20

The students performance will be evaluated as follows:

  • RQs (30%)
  • Assignments (30%)
  • Tests (20%)
  • Project (20%)

Grades range

Course grading range
Proposed range
A. Excellent 90-100 90-100
B. Good 75-89 75-89
C. Satisfactory 60-74 60-74
D. Poor 0-59 0-59


Resources and reference material

  • 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.

Course Sections

The main sections of the course and approximate hour distribution between them is as follows:

Course Sections
Section Section Title Teaching Hours
1 Structures and Properties 6
2 Documenting Designs 4
3 Architecting for X 14
4 Styles and Patterns 22

Section 1

Section title:

Structures and Properties

Topics covered in this section:

  • Software architecture definition
  • Architectural drivers
  • Design structures

What forms of evaluation were used to test students’ performance in this section?

|a|c| & Yes/No
Development of individual parts of software product code & 0
Homework and group projects & 1
Midterm evaluation & 1
Testing (written or computer based) & 1
Reports & 0
Essays & 0
Oral polls & 0
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. What is a view and how is it different from a structure?
  2. What is “perspective” and how does it affect our analysis of structures?
  3. What are architectural drivers?
  4. What is system architecture?
  5. What is the role of architect?

Typical questions for seminar classes (labs) within this section

  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.
  2. Decompose given requirement according to quality attribute scenario.
  3. Explain the difference between enterprise, solution and system architect.

Section 2

Section title:

Documenting Designs

Topics covered in this section:

  • Architecture documentation views and perspectives
  • Documentation techniques
  • Notations for documentation

What forms of evaluation were used to test students’ performance in this section?

|a|c| & Yes/No
Development of individual parts of software product code & 0
Homework and group projects & 1
Midterm evaluation & 1
Testing (written or computer based) & 1
Reports & 0
Essays & 0
Oral polls & 0
Discussions & 0


Typical questions for ongoing performance evaluation within this section

  1. Is architectural documentation relevant for systems developed using agile methods or for systems whose architecture changes frequently?
  2. What perspectives are intended to be represented by each documentation style?
  3. Write the general structure of the OLS equation for one variable.
  4. What is a sequence diagram?
  5. What are the different interaction diagram notations does UML have?

Typical questions for seminar classes (labs) within this section

  1. Explain briefly how architectural documentation needs to be adapted to the context of agile development.
  2. 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?

Section 3

Section title:

Architecting for X

Topics covered in this section:

  • Architecting for Performance, Availability, Security
  • ADD technique
  • Guidance for the Architect
  • Architecture Evaluation
  • Architecture and Design

What forms of evaluation were used to test students’ performance in this section?

|a|c| & Yes/No
Development of individual parts of software product code & 1
Homework and group projects & 1
Midterm evaluation & 1
Testing (written or computer based) & 1
Reports & 0
Essays & 0
Oral polls & 0
Discussions & 0


Typical questions for ongoing performance evaluation within this section

  1. What is real-time scheduling and what are the key scheduling issues?
  2. What is the difference between model-based analysis and measurement-based analysis for analyzing reliability and availability?
  3. How does Least Privileges principle promote security in a system?
  4. what do you think is an important strength and weakness of the ATAM?
  5. What issues and observations can ACDM help design teams address?

Typical questions for seminar classes (labs) within this section

  1. What approach would you use to analyze the availability of a data server – why?
  2. How might promoting availability in a system impact change-oriented quality attributes
  3. Describe what a fault model is and what it’s used for.
  4. Give 3 possible response mechanisms once a fault has been detected.
  5. Describe the types of intrusion indicators.
  6. Contrasting ATAM with the Architecture Review Board process describe 3 differences between the two review processes

Section 3

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?

|a|c| & Yes/No
Development of individual parts of software product code & 1
Homework and group projects & 1
Midterm evaluation & 1
Testing (written or computer based) & 1
Reports & 0
Essays & 0
Oral polls & 0
Discussions & 0


Typical questions for ongoing performance evaluation within this section

  1. With respect to layered structures: (a) what are the elements and relations in a layered structure?
  2. 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?
  3. What is heterogeneity and what challenges does it present?
  4. What role does middleware play in managing and resolving heterogeneity?
  5. What are the key challenges in wireless sensor networks and cyber physical systems that are not experienced in large scale development?
  6. What is the basic structure of the Relational Database Model and what does this model hide?
  7. What is the difference between and analytical and operational database?
  8. What are the essential elements of the Blackboard Pattern?

Typical questions for seminar classes (labs) within this section

  1. Characterize the pipe-and-filter pattern in terms of perspective, topological arrangement/elements and relationships, semantics, qualities promoted and inhibited
  2. Using only call-return components and connectors, how could you mimic a pipe?
  3. Explain what middleware is, why we use it, and the general categories of middleware
  4. Describe what DDS is and summarize its unique strengths in comparison to similar middleware technologies.
  5. Describe a situation where an event-oriented pattern might be a better choice than call-return and why.
  6. Describe a situation where call-return pattern might be a better choice than event-oriented and why.
  7. What is a NoSQL database and describe the three general data representation models.
  8. Describe the functional role each element plays in the Blackboard pattern.

Test questions for final assessment in the course

  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?