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

Software Project Management

Download as docx, pdf, or txt
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 8

SOFTWARE PROJECT MANAGEMENT

UNIT 1
Short note on Project Scheduling
Project schedule simply means a mechanism that is used to communicate and know about that tasks are
needed and has to be done or performed and which organizational resources will be given or allocated to
these tasks and in what time duration or time frame work is needed to be performed. Effective project
scheduling leads to success of project, reduced cost, and increased customer satisfaction. Scheduling in
project management means to list out activities, deliverables, and milestones within a project that are
delivered. It contains more notes than your average weekly planner notes. The most common and important
form of project schedule is Gantt chart.
Problems arise during Project Development Stage:

 People may leave or remain absent during particular stage of development.


 Hardware may get failed while performing.
 Software resource that is required may not be available at present, etc.

Resources required for Development of Project:

 Human effort
 Sufficient disk space on server
 Specialized hardware
 Software technology
 Travel allowance required by project staff, etc.

Task Set
A task set is a collection of individual tasks that need to be completed. Each task is a unit of work that
contributes to the overall goal of a project. The task set is essentially a list of all tasks, including their
descriptions, durations, and any other relevant attributes.
Components of a Task Set:
1. Task ID: A unique identifier for each task.
2. Task Description: A brief explanation of what the task involves.
3. Duration: The estimated time required to complete the task.
4. Dependencies: Other tasks that must be completed before this task can start.
5. Resources: The personnel, equipment, or materials required to complete the task.
6. Start Date: When the task is scheduled to begin.
7. End Date: When the task is expected to be finished.
8. Priority: The importance or urgency of the task.
9. Status: The current state of the task (e.g., not started, in progress, completed).
Task Network
A task network, also known as a project network diagram or task dependency diagram, is a graphical
representation of the tasks in a project and the dependencies between them. It shows the sequence in which
tasks must be completed and helps identify the critical path, which is the longest sequence of dependent
tasks that determines the shortest possible duration to complete the project.
Components of a Task Network:

 Nodes: Represent individual tasks, often depicted as circles or rectangles.


 Edges/Arrows: Represent dependencies between tasks, showing the direction of workflow from one
task to the next.
 Start Node: Indicates the beginning of the project.
 End Node: Indicates the completion of the project.
 Critical Path: The longest path through the network, indicating the minimum project duration.

Example of a Task Network:


(Start) --> [1. Requirements Gathering] --> [2. Design Phase] --> [3. Development] --> [4. Test]
Explain earned value analysis indicators and their importance in project management.
Earned value analysis (EVA) is a technique used in project management to track and evaluate a project's
progress in terms of cost and schedule performance. The EVA indicators are used to measure a project's
performance against its planned performance. The three main EVA indicators are:

 Planned Value (PV): The total planned cost of the work scheduled to be completed at a given point
in time.
 Earned Value (EV): The total cost of the work actually completed at a given point in time.
 Actual Cost (AC): The total actual cost incurred to complete the work at a given point in time.

EVA provides a clear picture of the project's performance, indicating whether the project is ahead of
schedule and under budget or behind schedule and over budget. It helps project managers to identify
potential issues early on and take corrective actions to keep the project on track.
Work Breakdown Structure (WBS)
A Work Breakdown Structure (WBS) is a hierarchical decomposition of a project into smaller, more
manageable components. It breaks down the project into deliverables and work packages, helping to
organize and define the total scope of the project.
Purpose of WBS

 Scope Management: Clearly defines the scope of the project, ensuring all necessary work is included.
 Task Management: Breaks down complex activities into smaller tasks that are easier to manage and
assign.
 Resource Allocation: Helps in the allocation and tracking of resources and responsibilities.
 Cost Estimation: Provides a framework for estimating costs and budgeting.
 Schedule Planning: Facilitates detailed scheduling and timeline development.
 Performance Measurement: Enables tracking of progress and performance using techniques like
