COMPGC22 - Software Engineering
This database contains 2016-17 versions of the syllabuses. For current versions please see here.
|Year||MScCS and FC|
|Prerequisites||Successful completion of COMPGC02|
|Taught By||Graham Roberts (100%)|
This module covers a range of Software Engineering (SE) material, following on from that introduced in COMPGC02. The emphasis is on the knowledge needed to be able to model, design, implement and evaluate larger software systems effectively.
The content starts with development lifecycle models, such as agile development, and then continues to cover requirements specification, the Unified Modelling Language (UML), software architecture, object-oriented analysis and design, design patterns and testing.
Software engineering is an inherently practical subject and applying the concepts being taught is a vital component of developing expertise in this area. Consequently students undertake a substantial group project, working through a number of stages of the development of a larger software application. Students will be supervised, but will be expected to largely organize themselves and their work, learning key transferrable skills in management and organisation.
After completing the course attendees will be able to:
Topics covered in lectures during the first half of term:
Software Engineering Principles
Overview of the software engineering discipline
Software lifecycle models
The Unified Process (UP)Organising development projects
Documenting requirements, user stories, use cases and scenarios
Introduction to UML
Review of object-oriented principles
UML use case, class, sequence, activity, state, component and deployment diagrams.
The Analysis and Design Process
User story realisation
Separation of concerns
Object-Oriented design practices
Project groups are formed during the first week of term, with the early stages of the project running concurrently with the lectures given during the first half of term. The second half of the term is then dedicated to the group project work.
Group formation: Students are split into project groups with around 4-7 members, each group having a supervisor who acts as the client and also provides support and guidance. Project groups are selected by the module organiser, and each group is allocated a project specification to work with. Each project specification gives an outline of an application with a graphical user interface (GUI) to be developed. Project groups are responsible for organising themselves, meeting their supervisor regularly to receive advice and feedback. A group diary should be kept to record the progress of the group, including the minutes of meetings held.
Group deliverables: A group report documents the results of the project, focusing on requirements, design, and UML modelling. The group additionally creates a video, lasting around 10 minutes, explaining what their project was about, what were the challenges and giving an overview of the design created. A mock-up of the application user interface is also created to illustrate what the application look likes when being used.
Individual deliverable: Each student is required to submit an individual report giving a) an assessment of the structure, organisation and progress of the project group, b) an assessment of the project results and the effectiveness of the group as a whole, c) an evaluation of each group member, d) an evaluation of their own role, including a summary of what they contributed.
Method of Instruction:
Lecture presentations and online material. Group project tutorials and group working.
The course has the following assessment components:
- Coursework- 100% (Group Project Report (50%), Group Video (10%),Individual Report (40%).
To pass this module, a student must:
- Obtain an overall pass mark of 50% for all sections combined
The recommended text is:
UML and the Unified Process - Jim Arlow, Ila Neustadt. Addison Wesley. 2nd Edition, 2005
A UCL Library reading list and further material can be found on Moodle.