0% found this document useful (0 votes)
39 views10 pages

Unit 2 NOtes SPM

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

Unit 2 NOtes SPM

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

Unit – 2 Notes

Project Management Lifecycle


The Project Management Lifecycle refers to the series of phases or stages that a project goes through from
its initiation to its closure. It provides a structured framework for managing and controlling the project's
activities and deliverables. The four main phases of the project management lifecycle are:

1. Project Initiation:
 The project initiation phase is the starting point of the project, where the need or opportunity for
the project is identified, and its feasibility and viability are assessed. This phase involves defining the
project objectives, scope, stakeholders, and initial requirements.

2. Project Planning:
 The project planning phase involves developing a detailed plan that outlines how the project will be
executed, monitored, and controlled. This phase focuses on defining the project scope, schedule,
budget, resources, risks, and quality requirements.
3. Project Execution:
 The project execution phase is where the project plan is put into action, and project deliverables are
produced. This phase involves coordinating and managing project resources, tasks, and activities to
ensure that the project objectives are met within the specified constraints.
4. Project Closure:

 Description: The project closure phase marks the formal end of the project and involves wrapping
up project activities, documenting lessons learned, and transitioning deliverables to the project
stakeholders or end users. This phase ensures that the project is completed satisfactorily and that all
project resources are released and closed out.

Rapid Application development(RAD)


Rapid Application Development (RAD) is an iterative and incremental approach to software development
that prioritizes rapid prototyping and quick feedback cycles. It aims to accelerate the development process
by focusing on building functional prototypes, rather than extensive planning and documentation.
1. Business Modelling:
o This phase involves understanding the business context and objectives. It includes gathering
information about business processes, data flow, and the overall organizational framework.
The goal is to create a model that represents the business functions and information flow
within the organization.
2. Data Modelling:
o In this phase, the data objects required by the business model are defined and analyzed.
Relationships between data objects are established, and a detailed data model is created.
This model helps in understanding the structure and organization of data within the system.
3. Process Modelling:
o Here, the data model is translated into a series of actions to achieve specific business
objectives. This phase involves defining the process logic, rules, and workflows. Process
modelling ensures that the business processes are well-defined and aligned with the
business model.
4. Application Generation:
o This phase involves the actual creation of the system. Using automated tools, prototypes are
generated quickly. This allows for rapid construction of the application components, which
can then be iterated upon based on user feedback.
5. Testing and Turnover:
o The final phase focuses on testing the developed application. This includes validating
functionality, performance, and reliability. Any issues identified are addressed, and once the
application meets the desired standards, it is deployed for use.

Agile Model
The Agile model is a flexible and iterative approach to software development and project management. It
focuses on delivering small, workable increments of the product through collaboration, feedback, and
adaptation.
The phases of the Agile model are as follows:

1. Requirements Gathering:
o Description: This initial phase involves collecting the project requirements from stakeholders.
The aim is to understand the project goals, user needs, and business objectives.
Requirements are often documented as user stories or use cases.
2. Design the Requirements:
o Description: In this phase, the gathered requirements are transformed into design
specifications. This includes creating prototypes, wireframes, or mockups. The design phase
ensures that there is a clear plan for how the requirements will be implemented.
3. Construction/Iteration:
o Description: The actual development of the product takes place in this phase. Work is done
in small, iterative cycles called sprints. Each sprint results in a potentially shippable
increment of the product. Developers write code, integrate it, and perform initial tests.
4. Testing/Quality Assurance:
o Description: Once a sprint's increment is developed, it undergoes rigorous testing to ensure
it meets the quality standards and requirements. This includes unit testing, integration
testing, system testing, and user acceptance testing (UAT).
5. Deployment:
o Description: After testing, the increment is deployed to a production environment or a
staging environment where it can be accessed by users. Deployment can be done frequently
to ensure continuous delivery of the product.
6. Feedback:
o Description: Once the product increment is deployed, feedback is gathered from end-users
and stakeholders. This feedback is crucial for understanding how well the product meets user
needs and for identifying any issues or areas for improvement.
Agile Methodologies
1. Scrum:
Scrum is one of the most popular Agile frameworks, characterized by its iterative approach, short
development cycles (sprints), and emphasis on self-organizing cross-functional teams.
2. Kanban:
Kanban is a visual workflow management method that emphasizes continuous delivery and optimization of
work processes. It provides visibility into the flow of work and encourages incremental improvements to
increase efficiency and quality.
3. Extreme Programming (XP):
Extreme Programming (XP) is an Agile methodology focused on engineering practices that prioritize
simplicity, feedback, and continuous improvement. XP emphasizes coding standards, test-driven
development, pair programming, and frequent releases.
4. Lean Software Development:
Lean Software Development is inspired by Lean manufacturing principles and focuses on eliminating waste,
optimizing flow, and delivering value to customers. It emphasizes customer-centricity, value stream
mapping, and continuous improvement.
5. Dynamic System Development Method (DSDM):
Dynamic Systems Development Method (DSDM) is an Agile methodology that provides a framework for
delivering software solutions iteratively and incrementally while maintaining a focus on business needs and
user involvement throughout the project lifecycle. DSDM emphasizes collaboration, communication, and
flexibility to adapt to changing requirements and priorities.

