Learning objectives:
After completing the module, students will have acquired the skills to work on a modern software development project. They understand the importance and necessity of software engineering and how the various techniques from the OOAD module interact in a project. In addition, students can apply basic techniques and methods (e.g. requirements analysis, architecture design, inspection and test procedures) for the various phases. Current process models can be compared and evaluated.
In addition, they learn methods of technical project management (e.g. quality, testing, configuration and risk management procedures) from the perspective of the software developer. Graduates of the module are able to work independently in a project in different project roles and apply the current procedures.
Course content:
Fundamentals of software engineering (classification and terminology)
Methods and techniques of the software life cycle:
- Requirements analysis (e.g. requirements specification, functional and non-functional requirements, content and linguistic analysis, effort estimation, prioritization)
- Architecture and design (e.g. architectural styles, view model, design patterns, frameworks, interfaces)
- Implementation (programming guidelines)
- Testing (e.g. testing and test procedures, test strategies)
- Current procedure and process models (agile and classic)
- Technical management, such as
- Software metrics
- Configuration and build management
- test management
- Continuous integration
- risk management
- change management
- Application of a selection of the techniques in the internship.