© 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

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
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.
Unit 2. Software Lifecycle
Software Project Management
© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. System design techniques Design methodologies. Requirements and specification. 1.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Software lifecycle. CS351 - Software Engineering (AY2007)Slide 2 Reading Chapters 1 – 4 of Pressman. Chapter 1 covers some background regarding the nature.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Software Process Models
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction to Software Engineering Dr. Basem Alkazemi
Unit 191 Introduction to Software Engineering The objective of this section is to introduce the subject of software engineering. When you have read this.
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
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.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Software Life Cycle Model
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
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.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
CS101 Introduction to Computing Lecture SW Development Methodology.
© 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.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Engineering Management Lecture 1 The Software Process.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
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.
1 Introduction to Software Engineering Lecture 1.
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.
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
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
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:
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
© 2000 Morgan Kaufman Overheads for Computers as Components1 Design methodologies zA procedure for designing a system. zUnderstanding your methodology.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
 A life cycle of product development is commonly referred as the “model”  A simple model contains five phases  Requirement analysis  Design  Development.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Methodologies and Algorithms
Software Engineering Management
Lecture 3 Prescriptive Process Models
Software Process Models
System design techniques
CS101 Introduction to Computing Lecture 20 SW Development Methodology
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Software Engineering Lecture 17.
Human Computer Interaction Lecture 14 HCI in Software Process
Software Development Overview
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 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.