© 2000 Morgan Kaufman Overheads for Computers as Components System design techniques zDesign methodologies. zRequirements and specification.

Slides:



Advertisements
Similar presentations
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Advertisements

Systems Development Environment
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. System design techniques Design methodologies. Requirements and specification. 1.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
© 2000 Morgan Kaufman Overheads for Computers as Components System design techniques zDesign methodologies. zRequirements and specification.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Software Process Models
Ch 3 System Development Environment
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
© Copyright Eliyahu Brutman Programming Techniques Course.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Life Cycle Model
Chapter 7: The Object-Oriented Approach to Requirements
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
Managing the development and purchase of information systems (Part 1)
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Instructor: Peter Clarke
Software Engineering Management Lecture 1 The Software Process.
Systems Analysis and Design in a Changing World, Fifth Edition
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
1 Introduction to Software Engineering Lecture 1.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
Systems Analysis and Design in a Changing World, Fourth Edition
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
© 2005 ECNU SEIPrinciples of Embedded Computing System Design1 System design techniques zDesign methodologies. zRequirements and specification.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
© 2000 Morgan Kaufman Overheads for Computers as Components1 Design methodologies zA procedure for designing a system. zUnderstanding your methodology.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 3: Embedded Computing High Performance Embedded Computing Wayne Wolf.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
CSE784 – Software Studio Jim Fawcett Fall 2002.
Methodologies and Algorithms
Software Engineering Management
Lecture 3 Prescriptive Process Models
Chapter 1: Introduction to Systems Analysis and Design
CSE784 – Software Studio Jim Fawcett Fall 2006.
System design techniques
Introduction to Software Engineering
University of Houston-Clear Lake
Copyright 2007 Oxford Consulting, Ltd
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Presentation transcript:

© 2000 Morgan Kaufman Overheads for Computers as Components System design techniques zDesign methodologies. zRequirements and specification.

© 2000 Morgan Kaufman Overheads for Computers as Components Design methodologies zProcess for creating a system. zMany systems are complex: ylarge specifications; ymultiple designers; yinterface to manufacturing. zProper processes improve: yquality; ycost of design and manufacture.

© 2000 Morgan Kaufman Overheads for Computers as Components Product metrics zTime-to-market: ybeat competitors to market; ymeet marketing window (back-to-school). zDesign cost. zManufacturing cost. zQuality.

© 2000 Morgan Kaufman Overheads for Computers as Components Mars Climate Observer zLost on Mars in September zRequirements problem: yRequirements did not specify units. yLockheed Martin used English; JPL wanted metric. zNot caught by manual inspections.

© 2000 Morgan Kaufman Overheads for Computers as Components Design flow zDesign flow: sequence of steps in a design methodology. zMay be partially or fully automated. yUse tools to transform, verify design. zDesign flow is one component of methodology. Methodology also includes management organization, etc.

© 2000 Morgan Kaufman Overheads for Computers as Components Waterfall model zEarly model for software development: requirements architecture coding testing maintenance

© 2000 Morgan Kaufman Overheads for Computers as Components Waterfall model steps zRequirements: determine basic characteristics. zArchitecture: decompose into basic modules. zCoding: implement and integrate. zTesting: exercise and uncover bugs. zMaintenance: deploy, fix bugs, upgrade.

© 2000 Morgan Kaufman Overheads for Computers as Components Waterfall model critique zOnly local feedback---may need iterations between coding and requirements, for example. zDoesn’t integrate top-down and bottom- up design. zAssumes hardware is given.

© 2000 Morgan Kaufman Overheads for Computers as Components Spiral model requirements design test system feasibility specification prototype initial system enhanced system

© 2000 Morgan Kaufman Overheads for Computers as Components Spiral model critique zSuccessive refinement of system. yStart with mock-ups, move through simple systems to full-scale systems. zProvides bottom-up feedback from previous stages. zWorking through stages may take too much time.

© 2000 Morgan Kaufman Overheads for Computers as Components Successive refinement model specify architect design build test initial system specify architect design build test refined system

© 2000 Morgan Kaufman Overheads for Computers as Components Hardware/software design flow requirements and specification architecture hardware design software design integration testing

© 2000 Morgan Kaufman Overheads for Computers as Components Co-design methodology zMust architect hardware and software together: yprovide sufficient resources; yavoid software bottlenecks. zCan build pieces somewhat independently, but integration is major step. zAlso requires bottom-up feedback.

© 2000 Morgan Kaufman Overheads for Computers as Components Hierarchical design flow zEmbedded systems must be designed across multiple levels of abstraction: ysystem architecture; yhardware and software systems; yhardware and software components. zOften need design flows within design flows.

© 2000 Morgan Kaufman Overheads for Computers as Components Hierarchical HW/SW flow spec architecture HWSW integrate test system spec HW architecture detailed design integration test hardware spec SW architecture detailed design integration test software

© 2000 Morgan Kaufman Overheads for Computers as Components Concurrent engineering zLarge projects use many people from multiple disciplines. zWork on several tasks at once to reduce design time. zFeedback between tasks helps improve quality, reduce number of later design problems.

© 2000 Morgan Kaufman Overheads for Computers as Components Concurrent engineering techniques zCross-functional teams. zConcurrent product realization. zIncremental information sharing. zIntegrated product management. zSupplier involvement. zCustomer focus.

