6 points, SCA Band 2, 0.125 EFTSL
Postgraduate - Unit
Refer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.
This unit covers the core software engineering disciplines concerned with the design and development of complex software-based systems using advanced software engineering methods and technologies. This involves specification of software systems using advanced design languages and formal logics, as well as verifying the correctness of such specifications using formal engineering analysis methods and various mechanical/automated tools. Topics include design/modeling languages, software architecture design patterns, complex system design methods, mathematical logic, formal specification languages, theorem proving, and model checking. It shows how to analyse model complex software systems, how to express properties that the system should adhere to and how to use mechanical/automated tools to verify such properties.
On successful completion of this unit students should be able to:
- define requirements for complex interactive software systems;
- use modern high-level languages and technologies to document the architecture of complex reactive software systems;
- design new a high-level domain-specific language for a specific domain;
- articulate the central technical challenges of distributed reactive software systems and corresponding solution design patterns;
- develop suitable architectural-level solutions for complex interactive software systems;
- articulate the role of formal logic and verification methods in the system development life cycle;
- categorise major techniques and approaches to software verification: theorem proving, model checking and model-based testing;
- develop software specifications and express desirable properties using a formal language/logic such as the Event-B notation and temporal logics.
Examination (2 hours): 50%, In-semester assessment: 50%
Minimum total expected workload equals 12 hours per week comprising:
- Contact hours for on-campus students:
- Two hours of lectures
- One 2-hour tutorial
- Additional requirements (all students):
- A minimum of 8 hours independent study per week for completing tutorial and project work, private study and revision.
See also Unit timetable information