Module code: COM1028

Module Overview

This module will provide an introduction to the principles of software engineering.  This will include an overview of the systems development lifecycle, agile methods and common approaches employed to develop software.  This will include aspects on requirements specification, design, implementation and testing.  Particular attention will be paid to the design of software, with the introduction of best practice guidelines, such as design patterns.  Throughout the module, software engineering methods will be put into practice, and Java programming skills will be consolidated.

Module provider

Computer Science

Module Leader

DASH Santanu (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 4

JACs code: I300

Module cap (Maximum number of students): N/A

Module Availability

Semester 2

Prerequisites / Co-requisites


Module content

The module is divided into the following areas:

Software Engineering:

Systems development lifecycle

Different methodologies

Comparative analysis


Capturing requirements

Formal software specification


From textual requirements specification to software design

Introducing design patterns such as Observer, Decorator, Iterator


Software and professional standards

IT regulation and compliance

Intellectual property rights


Configuration management



Testing stages

Testing types


Inheritance, Abstract Classes and Polymorphism

Exception handling

File Handling

Database connectivity

Basic threads

Assessment pattern

Assessment type Unit of assessment Weighting

Alternative Assessment


Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate ability to create well designed, implemented and tested software.


Thus, the summative assessment for this module consists of a two part coursework:

Part 1 consists of determining the requirement specifications and designing the solution of a chosen software project. The development will be done in stages so that you can experience each part of the lifecycle, broadly these will encompass the defining a requirements specification, a design, and the implementation with testing. This assignment consists of the software requirements specification and the high level design. You will be expected to use standards in writing your software requirements, and then to include in your design appropriate UML diagrams and descriptions. The deadline for submitting Part 1 of the coursework will be around week 7. This addresses LO1, LO3 and LO4.

Part 2 consists of providing a detailed design for your software, reflecting on the use of design patterns and other best practices. Once the design is complete you should then implement the software, write appropriate unit tests and then demonstrate that the requirements have been met. You will also be expected to write a short report to reflect upon the software development lifecycle. The deadline for Part 2 will be at the end of the semester. This addresses LO2, LO3 and LO4.

Both parts are individual. Both parts require coding which addresses LO5 and LO6.


Formative assessment and feedback

EVS handsets are used extensively in the lectures with each lecture consisting of a number of slides explaining the theory followed by a number of slides gauging the students’ understanding.

Students will also receive written feedback on both parts of the coursework.

Module aims

  • The aim of this module is to introduce students to software engineering and the systems development lifecycle.  Common approaches to software engineering will be experienced so that students can put development into a professional context. Software creation skills will be further practiced in this context.

Learning outcomes

Attributes Developed
001 Identify the different stages of the systems development lifecycle
002 Compare common software engineering techniques used within the lifecycle
003 Apply key approaches to the specification, design, implementation and testing of software
004 Apply basic design patterns in object-oriented design
005 Implement key aspects of object-oriented design using Java .6. Demonstrate application of good professional practices in software engineering.

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Overall student workload

Independent Study Hours: 95

Lecture Hours: 24

Laboratory Hours: 24

Methods of Teaching / Learning

44 contact hours in weeks 1-11, consisting of:

·         2 hours of lectures or tutorials per week

·         2 hours of compulsory labs per week, to support taught materials and the assignments


Tutorials or Drop-in surgery hours may also be run to provide additional assignment support.

Students will be expected to spend a minimum of 3 hours a week on self-study.

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list


Programmes this module appears in

Programme Semester Classification Qualifying conditions
Computer Science BSc (Hons)(CORE) 2 Core Each unit of assessment must be passed at 40% to pass the module
Computing and Information Technology BSc (Hons)(CORE) 2 Core Each unit of assessment must be passed at 40% to pass the module

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2020/1 academic year.