0% found this document useful (0 votes)
26 views24 pages

SPM Unit-2nd

Software project management

Uploaded by

akshan09061999
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views24 pages

SPM Unit-2nd

Software project management

Uploaded by

akshan09061999
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

3rd Year

Software
Project
3rd
Management
Year
Er. Yashwant Dwivedi
UNIT-II
PROJECT LIFE CYCLE AND EFFORT ESTIMATION:

Project Lifecycle and various stages:


Software Process and Process Models
A Software Process (also known as software
methodology) is a set of related activities that leads to
the production of the software. These activities may
involve the development of the software from the
scratch, or, modifying an existing system.
Activities of any software process are:
1. Software specification (or requirements
engineering): Define the main functionalities of the
software and the constraints around them.
2. Software design and implementation: The
software is to be designed and programmed.
3. Software verification and validation: The software
must conform to it’s specification and meet the
customer needs.
4. Software evolution (software maintenance): The
software is being modified to meet customer and
market requirements changes.

A software process model is an abstraction of the


software development process. The models specify the
stages and order of a process. So, think of this as a
representation of the order of activities of the process
and the sequence in which they are performed.
A model will define the following:

 The tasks to be performed


 The input and output of each task
 The pre and post conditions for each task
 The flow and sequence of each task
Choice of Process Models

 'The word process is sometimes used to emphasize


the idea of a system in action. In order to achieve an
outcome, the system will have to execute one or
more activities: this is its process.
 This idea can be applied to the development of
computer-based systems where a number of
interrelated activities have to be undertaken to
create a local product. These activities can be
organized in different ways and we can call these
process models.
 A major part of the planning will be the choosing of
the development methods to be used and the
slotting of these into an overall process model.
 The planner needs not only to select methods but
also to specify how the method is to be applied. With
methods such as SSADM, there is a considerable
degree of choice about how it is to be applied: not all
parts of SSADM are compulsory. Many student
projects have the rather basic failing that at the
planning stage they claim. say. SSADM is to be
used: in the event, all that is produced are a few
SSADM fragments such as a top level data flow
diagram and a preliminary logical data structure
diagram. If this is all the particular project requires, it
should be stated at the outset.

Rapid Application
RAD is a linear sequential software development
process model that emphasizes a concise development
cycle using an element based construction approach. If
the requirements are well understood and described, and
the project scope is a constraint, the RAD process
enables a development team to create a fully functional
system within a concise time period.
RAD (Rapid Application Development) is a concept that
products can be developed faster and of higher quality
through:

 Gathering requirements using workshops or focus


groups
 Prototyping and early, reiterative user testing of
designs
 The re-use of software components
 A rigidly paced schedule that refers design
improvements to the next product version
 Less formality in reviews and other team
communication

Agile Methods
AGILE methodology is a practice that promotes
continuous iteration of development and testing
throughout the software development life cycle of the
project. In the Agile model, both development and testing
activities are concurrent, unlike the Waterfall model.
The Agile software development methodology is one of
the simplest and effective processes to turn a vision for a
business need into software solutions. Agile is a term
used to describe software development approaches that
employ continual planning, learning, improvement, team
collaboration, evolutionary development, and early
delivery. It encourages flexible responses to change.
The Agile methodology is a way to manage a project by
breaking it up into several phases. It involves constant
collaboration with stakeholders and continuous
improvement at every stage. Once the work begins,
teams cycle through a process of planning, executing,
and evaluating. Continuous collaboration is vital, both
with team members and project stakeholders.
Methods involved :
1. Test Management is a process of managing the
testing activities in order to ensure high quality and
high-end testing of the software application.
2. Development in project management includes
following steps:
1. Brainstorming and planning.
2. Requirements and feasibility analysis.
3. Design.
4. Development & coding.
Integration and testing.
5.
Implementation and deployment.
6.
Operations and maintenance.
7.
3. Project design is an early phase of the project
where a project's key features, structure, criteria
for success, and major deliverables are all
planned out. The aim is to develop one or more
designs that can be used to achieve the desired
project goals.
4. Deploy:

Software deployment is one of the most important


aspects of the software development process.
Deployment is the mechanism through which
applications
1. Requirements:

The software requirements specification document


lists sufficient and necessary requirements for the
project development.
Dynamic System Development Method

 DSDM is an iterative code method within which


every iteration follows the 80% rule that simply
enough work is needed for every increment to
facilitate movement to the following increment.
 The remaining detail is often completed later once a
lot of business
necessities are noted or changes are requested and
accommodated.

 DSDM is an Agile method that focuses on the full


project lifecycle, DSDM (formally known as Dynamic
System Development Method) was created in 1994,
after project managers using RAD (Rapid
Application Development) sought more governance
and discipline to this new iterative way of working.
1. Feasibility Study:
It establishes the essential business necessities and
constraints related to the application to be designed
then assesses whether or not the application could
be a viable candidate for the DSDM method.
2. Business Study:
It establishes the use and knowledge necessities
that may permit the application to supply business
value; additionally, it is the essential application
design and identifies the maintainability necessities
for the application.
3. Functional Model Iteration:
It produces a collection of progressive prototypes
that demonstrate practicality for the client.

