Skip to content

The Object Oriented Paradigm

NESA

Understanding OOP

Key Description Reference Comment
OO-UO-01 Apply the key features of an object-oriented programming (OOP) language
OO-UO-01.01 objects
OO-UO-01.02 classes
OO-UO-01.03 encapsulation Encapsulation
OO-UO-01.04 abstraction
OO-UO-01.05 inheritance
OO-UO-01.06 generalisation
OO-UO-01.07 polymorphism
OO-UO-02 Compare procedural programming with OOP Programming Paradigms
OO-UO-03 Use data flow diagrams, structure charts and class diagrams to represent a system Design
OO-UO-04 Describe the process of design used to develop code in an OOP language
OO-UO-04.01 task definition
OO-UO-04.02 top-down and bottom-up
OO-UO-04.03 facade pattern Software Design Patterns Another odd decision to only focus on the facade pattern when there are many more and more commonly used ones
OO-UO-04.04 agility Not sure what this means. You don't normally talk about code from an agility pov, I can only think they mean the -ilitiies of software engineering
OO-UO-05 Assess the effectiveness of programming code developed to implement an algorithm Big-O
OO-UO-06 Investigate how OOP languages handle message-passing between objects
OO-UO-07 Explain code optimisation in software engineering Big-O
OO-UO-08 Outline the features of OOP that support collaborative code development I would expect things like clean code and SOLID to discussed. These and below are just good software practices and not specific to OO
OO-UO-08.01 consistency Clean Code
OO-UO-08.02 code commenting Clean Code
OO-UO-08.03 version control RCS I am assuming this means revision control systems and not SemVer13 or similar
OO-UO-08.04 feedback Code Reviews Feedback is great but not specific to coding

Programming in OOP

Key Description Reference Comment
OO-PO-01 Design and implement computer programs involving branching, iteration and functions in an OOP language for an identified need or opportunity
OO-PO-02 Implement and modify OOP programming code
OO-PO-02.01 clear and uncluttered mainline SOLID Seems to be a relic of the old syllabus. OO is far more dynamic and this should really be about SOLID14 principles
OO-PO-02.01 one logical task per subroutine SOLID Another relic. I guess they mean single responsibility principle.
OO-PO-02.02 use of stubs Not an OO principle, just general development and more likely used when testing
OO-PO-02.03 use of control structures and data structures
OO-PO-02.04 ease of maintenance -ilities and Clean Code
OO-PO-02.05 version control Deja-vu
OO-PO-02.06 regular backup I guess this would be your git workflow using github or similar
OO-PO-03 Apply methodologies to test and evaluate code
OO-PO-03.01 unit, subsystem and system testing Testing
OO-PO-03.02 black, white and grey box testing Testing
OO-PO-03.03 quality assurance Cyclo-metrics, linters, ¯\(ツ)

Outcomes