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

Term
Definition

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?