BSc:SoftwareArchitectures.old
Revision as of 13:56, 30 July 2021 by 10.90.136.11 (talk) (Created page with "= Software Architectures = * <span>'''Course name:'''</span> Software Architectures * <span>'''Course number:'''</span> XYZ * <span>'''Knowledge area:'''</span> Software Engi...")
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%)