COMP 310 |
Industry Buzzwords and Acronyms for OOP/D |
Here are some common buzzwords and acronyms that you might encounter in industry:
Basically, don't replicate code or behavior.
GRASP is a set of design principles and patterns geared towards solving common problems in software projects.
This refers to the first 5 OO design principles in that Robert Martin,one of the OOP/D pioneers, introduced in the eary 2000's.
Single responsibility principle: A class should have a single responsibility. That is, don't couple together things that are unrelated. The converse of this is the notion of separation of concerns.
Open/closed principle: Entities, e.g. classes, should be open for extension but closed for modification. The encapsulation of an entity represents an invariant, so that invariant should always be preserved.
Liskov substitution principle: A notion introduced by Barbara Liskov in 1987 which states that objects should be replaceable by their subtypes without altering the correctness of the program. That is, an object represents an abstraction and all subclasses of that abstraction should not violate or alter the semantics or behavior of that abstraction.
Interface segregation principle: An interface presented to a user should only contain those methods that are relevant to that user. This is related to the notion of separation of concerns.
Dependency inversion principle: An OO system should be designed in terms of abstractions not concrete implementations. The point is to decouple the system from the implementations being used.
Don't add functionality until you need it. This notion is driven by agile programming where one wants to build the minimum at any given moement because things may change. Note however, that this is NOT the same as not designing for extensibility!
© 2017 by Stephen Wong