Skip to main content

Software Engineering and Modelling (5 cr)

Code: TE00BR84-3005

General information


Enrollment
01.06.2025 - 08.09.2025
Registration for introductions has not started yet.
Timing
08.09.2025 - 19.12.2025
The implementation has not yet started.
Number of ECTS credits allocated
5 cr
Local portion
5 cr
Mode of delivery
Contact learning
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
Finnish
English
Seats
0 - 60
Degree programmes
Degree Programme in Information and Communication Technology
Degree Programme in Business Information Technology
Degree Programme in Information and Communications Technology
Teachers
Tuomo Helo
Groups
PTIVIS23O
Software Engineering and Project Management
PTIETS23sepm
Software Engineering and Project Management
Course
TE00BR84
No reservations found for realization TE00BR84-3005!

Evaluation scale

H-5

Content scheduling

On this course, a software application is developed for the identified and collected functional and non-functional requirements. The course focuses especially on software architecture and how it relates to the different phases of the software development lifecycle.

Contents:

- Software development lifecycle
- Project management and its tools
- What is software architecture?
- Software architectural characteristics (information security, maintainability, portability,...) and their management
- Software architecture and the programming paradigms
- Software architecture styles
- Selecting software architecture style
- Modelling, documenting and communicating software architecture
- SOLID principles
- Modules and components
- Application Programming Interface (API) and its design
- Software design patterns
- Deploying software

10 personal exercises

Teamwork: A software project with a focus on practical software architecture. The teamwork starts on already on the second or the third week of the course.

Objective

After completing the course the student can:
Describe different software development methodologies and evaluate their feasibility to software projects
Describe software development project phases
Understand and draw UML diagrams
Understand the importance of specification and planning to software development
Work in different phases of a software project

Content

Software development project
Specification, planning, programming, testing, deployment, and maintenance of a software project
UML modelling

Materials

Study material: (There may be changes before the start of the course)

Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series) 1st Edition
by Robert Martin (Author)
2017

Fundamentals of Software Architecture: A Modern Engineering Approach
by Mark Richards and Neal Ford
2nd edition
2025

Other material to be announced during the course.

Teaching methods

- Reading literature and other learning materials
- Attending lectures
- Modeling
- Participating in programming group work: Extracting requirements in "customer meetings", planning, implementation, deployment
- Using appropriate tools

Exam schedules

No exam

Completion alternatives

The student can complete the course by demonstrating his knowledge and skills of the subjects of the course, for example with the work samples they have made. However, this must be agreed with the instructor during the first 4 weeks of the course.

The student can include a corresponding course taken elsewhere at some educational institution that is acceptable by our educational institution. This happens via AHOT process. Also this matter should be initiated immediately at the beginning of the course.

Student workload

31 h contact lessons (Including 4 demos)
4 h presenting and following team works
40 h preparing teamwork
60 h doing personal exercises

Evaluation methods and criteria

The maximum number of points available from course is 120.

Of that maximum, 50 points comes from 10 individual exercises, 50 points from teamwork, and 20 points from being present on the lectures.

The course evaluation scale is the following:

Min points -> Grade

0 -> 0
40 -> 1
56 -> 2
72 -> 3
88 -> 4
104 -> 5

Please note this additional condition: You must get at least 20 points from the exercises and 20 points from the teamwork to pass the course.

The points from being present are calculated using the following scale:

Percentage of being present on the theoretical and practical lectures, and on "customer meetings" -> points

20% -> 5
40% ->10
60%->15
80%->20

Please also note that by being present you can earn some of the points available from the individual exercises working together with the instructor.

You must be present in demonstrations and in the teamwork presentation event. The attendance in those events does not accumulate your points of being present. If you are not present in the demonstrations, then there is a reduction of 25 % in the points of your returned exercises on these demos. There is also a reduction of 25 % in points of the exercises that are returned late. Being absent of the teamwork presentation event causes a reduction of 25 % in the teamwork points. Presenting the teamwork late causes also a reduction of 25 % in the teamwork points. No exercises are accepted after the end date of the course implementation. After the end date of the course, no substitute or supplementary assignments will be given either. The student must therefore make sure that he collects enough points from different performances during the time of the course

Failed (0)

The student has not managed to accumulate enough points to pass the course during the time of the course. Consequently, they have not been able to demonstrate the kind of competence on the basis of which an acceptable grade could be given.

Assessment criteria, satisfactory (1-2)

The student knows the different phases of the software development lifecycle.
The student can manage a software project and somewhat use tools for it.
The student understands the goals and significance of software architecture.
The student is familiar with the key principles of software architecture.
The student is acquainted with architectural styles.
The student understands the relationships between the software development lifecycle and software architecture.
The student understands programming interfaces and can utilize them.
The student understands the principles and the importance of software modules and components.
The student knows some design patterns.
The student can apply to some extent the principles of software architecture in practice.
The student can interpret models and other documentation related to software architecture.
The student knows and also somewhat use tools suitable for improving and maintaining application architecture quality.

Assessment criteria, good (3-4)

The student masters the different phases of the software development lifecycle.
The student can manage a software project and use suitable tools for it.
The student understands the objectives and significance of software architecture.
The student is familiar with the principles of software architecture and can apply them in practice.
The student understands architectural styles and can apply them in practice.
The student has an understanding of the relationships between the software development lifecycle and software architecture.
The student is able to implement and test programming interfaces.
The student can design and implement software modules and components.
The student understands and can apply design patterns.
The student is able to implement applications with considered software architecture.
The student is able to create and read diagrams and other documentation related to software architecture.
The student knows how to prepare and deploy the application to production.
The student is ready to participate in software development projects.
The student can utilize tools to improve and maintain the quality of the software architecture.

Assessment criteria, excellent (5)

The student masters the different phases of the software development lifecycle.
The student can manage a software project and use suitable tools efficiently for it.
The student understands the objectives and significance of software architecture.
The student is familiar with the principles of software architecture and can apply them with critical evaluation in practice.
The student understands architectural styles and can apply them with critical evaluation in practice.
The student has a broad understanding of the relationships between the software development lifecycle and software architecture.
The student is able to implement and test high-quality programming interfaces.
The student can design and implement high-quality software modules and components.
The student understands and can apply design patterns.
The student is able to implement applications with high-quality software architecture.
The student is able to create and read diagrams and other documentation related to software architecture.
The student knows how to prepare and deploy the application to production.
The student is ready to participate in challenging software development projects.
The student can utilize a variety of tools to improve and maintain the quality of the software architecture.

Further information

Course communication takes place and material is shared in the ItsLearning learning environment.

Go back to top of page