You are previewing Software Requirements Using the Unified Process: A Practical Approach.
O'Reilly logo
Software Requirements Using the Unified Process: A Practical Approach

Book Description

Effective requirements development: An end-to-end process that works.

  • How to build requirements that can easily be transformed into high-quality software

  • Easy-to-apply, start-to-finish methodology based on the Unified Process

  • Practical solutions for requirements gathering, analysis, specification, and maintenance

This book presents a systematic, easy-to-apply methodology for creating effective requirements. The authors present practical solutions for the full requirements lifecycle: gathering, analysis, specification, verification, and maintenance. Working in the context of the Unified Process, they cover process flows, present detailed diagrams, and offer insights that draw on their extraordinary mission-critical project experience, which ranges from the floor of the New York Stock Exchange to the U.S. Air Force's most advanced Command and Control Systems.

  • The key characteristics of good software requirements

  • Understanding the requirements analysis process and artifacts

  • Building user requirements problem domains, actors, use cases, activity diagrams, and storyboarding

  • Building the requirements architecture entities and events, class diagrams, state transition diagrams, and sequence diagrams

  • Building the specifications software requirements, interface requirements, and verification

  • Using the requirements architecture you've built

Whether you're an analyst, architect, developer, tester, manager, or software customer, this book will help you define requirements that precisely reflect your needs—and can be transformed into working software faster and more cost-effectively than ever before.

