Topics
Topics
Topics
Software process and Process Models –
Choice of Process models –
Rapid Application development –
Agile methods – Dynamic System Development Method –
Extreme Programming– Managing interactive processes –
Basics of Software estimation –
Effort and Cost estimation techniques –
COSMIC Full function points –
COCOMO II - a Parametric Productivity Model.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
Even though writers often advocate alternative models, there is nothing intrinsically wrong
with the waterfall approach in the right place.
It is the ideal for which the project manager strives.
Where the requirements are well defined and the development methods are well
understood, the waterfall approach allows project completion times to be forecast with
some confidence, allowing the effective control of the project.
However, where there is uncertainty about how a system is to be implemented, and
unfortunately there very often is, a more flexible, iterative, approach is required.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
The distinguishing characteristic features of the spiral model are the incremental style of
development and the ability to handle various types of risks.
Each loop of the spiral is called a phase of this software process.
In each phase, one or more features of the product are implemented after resolving any
associated risks through prototyping.
The exact number of loops of the spiral is not fixed and varies from one project to another.
Note that the number of loops shown in Figure 4.4 is just an example illustrating how the spiral
model can subsume SSADM.
Each loop of the spiral is divided into four quadrants, indicating four stages in each phase.
In the first stage of a phase, one or more features of the product are analyzed and the risks in
implementing those features are identifi ed and resolved through prototyping.
In the third stage, the identified features are implemented using the waterfall model. In the fourth
and final stage, the developed increment is reviewed by the customer along with the development
team and the features to be implemented next are identified.
Note that the spiral model provides much more flexibility compared to the other models, in the
sense that the exact number of phases through which the product is to be developed can be
tailored by the project manager during execution of the project.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
One of the major problems that has been identified with the waterfall model is the following.
Clients often do not know what they exactly want until they see a working system.
However, they do not see the working system until the development is complete in all respects
and delivered to them.
As a result, the exact requirements are brought out only through the process of customers
commenting on the installed application.
The required changes are incorporated through subsequent maintenance efforts.
This makes the cost of accommodating any change extremely high.
As a result, it takes a long time and enormous cost to have a good solution in place.
Clearly, this model of developing software would displease even the best customer.
The RAD model tries to overcome this problem by inviting and incorporating customer feedback
on successively developed prototypes.
In the RAD model, absence of long-term and detailed planning gives the flexibility to
accommodate requirements change requests solicited from the customer during project
execution.
Agile Methods
Agile methods are designed to overcome the disadvantages we have noted in our discussions on
the heavyweight implementation methodologies.
One of the main disadvantages of the traditional heavyweight methodologies is the difficulty of effi
ciently accommodating change requests from customers during execution of the project.
Note that the agile model is an umbrella term that refers to a group of development processes,
and not any single model of software development.
There are various agile approaches such as the following:
● Crystal Technologies
● Atern (formerly DSDM)
● Feature-driven Development
● Scrum
● Extreme Programming (XP)
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
Small releases
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
The time between releases of functionality to users should be as short as possible. Beck suggests
that releases should ideally take a month or two. This is compatible with Tom Gilb’s
recommendation of a month as the ideal time for an increment, with a maximum of three months.
Metaphor
The system to be built will be software code that refl ects things that exist and happen in the real
world. A payroll application will calculate and record payments to employees. The terms used to
describe the corresponding software elements should, as far as possible, reflect real-world
terminology – at a very basic level this would mean using meaningful names for variables and
procedures such as ‘hourly_rate’ and ‘calculate_ gross_pay’.
Simple design
This is the practical implementation of the value of simplicity that was described above. Testing
Testing is done at the same time as coding. The test inputs and expected results should be
scripted so that the testing can be done using automated testing tools. These test cases can then
be accumulated so that they can be used for regression testing to ensure that later developments
do not insert errors into existing working code. This idea can be extended so that the tests and
expected results are actually created before the code is created. Working out what tests are
needed to check that a function is correct can itself help to clarify.
Refactoring
A threat to the target of striving to have always the simplest design is that over time, as
modifications are made to code, the structure tends to become more spaghetti-like.
Pair programming
All software code is written by pairs of developers, one actually doing the typing and the other
observing, discussing and making comments and suggestions about what the other is doing. At
intervals, the developers can swap roles.
Collective ownership
This is really the corollary of pair programming. The team as a whole takes collective responsibility
for the code in the system. A unit of code does not ‘belong’ to just one programmer who is the
only one who can modify it.
Continuous integration
This is another aspect of testing practice. As changes are made to software units, integrated tests
are run regularly – at least once a day – to ensure that all the components work together correctly.
Forty-hour weeks.
but in this case overtime should not be worked for two weeks in a row. Interestingly, in some case
studies of the application of XP, the 40-hour rule was the only one not adhered to.
On-site customers
Fast and effective communication with the users is achieved by having a user domain expert on-
site with the developers.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
Coding standards
If code is genuinely to be shared, then there must be common, accepted, coding standards to
support the understanding and ease of modification of the code.
Limitations of XP
The successful use of XP is based on certain conditions. If these do not exist, then its practice
could be difficult.
These conditions include the following.
● There must be easy access to users, or at least a customer representative who is a domain
expert. This may be difficult where developers and users belong to different organizations.
● Development staff need to be physically located in the same office.
● As users find out about how the system will work only by being presented with working versions
of the code, there may be communication problems if the application does not have a visual
interface. ● For work to be sequenced into small iterations of work, it must be possible to break
the system functionality into relatively small and self-contained components.
● Large, complex systems may initially need significant architectural effort. This might preclude
the use of XP.
Scrum
In the Scrum model, projects are divided into small parts of work that can be incrementally
developed and delivered over time boxes that are called sprints.
The product therefore gets developed over a series of manageable chunks.
Each sprint typically takes only a couple of weeks.
At the end of each sprint, stakeholders and team members meet to assess the progress and the
stakeholders suggest to the development team any changes and improvements they feel
necessary.
Selection of an Appropriate Project Approach 93 In the scrum model, the team members assume
three fundamental roles, viz., product owner, scrum master, and team member.
The product owner is responsible for communicating the customer’s vision of the product to the
development team.
The scrum master acts as a liaison between the product owner and the team, and facilitates the
development work.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
Introduction
A successful project is one delivered ‘on time, within budget and with the required quality’. This
implies that targets are set which the project manager then tries to meet.
This assumes that the targets are reasonable – no account is taken of the possibility of project
managers achieving record levels of productivity from their teams, but still not meeting a deadline
because of incorrect initial estimates.
Realistic estimates are therefore crucial.
A project manager like Amanda has to produce estimates of effort, which affect costs, and of
activity durations, which affect the delivery time.
These could be different, as in the case where two testers work on the same task for the same fi
ve days.
Some of the difficulties of estimating arise from the complexity and invisibility of software.
Also, the intensely human activities which make up system development cannot be treated in a
purely mechanistic way. Other difficulties include:
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
Estimates are carried out at various stages of a software project for a variety of reasons.
● Strategic planning :
Project portfolio management involves estimating the costs and benefits of new applications in
order to allocate priorities. Such estimates may also influence the scale of development staff
recruitment.
● Feasibility study:
This confirms that the benefits of the potential system will justify the costs.
● System specification:
Most system development methodologies usefully distinguish between the definition of the users’
requirements and the design which shows how those requirements are to be fulfilled.
● Evaluation of suppliers’ :
proposals In the case of the IOE annual maintenance contracts subsystem, for example, IOE
might consider putting development out to tender. Potential contractors would scrutinize the
system specification and produce estimates as the basis of their bids.
● Project planning
As the planning and implementation of the project becomes more detailed, more estimates of
smaller work components will be made. These will confirm earlier broad-brush estimates, and will
support more detailed planning, especially staff allocations.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
differences in factors such as programming languages and the experience of staff. If past project
data is lacking, externally maintained datasets of project performance data can be accessed.
One well-known international database is that maintained by the International Software
Benchmarking Standards Group (ISBSG), which currently contains data from 4800 projects.
Parameters to be estimated
The project manager needs to estimate two project parameters for carrying out project
planning. These two parameters are effort and duration.
Duration is usually measured in months. Work-month (wm) is a popular unit for effort
measurement. The term person-month (pm) is also frequently used to mean the same as
work-month.
One person-month is the effort an individual can typically put in a month.
The person-month estimate implicitly takes into account the productivity losses that
normally occur due to time lost in holidays, weekly offs, coffee breaks, etc.
Person-month (pm) is considered to be an appropriate unit for measuring effort compared
to person-days or person-years because developers are typically assigned to a project for
a certain number of months.
Measure of work
Measure of work involved in completing a project is also called the size of the project.
Work itself can be characterized by cost in accomplishing the project and the time over
which it is to be completed.
Direct calculation of cost or time is difficult at the early stages of planning.
The time taken to write the software may vary according to the competence or experience
of the software developers might not even have been identified.
Implementation time may also vary depending on the extent to which CASE (Computer
Aided
Bottom-up Estimating
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
With the bottom-up approach the estimator breaks the project into its component
tasks. With a large project, the process of breaking it down into tasks is iterative:
each task is decomposed into its component subtasks and these in turn could be
further analysed.
It is suggested that this is repeated until you get tasks an individual could do in a
week or two.
Why is this not a ‘top-down approach’?
After all, you start from the top and work down.
Although this top-down analysis is an essential precursor to bottom-up estimating,
it is really a separate process – that of producing a work breakdown schedule
(WBS).
The bottom-up part comes in adding up the calculated effort for each activity to get
an overall estimate.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
This identifi es the boundary of the software component to be assessed and thus the
points at which it receives inputs and transmits outputs.
Inputs and outputs are aggregated into data groups, where each group brings together
data items that relate to the same object of interest.
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
COCOMO II has been designed to accommodate this by having models for three different
stages.
● Application composition Here the external features of the system that the users will
experience are designed. Prototyping will typically be employed to do this. With small
applications that can be built using high-productivity application-building tools,
development can stop at this point.
● Early design Here the fundamental software structures are designed. With larger, more
demanding systems, where, for example, there will be large volumes of transactions and
performance is important, careful attention will need to be paid to the architecture to be
adopted.
● Post architecture Here the software structures undergo final construction, modification
and tuning to create a system that will perform as required.
Staffing Pattern
After the effort required to complete a software project has been estimated, the
staffing requirement for the project can be determined.
Putnam was the first to study the problem of what should be a proper staffing
pattern for software projects.
He extended the classical work of Norden who had earlier investigated the staffing
pattern of general research and development (R&D) type of projects.
In order to appreciate the staffing pattern desirable for software projects, we must
understand both Norden’s and Putnam’s results.
Norden’s work
Norden studied the staffi ng patterns of several R&D projects. He found the staffi ng
patterns of R&D projects to be very different from that of manufacturing or sales type of
work. In a sales outlet, the number of sales staff does not usually vary with time. For
example, in a supermarket the number of sales personnel would depend on the number
of sales counters alone and the number of sales personnel therefore remains fixed for
years together.
However, the staffing pattern of R&D type of projects changes dynamically over time for
effi cient manpower utilization.
At the start of an R&D project, the activities of the project are planned and initial
investigations are made.
During this time, the manpower requirements are low. As the project progresses, the
manpower requirement increases until it reaches a peak.
Thereafter the manpower requirement gradually diminishes.
Norden concluded that the staffing pattern for any R&D project can be approximated by
the Rayleigh distribution curve shown in Figure 5.3
RNSIT MCA
[Type here] Module-2 Project Life cycle and effort estimation 1
Putnam’s work
Norden’s work was carried out in the context of general R&D projects.
Putnam studied the problem of staffing of software projects and found that the
staffing pattern for software development projects has characteristics very similar
to R&D projects. Putnam adapted the Rayleigh–Norden curve to relate the number
of delivered lines of code to the effort and the time required to develop the product.
Only a small number of developers are needed at the beginning of a project to
carry out the planning and specification tasks.
As the project progresses and more detailed work is performed, the number of
developers increases and reaches a peak during product delivery which has been
shown to occur at time TD in Figure 5.3.
After product delivery, the number of project staff falls consistently during product
maintenance.
Putnam suggested that starting from a small number of developers, there should
be a staff build-up and after a peak size has been achieved, staff reduction is
required. However, the staff build-up should not be carried out in large instalments.
Experience shows that a very rapid build-up of project staff any time during the
project development correlates with schedule slippage.
RNSIT MCA