0% found this document useful (0 votes)
51 views8 pages

SPM2

Uploaded by

Vaibhav
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)
51 views8 pages

SPM2

Uploaded by

Vaibhav
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/ 8

CHAPTER:-2

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.
5. Integration and testing.
6. Implementation and deployment.
7. 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.

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.

Feasibility Study:Feasibility Study:Feasibility Study:

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