Software Requirements (Process (Requirement Elicitation Process
- Whether the desired system and its functionality are feasible to develop based on current software and hardware technologies
- Communicate with users -> what the software provide and which features the software include
Software Requirement Validation
- Checks the requirements for realism, consistency and completeness
Software Requirement Specification
- Defines how the system works, what does it provide.
Requirement Elicitation Process
Requirement Gathering --> Requirement Organisation --> Negotiation & Discussion --> Requirement Specification
- The developers prioritize and arrange the requirements in order of importance, urgency and convenience.
Negotiation & discussion
- To removing conflicts between developers and stakeholders
- All formal & informal, functional & non-functional
- Strong medium to collect requirements
- A document with some questions for stakeholders.
- Team may analyze the operation for new system is required.
- Analyze general and specific requirements
- Debate to record stakeholders inputs for further requirements analysis
- Building user interface without adding detail functionality for user to interpret the features of intended software product
- Team observe the actual working of the existing installed systems
Software Elicitation and Analysis
- These help you understand the system to be specified.
- Is the process of analyzing related software systems in a domain to find their common and variable parts
- DARE: Domain Analysis and Reuse Environment
- Feature-Oriented Domain Analysis
- IDEF0 for Domain Analysis
- Model Oriented Domain Analysis and Engineering
Requirements Elicitation and Analysis
- Is the practice of collecting the requirements of a system from users, custormers and other stakeholders.
- This is the process of interacting with stakeholders of the system to discover their requirements.
Requirements classification and organizaion
- This activity takes the unstructured collection of requirements, groups related requirements, and organizes them into cohenrent clusters
Requirements prioritization and negotiation
- This activity is concerned with prioritizing requirements and finding and resolving requirements conflicts through negotiation
- The requirements are documented and input into the next round of the spiral
Software requirement document
- Is an official statement of what system deveopers should implement.
- User requirements definition
- System architecture
- System requirements specification
- System models
- System evolution
- Is the process of writing down the user and system requirements in a requirements document
Ways of writing a specification
- Natural language sentences
- Structured natural language
- Design description languages
- Graphical notations
- Mathematical specifications
System engineering processes
- Is the process of checking that requirements actually define the system that the customer really wants
- Validity checks:
- Consistency checks: Conflicts
- Completeness checks: All function and the constraints
- Realism checks: Can be implemented
- Verifiability: Reduce the potential for duspute between customer and contractor
- Requirements reviews:
- Test-case generation