Software Engineering - CO510

Location Term Level Credits (ECTS) Current Convenor 2018-19
Canterbury Autumn and Spring
View Timetable
5 30 (15) MR D Barnes


CO334, CO320 and C0520 (or equivalent) are pre-requisites.





13. A synopsis of the curriculum Phase 1 – theory and tools:
• Introduction to basic design principles of systems;
• Software process - concepts & implementation:
o life cycle models (from Extreme Programming to CMM);
o definition, model, measurement, analysis, improvement of software and team (organization) process;
• Requirements elicitation, analysis and specification;
• Introduction to modelling principles (decomposition, abstraction, generalization, projection/views), and types of models (information, behavioural, structural, domain, and functional);
• Basic UML: uses cases, classes, sequence and collaboration diagrams;
• Risk & risk management in software:
o risk management: identification, analysis and prioritization
o software risks: project, process and product
o development methods for reducing risk
• Training in handling electrical components commonly encountered in computing systems and safe working practices.
• Software management: project estimation and metrics, software and process quality assurance, documentation and revision control;
• Introduction to project management;
• Software engineering tools: configuration control (e.g. SVN, GIT, etc.), project management (e.g Trac), integrated development environments (e.g. Eclipse, NetBeans, etc.), and a UML tool (e.g. IBM Rational Rose).

Phase 2 – Practice and techniques:
• Introduction to design patterns;
• More UML: state, activity diagrams, and OCL;
• Project management practice;
• Introduction to software testing: unit testing, coverage analysis, black box testing, integration testing, test cases based use cases, system and acceptance testing, and testing tools;
• Understanding of a number of business techniques including estimation of time, costs and evaluation of technical alternatives in the business context;
• Professional practice (reflective):
o codes of ethics and professional conduct;
o social, legal, historical, and professional issues and concerns;
• Design and implement a simple software system to meet a specified business goal.


This module appears in:

Contact hours

44 lectures and 22 terminal sessions

Method of assessment

Examination 50%, Coursework 50%

Indicative reading

See the library reading list for this module (Canterbury)

See the library reading list for this module (Medway)

Learning outcomes

11.1 Understand the principles and practice of the development of software systems (broadly defined) – from requirements specification, design, validation, implementation, and evolution
11.2 Apply design principles and patterns while developing software systems
11.3 Create UML diagrams for modelling aspects of the domain and the software
11.4 Design and implement test plans, and apply a wide variety of testing techniques effectively and efficiently
11.5 Demonstrate the vital role of planning, documentation, estimation, quality, time, cost, and risk evaluation in the business context
11.6 Show an understating in system design, including, design simplicity, appropriateness, and styles of system thinking and focused problem solving
11.7 Show an understanding of the professional and legal duties software engineers owe to their employers, employees, customers and the wider public
11.8 Use the appropriate tools and techniques when working in groups

University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.