Course Objectives
The aim of the course is to help the student to understand the basic theory of software engineering, and to apply sound theoretical principles to a group software development project.
After the course you should be able to:
- Perform background research and a feasibility study prior to embarking on a development project.
- Apply a well-defined software development model (e.g. RUP or Scrum) to a real-life project. This includes developing a project plan, and making a simple schedule and resource allocation model. You should be able to structure this information in a Project Planning Document (PPD)
- Know how and when to adapt or replace different lifecycle models, including user-centred development and iterative lifecycle models.
- Collect and analyse user requirements using a formalism such as UML, including business process modeling. You should be able to perform a simple risk assessment for a development project. You should be able to structure this information in a Software Requirements Specification (SRS).
- Identify and apply appropriate software architectures and patterns to carry out high level design of a system. You should be able to critically compare alternative choices. You should be able to add this information to a Software Requirements Specification (SRS).
- Work in a team to implement a project plan, by developing detailed designs and code. You should have experience and/or awareness of testing problems.