SOFTWARE ENGINEERING
UNIT – III
SOFTWARE PLANNING & SCHDULEING
SOFTWARE PROJECT
A Software Project is the complete procedure of software development from
requirement gathering to testing and maintenance, execution methodologies, in a
specified period of time to achieve intended software product.
Need of software project management
● The most important is that technology changes and advances so regularly and
rapidly that experience of one product may not be applied to the other one.
● All business and environmental constraints bring risk in software development hence
it is essential to manage software projects efficiently.
Software Project Manager
● A software project manager is a person who undertakes the responsibility of
executing the software project. Software project manager is aware of all the phases of
SDLC.
● Project manager may never directly involve in producing the end product but he
controls and manages the activities involved in production.
● A project manager closely monitors the development process, prepares and executes
various plans, arranges necessary resources, maintains communication among all
team members about issues of cost, budget, resources, time, quality and customer
satisfaction.
1
Software Project Manager Responsibilities:
1) Discussing possible projects and their parameters with clients, executives, and
software developers.
2) Planning out the blueprints(design plan) for software projects, defining the scope,
allocating resources, setting deadlines, laying out communication strategies, and
indicating tests and maintenance.
3) Assembling and leading the project team.
4) Participating and supervising each stage of the project.
5) Ensuring each project stays on schedule and set the deadlines.
6) Creating a project budget and ensuring the project budget as closely as possible.
7) Closely looks towards consistent testing, evaluation, and troubleshooting of all
products in all stages of completion.
8) Delivering completed software products to clients and performing regular checks on
the products' performance.
Software Project Manager Requirements:
1) A bachelor's or master degree in information technology, software development
management, software engineering, computer science.
2) Proven experience in project management and software development.
3) Good working knowledge of project estimation techniques.
4) Excellent technical knowledge.
5) Good leadership, decision-making, and organization skills.
6) Strong attention to detail and multi-tasking skills.
PROJECT SCHEDULING
● Project Scheduling in a project refers to roadmap of all activities to be done with
specified order and within time slot allotted to each activity.
● Project managers tend to define various tasks, and project milestones and arrange
them keeping various factors in mind.
● They look tasks as per the schedule, which is necessary to complete in specific
manner and strictly within the time allocated.
● Arrangement of tasks will impact on all schedule of the project.
2
For scheduling a project, it is necessary to -
Break down the project tasks into smaller, manageable form.
Find out various tasks which have connection between two or more things.
Estimate time frame required for each task.
Divide time into work-units.
Assign adequate number of work-units for each task.
Calculate total time required for the project from start to finish.
Project Estimation
For an effective management accurate estimation of various measures is a must. With
correct estimation managers can manage and control the project more efficiently and
effectively.
Project estimation involve the following:
1) Software size estimation
● Software size may be estimated either in terms of KLOC (Kilo Line of Code) or by
calculating number of function points in the software.
● Lines of code depend upon coding practices and Function points vary according to
the user or software requirement.
2) Effort estimation
● The managers estimate efforts in terms of personnel requirement and man-hour
required to produce the software.
● This can either be derived by managers’ experience, organization’s historical data or
software size can be converted into efforts by using some standard formulae.
3) Time estimation
● Once size and efforts are estimated, the time required to produce the software can
be estimated.
● Efforts required is separated into sub categories as per the requirement
specifications and interdependency of various components of software.
3
● Software tasks are divided into smaller tasks, activities or events by Work
Breakthrough Structure (WBS). The tasks are scheduled on day-to-day basis or in
calendar months.
● The sum of time required to complete all tasks in hours or days is the total time
invested to complete the project.
4) Cost estimation
This is the most difficult of all because it depends on more elements.
For estimating project cost, it is required-
Size of software
Software quality
Hardware
Additional software or tools, licenses etc.
Skilled personnel with task-specific skills
Travel involved
Training and support
PROJECT ESTIMATION TECHNIQUES
Project manager can estimate the listed factors using two broadly recognized
techniques –
1) Decomposition Technique
This technique assumes the software as a product of various compositions.
There are two main models -
● Line of Code Estimation (LOC) is done on behalf of number of line of codes in the
softwareproduct.
● Function Points Estimation(FPS) is done on behalf of number of function points
in thesoftware product.
4
2) Empirical E stimation Technique
This technique uses empirically ( Based on observations and experience) derived
formulae to make estimation. These formulaeare based on LOC or FPs.
A) Putnam Model
● This model is made by Lawrence H. Putnam, which is based on Norden’s frequency
distribution (Rayleigh curve). Putnam model maps time and efforts required with
software size.
● Putnam noticed that software staffing profiles followed the well-known Rayleigh
distribution. Putnam used his observation about productivity levels to derive the
software equation:
The various terms of this expression are as follows:
● K is the total effort expended in product development.
● L is the product estimate in KLOC.
● t d correlate to the time of system and integration testing. Therefore, t d can be
relatively considered as the time required for developing the product.
● C k Is the state of technology constant and reflects requirements that impede(delay)
the development of the program.
● C k = 2 for poor development environment
● C k= 8 for good software development environment
● C k = 11 for an excellent environment.
● The exact value of Ck for a specific task can be computed from the historical data of
the organization developing it.
● Putnam proposed that most staff develop on a project should follow the Rayleigh
curve.
● As the project progresses and more detailed work are necessary, the number of
engineers reaches a peak.
5
B) COCOMO
● COCOMO stands for COnstructive COst MOdel, developed by Barry W. Boehm. It
divides the software product into three categories of software: organic, semi-detached
and embedded.
● The COCOMO model has basically two parameters like effort calculation and
development time to define the quality of any software product.
● Efforts calculation: Efforts can be calculated by the number of persons required to
complete the task successfully. It is calculated in the unit person-month.
● Development time: it is calculated in the unit of time like months, weeks, and days.
It depends on the effort calculation, if the number of persons is greater than definitely
the development time is low.
● There are various types of models of cocomo that have been proposed to check the
correctness of the software products and to calculate the cost estimations at the
different levels. These levels also depend on the strategies to develop accurate software
products. These strategies are as follows:
● Software projects under COCOMO model strategies are classified into 3
categories, organic, semi-detached, and embedded.
1) Organic: A software project is said to be an organic type if-
● Project is small and simple. Project team is small with prior experience. The problem
is well understood and has been solved in the past.
● Requirements of projects are not rigid; such a mode example is payroll processing
system.
2) Semi-Detached Mode: A software project is said to be a Semi-Detached type if-
Project has complexity. Project team requires more experience, better guidance and
creativity.
● The project has an intermediate size and has mixed rigid requirements such a mode
example is a transaction processing system, inventory management system.
6
3) Embedded Mode: A software project is said to be an Embedded mode type if-
● A software project has fixed requirements of resources. Product is developed within
very tight constraints.
● A software project requiring the highest level of complexity, creativity, and experience
requirement fall under this category.
Types of COCOMO Models
1) Basic COCOMO: The basic COCOMO is employed for rough calculations, limiting
software estimation precision. This model only considers lines of source code and
constant values derived from software project types rather than other elements that
impact the software development process.
2) Intermediate COCOMO: The Intermediate COCOMO model expands the Basic
COCOMO model that takes into account a collection of cost drivers to improve the
cost estimating model's accuracy.
3) Complete/Detailed COCOMO: The model contains all qualities of both Basic
COCOMO and Intermediate COCOMO techniques for each software engineering
process.
PROJECT RISK MANAGEMENT
Risk management involves all activities to identification, analysing and making
provision for predictable and non-predictable risks in the project.
Risk may include the following:
Experienced staff leaving the project and new staff coming in.
Change in organizational management.
Requirement change or misinterpreting requirement.
Under-estimation of required time and resources.
Technological changes, environmental changes, business competition.
1) Risk Management Process
There are following activities involved in risk management process:
Identification - Make note of all possible risks, which may occur in the project.
7
Categorize - Categorize known risks into high, medium and low risk intensity as per
their possible impact on the project.
Manage - Analyse the probability of occurrence of risks at various phases. Make plan
to avoid or face risks. Attempt to minimize their side-effects.
Monitor - Closely monitor the potential risks and their early symptoms. Also monitor
the effects of steps taken or avoid them.
2) Project Execution & Monitoring:
● Execution needs monitoring in order to check whether everything is going according
to the plan. Monitoring is observing to check the probability of risk and taking
measures to address the risk or report the status of various tasks.
These measures include –
A) Activity Monitoring - All activities scheduled within some tasks can be monitored
on day-to-day basis. When all activities in a task are completed, it is considered as
complete.
B) Status Reports - The reports contain status of activities and tasks completed within
a given time frame, generally a week. Status can be marked as finished, pending or work-
in-progress etc.
C) Milestones Checklist - Every project is divided into multiple phases where major
tasks are performed (milestones) based on the phases of SDLC. This milestone
checklist is prepared once every few weeks and reports the status of milestones.
Configuration Management
● Configuration management is a process of tracking and controlling the changes in
software in terms of the requirements, design, functions and development of the
product.
● Configuration management is a discipline of organization administration, which
takes care of occurrence of any change (process, requirement, technological etc.)
● IEEE defines it as “the process of identifying and defining the items in the system,
controlling the change of these items throughout their life cycle, recording and
reporting the status of items and change requests, and verifying the completeness and
correctness of items”.
8
Baseline
A phase of SDLC is assumed over if it baselined, i.e. baseline is a measurement that
defines completeness of a phase. A phase is baselined when all activities applicable to
it are finished and well documented. If it was not the final phase, its output would be
used in next immediate phase.
Change Control
Change control is function of configuration management, which ensures that all
changes made to software system are consistent and made as per organizational rules
and regulations.
PROJECT MANAGEMENT TOOLS
The risk and uncertainty rise multi fold with respect to the size of the project, even
when the project is developed according to set methodologies.
There are tools available, which aid for effective project management. A few are
described -
1) Gantt Chart
● Gantt charts was devised by Henry Gantt (1917). It represents project schedule with
respect to time periods.
● Generalized Activity Normalization Time Table (GANTT) chart is type of chart in
which series of horizontal lines are present that show the amount of work done or
production completed in given period of time.
● The purpose of Gantt chart is to stress on of individual tasks. Hence set of tasks is
given as input to Gantt chart. Gantt chart is also known as timeline chart.
● It can be developed for entire project or it can be developed for individual functions.
● In project tables, all tasks are listed in proper manner along with start date and end
date and information related to it.
Gantt chart represents following things:
1) All the tasks are listed at leftmost column.
2) The horizontal bars indicate or represent required time by corresponding particular
task.
9
3) When occurring of multiple horizontal bars takes place at same time on calendar,
then that means concurrency can be applied for performing particular tasks.
Advantages:
1) Simplify Project:
Gantt charts are generally used for simplifying complex projects.
2) Establish Schedule:
It simply establishes initial project schedule in which it mentions who is going to do
what, when, and how much time it will take to complete it.
3) Provide Efficiency:
It brings efficiency in planning and allows team to better coordinate project
activities.
4) Ease at understanding:
It makes it easy for stakeholders to understand timeline and brings clarity of dates.
5) Visualize project:
It helps in clearly visualizing project management, project tasks involved.
Disadvantages:
1) Sometimes, using Gantt chart makes project more complex.
2) The size of bar chart does not necessarily indicate amount of work done in project.
3) Gantt charts and projects are needed to be updated on regular basis.
4) It is not possible or difficult to view this chart on one sheet of paper, needed to be
viewed on computer screen.
Use of Gantt Chart:
1) Advertising Manager-
Advertising Managers generally controls and supervises end result of advertising
companies, scheduling advertisements in different media, etc.
2) Operations Manager –
Operations Managers generally control and handle resources that are essential for
company operations.
10
2) PERT Chart
● Project Evaluation and Review Technique (PERT) is a procedure through which
activities of a project are represented in its appropriate sequence and timing.
● It is a scheduling technique used to schedule, organize and integrate tasks within a
project.
● PERT is basically a mechanism for management planning and control which provides
blueprint for a particular project. All of the primary elements or events of a project
have been finally identified by the PERT.
● In this technique, a PERT Chart is made which represent a schedule for all the
specified tasks in the project.
Characteristics of PERT:
1) It serves as a base for obtaining the important facts for implementing the
decision-making.
2) It forms the basis for all the planning activities.
3) PERT helps management in deciding the best possible resource utilization
method.
4) PERT take advantage by using time network analysis technique.
5) PERT presents the structure for reporting information.
Advantages of PERT:
1) Estimation of completion time of project is given by the PERT.
2) It supports the identification of the activities with slack time.
3) The start and dates of the activities of a specific project is determined.
4) It helps project manager in identifying the critical path activities.
5) PERT makes well organized diagram for the representation of large amount of data.
Disadvantages of PERT:
1) The complexity of PERT is more which leads to the problem in implementation.
2) The estimation of activity time is subjective in PERT.
3) Maintenance of PERT is also expensive and complex.
11
3) Resource Histogram
● This is a graphical tool that contains bar or chart representing number of resources
required over time for a project event.
● Resource Histogram is an effective tool for staff planning and coordination.
● It’s basically a resource planning graph that displays the amount of time a resource
is scheduled to work over a period of time.
● Project managers use resource histograms as they monitor the project and track its
progress.
● Resource histograms have a horizontal axis that shows the range or value of gaps
between variables, and the vertical axis, which represents the number of times that
the interval occurred. The bars represent the resource.
4) CRITICAL PATH ANALYSIS
● This tool is useful in recognizing interdependent tasks in the project. It also helps to
find out the shortest path or critical path to complete the project successfully.
● This tool shows dependency of event assuming an event can proceed to next only if
the previous one is completed.
● The events are arranged according to their earliest possible start time. Path between
start and end node is critical path which cannot be further reduced and all events
require to be executed in same order.
12
PROJECT STAFFING
● Project staffing is important in which defines the organization of different project
teams used in scheduling.
● It includes the identification of the right person for handling the project, assignment
of required responsibilities to the selected team.
● Different projects may require different skilled and knowledge the individuals as well
as team scheduling.
● A software project manager takes the responsibility of accomplishing the software
project.
● He needs to identify good, experienced software engineers for the project and their
team with proper organization. The proper selection of software engineers reflects the
overall productivity of the entire software team.
1) Training –
Use certification to document expertise and encourage learning new skills.
Use mentors to spread scientific software development standards.
Involve computing professionals and experts in the training.
Use online media to share training.
Use workbooks and wikis as evolving, interactive software documentation.
2) Team Structure
● The team structure means the arrangement of the individual project teams.
● Project team must be arranged in such a way that they work in an organized manner
and complete the project as a unit.
13
● The team structure always makes a desired impact on the productivity and quality
of product.
● Based on the type and complexity of the project the project manager needs to
organize his team.
● There are basically three formal team structures: chief programmer team, egoless
team and controlled decentralized team organizations.
3) Chief Programmer Team
● In this team structure, there is a senior engineer who affords the technical leadership
for the project. He is designated as the chief programmer of the team.
● He makes the partitions of the task into many smaller tasks and allocates them to
different team members under his leadership.
● He is the only one person who will communicate with their project members about
the project.
4) Egoless Team
● The egoless team structure very simple and does not follow any formal team
hierarchy. The main aim is to involve each and every member of the team in any
decision making during the development process of the proposed product.
● Typically, a manager provides the administrative leadership. Different members of
the group may provide technical leadership in different time. Here, decisions are made
by common agreement among the team members.
● This kind of team structure is suitable for handling complex and difficult project
with many technical challenges.
5) Controlled Decentralized Team
● The controlled decentralized team mixes the ideas from both the egoless organization
and the chief-programmer team organization.
● This team structure consists of a project leader, who has a group of senior
programmers. Each of the senior programmers again has a group of junior
programmers under his leadership.
14
● The project leader communicates with the senior programmers and the senior
programmers communicate with the junior programmers.
QUALITY PLANNING
● Quality planning involves identifying which quality standards are relevant to the
project and determining how to satisfy them.
● Software development is a highly people-oriented activity and hence it is error-prone.
In a software project, we start with no defects.
● Defects are injected into the software being built during the different phases in the
project.
● These injection stages are primarily the requirements specification, the high-level
design, the detailed design, and coding.
● To ensure that high-quality software is delivered, these defects are removed through
the quality control (QC) activities.
● The QC activities for defect removal include requirements reviews, design reviews,
code reviews, unit testing, integration testing, system testing, acceptance testing, etc.
Inputs to Quality Planning
1) Quality policy:
● Quality policy is “the overall intentions and direction of an organization with regard
to quality, as formally expressed by top management”.
● The project management team is responsible for ensuring that the project
stakeholders are fully aware of it.
2) Scope statement: The scope statement is a key input to quality planning since it
documents major project things are provided as well as the project objectives which
serve to define important stakeholder requirements.
3) Product description: The product description will often contain details of technical
issues and other concerns that may affect quality planning.
4) Standards and regulations: The project management team must consider any
application-area-specific standards or regulations that may affect the project.
15
Outputs from Quality Planning
1) Quality management plan:
● In ISO 9000 terminology, it should describe the project quality system: “the
organizational structure, responsibilities, procedures, processes, and resources
needed to implement quality management”.
● The quality management plan provides input to the overall project plan and must
address quality control, quality assurance, and quality improvement for the project.
2) Operational definitions:
● An operational definition describes, in very specific terms, what something is, and
how it is measured by the quality control process.
● The project management team must also indicate whether every activity must start
on time, or only finish on time; whether individual activities will be measured or only
certain activities will be measured.
3) Checklists:
● A checklist is a structured tool, usually industry- or activity-specific, used to verify
that a set of required steps has been performed.
● Many organizations have standardized checklists available to ensure consistency in
frequently performed activities.
Tools and Techniques for Quality Planning
1) Benefit/cost analysis:
● The primary benefit of meeting quality requirements is less rework, which means
higher productivity, lower costs, and increased stakeholder satisfaction.
● The primary cost of meeting quality requirements is the expense associated with
project quality management activities.
2) Benchmarking:
● Benchmarking involves comparing actual or planned project practices to those of
other projects in order to generate ideas for improvement and to provide a standard by
which to measure performance.
3) Flowcharting:
A flowchart is any diagram which shows how various elements of a system relate.
16
Flowcharting techniques commonly used in quality management include:
• Cause-and-effect diagrams, also called Ishikawa diagrams or fishbone diagrams,
which illustrate how various causes and sub causes relate to create potential problems
or effects.
• System or process flowcharts, which show how various elements of a system
interrelate.
• Flowcharting can help the project team anticipate what and where quality problems
might occur and thus can help to develop approaches to dealing with them.
4) Design of experiments: Design of experiments is an analytical technique which
helps identify which variables have the most influence on the overall outcome.
QUALITY ASSURANCE
● Quality assurance is all the planned and systematic activities implemented within
the quality system to provide confidence that the project will satisfy the relevant quality
standards.
● Prior to development of the ISO 9000 Series, the activities described under quality
planning were widely included as part of quality assurance.
● Quality assurance is provided by a Quality Assurance Department. Assurance may
be provided to the project management team and to the management of the performing
organization or it may be provided to the customer and others not actively involved in
the work of the project.
Project Quality Plan
1. The requirements must be agreed before the project can begin.
2. The roles and responsibilities of each team participant is defined.
3. The quality standards that must be adhered to for each deliverable is stated.
4. The methodologies for each team must be explained and agreed.
5. The content of each deliverable must be clearly stated.
6. The entrance and exit criteria for each stage must be defined.
7. Business knowledge transfer during the discussion of the project.
9. Establish the development and testing team (The hardware, software, tools, licences)
17
PEOPLE CMM
CMM stands for Capability Maturity Model.
CMM is a method to evaluate and measure the maturity of the software development
process of an organization.
CMM measures the maturity of the software development process on a scale of 1 to 5.
CMM v1.0 was developed by the Software Engineering Institute (SEI) at Carnegie
Mellon University in Pittsburgh, USA.
CMM was originally developed for Software Development and Maintenance but
later it was developed for:
● Systems Engineering
● Supplier Sourcing
● Integrated Product and Process Development
● Software Acquisition
CMM Example
People CMM: Develop, motivate and retain project talent.
● The People Capability Maturity Model (People CMM, P-CMM) is part of the CMMI
product family of process maturity models. It is a framework to guide organisations in
improving their processes for managing and developing human workforces.
● It helps organisations to characterize the maturity of their workforce practices,
establish a program of continuous workforce development, set priorities for
improvement actions.
● PCMM is based on proven practices in fields of human resources, knowledge
management, and organisational development.
● P-CMM describes a progression for continuous improvement and process
improvement of the HR processes for managing and developing human workforces.
18
The PCMM have five maturity level & each level have specific process areas-
Maturity Level 1: Initial: In the Initial Level, there are no process areas. Workforce
practices tend to be traditional or inconsistent but organizations perform processes that
are described in the Maturity Level 2.
Maturity Level 2: Repeatable: The key process areas at Level 2 focus on instilling
basic discipline into workforce activities. They are:
● Work Environment
● Communications
● Staffing
● Performance Management
● Training
Maturity Level 3: Defined: The key process areas at Level 3 address issues
surrounding the identification of the organisation's primary competencies and aligning
its people management activities with them. They are:
● Knowledge and Skills Analysis
● Workforce Planning
● Competency Development
● Career Development
● Participatory Culture
4. Maturity Level 4: Managed: The key process areas at Level 4 focus on quantitatively
managing organisational growth in people management capabilities and in establishing
competency-based teams. They are:
● Mentoring
● Team Building
● Team-Based Practices
● Organisational Competency Management
● Performance Alignment
19
Maturity Level 5: Optimising: The key process areas at Level 5 cover the issues that
address continuous improvement of methods for developing competency, at both the
organisational and the individual level. They are:
● Personal Competency Development
● Coaching
● Continuous Workforce Innovation
RISK MANAGEMENT PLANNING
● Project risks: risk which are affect the project schedule or resources.
● Product risks: are risks which are affect the quality or performance of the software
being developed.
● Business Risks: are risks which affect the organization developing or procuring the
software.
The process of risk management is involving in several stages:
1) Risk identification
2) Risk Analysis
3) Risk Planning
4) Risk Monitoring
1) Risk Identification: This is the first stage of risk management. These types include
A) Technology risks: Risks which are defines from the software or Hardware
technologies.
B) People risks: Risks which are associated with the people in the development team.
C) Organisational risks: Risks which are derive from the organizational environment
where software is being developed.
D) Tool risks: Risks which derive from the CASE tools and other support software used
to develop the system.
20
E) Requirement risks: Risks which are derive from changes to the customer’s
requirements and the process of managing the requirements change.
F) Estimation risks: Risks which are derive from the management estimates of the
system characteristics and the resources required to build the system.
2) Risk Analysis:
● During this risk analysis process, each identified risk is considered in turn and a
judgment made about the probability and the seriousness of the risk.
● Once the risks have been analysed and ranked, a judgment must then be made about
which are the most important risks must be considered during the project.
3) Risk Planning: These strategies fall into three categories:
a) Avoidance strategies: The probability that the risk will arise will be reduced.
b) Minimization strategies: The impact of the risk will reduce.
c) Contingency plans: If the worst happens, prepared for it and have a strategy in
place to deal with it.
4) Risk Monitoring:
● It involves regularly assessing each of the identified risks to decide whether or not that
risk is becoming more or less probable and whether the effects of the risk have changed.
● Risk monitoring should be a continuous process and, at every management progress
review, each of the key risk should be considered separately and discussed by the
meeting.
21