Software Process
 Software process refers to a set of activities, methods, and practices used to develop, maintain, and
manage software systems effectively.
 It provides a structured framework for organizing and executing software development activities,
guiding teams through the entire software lifecycle from inception to delivery and maintenance.
 The software process encompasses various phases such as requirements gathering, design,
implementation, testing, deployment, and maintenance, each with its set of tasks, deliverables, and
quality assurance measures.

Software Process Models


Software process models are structured approaches that describe the sequence of activities, tasks, and
deliverables involved in software development. These models provide a roadmap for organizing and
executing software projects, guiding teams through the entire development lifecycle from inception to
delivery and maintenance.
Here are some common software process models:
1. Waterfall Model:
o The Waterfall model is a sequential, linear approach to software development, where each
phase (requirements, design, implementation, testing, deployment, maintenance) is
completed sequentially before moving on to the next.
o It follows a rigid, predefined sequence of activities, with each phase producing specific
deliverables that serve as inputs to the next phase.
o Advantages: Simple and easy to understand, well-suited for projects with stable
requirements and well-defined scope.
o Limitations: Limited flexibility to accommodate changes, long feedback cycles, higher risk of
late-stage defects.
2. Iterative and Incremental Models:
o Iterative and Incremental models, such as the Spiral model and Incremental model, involve
breaking down the development process into smaller iterations or increments, with each
iteration delivering a working version of the software.
o These models emphasize feedback, flexibility, and continuous improvement, allowing for
iterative refinement of requirements, design, and implementation.
o Advantages: Allows for early and frequent delivery of working software, accommodates
changing requirements, reduces risk through incremental development and feedback.
o Limitations: Requires active user involvement and collaboration, may result in increased
complexity and overhead with multiple iterations.
3. Agile Methodologies:
o Agile methodologies, such as Scrum, Kanban, and Extreme Programming (XP), prioritize
flexibility, collaboration, and customer feedback to deliver software solutions iteratively and
incrementally.
o Agile methodologies emphasize short development cycles, frequent deliveries, and
continuous improvement, with a focus on responding quickly to changes and delivering value
to customers.
o Advantages: Adaptability to changing requirements, customer-centric approach, promotes
collaboration and teamwork, early and continuous delivery of working software.
o Limitations: Requires skilled and experienced team members, may be challenging to scale to
large or complex projects, requires active customer involvement and collaboration.
4. V-Model:
o The V-Model is a variant of the Waterfall model that emphasizes the relationship between
development phases and corresponding testing phases. Each development phase is paired
with a corresponding testing phase, forming a V-shaped diagram.
o The V-Model promotes early and continuous testing throughout the development lifecycle,
with testing activities occurring in parallel with development activities.
o Advantages: Ensures that testing is integrated throughout the development process,
facilitates early detection and resolution of defects, improves overall software quality.
o Limitations: Limited flexibility to accommodate changes, may result in longer development
cycles due to sequential nature of activities.
5. Lean Software Development:
o Lean Software Development is inspired by Lean manufacturing principles and focuses on
eliminating waste, optimizing flow, and delivering value to customers.
o It emphasizes continuous improvement, customer collaboration, and minimizing delays and
inefficiencies in the development process.
o Advantages: Focuses on delivering value to customers, promotes collaboration and
teamwork, emphasizes continuous improvement and waste reduction.
o Limitations: Requires cultural and organizational changes, may be challenging to implement
in environments with rigid processes or structures.

Choice of Process Models


"Choice of process models" refers to selecting the most suitable methodology or framework for managing a
project's lifecycle. Key parameters involved in this decision include:
1. Project Requirements: Understanding the specific needs and characteristics of the project, such as
size, complexity, and criticality.
2. Team Expertise: Considering the skills and experience of the project team members in different
methodologies like Agile, Waterfall, or Spiral.
3. Project Constraints: Evaluating constraints like time, budget, and available resources that may
influence the choice of process model.
4. Client or Stakeholder Involvement: Determining the level of involvement and communication
expected from clients or stakeholders throughout the project.
5. Risk Tolerance: Assessing the project's risk tolerance and the need for flexibility or predictability in
the development process.
6. Regulatory Requirements: Compliance with industry standards or regulations may dictate the
selection of certain process models.
7. Project Environment: Considering factors like organizational culture, existing infrastructure, and
collaboration tools available.

Dynamic Systems Development Method (DSDM)