Extreme Programming
Extreme programming (XP) is one of the most important
software development frameworks of Agile models. It is
used to improve software quality and responsive to
customer requirements. The extreme programming
model recommends taking the best practices that have
worked well in the past in program development projects
to extreme levels.
Extreme Programming (XP) is an agile project
management framework used in software development.
It prescribes everything, from how to organize projects
and develop software, to how to increase developers'
productivity and what's the best way to collaborate on
code.
Three practices of Extreme Programming:

 Continuous Integration
 Test-First (including Test-Driven Development and
Behavior-Driven Development)
 Refactoring,pair work, and collective ownership.
Some teams use other XP practices, such as a pair
programming, and system metaphors
Empirical estimation models(Estimation models for
computer software use empirically derived formulas
to predict effort as a function of LOC (line of code) or
FP(function point).Resultant values computed for
LOC or FP are entered into an estimation model )
Managing Interactive Processes

Managing People
 Act as project leader
 Liaison with stakeholders
 Managing human resources
 Setting up reporting hierarchy etc.
Managing Project

 Defining and setting up project scope


 Managing project management activities
 Monitoring progress and performance
 Risk analysis at every phase
 Take necessary step to avoid or come out of
problems
 Act as project spokesperson
Basics of Software Estimation:
Activities involved in Software Estimation:
1. Projects planning(Estimation determines how
much money, effort, resources, and time it will take
to build a specific system or product )
2. Scope and feasibility(The functions and features
that are to be delivered to end users.The data that
are input to and output from the system.The
"content" that is presented to users as a
consequence of using the software)
3. Project resources(Each resource is specified
with:A description of the resource.A statement of
availability,time when the resource will be
required.The duration of time that the resource will
be applied Time window)
4. Estimation of project cost and effort(The
accuracy of a software project estimate is
predicated on:The degree to which the planner
has properly estimated the size (e.g., KLOC) of
the product to be built.The ability to translate the
size estimate into human effort, calendar time,
and money)
5. Decomposition techniques(Before an estimate
can be made and decomposition techniques
applied, the planner must Understand the scope
of the software to be built Generate an estimate
of the software’s size)
6. Empirical estimation models(Estimation models
for computer software use empirically derived
formulas to predict effort as a function of LOC
(line of code) or FP(function point).Resultant
values computed for LOC or FP are entered into
an estimation model )

Effort and Cost Estimation Techniques


Cost and effort estimation are performed in a stepwise
fashion by breaking down a project into major functions
and related software engineering activities.
Basics of Software Estimation:
Estimation determines how much money, effort,
resources, and time it will take to build a specific system
or product. Estimation is based on −

 Past Data/Past Experience


 Available Documents/Knowledge
 Assumptions
 Identified Risks
The four basic steps in Software Project Estimation are −

 Estimate the size of the development product.


 Estimate the effort in person-months or person-
hours.
 Estimate the schedule in calendar months.
 Estimate the project cost in agreed currency.

COSMIC Full Function Points:

 COSMIC function points are a unit of measure of


software functional size.
 The size is a consistent measurement (or estimate)
which is very useful for planning and managing
software and related activities.
 The process of measuring software size is called
functional size measurement (FSM).
 Function points are used to compute a functional
size measurement (FSM) of software. The cost (in
dollars or hours) of a single unit is calculated from
past projects.
 In the context of the COSMIC FFP measurement
method, which is aimed at measuring the functional
size of software, only those functional user
requirements allocated to software are considered.
 For instance:the functional user requirements in this
example are allocated to three distinct pieces, each
exchanging data with another through a specific
organization:
o One piece of the software lies at the application
level and exchanges data with the software's
users, and the second piece lies at the
operating system level.
o In turn, this second piece of the software
exchanges data with a third piece lying at the
device driver level.
o This last piece then exchanges data directly
with the hardware.
 The COSMIC FFP measurement method associates
the functional user requirements for each piece with
a specific layer. Each layer possesses an intrinsic
boundary for which specific users are identified.

COCOMO II a Parametric Productivity Model


COCOMO-II is the revised version of the original
Cocomo (Constructive Cost Model) and is developed at
University of Southern California. It is the model that
allows one to estimate the cost, effort and schedule
when planning a new software development activity.
Three Sub models:

End User Programming:


Application generators are used in this sub-model. End
user write the code by using these application
generators.Example – Spreadsheets, report generator,
etc.
2. Intermediate Sector:

 Application Generators and Composition


Aids(This category will create largely prepackaged
capabilities for user programming.)
 (b). Application Composition Sector(This
category is too diversified and to be handled by
prepackaged solutions)
 (c). System Integration(Deals with large scale and
highly embedded systems)
3. Infrastructure Sector:
This category provides infrastructure for the software
development like Operating System, Database
Management System, User Interface Management
System, Networking System, etc.
Stages of COCOMO II:
1. Stage-I:(supports estimation of prototyping)
2. Stage-II:(supports estimation in the early design
stage of the project, when we less know about it)
3. Stage-III:(supports estimation in the post
architecture stage of a project.)

You might also like