220 Building an OOP App
This module introduces the development of an object-oriented software project using Python.
Outline
Follow an Agile sprint model to design, implement, and test a functioning program based on user needs. The focus is on planning and documenting a well-structured OOP application rather than immediately completing all functionality. The sprint concludes with a working version of the software that demonstrates a core feature, along with supporting evidence of the design and testing process.
Targets
In this topic, students learn to:
Use classes and objects to model software solutions
Design and implement code using encapsulation, abstraction and message passing
Apply version control and Agile development practices
Plan and document their development using an SDS and sprint log
Glossary
Agile
A flexible software development methodology using short iterations (sprints) with continual feedback
Class
A blueprint for creating objects in OOP, containing attributes and methods
Encapsulation
The bundling of data and methods that operate on the data within one unit (a class)
Polymorphism
The ability to use methods in different ways depending on the object instance
SDS (Software Design Specification)
A structured document outlining the design of a software solution
Sprint
A short, time-boxed period during which a development team works to complete specific goals
Stub
A placeholder method or class used during program design before full implementation
Overview
This module represents a shift in focus from procedural design to the object-oriented paradigm. Students begin by creating class files and structuring their codebase using method stubs, ensuring that the design is well thought out before implementation. The use of encapsulation and message passing is emphasised as a way of organising logic and responsibilities across multiple files.
The development follows an Agile model. Students create a product backlog of user stories, write a software design specification (SDS), and plan their sprint. At the end of the sprint, students present a functioning prototype and a completed sprint log that captures their development process, including testing and any challenges they encountered. The goal is not to complete the full application, but to demonstrate key development practices using OOP.
Last updated
Was this helpful?