© 2000 Morgan Kaufman Overheads for Computers as Components AT&T PBX concurrent engineering zBenchmark against competitors. zIdentify breakthrough improvements. zCharacterize current process. zCreate new process. zVerify new process. zImplement. zMeasure and improve.

© 2000 Morgan Kaufman Overheads for Computers as Components Requirements analysis zRequirements: informal description of what customer wants. zSpecification: precise description of what design team should deliver. zRequirements phase links customers with designers.

© 2000 Morgan Kaufman Overheads for Computers as Components Types of requirements zFunctional: input/output relationships. zNon-functional: ytiming; ypower consumption; ymanufacturing cost; yphysical size; ytime-to-market; yreliability.

© 2000 Morgan Kaufman Overheads for Computers as Components Good requirements zCorrect. zUnambiguous. zComplete. zVerifiable: is each requirement satisfied in the final system? zConsistent: requirements do not contradict each other.

© 2000 Morgan Kaufman Overheads for Computers as Components Good requirements, cont’d. zModifiable: can update requirements easily. zTraceable: yknow why each requirement exists; ygo from source documents to requirements; ygo from requirement to implementation; yback from implementation to requirement.

© 2000 Morgan Kaufman Overheads for Computers as Components Setting requirements zCustomer interviews. zComparison with competitors. zSales feedback. zMock-ups, prototypes. zNext-bench syndrome (HP): design a product for someone like you.

© 2000 Morgan Kaufman Overheads for Computers as Components Specifications zCapture functional and non-functional properties: yverify correctness of spec; ycompare spec to implementation. zMany specification styles: ycontrol-oriented vs. data-oriented; ytextual vs. graphical. zUML is one specification/design language.

© 2000 Morgan Kaufman Overheads for Computers as Components SDL zUsed in telecommunications protocol design. zEvent-oriented state machine model. telephone on-hook dial tone caller goes off-hook caller gets dial tone

© 2000 Morgan Kaufman Overheads for Computers as Components Statecharts zAncestor of UML state diagrams. zProvided composite states: yOR states; yAND states. zComposite states reduce the size of the state transition graph.

© 2000 Morgan Kaufman Overheads for Computers as Components Statechart OR state S1 S2 S3 S4 i1 i2 traditional S1 S2 S3 S4 i1 i2 OR state s123

© 2000 Morgan Kaufman Overheads for Computers as Components Statechart AND state S1-3S1-4 S2-3S2-4 S5 traditional c d b a r c d b a S1S3 S2S4 S5 AND state c d r b a sab r

© 2000 Morgan Kaufman Overheads for Computers as Components AND-OR tables zAlternate way of specifying complex conditions: cond1 or (cond2 and !cond3) cond1T- cond2-T cond3-F AND OR

© 2000 Morgan Kaufman Overheads for Computers as Components TCAS II specification zTCAS II: aircraft collision avoidance system. zMonitors aircraft and air traffic info. zProvides audio warnings and directives to avoid collisions. zLeveson et al used RMSL language to capture the TCAS specification.

© 2000 Morgan Kaufman Overheads for Computers as Components RMSL zState description:z Transition bus for transitions between many states: state1 inputs state description outputs a b c d

© 2000 Morgan Kaufman Overheads for Computers as Components TCAS top-level description CAS power-off power-on Inputs: TCAS-operational-status {operational,not-operational} fully-operational C standby own-aircraft other-aircraft i:[1..30] mode-s-ground-station i:[1..15]

© 2000 Morgan Kaufman Overheads for Computers as Components Own-Aircraft AND state CAS Inputs: own-alt-radio: integer standby-discrete-input: {true,false} own-alt-barometric:integer, etc. Effective-SLAlt-SLAlt-layer Climb-inibitDescend-inibit Increase-climb-inibit Increase-Descend-inibit Advisory-Status Outputs: sound-aural-alarm: {true,false} aural-alarm-inhibit: {true, false} combined-control-out: enumerated, etc.

© 2000 Morgan Kaufman Overheads for Computers as Components CRC cards zWell-known method for analyzing a system and developing an architecture. zCRC: yclasses; yresponsibilities of each class; ycollaborators are other classes that work with a class. zTeam-oriented methodology.

© 2000 Morgan Kaufman Overheads for Computers as Components CRC card format Class name: Superclasses: Subclasses: Responsibilities:Collaborators: Class name: Class’s function: Attributes: frontback

© 2000 Morgan Kaufman Overheads for Computers as Components CRC methodology zDevelop an initial list of classes. ySimple description is OK. yTeam members should discuss their choices. zWrite initial responsibilities/collaborators. yHelps to define the classes. zCreate some usage scenarios. yMajor uses of system and classes.

© 2000 Morgan Kaufman Overheads for Computers as Components CRC methodology, cont’d. zWalk through scenarios. ySee what works and doesn’t work. zRefine the classes, responsibilities, and collaborators. zAdd class relatoinships: ysuperclass, subclass.

© 2000 Morgan Kaufman Overheads for Computers as Components CRC cards for elevator zReal-world classes: yelevator car, passenger, floor control, car control, car sensor. zArchitectural classes: car state, floor control reader, car control reader, car control sender, scheduler.

© 2000 Morgan Kaufman Overheads for Computers as Components Elevator responsibilities and collaborators