You are on page 1of 20

206: SOFTWARE PROJECT MANAGEMENT

Q1) Solve any FIVE of the following:

1. What are different key attributes of quality software?

Ans: Different key attributes of quality software include

 Reliability: Consistency and accuracy of performance


 Functionality: Meeting user requirements and expectations
 Usability: ease of use and user-friendliness
 Efficiency: optimal use of system resources
 Maintainability: ease of maintenance and updates
 Scalability: ability to handle increased workloads
 Security: protection against unauthorized access and data
breaches.

2. What is strategic and technical assessment in project


planning?

Ans: Strategic assessment in project planning involves evaluating


the alignment of a project with organizational goals, assessing
potential risks and benefits, and determining the overall feasibility
and viability of the project. Technical assessment, on the other
hand, focuses on evaluating the technical aspects of the project,
such as technology requirements, infrastructure needs, resource
availability, and technical feasibility, to ensure that the project can
be successfully executed from a technical standpoint.

3. What are different types of risks in software project?

Ans: Different types of risks in software projects include:


 Technical Risks: Risks related to technology, such as
compatibility issues, inadequate infrastructure, or complexity
of the software.
 Schedule Risks: Risks associated with project timelines, such
as delays in development, unexpected dependencies, or
unrealistic deadlines.
 Cost Risks: Risks related to project budgeting, such as
unforeseen expenses, cost overruns, or inaccurate cost
estimations.
 Requirements Risks: Risks associated with requirements
gathering and management, including incomplete or changing
requirements, miscommunication, or scope creep.
 Resource Risks: Risks related to the availability and allocation
of resources, such as skilled personnel, equipment, or third-
party dependencies.

4. What are different estimation techniques in software effort


estimation?

Ans: Different estimation techniques in software effort estimation


include

 Expert judgment
 Analogous estimation
 Parametric estimation
 Three-point estimation
 Bottom-up estimation
 Delphi technique
 Function point analysis
 Use case points
 Wideband Delphi
 Machine learning-based estimation.
5. What is mean by software configuration management?

Ans: Software Configuration Management (SCM) is the process of


managing and controlling changes to software artifacts throughout
the software development lifecycle. It involves tracking and
documenting software components, controlling versions and
baselines, managing changes, ensuring configuration consistency,
and facilitating collaboration among development teams. SCM helps
maintain the integrity, traceability, and control of software assets,
ensuring that the right versions of software components are used
and enabling efficient development and maintenance processes.

6. What is role of Team members in project management?

Ans: Team members in project management play a crucial role in


executing tasks, collaborating with others, contributing their
expertise, managing time and resources, and ensuring project
success. They are the driving force behind project implementation,
working together to achieve project goals and deliverables.

7. What is mean by dynamic system development?

Ans: Dynamic Systems Development Method (DSDM) is an agile


project delivery framework that focuses on delivering functional
software incrementally and iteratively. It emphasizes active user
involvement, frequent communication, and delivering high-value
features early. DSDM promotes collaboration, flexibility, and
adaptability to accommodate changing requirements and business
needs throughout the project lifecycle.

8. What are different techniques for software quality


assurance?

Ans: Different techniques for software quality assurance include


 Test planning
 Test case design
 Manual testing
 Automated testing
 Regression testing
 Load and performance testing
 Code reviews
 Static analysis
 Continuous integration

These techniques help ensure that software meets quality


standards, functional requirements, and performs reliably.

Q2) Write short notes on (ANY TWO) :

1. Prototyping

Ans: Prototyping is an essential technique in software development


that involves creating a working model or prototype of a software
system or product. It serves as a tangible representation of the final
product and enables stakeholders to visualize and interact with its
features, functionality, and user interface.

Prototyping offers several benefits. Firstly, it helps clarify and refine


requirements by allowing stakeholders to provide early feedback
and identify potential issues or improvements. This early
involvement reduces the risk of miscommunication and ensures
that the final product aligns with user expectations.

