CO475 Software Engineering for IndustryLecturer(s): Dr Sue Eisenbach; Dr Nathaniel Pryce; Mr Robert Chatley
For up to date information, see course page on Computing web:
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.
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.
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
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
Coursework contribution: 100%
Closed or Open Book (end of year exam): N/A
To be announced
Oral Exam Required (as final assessment): N/A
Prerequisite: None required
Course Homepage: unavailable