Uploaded by Nahom Mulugeta

Intro to SW RE Eng-Week2

advertisement
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
o A function of a system or component.
o Inputs, behavior, outputs.
o specifies what the system should do.
o List of feature-oriented product backlog.
o Example: Customer registration on the email.
30/10/2014
Chapter 1 Introduction
1
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
●What makes a good FRs?
◌ Unambiguous ◌ Independent
◌ Testable
◌ Atomic (Tractable) [Nether created nor destroyed.]
◌ Clear
◌ Necessary
◌ Understandable ◌ Implementation free
◌ Feasible
30/10/2014
Chapter 1 Introduction
2
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Example for elaborating a good FRs.
• Sum of the first 100 odd numbers.
Procedures:
1. Write an English –like user stories.
2. Step 1: Re-write in your own script.
3. Step 2: Write sequence of instructions
4. Step 2.1: Discover the initialization, decision, incremental,
processing, repeating and terminating points.
1.1 As an calculator, I have to use <add> to compute the 1st 100
positive numbers, so that the sum is correctly printed.
2.1 Sum the 1st 100 odd numbers.
2.1.1 User initializes <First> odd number, (a=1)
2.1.2 User initializes <sum>, (sum=0).
30/10/2014
Chapter 1 Introduction
3
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Example for elaborating a good FRs.
• Sum of the first 100 odd numbers ….
Procedures …:
2.1.3 User enters <n> number as terminating input size, (<n> =
100).
2.1.4 Press the add button to take an action with <First> and
<sum> if <First> < <n>.
2.1.5 The system updates the <sum>, <sum> = <sum> + <First>.
2.1.6 The <First> increments by 2, <First> = <First> + 2.
2.1.7 The system repeats the steps 2.1.4 to 2.1.6.
2.1.8 The system prints the <sum>.
Home work:
• Apply the above steps to draw the flow chart diagram.
• Consider also sample test cases to check whether this diagram fulfilled
the good FRs.or not?
30/10/2014
Chapter 1 Introduction
4
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
●FRs are closely related to user stories.
●User stories use INVEST acronym.
◌ Independent ◌ Small
◌ Negotiable
◌ Testable
◌ Valuable
◌ Estimable
30/10/2014
Chapter 1 Introduction
5
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
o Usually, user stories should be short, simple descriptions of a solution
that your team has come up with.
o A user story usually focus on three areas:
o As a (who)
o I want to (what)
o So that (any)
30/10/2014
Chapter 1 Introduction
6
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
● Write some user stories: => example
 Develop an iPhone application that enables a complicated
password.
 As an admin, I am required to create a complicated password,
