University of Surrey - Guildford

Registry > Module Catalogue
View Module List by A.O.U. and Level  Alphabetical Module Code List  Alphabetical Module Title List  Alphabetical Old Short Name List  View Menu 
2010/1 Module Catalogue
 Module Code: ENG3095 Module Title: SOFTWARE ENGINEERING
Module Provider: Mechanical, Medical & Aero Engineering Short Name: SE5301
Level: HE3 Module Co-ordinator: ROCKLIFF NJ Dr (M, M & A Eng)
Number of credits: 20 Number of ECTS credits: 10
Module Availability

Semester 1

Assessment Pattern

Unit(s) of Assessment
Weighting Towards Module Mark( %)
Continuous assessment
Qualifying Condition(s) 
A weighted aggregate mark of 40% is required to pass the module

Module Overview
Good software design and development requires careful specification, use of a systematic development process and an understanding of risks and testing procedures.
Completion of the progress requirements of Level HE2
Module Aims

To describe the different phases and supporting activities of the software development life cycle and to teach how they are related and can be integrated together.

Learning Outcomes

By the end of the module, students should:

  • Know the issues in the various phases of software life cycle.
  • Be able to apply the taught methodologies to draw software specifications, process models, design software parts.
  • Be able to advise on the software development activities for known physical problems.
Module Content

Basic definitions and terminology. Phases of software process. Attributes of a good software.


Software process models:
The waterfall model, evolutionary development, agile development, formal systems development, reuse-based development. Incremental development, spiral development.


Software specification: 
System and environment. Feasibility study. Requirements elicitation and analysis. Requirements specification. Functional and non-functional requirements, user requirements, system requirements. Requirements validation.


Design methods: 
Context models. Behavioural models. Data models. Object models – object oriented design. Real-time software design.


Software design and implementation: 
Architectural design. Abstract specification. Interface design. Component design. Data structure design. Algorithm design.


Programming and debugging


Software validation: 
Unit testing. Module testing. Sub-system testing. System testing. Acceptance testing.


Other activities: 
Software evolution. Software maintenance. Software cost estimation. Management planning. Project management, risk assessment.


Introduction to the UML: 
What is the UML?. Loops and jumps. Functions revisited. 
Coursework: Draw UML diagrams.


Basic behavioural modelling: Use case diagrams. Identifying use cases. Activity diagrams. 
Coursework: Bank case machine case study (use case/activity diagrams).


Advanced behavioural modelling: 
Sequence diagram. Communication diagrams. State machine diagrams. 
Coursework: Restaurant case study (sequence/communication diagrams).


Structural modelling: 
Basic class diagrams. Object diagrams. Advanced class diagrams. Coursework: Premier league case study (class/object diagrams).

User interface design: 
What is usability?. UI design in 12 easy steps. Testing usability. Coursework: Critique of Word’s user interface design.


Software testing: 
Principles of software testing. Verification. Validation. 
Coursework: Black-box and white-box testing.

Methods of Teaching/Learning

12 hrs of lectures, 24 hrs of tutorials, and 62 hrs of independent learning; 2 hour examination
The coursework will comprise a number of components for each of the two lecturers and will include in-class assessments and regular participation in class activities.
Total student learning time 100 hours.



Selected Texts/Journals

Required reading
Somerville I, Software Engineering, 8th ed, Pearson Education / Addison-Wesley. (ISBN 03212 10263)
Fowler M, UML Distilled, 3rd ed, Pearson Education / Addison-Wesley. (ISBN 03211 93687)

Last Updated

30th September 2010