Managing Complexity: Systems Design March 2, 2001.

Slides:



Advertisements
Similar presentations
Alpha Shapes. Used for Shape Modelling Creates shapes out of point sets Gives a hierarchy of shapes. Has been used for detecting pockets in proteins.
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Design Deriving a solution which satisfies software requirements.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Machine Learning CPSC 315 – Programming Studio Spring 2009 Project 2, Lecture 5.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Introduction to Systems CSCI102 - Systems ITCS905 - Systems MCS Systems.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Course Instructor: Aisha Azeem
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction to Computer Systems March 1, Course Goals Why are we here?  Learn about a variety of existing computer systems  Learn how to critically.
Language Evaluation Criteria
Design methodology.
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu, Th 3:00-4:00 PM.
Introduction to Interconnection Networks. Introduction to Interconnection network Digital systems(DS) are pervasive in modern society. Digital computers.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
3- System modelling An architectural model presents an abstract view of the sub-systems making up a system May include major information flows between.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
An Introduction to Software Architecture
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Program Design CMSC 201. Motivation We’ve talked a lot about certain ‘good habits’ we’d like you guys to get in while writing code. There are two main.
Unified Modeling Language, Version 2.0
What is an And Gate? It is a digital circuit that produce logical operations The logical operations are call Boolean logical Boolean operation consist.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
ICOM 6115: Computer Systems Performance Measurement and Evaluation August 11, 2006.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Computer Architecture And Organization UNIT-II General System Architecture.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Learning to Detect Faces A Large-Scale Application of Machine Learning (This material is not in the text: for further information see the paper by P.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Software Design Chapter 11. Purposes of Design Design transforms the specification into a design. The end purpose of the design is to produce detail and.
Adaptive Sleep Scheduling for Energy-efficient Movement-predicted Wireless Communication David K. Y. Yau Purdue University Department of Computer Science.
1 ECSE-2610 Computer Components & Operations (COCO) Welcome to the world of Computers!
CSE 3322 Computer Architecture Dr. John Patterson 614 NH Office Hours: M, W 11 –12 noon Grading Policy: Project 25%
1 Data Structures CSCI 132, Spring 2014 Lecture 1 Big Ideas in Data Structures Course website:
Operating Systems COT 4600 – Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: W, F 3:00-4:00 PM.
The article collection PRIS F7 Fredrik Kilander. Content “On agent-based software engineering” Nick Jennings, 1999 “An agent-based approach for building.
Introduction Digital Computer Design Instructor: Kasım Sinan YILDIRIM.
1 Prof. Dr. Nizamettin AYDIN
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Key Principles of Software Architecture and Design (II) adapted from Dave Penny’s.
Modern Systems Analysis and Design Third Edition Chapter 2 Succeeding as a Systems Analyst 2.1.
Strand 1: Social and ethical significance SL/HL core Social and ethical considerations linked to specified IT developments. Students must study the following.
Basic Characteristics of Object-Oriented Systems
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
Introduction To Modeling and Simulation 1. A simulation: A simulation is the imitation of the operation of real-world process or system over time. A Representation.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Chapter 1 Welcome Aboard. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-2 Introduction to the World of.
Computer Organization and Architecture Lecture 1 : Introduction
CSE 3322 Computer Architecture
Engineering and Debugging an App Chapter 15
Designing and Debugging Batch and Interactive COBOL Programs
Objective of This Course
Model Based Testing Venkata Ramana Bandari, Expert Software Engineer
COT 5611 Operating Systems Design Principles Spring 2012
An Introduction to Software Architecture
HIGH LEVEL SYNTHESIS.
Introduction to Computer Programming
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
CSE 542: Operating Systems
A unified extension of lstm to deep network
Presentation transcript:

Managing Complexity: Systems Design March 2, 2001

2 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 Systems Design, cont.

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

4 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 Systems Design, cont.

5 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 Systems Design, cont.

6 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 Systems Design, cont.

7 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(n 2 ) to O(n) Systems Design, cont.

8 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 Systems Design, cont.

9 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 Systems Design, cont.

10 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 Systems Design, cont.

11 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” Systems Design, cont.

12 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 Systems Design, cont.

13 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 Systems Design, cont.

14 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 Systems Design, cont.

15 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? Systems Design, cont.