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

SPM Notes Unit 3

The document outlines key concepts in software project management, distinguishing between activities and tasks, and emphasizing the importance of software size and reuse estimation for project planning. It discusses risks associated with projects, the Capability Maturity Model (CMM), and various estimation models like COCOMO and SLIM, highlighting their advantages and disadvantages. Additionally, it covers organizational planning, project roles, and the necessary skills for effective software project management.

Uploaded by

t.ambika1991
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)
35 views10 pages

SPM Notes Unit 3

The document outlines key concepts in software project management, distinguishing between activities and tasks, and emphasizing the importance of software size and reuse estimation for project planning. It discusses risks associated with projects, the Capability Maturity Model (CMM), and various estimation models like COCOMO and SLIM, highlighting their advantages and disadvantages. Additionally, it covers organizational planning, project roles, and the necessary skills for effective software project management.

Uploaded by

t.ambika1991
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/ 10

Unit-Ⅲ

Tasks and Activities


In software project management, activities are broad, overarching components of a project, while
tasks are the specific, smaller units of work that need to be completed within those activities.

Activities:
 Broad, encompassing phases or stages of a project.
 Example: "Requirements Gathering," "Coding," "Testing".
 Have defined scope, start/end dates, and resource needs.
 Used to break down the project into manageable parts.

Tasks:
 Specific, actionable items within an activity.
 Example: "Gather user stories," "Write the login module code," "Execute unit tests".
 Have a defined owner, start/end dates, and potentially dependencies on other tasks.
 The sum of all tasks contributes to the completion of the overall project.

Software Size and Revus Estimating


Software size and reuse estimation are critical components of software project
management, helping to predict project effort, cost, and duration. Size estimation focuses on
determining the scale of the software to be built, while reuse estimation assesses the potential for
using existing components. These estimations are crucial for effective project planning, resource
allocation, and risk management.

Software Size Estimation:


Definition:
Software sizing is the process of estimating the size of a software application or component. It's
a fundamental activity in software engineering that helps in various project management tasks like
effort estimation, cost estimation, and scheduling

Techniques:
 Use Case Points: Measures the size based on the number of use cases and their
complexity.
 Story Points: Used in Agile methodologies to estimate the effort required for user stories.
Software Reuse Estimation:
Definition:
Software reuse estimation involves assessing the potential for using existing software
components, modules, or libraries in a new project.
 Cost Savings: Lower development effort translates to lower costs.
 Improved Quality: Reused code is often well-tested and more reliable than new code.
 Increased Productivity: Developers can focus on new functionalities rather than
reinventing the wheel.

Software Size and Reuse Estimation Occurs at the Beginning of the Life Cycle

Problems and Risks


In software project management, risks are potential events or conditions that, if they occur, can
negatively impact the project's objectives, such as its schedule, budget, or quality.
Definition:
Risks are future, uncertain events that could positively or negatively affect the project.
Types of Risks:
Schedule Risks: These relate to delays and missed deadlines, often due to poor time estimation
or resource allocation.
Budget Risks: These involve exceeding the allocated financial resources, potentially due to
inaccurate cost estimations or unexpected expenses.
Technical Risks: These encompass issues related to the software's functionality, performance, or
complexity.
Programmatic Risks: These are external factors like market changes, regulatory shifts, or
unforeseen events that can impact the project.
Operational Risks: These are day-to-day issues arising from poor planning or insufficient
resources.
Resource Risks: These are related to the availability, skills, or turnover of team members.

