Unit 3 Soft Eng Notes
Unit 3 Soft Eng Notes
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.
1. Project Planning: It is a set of multiple processes, or we can say that it a task that
performed before the construction of the product starts.
3. Estimation management: This is not only about cost estimation because whenever
we start to develop software, but we also figure out their size(line of code), efforts, time
as well as cost.
6. Project Risk Management: Risk management consists of all the activities like
identification, analyzing and preparing the plan for predictable and unpredictable risk in
the project.
Project planning should be effective so that the project begins with well-defined tasks.
Effective project planning helps to minimize the additional costs incurred on the project
while it is in progress. For effective project planning, some principles are followed.
These principles are listed below.
• Planning is necessary
• Risk analysis
• Tracking of project plan
• Meet quality standards and produce quality deliverables
• Description of flexibility to accommodate changes
Once project designing is complete, project managers document their plans during
a software package Project Management set up (SPMP) document. The SPMP
document ought to discuss an inventory of various things that are mentioned
below.
1. Introduction:
• Objectives
• Major Functions
• Performance Issues
• Management and Technical Constraints
2. Project Estimates:
• Historical Data Used
• Estimation Techniques Used
• Effort, Resource, Cost, and Project Duration Estimates
3. Schedule:
• Work Breakdown Structure
• Task Network Representation
• Gantt Chart Representation
• PERT Chart Representation
4. Project Resources:
• People
• Hardware and Software
• Special Resources
5. Staff Organization:
• Team Structure
• Management Reporting
6. Risk Management Plan:
• Risk Analysis
• Risk Identification
• Risk Estimation
• Risk Abatement Procedures
7. Project Tracking and Control Plan
8. Miscellaneous Plans:
• Process Tailoring
• Quality Assurance Plan
• Configuration Management Plan
• Validation and Verification
• System Testing Plan
• Delivery, Installation, and Maintenance Plan
Project scheduling is concerned with the techniques that can be employed to manage
the activities that need to be undertaken during the development of a project.
Scheduling is carried out in advance of the project commencing and involves:
• identifying the tasks that need to be carried out;
• estimating how long they will take;
• allocating resources (mainly personnel);
• scheduling when the tasks will occur.
Timeline charts
• Milestone Charts
Milestones mark significant events in the life of a project, usually critical activities which
must be achieved on time to avoid delay in the project.
Milestones should be truly significant and be reasonable in terms of deadlines (avoid
using intermediate stages).
Examples include:
• installation of equipment;
• completion of phases;
• file conversion;
• cutover to the new system
• Gantt Charts
A Gantt chart is a horizontal bar or line chart which will commonly include the following
features:
• activities identified on the left hand side;
• time scale is drawn on the top (or bottom) of the chart;
• a horizontal open oblong or a line is drawn against each activity indicating
estimated duration;
• dependencies between activities are shown;
There are many ways to organize the project team. Some important ways are as
follows :
The LOC (Line of Code) is a product size metric in software engineering. Here, the number
of lines in the code are counted and based on the number of lines the cost is calculated. There
is no definite clear picture of how to count number of lines because the length and complexity of
the code is different in different languages. It only depends on the length but not on complexity
and functionality.
The LOC metric is any line of text in a code that is not a comment or blank line, in any
case of the number of statements or fragments of statements on the line. LOC clearly
consists of all lines containing program header files, declaration of any variable, and
executable and non-executable statements. As Lines of Code (LOC) only counts the
proportion of code, you can only utilize it to compare or estimate projects that utilize
the same language and are programmed using the same coding standards .
Consider example with code snippet:
There are
• 5 physical line of code.
• 2 non statement lines
• 1 comment line.
The basic and primary purpose of the functional point analysis is to measure and
provide the software application functional size to the client, customer, and the
stakeholder on their request. Further, it is used to measure the software project
development along with its maintenance, consistently throughout the project
irrespective of the tools and the technologies.
1. FPs of an application is found out by counting the number and types of functions
used in the applications.
3. The effort required to develop the project depends on what the software does.
5. FP method is used for data processing systems, business systems like information
systems.
6. The five parameters mentioned above are also known as information domain
characteristics.
COCOMO or Constructive Cost Estimation Model is a model that estimates the effort and time taken to
complete the model based on the size of the source code. It is based on LOC, i.e. number of Lines of
Code. It is a procedural cost estimate model for software projects and often used as a process of reliably
predicting the various parameters associated with making a project such as size, effort, cost, time and
quality.
• ORGANIC – A software development project comes under organic type if the development team is
small, the problem is not complex, and has been solved before.
• SEMIDETACHED – A software project that is in-between the organic and embedded system is a
semi-detached system. Its characteristics include – a middle-sized development team, with a mix of
both- experienced and inexperienced members, and the project complexity is neither too high nor
too low.
The problems faced in this project are a few known and a few unknown, which have never been
faced before.
• EMBEDDED – A project requiring a large team with experienced members, and having the highest
level of complexity is an embedded system. The members need to be creative enough to be able to
develop complex models. Such projects include- air traffic models, ATMs, complex banking systems,
etc.
Risk Analysis in project management is a sequence of processes to identify the factors that may affect a
project’s success. These processes include risk identification, analysis of risks, risk management and
control, etc. Proper risk analysis helps to control possible future events that may harm the overall
project. It is more of a pro-active than a reactive process.
It is the procedure of defining how to perform risk management activities for a project.
• Risk Identification
It is the procedure of determining which risk may affect the project most. This process involves
documentation of existing risks.
It is the procedure of numerically analyzing the effect of identified risks on overall project
objectives. In order to minimize the project uncertainty, this kind of analysis are quite helpful for
decision making.
• Plan risk responses
To enhance opportunities and to minimize threats to project objectives plan risk response is
helpful. It addresses the risks by their priority, activities into the budget, schedule, and project
management plan.
• Control Risks
Control risk is the procedure of tracking identified risks, identifying new risks, monitoring
residual risks and evaluating risk.
There are some steps that need to be followed in order to reduce risk. These steps
are as follows:
1. Risk Identification:
Risk identification involves brainstorming activities. it also involves the preparation
of a risk list. Brainstorming is a group discussion technique where all the
stakeholders meet together.
The elements that comprise all information produced as a part of the software process
are collectively called a software configuration. Configuration Management (CM) is a
technic of identifying, organizing, and controlling modification to software being built
by a programming team. As software development progresses, the number of Software
Configuration elements (SCI's) grow rapidly. These are handled and controlled by
SCM. This is where we require software configuration management. A configuration
of the product refers not only to the product's constituent but also to a particular
version of the component.
Importance of SCM
It is practical in controlling and managing the access to various SCIs e.g., by preventing
the two members of a team for checking out the same component for modification at
the same time. It provides the tool to ensure that changes are being properly
implemented.
It has the capability of describing and storing the various constituent of software. SCM is
used in keeping a system in a consistent state by automatically producing derived
version upon modification of the same component.