Requirements Engineering ments_analysis
Stakeholders Anyone who: – interacts with the system – benefits from the system – purchases the system Regulators (financial, safety etc.) Anyone opposed to building the system Anyone who interfaces with the system Organizations that integrate with the system
Requirement analysis Stakeholder interviews Joint requirements development sessions Contract-style requirement lists (strengths, weaknesses) User stories (agile development) Measurable goals (goal modeling) Prototypes Use cases
Software requirements specification ements_Specification ements_Specification A complete description of the behavior of a system to be developed It may include: – Use cases – Non-functional requirements (performance constraints, quality standards, design constraints)
Software Requirements Specification (SRS) example Introduction – Overall description – Interfaces – Constraints (e.g. memory, disk) Specific requirements – Functional and performance requirements – Design constraints (e.g. standards compliance) – System attributes (reliability, availabilty, security, maintainability, portability)
Requirements analysis issues Misunderstandings between stakeholders and developers – Stakeholder issues – Engineer/developer issues Attempted solutions – Prototyping – Increase communication – Application simulation
Types of Requirements: Customer requirements Where will be used? How it will accomplish its mission? How are its components used? How effective / efficient it is? How long it will be used? In what environments it is expected to operate?
Other types of requirements Architectural Structural Behavioral Functional: Non-functional: functional_requirement Performance Design Derived/Allocated
Verification and validation w.r.t requirements Validation: the process of checking that a software system satisfies its specified requirements and that it achieves its intended goals Verification: whether the results of a given development phase satisfy the requirements Validation: Are we building the right product? Verification: Are we building the product right?