CM1202: Developing Quality Software

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CM1202
External Subject Code I300
Number of Credits 20
Level L4
Language of Delivery English
Module Leader Dr Daniel Finnegan
Semester Double Semester
Academic Year 2020/1

Outline Description of Module

This module introduces Software Engineering principles and practices that are needed to develop software-intensive systems. Students will work in a team on a software development project involving group and individual tasks. They will gain practical experience of project management skills and performing key technical tasks in the software development lifecycle.

On completion of the module a student should be able to

  1. Apply their understanding of the fundamental concepts, principles and practices of Software Engineering when creating a protoype. (including requirements gathering, development and testing).
  2. Plan and manage a project through the effective use of a variety of tools and techniques.
  3. Apply their knowldege of software quality criteria in the development of an application.
  4. Use appropriate modelling techniques when specifying the requirements of and designing a system to meet the needs of a particular problem.
  5. Evaluate techniques used in project management and the technical tasks involved in each stage of the development lifecycle.
  6. Demonstrate an awareness of the nature of professional bodies and relevant codes of ethics and professional conduct.
  7. Reflect on their experience of working in a team and their individual contributions to the project.

How the module will be delivered

Modules will be delivered through blended learning. You will be guided through learning activities appropriate to your module, which may include: • on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes), • on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings) • face to face small group sessions (e.g. help classes, feedback sessions)

Skills that will be practised and developed

Project Planning and Time Management

Requirements specification

Software construction and testing

Using IDEs to write, structure, refactor, build and test code

Systems modelling

Team working & Communications Skills

Defending your work

Using version control software to collaborate on a project


How the module will be assessed

A blend of assessment types which may include coursework and portfolio assessments, class tests, and/or formal examinations.

Assessment Breakdown

Type % Title Duration(hrs)
Portfolio 100 Group Portfolio N/A

Syllabus content

The need for Software Engineering

Software Development Methodologies

          Software Development Lifecycle

          Analysing, & specifying requirements for software systems

          Software Design

          Software Implementation: Modularity, Usability, Good Programming Styles



          Using software (IDEs) to write, refactor, test and run code

Software Quality

          Software Testing & Validation

 An introduction to Project management


         Project tracking and team communication (Kanban, Scrum, Slack)

         Balance of time, resource and quality

         Using version control software to collaborate on aspects of a project (code/documentation)


         Nature of professional bodies

         Relevant codes of ethics and professional conduct.

         Legal requirements e.g. data protection, intellectual property rights

Unified Modelling Language

         Class diagrams

         Use case diagrams


Essential Reading and Resource List

There is no single text that covers the full syllabus for this module.

Background Reading and Resource List

There is no single text that covers the full syllabus for this module, the books below contain useful reference sections. They can be found in the University Library.

 Software Engineering , 10th Ed,  Ian Sommerville, Addison-Wesley Longman, 2011

Software Engineering: a Practitioner's Approach – 7th Ed,  Roger S. Pressman, McGraw-Hill Publishing Company, 2010

Software Engineering: Principles & Practice, 3rd Ed, Hans van Vliet, Wiley & Sons, 2008

UML Distilled, Fowler M, Scott K, Addison-Wesley, 3rd edition, 2003,

Applying UML and Patterns, An introduction to Object Oriented Analysis and Design and the Unified Process, 2nd Edition, C.Larman, Prentice Hall, 2002,

The Unified Modelling Language User Guide, Booch G, Rumbaugh J, Jacobson I, Addison-Wesley, 2nd edition, 2005

UML 2.0 in a Nutshell By Dan Pilone, Neil Pitman, Publisher: O'Reilly Media Released:June 2005

Learning UML 2.0, Hamilton O'Reilly 2006



Copyright Cardiff University. Registered charity no. 1136855