Skip to main content

Software Architectures and Design (5 cr)

Code: 5G00GC06-3001

General information


Enrolment period
08.06.2025 - 30.08.2025
Registration for the implementation has begun.
Timing
25.08.2025 - 21.12.2025
The implementation has not yet started.
Credits
5 cr
Mode of delivery
Contact learning
Unit
Software Engineering
Campus
TAMK Main Campus
Teaching languages
English
Degree programmes
Bachelor's Degree Programme in Software Engineering
Teachers
Hanna Haataja
Petteri Jekunen
Person in charge
Petteri Jekunen
Groups
23I260EA
Degree Programme in Software Engineering
Course
5G00GC06

Objectives (course unit)

Student understands the overall flow of software design from low level design to high end overall software architecture design. Student is aware of criteria for choosing between different architecture models and may compare the benefits and trade-offs of different solutions. Student knows how to model and document software design and architecture. Student has skills to implement the overall structure for most common software design and architecture style solutions with a modern programming language. Student understands the role of software design and architecture design as part of the overall software development life cycle.

Content (course unit)

Common design patterns. Software architecture styles, principles, and requirements. Software design and architecture modelling in practise. Software design and architecture implementation in practice.

Assessment criteria, satisfactory (1-2) (course unit)

The student knows some design patterns. The student knows some software architecture styles, principles and requirements. The student can use software design and architecture modelling in practise with guidance. The student can use software design and architecture implementation in practice with guidance.

Assessment criteria, good (3-4) (course unit)

The student knows the most common design patterns. The student knows the most common software architecture styles, principles and requirements. The student can use software design and architecture modelling in practise. The student can use a software design and architecture implementation in practice.

Assessment criteria, excellent (5) (course unit)

The student knows comprehensively common design patterns. The student knows comprehensively software architecture styles, principles and requirements. The student can exploit independently software design and architecture modelling in practise. The student can conduct different software design and architecture implementations in practice.

Location and time

As scheduled in the course calendar.

Exam schedules

TBA during the course.

Assessment methods and criteria

Grading of the course is a weighted average of
- Tasks
- Attendance
- Exams or
- Final project work

Max 100 points. Min points for the grades:
5 - 90
4 - 74
3 - 58
2 - 41
1 - 25

Assessment scale

0-5

Teaching methods

Course contains
* frontal teaching: lecturing, demos
* individual self study exercises as home work
* reviews and feedback sessions
* group work
* discussions
* presentations / peer teaching

Larger project will (preferably group work) will be undertaken as last exercise in the course to summarize the contents of the course.

Students are encouraged to give feedback during the course and in the end. Anonymous feedback forum available in Moodle.

Learning materials

Teaching materials are listed in the Moodle space of the course. Materials will be available online including potential recordings from the lessons (contact lessons not recorded however). Official course books are available via Tuni library resources.
Course books for this implementation:
* Fundamentals of Software Architecture by Mark Richards, Neal Ford
* Head First Design Patterns, 2nd Edition by Eric Freeman, Elisabeth Robson
* Additional extra materials in Moodle.

Student workload

One credit point equals to 27h of work resulting to total of estimated 135 hours work for this course.

Contact learning sessions will be concentrated on introducing the topics, discussions, feedback and reviews.
Majority of work will be conducted as self learning either individually or in groups.

Content scheduling

Introduction to SW Engineering Processes
Software Design
Software Architecture

Completion alternatives

Undertaking working life related or other personal IT-projects related to course content can be used to compensate some or all tasks and activities in the course. Presenting the results for the class recommended in this case.

Practical training and working life cooperation

Course materials contains information based on working life visits in the course. This year's visitors will be announced during the course.

International connections

n/a

Further information

This course is part of the overall art of software engineering covered in series of courses. Students are recommended to have enough substance courses completed before taking this course. To understand this course as a part of the overall software development practice requires also taking courses from sw requirements and software project areas.

Go back to top of page