so that my account is secure.
.
30/10/2014
Chapter 1 Introduction
7
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
defines
Requirement
Engineering & Use
Cases
30/10/2014
Use Case
Basics
Chapter 1 Introduction
8
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o FRs enable to capture the intended behavior of the system.
o This behavior may be expressed as services, tasks or functions the
system is required.
o Techniques for writing them: use cases, and requirements list with
shall statement.
30/10/2014
Chapter 1 Introduction
9
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
o FRs Main approaches:
o agile techniques that enable to foster the software development by
overriding the need to develop plan-oriented model for bridging
the requirement and the solution development.
o Example: List of features as High Level descriptions to form
the SCRUM which leads to contain the Low level
components..
30/10/2014
Chapter 1 Introduction
10
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements:
● Functional and non-functional requirements
User World
Requirements
Software-Based System
NFRs
FRs
o In agile:
o The Product backlog is maintained by the project
owner which contains every feature and requirement of
the product.
o Sprint backlog can be treated as the subset of product
backlog which contains features and requirements
related to that particular sprint only.
30/10/2014
Chapter 1 Introduction
11
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o FRs Main approaches:
o SCRUM is a lightweight framework that helps people, teams and
organizations generate value through adaptive solutions for complex
problems (www.scrum.org/resources/what-is-scrum).(More examples in Chapter
two under Elicitation techniques)
30/10/2014
Chapter 1 Introduction
12
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o FRs Main approaches:
o Behavior-driven development that enables to use the human
language as user stories to provide high level requirements through
creating features applicable especially for system and customer
testing. ( details in Chapter Five ).
30/10/2014
Chapter 1 Introduction
13
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o captures the required properties or qualities of the
system.
o Describe the experience the user has while doing their
work.
o Do not alter the product’s functional. The functional
requirements remain the same no matter what
properties you attach to them.
o Example: Send an email in 2 secs
30/10/2014
Chapter 1 Introduction
14
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o Often, how well some behavioral or structural
aspect of the system should be accomplished.
o Two categories:
o Observable at run time, e.g., performance, security,
reliability, availability, usability. Etc.
o Not Observable at runtime, e.g., extensibility,
portability, reusability, etc.
30/10/2014
Chapter 1 Introduction
15
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o Constraint requirements have to be fulfilled.
o Other requirements that constrain the software project :
o Project constraints
o Project drivers ( stakeholders)
o Project issues (Plan, budget, risks, etc)
30/10/2014
Chapter 1 Introduction
16
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
30/10/2014
o Other requirements that constrain the software project …:
o Project constraints mean:
o define how the eventual system must fit into the
world and what rules must be followed in its
development.
Chapter 1 Introduction
17
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o Other requirements that constrain the software project …:
o Project constraints come from
o
o
o
30/10/2014
Organizational constraints, e.g., deadlines, budget,
process standards, business rules;
Operational
constraints,
e.g.,
mandated
technologies, interfaces to hardware and other
software;
Legislative and Ethical constraints, e.g., safety,
privacy, health regulations/standards.
Chapter 1 Introduction
18
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o Other requirements that constrain the software project …:
o Project drivers come from
o
30/10/2014
are the driving forces for the system:
o Purpose of the System;
o Client,
Customer
and
other
Stakeholders;
o Users of the System.
Chapter 1 Introduction
(non-user)
19
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
Software-Based System
NFRs
FRs
o Other requirements ….
o Project issues come from ( details in chapter six):
o
30/10/2014
define the ideas, concerns, and issues related to
the project:
o Open issues
o Installation and transition issues
o Risks
o Estimated cost
o Change Cases
o Ideas for solutions and off-the-shelf options 20
Chapter 1 Introduction
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
o Other requirements ….
o Project issues come from ( details in chapter six):
o
define the ideas, concerns, and issues related to the project::
o Burn-up and burn-down charts are used to keep track of the
progress of the project.
o
30/10/2014
Burn-up charts represent how much work has been completed in any
project whereas Burn-down chart represents the remaining work in a
project.
Chapter 1 Introduction
21
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
o Other requirements ….
• Velocity is a metric that is calculated by the addition of all efforts
estimates associated with user stories completed in an iteration.
.
• It predicts how much work Agile can complete in a sprint and how
much time will it require to complete a project.
30/10/2014
Chapter 1 Introduction
22
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
o Other requirements ….
o Agile testing is done parallel to the development activity whereas a
traditional waterfall model testing is done at the end of the
development.
o As done in parallel, agile testing is done on small features whereas,
in a waterfall model, testing is performed on the whole application.
30/10/2014
Chapter 1 Introduction
23
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
 Quality requirements:
o Complete: The specified requirements must be complete, there must be
nothing missing that is important for the development of the software.
o Consistent: If the software requirements are provided by more than one
customer. Then the software engineer must ensure that the
requirements provided by an individual must not contradict the
requirements provided by another customer.
30/10/2014
Chapter 1 Introduction
24
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
 Quality requirements:
o Unambiguous: Each specified requirement must be unambiguous i.e. it
must specify a single meaning.
o Functions: The requirement must specify what functions or
computations must the software perform and not how they must be
implemented.
30/10/2014
Chapter 1 Introduction
25
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
 Quality requirements:
 Concise: Each requirement must be specified only once and there
should not be duplication of any requirement statement.
 Minimum: The specified requirements must not carry unnecessary
details.
30/10/2014
Chapter 1 Introduction
26
Week 2 Lesson:
Introduction to Requirements Engineering
* Types of Requirements …:
● Functional and non-functional requirements
Requirements
User World
FRs
Software-Based System
NFRs
 Quality requirements:
o Understandable: The specified requirements must be understandable
by both customer and software developer.
o Achievable: The requirement must be technically feasible.
o Testable: It can be verified that the requirements are collected
completely.
30/10/2014
Chapter 1 Introduction
27
Week 2 Lesson:
Introduction to Requirements Engineering
• Phases of Requirement
• Requirements engineering is generally viewed as a process
containing two phases.
• 1st, it concentrates on the analysis and modeling of the
environment for the system-to-be, the organizational context,
the stakeholders, their objectives and their relationships.
• 2nd, it concerns with modeling the system together with its
environment.
30/10/2014
Chapter 1 Introduction
28
Week 2 Lesson:
Introduction to Requirements Engineering
• Requirement Elicitation (What?) (details in Chapter two).
•
is the process to find out the requirements for an intended
software system by communicating with client, end users,
system users and others who have a stake in the software
system development.
• There are various ways to discover requirements.
•
•
 Interviews
 Domain Analysis
 Surveys
 Brainstorming
 Questionnaires
 Prototyping
 Task analysis
 Observation
