Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Engineering Topics
6CS002, Dr K Buckley 1
Lecture 1 - Introduction
6CS002, Dr K Buckley 2
Lecture Outcomes
• To understand the outline of the module
6CS002, Dr K Buckley 3
Pre-requisites
• You must have studied CP2089 or CP2029 or
CP2120 or equivalent
6CS002, Dr K Buckley 4
Module Overview
The module aims to prepare you for a career in software
development by first equipping you with theory and
knowledge of Software Engineering and coupling it
with practical application of current techniques.
6CS002, Dr K Buckley 5
Module Overview
The first part of the module aims to mimic a task similar
to that faced by many software engineers in their
first job. The task involves the maintenance and
extension of a legacy system and includes reverse
engineering, automated regression testing and the
application of refactoring and design patterns.
6CS002, Dr K Buckley 6
Module Overview
The second part of the module aims to make you aware
of emerging techniques and technologies. Two
topics that are of current interest will be focussed
and may vary over different runs of the module.
Example topic areas include Domain Specific
Languages, Quantum Computing, Static Code
Analysis.
6CS002, Dr K Buckley 7
Week by Week Schedule
Week 1 Bad Smells
Week 2 Refactoring
Week 3 Regression Testing Kevan Buckley
Week 4 Coursework Review - Bad Smells
Week 5 Design Patterns
Week 6 Design Patterns
Week 7 Constraint Programming
Week 8 Constraint Programming
Week 9 Consolidation Matthew Burley
• Desirable
– Freeman, E., Freeman, E., Sierra, K. & Bates, B.
“Head First Design Patterns”, O’Reilly (2004), ISBN:
0-596-00712-4
– Martin, R.C., “Clean Code”, Prentice-Hall, 2008,
ISBN 0-13-235088-2
6CS002, Dr K Buckley 9
Assessment
• Assessment Component 1 consisting of 1
element: A portfolio with 8 parts
– 7 submission deadlines
6CS002, Dr K Buckley 10
Assessment (KB)
• Refactoring Abominodo
– “The awesome new game from the makers of Cheezy
Chess, JumbleMeister, SyferStyfler, Dicezy and other
classics”.
– A Domino puzzle
• Part 1
– Write an evaluation of the existing system
• Part 2
– Refactoring out bad
• Part 3
– Refactoring to use design patterns
• Part 4
– Testing
6CS002, Dr K Buckley 11
Assessment (MB)
• Part 5, 6
– Constraint Programming Techniques
• Part 7, 8
– Domain Specific Languages
6CS002, Dr K Buckley 12
Questions
6CS002, Dr K Buckley 13