Although the process and technology of software development has been the subject of serious study for three decades, the results of this study have not found their way into engineering practice. This course teaches a better approach. It shows how to use engineering approaches in software design and provides some introductory experience in using the notations and techniques that are presented. A working example will be used throughout the four days, providing continuity to illustrate the principles and techniques of the course. This practical course is intended for professionals who are skilled in one or more computer languages, and are looking for design principles and analytical techniques.
Systematic inspection is essential.
This course teaches a procedure for software inspection that is based on a sound mathematical model and can be carried out systematically by large groups. The software inspection procedure combines methods used at IBM, work originally done at the U.S. Naval Research Laboratory for the A-7E aircraft, and procedures applied to the inspection of software at the Darlington Nuclear Power Generating Station. The method has been refined and enhanced by the Software Engineering Research Group at McMaster University. It can be applied to software written in any imperative programming language. This 3-day course will give participants an understanding of the way that mathematics can be used to document and analyze programs.