SEPM_Module2_notes
SEPM_Module2_notes
ON
(2023-24)
DEPARTMENT OF
• requirements elicitation
• requirements specification
• system modeling
• requirements validation
• requirements management
a) Requirements Elicitation
It certainly seems simple enough—ask the customer, the users, and others what the objectives for the
system or product are, what is to be accomplished, how the system or product fits into the needs of the
business, and finally, how the system or product is to be used on a day-to-day basis. But it isn’t simple—
it’s very hard.
Stakeholder definition-- Refers to any person or group who will be affected by the system directly or
indirectly i.e. End-users, Engineers, business managers, domain experts.
Reasons why eliciting is difficult
1. Stakeholder often don’t know what they want from the computer system.
2. Stakeholder expression of requirements in natural language is sometimes difficult to understand.
3. Different stakeholders express requirements differently
4.Influences of political factors Change in requirements due to dynamic environments.
The work products produced as a consequence of the requirements elicitation activity will vary
depending on the size of the system or product to be built. For most systems, the work products
include
• A statement of need and feasibility.
• A bounded statement of scope for the system or product. A list of customers, users, and other
stakeholders who participated in the requirements elicitation activity.
• A description of the system’s technical environment.
• A list of requirements (preferably organized by function) and the domain constraints that apply
to each.
• A set of usage scenarios that provide insight into the use of the system or product under
different operating conditions.
• Any prototypes developed to better define requirements. Each of these work products is
reviewed by all people who have participated in the requirements elicitation.
1.1 Purpose
Functional Point helps in describing system complexity and also shows project timeline
If the Use-Cases are written with User Goal Levels, a transaction is equivalent to a step in the Use-
Case. Find the number of transactions by counting the steps in the Use-Case.
Step 1.1.2 − Classify each Use-Case as Simple, Average or Complex based on the number of
transactions in the Use-Case. Also, assign Use-Case Weight as shown in the following table −
Simple ≤3 5
Average 4 to 7 10
Complex >7 15
Step 1.1.3 − Repeat for each Use-Case and get all the Use-Case Weights. Unadjusted Use-Case
Weight (UUCW) is the sum of all the Use-Case Weights.
Step 1.1.4 − Find Unadjusted Use-Case Weight (UUCW) using the following table −
5 × NSUC + 10 × NAUC + 15 ×
Unadjusted Use-Case Weight (UUCW)
NCUC
Where,
An Actor in a Use-Case might be a person, another program, etc. Some actors, such as a system
with defined API, have very simple needs and increase the complexity of a Use-Case only slightly.
Some actors, such as a system interacting through a protocol have more needs and increase the
complexity of a Use-Case to a certain extent.
Other Actors, such as a user interacting through GUI have a significant impact on the complexity
of a Use-Case. Based on these differences, you can classify actors as Simple, Average and
Complex.
Step 1.2.1 − Classify Actors as Simple, Average and Complex and assign Actor Weights as shown
in the following table −
Step 1.2.2 − Repeat for each Actor and get all the Actor Weights. Unadjusted Actor Weight
(UAW) is the sum of all the Actor Weights.
Step 1.2.3 − Find Unadjusted Actor Weight (UAW) using the following table −
The Unadjusted Use-Case Weight (UUCW) and the Unadjusted Actor Weight (UAW) together
give the unadjusted size of the system, referred to as Unadjusted Use-Case Points.
The next steps are to adjust the Unadjusted Use-Case Points (UUCP) for Technical Complexity
and Environmental Complexity.
Step 2.1 − Consider the 13 Factors that contribute to the impact of the Technical Complexity of a
project on Use-Case Points and their corresponding Weights as given in the following table −
T6 Easy to install .5
T7 Easy to use .5
T8 Portable 2.0
Step 2.3 − Calculate the Impact of the Factor from Impact Weight of the Factor and the Rated
Value for the project as
Step (2.4) − Calculate the sum of Impact of all the Factors. This gives the Total Technical Factor
(TFactor) as given in table below −
Weight
Factor Description
(W)
T6 Easy to install .5
T7 Easy to use .5
T8 Portable 2.0
F2 Application experience .5
F5 Motivation 1.0
Step 3.2 − For each of the 8 Factors, assess the project and rate from 0 (irrelevant) to 5 (very
important).
Step 3.3 − Calculate the Impact of the Factor from Impact Weight of the Factor and the Rated
Value for the project as
Step 3.4 − Calculate the sum of Impact of all the Factors. This gives the Total Environment
Factor (EFactor) as given in the following table −
Weight
Factor Description
(W)
F2 Application experience .5
F5 Motivation 1.0
Difficult programming
F8 -1.0
language
Step 3.5 − Calculate the Environmental Factor (EF) as −1.4 + (-0.03 × EFactor)
An estimation model for computer software uses empirically derived formulas to predict effort as
a function of LOC or FP. Values for LOC or FP are estimated using the approach described in
Sections 5.6.2 and 5.6.3. But instead of using the tables described in those sections, the resultant
values for LOC or FP are plugged into the estimation model.
The empirical data that support most estimation models are derived from a limited sample of
projects. For this reason, no estimation model is appropriate for all classes of software and in all
development environments. Therefore, the results obtained from such models must be used
judiciously.
A typical estimation model is derived using regression analysis on data collected from past
software projects. The overall structure of such models takes the form
E = A + B x(ev)C
where A, B, and C are empirically derived constants, E is effort in person-months, and ev is the
estimation variable (either LOC or FP). In addition to the relationship noted in above equation,
the majority of estimation models have some form of project adjustment component that enables
E to be adjusted by other project characteristics (e.g., problem complexity, staff experience,
development environment). Among the many:
Like its predecessor, COCOMO II is actually a hierarchy of estimation models that address the
following areas:
Application composition model. Used during the early stages of software engineering, when
prototyping of user interfaces, consideration of software and system interaction, assessment of
performance, and evaluation of technology maturity are paramount.
Early design stage model. Used once requirements have been stabilized and basic software
architecture has been established.
Like all estimation models for software, the COCOMO II models require sizing information. Three
different sizing options are available as part of the model hierarchy: object points, function points,
and lines of source code.
The COCOMO II application composition model uses object points and is illustrated in the
following paragraphs. It should be noted that other, more sophisticated estimation models (using
FP and KLOC) are also available as part of COCOMO II.
Like function points, the object point is an indirect software measure that is computed using counts
of the number of (1) screens (at the user interface), (2)reports, and (3) components likely to be
required to build the application. Each object instance (e.g., a screen or report) is classified into
one of three complexity levels (i.e., simple, medium, or difficult) using criteria suggested by
Boehm [BOE96]. In essence, complexity is a function of the number and source of the client and
server data tables that are required to generate the screen or report and the number of views or
sections presented as part of the screen or report.
Once complexity is determined, the number of screens, reports, and components are weighted
according to Table 5.1. The object point count is then determined by multiplying the original
number of object instances by the weighting factor in Table 5.1 and summing to obtain a total
object point count. When component-based development or general software reuse is to be applied,
the percent of reuse (%reuse) is estimated and the object point count is adjusted:
NOP = (object points) x [(100 %reuse)/100]
where NOP is defined as new object points.
To derive an estimate of effort based on the computed NOP value, a “productivity rate” must be
derived. Table 5.2 presents the productivity rate
PROD = NOP/person-month
For different levels of developer experience and development environment maturity. Once the
productivity rate has been determined, an estimate of project effort can bederived as
estimated effort = NOP/PROD
In more advanced COCOMO II models,15 a variety of scale factors, cost drivers, and adjustment
procedures are required. A complete discussion of these is beyond the scope of this book. The
interested reader should see [BOE00] or visit the COCOMO
The Software Equation
The software equation [PUT92] is a dynamic multivariable model that assumes a specific
distribution of effort over the life of a software development project. The model has been derived
from productivity data collected for over 4000 contemporary software projects. Based on these
data, an estimation model of the form
E = [LOC
B0.333/P]3
(1/t4)
where E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”16
P = “productivity parameter” that reflects:
• Overall process maturity and management practices
• The extent to which good software engineering practices are used
• The level of programming languages used
• The state of the software environment
• The skills and experience of the software team
• The complexity of the application
Typical values might be P = 2,000 for development of real-time embedded software; P = 10,000
for telecommunication and systems software; P = 28,000 for business systems applications.17 The
productivity parameter can be derived for local condition using historical data collected from past
development efforts.
It is important to note that the software equation has two independent parameters:
(1) an estimate of size (in LOC) and (2) an indication of project duration in calendar months or
years.
To simplify the estimation process and use a more common form for their estimation model,
Putnam and Myers [PUT92] suggest a set of equations derived from the software equation.
Minimum development time is defined as tmin = 8.14 (LOC/P)0.43 in months for tmin > 6 months
(5-4a)
E = 180 Bt3 in person-months for E ≥ 20 person-months
Note that t in Equation (5-4b) is represented in years.
Using Equations (5-4) with P = 12,000 (the recommended value for scientific software) for the
CAD software discussed earlier in this chapter,
tmin = 8.14 (33200/12000)0.43
tmin = 12.6 calendar months
E = 180 x 0.28 x (1.05)3
E = 58 person-months