Secondly, prototypes serve as a communication tool between


project stakeholders, including developers, designers, clients, and
end-users. By providing a concrete reference point, prototypes
facilitate discussions, clarify design choices, and foster
collaboration among team members.

Furthermore, prototyping supports the iterative development


process. As prototypes are built and tested, feedback is gathered
and incorporated into subsequent iterations, leading to incremental
improvements and a more refined end product. This iterative
approach helps manage risks, uncover potential problems early,
and enhance overall project efficiency.

Prototyping can take various forms, ranging from low-fidelity


sketches or wireframes to high-fidelity interactive prototypes. The
choice of prototyping technique depends on factors such as project
complexity, available resources, and desired level of detail.

Overall, prototyping plays a crucial role in mitigating risks,


validating design decisions, enhancing user experience, and
increasing the success rate of software development projects. It
enables stakeholders to collaborate effectively, minimize rework,
and deliver products that meet user needs and expectations.

2. Extreme programming

Ans: Extreme Programming (XP) is an agile software development


methodology that emphasizes close collaboration, frequent
feedback, and rapid iteration. It is designed to address the
challenges of developing high-quality software in dynamic and
uncertain environments.

XP advocates for continuous planning, testing, and integration. It


promotes the use of small, cross-functional teams that work closely
together and embrace collective ownership of the codebase.
Developers practice pair programming, where two programmers
collaborate on the same code in real-time, fostering knowledge
sharing, code quality, and reducing errors.

XP places a strong emphasis on customer involvement through


regular communication and collaboration. Customer
representatives work closely with the development team to define
and prioritize requirements, ensuring that the delivered software
meets customer expectations.

The methodology emphasizes test-driven development, where tests


are written before the corresponding code. This approach ensures
that the codebase remains reliable and that new changes do not
introduce unintended issues.

XP also encourages simplicity and minimalism, advocating for the


creation of the simplest solution that satisfies the immediate
requirements. Regular refactoring and continuous integration are
used to maintain a clean and stable codebase.

The iterative nature of XP enables frequent releases of working


software, allowing for early feedback and quick adaptation to
changing needs. The feedback loop from customers, stakeholders,
and team members helps drive continuous improvement and
deliver value-driven software.

In summary, Extreme Programming promotes collaboration,


customer involvement, iterative development, test-driven
development, simplicity, and continuous improvement. By focusing
on these principles, XP aims to deliver high-quality software that
meets customer needs in a rapidly changing environment.

3. Defect management

Ans: Defect management is a critical component of software


development and quality assurance processes. It involves
identifying, tracking, prioritizing, and resolving defects or issues in
software systems.

The primary goal of defect management is to ensure that defects are


efficiently captured, documented, and addressed to improve the
overall quality of the software. Defects can include coding errors,
functionality gaps, usability issues, performance bottlenecks, or
any deviation from expected behaviour.

The defect management process typically involves several stages,


such as defect identification, reporting, classification, assignment,
and resolution. Defects are often tracked using dedicated defect
tracking systems, which enable proper documentation, assignment
to responsible parties, and monitoring of the defect lifecycle.

Effective defect management requires clear communication


channels among team members, stakeholders, and users to report
and track defects accurately. It involves prioritizing defects based
on severity and impact, ensuring critical issues are addressed
promptly to minimize their impact on the software's functionality or
user experience.

Defect management also involves root cause analysis to identify the


underlying reasons behind the defects. This analysis helps in
preventing similar issues from recurring in future software releases.

Continuous improvement is a key aspect of defect management. It


involves analysing defect trends, implementing preventive
measures, and applying lessons learned from past defects to
enhance software development processes and minimize future
defects.

By diligently managing defects throughout the software


development lifecycle, organizations can deliver higher quality
software, improve customer satisfaction, and enhance their overall
reputation in the market.

Q3) Solve any ONE of the following:

