Chapter 01 Flashcards
(17 cards)
Abstraction
a simplification of a model.
focus on characteristic in context, defer unnecessary detail.
Encapsulation
hiding details of how, exposing details “on need to know”
Modulariization
continuous decomposition until fine-grained components are created.
Uses abstraction & encapsulation
procedural abstraction
simplifies behavioral operations (sequences of steps).
unlocking door
Data Abstraction
model that simplifies data’s structure. (Message class)
coupling
manner and degree of interdependence. (between modules)
More coupling is BAD.
content coupling
modules rely on internal details of other modules.
WORST form of coupling. “changes in A mess up B”
common coupling
dependencies on common access, such as global variables.
less bad, one change affects many.
data coupling
(set of parameters) only means for modules to communicate.
better form of coupling. but more coupling is always bad.
cohesion
manner and degree to which a module’s tasks are related.
Higher cohesion is good.
function cohesion
degree to which module’s tasks perform a single function.
Single logical meaning would indicate logical cohesion.
separation of interface and implementation
interface is like encapsulation(hiding) but…
allows varied implementation (without changes to old implements)
completeness
degree to which requirements are met
sufficiency
degree to which it does only it’s requirements
design
is about minimizing complexity
Object-Oriented Design Strategy
a system or component is expressed in terms of objects and connections between them.
does encapsulation, holds state, inheritance, polymorph.
Structured Design Strategy
based on function decomposition into modules. (functional analysis)
Top-Down
-not good for object oriented (no data abstraction, no encapsulation)