1 / 15

Managing Complexity: Systems Design

Managing Complexity: Systems Design. March 2, 2001. Systems Design, cont. What makes Computer Systems Special? Complexity not limited by physical laws Noise does not limit computer system complexity computers are digital Technology changes at an unprecedented rate

meghan
Download Presentation

Managing Complexity: Systems Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Managing Complexity: Systems Design March 2, 2001

  2. Systems Design, cont. • What makes Computer Systems Special? • Complexity not limited by physical laws • Noise does not limit computer system complexity computers are digital • Technology changes at an unprecedented rate • The technology we build helps us to build better technology Computer systems can be more complex than planes, trains, or automobiles

  3. Systems Design • Managing Complexity • Modularity • Abstraction • Hierarchy • Layers Knowing when and how to most effectively use these will take practice

  4. Systems Design, cont. • Modularity • Also known as "Divide and Conquer" • This approach that words best for the Bank Vault Problem • Idea - Group the system components into a smaller set of interacting subsystems • Which dimension of complexity does this reduce? • Example - compilation of a large program

  5. Systems Design, cont. • Modularity, cont. • Enforce boundaries between modules • E.g., assume input can be wrong (outside of specs), but ensure output is always within specs • Examples: • Tolerances in components (Henry Ford, Rifles for the U.S. Army), • Digital logic gates

  6. Systems Design, cont. • Abstraction • Hide implementation details behind well-specified interfaces • Choose abstractions to minimize inter-module interactions • Align modules (or groups of modules) and abstractions • Careful with performance tradeoffs

  7. Systems Design, cont. • Hierarchy • Organize modules into a tree-like structure • each node represents a set of modules • Modules can interact only along the links • Examples: Businesses • Reduces interactions from O(n2) to O(n)

  8. Systems Design, cont. • Layers • Organizing technique that uses modularity and abstraction • Create a different way of looking at an existing system, without adding more functionality • Example 1: logic gates + memory cells: microprocessor: machine language processor: Java processor

  9. Systems Design, cont. • Managing Complexity - what else? • How do we pick the right form of modularity, abstraction, hierarchy, or layers? • E.g., Architecture of Complexity paper illustrates many ways hierarchies are used • We need more help to manage complexity: • Iteration • KIS

  10. Systems Design, cont. • Iteration • Start with a simple, working system that meets a few key requirements (sound familiar?) • Use what you learn to evolve the system • Learn from your mistakes early on (study failures!) • Import new technology as it arrives • Tradeoffs? • “The kitchen sink” • Harder to change early decisions as time goes on

  11. Systems Design, cont. • KIS • Keep It Simple • “If in doubt, leave it out” - anonymous • “Everything should be made as simple as possible, but no simpler” - Albert Einstein • Problem - Convincing someone that leaving something out will help in the long term • “we need more features to beat competitors!” • “we’ve already tested each of the 100 features on its own - all we have to do is integrate them”

  12. Systems Design, cont. • Putting it all together • Frameworks for analyzing systems • What are we dealing with? • System - Components, Interface, Environment • Purpose and granularity • Problem, Approach, Experiment, Results, Conclusions, Next Steps • Assumptions, Objectives, Tradeoffs • Objectives: Speed, Robustness, etc. • Where do we look for issues? • Emergent effects, propagation of effects, incommensurate scaling

  13. Systems Design, cont. • Putting it all together, cont. • Frameworks for designing systems: • How do we detect complexity? • Number of components, number of interactions, etc. • How do we control complexity? • Modularity, Abstraction, Hierarchy, Layers • Iteration, KIS

  14. Systems Design, cont. • Can airplanes really fly? • Weight grows with cube of size, whereas lift (based on cross-section) grows w/the square • At small dimensions, (e.g., a kite, a bird), the lift can support the weight • Larger flying machines based on winged-lift, however, will not work

  15. Systems Design, cont. • Help an airline design its traffic grid • Hub & spoke or multi-stop traffic? • Objectives: • Market share • Low cost • Assumptions: • Fixed delay between airplane landing and taking off (1 hour) • Average flight - 2 hours long • What else?

More Related