1. Explain software project management in detail.

Ans: A project is a group of tasks that need to complete to reach a


clear result. A project also defines as a set of inputs and outputs
which are required to achieve a goal. Projects can vary from simple to
difficult and can be operated by one person or a hundred.

Projects usually described and approved by a project manager or team


executive. They go beyond their expectations and objects, and it's up
to the team to handle logistics and complete the project on time. For
good project development, some teams split the project into specific
tasks so they can manage responsibility and utilize team strengths.

Software project management is an art and discipline of planning and


supervising software projects. It is a sub-discipline of software project
management in which software projects planned, implemented,
monitored and controlled.

It is a procedure of managing, allocating and timing resources to


develop computer software that fulfils requirements.

In software Project Management, the client and the developers need to


know the length, period and cost of the project.

Software Project Management consists of many activities, that


includes planning of the project, deciding the scope of product,
estimation of cost in different terms, scheduling of tasks, etc.
The list of activities are as follows:

1. Project planning and Tracking


2. Project Resource Management
3. Scope Management
4. Estimation Management
5. Project Risk Management
6. Scheduling Management
7. Project Communication Management
8. Configuration Management

There are three needs for software project management. These are:

1. Time
2. Cost
3. Quality

It is an essential part of the software organization to deliver a quality


product, keeping the cost within the client’s budget and deliver the
project as per schedule. There are various factors, both external and
internal, which may impact this triple factor. Any of three-factor can
severely affect the other two.

2. Explain the process of Cost benefit analysis.

Ans: A cost-benefit analysis (also called a benefit-cost analysis) is a


decision-making tool that helps you choose which actions are worth
pursuing. It provides a quantitative view of an issue, so you can make
decisions based on evidence rather than opinion or bias.
During your analysis, you assign monetary values to the costs and
benefits of a decision—then subtract costs from benefits to determine
net gains. This helps you estimate the full economic benefit (or lack
thereof) of your choice so you can decide if it’s a good idea to pursue.

The steps to create a meaningful Cost-Benefit Analysis model are:

1. Define the framework for the analysis.

Identify the state of affairs before and after the policy change or
investment on a particular project. Analyze the cost of this
status quo. We need to first measure the profit of taking up this
investment option instead of doing nothing or being on ground
zero. Sometimes the status quo is the most lucrative place to be
in.
2. Identity and classify costs and benefits.

It is essential to costs and benefits are classified in the following


manner to ensure that you understand the effects of each cost
and benefit.
– Direct Costs (Intended Costs/Benefits)
– Indirect Costs (Unintended Costs/Benefits),
– Tangible (Easy To Measure And Quantify)/
– Intangible (Hard To Identify And Measure), And
– Real (Anything That Contributes To The Bottom Line Net-
Benefits)/Transfer (Money Changing Hands)

3. Drawing a timeline for expected costs and revenue.

When it comes to decision making, timing is the most crucial


element. Mapping needs to be done when the costs and benefits
will occur and how much they will pan out over a phase. It
solves two major issues. Firstly, a defined timeline enables
businesses to align themselves with the expectations of all
interested parties. Secondly, understanding the timeline allows
them to plan for the impact that the cost and revenue will have
on the operations. This empowers businesses to better manage
things and take steps ahead of any contingencies.

4. Monetize costs and benefits.

We must ensure to place all costs and all benefits in the same
monetary unit.

5. Discount costs and benefits to obtain present values.

It implies converting future costs and benefits into present value.


It is also known as discounting the cash flows or benefits by a
suitable discount rate. Every business tends to have a different
discount rate.

6. Calculate net present values.

It is done by subtracting costs from benefits. The investment


proposition is considered efficient if a positive result is obtained.
However, there are other factors to be considered, as well.

Q4) Solve any ONE of the following:

1. Explain COCOMO model with an example.

Ans: COCOMO (COnstructive COst MOdel) is a widely used


