Difference between revisions of "BSc: Software Architectures"

From IU
Jump to navigation Jump to search
(Created page with "= Software Architectures = * <span>'''Course name:'''</span> Software Architectures * <span>'''Course number:'''</span> XYZ * <span>'''Subject area:'''</span> Software Engine...")
 
 
(No difference)

Latest revision as of 10:18, 15 December 2022

Software Architectures

  • Course name: Software Architectures
  • Course number: XYZ
  • Subject area: Software Engineering

Course characteristics

Key concepts of the class

  • Introduction to software architecture
  • Steps to follow while working with software architecture
  • Key architectural patterns
  • How to describe software architecture?
  • UML as a language for the software architecture

What is the purpose of this course?

Software developers often follow architectural and design patterns informally without a deep understanding of the subject. This prevents the delivered software to work optimally and often to meet functional and nonfunctional requirements. The course provides a detailed understanding of software architectures and how they should be used by software developers and in the software engineering process.

Course Objectives Based on Bloom’s Taxonomy

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

  • Learn how to design high quality software meeting requirements
  • Learn how architectural issues can impact software design
  • key architectural patterns and their properties

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

  • Understand the principles and foundations of software architectures
  • Understanding architecture patterns and their use
  • Understand formal notations and specifications with related tools

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

  • Understand the task and select the proper architecture of the system
  • Use particular design tool to create and update architecture of the system

Course evaluation

Course grade breakdown
Proposed points
Labs/seminar classes 50 50
Interim performance assessment 25 25
Exams 25 25

If necessary, please indicate freely your course’s features in terms of students’ performance assessment:

Labs/seminar classes:

  • In-class participation 1 point for each individual contribution in a class but not more than 1 point a week (i.e. 14 points in total for 14 study weeks),
  • overall course contribution (to accumulate extra-class activities valuable to the course progress, e.g. a short presentation, book review, very active in-class participation, etc.) up to 6 points.

Interim performance assessment:

  • in-class tests up to 10 points for each test (i.e. up to 40 points in total for 2 theory and 2 practice tests),
  • computational practicum assignment up to 10 points for each task (i.e. up to 30 points for 3 tasks).

Exams:

  • mid-term exam up to 25 points,
  • final examination up to 25 points.

Overall score:

100 points (100%).

Grades range

Course grading range
Proposed range
A. Excellent 85-100 85-100
B. Good 75-84 75-84
C. Satisfactory 60-75 60-75
D. Poor 0-59 0-59

If necessary, please indicate freely your course’s grading features:

  • A: more than 85 of the overall score;
  • B: at least 85 of the overall score;
  • C: at least 75 of the overall score;
  • D: less than 60 of the overall score.

Resources and reference material

Textbook:

Reference material:

Course Sections

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

Course Sections
Section Section Title Lectures Seminars Self-study Knowledge
Number (hours) (labs) evaluation
1 Introduction to software architecture 12 6 12 2
2 Steps to follow while working with software architecture 8 4 8 1
3 Key architectural patterns 8 4 8 1
4 How to describe software architecture? 12 6 12 2
5 UML as the language for the software architecture 8 4 8 1
Final examination 2

Section 1

Section title:

Introduction to software architecture

Topics covered in this section:

  • Introducing Software Architecture
  • How to Become a Software Architect
  • Design Thinking Fundamentals

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 & 1
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. What is architecture? What is software architecture?
  2. What kind of decisions are to be taken based on software architecture?
  3. What is the place of the software architecture in the SDLC?

Typical questions for seminar classes (labs) within this section

  1. What activities are be taken by architects?
  2. Identify artefacts to be created after analysis stage
  3. Identify artefacts to be created after design stage
  4. Identify artefacts to be created after evaluation stage
  5. Identify artefacts to be created after evolution stage

Test questions for final assessment in this section

  1. What is requirements specification?
  2. What is design specification?
  3. What is the classification of specifications?

Section 2

Section title:

Steps to follow while working with software architecture

Topics covered in this section:

  • Devise a Design Strategy
  • Stakeholders
  • Requirements and architecture choice

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) & 0
Reports & 1
Essays & 0
Oral polls & 1
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. What are the responsibilities of software architects?
  2. What are the key principles of design thinking?
  3. What are the key elements of design mindset?

Typical questions for seminar classes (labs) within this section

  1. Transform customer requirements into requirements specification for the particular task
  2. Highlight how think-do-check cycle works in practice

Test questions for final assessment in this section

  1. Definition of quality attributes
  2. Definition of artifact and stimulus
  3. Definition of tactics

Section 3

Section title:

Key architectural patterns

Topics covered in this section:

  • Layers
  • Multi-Tier
  • Ports and Adaptors
  • Pipe and Filter
  • Publish-subscriber
  • Shared-data
  • Broker
  • Peer 2 peer
  • MVC
  • Client-Server
  • Master-Slave

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) & 0
Reports & 0
Essays & 0
Oral polls & 1
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. How architectural patterns are defined?
  2. Relations between problem-solution and pattern
  3. Why practice is important for patterns?

Typical questions for seminar classes (labs) within this section

  1. Identify the architectural pattern for the particular project
  2. Bud a task architecture following a particular pattern

Test questions for final assessment in this section

  1. What are the key elements of patterns studied?
  2. What are the relations between elements of patterns studied?
  3. What are the weaknesses of patterns studied?
  4. What are the strengths of patterns studied?

Section 4

Section title:

How to describe software architecture?

Topics covered in this section:

  • Architectural structures
  • Architectural perspectives
  • Architectural properties

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 & 0
Testing (written or computer based) & 1
Reports & 0
Essays & 0
Oral polls & 1
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. What are the key architectural structures?
  2. What are the key architectural perspectives?
  3. What is the meaning of the architectural view?

Typical questions for seminar classes (labs) within this section

  1. Describe the static perspective of the particular system
  2. Describe the dynamic perspective of the particular system
  3. Describe the physical perspective of the particular system

Test questions for final assessment in this section

  1. What are the differences between static, dynamic and physical perspectives?
  2. What is coupling, decoupling and cohesion ?
  3. What is redundancy? What approaches to resources are?
  4. How trade-off can be found?

Section 5

Section title:

UML as the language for the software architecture

Topics covered in this section:

  • Introduction to UML
  • The Use Case Diagram
  • The Class Diagram
  • Collaboration Diagrams
  • Sequence Diagram
  • State Diagrams
  • Package Diagrams
  • Component Diagrams
  • Deployment Diagrams

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 & 0
Testing (written or computer based) & 1
Reports & 0
Essays & 0
Oral polls & 1
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. What was the primary reason for UML creation?
  2. What other architectural languages exist?

Typical questions for seminar classes (labs) within this section

  1. Create The Use Case Diagram for the particular task
  2. Create The Class Diagram for the particular task
  3. Create Collaboration Diagram for the particular task
  4. Create Sequence Diagram for the particular task
  5. Create State Diagrams for the particular task
  6. Create Package Diagrams for the particular task
  7. Create Component Diagrams for the particular task
  8. Create Deployment Diagrams for the particular task

Test questions for final assessment in this section

  1. What are the key properties of the The Use Case Diagram diagram?
  2. What are the key properties of the The Class Diagram diagram?
  3. What are the key properties of the Collaboration Diagrams diagram?
  4. What are the key properties of the Sequence Diagram diagram?
  5. What are the key properties of the State Diagrams diagram?
  6. What are the key properties of the Package Diagrams diagram?
  7. What are the key properties of the Component Diagrams diagram?
  8. What are the key properties of the Deployment Diagrams diagram?