Earned Value Management (EVM
Structure of WBS
A WBS typically has multiple levels, with the project goal or deliverable at the top and progressively finer
levels of detail below. Here is a common hierarchical structure:
Level 1: Project Goal/Deliverable
Level 2: Major Deliverables/Phases
Level 3: Sub-deliverables/Work Packages, Level 4: Tasks/Activities
UNIT 2
Software Project Estimation
Software project estimation involves predicting the effort, time, and resources required to complete a
software development project. Accurate estimation is crucial for planning, budgeting, scheduling, and
managing projects effectively. It helps stakeholders set realistic expectations and manage risks associated
with the project.
Techniques for Software Project Estimation
1. Expert Judgment
Description: Relies on the experience and intuition of experts who have handled similar projects in the past.
Advantages: Quick, leverages expert knowledge, useful for novel projects.
Disadvantages: Subjective, may lack consistency, and can be biased.
Application: Used in initial stages or when historical data is limited.
2. Algorithmic Models
Description: Algorithmic models use mathematical formulas and historical data to estimate project effort,
time, and cost. These models often involve parameters such as project size, complexity, and team
productivity.
Advantages:
 Can be highly accurate if the model is well-calibrated.
 Provides a repeatable and systematic approach.
Disadvantages:
 Requires detailed historical data and calibration.
 Initial setup and learning curve can be time-consuming.
Application: Projects where sufficient historical data and parameters are available.
3. Estimation by Analogy
Description: Estimation by analogy involves comparing the current project with similar past projects and
using their actual effort, duration, and cost data to estimate the new project.
Advantages:
 Based on real project data, which can increase accuracy.
 Relatively quick compared to detailed bottom-up approaches.
Disadvantages:
 Requires access to detailed data from past projects.
 Accuracy depends on the similarity between projects.
Application:
 Projects where detailed historical data from similar projects is available.
Describe empirical estimation models and their use in software project management.
Empirical estimation models are based on the statistical analysis of data collected from previous software
development projects. These models use historical data to make predictions about future software
development projects. The most commonly used empirical estimation models are COCOMO (Constructive
Cost Model) and its variants, such as COCOMO II and COCOMO 81.
COCOMO is a regression-based model that estimates the effort required to develop a software system based
on the size and complexity of the project. COCOMO II is an updated version of COCOMO that includes
additional factors such as team experience, software reuse, and development environment. COCOMO 81 is
a simplified version of COCOMO that uses only three factors to estimate the effort required to develop a
software system: size, complexity, and development environment.
Empirical estimation models are useful in software project management because they provide a more
accurate estimate of the effort and resources required for software development projects. However, these
models are only as good as the historical data used to build them, and they may not be accurate for projects
that are significantly different from the projects used to develop the model.
Explain estimation techniques for object-oriented projects, Agile development, and Web engineering
projects.
Object-oriented projects: In object-oriented projects, estimation is based on the size and complexity of
classes and objects. A common technique used for estimation in object-oriented projects is Function Point
Analysis (FPA), which takes into account the number of inputs, outputs, inquiries, files, and interfaces in the
system. Other techniques used for estimation in object-oriented projects include Object Points, Use Case
Points, and Feature Points.
Agile development: Agile development is a methodology that emphasizes iterative and incremental
development, where requirements and solutions evolve through the collaborative effort of self-organizing
and cross-functional teams. Estimation in Agile development is typically done using story points, which are
a measure of the relative size and complexity of user stories. A user story is a high-level definition of a
requirement, expressed in a way that can be understood by both the development team and the customer.
Web engineering projects: Estimation in Web engineering projects is based on the size and complexity of
the website or web application. A common technique used for estimation in Web engineering projects is
Web Function Point Analysis (WebFPA), which takes into account the number of pages, forms, and other
web-specific features in the system. Other techniques used for estimation in Web engineering projects
include Web Object Points and Web Use Case Points.
Define cost-benefit analysis and its importance in software project management.
Cost-benefit analysis is a decision-making technique used in software project management to determine the
economic feasibility of a project by comparing the costs of implementing the project with the benefits it will
generate. It involves identifying and quantifying all costs and benefits associated with a project and then
analyzing them to determine if the benefits justify the costs.
Steps in Cost-Benefit Analysis
1. Identify Costs:
 Direct Costs: Costs that are directly attributable to the project, such as salaries, software, hardware,
and training.
 Indirect Costs: Overhead costs not directly linked to the project, such as utilities and office space.
2. Identify Benefits:
 Tangible Benefits: Measurable benefits like increased revenue, reduced costs, and improved
productivity.
 Intangible Benefits: Benefits that are harder to quantify, such as improved customer satisfaction,
better decision-making, and enhanced company reputation.

3. Quantify Costs and Benefits:


Assign monetary values to both costs and benefits. This may involve estimating the dollar value of
intangible benefits through methods like surveys or market research.
4. Calculate Net Benefits:
Net Benefits: Total Benefits − Total Costs
5. Evaluate the Results:
Determine the feasibility and desirability of the project based on the calculated net benefits. Projects with
positive net benefits are generally considered viable.
Importance
The importance of cost-benefit analysis in software project management is that it helps project managers to
make informed decisions about whether to proceed with a project or not. By analyzing the costs and benefits
of a project, project managers can identify the potential risks and rewards associated with the project. They
can also determine if the project is financially feasible and whether it will generate a positive return on
investment. This information is crucial for making informed decisions about whether to proceed with the
project or not, and if so, how to manage it effectively to achieve the desired outcomes.
Explain cash flow forecasting and its role in software project management.
Cash flow forecasting is a financial management technique that involves predicting and tracking the inflow
and outflow of cash within an organization. In software project management, cash flow forecasting is an
essential tool for managing project finances and ensuring that there is adequate cash flow to meet the
project's needs.
The process of cash flow forecasting begins with the identification of all cash inflows and outflows
associated with the project. This includes all project costs, such as labor, materials, equipment, and
overheads, as well as any revenue or funding sources.
Once the cash inflows and outflows have been identified, they are projected over time to create a cash flow
forecast. This forecast enables project managers to manage cash shortfalls or surpluses and take appropriate
actions to manage them.
In software project management, cash flow forecasting is particularly important because software
development projects often involve significant upfront costs, with revenue generated only after the project is
completed. By forecasting cash flows and managing cash effectively, project managers can ensure that the
project stays on budget and on schedule.
Cost-benefit evaluation
Cost-benefit evaluation is a technique used in software project management to evaluate the benefits and
costs of a software project. There are various cost-benefit evaluation techniques used in software project
management, some of which are:
Return on Investment (ROI) - It is the ratio of the net benefit of a project to the cost of the project. It helps
in evaluating the financial feasibility of the project.
Net Present Value (NPV) - It is the difference between the present value of the expected cash inflows and
the present value of the expected cash outflows. It helps in determining the profitability of the project.
Internal Rate of Return (IRR) - It is the discount rate at which the NPV of a project is zero. It helps in
evaluating the financial feasibility of the project.
Payback Period - The payback period measures the time it takes for a project to generate enough cash flow
to recover its initial investment. Shorter payback periods are generally preferred as they indicate quicker
recovery of costs.
Cost-Effectiveness Analysis (CEA) - CEA compares the relative costs and outcomes (effects) of different
courses of action. It is particularly useful when benefits are hard to quantify in monetary terms but can be
measured in other units (e.g., improved user satisfaction, reduced time).
Explain the process of risk evaluation in software project management.
The process of risk evaluation in software project management involves identifying and analyzing potential
risks that could impact the project schedule, budget, or quality of the final product. This process helps
project managers to anticipate and mitigate potential problems before they occur, minimizing the negative
impact on the project. The steps involved in risk evaluation include:
Identifying potential risks: This involves brainstorming with the project team and other stakeholders to
identify potential risks that could impact the project.
Analyzing risks: Once potential risks have been identified, the project team analyzes each risk to determine
the probability and impact of its occurrence.
Developing risk mitigation strategies: Based on the analysis, the project team develops strategies to
mitigate the risks and reduce their impact on the project.
Monitoring and controlling risks: Once risk mitigation strategies have been developed, the project team
monitors the risks to ensure that they are under control and that new risks are identified and addressed in a
timely manner.
Structured Methods
Structured methods focus on a systematic, step-by-step approach to software development, emphasizing
planning, design, and documentation. Key components include Structured Analysis and Design (SAD),
which uses data flow diagrams (DFDs) and entity-relationship diagrams (ERDs) to represent system
requirements and design; Hierarchical Input Process Output (HIPO), which divides the system into modules
represented hierarchically; and Yourdon Structured Method (YSM), which focuses on decomposing systems
into sub-systems using DFDs, process specifications, and data dictionaries. Structured methods aim to
improve clarity and consistency, making complex systems easier to understand and manage.
Rapid Application Development (RAD)
Rapid Application Development (RAD) emphasizes quick development and iteration of prototypes over
rigid planning and testing. Key features include prototyping, where functional prototypes are developed
early in the process to gather user feedback; continuous user involvement, ensuring the final product meets
user needs; and iterative development, involving frequent revisions and updates based on user feedback and
testing. RAD is particularly effective for projects requiring rapid delivery and frequent changes based on
user feedback.
Waterfall Model
The waterfall model is a linear and sequential approach to software development. It consists of distinct
phases: Requirements Analysis, where system requirements are gathered and documented; System Design,
where architecture and design are defined based on requirements; Implementation, involving writing the
actual code; Integration and Testing, where components are integrated and verified; Deployment, installing
the system in the production environment; and Maintenance, providing ongoing support and enhancement.
Each phase must be completed before the next begins, making it suitable for projects with well-defined
requirements unlikely to change.
Spiral Model
The spiral model combines iterative development (prototyping) with the systematic aspects of the waterfall
model.
Planning: The first phase of the Spiral Model is the planning phase, where the scope of the project is
determined and a plan is created for the next iteration of the spiral.
Risk Analysis: In the risk analysis phase, the risks associated with the project are identified and evaluated.
Engineering: In the engineering phase, the software is developed based on the requirements gathered in the
previous iteration.
Evaluation: In the evaluation phase, the software is evaluated to determine if it meets the customer’s
requirements and if it is of high quality.
Planning: The next iteration of the spiral begins with a new planning phase, based on the results of the
evaluation.
Albrecht Function Point Analysis
Albrecht Function Point Analysis (FPA) is a technique used to measure the functional size of software by
quantifying its features and functionalities. It involves identifying and evaluating the various components of
the software, such as external inputs, outputs, user interactions, files, and interfaces. Each component is
assigned a weight based on its complexity, and the total function points are calculated to estimate the effort
required for development. FPA helps in project estimation, productivity analysis, and benchmarking,
providing a standardized way to measure and compare software development efforts across different
projects.
UNIT 3

Explain the objectives of activity planning and the importance of project scheduling.
The objectives of activity planning in project management are to effectively organize and sequence project
activities, allocate resources efficiently, and ensure timely completion of the project.
Activity planning helps in identifying the specific tasks or activities required to achieve project goals and
objectives.
It provides a structured approach to prioritize and schedule activities, ensuring that they are completed in the
right order and at the right time.
Project scheduling is important as it helps in allocating resources effectively and managing dependencies
between activities.
It enables project managers to create a timeline or project schedule, outlining the start and end dates for each
activity and the overall project.
Project scheduling helps in identifying critical activities and the critical path, which are essential for
completing the project on time.
It allows for better coordination and communication among project team members and stakeholders by
providing a clear timeline of activities.
Effective activity planning and project scheduling contribute to improved project control, resource
utilization, and overall project success.

You might also like