software cost estimation model that was developed by Barry Boehm
in the 1980s. It is a parametric model that estimates the effort,
cost, and schedule of a software development project based on
various project parameters.

The COCOMO model consists of three different levels: Basic


COCOMO, Intermediate COCOMO, and Detailed COCOMO. Each
level provides increasing levels of detail and accuracy in estimating
software development efforts.

Here's an example to illustrate the COCOMO model:

Let's assume a software development project involves building a


web application with the following parameters:

1. Size of the project: 20,000 lines of code (LOC)

2. Development team experience: Intermediate level

3. Complexity of the project: High


Using the Basic COCOMO model, we can estimate the effort
required for the project. The model uses the formula:

Effort = a * (Size)^b

Where 'a' and 'b' are parameters derived from historical data and
depend on the project type. For a web application, 'a' is typically 2.4
and 'b' is 1.05.

Substituting the values into the formula:

Effort = 2.4 * (20,000)^1.05 = 53,129 person-months

Now, using the estimated effort, we can further determine the


project duration and staffing requirements using the Intermediate
and Detailed COCOMO models.

The Intermediate COCOMO model considers factors such as project


complexity, team capabilities, and development environment to
calculate the duration and staffing requirements. It provides more
refined estimates by considering these additional parameters.

The Detailed COCOMO model goes into further detail, considering


additional factors like risk assessment, software reuse, and the
capability of the development organization.

In summary, the COCOMO model is a software cost estimation


technique that provides a structured approach to estimate the
effort, cost, and schedule of a software development project. It
allows project managers to make informed decisions, allocate
resources effectively, and plan projects more accurately based on
the given parameters and historical data.

2. Describe the significance of PERT/CPM with example.

Ans: PERT (Program Evaluation and Review Technique) and CPM


(Critical Path Method) are project management techniques used to
plan, schedule, and manage complex projects. They provide a visual
representation of project activities, dependencies, and critical paths
to facilitate effective project management.

The significance of PERT/CPM can be understood with an example:

Let's consider a construction project to build a residential complex.


The project consists of various activities, such as excavation,
foundation construction, framing, electrical work, plumbing,
interior finishing, and landscaping.

Using PERT/CPM, we can create a network diagram that represents


the sequence of activities and their dependencies. Each activity is
represented as a node, and the arrows connecting the nodes
represent the dependencies between activities.

For instance, the excavation activity must be completed before


foundation construction can begin. So, excavation will be a
predecessor to the foundation construction activity. Similarly, other
dependencies are identified and represented in the network
diagram.

Next, we estimate the time required to complete each activity,


including optimistic, most likely, and pessimistic durations. These
estimates help calculate the expected time for each activity,
considering the inherent uncertainty involved.
Once the time estimates are assigned, we can determine the critical
path, which is the longest path through the network diagram. The
critical path identifies the sequence of activities that, if delayed, will
directly impact the project's overall duration.

By identifying the critical path, project managers can focus their


attention on activities that have the most significant impact on the
project timeline. They can allocate resources, manage
dependencies, and prioritize tasks accordingly to ensure the project
stays on schedule.

PERT/CPM also provides information on the float or slack time for


non-critical activities. Float represents the flexibility or buffer
available for non-critical activities without impacting the project's
overall duration. Project managers can utilize float strategically to
manage resources effectively and optimize project scheduling.

Additionally, PERT/CPM allows for the identification of activities


with high risk or potential delays. By assessing the critical path
and considering activity durations and their associated
uncertainties, project managers can identify potential bottlenecks
and allocate resources or adjust schedules accordingly to mitigate
risks.

In summary, PERT/CPM is significant in project management as it


enables effective planning, scheduling, and control of complex
projects. It helps identify critical activities, manage dependencies,
allocate resources efficiently, and mitigate risks, ultimately
improving the chances of project success and timely completion.

Q5) Solve any ONE of the following:


1. Explain the importance of using a project management
software.

