CM1202: Developing Quality Software
School | Cardiff School of Computer Science and Informatics |
Department Code | COMSC |
Module Code | CM1202 |
External Subject Code | 100374 |
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
- Apply their understanding of the fundamental concepts, principles and practices of Software Engineering when creating a protoype. (including requirements gathering, development and testing).
- Plan and manage a project through the effective use of a variety of tools and techniques.
- Apply their knowldege of software quality criteria in the development of an application.
- Use appropriate modelling techniques when specifying the requirements of and designing a system to meet the needs of a particular problem.
- Evaluate techniques used in project management and the technical tasks involved in each stage of the development lifecycle.
- Demonstrate an awareness of the nature of professional bodies and relevant codes of ethics and professional conduct.
- 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
Testing
Programming
Using software (IDEs) to write, refactor, test and run code
Software Quality
Software Testing & Validation
An introduction to Project management
Representation:
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)
Professionalism
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