BACHELOR OF SCIENCE (HONOURS) IN SOFTWARE DESIGN - YEAR 3 - - Software Quality and Process Improvement - REQUIREMENTS PROCESS DESCRIPTION David Flynn (A00161415) Gary Doolin (A00166637) Tom Wasniewski (A00148326) Process Name: Requirements Development Purpose: The purpose of Requirements Development (RD) is to produce and analyze customer, product, and product component requirements. Entry Criteria Controls Exit Criteria 1. Team members trained to required level. 1. Review Process. 1. Ensuring all needs of stakeholders have been documented and approved. 2. Checklist for relevant documentation. 3. Requirements Doc Template. 4. Customer Requirements Document. 2. Customer Requirements reviewed and approved. 3. Product component requirements reviewed and approved. 5. Time Lines Inputs Tasks Outputs 1. Stakeholder’s needs, expectations and constraints. 1. Develop Customer Requirements 1. Validated and reviewed product requirements 2. Validated and reviewed product component requirements 3. Product Representations (Prototypes, Simulations, Use Cases) 2. Develop Product Requirements 3. Analyze and Validate Requirements Metrics Roles 1. Amount of requirements per customer’s needs. 2. Amount of requirements for each component. 3. No. of functional and non-functional requirements per hour. 4. Cost savings resulting from the requirements analyses. 1. 2. 3. 4. Project Manager (T1, T3) Software Architect (T1, T2, T3) External Customer Manager (T1) Requirements Engineer (T1, T2, T3) Issues Process Name: Develop Customer Requirements Purpose: Stakeholder needs, expectations, constraints, and interfaces are collected and translated into customer requirements. Entry Criteria Controls 1. Team members trained to required level. 1. Review Process. Exit Criteria 1. Customer Requirements reviewed and approved. 2. Checklist for relevant documentation. 3. Requirements Document Template. 4. Time Lines. Inputs 1. Stakeholder’s needs, expectations and constraints. Metrics 1. Amount of requirements per customer’s needs. 2. Number of requirements translated per hour. Tasks Outputs 1. Develop questions and surveys to capture customer needs, expectations and constraints. 2. Engage relevant stakeholders using interviews and surveys for eliciting needs, expectations, constraints and external interfaces. 3. Translate the stakeholder needs, expectations, constraints and interfaces into documented customer requirements by way of use cases. 4. Through interview define constraints for verification and validation. 1. Prepared survey and interview questions. Roles Issues 1. 2. 3. 4. Project Manager (T1, T2) Software Architect (T3) External Customer Manager (T1) Requirements Engineer (T1, T2, T3) 2. Documented customer requirements based on the needs, expectations and constraints gathered in the elicitation step. 3. Constraints that needs to be verified and validated later on in the process. Process Name: Develop Product Requirements Purpose: Customer requirements are refined and elaborated to develop product and product component requirements. Entry Criteria Controls Exit Criteria 1. Customer Requirements documents reviewed and approved before starting. 1. 2. 3. 4. 5. 6. 1. Product component requirements reviewed and approved. 2. Input documents reviewed and approved before starting. Inputs 1. Documented customer requirements based on the needs, expectations and constraints gathered in the elicitation step. Checklist for relevant documentation. Customer Requirements Document. Customer Constraints. Review Process. Requirements Document Template. Time Lines. Tasks 1. Establish Product and Product Component Requirements. 2. Allocate Product Component Requirements. Outputs 1. Product Requirements 2. Product Component Requirements 3. Interface Requirements 3. Identify Interface Requirements. 2. Constraints that needs to be verified and validated. Metrics 1. Amount of requirements for each component. 2. Number of design constraints per product. 3. Number of product and component requirements extracted from customer requirements. 4. Number of requirements for the identified interfaces. Roles 1. Software Architect (T1, T2, T3) 2. Requirements Engineer (T1, T2, T3) Issues Process Name: Establish Product and Product Component Requirements Purpose: Establish and maintain product and product component requirements, which are based on the customer requirements. Entry Criteria 1. Customer Requirements documents reviewed and approved before starting. Controls 1. Checklist for relevant documentation. Exit Criteria 1. Product component requirements reviewed and approved. 2. Requirements Document Template 3. Customer Requirements Document. 4. Time Lines. Inputs 1. Documented customer requirements based on the needs, expectations and constraints gathered in the elicitation step. Tasks 1. Develop requirements in technical terms necessary for product and product component design. 2. Derive requirements that result from particular database-oriented design decisions. Outputs 1. Requirements specified in terms of the product and product component design. 2. Relationships between product requirements. 3. Establish and maintain relationships between requirements for considering during change management and requirements allocation. Metrics 1. Number of product and component requirements extracted from customer requirements. Roles 1. Software Architect (T1, T2, T3) 2. Requirements Engineer (T1, T2, T3) Issues Process Name: Allocate Product Component Requirements Purpose: Allocate the requirements for each product component. Entry Criteria Controls 1. Product Component Requirements reviewed and approved before starting. 1. 2. 3. 4. 5. Tasks Inputs 1. Requirements specified in terms of the product and product component design. 2. Relationships between product requirements. 3. Constraints that needs to be verified and validated. Review Process. Checklist for relevant documentation. No. of Components Component Requirements. Time Lines. 1. Allocate requirements to functions and queries to be run in the database system. 2. Allocate requirements to product components in the database structure. Exit Criteria 1. Requirements allocation reviewed and approved. Outputs 1. Product Requirements 2. Product Component Requirements 3. Relationships between the newly allocated product component requirements. 3. Allocate design constraints to product components in the database structure. 4. Document relationships among allocated requirements. Metrics 1. Amount of requirements for each component. 2. Number of design constraints per product. Roles 1. Software Architect (T1, T2, T3, T4) 2. Requirements Engineer (T1, T2, T3, T4) Issues Process Name: Identify Interface Requirements Purpose: Identify interface requirements. Entry Criteria 1. Input documents reviewed and approved before starting. Controls 1. Review Process. Exit Criteria 1. Interface Requirements reviewed and approved. 2. Checklist for relevant documentation. 3. Time Lines. Inputs 1. Relationships between the newly allocated product component requirements. Metrics 1. Amount of interfaces per record type (legal/medical/accounting) 2. Number of requirements for the identified interfaces. Tasks 1. Identify interfaces both external to the product and internal to the product (differentiate among the legal, medical and accounting types of records). 2. Develop the requirements for the identified interfaces. Roles 1. Software Architect (T1, T2) 2. Requirements Engineer (T1, T2) Outputs 1. Interface Requirements Issues Process Name: Analyze and Validate Requirements Purpose: The requirements are analyzed and validated, and a definition of required functionality is developed. Entry Criteria 1. All requirements documents reviewed and approved. Inputs 1. Product Requirements 2. Product Component Requirements 3. Interface Requirements Controls 1. Required Functionality. 2. Review Process. 3. Time Lines. Tasks 1. Establish a Definition of Required Functionality. 2. Analyze Requirements. 3. Analyze Requirements to Achieve Balance. Exit Criteria 1. Ensure required functionality (Security, usability, privacy) is defined, achieved, reviewed and approved. Outputs 1. Validated product requirements 2. Validated product component requirements 4. Validate Requirements. Metrics 1. No. of functional and non-functional requirements per hour. 2. Amount of inadequacies per requirement. 3. No. of unused/unnecessary requirements 4. Amount of additional requirements per analysis. 5. Cost savings resulting from the requirements analyses. 6. Product representations type percentage distribution (between the prototypes, simulations and use cases) Roles 1. Software Architect (T1, T2) 2. Requirements Engineer (T1, T2) Issues Process Name: Establish a Definition of Required Functionality Purpose: Establish and maintain a definition of required functionality. Entry Criteria 1. Input documents reviewed and approved before starting. Controls 1. Time Lines. 2. Review Process. Inputs 1. Product Requirements 2. Product Component Requirements 3. Interface Requirements Metrics 1. Amount of functional and nonfunctional requirements per Product Requirements Document. 2. No. of functional and non-functional requirements per hour. Tasks 1. Analyze the functionality of the database system by end users. 2. Identify logical or functional partitions of the database system. 3. Partition requirements into groups, based on established criteria and taking into account the nature of the data (medical, legal or accounting). 4. Allocate functional and performance requirements to functions and sub-functions. Roles 1. Software Architect (T4) 2. Requirements Engineer (T1, T2, T3, T4) Exit Criteria 1. Ensure required functionality (Security, usability, privacy) is defined, achieved, reviewed and approved. Outputs 1. Derived functional and performance product requirements. 2. Derived functional and performance product component requirements. Issues Process Name: Analyze Requirements Purpose: Analyze requirements to ensure that they are necessary and sufficient. Entry Criteria 1. All Requirement Document reviewed and approved before starting. 2. Interview Techniques (questions), surveys, etc. documents reviewed and approved. Inputs 1. Interview Techniques (questions), surveys, use cases, etc. documents. 2. Time Lines. 3. Review Process. Tasks 1. Derived functional and performance product requirements. 2. Derived functional and performance product component requirements. 3. Interface requirements Metrics 1. 2. 3. 4. Controls 1. Analyze stakeholder needs, expectations, constraints, and external interfaces to remove conflicts and to organize them into sections. 2. Analyze requirements to see if they satisfy the objectives of higher level requirements. 3. Analyze requirements to ensure that they are complete, feasible, realizable, and verifiable. 4. Identify key requirements that have a strong influence on functionality, security and performance of the database system. 5. Identify technical performance measures that will be tracked during the development effort. 6. Analyze use cases to refine the customer needs, constraints, and to discover new requirements. Roles Amount of inadequacies per requirement. No. of unused/unnecessary requirements Amount of additional requirements per analysis. No. of insufficient requirements 1. Project Manager (T3, T4) 2. External Customer Manager (T1, T6) 3. Software Architect (T2, T3, T4, T5) 4. Requirements Engineer (T1, T2, T3, T4, T5, T6) Exit Criteria 1. Necessary requirements included in Requirements Document. 2. Requirements document reviewed and approved. Outputs 1. Analyzed product requirements. 2. Analyzed product component requirements. 3. Newly emerged requirements. Issues Process Name: Analyze Requirements to Achieve Balance Purpose: Analyze requirements to balance stakeholder needs and constraints. Entry Criteria Controls Exit Criteria 1. All Requirement Document reviewed and approved before starting. 1. Interview Techniques (questions), surveys, use cases, etc. documents. 1. Necessary requirements included in Requirements Document. 2. Interview Techniques (questions), surveys, etc. documents reviewed and approved. 2. Time Lines. 2. Requirements document reviewed and approved. 3. Review Process. Inputs 1. Analyzed product requirements. 2. Analyzed product component requirements. Metrics 1. Cost savings resulting from the requirements analyses. 2. Amount of potential risks per requirement. Tasks 1. Use proven models, simulations and prototyping to find the balance between the stakeholder needs and the database constraints. 2. Use the results of the analyses to reduce the cost of the product and the risks in developing the database system. 3. Perform a risk assessment on the requirements and functional architecture of the database system. 4. Examine the waterfall and prototyping lifecycle concepts for impacts of requirements on risks. Roles 1. Project Manager (T1, T2, T3, T4) 2. Requirements Engineer (T1, T2, T3, T4) Outputs 1. Balanced product requirements. 2. Balanced product component requirements. Issues Process Name: Validate Requirements Purpose: Validate requirements to ensure the resulting product will perform as intended in the user's environment. Entry Criteria Controls Exit Criteria 1. Input documents reviewed and approved before starting. 1. Review Process. 1. The requirements documents reviewed and approved. 2. Checklist for relevant documentation. Inputs 1. Balanced product requirements. 2. Balanced product component requirements. Metrics 1. Amount of potential risks per requirements. 2. Product representations type percentage distribution (between the prototypes, simulations and use cases) Tasks 1. Analyze the requirements to determine the risk that the database system will not perform appropriately in its intended-use environment. 2. Explore the adequacy and completeness of requirements by developing prototypes, simulations and use cases, and by obtaining feedback about them from relevant stakeholders. 3. Assess the design as it matures in the context of the requirements validation environment to identify validation issues and expose unstated needs and customer requirements. Roles 1. Project Manager (T1, T2, T3) 2. External Customer Manager (T2) 3. Software Architect (T2, T3) 4. Requirements Engineer (T1, T2, T3) Outputs 1. Validated product requirements 2. Validated product component requirements 3. Product Representations (Prototypes, Simulations, Use Cases) Issues