Requirements Analysis Lecture #3 David Andrews

Slides:



Advertisements
Similar presentations
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Advertisements

1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 19 Scheduling IV.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
The Design Process Outline Goal Reading Design Domain Design Flow
1 CSSE 477 – A bit more on Performance Steve Chenoweth Friday, 9/9/11 Week 1, Day 2 Right – Googling for “Performance” gets you everything from Lady Gaga.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Requirements Analysis Lecture #3 David Andrews
Overview of Software Requirements
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Slide - 1 Dr Terry Hinton 6/9/05UniS - Based on Slides by Micro Analysis & Design An example of a Simulation Simulation of a bank: Three tasks or processes:
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Writing a Program Chapter 1. Introduction We all “start” by learning how to code in some programming language. –With a small, hypothetical, and fairly.
The Software Development Life Cycle: An Overview
S/W Project Management
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
Simulation II IE 2030 Lecture 18. Outline: Simulation II Advanced simulation demo Review of concepts from Simulation I How to perform a simulation –concepts:
CSCE 548 Secure Software Development Risk-Based Security Testing.
1 Performance Evaluation of Computer Networks: Part II Objectives r Simulation Modeling r Classification of Simulation Modeling r Discrete-Event Simulation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
Designing a Discrete Event Simulation Tool Peter L. Jackson School of Operations Research and Industrial Engineering March 15, 2003 Cornell University.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
1 OM2, Supplementary Ch. D Simulation ©2010 Cengage Learning. All Rights Reserved. May not be scanned, copied or duplicated, or posted to a publicly accessible.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Software Requirements Engineering CSE 305 Lecture-2.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
Approaching a Problem Where do we start? How do we proceed?
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 7: Requirements Engineering
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Algorithms & Flowchart
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Chapter 4 Software Requirements
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Nonbehavioral Specifications Non-behavioral Characteristics Portability Portability Reliability Reliability Efficiency Efficiency Human Engineering.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
November 29, 2011 Final Presentation. Team Members Troy Huguet Computer Engineer Post-Route Testing Parker Jacobs Computer Engineer Post-Route Testing.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Software Requirements Specification Document (SRS)
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Advantages of simulation 1. New policies, operating procedures, information flows and son on can be explored without disrupting ongoing operation of the.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
 Simulation enables the study of complex system.  Simulation is a good approach when analytic study of a system is not possible or very complex.  Informational,
The first question is really "Why do you need a control system at all?” Consider the following: What good is an airplane if you are a pilot and you.
Failure Modes and Effects Analysis (FMEA)
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.
 System Requirement Specification and System Planning.
Traffic Simulation L2 – Introduction to simulation Ing. Ondřej Přibyl, Ph.D.
Information Systems Development
OPERATING SYSTEMS CS 3502 Fall 2017
CSCE 548 Secure Software Development Risk-Based Security Testing
Classifications of Software Requirements
Information Systems Development
Software testing strategies 2
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Design Yaodong Bi.
Presentation transcript:

Requirements Analysis Lecture #3 David Andrews

What We Will Cover Today Typical Design Flow –Top Down Design Approach Understanding Requirements –Functional –Behavioral –Timing –Physical Perform Requirements Analysis on Specific Example –Taking Verbal Description and Generating Requirements

Overview of Top Down Design Requirements Assessment: What is it –Paper and pencil work/Negotiations with customer –Final requirements is your contract with customer, need to get it correct –Documentation: System Requirements Specification (SRS) Top Level Design: Where are you going to put it –Functional Descriptions/Block Diagrams –Hardware Software partitioning –Automated Tools available (will discuss later) –Documentation: Hardware/Software Top Level Design Documents (STLDD/HTLDD)

Overview of Top Down Design Detailed Design: How are you going to design it –Hardware Component selections, Fan Ins/Outs, simulations –Software Modules, Subroutines –Documentation: Hardware/Software Detailed Design Document (HDDD/SDDD) Integration and Test: Frustration –Before Modules Brought Together, Unit Test –Bring Modules Together. This is where the rubber hits the road –Testing Based on Pre-Defined Hardware/Software Test Plan (HTP/STP)

Top Down Philosophy Design Process is iterative, you make a stab at next lower level, then based on results, revisit upper level and adjust. Adjustments affect everyone, not just you This seems like work, why not just “go for it” –Need to know what you are designing first before designing it. –Much easier to get a warm and fuzzy that the big picture is correct –Most projects are group oriented, you need to interface with others –10:1 rule Each hour spent at the higher abstract level will save 10 hours at the next lower level. –Very expensive in Cost and Time to get to integration and test, and find that you make errors.

Requirements Analysis Requirements Assessment: What is it –Timing: How fast does your system need to be ? MIPS/FLOPS, turnaround times, input/output times etc –Sizing: Most Systems are size limited. Anyone can develop a supercomputer/flight controller etc if you have enough space. –Interfaces: Are you hooked up to sensors inputting data ? How is the world going to communicate with your system ? –Other Special Requirements (Radiation Hardened, etc) These can affect cost, size, performance etc. Customer may give you a laundry list that sometimes can be conflicting. You need to apply engineering expertise to give honest assessments. Customer may not really know all requirements, you again must help Most Contract bids are based on Requirements Analysis. You must have a good understanding of all requirements in order to propose a feasible system solution THIS IS YOUR CONTRACT, WHEN YOU IMPLEMENT ALL REQUIREMENTS YOU ARE DONE. IF THEY ARE NOT IMPLEMENTED, YOU ARE NOT

