Requirements Analysis & Requirements Specification
Requirements Engineering  Requirements Elicitation Requirements  Analysis Requirements  Specification Requirements Verification Requirements Management Requirements Engineering
Requirements Analysis & Specification Definitions Requirements Analysis The process of  studying and analyzing  the customer and the user/stakeholder needs to arrive at  a  definition  of software requirements. Requirements Specification A document that clearly and precisely* describes, each of the essential requirements of the software and the external interfaces.  (functions, performance, design constraint, and quality attributes) Each requirement is defined in such a way that its achievement is capable of being  objectively verified  by a prescribed method; for example inspection, demonstration, analysis, or test. 2
Types of Requirements Functional requirements Performance requirements Speed, accuracy, frequency, throughput External interface requirements Design constraints Requirements are usually about “what”, this is a “how”. Quality attributes i.e. reliability, portability, maintainability, supportability
What vs. How Dilemma 3 User Needs System  Requirements System Design Software Requirements Software Design What How What How What How What How
Requirements vs. Design Customer not interested (Most of the time) except for external Customer interested There is only one (final) solution There is more than one solution Primary goal of design: OPTIMIZATION Primary goal of analysis: UNDERSTANDING Describe  how  it will be done Describe  what  will be delivered Design Requirements
Software Quality Attributes 4 Correctness Reliability Rating = 1 – (Num Errors/ Num LOC) Can be allocated to subsystems Efficiency Integrity Usability Survivability Maintainability Verifiability Flexibility Portability Reusability Interoperability Expandability
Analysis of Elicitation  results helps to create  a Vision Settle on which problem  -  Explain in the problem statement (2.2) Marketing group establishes positioning of the product (2.3) Stakeholder and User Summaries -  User is a special case of stakeholder - Identify all stakeholders w.r.t. development: Name Represents Role - Identify all users w.r.t. system: Name  Description Stakeholder
Stakeholder Profiles (3.5) Representative  - who (name) is representing this stakeholder type. Description  - brief description of the stakeholder type Type  - Qualify s-h’s expertise, technical background, degree of sophistication Responsibilities  - List s-h’s key responsibilities  with regard to the system being developed  - why a stakeholder? Success Criteria  - How does the stakeholder define success?  How rewarded? Involvement  - involved in the project in what way? Requirements reviewer, system tester, ... Deliverables*  - required by the stakeholder Comments/Issues  - Problems that interfere w/ success, etc.
User Profiles (3.6) Representative  - Who represents this user? (might be a stakeholder) Description  - of the  user type Type  - qualify expertise, technical background, degree of sophistication Responsibilities  - user’s key resp.’s w.r.t. system being developed  Success Criteria  - how this user defines success? rewarded? Involvement  - How user involved in this  project ? what role? Deliverables  - Are there any deliverables the user  produces ?  For whom? Comments/Issues  - Problems that interfere w/ success, etc. This includes trends that make the user’s job easier or harder
User Environment  (3.4) -- working environment of target user Number of  people  involved in doing this now? Changing? How long is a  task cycle  now?  Changing? Any unique  environmental constraints : mobile, outdoors, in-flight, etc. Which  system platforms  are in use today?  future? What  other applications  are in use?  Need to integrate?
Key Stakeholder or User Needs (3.7) List key problems with existing solutions  as perceived by  the stakeholder or user. What are the reasons for this problem? How is it solved now? What solutions does the stakeholder want? What is relative importance of solving each problem? Alternatives and Competition (3.8)
Product Overview (4.) (at last!) 4.1 Product perspective  (context) Put the product in perspective to other related products and the user’s environment. Independent?  Component of a larger system? How do the subsystems interact with this? Known interfaces between them and this component? Block diagram
Product Overview (4.) (at last!) 4.2  Summary  of Capabilities Customer  Benefit Supporting Features 1.  2.  3.  4.
Product Overview (4.) (at last!) 4.3  Assumptions and dependencies What factors affect the features above? List assumptions that,  if changed , ALTER this document 4.4  Cost and pricing  -- not done by engineering 4.5  Licensing and installation  -- different types of license enforcement will create more requirements for the development effort
What’s a feature? - high level capability  necessary to deliver benefit to the user - externally desired service  that typically requires inputs to achieve Level of detail must be  general  -- this is not the requirements spec for the developers. Provide the  basis  for  product definition ,  scope management , and  project management . Each will be expanded in the use-cases or other requirements Externally perceivable by users or external systems Product Features (5.)
What is  not  in the Product Features  Section? Design Constraints  -- These go in section 6. Design constraints External constraints Quality Ranges  -- These go in section 7 ranges for performance, robustness, fault tolerance, etc. that are not really features (specific capabilities, functions)
Precedence and  Priority (8.) Which features  essential ? We will delay shipment in order to have these We will postpone the feature in order to meet first-release goal
Other  Product Requirements These are requirements that are  not  features (functions)  of the product hardware platform  requirements --  system  requirements -- supported host o.s.’s, peripherals, companion software environmental  requirements -- temperature, shock, humidity, radiation, usage conditions, resource availability, maintenance issues, type of error recovery applicable standards  -- legal, regulatory, communications
Documentation  Requirements What must be developed to support successful deployment? User Manual? Online Help? Installation guide?  Read Me file? Labeling, packaging?
Vision Doc adds basis for SRS
Use Case Internals Use Case Name Scope Level Primary Actor Stakeholders & interests Preconditions Success Guarantee  (post-conditions) Basic Flow Alternate Flows (extensions) Error Flows Subflows Special requirements Technology & data variations list Frequency of occurrence Open Issues
Fully Dressed Example:  Process Sale Primary Actor:   Cashier Stakeholders and Interests: -  Cashier :   Wants accurate, fast entry, and no payment errors, as cash drawer shortages are deducted from his/her salary. -  Salesperson :   Wants sales commissions updated. -  Customer :   Wants purchase and fast service with minimal effort.  Wants proof of purchase to support returns. -  Company :   Wants to accurately record transactions and satisfy customer interests.  Wants to ensure that Payment Authorization Service payment receivables are recorded.  Wants some fault tolerance to allow sales capture even if server components are unavailable.  Wants automatic and fast update of accounting and inventory.
Fully Dressed Example:  Process Sale -  Government Tax Agencies :  Want to collect tax from every sale.  May be multiple agnecies such as national, state, and county. -  Payment Authorization Service :  Wants to receive digital authorization requests in the correct format and protocol.  Wants to accurately account for their payables to the store. Preconditions:   Cashier is identified and authenticated. Success Guarantee  (Postconditions):  Sale is saved.  Tax is correctly calculated. Accounting and Inventory are updated.  Commissions recorded.  Receipt generated. Payment authorization approvals are recorded.
Fully Dressed Example:  Process Sale - continued Main Success Scenario (of Basic Flow): 1. - 10. Extensions (Alternative Flows): *a. *b. 1a 2-4a 3a. 3b. 3c. 3-6a-c 4a 5a-c 6a 7a-f 9a-c
Special Requirements : -  Touch Screen UI on a large flat panel monitor.  Text visible from 1 meter. - Credit auth. response within 30 seconds 90% of the time. ... Technology and Data Variations List : ... Frequency of Occurrence :  Could be nearly continuous. Open Issues : - What are the tax law variations? - Explore the remote service recovery issue. - What customization is needed for different businesses? Fully Dressed Example
Now what -- after development of use case(s) Look for  consistency, correctness, completeness Most important for core requirements likely to be implemented soon By  translation  to other formats See Vision Document State diagrams and tables Event tables Condition tables Domain diagram (UML)
References 1 “Requirements Analysis,” Richard Thayer, SMC 10/97 Version 2, 1997 2 “IEEE Guide for Software Requirements Specification,” IEEE 830-1998 3 “Software Requirements:Objects, Functions, and States”, Prentice Hall, 1993 4 Software Quality Measurement for Distributed Systems, RADC-TR-83-175

