Architecture and Design Patterns
Syllabus, Bachelor's level, 2IS226
- Code
- 2IS226
- Education cycle
- First cycle
- Main field(s) of study and in-depth level
- Software Engineering G1F
- Grading system
- Fail (U), Pass (G), Pass with distinction (VG)
- Finalised by
- The Department Board, 24 January 2019
- Responsible department
- Department of Informatics and Media
Entry requirements
30 credits in software engineering or the equivalent
Learning outcomes
Regarding knowledge and understanding be expected the students be able to on completion of the course:
- describe architecture models including their strengths and weaknesses,
- explain basic design principles in object-oriented programming,
- account for common design patterns including their possibilities and limitations,
- describe and exemplify how design patterns are linked to design principles.
Regarding skills and abilities the student is expected to be able to on completion of the course:
- briefly model IT systems based on architecture models,
- use design pattern to create object-oriented programmes that are simple to maintain and test.
Regarding judgement and approach the student is expected to be able to on completion of the course:
- evaluate system- and architectural design based on design principles.
Content
The course focuses on object-oriented design based on design principles and design patterns but also deals with software architecture. A design principle in software development describes at a high level how object-oriented programs that are easy to maintain and test can be developed. The course deals with design principles such as Single responsibility principle, Open-closed principle and Dependency inversion principle which are applied through commonly used design patterns such as State, Observer, and Factory Method. Design patterns are more concrete solutions for how common problems in object-oriented programming can be solved, by suggesting how classes and their relationships can be structured.
An architecture in software development describes at a high level how different subsystems are structured and related to each other and functions as a drawing when systems are developed, expanded or restructured. The course deals with various models of software architecture such as layered, event-driven and microservices including their strengths and weaknesses and when appropriate to use.
Instruction
The course is given in the form of lectures and laboratory sessions.
Assessment
The course is examined through written assignments and written exam.
If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the University's disability coordinator or a decision by the department's working group for study matters.