Requirment engineering Flashcards

1
Q

What are the steps in the requirement engineering?

A

–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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a requirement?

A

•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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is requirement engineering?

A

The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is software management?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are functional requirements?

A

Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are non-functional requirements?

A

constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are domain requirements?

A

Requirements that come from the application domain of the system and that reflect characteristics of that domain.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What requirements should be?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are different classifications of non-functional requirements?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are some domain requirements problems?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the steps in the requirement engineering process?

A

•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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is requirement elicitation?

A

•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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some problems with requirement elicitation?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are some requirement elicitation techniques?

A

•➜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”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is requirement analysis?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What does it mean for the requirement to be complete?

A

All features of interest to the client are described by the requirements

17
Q

What does it mean for the requirement to be consistent?

A

No requirement contradicts any other requirement in the specification

18
Q

What does it mean for the requirement to be unambiguous?

A

The requirements cannot be interpreted in multiple ways.

19
Q

What does it mean for the requirement to be correct?

A

The requirements describe all features of interest to the client, but not extra or superfluous features

20
Q

What is the purpose of requirement analysis?

A

•Tool used by software developers to understand
–The functions of the application to be developed
–What the client/user expects the application to do
–The importance of each function to the client/user
–Necessary details of the application domain
Tool also helps the clients/users to understand
–What their own requirements are
–The feasibility and costs of some features that may be difficult to implement (this may change the user’s prioritization of features)

21
Q

When are requirements useful?

A

Requirements are only usefulif they have the following properties
–Realism: system can be implemented without violating any constraints
–Verifiability: As the system is designed and built repeatable tests can be developed that demonstrate the system fulfills each requirement
–Traceability: Each requirement can be mapped to one or more system functions, each system function can be mapped to at least one requirement. Interdependence between requirements is also mapped

22
Q

What is a feasibility study?

A

•A feasibility study decides whether or not the proposed system is worthwhile.
•A short focused study that checks
–If the system contributes to organisational objectives;
–If the system can be engineered using current technology and within budget;
–If the system can be integrated with other systems that are used.

23
Q

What is requirement specification?

A

•The process of writing donwthe user and system requirements in a requirements document.
•User requirements have to be understandable by end-users and customers who do not have a technical background.
•System requirements are more detailed requirements and may include more technical information.
•The requirements may be part of a contract for the system development
–It is therefore important that these are as complete as possible.

24
Q

What is structured specification?

A
  • An approach to writing requirements where the freedom of the requirements writer is limited and requirements are written in a standard way.
  • This works well for some types of requirements e.g. requirements for embedded control system but is sometimes too rigid for writing business system requirements.
25
Q

What is a form-based specification?

A
  • Definition of the function or entity.
  • Description of inputs and where they come from.
  • Description of outputs and where they go to.
  • Information about the information needed for the computation and other entities used.
  • Description of the action to be taken.
  • Pre and post conditions (if appropriate).
  • The side effects (if any) of the function.
26
Q

What is tabular specification?

A
  • Used to supplement natural language.
  • Particularly useful when you have to define a number of possible alternative courses of action.
  • For example, the insulin pump systems bases its computations on the rate of change of blood sugar level and the tabular specification explains how to calculate the insulin requirement for different scenarios.
27
Q

What are use cases?

A
  • Use-cases are a kind of scenario that are included in the UML.
  • Use cases identify the actors in an interaction and which describe the interaction itself.
  • A set of use cases should describe all possible interactions with the system.
  • High-level graphical model supplemented by more detailed tabular description (see Chapter 5).
  • UML sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.
28
Q

Which dimensions are used to verify requirements?

A
  • Validity. Does the system provide the functions which best support the customer’s needs?
  • Consistency. Are there any requirements conflicts?
  • Completeness. Are all functions required by the customer included?
  • Realism. Can the requirements be implemented given available budget and technology
  • Verifiability. Can the requirements be checked?
29
Q

What are some requirement validation techniques?

A

•Requirements reviews
–Systematic manual analysis of the requirements.
•Prototyping
–Using an executable model of the system to check requirements. Covered in Chapter 17.
•Test-case generation
–Developing tests for requirements to check testability.

30
Q

What does the requirement review check?

A
  • Verifiability. Is the requirement realistically testable?
  • Comprehensibility. Is the requirement properly understood?
  • Traceability. Is the origin of the requirement clearly stated?
  • Adaptability. Can the requirement be changed without a large impact on other requirements?
31
Q

What is requirement management?

A

•Requirements management is the process of managing changing requirements during the requirements engineering process and system development.
•Requirements are inevitably incomplete and inconsistent
–New requirements emerge during the process as business needs change and a better understanding of the system is developed;
–Different viewpoints have different requirements and these are often contradictory.

32
Q

What are principal activities in the requirement change management?

A

–Problem analysis. Discuss requirements problem and propose change;
–Change analysis and costing. Assess effects of change on other requirements;
–Change implementation. Modify requirements document and other documents to reflect change.

33
Q

What are some requirement management decisions?

A

–Requirements identificationEach requirement must be uniquely identified so that it can be cross-referenced with other requirements.
–A change management process This is the set of activities that assess the impact and cost of changes. I discuss this process in more detail in the following section.
–Traceability policies these policies define the relationships between each requirement and between the requirements and the system design that should be recorded.
–Tool support tools that may be used range from specialist requirements management systems to spreadsheets and simple database systems.

34
Q

What are enduring requirements?

A

Stable requirements derived from the core activity of the customer organisation. E.g. a hospital will always have doctors, nurses, etc. May be derived from domain models

35
Q

What are volatile requirements?

A

Requirements which change during development or when the system is in use. In a hospital, requirements derived from health-care policy