|
All aspects of software development lifecycle – requirements, design, implementation, testing, maintenance, and reuse – with emphasis on rigour and formality. Concepts covered include Algebraic Specification Languages (such as LOTOS), Model Based specification Languages (such as Z), Object Oriented Specification Languages such as OCL, JML, Eiffel and Spec# ; Design by Contract; Cleanroom Engineering and Program Verification; Good practice in rigorous Software Engineering: version control, documentation and process improvement.
|