Reqs analysis

  • 1.
    Requirements Analysis &Requirements Specification
  • 2.
    Requirements Engineering Requirements Elicitation Requirements Analysis Requirements Specification Requirements Verification Requirements Management Requirements Engineering
  • 3.
    Requirements Analysis &Specification Definitions Requirements Analysis The process of studying and analyzing the customer and the user/stakeholder needs to arrive at a definition of software requirements. Requirements Specification A document that clearly and precisely* describes, each of the essential requirements of the software and the external interfaces. (functions, performance, design constraint, and quality attributes) Each requirement is defined in such a way that its achievement is capable of being objectively verified by a prescribed method; for example inspection, demonstration, analysis, or test. 2
  • 4.
    Types of RequirementsFunctional requirements Performance requirements Speed, accuracy, frequency, throughput External interface requirements Design constraints Requirements are usually about “what”, this is a “how”. Quality attributes i.e. reliability, portability, maintainability, supportability
  • 5.
    What vs. HowDilemma 3 User Needs System Requirements System Design Software Requirements Software Design What How What How What How What How
  • 6.
    Requirements vs. DesignCustomer not interested (Most of the time) except for external Customer interested There is only one (final) solution There is more than one solution Primary goal of design: OPTIMIZATION Primary goal of analysis: UNDERSTANDING Describe how it will be done Describe what will be delivered Design Requirements
  • 7.
    Software Quality Attributes4 Correctness Reliability Rating = 1 – (Num Errors/ Num LOC) Can be allocated to subsystems Efficiency Integrity Usability Survivability Maintainability Verifiability Flexibility Portability Reusability Interoperability Expandability
  • 8.
    Analysis of Elicitation results helps to create a Vision Settle on which problem - Explain in the problem statement (2.2) Marketing group establishes positioning of the product (2.3) Stakeholder and User Summaries - User is a special case of stakeholder - Identify all stakeholders w.r.t. development: Name Represents Role - Identify all users w.r.t. system: Name Description Stakeholder
  • 9.
    Stakeholder Profiles (3.5)Representative - who (name) is representing this stakeholder type. Description - brief description of the stakeholder type Type - Qualify s-h’s expertise, technical background, degree of sophistication Responsibilities - List s-h’s key responsibilities with regard to the system being developed - why a stakeholder? Success Criteria - How does the stakeholder define success? How rewarded? Involvement - involved in the project in what way? Requirements reviewer, system tester, ... Deliverables* - required by the stakeholder Comments/Issues - Problems that interfere w/ success, etc.
  • 10.
    User Profiles (3.6)Representative - Who represents this user? (might be a stakeholder) Description - of the user type Type - qualify expertise, technical background, degree of sophistication Responsibilities - user’s key resp.’s w.r.t. system being developed Success Criteria - how this user defines success? rewarded? Involvement - How user involved in this project ? what role? Deliverables - Are there any deliverables the user produces ? For whom? Comments/Issues - Problems that interfere w/ success, etc. This includes trends that make the user’s job easier or harder
  • 11.
    User Environment (3.4) -- working environment of target user Number of people involved in doing this now? Changing? How long is a task cycle now? Changing? Any unique environmental constraints : mobile, outdoors, in-flight, etc. Which system platforms are in use today? future? What other applications are in use? Need to integrate?
  • 12.
    Key Stakeholder orUser Needs (3.7) List key problems with existing solutions as perceived by the stakeholder or user. What are the reasons for this problem? How is it solved now? What solutions does the stakeholder want? What is relative importance of solving each problem? Alternatives and Competition (3.8)
  • 13.
    Product Overview (4.)(at last!) 4.1 Product perspective (context) Put the product in perspective to other related products and the user’s environment. Independent? Component of a larger system? How do the subsystems interact with this? Known interfaces between them and this component? Block diagram
  • 14.
    Product Overview (4.)(at last!) 4.2 Summary of Capabilities Customer Benefit Supporting Features 1. 2. 3. 4.
  • 15.
    Product Overview (4.)(at last!) 4.3 Assumptions and dependencies What factors affect the features above? List assumptions that, if changed , ALTER this document 4.4 Cost and pricing -- not done by engineering 4.5 Licensing and installation -- different types of license enforcement will create more requirements for the development effort
  • 16.
    What’s a feature?- high level capability necessary to deliver benefit to the user - externally desired service that typically requires inputs to achieve Level of detail must be general -- this is not the requirements spec for the developers. Provide the basis for product definition , scope management , and project management . Each will be expanded in the use-cases or other requirements Externally perceivable by users or external systems Product Features (5.)
  • 17.
    What is not in the Product Features Section? Design Constraints -- These go in section 6. Design constraints External constraints Quality Ranges -- These go in section 7 ranges for performance, robustness, fault tolerance, etc. that are not really features (specific capabilities, functions)
  • 18.
    Precedence and Priority (8.) Which features essential ? We will delay shipment in order to have these We will postpone the feature in order to meet first-release goal
  • 19.
    Other ProductRequirements These are requirements that are not features (functions) of the product hardware platform requirements -- system requirements -- supported host o.s.’s, peripherals, companion software environmental requirements -- temperature, shock, humidity, radiation, usage conditions, resource availability, maintenance issues, type of error recovery applicable standards -- legal, regulatory, communications
  • 20.
    Documentation RequirementsWhat must be developed to support successful deployment? User Manual? Online Help? Installation guide? Read Me file? Labeling, packaging?
  • 21.
    Vision Doc addsbasis for SRS
  • 22.
    Use Case InternalsUse Case Name Scope Level Primary Actor Stakeholders & interests Preconditions Success Guarantee (post-conditions) Basic Flow Alternate Flows (extensions) Error Flows Subflows Special requirements Technology & data variations list Frequency of occurrence Open Issues
  • 23.
    Fully Dressed Example: Process Sale Primary Actor: Cashier Stakeholders and Interests: - Cashier : Wants accurate, fast entry, and no payment errors, as cash drawer shortages are deducted from his/her salary. - Salesperson : Wants sales commissions updated. - Customer : Wants purchase and fast service with minimal effort. Wants proof of purchase to support returns. - Company : Wants to accurately record transactions and satisfy customer interests. Wants to ensure that Payment Authorization Service payment receivables are recorded. Wants some fault tolerance to allow sales capture even if server components are unavailable. Wants automatic and fast update of accounting and inventory.
  • 24.
    Fully Dressed Example: Process Sale - Government Tax Agencies : Want to collect tax from every sale. May be multiple agnecies such as national, state, and county. - Payment Authorization Service : Wants to receive digital authorization requests in the correct format and protocol. Wants to accurately account for their payables to the store. Preconditions: Cashier is identified and authenticated. Success Guarantee (Postconditions): Sale is saved. Tax is correctly calculated. Accounting and Inventory are updated. Commissions recorded. Receipt generated. Payment authorization approvals are recorded.
  • 25.
    Fully Dressed Example: Process Sale - continued Main Success Scenario (of Basic Flow): 1. - 10. Extensions (Alternative Flows): *a. *b. 1a 2-4a 3a. 3b. 3c. 3-6a-c 4a 5a-c 6a 7a-f 9a-c
  • 26.
    Special Requirements :- Touch Screen UI on a large flat panel monitor. Text visible from 1 meter. - Credit auth. response within 30 seconds 90% of the time. ... Technology and Data Variations List : ... Frequency of Occurrence : Could be nearly continuous. Open Issues : - What are the tax law variations? - Explore the remote service recovery issue. - What customization is needed for different businesses? Fully Dressed Example
  • 27.
    Now what --after development of use case(s) Look for consistency, correctness, completeness Most important for core requirements likely to be implemented soon By translation to other formats See Vision Document State diagrams and tables Event tables Condition tables Domain diagram (UML)
  • 28.
    References 1 “RequirementsAnalysis,” Richard Thayer, SMC 10/97 Version 2, 1997 2 “IEEE Guide for Software Requirements Specification,” IEEE 830-1998 3 “Software Requirements:Objects, Functions, and States”, Prentice Hall, 1993 4 Software Quality Measurement for Distributed Systems, RADC-TR-83-175

