0% found this document useful (0 votes)
22 views11 pages

Unit 2-SPM

SPM Unit2

Uploaded by

Vansh Sharma
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)
22 views11 pages

Unit 2-SPM

SPM Unit2

Uploaded by

Vansh Sharma
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/ 11

UNIT-2

PROJECT LIFE CYCLE AND EFFORT ESTIMATION:

SAIJSHREE SRIVASTAVA 1
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.

SAIJSHREE SRIVASTAVA 2
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.

SAIJSHREE SRIVASTAVA 3
• 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. 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:
SAIJSHREE SRIVASTAVA 4
• 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:
0. Brainstorming and planning.
1. Requirements and feasibility analysis.
2. Design.
3. Development & coding.
4. Integration and testing.
SAIJSHREE SRIVASTAVA 5
5. Implementation and deployment.
6. Operations and maintenance.
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.

SAIJSHREE SRIVASTAVA 6
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)
SAIJSHREE SRIVASTAVA 7
• 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

SAIJSHREE SRIVASTAVA 8
• 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

7. 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
SAIJSHREE SRIVASTAVA 9
• 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:

1. 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.)

SAIJSHREE SRIVASTAVA 10
• (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.)

SAIJSHREE SRIVASTAVA 11

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy