INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.

Slides:



Advertisements
Similar presentations
Requirements Specification and Management
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
Object-Oriented Analysis and Design
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Avra Software CMPUT Process Quality and Software Assessment Case Study - slide#1©P. Sorenson and Amr Kamel Assessment Plan for Assessment Plan for.
Overview of Software Requirements
NJIT Evolutionary Requirements Chapter 5 Applying UML and Patterns Craig Larman.
SE 555 – Software Requirements & Specifications Introduction
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
This chapter is extracted from Sommerville’s slides. Text book chapter
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
S/W Project Management
CC20O7N - Software Engineering 1 CC2007N Software Engineering 1 Requirements Engineering Practices with Techniques.
UML - Development Process 1 Software Development Process Using UML (2)
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Requirements Analysis
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1Welcome! Rational Requirements Management.
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
Software Requirements Engineering: What, Why, Who, When, and How
Chapter 7 Applying UML and Patterns Craig Larman
Lecture 7: Requirements Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Requirements CS121 Spring Administrivia new student: Guillermo artist: Jackie Wijaya.
Software Prototyping Rapid software development to validate requirements.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
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.
INFO 637Lecture #71 Software Engineering Process II Product Implementation INFO 637 Glenn Booker.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
SWE 513: Software Engineering
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
10-1 McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved.
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
 System Requirement Specification and System Planning.
Software Project Configuration Management
Classifications of Software Requirements
Evolutionary requirements
Recall The Team Skills Analyzing the Problem (with 5 steps)
Requirements Elicitation and Elaboration
Software Requirements analysis & specifications
Requirements Analysis
Software Requirements
Presentation transcript:

INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker

INFO 637Lecture #52 What are Requirements? Requirements describe key characteristics and capabilities desired for your product Requirements include functions your product can perform (functional requirements), and every other aspect of your product or how it was created (non-functional requirements)

INFO 637Lecture #53 Requirements Scope Requirements can cover not only your product (which may include software, hardware, and networking components) but also:  Documentation  Training  The process for creating the product  Service or maintenance

INFO 637Lecture #54 FURPS+ One way of describing requirements is using the FURPS+ breakdown  F is for Functional  U is for Usability  R is for Reliability  P is for Performance  S is for Supportability  The “+” is for everything else (Stolen from Larman’s Applying UML and Patterns, 2 nd ed.)

INFO 637Lecture #55 Functional Requirements Functional Requirements include every method of obtaining input, processing inputs, and generating outputs Often this is the most complex list of requirements Directly relates to system-level testing after product is completed – can each requirement be met?

INFO 637Lecture #56 Usability Requirements Usability requirements describe how your product was designed to accommodate interaction with humans Includes human factors, types of help available, and documentation Some non-functional requirements may be testable, others not

INFO 637Lecture #57 Reliability Requirements Reliability requirements may specify goals for mean time between failures (MTBF), recoverability, and predictability of results  Particularly used for mission-critical systems

INFO 637Lecture #58 Performance Requirements Performance relates here to how fast or how much the product can accomplish These typically include response time for queries, volume of throughput, and/or resource usage (e.g. in terms of CPU, disk, memory, or network traffic)

INFO 637Lecture #59 Supportability Requirements How easy is it to support this system? How easy is it to adapt to new needs, or be reconfigured? How easy is it to maintain? Can it adapt to other countries (e.g. language, power needs, etc.)?

INFO 637Lecture #510 Other Requirements The “+” includes other kinds of requirements:  Implementation constraints (hardware, resources, etc.)  Interfaces to external systems (which you don’t control)  Operations; how is it used operationally?  Packaging; how is it shipped?  Legal; export and licensing issues

INFO 637Lecture #511 Constraints Requirements can include constraints on your product or how it is created  Comply with existing PC’s, or development environment, or database system  Comply with business rules  Comply with physical or logistical constraints  Must be developed by a woman-owned, CMM level three small business (for example!)  Or any other kind of constraint

INFO 637Lecture #512 Software Requirements Spec Requirements can be captured in a Software Requirements Specification (SRS) The SRS can also be used as a contract, binding the developer to commit to exactly what they will create for the customer  Helps avoid misunderstandings and unhappy customers by making expectations clearer

INFO 637Lecture #513 Communication is the Key While a good SRS is very helpful, the bigger need is for the developers and customer to communicate with each other  Driving 100 mph in the wrong direction won’t get you to your destination and faster!  Similarly, starting development without knowing what you need to create won’t help you finish quickly

INFO 637Lecture #514 Requirements Change Even projects with “well known requirements” from the beginning typically have 30% of those requirements change before the project is completed Must expect requirements will change, and create a process to control those changes

INFO 637Lecture #515 Requirements Change Changes cost time and effort – need to quantify those to know how much cost to expect  Otherwise it’s like taking your car to a mechanic and telling them to do whatever they want Often a Configuration Control Board (CCB) is used to determine whether a particular change is acceptable

INFO 637Lecture #516 Change Control To determine if a change is needed, follow some sort of process  See Change Control handout First step is to screen or scrub the proposed change  Do we understand what is suggested?  Is it really needed?  Has someone already suggested it?

INFO 637Lecture #517 Change Control Then we need to estimate how much work the change will be  Estimate size, cost, and effort needed to implement it  Determine who could best implement it  Determine its priority Then start implementing the change after approval by the CCB

INFO 637Lecture #518 Change Control The developers create the change, do unit testing, and get peer review approval of the change Once ready, the CCB may determine when the change will be implemented (often the next available build) Many changes may be built together, and tested to make sure they all work

INFO 637Lecture #519 Change Control Then the CCB reviews the system test results, and approves release of the change The change is now part of the new system baseline Process is very similar for software system maintenance, not just development

INFO 637Lecture #520 Extracting Requirements Requirements are obtained (elicited) by working from the most clearly understood aspects to the most vague  Assess system feasibility  Understand organizational issues  Identify system stakeholders  Record requirements sources

INFO 637Lecture #521 Extracting Requirements  Define operating environment  Assess business issues  Define domain constraints  Record requirements rationale  Prototype poorly understood requirements  Define usage scenarios  Define operational processes

INFO 637Lecture #522 Another Example The sample RFI includes examples of functional requirements, constraints, and meaningless jabber  See Sample SIR handout Can you tell them apart?

INFO 637Lecture #523 SRS Structure Many different structures are available for an SRS  The text’s is on page 113  An SRS may range from a few pages long to hundreds The SRS may be used to write system- level test procedures, to test whether every requirement works in the final product

INFO 637Lecture #524 SRS Script The development script for creating the SRS includes:  Reviewing and clarifying the system needs  Allocating parts of the SRS to be done by each team member  Developing the system test plan  Inspecting the SRS and test plan  Refining the SRS and test plan

INFO 637Lecture #525 End Product This phase results in a completed (baselined) SRS and the system test plan  While simple in concept, these control everything which happens from this point on They are now baselined documents, so changes to them need to be submitted via the change process (form CCR)