
Software engineering
- Class 30
- Practice 30
- Independent work 90
Course title
Software engineering
Lecture type
Obligatory
Course code
23-11-525
Semester
5
ECTS
5
Lecturers and associates
Course overview
The aim of the module is to familiarize students with standard concepts and best practices in the business sector of software development and engineering.
This is a central module within the study program and introduces topics that are important for roles within a software development project team and introduces students to globally relevant methodology. By attending this module, students acquire organizational skills that are crucial for any software development project. Acquired skills significantly contribute to the professional development of students in related professional fields.
The module is taught in the programming language C
. The final evaluation is based on solving a series of small practical tasks using the given programming language and tools for software development.
Content
Students will learn:
• types of software development methods
• roles in agile or waterfall methodologies and related duties
• artifacts that should be created in the process of creating a successful software project
• organize the requirements and develop the specification of the software system
• create visual language diagrams for system modeling (UML)
• ways to use best practices in areas such as unit testing and core implementation patterns to promote a culture of software development.
Literature
1. Martin, R. (2008) Clean Code: A Handbook of Agile Software. Hoboken: Prentice Hall.
Additional reading
1. Sommerville, I. (2010) Software Engineering. 9th edn. London: Pearson.
Minimal learning outcomes
- Recommend and justify an appropriate software development method or project team structure with respect to project specifications.
- Recommend the use of appropriate agile methods and practices.
- Categorize given characteristics with respect to roles, ceremonies or artifacts within the chosen agile process.
- Develop a way to monitor software development based on the characteristics of a business organization or work group.
- Assess the scope of software releases as part of preliminary agile planning.
- Organize requirements and develop a software system specification.
- Create an appropriate System Modeling Visual Language (UML) diagram in a specific aspect of the software development process.
- Determine the scope of application of certain good practices in writing code (e.g., software development, agile architecture and agile testing).
Preferred learning outcomes
- Implement an appropriate software development method or project team structure with respect to project specifications.
- Use appropriate agile methods and practices.
- Apply given characteristics with respect to roles, ceremonies or artifacts within the chosen agile process.
- Monitor the software development based on the characteristics of a business organization or work group.
- Assess the scope of software releases as part of preliminary agile planning while refining tasks.
- Organize requirements, develop a software system specification and define tasks.
- Create an appropriate System Modeling Visual Language (UML) diagram in a specific aspect of a complex software development process.
- Apply good practices in writing code (e.g., software development, agile architecture and agile testing).