CO475 Software Engineering for Industry

Lecturer(s): Dr Sue Eisenbach; Dr Nathaniel Pryce; Mr Robert Chatley

Aims:
For up to date information, see course page on Computing web:
https://teachdb.doc.ic.ac.uk/db/1112/viewrec?table=Course&id=8020113

To introduce state-of-the-art advanced tools and techniques for large-scale software systems development. To develop the critical skills to judge which technique would be most appropriate for solving large-scale software problems.


Learning Outcomes:
1) Students will have an understanding of some current software process methodologies and be able to apply critical facilities to valuing methodologies as they become fashionable.

2) Students will understand the scope of the software maintenance problem and will be familiar with several tools for reverse engineering software.

3) Students will have an understanding of the fundamental techniques for verifying systems using model checking.

Syllabus:
Maintenance and Evolution: Software maintenance/evolution is the modification of a software product after
delivery to correct faults, to improve performance or other attributes, or to adapt the product to a changed
environment.
We look at a collection of software evolution problems associated with modern code
and at reverse engineering techniques for code improvement.

Test driven development (which is more than test first), mock objects, acceptance testing, continuous
integration, coverage etc

Intentional programming: programs that are designed to be read, expressing why as well as what, embedded
DSLs (hot for 2007!), domain driven design, building a bridge to the customer/tester/analyst

Model Checking: Model checking is a technique for verifying complex concurrent software.
It has a number of advantages over traditional approaches that are based on simulation, testing, and proving.
Model checking is automatic and usually quite fast.
If the design contains an error, model checking will produce a counterexample that can be used to pinpoint the
source of the error.
It has been used to verify real industrial designs, and companies are beginning to market commercial model
checkers.


Assessment:


Coursework contribution: 100%

Term: Autumn

Closed or Open Book (end of year exam): N/A

Coursework Requirement
         To be announced

Oral Exam Required (as final assessment): N/A

Prerequisite: None required

Course Homepage: unavailable