0% found this document useful (0 votes)
28 views21 pages

Soft Engg 3

The document discusses software project management and planning. It describes the roles and responsibilities of a software project manager, as well as techniques for estimating project parameters such as size, effort, time, and cost. Common estimation techniques include decomposition and empirical models like Putnam and COCOMO.

Uploaded by

tapstaps902
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)
28 views21 pages

Soft Engg 3

The document discusses software project management and planning. It describes the roles and responsibilities of a software project manager, as well as techniques for estimating project parameters such as size, effort, time, and cost. Common estimation techniques include decomposition and empirical models like Putnam and COCOMO.

Uploaded by

tapstaps902
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/ 21

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

You might also like