CS3051: Software Engineering
This module is offered in 2016-17.
Aims
- To define software engineering and consider aspects of well engineered systems.
- To introduce planning and design strategies for programming in the large.
- To study issues involved in designing, maintaining or evolving systems.
- To introduce good software development practices.
- To give students experience of working in agile development teams.
Learning Outcomes
On successful completion of this module, the student should:
- Understand the foundations of software engineering.
- Have knowledge and understanding of various methods of professional software development.
- Have practical experience with a selection of software engineering methods.
- Have practical experience of working in agile development teams.
Syllabus
- Professional software development; key concerns in software development; process models and methods; software requirements; requirements specification; requirements elicitation; system design and modelling with UML; system architecture; software testing; agile development techniques; test-driven development; extreme programming; scrum development; team working project.
Compulsory Elements
This module has the following compulsory elements in addition to those common to all modules (mark of 4 in each assessment component):
- Attend all guest lectures.
- Attend and participate in Scrum demo session.
Module Delivery
- [Adam Barker][5]