Lecture 2 - Requirement Engineering Flashcards

1
Q

Define Requirements Engineering

A

An activity that starts with planning, which involves identifying the project goals, constraints, and stakeholders. This step is crucial as it sets the direction for the entire project. REFER TO SLIDES FOR EXAMPLES

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

Why is Requirements Engineering difficult?

A
  • SW Engineering is a creative, problem solving activity
  • Real customers are not sure what they want
  • Large SW systems have many different stakeholders with different needs and priorities
  • Real developers are not sure how to build it
  • Real requirements creep
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What a way to make Requirements Engineering easier?

A

It is difficult to capture intent with only “words” So use some diagrams/pictures
Tip: PowerPoint is a fast & cheap way to mock-up a user interface. Can be 1/10 the time to do mock-ups in code.

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

Why is Requirements Engineering important?

A

Poor requirements capture = Big problem (=$$)
Misunderstanding = Chaos (=$$)
= Software project failure (=$$$$$$$!)

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

What are the 4 major activities of Requirements Engineering?

A
  • Elicitation: discover the requirements
  • Analysis: ensure the requirements are correct, complete, consistent and unambiguous
  • Specification: document the requirements
  • Validation: ensure that the system addresses the client’s needs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are Functional Requirements

A

An area of functionality the system must support.
- The functional requirements describe the interactions between the actors and the system independent of the realization of the system

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

What are Non-functional Requirements

A

A user-visible constraint on the system (restriction or limitation).
- Non-functional requirements describe user-visible aspects of the system that are not directly related with the functionality of the system.

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

What are some Quality Attributes of Non-functional Requirements?

A

Usability: How easy the system/service is to use
Reliability: Make sure the products works consistently
Security: Protecting the clients data, making product trustworthy
Safety: Make sure the product shouldn’t hurt anyone

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

What are Project Requirements?

A

Include: Business, Product and Process Requirements

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

What are Business Requirements?

A
  • Business Requirements describe in business terms what must be delivered or accomplished to provide value.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are Product Requirements?

A
  • Product Requirements describe the system or product which is one of several possible ways to accomplish the business requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are Process Requirements?

A
  • Process Requirements describe the processes the developing organization must follow and the constraints that they must obey
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sample Requirements Document Structure

A

REFER TO SLIDES

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

What does Requirement Elicitation consist of?

A
  • Process
  • Essence
  • Communication
  • Scope
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the difference between requirements and specification?

A

“Requirements is probably the most misused word in our industry.”
“Required means non-negotiable, yet in almost every project we see changed, bartered, and negotiated requirements”
VS
“The term “specification” acknowledges that software development is an iterative and evolving process.”

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

What is the Project Scope?

A
  • A critical element of requirements elicitation is informing the project scope.
  • Description of the software to be built and its purpose
  • Prioritizing the deliverables to ensure the customer’s most important business needs
  • how: time and other resources available to do this
17
Q

What are the challenges of Requirement Elicitation?

A
  • Articulation Problems
    – People don’t know what they want so they can’t tell you about it!
  • Communication Barriers
    – Different “languages” in different domains
  • Knowledge and Cognitive Limitations
    – Managing complexity
  • Human Behaviour Issues
    – Conflicting needs
  • Technical Issues
    – Change management
    – Too rigid adherence to methodology
18
Q

What are the Requirement Sources?

A
  • Goals
  • Domain knowledge
  • Stakeholders
  • Business Rules
  • Operational Environment
  • Organisational environment
19
Q

What is Requirement Source: Goals?

A
  • Goals. The term “goal” (sometimes called “business concern” or “critical success factor”) refers to the overall, high-level objectives of the software.
  • Goals provide the motivation for the software but are often vaguely formulated.
  • Software engineers need to pay particular attention to assessing the value (relative to priority) and cost of goals.
  • A feasibility study is a relatively low-cost way of doing this.
20
Q

What is Requirement Source: Domain knowledge?

A

Industry-specific concepts
Business process
Regulatory and compliance requirements
===
The unique ideas and knowledge in specific area, ie industry, business, etc
As well as the rules and regulations - regulatory and compliance requirements

21
Q

What is Requirement Source: Business Rules?

A
  • These are statements that define or constrain some aspect of the structure or the behavior of the business itself.
  • “A student cannot register in next semester’s courses if there remain some unpaid tuition fees” would be an example of a business rule for a university’s course-registration software.
22
Q

