Skip to content

Curriculum Blueprint & Topics

Syllabus mapping, learning outcomes (LO1–LO6), and chapter topics for Object Oriented Development and Agile Practices.

Object Oriented Development and Agile Practices (SE506)
Module Leader: Dr. Polla Abdulhamid Fattah

This blueprint documents the pedagogical structure of the course, its alignment with the SE506 module descriptor, and the chapter-by-chapter learning progression.

Module Learning Outcomes

LabelModule Outcome Focus
LO1Object-Oriented Design & SOLID: Apply OO principles, responsibilities, cohesion, coupling, and SOLID to design maintainable software.
LO2Design Patterns & Architecture: Select and justify creational, structural, and behavioral patterns and layered architectural styles.
LO3TDD & Automated Testing: Apply test-driven development, Arrange-Act-Assert, test doubles, mocks, stubs, and integration contracts.
LO4Code Smells & Refactoring: Recognize structural code smells and safely refactor legacy code using characterisation tests and seams.
LO5Agile Planning & Flow Metrics: Plan and deliver iteratively using user stories, capacity planning, and empirical repository metrics (cycle time, throughput).
LO6Professional Workflows & Reflection: Use professional Git workflows, pull request reviews, and critically justify design trade-offs.

Chapter Curriculum Progression

Part I: Foundations & Object-Oriented Principles

1. Developing Software That Can Change

2. Object-Oriented Development Beyond Syntax

3. Agile Development and the Nature of Change

4. From Requirements to an Iteration

5. Responsibilities, Extension, and Substitutability

6. Interfaces, Dependencies, and Composition


Part II: Testing, Creation & Behavioral Patterns

7. Testing as a Design Practice

8. Creating and Connecting Objects

9. Designing Changing Behaviour


Part III: Architecture, Packages & Legacy Systems

10. From Classes to Application Structure

11. Refactoring and Legacy Code


Part IV: Flow Metrics, Continuous Delivery & AI Assistance

12. Measuring Progress, Flow and Technical Health

13. Integration, Delivery and Feedback

14. Responding to Change and Handing Over

15. AI as a Software Engineering Assistant