© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. System design techniques Design methodologies. Requirements and specification. 1.

Slides:



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

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.
Software Project Management
CS487 Software Engineering Omar Aldawud
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
 2004 by SEC Chapter 2 Software Development Process Models.
© 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
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Embedded Systems Introduction to Embedded Software C.-Z. Yang Sept.-Dec
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.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
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
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
© 2000 Morgan Kaufman Overheads for Computers as Components System design techniques zDesign methodologies. zRequirements and specification.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Managing the development and purchase of information systems (Part 1)
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
© 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 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.
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.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
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
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
© 2005 ECNU SEIPrinciples of Embedded Computing System Design1 System design techniques zDesign methodologies. zRequirements and specification.
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.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
 System Requirement Specification and System Planning.
Methodologies and Algorithms
Software Engineering Management
An Overview of Requirements Engineering Tools and Methodologies*
Lecture 3 Prescriptive Process Models
Chapter 1: Introduction to Systems Analysis and Design
System design techniques
Software Design Methodology
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:

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. System design techniques Design methodologies. Requirements and specification. 1

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Design methodologies Process for creating a system. Many systems are complex: large specifications; multiple designers; interface to manufacturing. Proper processes improve: quality; cost of design and manufacture. 2

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Product metrics Time-to-market: beat competitors to market; meet marketing window (back-to-school). Design cost. Manufacturing cost. Quality. 3

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Mars Climate Observer Lost on Mars in September Requirements problem: Requirements did not specify units. Lockheed Martin used English; JPL wanted metric. Not caught by manual inspections. 4

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Design flow Design flow: sequence of steps in a design methodology. May be partially or fully automated. Use tools to transform, verify design. Design flow is one component of methodology. Methodology also includes management organization, etc. 5

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Waterfall model Early model for software development: requirements architecture coding testing maintenance 6

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Waterfall model steps Requirements: determine basic characteristics. Architecture: decompose into basic modules. Coding: implement and integrate. Testing: exercise and uncover bugs. Maintenance: deploy, fix bugs, upgrade. 7

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Waterfall model critique Only local feedback---may need iterations between coding and requirements, for example. Doesn’t integrate top-down and bottom- up design. Assumes hardware is given. 8

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Spiral model requirements design test system feasibility specification prototype initial system enhanced system 9

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Spiral model critique Successive refinement of system. Start with mock-ups, move through simple systems to full-scale systems. Provides bottom-up feedback from previous stages. Working through stages may take too much time. 10

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Successive refinement model specify architect design build test initial system specify architect design build test refined system 11

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Hardware/software design flow requirements and specification architecture hardware design software design integration testing 12

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Co-design methodology Must architect hardware and software together: provide sufficient resources; avoid software bottlenecks. Can build pieces somewhat independently, but integration is major step. Also requires bottom-up feedback. 13

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Hierarchical design flow Embedded systems must be designed across multiple levels of abstraction: system architecture; hardware and software systems; hardware and software components. Often need design flows within design flows. 14

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. 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 15

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Concurrent engineering Large projects use many people from multiple disciplines. Work on several tasks at once to reduce design time. Feedback between tasks helps improve quality, reduce number of later design problems. 16

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Concurrent engineering techniques Cross-functional teams. Concurrent product realization. Incremental information sharing. Integrated product management. Supplier involvement. Customer focus. 17

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. AT&T PBX concurrent engineering Benchmark against competitors. Identify breakthrough improvements. Characterize current process. Create new process. Verify new process. Implement. Measure and improve. 18

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Requirements analysis Requirements: informal description of what customer wants. Specification: precise description of what design team should deliver. Requirements phase links customers with designers. 19

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Types of requirements Functional: input/output relationships. Non-functional: timing; power consumption; manufacturing cost; physical size; time-to-market; reliability. 20

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Good requirements Correct. Unambiguous. Complete. Verifiable: is each requirement satisfied in the final system? Consistent: requirements do not contradict each other. 21

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Good requirements, cont’d. Modifiable: can update requirements easily. Traceable: know why each requirement exists; go from source documents to requirements; go from requirement to implementation; back from implementation to requirement. 22

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Setting requirements Customer interviews. Comparison with competitors. Sales feedback. Mock-ups, prototypes. Next-bench syndrome (HP): design a product for someone like you. 23

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Specifications Capture functional and non-functional properties: verify correctness of spec; compare spec to implementation. Many specification styles: control-oriented vs. data-oriented; textual vs. graphical. UML is one specification/design language. 24

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. SDL Used in telecommunications protocol design. Event-oriented state machine model. telephone on-hook dial tone caller goes off-hook caller gets dial tone 25

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Statecharts Ancestor of UML state diagrams. Provided composite states: OR states; AND states. Composite states reduce the size of the state transition graph. 26

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Statechart OR state S1 S2 S3 S4 i1 i2 traditional S1 S2 S3 S4 i1 i2 OR state s123 27

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. 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 28

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. AND-OR tables Alternate way of specifying complex conditions: cond1 or (cond2 and !cond3) cond1T- cond2-T cond3-F AND OR 29

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. TCAS II specification TCAS II: aircraft collision avoidance system. Monitors aircraft and air traffic info. Provides audio warnings and directives to avoid collisions. Leveson et al used RMSL language to capture the TCAS specification. 30

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. RMSL State description: Transition bus for transitions between many states: state1 inputs state description outputs a b c d 31

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. 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] 32

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. 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. 33

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. CRC cards Well-known method for analyzing a system and developing an architecture. CRC: classes; responsibilities of each class; collaborators are other classes that work with a class. Team-oriented methodology. 34

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. CRC card format Class name: Superclasses: Subclasses: Responsibilities:Collaborators: Class name: Class’s function: Attributes: frontback 35

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. CRC methodology Develop an initial list of classes. Simple description is OK. Team members should discuss their choices. Write initial responsibilities/collaborators. Helps to define the classes. Create some usage scenarios. Major uses of system and classes. 36

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. CRC methodology, cont’d. Walk through scenarios. See what works and doesn’t work. Refine the classes, responsibilities, and collaborators. Add class relatoinships: superclass, subclass. 37

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. CRC cards for elevator Real-world classes: elevator car, passenger, floor control, car control, car sensor. Architectural classes: car state, floor control reader, car control reader, car control sender, scheduler. 38

© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. Elevator responsibilities and collaborators 39