Architecture and Design Patterns

7.5 credits

Syllabus, Bachelor's level, 2IS226

A revised version of the syllabus is available.
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.

FOLLOW UPPSALA UNIVERSITY ON

facebook
instagram
twitter
youtube
linkedin