CSC2021 : Software Engineering (Inactive)

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


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

Teaching Activities
Category Activity Number Length Student Hours Comment
Guided Independent StudyAssessment preparation and completion440:3022:00Revision for end of semester exam
Guided Independent StudyAssessment preparation and completion441:0044:00Lecture follow-up
Scheduled Learning And Teaching ActivitiesLecture221:0022:00Practicals
Scheduled Learning And Teaching ActivitiesLecture441:0044:00Lectures and revision lectures
Guided Independent StudyProject work221:0022:00Coursework
Guided Independent StudyIndependent study461:0046:00Background reading
Teaching Rationale And Relationship

Lectures will be used to introduce the learning material and for demonstrating the key concepts by example. Software Engineering is by nature a very practical subject, and it is important that the learning materials are supported by hands-on opportunities provided by practical classes.

Assessment Methods

The format of resits will be determined by the Board of Examiners

Description Length Semester When Set Percentage Comment
Written Examination601A30N/A
PC Examination602A30Blackboard on line assessment
Other Assessment
Description Semester When Set Percentage Comment
Prob solv exercises1M20A number of short exercises
Case study2M20A software engineering project
Assessment Rationale And Relationship

The module is examined with a written examination (end of semester 1) and an online examination (end of semester 2). The examinations will each consist of a number of questions with parts which test the students' broad knowledge of software engineering and parts based on a scenario which require students to show greater depth of understanding of key concepts. The heavy weighting of coursework (40%) in this module reflects the importance of practical aspects of this module.

Study abroad students considering this module should contact the School to discuss availability and assessment.

N.B. This module has both “Exam Assessment” and “Other Assessment” (e.g. coursework). If the total mark for either assessment falls below 35%, the maximum mark returned for the module will normally be 35%.

Reading Lists