SEI CMM:
The Capability Maturity Model (CMM), developed by the Software Engineering Institute (SEI),
is a framework that helps organizations improve their software development processes. It
categorizes these processes into five maturity levels, ranging from an initial, ad-hoc state to an
optimized, continuously improving state. CMM provides a roadmap for organizations to asses
their current capabilities and identify areas for improvement.
Effort Measures:
By "effort" in the software estimation process, we mean the amount of person-effort, or labor,
that will be required to perform a task. It can be measured in any units, as long as the unit is kept
consistent. However, the de facto standard is staff-hours (person-hours), staff-days (person-days),
or, most commonly, staff-months (person-months).
• Tasks to be performed (WBS)
- Software development tasks (design, code, test)
- Additional development tasks (requirements, system)
- Support tasks (CM, QA, management)
- Tasks requiring additional labor (documents, etc.
• Additional dollar costs (travel, equipment, etc.)
• Size estimate for software
• Historical data on effort and productivity
• High-level schedule
• Process and methods
• Programming language
• Operating system for target system
• Tools to be used
• Staff experience level
Simple effort calculation is based on historical data: Size x Historical Productivity = Effort
Regardless of what unit is measured, reliance on good historical data is the best way to achieve
accuracy.
Suppose that historical data showed the following productivity:
Therefore, if new software is estimated to be 8,000 SLOC, then
If it is complex, it should take 2,000 staff-days.
If it is simple, it should take 1,000 staff-days.
Typical values for productivity rates are:
• 50300 SLOC/month (215 SLOC/day) for high-order language
• 60500 SLOC/month for assembly language
Lower numbers are for government projects with very severe constraints, such as
embedded real-time systems with life-critical safety characteristics. Higher numbers are for
commercial applications with few constraints. Even higher numbers can be achieved if you use
4GLs, high levels of reuse, and so on.

COCOMO: A Regression Model


The COnstructive COst MOdel (COCOMO) is arguably the most widely used estimating
technique. It is a regression-based model developed by Dr. Barry W. Boehm when he was at TRW
in the early 1970s. He began by analyzing 63 software projects of various types. The projects were
observed for actual size (LOC), actual effort expended, and actual schedule duration. Regression
analysis was then used to develop exponential equations that best describe the relationship between
the scattered data points.

Regression Models in General


A regression model is derived from a statistical interpretation of historical data to describe a
mean or "typical" relationship between variables.
Definitions:
Regression analysis is:
• The use of regression to make quantitative predictions of one variable from the values of another.
• A statistical technique used to find relationships between variables for the purpose of predicting
future values.
• Procedures for finding the mathematical function that best describes the relationship between a
dependent variable and one or more independent variables. In linear regression, the relationship is
constrained to be a straight line, and least-squares analysis is used to determine the best fit.
COCOMO II:
The COCOMO II (Constructive Cost Model II) model is a software cost estimation model used in
software project management to estimate effort, cost, and schedule for software development. It's
an evolution of the original COCOMO model and provides more accurate estimations by
considering factors like project size, complexity, and team experience. COCOMO II uses a
combination of formulas, cost drivers, and sizing methods to predict these parameters.

Advantages of COCOMO II:


Increased Accuracy:
Provides more accurate cost and effort estimations compared to the original COCOMO
model, especially for modern software development approaches.
Flexibility and Adaptability:
The sub-models and cost drivers allow for better adaptation to various project types and
development methodologies.
Early Estimation:
Can be used early in the project lifecycle with the Application Composition and Early
Design models, allowing for better planning.

Disadvantages of COCOMO II:


Complexity:

The detailed model of COCOMO II can be complex to implement and maintain, requiring
significant effort and expertise.
Data Dependency:
The accuracy of COCOMO II estimates is heavily reliant on the quality and accuracy of the input
data, including size estimates and cost driver assessments.
Learning Curve:
Implementing COCOMO II effectively may require a learning curve for teams, potentially
increasing initial workload and training costs.
Sub-Models of COCOMO Model:

SLIM: A Mathematical Model:


With regression modeling, the emphasis is on constructing a formula that best represents
scattered data points. In mathematical modeling, the emphasis is on matching the data to the form
of an existing mathematical function. In the early 1960s, Peter V. Norden of IBM concluded that
research and development projects exhibit well-defined and predictable staff loading patterns that
fit the mathematical formula for a Rayleigh distribution (Box 1110), as shown in Figure 11-13.

Advantages of the SLIM Model:


• Provides a comprehensive set of software development management tools that support the
entire software program life cycle.
• Offers value-added effective planning, especially on large projects.

• Allows "design to cost" if the user elects to enter size and desired number of staff-months.

• Simplifies strategic decision making.

• Supports "what-if" analysis.


• Provides defect rate information.

Disadvantages of the SLIM model:


• It works best on large projects (some say anything where software size is greater than 5,000
lines, effort is greater than 1.5 person-years, and development time is more than 6 months).
• To use the model, the software size must be identified in advance.
• Estimates are extremely sensitive to the technology factor.
• The model is extremely sensitive to compression of the delivery time (td)
• The model is extremely sensitive to the size estimate.
• The tool is complexit is not usually a 2- to 5-minute job to update a model.

Organised Planning
Organizational planning in software project management involves defining the project's
objectives, strategies, and structure to ensure efficient and effective execution. This includes
setting clear goals, allocating resources, defining roles and responsibilities, and establishing
communication channels.
4 types of planning
 Strategic Planning.
 Tactical Planning.
 Operational Planning.
 Contingency Planning.

The steps in the planning process are:


 Develop objectives.
 Develop tasks to meet those objectives.
 Determine resources needed to implement tasks.
 Create a timeline.
 Determine tracking and assessment method.
 Finalize plan.
 Distribute to all involved in the process.

Advantages:
Reduced Risks: By identifying potential risks and planning for them, organizational planning can
help mitigate negative impacts on the project.
Improved Project Control: Organizational planning provides a framework for monitoring
progress, identifying deviations from the plan, and taking corrective actions.
Adaptability and Flexibility: Modern project management approaches, like Agile, embrace
flexibility and allow teams to adapt to changing requirements.

Disadvantages:
Increased Complexity: Overly complex organizational structures can lead to communication
overhead and slow down decision-making processes.
Risk of Bureaucracy: A bureaucratic structure can stifle creativity and innovation, leading to a
less efficient and less enjoyable work environment.

Time-Consuming and Expensive: Developing and implementing a comprehensive


organizational plan can be time-consuming and costly.

Project rolues and skills needs


Software project management roles require a diverse set of skills, including technical expertise,
strong leadership, effective communication, and the ability to manage both resources and
risks. Key roles include the Project Manager, who oversees the entire project lifecycle, and various
team members with specialized skills like development, testing, and design.

Key Roles in Software Project Management:


Project Manager: Responsible for planning, executing, and closing a software project,
ensuring it meets objectives within the given constraints.
 Business Analyst: Bridges the gap between stakeholders and the development team,
gathering and documenting requirements.
 Software Architect: Designs the overall structure and technical blueprint of the software
system.
 Software Developer: Writes and tests the code that forms the software application.
 QA Engineer: Ensures the quality of the software through testing and validation.
 UI/UX Designer: Creates the user interface and experience of the software.
 Team Lead: Guides and motivates a specific team of developers or other specialists.
 Develop Engineer: Manages the infrastructure and deployment of the software.
 Project Sponsor: Provides high-level support and direction for the project.

You might also like