GORE focuses on the activities that precede the formulation of
software system requirements.
This GORE mainly covers approaches: goal elicitation,
goal
refinement and various types of
goal
analysis, and
the
assignment of responsibility for goals to agents.
30/10/2014
Chapter 1 Introduction
29
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts:
•
NFR Framework:
• concentrates on the modeling and analysis of nonfunctional
requirements.
•
•
The goal of the framework is to put non-functional requirements
foremost in developer’s mind.
The NFR framework also supports cataloguing design knowledge into
three main types of catalogues:
• NFR type catalogues include concepts about particular types of NFRs,
such as performance.
30/10/2014
•
Method catalogues encode knowledge that helps in softgoal
refinement and operationalization.
•
Correlation rule catalogues have the knowledge that helps in
detecting implicit interdependencies among softgoals.
Chapter 1 Introduction
30
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
• Process (What?)
• A series of steps that when completed create an output of
some sort.
• Inputs are transformed into outputs,
• Process map (Why?)
• It is about collaboration and visual communication.
• Tools that supports analysts, project managers,
stakeholders.
• Levels of process mapping:
• Level 1: High-level description, what is happening.
• Level 2: Interaction description, what and who is
responsible, a bit more detail.
• Level 3: procedural description, what, who and how are
they transforming inputs.
30/10/2014
Chapter 1 Introduction
31
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
o AS-IS and TO-BE
o The AS-IS state of a Process is the current state.
o It is how the process operates before you make any changes
or improvements.
o The TO-BE process, on the other hand, is the future state.
o Steps to understand and document the As-Is Process:
o Observation –the most straightforward approach. Simply observe the
process as it’s going on.
o Interviews –Personal interviews with employees working on the process.
o Questionnaires –Surveys on the process in question. More efficient than
holding interviews, but generally less informative.
o Project Teams –A special team composed of individuals who are either
employees working on the process itself, or process improvement
experts.
30/10/2014
Chapter 1 Introduction
32
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
o AS-IS and TO-BE: Example scenarios on cyber security threats & emergency
alarm using activity diagram.
30/10/2014
Chapter 1 Introduction
33
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
o AS-IS and TO-BE: Analyzing the As-Is Process and Finding Improvements
o Basic questions to be considered:
o Are deadlines frequently missed within the process?
o Are some of the process steps taking unusually long?
o Are some of the process steps a time or money sink? Why?
o What process step has the highest impact on output?
o Are there any ways to make it more efficient?
o Can you use technology to automate it?
o This step can be a bit hard if you’re not a full-fledged process
improvement consultant.
30/10/2014
Chapter 1 Introduction
34
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
o AS-IS and TO-BE: Documenting and Implementing the To-Be Process
o The best practices for the change to get acceptance soon.
o Start Small – When a new process might seem to be a great
idea at a glance, it might turn out to be a disaster.
o To account for this, start the process on a small scale.
Once you are certain that the new process is empirically
better, you can scale it up & apply it company-wide.
o Enforce the Process – one can’t just go up to your
employees out of nowhere and say, “one will be doing things
completely differently from now on.” He/she needs to be
made aware of why he/she is making changes to the process
and how it’s going to affect their work.
30/10/2014
Chapter 1 Introduction
35
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
o AS-IS and TO-BE: Documenting and Implementing the To-Be Process
o The best practices for the change to get acceptance soon.
o Benchmark the Metrics – One has to be 100% certain that
the new process is better than the old; otherwise, one is only
going to end up wasting time. Pick the right metrics to
benchmark post-implementation.
o Post-implementation: Implementing the to-be process state isn’t
exactly the end of your work. (Why ?)
o Soln: Appropriate assessment methods have to be employed
for ensuring the quality of system TO-BE.
o (See next slide.)
30/10/2014
Chapter 1 Introduction
36
Week 2 Lesson:
Introduction to Requirements Engineering
• GORE approaches and concepts …:
• Strategic dependencies for GORE such as to develop an agent
based framework through agile way agreement.
NFRSoftgoal
Assured [Attends
meeting]
Agent-1
Hardgoal-FR
Attends
meeting
Meeting
Initiator
Resource-1
Proposed
dates
Agreement
Agent-2
Meeting
Participant
Resource-2
Adapted from:
Eric Yu, "Towards Modeling and Reasoning Support for Early-Phase Requirements Engineering,"
Proc. Third IEEE Intol. Symposium on Requirements Engineering, pp 226-235, 1997
30/10/2014
Chapter 1 Introduction
37
Week 2 Lesson:
Introduction to Requirements Engineering
• All-in-one approach for Modeling RE and AS-IS-TO-BE
• The arrows show the data flow either uni- or bi-directional.
User World
Requirements
AS-IS
Agent
I-Star
Modeling
Software-Based System
Process
TO-BE
Goal
KAOS
Reqs Verification & Validation
Responsible
30/10/2014
Chapter 1 Introduction
38
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML)
30/10/2014
Chapter 1 Introduction
39
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML)
1.
2.
3.
30/10/2014
Chapter 1 Introduction
40
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML)
30/10/2014
Chapter 1 Introduction
41
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML) (these tool
supports employee core tasks to be covered in Chapter 4-6):
• Supports NFR Framework, i* Framework, KAOS, and Problem
Frames notations.
• For Product Specification
– Enterprise/domain/world, or business modeling, using OO,
GO/AO
– Software requirements modeling and specification, using
OO/GO/AO
• For Process Specification
– Functional process modeling, using IDEF/UML
– Non-functional process modeling, using NFR Framework/KAOS
30/10/2014
Chapter 1 Introduction
42
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML) (these tool
supports employee core tasks to be covered in Chapter 4-6):
• KAOS: Knowledge Acquisition in Automated Specification
• provides an illustration of the most formal application of the
goal-oriented approach to deriving requirements for computerbased systems.
•
30/10/2014
is to derive a description of a system’s behavior and an initial
analysis of its structure through acquiring and formalizing
functional and non-functional requirements (or goals) for a
composite system
Chapter 1 Introduction
43
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML) (these tool
supports employee core tasks to be covered in Chapter 4-6):
• Object model: UML classes, attributes and associations are derived
systematically from the goal specifications.
• Agent:
• The agent model captures responsibility links between agents
and goals together with monitoring/control links between agents
and object attributes.
• A goal assigned to some agent in the software-to-be is
operationalized into functional services, called operations, to be
performed by the agent.
30/10/2014
Chapter 1 Introduction
44
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML) (these tool
supports employee core tasks to be covered in Chapter 4-6):
• Goal: A goal is a stakeholder need to be achieved.
•
A goal may be either a hardgoal (e.g. an object dispatched) or
a softgoal (e.g. safety and security) depending on whether it
has clear-cut achievement criteria.
• Resource: the constraints that responsible for processing of the
agents interaction.
30/10/2014
Chapter 1 Introduction
45
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE …
• Modeling RE-Tools covers toolkits ( with StarUML) (these tool
supports employee core tasks to be covered in Chapter 4-6):
• NRFSoftGoal: A softgoal may be refined using an And/Ordecomposition (denoted by a single/double arc) to more
specific sub-goals.
• SIG: Softgoal Interdependency Graph (SIG)
• PIG: Problem Interdependency Graph (PIG)
30/10/2014
Chapter 1 Introduction
46
Week 2 Lesson:
Introduction to Requirements Engineering
•
Softgoal Interdependency Graph (SIG) and Problem Interdependency Graph
(PIG)
1. Concepts
- Softgoal Interdependency Graph
- Problem Interdependency Graph
2. Relationships
- Decomposition Relationships
30/10/2014
- Contribution Relationships
Chapter 1 Introduction
47
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE and AS-IS-TO-BE: RE-Tools symbols and Scientific
notations.
30/10/2014
Chapter 1 Introduction
48
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling ….: Core RE-Tools symbols and Scientific notations.
30/10/2014
Chapter 1 Introduction
49
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE …: Core RE-Tools symbols and Scientific notations.
30/10/2014
Chapter 1 Introduction
50
Week 2 Lesson:
Introduction to Requirements Engineering
• Modeling RE …:Core RE-Tools symbols and
Scientific Notations.
30/10/2014
Chapter 1 Introduction
51
Download