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
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
- Apply appropriate UML design patterns and notations to the design of components of a product
- Specify, analyse and organise requirements for a software product
- Select and use appropriate APIs and Tools in mapping these designs to code
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- The use of UML design notations
- The software development process
- Concepts of software architecture, design patterns and their applicability
- Requirements elicitation and structuring
- Requirements modelling in UML and set-theoretic notations, and their validation
- Characteristics of appropriate APIs, Tools, IDEs
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 |
Tutorial | 12 |
Follow-up work | 18 |
Preparation for scheduled sessions | 18 |
Wider reading or practice | 23 |
Total study time | 150 |
Resources & Reading list
Internet Resources
Textbooks
Sommerville I, (2011). Software Engineering. Pearson.
S. Bennett, J. Skelton, et al. (2011). Schaum's outline of UML. McGraw-Hill.
Unified Modeling Language.
Bernd Bruegge, Allen H. Dutoit (2013). Object-oriented Software Engineering Using UML, Patterns, and Java. Pearson.
Fowler M & Scott K (1997). UML Distilled. Addison-Wesley.
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