Lecture - 01, Introduction SRE (Compatibility Mode)
Lecture - 01, Introduction SRE (Compatibility Mode)
Lecture # 1
Introduction
ALI JAVED
Lecturer
U.E.T TAXILA
Email:: ali.javed@uettaxila.edu.pk
What is Requirement?
The Goal of Software Development
Stakeholder’s Environment
Customer’s Types
Root Causes of Project Success and Failures
The Frequency of Requirement Errors
The High Cost of Requirement Errors
Requirements Management
Types of Software Applications
The Problem Domain
Stake Holder Needs
The Solution Domain
Features
Software Requirements
q
An Introduction To Use cases
Use Case Diagram
Use Case Elements
Relationship between Use case Elements
ATM Example Use Case Diagram
What is Requirement?
A condition or capability
p y that must be met or possessed
p by
y a
system or system component to solve a problem or to achieve an
objective
The Goal of Software Development
The goal of software development is to develop quality software—on time
and on budget—that meets customers' real needs.
A Stakeholder
k h ld is anyone whoh could
ld affects
ff or be
b affected
ff d by
b the
h
implementation of a new system or application.
For others of us, the customer is a company that has hired us to develop its
software, based on expectations that the software developed will be of the highest
quality and will transform the company into a more competitive, more profitable
organization in the marketplace.
marketplace
For others of us, the customer is sitting down the hall or downstairs or across the
country, waiting anxiously for that new application to enter sales orders more
efficiently
e ce ty o or to use e
e-commerce
co e ce for
o se
selling
g tthe
e co
company's
pa y s goods a
and
d se
services
ces so
that the company we both work for will ultimately be more profitable and our jobs
more rewarding and just more fun.
The Root Causes of Project Success and Failure
The first step in resolving any problem is to understand the root causes.
The 1994 Standish Group survey study noted the three most commonly
cited factors that caused projects to be "challenged":
Largest software development problems by category. (Data derived from ESPITI [1995].)
The Root Causes of Project Success and Failure
The two largest problems, appearing in about half the responses, were
Requirements specifications
Managing
i customer requirements
i
Table 1. summarizes a 1994 study by Capers Jones that provides data regarding the
likely number of "potential" defects in a development project and the typical
"efficiency" with which a development organization removes those defects through
various combinations
b off testing, inspections, and
d other
h strategies.
Requirements errors top the delivered defects and contribute approximately one third
of the total delivered defects to the defect pile
The High Cost of Requirements Errors
If requirements errors can be fixed quickly, easily, and economically, we still may not
have a huge problem. This last statistic delivers the final blow. Just the opposite tends
to be true. Studies performed at companies including GTE, TRW, IBM, and HP have
measured and assigned costs to errors occurring at various phases of the project
lif
lifecycle.
l Davis
D i [1993] summarized
i d a numberb off these
th studies,
t di as Figure
Fi 2 illustrates.
2. ill t t
Although these studies were run independently, they all reached roughly the same
conclusion: If a unit cost of one is assigned to the effort required to detect and repair
an error during the coding stage, then the cost to detect and repair an error during
the requirements stage is between five to ten times less. less Furthermore,
Furthermore the cost to
detect and repair an error during the maintenance stage is twenty times more.
errors that should have been detected as requirements errors somewhat earlier in
the process but that somehow "leaked" into the design phase of the project.
It's the latter category of errors that turn out to be particularly expensive,
for two reasons.
The true nature of the error may be disguised; everyone assumes that they're
looking for design errors during the testing or inspection activities that take place
during this phase, and considerable time and effort may be wasted until someone
says,
y , "Wait a minute! This isn't a design
g mistake after all;; we've g got the wrongg
requirements.“
The High Cost of Requirements Errors– Defect Leakage
The problems associated with "leakage" of defects from one lifecycle phase
to the next are fairly obvious when you think about them, but most
organizations haven't investigated them very carefully
However, the study also shows that 4 percent of the requirements defects
"leak" into the preliminary, or high-level, design of the project and that 7
percent leak further into detailed design.
p g The leakageg continues throughout
g
the lifecycle, and a total of 4 percent of the requirements errors aren't
found until maintenance, when the system has been released to the
customers and is presumably in full-scale operation.
The High Cost of Requirements Errors– Defect Leakage
Thus, depending on when and where a defect is discovered in a software application
development project, we're likely to experience the effect of 50–100 times cost. The
reason is that in order to repair the defect, we are likely to experience costs in some
or all of the following areas:
Re-specification.
Redesign.
Recoding.
Retesting.
Change orders (telling users and operators to replace a defective version of the system with the
corrected version).
Corrective action (undoing whatever damage may have been done by erroneous operation of the
improperly specified system, which could involve sending refund checks to angry customers,
rerunning computer jobs,
jobs and so on).
on)
Scrap (including code, design, and test cases that were carried out with the best of intentions but
then had to be thrown away when it became clear they were based on incorrect requirements).
Recall of defective versions of software and associated manuals from users. (Since software is now
embedded in products ranging from digital wristwatches to microwave ovens to automobiles, the
recall could include both tangible products and the software embedded within them.)
Warranty costs.
Product liability (if the customer sues for damages caused by the defective software).
Service costs for a company representative to visit a customer's field location to reinstall the new
software.
f
Documentation
Requirements Engineering Process
y Elicitation: work with the customer on gathering requirements
y Validation: you’ll ask your customer to confirm that what you’ve written is
accurate and complete and to correct errors.
Requirements Management
Requirements define capabilities that the systems must deliver, and conformance (or
lack of conformance) to a set of requirements often determines the success (or
failure) of projects. It makes sense, therefore, to find out what the requirements are,
write them down, organize them, and track them in the event that they change.
Let's take a closer look at some key concepts contained in this definition.
Anyone who has ever been involved with complex software systems—whether from the
perspective of a customer or a developer—knows that a crucial skill is the ability to elicit the
requirements from users and stakeholders.
Since hundreds, if not thousands, of requirements are likely to be associated with a system, it's
important to organize them.
Which project team members are responsible for the wind speed requirement
(#278), and which ones are allowed to modify it or delete it?
If requirement #278 is modified,
modified what other requirements will be affected?
How can we be sure that someone has written the code in a software system to
fulfill requirement #278, and which test cases in the overall test suite are intended
to verify that the requirements have indeed been fulfilled?
Types of Software Applications
Information Systems
Information systems and other applications developed for use within a company
(such as the payroll system being used to calculate the take-home
take home pay for our next
paycheck). This category is the basis for the information system/information
technology industry, or IS/IT.
Types of Software Applications
Commercial Software Applications
This is the home of the people who need the rock or a new sales order
entry system or a configuration management system good enough to blow
the competition away.
Problem Domain
The Problem Domain
These users have business or technical problems that they need our help to
solve. Therefore, it becomes our problem to understand their problems, in
their culture and their language, and to build systems that meet their
needs. Since this territory can seem a little foggy, therefore represented
as a cloud.
Within the problem domain, we use a set of team skills as our map and
compass to understand the problem to be solved. While we are here, we
need to gain an understanding of the problem and the needs that must be
filled to address this problem.
Stakeholder Needs
Needs
Moving Toward the Solution Domain
We move to Solution domain from the problem domain in order to provide
a solution to the problem at hand.
"The
The car will have power windows.
windows."
"Defect-trending charts will provide a visual means of assessing progress."
"The program will allow Web-enabled entry of sales orders."
“ The Attendance of students will be enrolled through face detection ."
These are simple descriptions,
descriptions in the user's language,
language that we will use as labels to
communicate with the user how our system addresses the problem. These labels
will become part of our everyday language, and much energy will be spent in
defining them, debating them, and prioritizing them. We'll call these descriptions
features of the system
y to be built and will define a feature as
Once we have established the feature set and have gained agreement with the
customer,
t we can move on to
t defining
d fi i th more specific
the ifi requirements
i t we will
ill need
d to
t
impose on the solution.
If we build a system that conforms to those requirements, we can be certain that the
system we develop
d l will
ll deliver
d l the
h features
f we promised.
d In turn, since the
h features
f
address one or more stakeholder needs, we will have addressed those needs directly in
the solution.
These more specific requirements are the software requirements. We'll represent them
as a block within our pyramid in a manner similar to the features. We also note that
these appear pretty far down on the pyramid, and this implies, correctly, that we have
much work to do before we get to that level of specificity
Moving Toward the Solution Domain
Software Requirements
Overview of the Problem Domain and Solution Domain
We have moved from the problem domain, represented by the cloud and the user needs we
discovered, to a definition of a system that will constitute the solution domain, represented by the
features of the system and the software requirements that will drive its design and implementation.
Moreover, we have done so in a logical, stepwise fashion, making sure to understand the problem
and the user's needs before we envision or define the solution.
An Introduction to Use Cases
Use cases
Actors
Actors are the people or systems that interact with the use cases
Mostly you will find that they are the users of the system that you are
g
modeling
Reasons for Use Cases
The name of the use case can be written either inside the ellipse but can also be placed
beneath it like:
Cash Withdrawal
Cash Withdrawal
Actor Notation
Actor Notation:: In a use case diagram an Actor is represented by a stick person like
symbol shown below
Customer
Relationships in Use Case Diagram
There are several types of relationships that may appear on a use case
diagram:
ATM Example
Relationships in Use Case Diagram
An Actor can be
b associated
d with
h another
h actor through
h h Generalization
l relationship
l h
ATM Example
Relationships in Use Case Diagram
Sometimes it becomes
b apparent that
h there
h is more than
h one version off a use case
and each has some actions in common and some that are unique to each one
In this case we can have a generalized use case and its specialized version
Use Case Diagram for ATM System
Any question