Software Architectures

Printer-friendly version

6 ECTS credits
160 h study time

For all students in the 2nd semester at a (F) Master - specialised level.

Semester
2nd semester
Enrollment based on exam contract
Not possible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Enrollment Requirements
Following courses are mutually exclusive: 'Software architecturen' and 'Software architectures'
Taught in
English
Faculty
Faculty of Science and Bio-engineering Sciences
Responsible organization
Computer Science
Educational team
Carlos Noguera (course titular)
Activities and contact hours
26 contact hours Lecture
26 contact hours Seminar, Exercises or Practicals
Course Content
  • Introduction to Software Architecture
    • What is a Software Architecture
    • Revisiting Object-Oriented Analysis and Design
    • Quality properties of a Design
  • Architectural Styles
    • Motivation and Introduction
    • Overview of architectural styles
  • Advanced software development models and frameworks
    • Component based software development
    • Service Oriented Architectures
    • Aspect Oriented Software Development
    • Model Driven Architecture
    • Software Product Line
  • Source-code quality
    • Laws of Software Evolution
    • Aspects of Source-code Quality
    • Introduction to Source-code Metrics
    • Introduction to Software Visualizations
When concrete code examples are needed, the object-oriented language Java will be used. However, most of the material presented in this course is language independent.
Recommended Course material
Handbook: Software architecture in Practice, L. Bass, P. Clements, R. Kazman, Addison Wesley
Digital course material: Materiaal voor de oefeningen is beschikbaar op PointCarré
Digital course material: Cursusmateriaal is beschikbaar op PointCarré
Additional info

None.

Learning Outcomes
General Competencies

The primary objective of this course is to teach students how to approach software systems from an architectural point of view. By the end of the course, students should be able to:

  • identify the different stakeholders of a software development process
  • define software quality attributes
  • explain the different design patterns, architectural styles and advanced software development methods that were presented in the lectures
  • connect the use of design patterns, architectural styles and advanced software development methods to software quality attributes
  • recognize major patterns and architectural styles in existing software systems
  • generate reasonable architectural alternatives for a problem and choose among them
  • evaluate software development tools, frameworks and software components from an architectural perspective
  • explain the software metrics and visualisations covered in the course
  • use the information obtained by applying software metrics and visualizations to identify quality issues in a software system’s architecture
Grading

The final grade is composed based on the following categories:
Written Exam determines 50% of the final mark.
Practical Assignments determine 50% of the final mark.

Within the Written Exam category, the following assignments need to be completed:

  • Wrtitten theory exam which comprises 50% of the final mark.

Within the Practical Assignment category, the following assignments need to be completed:

  • Mandatory assignments which comprise 50% of the final mark.

Additional info w.r.t. grading

Mandatory assignments have to be submitted through PointCarre. The deadlines are strict.