DM571/DM889: Software Engineering
Welcome to this course on the topic of Software Engineering. This is where you will find the weekly notes, assignments, project(s), exam questions, etc.
Go to Weekly Notes

Expected Learning Outcome
The learning objective of the course is that the student demonstrates the ability to:
- Describe in detail the core activities of the software development process
- Describe and discuss process models, and perform substantiated choices between these
- Describe tools and modeling formalisms from the course
- Describe and discuss software patterns and other architectural structures, and perform substantiated choices between these
- Apply knowledge and methods from the course in concrete settings in programming projects
- Discuss the influence and impact of software on humans, organizations, and society, including ethical issues

Content in the course
The following main topics are contained in the course:
- The core activities of the software development process: user requirements, design, implementation, documentation, test, deployment, maintenance
- Process models, traditional and agile (with a focus on the latter)
- Software design patterns and other structural/architectural issues
- Tools and modeling formalisms
- Software in context: user interfaces, IT and organizations, IT and society, ethics