SWEN 224 (2017) - Home Page

Welcome to SWEN 224! This course looks at the issue of designing and developing correct software. That is, software which meets its specification to a high degree of confidence. Testing is one mechanism you may be familiar with for trying to ensure software correctness. In SWEN 224, we'll examine several alternatives which, in many ways, are far more powerful. We'll be looking at three areas: static analysis, model checking and software verification. All of these techniques are used routinely in industry to eliminate software bugs and ensure software runs correctly. For example, Intel use model checking to ensure the correctness of new chip designs. Likewise software verification tools were used in the development of critical software for the Airbus A380.

During the course, you will be exposed to a range of different tools each of which illustrates a different approach to ensuring software correctness. Labs and assignments will give you a chance to use these tools for solving real problems and, hopefully, finding some bugs. I hope that you enjoy this course and get as much out of it as possible. I also encourage you to read the Course Outline where you can find information on what's really involved. Finally, if you have any questions or difficulties during the course, please free to come by my office (CO220) for a chat.