BSc:SoftwareArchitectures.old

From IU
Jump to navigation Jump to search

Software Architectures

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

Administrative details

  • Faculty: Computer Science and Engineering
  • Year of instruction: 4th year of BS
  • Semester of instruction: 1st semester
  • No. of Credits: 4 ECTS
  • Total workload on average: 144 hours overall
  • Class lecture hours: 2 per week
  • Class tutorial hours: 2 per week
  • Lab hours: 2 per week
  • Individual lab hours: 0
  • Frequency: weekly throughout the semester
  • Grading mode: letters: A, B, C, D

Prerequisites

  • Introduction to Programming I
  • Introduction to Programming II
  • Data Modelling and database
  • Operating Systems
  • Computer Architecture

Course outline

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 design pattern and how they should be used by software developers and in the software engineering process.

Expected learning outcomes

  • Understand the principles and foundations of software architectures
  • Understanding design patterns and their use
  • Develop high quality software meeting requirements
  • Realizing how architectural issues can impact software design
  • Understanding formal notations and specifications with related tools

Expected acquired core competences

  • System design
  • Requirements elicitation
  • Organization of software systems
  • Use of design patterns
  • Fluency with formal notations and supporting tools

Detailed topics covered in the course

The topics below are presented with the granularity of at most the academic hour of instruction. For each topic it is specified if it an Introduction to the topic, a Deep explanation, or a Review of a subject already covered in another course.

  • Software Design and development
  • Software Process
  • Component-based
  • Monolithic application
  • Layered
  • Pipes and filters
  • Shared memory
  • Database-centric
  • Blackboard
  • Rule-based
  • Messaging
  • Event-driven
  • Publish-subscribe
  • Asynchronous messaging
  • Introduction to design pattern
  • Creational patterns
  • Structural patterns
  • Behavioral patterns
  • Concurrency patterns
  • Formal specification languages
  • Tool for formal specification

Textbook

Reference material

  • Slides will be provided during the course

Required computer resources

Students are required to have laptops.

Evaluation

  • Mid-term exam (30%)
  • Final exam (40%)
  • Project (30%)