FIT2024 Lecture 6: Writing Test Plans and Test Reports
Week 6 - Writing Test Plans and Test Reports
Principles of Object Oriented Design
●Key Ideas
○Abstraction
■ Denotes the essential characteristics of an object that distinguishes it
from all other kinds of objects
■ Makes elements highly resistant to change
■ Can make elements easily reusable elsewhere
○ Reduction of dependencies
■ Dependency - when a change in some element of the software causes
changes in the other elements of the software
● Key Design Ideas
○ Open/Closed Principle
■ Classes should be open for extension,but closed for modification
■ Normally implemented with inheritance/polymorphism in OO systems
○ Encapsulation
■ Process compartmentalizing the elements on an abstraction that
constitute its structure and behaviour
○ Connascence
■ In two components, a change in one would require the other to be
modified in order to maintain the overall correctness of the system
● Static
○ Connascence that can be assessed from the
code/structure of the classes
● Dynamic
○ Connascence based on the execution pattern of the
running code (the objects rather than the classes)
■ Use encapsulation to manage connascence
● Minimise overall connascence by breaking the system into
encapsulated components
● Minimise any connascence which crosses encapsulation
boundaries
● Maximise the connascence within encapsulation boundaries
○ Class Cohesion
■ Measure the interrelatedness of the feature in the external interface of a
class
■ High cohesion is good!
Document Summary
Week 6 - writing test plans and test reports. Denotes the essential characteristics of an object that distinguishes it from all other kinds of objects. Dependency - when a change in some element of the software causes changes in the other elements of the software. Classes should be open for extension,but closed for modification. Normally implemented with inheritance/polymorphism in oo systems. Process compartmentalizing the elements on an abstraction that constitute its structure and behaviour. In two components, a change in one would require the other to be modified in order to maintain the overall correctness of the system. Connascence that can be assessed from the code/structure of the classes. Connascence based on the execution pattern of the running code (the objects rather than the classes) Minimise overall connascence by breaking the system into encapsulated components. Minimise any connascence which crosses encapsulation boundaries. Measure the interrelatedness of the feature in the external interface of a class.