The University of Southampton

COMP1216 Software Modelling and Design

Module Overview

This module aims to introduce students to the software engineering process, its tools, skills, and techniques, particularly modelling, validation, design and its mapping to code. The focus will be on a principled, object-oriented process from requirements modelling and analysis through code, with rolling case study and coursework examples developing the knowledge and skills.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

A1.  The software development process

A2.  Requirements elicitation and structuring

A3.  Requirements modelling in UML and set-theoretic notations, and their validation

A4.  The use of UML design notations

A5.  The relationship between models and implementations

A6.  Concepts of software architecture, design patterns and their applicability

A7.  Characteristics of appropriate APIs, Tools, IDEs

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.  Specify, analyse and organise requirements for a software product

B2.  Model, analyse and validate such software requirements using UML and set-theoretic notations

B3.  Apply appropriate UML design patterns and notations to the design of components of a product

B4.  Select and use appropriate APIs, Tools, IDEs in mapping these designs to code

Subject Specific Skills 

Having successfully completed the module, you will be able to:

C1.  Apply an appropriate software engineering process and tools to the task of structuring, modelling and validating requirements for a software product

C2.  Apply appropriate software engineering techniques and tools to the task of designing, testing and implementing code 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
  • From design to code
  • APIs, Tools, IDEs (e.g. version control, testing)

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Exam-70%
Small group requirements modelling/ analysis coursework-15%
Small group design-to-code coursework-15%

Referral Method: By examination

Share this module FacebookTwitterWeibo