DD2386 Patterns for Large-scale Development 7.5 credits

Mjukvarukonstruktion i större system

  • Education cycle

    Second cycle
  • Main field of study

    Computer Science and Engineering
    Information Technology
    Information and Communication Technology
  • Grading scale

    A, B, C, D, E, FX, F

At present this course is not scheduled to be offered.

Intended learning outcomes

After completion of the course, the student should be able to

  • identify the need of design patterns in development of new or in administration of existing code, and implement these, where appropriate
  • structure, from an object-oriented perspective, large programs so that they become easier to understand and manage
  • design and document public APIs with a clear responsibility
  • design entities so that they become testable and write tests for them
  • protect the internal design from the public APIs
  • develop a program in collaboration with other developers
  • review and reflect on program code
  • develop given program code

in order to

  • understand and master the parameters within software development that make program code sustainable, re-usable flexible to change of requirements.

Course main content

Design patterns: open-closed principle, single responsibility principle, inversion of control, strategy pattern, template pattern, adapter pattern, wrapper pattern, decorator pattern and builder pattern; unit - and system testing, dependency injection, global state, APIs, implementation leakages, documentation of components.


The course consists of a series of lab assignments, sprints, where new demads will be presented in each sprint. At the end, code review of code written by others should be performed.


For non-program students, 90 credits being required of which 45 credits have to be within mathematics or informatics. Furthermore English B or the equivalent is required .


Reading list is presented no later than 4 weeks before the start of the course on the course web.


  • PRO1 - project, 7.5, grading scale: A, B, C, D, E, FX, F

Offered by

EECS/Computer Science


Tomas Ekholm, tomase@kth.se


Tomas Ekholm <tomase@kth.se>

Supplementary information

The course will be replaced by DD2487 from 2017.


Course syllabus valid from: Autumn 2015.
Examination information valid from: Spring 2019.