Ans: Project management, according to the Project Management


Institute is “the application of specific knowledge, skills, tools, &
techniques to deliver something of value to people.”

Simply put, all projects are a short-term effort to create value by


producing a one-of-a-kind product, service, or result. Every project
has a beginning & an end date, as well as a team, a budget, a
schedule, & project expectations that must be met. Project
management, therefore, manages such areas to ensure that a
project reaches its expectations & that internal workflows run
smoothly.

The project management process is divided into five key stages:

 Initiating

 Planning

 Executing

 Monitoring and Controlling

 Closing

1. Initiating

You should cover this during a project’s initiating phase:

 Determine the requirements and objectives of the organization.

 Evaluate previously performed or sustained operations.


 Make cost calculations and create budgets.

 Create a timeline.

 Define the task table and product.

 Define the process of documentation.

2. Planning

This should be covered during a project’s planning phase:

 Create the planning team.

 Decide how to plan.

 Determine/define project scope.

 Estimate the resources required for studies.

 Create a time and cost estimate for the work to be done.

 Conduct a risk assessment of any problems that may occur.

 Plan crisis management for risk planning and possible problems.

 Obtain official approval to carry out the project.

3. Executing

Be sure to cover this during a project’s executing phase:

 Make efforts to meet the objectives outlined in the project


management plan.

 At this stage, it is critical that the project proceeds in accordance


with the management plan by coordinating employees and
resources.
4. Monitoring and Controlling

What should be covered during a project’s monitoring and controlling


phase:

 Determine how much of the work done on the project has been
completed.

 Correct any issues that may or may not arise.

 Examine financial details in conjunction with the method plan.

 Keep track of the project’s budget and timeline.

5. Closing

This should be covered during a project’s closing phase:

 Prepare and complete the project’s administrative closing


process.

 Close the contracts by ensuring purchase agreement control.

 Make a document out of the closing evaluation of the relevant


project.

2. Describe the factors that influence the quality of software


product

Ans: Software quality is an important aspect in the software industry


these days. This feature is correlated with the business and affects it.
There are many factors which you should consider before selecting
software for your system. Given below are ten such factors that affect
the software quality.

1) Extensibility
It is the most necessary factor that affects the quality of the software.
Extensibility is the ability of the software to add various functions
without damaging its system. Change cannot be accepted and thus,
extensibility is an important feature.

2) Maintainability

Maintainability is the feature that allows us to modify the system by


making certain changes in its functions and making minor
corrections. Well-maintained software attracts more users as it allows
people to make changes according to their needs.

3) Performance

Performance is the most important feature that you should consider,


and you should be able to use high-performance software at less cost.
Performance ratio is the prime factor affecting the software quality.

4) Efficiency

Efficiency means utilizing the resources that helps the users to


perform the given functions in minutes. It is an important factor that
extensively affects the quality of the software that you are using.

5) Scalability

A system is scalable if it responds to the users even if the load


increases. The Software is of high-quality if and only if it has great
scope for development in the future. A preferred scalable system is the
best one.

6) Reliability
Reliability is the consistency of the system even in high load
conditions. An unreliable system also does not have a scope for
development in the future as it won’t attract more users because it
shows the lower quality of the software.

7) Security

Security is an important feature that affects the software quality of a


system. Web-based systems are more prone to viruses and need to be
secured. You should consider all possible security measures before
selecting software.

8) Correctness

Quality software is the one who can correct the mistakes easily and
quickly without doing much work. This factor can affect the functions
of the software and thus, allow it to perform tasks properly.

9) Testability

High-quality software is the one which has better performance in the


testing, and you should also take the decision on the basis of these
test results. Thus, testing is a necessary aspect that affects the
software quality using various interfaces and patterns.

10) Portability

Software should be able to adapt, and it must run on variety of


platforms. We often relate portability with flexibility and software
should perform functions according to the need of the users.

You might also like