CO2401: Software Development
Lecture 20 - Revision
Topics Likely to be on the Exam
1. Core Concepts:
o System vs. User Requirements
o Key Software Development Concepts:
Abstraction: Using the right level of detail to hide irrelevant
information.
Modularity: Structuring systems into interacting
components (modules).
Coupling and Cohesion:
Coupling: Links between modules (loose coupling is
desirable).
Cohesion: Simplicity and focus of module purposes
(high cohesion is desirable).
2. Verification & Validation (V&V):
o Verification: Are we building the product right? Ensures the
software meets its specifications.
o Validation: Are we building the right product? Ensures the software
meets customer needs.
3. Domain Modelling:
o Noun Phrase Analysis: Identifying candidate classes and
attributes.
o Domain Class Diagrams: Static structure of systems showing
classes and their relationships.
o Sequence Diagrams: Dynamic behavior showing object
interactions over time.
4. Testing Techniques:
o Automated Static Analysis: Tools that check code for potential
issues before execution.
o Code Inspection: Manual review of source code for errors.
o Test Case Design: Creating effective tests, including equivalence
partitioning and boundary testing.
Lecture 20 - Revision
Topics Likely to be on the Exam
1. Core Concepts:
o System vs. User Requirements
o Key Software Development Concepts:
Abstraction: Using the right level of detail to hide irrelevant
information.
Modularity: Structuring systems into interacting
components (modules).
Coupling and Cohesion:
Coupling: Links between modules (loose coupling is
desirable).
Cohesion: Simplicity and focus of module purposes
(high cohesion is desirable).
2. Verification & Validation (V&V):
o Verification: Are we building the product right? Ensures the
software meets its specifications.
o Validation: Are we building the right product? Ensures the software
meets customer needs.
3. Domain Modelling:
o Noun Phrase Analysis: Identifying candidate classes and
attributes.
o Domain Class Diagrams: Static structure of systems showing
classes and their relationships.
o Sequence Diagrams: Dynamic behavior showing object
interactions over time.
4. Testing Techniques:
o Automated Static Analysis: Tools that check code for potential
issues before execution.
o Code Inspection: Manual review of source code for errors.
o Test Case Design: Creating effective tests, including equivalence
partitioning and boundary testing.