The Object Oriented Paradigm
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, ¯\(ツ)/¯ |