SE&PM-BCS501 - Module - 5 Notes
SE&PM-BCS501 - Module - 5 Notes
Module 5
Chapter -13
13.1 Introduction
we need to define the qualities required for a system. We need to judge the objectively whether
system meets the quality requirements and this needs to be measured.
McCall Model
Defines the following eleven attributes of the software.
Dromey’s model
Dromey’s hierarchical quality model is shown in fig 13.2. The model proposes four major high-
level properties of the software: Correctness, internal characteristics, contextual
characteristics and certain descriptive properties.
Boehm’s model
The quality of a software can be defined based on three high-level characteristics. These high-
level characteristics are:
• As-is utility – how well (easily, reliably and efficiently) can it be used?
• Maintainability – how easy it is to understand, modify and then retest the software?
• Portability – how difficult would it be to make the software in a changed environment?
Fig 13.3 shows the Boehm’s hierarchical quality model based on wider range of software
attributes with greater focus on maintainability.
Exit requirements:
Which have to be fulfilled before an activity is deemed to have been completed. For example, for
testing phase to be completed, all tests will have to be run successfully with no outstanding
errors.
⚫ Estimation of resources, cost, and schedule for a software engineering effort requires
experience.
⚫ Project complexity - Complexity, however, is a relative measure that is affected by familiarity
with past effort.
The first-time developer of a sophisticated e-commerce application might consider it to be
exceedingly complex. However, a Web engineering team developing its tenth e-commerce
WebApp would consider such work easy.
⚫ Project size is another important factor that can affect the accuracy and efficacy of
estimates. As size increases, the interdependency among various elements of the software
grows rapidly.
⚫ Problem decomposition, becomes more difficult because the refinement of problem
elements.
⚫ The degree of structural uncertainty also has an effect on estimation risk.
⚫ When comprehensive software metrics are available for past projects, estimates can
be made with greater assurance, schedules can be established to avoid past difficulties,
and overall risk is reduced.
⚫ Software cost and effort estimation will never be an exact science. Too many variables—
human, technical, environmental, political—can affect the ultimate cost of software and
effort applied to develop it.
⚫ To achieve reliable cost and effort estimates, a number of options arise:
1. Delay estimation until late in the project (obviously, we can achieve 100 percent accurate
estimates after the project is complete!).
2. Base estimates on similar projects that have already been completed.
3. Use relatively simple decomposition techniques to generate project cost and effort estimates.
4. Use one or more empirical models for software cost and effort estimation.
⚫ Unfortunately, the first option, however attractive, is not practical. Cost estimates must be
provided up-front.
⚫ The second option can work reasonably well, if the current project is quite similar to past
efforts and other project influences (e.g., the customer, business conditions, the software
engineering environment, deadlines) are roughly equivalent.
⚫ The remaining options are viable approaches to software project estimation. Ideally, the
techniques noted for each option should be applied in tandem; each used as a cross-check
for the other.
⚫ Decomposition techniques take a divide-and-conquer approach to software project
estimation. By decomposing a project into major functions and related software engineering
activities, cost and effort estimation can be performed in a stepwise fashion.
⚫ A model is based on experience (historical data) and takes the form
d = f (vi)
where d is one of a number of estimated values (e.g., effort, cost, project duration) and vi are
selected independent parameters (e.g., estimated LOC or FP).
⚫ The decomposition approach was discussed from two different points of view:
decomposition of the problem and decomposition of the process.
⚫ Estimation uses one or both forms of partitioning. But before an estimate can be made, you
must understand the scope of the software to be built and generate an estimate of its
“size.”
⚫ LOC(Lines of Code) and FP(Function Points) are the estimation techniques used in project
estimation
⚫ as baseline metrics collected from past projects and used in conjunction with estimation
variables to develop cost and effort projections.
⚫ Baseline productivity metrics (e.g., LOC/pm or FP/pm6) are then applied to the appropriate
estimation variable, and cost or effort for the function is derived.
⚫ Function estimates are combined to produce an overall estimate for the entire project.
⚫ In general, LOC/pm or FP/pm averages should be computed by project domain. That is,
projects should be grouped by team size, application area, complexity, and other relevant
parameters ( pm means- person months)
⚫ A three-point or expected value can then be computed. The expected value for the
estimation variable (size) S can be computed as a weighted average of the optimistic (sopt),
most likely (sm), and pessimistic (spess) estimates. For example,
⚫ The most common technique for estimating a project is to base the estimate on the process
that will be used. That is, the process is decomposed into a relatively small set of tasks and the
effort required to accomplish each task is estimated.
⚫ Once problem functions and process activities are melded, you estimate the effort (e.g.,
person-months) that will be required to accomplish each software process activity for each
software function. These data constitute the central matrix of the table in Figure 26.4.
⚫ Average labor rates (i.e., cost/unit effort) are then applied to the effort estimated for each
process activity. It is very likely the labor rate will vary for each task. Senior staff are heavily
involved in early framework activities and are generally more expensive than junior staff
involved in construction and release.
Developing an estimation approach with use cases is problematic for the following reasons.
⚫ Use cases are described using many different formats and styles—there is no standard form.
⚫ Use cases represent an external view (the user’s view) of the software and can therefore be
written at many different levels of abstraction.
⚫ Use cases do not address the complexity of the functions and features that are described.
⚫ Use cases can describe complex behavior (e.g., interactions) that involve many functions and
features.
⚫ Smith argues that any level of this structural hierarchy can be described by no more than 10
use cases. Each of these use cases would encompass no more than 30 distinct scenarios.
⚫ Obviously, use cases that describe a large system are written at a much higher level of
abstraction (and represent considerably more development effort) than use cases that are
written to describe a single subsystem