Unit 2-SPM
Unit 2-SPM
SAIJSHREE SRIVASTAVA 1
Project Lifecycle and various stages:
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.
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.
• '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
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:
• 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
• 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.
• 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
Managing People
SAIJSHREE SRIVASTAVA 8
• Managing human resources
• Setting up reporting hierarchy etc.
Managing Project
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 )
7. Cost and effort estimation are performed in a stepwise fashion by breaking down a
project into major functions and related software engineering activities.
Estimation determines how much money, effort, resources, and time it will take to build a
specific system or product. Estimation is based on −
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.
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:
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.
SAIJSHREE SRIVASTAVA 11