Top Level Design Top Level Design: Where are you going to put it –System Block Diagram –System Address Map –Debug Support –Derived Requirements –Subsystem Interfaces This is your Top Level Partitioning. Teams are assigned to implement modules defined here. IMPORTANT: Interfaces are defined. This allows teams to work independently and simultaneously. Derived requirements are targets for teams. They may not know or care about overall system. They just meet the derived requirements. Don’t miss debug support. This may not be discussed in requirements analysis, but is key for further design and implementation

Detailed Design Each Module in Top Level Design is further partitioned and designed. More derived requirements for each block in a module. Interfaces within module are defined, chips selected, actual signals/interconnections are defined. Functional Simulations are performed to guarantee the functionality of the Module. I.e., is the correct answer produced ? Are the algorithms correct ? Simulations of Hardware performed in structured fashion (More Later) with automated tools. Detailed Design is last chance to functionally knock out bugs before tedious implementation. Automated Tools are Helping in the Detailed Design

Implementation At this stage, the design should be proven correct. You want to implement the correct logic, etc. Circuit design based on Logic Family Board Layouts. Physical constraints such as size, weight, power must be met. This is the last step in the design process (before trying to make sense of what you designed). It took a long time to get here, but if done correctly, this is only a mechanical excersize.

Integration and Test Where the Rubber hits the road..... This step is usually underwhelmed in planning stage, and is overwhelming in actual work. Integration and Test can take as long or longer than the other design steps. Philosophy: Minimize the unknowns. Common approach of junior engineers is to “go for it”. Better to take tiny bites than choke on a big piece. Test Modules First, subsystems second, then two subsystems, then multiple tested subsystems etc. You must go back and retest other components when anything that affects it changes. The results of this is when you get paid

Summary Design Methods –Top Down –Bottom Up –Random Top Down Design Steps –System Requirements Specification What Document SRS –Top Level Design Where Document STLDD/HTLDD –Detailed Design How Document (Schematics, Code) –Integration and Test Selloff Document STP/HTP

Requirements Lets Take a Closer Look at Requirements

Types of Requirements Functional Requirements “Depressing button X shall illuminate light Y within 200 msec.” Non-functional Requirements “Mean time between unsafe operating situations for each train car shall be greater than 250,000 years” (BART specification) “Mean time to repair a single component failure shall be less than 30 minutes after arrival of mechanic bringing standard tool set.” (typical jet aircraft) “Vehicle shall exceed 25 mpg” “Elevator system shall deliver at least 1000 passenger*floors per minute at up-peak” Constraints Specifies a required technical or other approach – “CORBA technology shall be used” Specifies regulatory or other constraints on solution space/design process – “System shall conform to requirements of DO-178b” (FAA software process)

Detailed Behavioral Requirements 1. List subsystems In a fine-grain distributed system, this is sensors+actuators+objects – “Other objects” are usually compute-nodes such as dispatcher Actors included to provide environmental model and interface 2. Create a database of behavioral requirements for each subsystem Replication Instantiation – Initial conditions – When are dynamic objects are created? I/O interface (list of sensor/actuator interfaces) State (private variables useful for describing behavioral memory) Constraints – Non-functional requirements; safety interlocks Behaviors – Functional requirements

Some Characteristics of a Good Requirement Understandable and unambiguous Understandable to system designers who have to implement it Understandable to marketing/sales/customers who know the needs Understandable to outside vendors (non-domain experts) who have to build it Concise (few words) and simple Implementation-neutral Doesn’t say how to do it, just what the desired outcome/action/side-effect is Testable If you can’t test it, how do you know the system meets the requirement? – Constraints can be difficult – how to you prove something is impossible? Traceable Must be possible to trace that requirement is satisfied by final system – Sometimes done by tracing to features/system component functions – More often done in practice by tracing to system tests

Modeling The System Build models to check requirements Making model executable forces designer to confront details Models help look for bottlenecks and explore design alternatives We’re going to discuss common examples of different models “Plumbing diagram” for capacity analysis Statistical/queuing models Functional models Analytic models Hybrids Time can be treated as: Discrete Event / Continuous / Cycle / Hybrid

Capacity Models (with network example) “Plumbing Diagram” / spreadsheet: Messages are delivered from source to destination Example: Maximum bandwidth 1000 msgs/sec (might also be in bytes/sec) – But nodes may be limited by CPU power to lower bandwidths

Statistical Models Statistical: Maximum bandwidth Time delay at 50% of maximum bandwidth Ignore noise, failures Detailed statistical: Delivery time (including retries) Loss probability (with limited retries) Maximum bandwidth possible Service degradation vs. used bandwidth Queueing theory (Math beyond the scope of this course…)

Functional & Implementation Models Functional CAN network is a priority queue Feed messages to network and see what happens Implementation Verilog for CAN chip implementation… But, some things usually don’t matter Implementation below level of abstraction – e.g., if motor is controlled with voltage, current, pulse-width modulation – e.g., type of sensor/actuator as long as it implements the correct function

Simulation Models Coupled analytic models (e.g., spreadsheets) 12 messages, 113 bits each, sent at 20 Hz 5 messages, 118 bits each, sent at 2 Hz... Continuous Time models Usually used in physical domain (e.g., computational fluid dynamics) Cycle-based models e.g., Verilog Ends up being how time-triggered simulations run Simulation speed proportional to length of time simulated Discrete Event simulations Events are queued for action at specified times (e.g., wait 100 msec then do X) Simulation “clock” fast-forwarded to next queued event at zero cost Simulation speed proportional to number of events