SWEN324 (2019) - Software Correctness
This course is concerned with the development of correct software, especially the use of formal requirements and specifications to develop high-integrity software. This has applications in several areas, such as safety-critical systems (e.g. commercial airliners, space systems, etc) and high-performance concurrent systems. The course will examine a range of principles and techniques which underpin a rigorous approach to the specification and implementation of software. A sequence of assignments and labs will see a range of tools being used to specify small software systems, and to check that they meet their requirements. NB: this course is first running in 2019.
Course learning objectives
Students who pass this course will be able to:
- Use mathematical structures such as sets, functions, relations and sequences to model software systems, and to state desired properties of such systems, including pre and postconditions, class invariants and loop invariants.
- Use mathematical reasoning to prove properties of the various formalisms studied in the course, including correctness properties of programs.
- Use tools such as Whiley and OpenJML to check correctness properties of software systems.
- Use formalisms such as regular expressions and context free grammars to describe the syntactic structure of artificial languages.
- Use state machine models such as finite acceptors and push down acceptors to construct recognisers for artificial languages.
Withdrawal from Course
Withdrawal dates and process:
This is a new course
Dates (trimester, teaching & break dates)
- Teaching: 08 July 2019 - 13 October 2019
- Break: 19 August 2019 - 01 September 2019
- Study period: 14 October 2019 - 17 October 2019
- Exam period: 18 October 2019 - 09 November 2019
There is a weekly tutorial Thursday 2-3pm in Murphy 101
Set Texts and Recommended Readings
There is no set text in this course.
There are many books available, some online. There are many lecture notes, tutorials, etc online. See the course web site for recommendations.
Mandatory Course Requirements
In addition to achieving an overall pass mark of at least 50%, students must:
- Achieve at least 40% average across the 6 assignments
- Achieve at least a D on the exam
If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.
|Assessment Item||Due Date or Test Date||CLO(s)||Percentage|
|Exam (2 hours)||CLO:||50%|
10% reduction per weekday after the deadline, or 2 weeks after the assignment is handed out (whichever is later)
If you have significant medical or personal issues that may affect your ability to submit an assignment on time, contact the course organiser to discuss an extension. You may need documentation for significant cases.
Submission & Return
All assignments must be submitted via the ECS submission system. Marks and comments will be returned via the ECS marking system.
There is no group work in this course
The expected workload for the course is about 10 hours per week. This includes the lectures, tutorial, assignment and reading/study time
The lecture topics and lecture slides will be available on the course web site (https://ecs.victoria.ac.nz/Courses/SWEN324_2019T2/LectureSchedule)
The expected topics to be covered include
System specification and verification
Processes and interaction
Communication of Additional Information
All information about the course will be available at https://ecs.victoria.ac.nz/Courses/SWEN324_2019T2
Links to General Course Information
- Academic Integrity and Plagiarism: https://www.victoria.ac.nz/students/study/exams/integrity-plagiarism
- Academic Progress: https://www.victoria.ac.nz/students/study/progress/academic-progess (including restrictions and non-engagement)
- Dates and deadlines: https://www.victoria.ac.nz/students/study/dates
- Grades: https://www.victoria.ac.nz/students/study/progress/grades
- Special passes: Refer to the Assessment Handbook, at https://www.victoria.ac.nz/documents/policy/staff-policy/assessment-handbook.pdf
- Statutes and policies, e.g. Student Conduct Statute: https://www.victoria.ac.nz/about/governance/strategy
- Student support: https://www.victoria.ac.nz/students/support
- Students with disabilities: https://www.victoria.ac.nz/st_services/disability/
- Student Charter: https://www.victoria.ac.nz/learning-teaching/learning-partnerships/student-charter
- Terms and Conditions: https://www.victoria.ac.nz/study/apply-enrol/terms-conditions/student-contract
- Turnitin: http://www.cad.vuw.ac.nz/wiki/index.php/Turnitin
- University structure: https://www.victoria.ac.nz/about/governance/structure
- VUWSA: http://www.vuwsa.org.nz
Offering CRN: 30044
Prerequisites: COMP 103; ENGR 123 or MATH 161; 30 200-level COMP/NWEN/SWEN points;
Restrictions: SWEN 224
Duration: 08 July 2019 - 10 November 2019
Starts: Trimester 2