Table of Contents

  1. Copyright
  2. Preface
  3. Acknowledgments
  4. 1. Introducing Good Requirements
    1. 1. The Importance of Good Requirements
      1. Rationale for Good Requirements
      2. Approach to Good Requirements
      3. Benefits of Good Requirements
      4. Impact of Good Requirements on Development and Productivity
      5. Impact of Good Requirements on Testing and Quality
      6. Impact of Good Requirements on the Organization
      7. Identification of a Good Requirement
    2. 2. Characteristics of Good Requirements
      1. Characteristics of a Good Requirement
        1. Ambiguity Considerations
          1. Modeling Languages
          2. The Z Specification Language
        2. Verifiability Considerations
        3. Deterministic Considerations
        4. Traceability Considerations
        5. Correctness Considerations
      2. Characteristics of a Good Set of Requirements
      3. Language of Good Requirements
      4. Communicability of Good Requirements
    3. 3. Overview of the Artifacts and the Process
      1. Introduction to the Artifacts
      2. Introduction to the Process
        1. Iterative Nature of the Process
        2. Process Flow
      3. Moving from Requirements to Design
  5. 2. Building the User Requirements
    1. 4. Getting to Know the Problem Domain
      1. Researching the Area
      2. Reading, Reading, Reading
      3. Interviewing the Customer and Users
      4. Building the Use Cases
    2. 5. Actors and Use Cases
      1. Defining the Boundaries of the System
      2. Moving from Steady State to Steady State
      3. Identifying Use Cases
      4. Introducing the Change Management System Example
    3. 6. Modeling Use Cases
      1. Diagramming Use Cases
      2. Generalizing Use Cases
      3. Generalizing Use Cases for the Change Management System
      4. Relationships Among Use Cases
      5. Diagramming Change Management System Use Cases
      6. Packaging Use Cases
      7. Packaging the Change Management System Use Cases
    4. 7. Using Activity Diagrams to Represent Use Cases
      1. Elements of Activity Diagrams
      2. Change Management System Activity Diagram
    5. 8. Writing Use Cases
      1. Template Use
      2. Step-by-Step Description
      3. Alternative Courses
      4. Exceptions and Issues
      5. Change Management Use Case
    6. 9. Using Storyboards to Validate the Use Cases
      1. Presentation of Storyboards to the User
      2. Evolutionary Graphical User Interface Presentations
      3. Other Diagrams and Pictures
      4. Presentation of Use Cases to the User
      5. Change Management Systems Storyboards
  6. 3. Building the Requirements Architecture
    1. 10. Entities and Events as Objects
      1. Classes and Objects
      2. Remembered Events as Classes
      3. Change Management System Classes
    2. 11. Building a Class Diagram
      1. Generalization
      2. Polymorphism
      3. Aggregation
      4. Association
      5. Packaging Classes
      6. Change Management System Examples
    3. 12. Using State Transition Diagrams
      1. Introduction to State Transition Diagrams
      2. Class-Level State Transition Diagrams
      3. Use-Case-Level State Transition Diagrams
      4. System-Level State Transition Diagrams
      5. Change Management System State Transition Diagram
    4. 13. Use Case Realization by Means of Sequence Diagrams
      1. Introduction to Sequence Diagrams
      2. Realizing Use Cases in Sequence Diagrams
      3. Example Sequence Diagram for the Change Management System
  7. 4. Building the Specifications
    1. 14. Developing a Software Requirements Specification
      1. Tailoring the Standard to Meet Your Needs
      2. Specifying Functional Requirements from the Class Diagram
      3. Specifying Nonfunctional Requirements
      4. Identifying Dependencies Between Requirements
    2. 15. Developing an Interface Requirement Specification
      1. The IRS Template
      2. Front Matter of the IRS
      3. Reference Section of the IRS
      4. Requirement Section of the IRS
      5. Protocol and Messages Section of the IRS
    3. 16. Verifying the Software Requirements Specification
      1. Using the Process to Ensure Good Requirements
      2. Using Peer Reviews to Ensure Good Requirements
      3. Specifying a Test Tree
      4. Analyzing the Test Tree
      5. Requirements Verification Checklist
  8. 5. Using the Requirements Architecture
    1. 17. Maintaining the System
      1. Receiving the Change Request
      2. Analyzing the Change
      3. Analyzing User Needs
      4. Identifying New and Changed Use Cases
      5. Identifying New and Changed Requirements
      6. Implementing a Release
    2. 18. Ensuring Maximum Benefits from the Requirements
      1. Benefits to Development and Productivity Revisited
      2. Benefits to Testing and Quality Revisited
      3. Benefits to the Organization Revisited
  9. 6. Appendices
    1. A. Planning Model for Requirements Development
      1. Model Work Breakdown Structure
      2. Model Effort Allocation
      3. Model Schedule Allocation
      4. Standard Major Milestones
    2. B. Change Management System Artifacts
      1. Change Management System Use Cases
        1. Change Management Packages
        2. 1. Administration
        3. Use Case 1.1 Log in
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        4. Use Case 1.2 Add User Record
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        5. Use Case 1.3 Edit User Record
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        6. Use Case 1.4 Delete User Record
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        7. Use Case 1.5 Add System Record
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Assumptions
          10. Notes and Issues
        8. Use Case 1.6 Edit System Record
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        9. Use Case 1.7 Delete System Record
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        10. 2. Change Functions
        11. Use Case 2.1 Submit Work Request
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        12. Use Case 2.2 View/Edit Work Order
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        13. Use Case 2.3 View/Edit Change Order
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        14. Use Case 2.4 Manage Change Order
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        15. Use Case 2.5 Query Work Orders
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        16. 3. Manage Project
        17. Use Case 3.1 Create Version
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        18. Use Case 3.2 View/Edit Version
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        19. Use Case 3.3 Assign Change Orders to Version
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        20. Use Case 3.4 Remove Change Order from Version
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        21. Use Case 3.5 Approve Version Start
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
        22. Use Case 3.6 Approve Version Release
          1. Actor(s)
          2. Description
          3. Preconditions
          4. Postconditions
          5. Priority
          6. Normal Course of Events
          7. Alternative Courses
          8. Exceptions
          9. Includes
          10. Notes and Issues
      2. Change Management System Class Diagrams
      3. Change Management System State Diagrams
      4. Change Management Software Requirements Specification
        1. 1. Introduction
          1. 1.1. Purpose
          2. 1.2. Scope
          3. 1.3. Definitions, Acronyms, and Abbreviations
          4. 1.4. References
          5. 1.5. Overview
        2. 2. Overall Description
          1. 2.1. Product Perspective
            1. 2.1.1. System interfaces
            2. 2.1.2. User interfaces
            3. 2.1.3. Hardware interfaces
            4. 2.1.4. Software interfaces
            5. 2.1.5. Communications interfaces
            6. 2.1.6. Memory
            7. 2.1.7. Operations
            8. 2.1.8. Site adaptation requirements
          2. 2.2. Product Functions
          3. 2.3. User Characteristics
            1. 2.3.1. User
            2. 2.3.2. Analyst
            3. 2.3.3. Project Manager
            4. 2.3.4. Change Control Board
            5. 2.3.5. Administrator
          4. 2.4. Constraints
          5. 2.5. Assumptions and Dependencies
          6. 2.6. Apportioning of Requirements
        3. 3. Specific Requirements
          1. 3.1. External Interface Requirements
            1. 3.1.1. Graphical User Interfaces
              1. 3.1.1.1. RN C1000, Login Screen
                1. 3.1.1.1.1. RN C1000-A1, User Name
                2. 3.1.1.1.2. RN C1000-A2, Password
                3. 3.1.1.1.3. RN C1000-M1, Display
                4. 3.1.1.1.4. RN C1000-M2, Click Login
                5. 3.1.1.1.5. RN C1000-M3, Click Cancel
              2. 3.1.1.2. RN C1001, Main Screen
                1. 31.1.2.1. RN C1001-M1, Startup
                2. 3.1.1.2.2. RN C1001-M2, Display
                3. 3.1.1.2.3. RN C1001-M3, Click Admin
                4. 3.1.1.2.4. RN C1001-M4, Click Enter Request
                5. 3.1.1.2.5. RN C1001-M5, Click Edit Change Request
                6. 3.1.1.2.6. RN C1001-M6, Click Manage Release
                7. 3.1.1.2.7. RN C1001-M7 Click Query Changes
              3. 3.1.1.3. RN C1002, Admin Screen
                1. 3.1.1.3.1. RN C1002-M1, Display
                2. 3.1.1.3.2. RN C1002-M2, Click Maintain Persons
                3. 3.1.1.3.3. RN C1002-M3, Click Maintain Systems
              4. 3.1.1.4. RN C1003, User Screen
                1. 3.1.1.4.1. RN C1003-A1, Name
                2. 3.1.1.4.2. RN C1003-A2, User Identifier
                3. 3.1.1.4.3. RN C1003-A3, Password
                4. 3.1.1.4.4. RN C1003-A4, E-Mail
                5. 3.1.1.4.5. RN C1003-A5, Administrator
                6. 3.1.1.4.6. RN C1003-A6, Available Systems
                7. 3.1.1.4.7. RN C1003-A7, Assigned Systems
                8. 3.1.1.4.8. RN C1003-A8, System Role
                9. 3.1.1.4.9. RN C1003-M1, Display
                10. 3.1.1.4.10. RN C1003-M2, Click Add Person
                11. 3.1.1.4.11. RN C1003-M3, Click Save Person
                12. 3.1.1.4.12. RN C1003-M4, Select Person
                13. 3.1.1.4.13. RN C1003-M5, Click Delete User
              5. 3.1.1.5. RN C1004, System Screen
                1. 3.1.1.5.1. RN C1004-A1, Name
                2. 3.1.1.5.2. RN C1004-A2, Parent
                3. 3.1.1.5.3. RN C1004-M1, Display
                4. 3.1.1.5.4. RN C1004-M2, Click Add System
                5. 3.1.1.5.5. RN C1004-M3, Click Save Changes
                6. 3.1.1.5.6. RN C1004-M4, Click Delete System
                7. 3.1.1.5.7. RN C1004-M5, Select System
                8. 3.1.1.5.8. RN C1004-M6, Click Abandon Changes
              6. 3.1.1.6. RN C1005, Change Request Screen
                1. 3.1.1.6.1. RN C1005-A1, Name
                2. 3.1.1.6.2. RN C1005-A2, System
                3. 3.1.1.6.3. RN C1005-A3, Problem Type
                4. 3.1.1.6.4. RN C1005-A4, Description
                5. 3.1.1.6.5. RN C1005-M1, Display
                6. 3.1.1.6.6. RN C1005-M2, Click Submit
                7. 3.1.1.6.7. RN C1005-M3, Click Abandon
                8. 3.1.1.6.8. RN C1005-M4, Select Change Request
                9. 3.1.1.6.9. RN C1005-M5, Select Type
                10. 3.1.1.6.10. RN C1005-M6, Select Work Request
              7. 3.1.1.7. RN C1006, Manage Release
                1. 3.1.1.7.1. RN C1006-A1, System
                2. 3.1.1.7.2. RN C1006-A2, Phase
                3. 3.1.1.7.3. RN C1006-A3, Estimated Start
                4. 3.1.1.7.4. RN C1006-A4, Estimated Complete
                5. 3.1.1.7.5. RN C1006-A5, Start
                6. 3.1.1.7.6. RN C1006-A6, Complete
                7. 3.1.1.7.7. RN C1006-A7, Selected Changes
                8. 3.1.1.7.8. RN C1006-A8, Unassigned Changes
                9. 3.1.1.7.9. RN C1006-M1, Display
                10. 3.1.1.7.10. RN C1006-M2, Select Unassigned Orders
                11. 3.1.1.7.11. RN C1006-M3, Click Assign
                12. 3.1.1.7.12. RN C1006-M4, Click Save
                13. 3.1.1.7.13. RN C1006-M5, Select System
                14. 3.1.1.7.14. RN C1006-M6, Click Add
                15. 3.1.1.7.15. RN C1006-M7, Select Assigned Change
                16. 3.1.1.7.16. RN C1006-M8, Select Version
                17. 3.1.1.7.17. RN C1006-M9, Set Approve Work
                18. 3.1.1.7.18. RN C1006-M10, Set Approve Release
              8. 3.1.1.8. RN C1007, Query Change Screen
                1. 3.1.1.8.1. RN C1007-A1, Request Number
                2. 3.1.1.8.2. RN C1007-A2, System
                3. 3.1.1.8.3. RN C1007-A3, Release
                4. 3.1.1.8.4. RN C1007-A4, Submitted By
                5. 3.1.1.8.5. RN C1007-A5, Phase
                6. 3.1.1.8.6. RN C1007-M1, Display
                7. 3.1.1.8.7. RN C1007-M2, Select Criteria
                8. 3.1.1.8.8. RN C1007-M3, Click Retrieve Changes
              9. 3.1.1.9. RN C1008, Query Results Screen
                1. 3.1.1.9.1. RN C1008-A1, Name
                2. 3.1.1.9.2. RN C1008-A2, System
                3. 3.1.1.9.3. RN C1008-A3, Problem Type
                4. 3.1.1.9.4. RN C1008-A4, Submitter
                5. 3.1.1.9.5. RN C1008-M1, Display
                6. 3.1.1.9.6. RN C1008-M2, Click Retrieve Request
            2. 3.1.2. Hardware interfaces
            3. 3.1.3. Software interfaces
            4. 3.1.4. Communications interfaces
          2. 3.2. Classes/Objects
            1. 3.2.1. RN C1, System
              1. 3.2.1.1. RN C1-A1, Name
              2. 3.2.1.2. RN C1-A2, Parent
              3. 3.2.1.3. RN C1-M1, Get Systems
              4. 3.2.1.4. RN C1-M2, Create System
              5. 3.2.1.5. RN C1-M3, Save System
              6. 3.2.1.6. RN C1-M4, Remove System
              7. 3.2.1.7. RN C1-M5, Select System
              8. 3.2.1.8. RN C1-M6, Get System
              9. 3.2.1.9. RN C1-M7, Get Releases
              10. 3.2.1.10. RN C1-M8, New Release
              11. 3.2.1.11. RN C1-M9, Assign Change to Release
              12. 3.2.1.12. RN C1-M10, Save Release
              13. 3.2.1.13. RN C1-M11, Set Release Status
              14. 3.2.1.14. RN C1-M12, Get Parent
              15. 3.2.1.15. RN C1-M13, Add Work Request
              16. 3.2.1.16. RN C1-M14, Remove Work Request
              17. 3.2.1.17. RN C1-M15, Get Work Requests
            2. 3.2.2. RN C2, Person
              1. 3.2.2.1. RN C2-A1, Name
              2. 3.2.2.2. RN C2-A2, Login Identifier
              3. 3.2.2.3. RN C2-A3, Password
              4. 3.2.2.4. RN C2-A4, Administrator
              5. 3.2.2.5. RN C2-M1, Test Password
              6. 3.2.2.6. RN C2-M2, Create Person Record
              7. 3.2.2.7. RN C2-M3, Get Person Record
              8. 3.2.2.8. RN C2-M4, Get System Roles
              9. 3.2.2.9. RN C2-M5, Set Person Record
              10. 3.2.2.10. RN C2-M6, Delete User
              11. 3.2.2.11. RN C2-M7, Get Persons
              12. 3.2.2.12. RN C2-M8, Is Administrator
            3. 3.2.3. RN C3, System Role
              1. 3.2.3.1. RN C3-A1, Role
              2. 3.2.3.2. RN C3-M1, Add System Role
              3. 3.2.3.3. RN C3-M2, Get System Roles
              4. 3.2.3.4. RN C3-M3, Set System Roles
              5. 3.2.3.5. RN C3-M4, Delete System Role
            4. 3.2.4. RN C4, Version/Release
              1. 3.2.4.1. RN C4-A1, Number
              2. 3.2.4.2. RN C4-A2, Estimated Start Date
              3. 3.2.4.3. RN C4-A3, Start Date
              4. 3.2.4.4. RN C4-A4, Estimated Completion Date
              5. 3.2.4.5. RN C4-A5, Completion Date
              6. 3.2.4.6. RN C4-A6, Current Phase
              7. 3.2.4.7. RN C4-M1, Get Releases
              8. 3.2.4.8. RN C4-M2, Get Release
              9. 3.2.4.9. RN C4-M3, Assign Changes
              10. 3.2.4.10. RN C4-M4, Create Release
              11. 3.2.4.11. RN C4-M5, Save Release
              12. 3.2.4.12. RN C4-M6, Set Release Status
              13. 3.2.4.13. RN C4-M7, Delete Release
              14. 3.2.4.14. RN C4-M8, Remove Change Order
              15. 3.2.4.15. RN C4-M9, Get Change Orders
            5. 3.2.5. RN C5, Work Request
              1. 3.2.5.1. RN C5-A1, Submitter
              2. 3.2.5.2. RN C5-A2, Date Of Request
              3. 3.2.5.3. RN C5-A3, Analyst
              4. 3.2.5.4. RN C5-A4, Description
              5. 3.2.5.5. RN C5-A5, Remarks
              6. 3.2.5.6. RN C5-A6, Date Closed
              7. 3.2.5.7. RN C5-A7, Priority
              8. 3.2.5.8. RN C5-M1, Create Work Request
              9. 3.2.5.9. RN C5-M2, Save Work Request
              10. 3.2.5.10. RN C5-M3, Get Work Request
              11. 3.2.5.11. RN C5-M4, Get Work Requests
              12. 3.2.5.12. RN C5-M5, Delete Work Requests
              13. 3.2.5.13. RN C5-M6, Check Status
            6. 3.2.6. RN C6, Change History
              1. 3.2.6.1. RN C6-A1, Old State
              2. 3.2.6.2. RN C6-A2, New State
              3. 3.2.6.3. RN C6-A3, Date Time Of Change
              4. 3.2.6.4. RN C6-M1, Create Change History
            7. 3.2.7. RN C7, Work Order
              1. 3.2.7.1. RN C7-A1, Problem Area
              2. 3.2.7.2. RN C7-M1, Check Status
            8. 3.2.8. RN C8, Change Order
              1. 3.2.8.1. RN C8-M1, Check Status
            9. 3.2.9. RN C9, Defect Report
              1. 3.2.9.1. RN C9-A1, Release Introduced
              2. 3.2.9.2. RN C9-A2, Phase Introduced
              3. 3.2.9.3. RN C9-A3, Test Description
              4. 3.2.9.4. RN C9-A4, Severity
            10. 3.2.10. RN C10, Change Request
              1. 3.2.10.1. RN C10-A1, Requirements Affected
            11. 3.2.11. RN C11, New System
          3. 3.3. Performance Requirements
            1. 3.3.1. Transaction time
            2. 3.3.2. Concurrent users
          4. 3.4. Logical Database Requirements
          5. 3.5. Design Constraints
          6. 3.6. Standards Compliance
          7. 3.7. Software System Attributes
            1. 3.7.1. Reliability
            2. 3.7.2. Availability
            3. 3.7.3. Security
            4. 3.7.4. Maintainability
            5. 3.7.5. Portability
            6. 3.8. Other Requirements
  10. Bibliography