Subject Descriptions - Subject Information

Calendar: 2017 Postgraduate
Faculty: Faculty of Engineering and Information Sciences
Department: School of Computing and Information Technology

Subject Information
Subject Code CSCI910
Subject Name Software Requirements, Specifications and Formal Methods
Credit Points 6
Pre-Requisites (CSCI927) or (12 cp of MICT900 level subjects)
Co-Requisites None.
Restrictions ITCS935
Equivalence None.
Assessment Assignments 40% Examination 60%
General Subject No.

Subject Description
This subject demonstrates how software development can be viewed as a kind of engineering - an activity of building useful things to serve recognisable purposes. The subject introduces students to the understanding of software requirements, techniques of requirement elicitation and analysis, and formal methods for software specification. The role of formal methods in the software development process is explained and investigated. The subject uses the Z notation as an example of a formal specification technique. Case studies are used as a basis for a study of the application of requirement processes and formal specification techniques. Topics will include: Introduction to the procedure of software requirement engineering, formal approaches to design and specification, review of mathematical foundation for formal methods, use of assertions and proof, analysis and verification of specification and design, disciplined approaches to design change, Z notation and other Morden methods for formal specification.

Subject Learning Outcomes
On successful completion of this subject, students will be able to:
1. Describe state of the art techniques of software requirements elicitation and analysis..
2. Explain how software system requirements are translated to appropriate software specifications expressed in a range of different formalisms
3. Analyse a representative software engineering problem and develop an appropriate formal specification using Z notation
4. Identify circumstances requiring formal software engineering techniques.
5. Verify the correctness of a formal specification.