Requirment engineering Flashcards
What are the steps in the requirement engineering?
–1) Understand the problem
•use data gathering techniques to elicit requirements
•Eg. Interviews, Questionnaires, Focus Groups, Prototyping, Observation,…
–2) Model and Analyze the problem
•use some modeling method(s)
•Eg. Structured Analysis, Object Oriented Analysis, Formal Analysis,…
–3) Attain agreement on the nature of the problem
•validation
•conflict resolution, negotiation
–4) Communicate the problem
•specifications, documentation, review meetings,
–5) Manage change as the problem evolves
•Requirements continue to evolve throughout software development
•(introducing new software changes the problem!!!)
•requirements management -maintain the agreement
What is a requirement?
•A requirement is a statement of one of the following:
–1. Whata system must do
–2. A known limitationor constrainton resources or design
–3. How well the system must do what it does
•The first definition is for Functional Requirements
•The second and third definitions are for Non-Functional Requirements (NFRs)
What is requirement engineering?
The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.
What is software management?
A systematic approach to eliciting, organizing, and documenting the requirements of the system, and a process that establishes and maintains agreement between the customer and the project team on the changing requirement of the system.
What are functional requirements?
Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.
What are non-functional requirements?
constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.
What are domain requirements?
Requirements that come from the application domain of the system and that reflect characteristics of that domain.
What requirements should be?
•In principle, requirements should be both complete and consistent.
–Complete
•They should include descriptions of all facilities required.
–Consistent
•There should be no conflicts or contradictions in the descriptions of the system facilities.
•In practice, it is impossible to produce a complete and consistent requirements document.
What are different classifications of non-functional requirements?
•Product requirements
–Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.
•Organisational requirements
–Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc.
•External requirements
–Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
What are some domain requirements problems?
•Understandability
–Requirements are expressed in the language of the application domain;
–This is often not understood by software engineers developing the system.
•Implicitness
–Domain specialists understand the area so well that they do not think of making the domain requirements explicit.
What are the steps in the requirement engineering process?
•Inception—ask a set of questions that establish …
–basic understanding of the problem
–the people who want a solution
–the nature of the solution that is desired, and
–the effectiveness of preliminary communication and collaboration between the customer and the developer
•Elicitation—elicit requirements from all stakeholders
•Elaboration—create an analysis model that identifies data, function and behavioral requirements
•Negotiation—agree on a deliverable system that is realistic for developers and customers
•Specification—can be any one (or more) of the following:
–A written document
–A set of models
–A formal mathematical
–A collection of user scenarios (use-cases)
–A prototype
•Validation—a review mechanism that looks for
–errors in content or interpretation
–areas where clarification may be required
–missing information
–inconsistencies (a major problem when large products or systems are engineered)
–conflicting or unrealistic (unachievable) requirements.
•Requirements management
What is requirement elicitation?
•Software engineers work with a range of system stakeholders to find out about the application domain, the services that the system should provide, the required system performance, hardware constraints, other systems, etc.
•Stages include:
–Requirements discovery,
–Requirements classification and organization,
–Requirements prioritization and negotiation,
–Requirements specification.
What are some problems with requirement elicitation?
- Stakeholders don’t know what they really want.
- Stakeholders express requirements in their own terms.
- Different stakeholders may have conflicting requirements.
- Organisational and political factors may influence the system requirements.
- The requirements change during the analysis process. New stakeholders may emerge and the business environment may change.
What are some requirement elicitation techniques?
•➜Traditional Approaches
–Introspection
–Interview/survey
–Group elicitation
•➜Observational approaches
–Protocol analysis
–Participant Observation (ethnomethodology)
•➜Model-based approaches
–Goal-based: hierarchies of stakeholders’ goals
–Scenarios: characterizations of the ways in which the system is used
–Use Cases: specific instances of interaction with the system
•➜Exploratory approaches
–Prototyping (“plan to throw one away”)
What is requirement analysis?
- A requirement is a feature (ability) of the system that client requires
- Requirements analysis seeks to assess (analyze) and specify the behavior of the final system as a set of requirements.
- Requirements analysis results in a complete, consistent, correct, and unambiguousspecification of the requirements
- Requirements analysis can be iteratively carried out or done in a top-down fashion