Undergraduate

modules

Modules

CSC2021 : Software Engineering (Inactive)

Semesters
Semester 1 Credit Value: 10
Semester 2 Credit Value: 10
ECTS Credits: 10.0

Aims

To teach students the principle tools and techniques of software engineering and how to apply them to the development of large scale software systems.

Outline Of Syllabus

1.       Background
1.1.       The nature of software; SW Engineering Principles (rigour, separation of concerns, modularity, abstraction, anticipating change, generality, incrementality)
1.2.       Cost of defects and rework, role of modelling
1.3.       Project Management: Risk, cost prediction, monitoring
2.       Modelling and Specification
2.1.       Eliciting and Analysing Requirements
2.2.       Software Modelling and Design: architecture, modularisation, rationale, design patterns, architectural styles
2.3.       Foundations of modelling technology: propositional and predicate logic, data and invariants; contracts; state-based and state-transition models
3.       Verification & Validation
3.1.       Testing: fundamentals (test plan, test case, black box, white box, unit/integration/system testing)
3.2.       Test coverage; Test case generation; Testing for o-o, concurrent, real-time systems
3.3.       Model checking; static analysis; correctness proofs; automated support
3.4.       Metrics for complexity, reliability, performance
4.       Case studies
4.1.       Modelling & Verification in a range of application domains such as cyber-physical, ambient, security-critical and network-enabled systems.

Teaching Methods

Module leaders are revising this content in light of the Covid 19 restrictions.
Revised and approved detail information will be available by 17 August.

Assessment Methods

Module leaders are revising this content in light of the Covid 19 restrictions.
Revised and approved detail information will be available by 17 August.

Reading Lists

Timetable