What is Requirement Source: Operational Environment?

A
  • Requirements will be derived from the environment in which the software will be executed.
  • These may be, for example, timing constraints in real-time software or performance constraints in a business environment.
23
Q

What is Requirement Source: Organizational Environment?

A
  • Software is often required to support a business process, the selection of which may be conditioned by the structure, culture, and internal politics of the organization.
  • The software engineer needs to be sensitive to these since, in general, new software should not force unplanned change on the business process.
24
Q

What are the methods of Requirements Elicitation

A
  1. Interviews
  2. Facilitated meetings
  3. Prototypes
  4. Observation
    * Scenarios
    * User stories
25
FOCUS: Interviews - Why are interviews good?
* Interviewing stakeholders is a “traditional” means of eliciting requirements. * Important to understand the advantages and limitations of interviews and how they should be conducted.
26
Define Interview
* An interview is a systematic attempt to collect information from a person.
27
How are interviews defined as successful?
* Interviewing success depends on ability to identify: – work flows, – factors that influence the operations of systems, and – the elements (documents, procedures, policies, etc.) that make up systems.
28
What are the 5 steps of the interviewing process?
1. Preparing for the interview 2. Planning and scheduling the interview 3. Opening and closing the interview 4. Conducting the interview 5. Following up for clarification
29
FOCUS: Facilitated Meetings - What is it?
Try to achieve a summative effect, whereby a group of people can bring more insight into their software requirements than by working individually.
30
What are the Advantages and Disadvantages of Facillicated meetings?
Advantage: * Brainstorm and refine ideas that may be difficult to bring to the surface using interviews. * conflicting requirements surface early on in a way that lets the stakeholders recognize where these occur. * may result in a richer and more consistent set of requirements than might otherwise be achievable. Disadvantage: * meetings need to be handled carefully (hence the need for a facilitator) to avoid poor group dynamics * Meetings are time consuming (hence the need for a facilitator)
31
FOCUS: Prototypes - What is it?
* Valuable tool for clarifying ambiguous requirements. * Act in a similar way to scenarios by providing users with a context within which they can better understand what information they need to provide. * Wide range of prototyping techniques—from paper mockups of screen designs to beta-test versions of software products * Protypes can also be used requirements validation (see later) * Low fidelity prototypes are often preferred to avoid the stakeholder “anchoring” on minor, incidental characteristics that could limit design flexibility
32
What are the Disadvantages/Risks of Prototypes?
* Disadvantage: Choose implementation too early * Risk: Rough prototype becomes the product
33
What are Scenarios and Use Cases?
- Scenarios and use cases are commonly used in planned methodologies, especially in the object-oriented UML setting - Scenarios provide a valuable means for providing context to the elicitation of user requirements. - They allow the software engineer to provide a framework for questions about user tasks by permitting “what if” and “how is this done” questions to be asked.
34
FOCUS: Observation - What is it?
* This helps discover implicit system requirements that reflect the actual rather than formal processes in which people are involved
35
What ar the Advantages and Disadvantages of Observations?
* Advantage: discovers many user tasks and business processes that are too subtle and complex for their actors to describe easily. === * Disadvantage: Expensive (analyst works in client environment) * Disadvantage: Observer should be detached: end-user based, nonjudgemental so not appropriate for discovering organisational or domain requirements
36
What is a Generic Requirement Process?
ELICITATION * Identify relevant sources of requirements * Ask appropriate questions to gain an understanding of their needs AND THEN * Analyse the gathered information, looking for implications, inconsistencies or unresolved issues * Confirm your understanding of the requirements with the users (validate) * Synthesize appropriate statements of the requirements (specify)
37
What are the questions we ask as part of system thinking?
1. What objectives are we trying to achieve? 2. What decisions do we control which affect those objectives? 3. What items dictate constraints on our range of choices? 4. What criteria should we use to evaluate candidate solutions? 5. What decision provides with the most satisfactory outcome with respect to those criteria?
38
What are the 13 Elicitation Guidelines?
1. Assess system feasibility 2. Be sensitive to organisational and political considerations 3. Identify and consult system stakeholders 4. Record Requirements Sources 5. Define the system’s operating environment 6. Use business concerns to drive requirements elicitation 7. Look for domain constraints 8. Record requirements rationale 9. Collect requirements from multiple viewpoints 10. Prototype poorly understood requirements 11. Use scenarios to elicit requirements 12. Define operational processes 13. Reuse requirements