1/19
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
component technology driving forces
extensibility, coupling, complexity
coupling 1
a depends on b, good
coupling 2
a depends on b doing its job in a particular way, bad
coupling 3
a depends on b having a particular bug, very bad
coupling 4
a depends on b but no one knows, very bad
complexity 1
system becomes too complicated to understand
complexity 2
the people who did understand it leave, retire, die
complexity 3
the system can’t be changed and becomes fragile
complexity 4
the eventual failure is catastrophic
platform requirement 1
common stable interface within which the actual functions may change
platform requirement 2
keep macro-level things the same but evolve the micro-level things
subsitutability
replace a component with another compatible one without any noticeable functional change
subsitutability pro 1
makes change easier due to known boundaries e.g., changing a lightbulb without affecting the lamp stand, switch etc
subsitutability pro 2
allows for piecewise upgrades e.g., change all lightbulbs in a house to low-energy without changing the wiring
why does subsitutability work 1
standard functions
why does subsitutability work 2
standard interfaces
software components definition (szyperski)
binary units of independent production, acquisition and deployment that interact to form functioning systems
unit of composition
we compose components and don’t look inside them
interfaces
only access the services of the component through well-known operations
explicit dependencies
component makes known the interfaces, services and components it requires and only requires these to function properly