FINAL STUDY Flashcards
(139 cards)
Four issues of complexity?
- Emergent Properties
- Propagation of Effects
- Incommensurate Scaling
- Tradeoffs
Emergent Properties
(issue of complexity)
Properties that show when combining components
Propagation of Effects
(issue of complexity)
Problems in one component affect other components
Incommensurate Scaling
(issue of complexity)
Not all parts of a system scale at the same rate
Tradeoffs
(issue of complexity)
Sacrifice one thing for more of something else
What is a system?
A set of interconnected components that has an expected
behavior observed at the interface with its environment.
Signs of Complexity?
- Large number of components
- Large number of interconnections
- Lots of irregularities (little differences)
- Long description (high information content)
- Large team of designers, implementers, or maintainers
What are the sources of system complexity?
- Interactions of requirements
- Increasing efficiency, utilization, or other measure of “goodness”
Interactions of Requirements in terms of complexity?
(source of system complexity)
A general-purpose tool that can do X and other things is more complex than
a special-purpose tool that can only do X
Increasing efficiency, utilization, or “goodness” in terms of complexity?
(source of system complexity)
Additional gains in efficiency will lead to a more complex system
What increases complexity?
- Principle of escalating complexity
- Principle of excessive generality
- Law of Diminishing Returns
Principle of escalating complexity?
(increases system complexity)
Adding a requirement increases complexity out of proportion
Principle of excessive generality?
(increases system complexity)
If it’s good for everything, it’s good for nothing (flying car)
Law of Diminishing Returns?
(increases system complexity)
The more one measure of goodness is improved, the harder it gets to make
the next improvement
Ways we can manage complexity?
- Modularity
- Abstraction
- Layering
- Hierarchy
Modularity
Break big things into smaller pieces (aka divide and conquer)
Abstraction
Break into components at logical points, Treat an individual component as a black box, Benefit from the Robustness principle
Layering
Build new layer from (already existing) lower layer, Layer may consist of multiple modules (components), Modules in a layer may only interact within the layer or up or down one layer
Hierarchy
Combine small groups of modules into small subsystems, Combine small subsystems into large subsystems, Combine large subsystems into systems, Limit the visibility of each level of abstraction hierarchy to limit
complexity
Robustness Principle
Be TOLERANT on inputs, be STRICT on outputs
Three main things a system does?
Store -> Memory
Compute -> Interpreter
Communicate -> Communication Channels
Volatile Memory/ Non-Volatile Memory
Volatile Memory is memory that only keeps data while it’s powered
Bandwidth (Memory Performance)
Units of memory/Units of time
Latency (Memory Performance)
How long does it take to get a single value from memory