Editor's Notes

  • #3 These are the five activities involved in sw req engineering.
  • #4 The precision to which Requirements are specified is a function of Expertise of developers Knowledge developers and testers have of the domain – the more they know, the less specific the specification needs to be Access to a domain representative For example, in xp, requirements may be specified in less detail but there is a customer representative on site daily. NOTE various test methods. “Objectively verified” is referring to testing by various methods: Inspection, demonstration, analysis, test
  • #6 We learn what the user needs are. We propose how to address them by defining system requirements. We specify what we are going to build in system requirements. We describe how to address this by designing the system. The system design says what we are going to build. The software requirements tell how we will build part of the system in software. The software requirements tell what we will build in software. The software design how we are going to structure the software. The software design tells what software structure we will build. The code tells how this will be implemented.
  • #7 “ Primary goal of analysis is UNDERSTANDING” … and clarity. There is more than one solution: There is more than one way to address the same requirements. Customer interest: EXTERNAL design – fuzzy area between requirements and design. Customer is interested in design choices that are visible.
  • #8 This comes from “Software Quality Measurement …” Correctness seems overly obvious if viewed as list of quality attributes. Like, what else would you want?? But it makes sense to have it in the list when viewed as measures of quality . Reliability Rating = “three 9’s” or “six 9’s” If I have 1 error per 1000 lines of code, that’s .001. 1 - .001 = .999 hence the phrase “three 9’s” There are other ways of thinking about reliability – bathtub curve, MTTF, often not applied to software. The “n 9’s” definition of reliability is confusing some notions: Reliability connotes how long it runs without failing. errors/LOC is a static attribute of found errors One customer may take certain paths thru the code that don’t fail. Another’s paths do. Operational Profiles provide a better measure of reliability. It is based on probability of usage and allows for a way to predict MTBF.
  • #9 Stakeholder Name - stakeholder type Represents - What they represent with respect to the development . Role - the role they are playing in the development . User: Name - the user type Description - describe what they represent with respect to the system. Stakeholder - how the user is represented by the stakeholders (represented by stakeholder 1.1)
  • #10 *deliverables are project deliverables or OUTPUTS from the system under development
  • #15 Note: The capabilities produce benefit to the customer. List the benefits.
  • #16 Example of assumptions: Prototype hardware available for software testing by date X COTS touch screen available with washable glass front – found by date Y
  • #17 These have been mentioned in the Customer Benefits but are summarized here as a list of features. Examples of features:
  • #20 “ hardware platform” in this context refers to a computer where the software product will execute. In embedded system, system requirements are then divided among hw and sw. A particular platform may be a requirement or it may be part of the proposed solution (design).
  • #22 Note which items in SRS can be copied or at least strongly based on the Vision Doc.
  • #23 Section 3 – organized by stimulus/response
  • #24 One way to think about component design (later) will be to organize the use cases by Primary Actor .
  • #25 The precondition is not the first step of the use case. It is what has taken place before the first step.
  • #28 Develop use case for enhancement Apply to Vision Document Eventually, we will look at these other representations