The Dynamic Systems Development technique (DSDM) is an associate degree agile code development
approach that provides a framework for building and maintaining systems. The DSDM philosophy is
borrowed from a modified version of the sociologist principle—80 % of an application is often delivered in
twenty percent of the time it’d desire deliver the entire (100 percent) application.
1. Feasibility Study:
It establishes the essential business necessities and constraints related to the applying to be designed then
assesses whether the application could be a viable candidate for the DSDM method.
2. Business Study:
Define the project scope and understand key business requirements. It establishes the use and knowledge
necessities that may permit the applying to supply business value
3. Functional Model Iteration:
It produces a collection of progressive prototypes that demonstrate practicality for the client. Develop and
validate functional prototypes to demonstrate core features.
4. Design and Build Iteration:
Transform design prototypes into working components through iterative development. It revisits
prototypes designed throughout useful model iteration to make sure that everyone has been designed
during a manner that may alter it to supply operational business price for finish users.
5. Implementation:
Deploy the final system into production and ensure it meets business needs. It ought to be noted that:
a. the increment might not 100% complete or,
b. changes are also requested because the increment is placed into place. In either case, DSDM
development work continues by returning to the useful model iteration activity
Effort Estimation:
 Effort estimation in software development refers to predicting the amount of human effort required
to complete a project. It involves estimating the total number of person-hours or person-days
needed to develop the software.
 Effort estimation considers factors such as the size and complexity of the project, the skills and
experience of the development team, the project's requirements, and the chosen development
methodology.

Cost Estimation:
 Cost estimation in software development involves predicting the financial resources required to
complete a project. It encompasses various expenses, including labour costs, software tools and
infrastructure, overhead expenses, and any other project-related costs.
 Cost estimation is closely tied to effort estimation, as the effort required directly influences the
labour costs. However, cost estimation also considers additional factors such as equipment costs,
licensing fees for software tools, training expenses, and potential overhead costs.

Software Estimation
Software estimation is the process of predicting the amount of effort, time, and resources required to
complete a software development project. Accurate software estimation is crucial for planning, budgeting,
scheduling, and managing projects effectively.
Key aspects of software estimation include:
1. Effort Estimation:
o Description: This involves predicting the total work required to complete the project, usually
measured in person-hours or person-days. It takes into account the complexity of the tasks,
the skills of the team, and the tools and technologies used.
2. Time Estimation:
o Description: This involves determining the duration needed to complete the project. Time
estimation considers not only the effort required but also factors such as team availability,
work schedules, dependencies between tasks, and potential delays.
3. Cost Estimation:
o Description: This includes calculating the total financial resources required for the project.
Costs can include labor, hardware, software, training, and other expenses. Accurate cost
estimation is vital for budgeting and financial planning.
4. Resource Estimation:
o Description: This involves identifying the necessary resources, including human resources
(e.g., developers, testers, project managers), physical resources (e.g., servers, workstations),
and software tools.
5. Scope Estimation:
o Description: This involves defining the boundaries of the project, including the features and
functionalities to be delivered. Scope estimation helps in understanding the overall size and
complexity of the project.
6. Risk Estimation:
o Description: This involves identifying potential risks that could impact the project and
estimating their likelihood and impact. Risk estimation helps in developing mitigation
strategies to address these risks proactively.

Software Estimation Techniques


1. Algorithmic Cost Modelling: This technique involves using mathematical models to estimate the
effort and cost of software development based on project attributes such as size, complexity, and
productivity rates. Examples include COCOMO (Constructive Cost Model) and SLIM (Software
Lifecycle Management). These models use historical data and parameters to generate estimates,
providing a systematic approach to estimation.
2. Expert Judgment: Expert judgment relies on the experience and insights of individuals who have
domain expertise or specific knowledge relevant to the project. Experts use their intuition, past
experiences, and knowledge of industry standards to provide estimates. While subjective, expert
judgment is valuable, especially in the early stages of a project when data may be limited.
3. Estimation by Analogy: This technique involves comparing the current project to similar past
projects and using the historical data from those projects to estimate effort and cost. It relies on the
assumption that projects with similar characteristics will require similar levels of effort and
resources. Analogy-based estimation can provide quick and reasonably accurate estimates,
especially when historical data is available and projects are well-defined.
4. Parkinson's Law: Parkinson's Law states that work expands to fill the time available for its
completion. In the context of software estimation, this principle suggests that setting shorter
deadlines can lead to increased productivity and efficiency. However, it's essential to balance
aggressive deadlines with realistic expectations to avoid compromising quality.
5. Pricing to Win Approach: This approach involves estimating the cost of software development
based on the desired profit margin and market competition rather than the actual effort required. It
focuses on pricing the project competitively to secure the contract or win the bid. While this
approach can be effective for winning projects, it may lead to underestimation of effort and costs if
not carefully managed.
6. Top-Down Estimation: Top-down estimation involves starting with an overall project estimate and
then breaking it down into smaller components or tasks. It typically begins at a high level of
abstraction, such as estimating the total project duration or cost, and then refines the estimates for
individual components based on further analysis. This approach is useful for high-level planning and
initial budgeting.
7. Bottom-Up Estimation: Bottom-up estimation involves estimating the effort and cost for individual
tasks or components and then aggregating these estimates to determine the total project effort and
cost. It requires detailed analysis of project requirements and tasks, making it more accurate but
also more time-consuming than top-down estimation. Bottom-up estimation is often used during
project execution and planning phases to create detailed schedules and budgets.

You might also like