Module overview
This module aims to introduce students to the software engineering process, its tools, skills, and techniques, particularly modelling, validation and design. The focus will be on a principled, object-oriented process from requirements modelling and analysis through design, with rolling case study and coursework examples developing the knowledge and skills.
Linked modules
Pre-requisites: COMP1202 AND COMP1215
Aims and Objectives
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Concepts of software architecture, design patterns and their applicability
- The use of UML design notations
- Characteristics of appropriate APIs, Tools, IDEs
- Requirements modelling in UML and set-theoretic notations, and their validation
- Requirements elicitation and structuring
- The software development process
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Model, analyse and validate such software requirements using UML and set-theoretic notations
- Specify, analyse and organise requirements for a software product
- Apply appropriate UML design patterns and notations to the design of components of a product
- Select and use appropriate APIs and Tools in mapping these designs to code
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Apply an appropriate software engineering process and tools to the task of structuring, modelling and validating requirements for a software product
- Apply appropriate software engineering techniques and tools from a suitable requirements model
Syllabus
- From problems (requirements) to solutions (programs): process
- Software process models, e.g. waterfall, agile
- Requirements elicitation, modelling, analysis and validation
- Structuring narrative requirements
- Structure: class diagrams, state: state machines
- Modelling, analysis and validation with UML and Event-B
- Use of tools for analysis and validation of models
- Modelling and analysis case studies
- UML design notations: use cases, scenarios: sequence diagrams
- Design patterns, generics
- Architecture
- APIs, Tools
Learning and Teaching
Type | Hours |
---|---|
Completion of assessment task | 43 |
Lecture | 36 |
Preparation for scheduled sessions | 18 |
Tutorial | 12 |
Wider reading or practice | 23 |
Follow-up work | 18 |
Total study time | 150 |
Resources & Reading list
Internet Resources
Textbooks
Unified Modeling Language.
Bernd Bruegge, Allen H. Dutoit (2013). Object-oriented Software Engineering Using UML, Patterns, and Java. Pearson.
S. Bennett, J. Skelton, et al. (2011). Schaum's outline of UML. McGraw-Hill.
Fowler M & Scott K (1997). UML Distilled. Addison-Wesley.
Sommerville I, (2011). Software Engineering. Pearson.
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Final Assessment | 70% |
Continuous Assessment | 30% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat Information
Repeat type: Internal & External