SE Unit5
SE Unit5
COLLEGE
Permanently Affiliated to JNTUK, Approved by AICTE
Accredited by NBA
Ranked AAA by careers 360
Ranked A Grade by AP State Knowledge Mission
Ranked 63rd among top 100 private engineering colleges in
India by higher education review magazine.
[Link]
SOFTWARE ENGINEERING
UNIT 5
Unit-5
Project Planning and Estimation: Project Planning activities, Software Metrics and
measurements, Project Size Estimation, Effort Estimation Techniques.
Day 32#
Project: A project is a temporary endeavour with defined starting and ending deadlines, role
and responsibilities, conditions, budgets and plans, undertaken to accomplish aim and
objects. Each project has a unique purpose even if there are multiple projects in a single
domain. For example one website project may occur on adding features while another
website project may focus on renovating the existing website onto a modern platform. A
software project requires resources (hardware, software, and human resources), typically
from different areas. Various software resources, Such as automated tools, supporting tools,
and development environment are needed to work on a project. A successful project always
satisfies the project constraints expected by the customer.
People: People (or stakeholders) in a project are those who are either involved in or affected
by the project. Each person in the project has certain roles and responsibilities according to
his skill set. The people should be motivated, trained, rewarded, deployed, and retained as
and when required to improve their capabilities.
Following are the various categories of people involved in an effective software project
management.
Senior managers: They are the highest level of team that defines the business issues that
have significant influence on the project. The senior manager, like all managers, is
responsible for planning and directing the work of a group of individuals, monitoring their
work, and taking corrective action when necessary. Senior managers may guide workers
directly or they may direct several supervisors who manage the workers.
The senior manager often supervises the largest or most important group(s) in a company.
Core responsibilities of the senior manager include:
Project Managers: A software project manager is a person who undertakes the responsibility
of executing the software project. Software project manager is thoroughly aware of all the
phases of SDLC that the software would go through. 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 and adequate resources, maintains communication
among all team members in order to address issues of cost, budget, resources, time, and
quality and customer satisfaction.
Customers: Customers are the people who specify the need for getting the software
developed. They are involved in defining requirements, development, and services delivery
of the product.
End users:They are the people who will operate the software once it has been developed.
Project sponsors: They are mainly involved in proposing the project due to the need for
change and have the authority to introduce something. They are also related to the financial
issues in the project and they make a commitment to the project for its successful completion.
Competitors: These are the opponent parties who are producing a similar kind of product or
proposing to the same project. Project competitors cause reduction in the cost of product and
improvement in quality.
Suppliers:They may be manufactures who use tools and manpower to make things for
selling, such as the people involved in outsourcing software, the packager who encloses
products for distribution and sale, distributors, wholesalers.
Process:A software process describes the characteristics and organization of activities in
order to produce software. Software processes are applied in a project to produce a product.
The general activities of software processes include definition, development and
implementation. The selection of an appropriate software process model according to the
project is a challenge for the project manager. There are various software process models
such as waterfall model, prototyping model, spiral model, agile process model, and RUP
process model. Each of these software process models has its own characteristics and
limitations. Generally the project manager decides which process model is most appropriate
for the customer’s whose requested the product, features of the product itself, and the project
environment in which the software team works. Once the process model has been selected,
the project team defines an initial project plan based on a set of common process framework
activities.
Product:A product is a final outcome of the project. It is produced with an effective project
management process. The project manager must determine the requirements and the expected
outcomes at the beginning of the project. Project scope of the product must be clearly defined
which helps us to produce a quality [Link] scope is refined into discrete functional
units and the development schedule is planned for each functional units. The quality of the
product also depends on the process being used for the product development.
Class work:
1........is the people involved in or affected by project activities.
2 Projects........... Management is concerned with making effective use of people involved in
the project
3. A project .........is a collection of project phases.
Homework:
1. Define Software Project Management.
2. List out the Essentials of Project Management?
Important and JNTUK previous Questions.
1. What are the essentials in project management? April 2016 SET 3 [8M]
Day 33#
PROJECT MANAGEMENT:
Effective project management has a direct impact on the project success and organizational
growth. A badly planned project takes more time to complete and sometimes it leads to
project failure. Good project management produces a quality product, provides sufficient
communication across the team, reduces risks, and defines strategic objectives and goals.
Project management is necessary to find the pitfalls and create outlets to avoid the unintended
consequences of the project. Software project management is the key to successful delivery
of software projects as per customer expectations. Project management is the application of
knowledge, skills, tools, and techniques for performing project activities in order to satisfy
the expectations of the stakeholders from a project. Project management focuses on the cost,
schedule, and scope 0of the project along with the customer expectations.
Software projects frequently fail. The project failure rate of large projects is reported as being
between 50-80%. There are many ways to measure success and failure depending upon the
literature or experiences you have. However, following are some common factors that may
lead to project failures:
Project managers must work hard according to the project plan to avoid project
failures. Project managers must keep monitoring the responsibilities assigned to the
team members and encourage them to avoid wrong practices. If there are any
indications of project failure, project managers must take appropriate decisions to
streamline the project.
Project success must be the ultimate goal of project managers to fulfil the customer needs.
There are various factors that help in project success. The following factors help in
Successful completion of a project:
There are some other criteria for project success, such as competency of team members,
project control mechanisms, careful handling of technical tasks, and so on. The client must be
responsive to the queries of the project development team.
Every project needs a project management team. The people who work together on a project
are referred to as a team. A team is a cohesive group of one or more related roles and /or
subordinate teams that collaborated to perform a cohesive set of tasks. In any project there are
defined goals and targets to be achieved. The desired achievement depends on the collective
effort of top level management, the project manager, and the members of the project team.
Team work refers to a group of people working together in order to achieve a common goal.
Software work products are the results of team work.
The project manager puts a more conscious effort to build a team. Teams do not come
into being automatically. They require skill, knowledge, and tact on the part of the leader.
There must be strong communication channel among team members. Organization must
develop a culture of team building. Attitude, interaction patterns, skills possessed my
members, methods used to work on tasks, and individual contributions all contribute to the
team culture. Every team may be different from the others in the way it handles it tasks.
Therefore project managers follow certain guidelines for the creation of team culture.
A project management team typically consists of the project manager, who leads the
team; configuration manager; metrics analyst; process engineer; quality engineer; scheduler;
technical leader; and so on. The team perform the overall (administrative) management and
risk management for a single project.
Q4. Briefly Explain Software Configuration Management. April 2016 SET 1 [8M]
The CM process consists of the following for activities and these are shown in figure. The
CM process begins with configuration identification and ends with audit results
1. Configuration identification
2. Configuration change control
[Link] status accounting
[Link] auditing
CONFIGURATION IDENTIFICATION:
Purpose of software configuration change (CC) is to manage changes during the software life
cycle .identify what changes to make, the authority for approving [Link]
request(CR) for changes to software configuration items may be originated by anyone at any
point in the software life cycle.
The software Configuration status accounting Records and reports the information needed for
effective management of the software configuration. It is the Book keeping process of each
release for CIs. The CIs are identified, collected, and maintained for the status
accounting .there are various automated tools such as source code control
system(SCCS),RCS, and so on. These tools are used to accomplish data collection and status
reporting tasks.
CONFIGURATION AUDITING:
Determines the extent to which an item satisfies the required functionalities. Performed to
evaluate the conformance of software products .Auditing is performed according to a well-
defined process consisting of various auditor roles and responsibilities.
RISK MANAGMENT:
Soft ware projects, products and business are full of un certainties due to changing
requirementsvarying range of applications informal process and technological advancements
adverse affects may happen at any stage of software development, process management,
project management and configuration management risk is unfavourable situation that may
lead to an undesirable outcome potential problems or losses are also called as risks risk may
include product estimation, business issues, customer, process, technology ,development,
environment, and project planning
Risk management is pro active approach for minimizing the un certainty and potential
problems associated with a project by providing in sight to support informed decision making
it is an ongoing activity from the initiation to the retirement of an software product soft ware
risk management is necessary for the following reasons
1. Project risks: project risks are concerned with project planning and scheduling these risks
can be related to budget schedule and resources most of the projects run behind schedule
become over budget and have un availability of skilled engineers if the projects are not
properly planned and there may be the possibility of risks
3. Business risks: business risks may have a negative impact on the operation or profitability
of an organization for example an organization an organization is unable to produce the
products which are demanded in the market a compotator has launched an alternative product
business risks are mainly due to wrong decisions implemented in the companies
In order to handle all the above risks there should be some systematic process for risks, there
should be some systematic .we will discuss risk management activities and there
mechanisms
Class work:
1. Define Software Configuration management.
2. Define risk management and planning.
Homework:
1. Define Risk management
2. What are the risk management types?
Important and JNTUK previous Questions.
1. Briefly Explain Software Configuration Management. April 2016 SET 1 [8M]
2. Explain briefly about project management in [Link] 2016 SET 3 [8M]
Day 34#
There are various types of risks of associated with projects,products and business some risks
have a great effect and some are tolerated the risk management process includes the
1. Risk identification
2. Risk analysis
3. Risk planning
4. Risk monitoring and control
1. Risk identification: the risk identification activity starts with a list of potential risks may
have an impact on the achievement of the defined objectives potential risks are identified
with their consequences effects, sources root causes and categories the output of this activity
is a list of projects specific risks that have the potential of compromising of project success
there are various types of risks that may arise for human resources risks estimation risks and
so on
There are different techniques for identifying risks such as interviewing, reporting
decomposition, assumption analysis critical path analysis and utilization of risk taxonomies
brain storming is preferred technique because of identification of risks informed opinions of
the project team and other exports and the concern of the stake holders
[Link] analysis: during risk analysis each risk is analyzed independently by examining
identified risk and assessing is impact and probability risk exposure the analysis can be
conducted using different techniques for example metric decision and scenario analysis the
list of risks is then grouped and ranked on the results of risk analysis and management
because of limited resources
[Link] planning: once the risks are identified an appropriate management plan is developed
for modifying risks a judgement and experience of the project manager are very important at
this stage the project manager may use the risk resolution strategies for the reduction of the
risks general risk management strategies are risk avoidance risk minimization risk acceptance
and risk transfer is the case of if it’s possible to transfer the risk to somebody risk or else this
can be done by choosing out sourcing subcontracting buying a resource or tool as a risk
transfer strategy
[Link] monitoring and control: risk monitoring and control ensures new risks and detected
and management risk action plans are implemented to reduce the impact of risks policies and
standards compliances are regularly carried out standard performance reviewed to identify
the opportunities the monitoring process provides assurance that appropriate controls have
been taken for the organization activities and that procedures are in place if needed changes
are made in organizational environment to cope with risks
A successful project is possible only through good project planning. Project planning
concentrates on estimation resources, time, budgets, and monitoring and controlling the
activities of project management. During project planning, future estimates are planned for
effective project management. A project management activity begins with a well defined
project plan. A good project plan guides towards project success. The main goal of the
project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring
a project.
Project planning activities:The project planning activities include both business-level and
technical level planning. Business-level planning addresses the relationships with the
customers where as technical level planning focuses on performing the technical activities.
Business planning includes the project and business objectives, proposal writing, analysis and
inclusion of functional requirements, product demand and its scope, and legal issues.
Technical planning concentrates on technical issues such as selection of the development life
cycle model, planning documentation methods, and tools, risk management planning,
financial planning, and so on.
1. Determine the project requirements. You may have already prepared the objectives
for the project and some high-level requirements for the proposed scope during Step 1,
Business Case Assessment. However, most likely they are not of sufficient detail to start
the planning process. As part of the scope definition, review and revise the following
requirements: data, functionality (reports and queries), and infrastructure (technical and
nontechnical).
2. Determine the condition of the source files and databases. You can neither complete
the project schedule nor commit to a delivery date without a good understanding of the
condition of the source files and databases. Take some time to review the data content of
these operational files and databases. Although you will perform detailed source data
analysis during Step 5, Data Analysis, right now you need to glean just enough
information to make an educated guess about the effort needed for data cleansing.
3. Determine or revise the cost estimates. Detailed cost estimates must include hardware
and network costs as well as purchase prices and annual maintenance fees for tools. In
addition, you must ascertain the costs for contractors, consultants, and training. A more
indirect cost is associated with the learning curve for the business and IT staff members.
Remember to factor that into the cost estimates as well as the time estimates.
4. Revise the risk assessment. Review and revise the risk assessment performed during
Step 1, Business Case Assessment (or perform a risk assessment now if you skipped that
step). Rank each risk on a scale of 1 to 5 according to the severity of its impact on the BI
project, with 1 indicating low impact and 5 indicating high impact. Similarly, rank the
likelihood of each risk materializing, with 1 being "probably won't happen" and 5 being
"we can almost count on it."
5. Identify critical success factors. A critical success factor is a condition that must exist
for the project to have a high chance for success. Some common critical success factors
are a proactive and very supportive business sponsor, full-time involvement of a
business representative, realistic budgets and schedules, realistic expectations, and a
core team with the right skill set.
6. Prepare the project charter. The project charter is similar to a scope agreement, a
document of understanding, or a statement of work. However, the project charter is
much more detailed than the usual 3- to 4-page general overview of the project that
contains only a brief description of resources, costs, and schedule. The project charter is
a 20- to 30-page document developed by the core team, which includes the business
representative. Present the project charter and the project plan to the business sponsor
for approval.
7. Create a high-level project plan. Project plans are usually presented in the form of a
Gantt chart that shows activities, tasks, resources, dependencies, and effort mapped out
on a calendar project managers also create Pert charts, which show the graphic
representation of the CPM on the calendar.
8. Kick off the project. Once you have planned the project, assigned the resources, and
scheduled the training, you are ready to kick off the project. This is usually
accomplished with an orientation meeting for the entire team (the core team members as
well as the extended team members). Project kickoff should also include setting up
communication channels (e.g., newsletters, e-mails, Web pages) with the rest of the
organization to keep stakeholders and interested parties up-to-date on the project's
progress.
Class work:
1. Identify at least five successive and five failure factors of application and system
software project
2. Explain risk management process
Home work:
1. List out the project planning activities.
Important and JNTUK previous Questions.
1. Briefly explain about project planning activity April 2016 STE 3 [4M]
Day 35#
Process Metrics:
Product Metrics
In software development process, a working product is developed at the end of each
successful phase. Each product can be measured at any stage of its development. Metrics are
developed for these products so that they can indicate whether a product is developed
according to the user requirements. If a product does not meet user requirements, then the
necessary actions are taken in the respective phase.
Product metrics help software engineer to detect and correct potential problems before they
result in catastrophic defects. In addition, product metrics assess the internal product
attributes in order to know the efficiency of the following.
Size measurement is the initial step for estimating the other attributes of software. It is the
direct measurement, which is based on the problem size. There are various units of size
measurements such as line of code (LOC), function point (FP), token count (TC), fuzzy logic
sizing, object point(OP).
Lines-of-Code is the oldest and the most widely used. First popularized by Barry Boehm in
his Constructive Cost Model (COCOMO), it has since become the basis for a vast array of
software cost estimating tools. Although other techniques have made major in-roads in the
world of MIS applications, Lines-of-Code is still the standard for applications with lots of
behind the scenes processing. This includes system programming, embedded programming,
and most scientific programs. Even in the MIS world, it remains popular as a technique for
many code intensive applications.
The basis of the Measure LOC is that program length can be used as a predictor of program
characteristics such as effort and ease of maintenance. The LOC measure is used to measure
size of the software. Techniques for counting Lines of Code have many variations but the
underlying philosophy is the same.
A line of code is defined as a logical line, not necessarily a physical line. For example, in C
and C++ it is common to count the number of semi-colons and use that as the line count. In
this manner, placing three logical statements on one physical line still counts as three lines of
code.
Another compelling series of arguments against Lines-of-Code revolves around the fact that
the delivered functionality per line of code will vary based on the language being used. It is
strongly believed that this argument dooms Lines-of-Code as an effective measure of
programmer productivity, and we discourage companies from measuring programmer LOC
Performance using Lines-of-Code developed as a metric. On the other hand, the use of Lines-
of-Code as a predictor of total project effort continues to be successful for a wide range of
programming projects using a variety of languages
Effort Estimation predicts how much rime is required to complete a project, how much it
costs, and how many engineers are required for completing the project. Cost efforts includes
the cost of hardware and software, salaries of engineers, and other costs incurred in training,
travels, tool support, etc. Cost estimation is performed either in a top-down or bottom-up
manner.
There are different Software Testing Estimation Techniques which can be used for
estimating a task.
1) Delphi Technique
2) Work Breakdown Structure (WBS)
3) Three Point Estimation
4) Functional Point Method
1) Delphi Technique:
Delphi technique – This is one of the widely used software testing estimation technique.
In the Delphi Method is based on surveys and basically collects the information from
participants who are experts. In this estimation technique each task is assigned to each team
member & over multiple rounds surveys are conduct unless & until a final estimation of task
is not finalized. In each round the thought about task are gathered & feedback is provided. By
using this method, you can get quantitative and qualitative results.
In overall techniques this technique gives good confidence in the estimation. This technique
can be used with the combination of the other techniques.
A big project is made manageable by first breaking it down into individual components in a
hierarchical structure, known as the Work breakdown structure, or the WBS.
The WBS helps to project manager and the team to create the task scheduling, detailed cost
estimation of the project. By using the WBS motions, the project manager and team will have
a pretty good idea whether or not they’ve captured all the necessary tasks, based on the
project requirements, which are going to need to happen to get the job done.
In this technique the complex project is divided into smaller pieces. The modules are divided
into smaller sub-modules. Each sub-moduleare further divided into functionality. And each
functionality can be divided into sub-functionalities. After breakdown the work all
functionality should review to check whether each & every functionality is covered in the
WBS.
Using this you can easily figure out the all task needs to completed & they are breakdown
into details task so estimation to details task would be easier than estimating overall Complex
project at one shot.
Three point estimation is the estimation method is based on statistical data. It is very much
similar to WBS technique, tasks are broken down into subtasks & three types of estimation
are done on this sub pieces.
Optimistic Estimate (Best case scenario in which nothing goes wrong and all conditions are
optimal.) = A
Most Likely Estimate (most likely duration and there may be some problem but most of the
things will go right.) = M
In this FP technique we have to give weightage to each functional point. Prior to start actual
estimating tasks functional points are divided into three groups like Complex, Medium &
Simple. Based on similar projects & Organization standards we have to define estimate per
function points.
Total Effort Estimate = Total Function Points * Estimate defined per Functional Point.
Basic COCOMO computes software development effort (and cost) as a function of program
size. Program size is expressed in estimated thousands of source lines of code
(SLOC, KLOC).
COCOMO applies to three classes of software projects:
Organic projects - "small" teams with "good" experience working with "less than rigid"
requirements
Semi-detached projects - "medium" teams with mixed experience working with a mix of
rigid and less than rigid requirements
Embedded projects - developed within a set of "tight" constraints. It is also combination
of organic and semi-detached projects.(hardware, software, operational, ...)
The basic COCOMO equations take the form
Effort Applied (E) = ab(KLOC)bb [ man-months ]
Development Time (D) = cb(Effort Applied)db [months]
People required (P) = Effort Applied / Development Time [count]
Where, KLOC is the estimated number of delivered lines (expressed in thousands) of code
for project. The coefficients ab, bb, cb and db are given in the following table (note: the values
listed below are from the original analysis, with a modern reanalysis producing different
values)
Software project ab bb cb db
Halstead complexity measures are software metrics introduced by Maurice Howard Halstead
in 1977as part of his treatise on establishing an empirical science of software development.
Halstead made the observation that metrics of the software should reflect the implementation
or expression of algorithms in different languages, but be independent of their execution on a
specific platform. These metrics are therefore computed statically from the code.
Halstead's goal was to identify measurable properties of software, and the relations between
them. This is similar to the identification of measurable properties of matter (like the volume,
mass, and pressure of a gas) and the relationships between them (analogous to the gas
equation). Thus his metrics are actually not just complexity metrics.
Q11. Discuss the two commonly used approaches for effort estimation.
Top-down estimating method is also called Macro Model. Using top-down estimating
method, an overall cost estimation for the project is derived from the global properties of the
software project, and then the project is partitioned into various low-level components. The
leading method using this approach is Putnam model. This method is more applicable to early
cost estimation when only global properties are known. In the early phase of the software
development, it is very useful because there are no detailed information available.
Using bottom-up estimating method, the cost of each software components is estimated and
then combines the results to arrive at an estimated cost of overall project. It aims at
constructing the estimate of a system from the knowledge accumulated about the small
software components and their interactions. The leading method using this approach is
COCOMO's detailed model.
The advantages:
The disadvantages:
Homework:
1. Define COCOMO model.
2. List out the Estimation Techniques
3. Define LOC
4. Discuss the two commonly used approaches for effort estimation.
Important and JNTUK previous Questions.
1. What are effort Estimation Techniques? April 2016 SET 2 [8M]
2. Explain briefly about Project Size Estimation. April 2016 Nov 2016 SET 1,3 [8M]
3. What are software metrics and measurements? April 2016 SET 4 [8M]