Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
4 views273 pages

BCACC9A Software Estimation-1

The document outlines the syllabus for a Software Engineering course, detailing seven units covering topics such as software introduction, requirement analysis, project management, risk management, quality management, design engineering, and testing strategies. Each unit specifies the contents and number of lectures, with a total of 60 lectures and 10 tutorials planned. Additionally, it discusses software metrics, measurement processes, and the importance of metrics in evaluating software attributes like size, cost, and development time.

Uploaded by

bishramoraon896
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)
4 views273 pages

BCACC9A Software Estimation-1

The document outlines the syllabus for a Software Engineering course, detailing seven units covering topics such as software introduction, requirement analysis, project management, risk management, quality management, design engineering, and testing strategies. Each unit specifies the contents and number of lectures, with a total of 60 lectures and 10 tutorials planned. Additionally, it discusses software metrics, measurement processes, and the importance of metrics in evaluating software attributes like size, cost, and development time.

Uploaded by

bishramoraon896
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/ 273

BITCC9A: Software Engineering

BCACC9A:Unit1 Syllabus

Unit Contents No. of Lectures


1. Introduction 8
• The Evolving Role of Software
• Software Characteristics
• Changing Nature of Software
• Software Engineering as a Layered
Technology
• Software Process Framework

BCACC9A: Software Estimation Slide Number 2


BCACC9A:Unit1 Syllabus …

Unit Contents No. of Lectures


1. Introduction … 8
• Framework and Umbrella Activities
• Process Models
• Capability Maturity Model Integration
(CMMI)

BCACC9A: Software Estimation Slide Number 3


BCACC9A:Unit2 Syllabus

Unit Contents No. of Lectures


2. Requirement Analysis 10
• Software Requirement Analysis
• Initiating Requirement Engineering
Process
• Requirement Analysis and Modeling
Techniques
• Flow Oriented Modeling

BCACC9A: Software Estimation Slide Number 4


BCACC9A:Unit2 Syllabus …

Unit Contents No. of Lectures


2. Requirement Analysis … 10
• Need for SRS
• Characteristics and Components of
SRS

BCACC9A: Software Estimation Slide Number 5


BCACC9A:Unit3 Syllabus

Unit Contents No. of Lectures


3. Software Project Management 8
• Estimation in Project Planning Process
• Project Scheduling

BCACC9A: Software Estimation Slide Number 6


BCACC9A:Unit4 Syllabus

Unit Contents No. of Lectures


4. Risk Management 8
• Software Risks
• Risk Identification
• Risk Projection and Risk Refinement
• RMMM Plan

BCACC9A: Software Estimation Slide Number 7


BCACC9A:Unit5 Syllabus

Unit Contents No. of Lectures


5. Quality Management 8
• Quality Concepts
• Software Quality Assurance
• Software Reviews
• Metrics for Process and Projects

BCACC9A: Software Estimation Slide Number 8


BCACC9A:Unit6 Syllabus

Unit Contents No. of Lectures


6. Design Engineering 10
• Design Concepts
• Architectural Design Elements
• Software Architecture
• Data Design at the Architectural Level and
Component Level

BCACC9A: Software Estimation Slide Number 9


BCACC9A:Unit6 Syllabus

Unit Contents No. of Lectures


6. Design Engineering … 10
• Mapping of Data Flow into Software
Architecture
• Modeling Component Level Design

BCACC9A: Software Estimation Slide Number 10


BCACC9A:Unit7 Syllabus

Unit Contents No. of Lectures


7. Testing Strategies & Tactics 8
• Software Testing Fundamentals
• Strategic Approach to Software
Testing
• Test Strategies for Conventional
Software
• Validation Testing

BCACC9A: Software Estimation Slide Number 11


BCACC9A:Unit7 Syllabus

Unit Contents No. of Lectures


7. Testing Strategies & Tactics … 8
• System testing
• Black-Box Testing
• White-Box Testing and their type
• Basis Path Testing

BCACC9A: Software Estimation Slide Number 12


BITCC8A:Books
Details of Book
Text Books:
• M. Sipser - Introduction to the theory of computation, Thomson
Learning, 2001.
Reference Books:
• J. Martin - Introduction to languages and the Theory of computation,
3rd edition, McGraw Hill, 2002.
• K.L.P. Mishra- Theory of Computer Science, PHI Publication.
• J. E. Hopcroft, R. Motwani and J.D. Ullman - Introduction to Automata
Theory, Languages and
• Computation, 2nd Edition, Pearson Education, 2001.
BCACC9A: Software Estimation Slide Number 13
BCACC9A: Syllabus
• SOFTWARE ENGINEERING THEORY Lectures: 60; Tutorials: 10

• 1. Introduction (8 Lectures)

• The Evolving Role of Software, Software Characteristics, Changing Nature of Software, Software

• Engineering as a Layered Technology, Software Process Framework, Framework and Umbrella

• Activities, Process Models, Capability Maturity Model Integration (CMMI).

• 2. Requirement Analysis (10 Lectures)

• Software Requirement Analysis, Initiating Requirement Engineering Process, Requirement

• Analysis and Modeling Techniques, Flow Oriented Modeling, Need for SRS, Characteristics and

• Components of SRS.

• 3. Software Project Management (8Lectures)

• Estimation in Project Planning Process, Project Scheduling.

• 4. Risk Management (8 Lectures)

• Software Risks, Risk Identification, Risk Projection and Risk Refinement, RMMM Plan.

• 5. Quality Management (8 Lectures)

• Quality Concepts, Software Quality Assurance, Software Reviews, Metrics for Process and

• Projects.

• 6. Design Engineering (10 Lectures)

• Design Concepts, Architectural Design Elements, Software Architecture, Data Design at the

• Architectural Level and Component Level, Mapping of Data Flow into Software Architecture,

• Modeling Component Level Design.

• 7. Testing Strategies & Tactics (8 Lectures)

• Software Testing Fundamentals, Strategic Approach to Software Testing, Test Strategies for

• Conventional Software, Validation Testing, System testing, Black-Box Testing, White-Box


BCACC9A:• Software Estimation
Testing and their type, Basis Path Testing.
Slide Number 14
What is Measure?

•Measure provides a quantitative unit of the object in


which one is interested.
•Measure provides a quantitative indication of the extent,
amount, dimension, capacity, or size of some attribute of a
product or process.

BCACC9A: Software Estimation Slide Number 15


Types of Measure

•Direct Measure
•Indirect Measure

BCACC9A: Software Estimation Slide Number 16


Types of Measure: Direct

•The Direct Measures are


•Cost
•Effort
•Lines of Code
•Response Time
•Resource Usage i.e. memory, disc capacity

BCACC9A: Software Estimation Slide Number 17


Types of Measure: Indirect

•The Indirect Measures are


•Functionality
•Quality
•Complexity
•Efficiency
•Dependability

BCACC9A: Software Estimation Slide Number 18


Types of Measure: Indirect …

•The Indirect Measures are …


•Maintainability
•Ease of use
•Quality of documentation

BCACC9A: Software Estimation Slide Number 19


Measurement

•Measurement is the activity of determining the measure.


•The act of determining a measure is known as
measurement.

BCACC9A: Software Estimation Slide Number 20


Metrics

•Metrics is a quantitative measure built out of different


measures that represent the entity of interest.
•IEEE has defined metrics as “ A quantitative measure of
the degree to which a system, component, or process
possesses a given attribute”.
•A metric or combination of metrics that provides insight
into the software process, a software project, or the
product itself.

BCACC9A: Software Estimation Slide Number 21


Metrics …

•Metrics is a quantitative measure built out of different


measures that represent the entity of interest.
•IEEE has defined metrics as “ A quantitative measure of
the degree to which a system, component, or process
possesses a given attribute”.
•A metric or combination of metrics that provides insight
into the software process, a software project, or the
product itself.

BCACC9A: Software Estimation Slide Number 22


Activities of Measurement Process

• Formulation → The derivation (i.e., identification) of software


measures and metrics appropriate for the representation of
the software that is being considered
• Collection → The mechanism used to accumulate data
required to derive the formulated metrics
• Analysis → The computation of metrics and the application of
mathematical tools
• Interpretation → The evaluation of metrics in an effort to gain
insight into the quality of the representation

BCACC9A: Software Estimation Slide Number 23


Activities of Measurement Process

•Interpretation → The evaluation of metrics in an effort to


gain insight into the quality of the representation
•Feedback → Recommendations derived from the
interpretation of product metrics and passed on to the
software development team

BCACC9A: Software Estimation Slide Number 24


Characterization and Validating Metrics

•A metric should have desirable mathematical properties


•It should have a meaningful range (e.g., zero to ten)
•It should not be set on a rational scale if it is composed
of components measured on an ordinal scale
•If a metric represents a software characteristic that
increases when positive traits occur or decreases when
undesirable traits are encountered, the value of the metric
should increase or decrease in the same manner

BCACC9A: Software Estimation Slide Number 25


Characterization and Validating Metrics …

•Each metric should be validated empirically in a wide


variety of contexts before being published or used to make
decisions
•It should measure the factor of interest independently of
other factors
•It should scale up to large systems
•It should work in a variety of programming languages
and system domains.

BCACC9A: Software Estimation Slide Number 26


Designing Metrics: Collection and Analysis Guidelines

•Whenever possible, data collection and analysis should be


automated
•Valid statistical techniques should be applied to establish
relationships between internal product attributes and
external quality characteristics
•Interpretative guidelines and recommendations should be
established for each metric.

BCACC9A: Software Estimation Slide Number 27


Designing Metrics: Collection and Analysis Guidelines

•Whenever possible, data collection and analysis should be


automated
•Valid statistical techniques should be applied to establish
relationships between internal product attributes and
external quality characteristics
•Interpretative guidelines and recommendations should be
established for each metric.

BCACC9A: Software Estimation Slide Number 28


Goal Oriented Software Measurement

• Goal/Question/Metric (GQM) paradigm


• GQM technique identifies meaningful metrics for any part of the
software process
• GQM emphasizes the need to
• Establish an explicit measurement goal that is specific to the process
activity or product characteristic that is to be assessed
• Define a set of questions that must be answered in order to achieve
the goal
• Identify well-formulated metrics that help to answer these questions

BCACC9A: Software Estimation Slide Number 29


Goal Oriented Software Measurement

• GQM utilizes a goal definition template to define each


measurement goal
• Example use of goal definition template
• Analyze the software architecture for the purpose of
evaluating architecture components.
• Do this with respect to the ability to make software more
extensible from the viewpoint of the software engineers, who
are performing the work in the context of product
enhancement over the next three years.

BCACC9A: Software Estimation Slide Number 30


Goal Oriented Software Measurement

• GQM utilizes a goal definition template to define each


measurement goal
• Example use of goal definition template
• Analyze the software architecture for the purpose of
evaluating architecture components.
• Do this with respect to the ability to make software more
extensible from the viewpoint of the software engineers, who
are performing the work in the context of product
enhancement over the next three years.

BCACC9A: Software Estimation Slide Number 31


Goal Oriented Software Measurement

•Example questions for this goal definition


•Are architectural components characterized in a manner
that compartmentalizes function and related data?
•Is the complexity of each component within bounds that
will facilitate modification and extension?

BCACC9A: Software Estimation Slide Number 32


What is Software Metrics?

•Software metrics is built out of several measures and


provides an insight into various aspects of software like
software processes, software product etc.
•The metrics data are collected over a period on several
software are useful to build standards for planning and
estimation of resource, cost, effort, software size and time
for software development.
•Software metrics can be used to indicate the basic
attributes of software.

BCACC9A: Software Estimation Slide Number 33


What is Software Metrics?

Size Line of Code, Function Point Count


Quality Reliability, Accuracy and Dependability and are
measured through errors, failures and number
of runs between failures
Execution Time Process time of execution of a critical process
etc.

BCACC9A: Software Estimation Slide Number 34


What is Software Metrics?

Day Time Body Temp. Time Taken Season


MON 6:00 97.0 F 12.00 Sec Spring
TUE 6:00 96.8 F 12.05 Sec Spring
WED 5:00 97.5 F 11.90 Sec Spring
THU 5:30 97.0 F 11.95 Sec Spring
FRI 6:00 97.4 F 12.01 Sec Spring
SAT 5:00 96.9 F 11.92 Sec Spring
SUN 8:00 98.0 F 12.20 Sec Spring

BCACC9A: Software Estimation Slide Number 35


Software Metrics

• Software Engineering is a stable and quantitative engineering


discipline.
• The stability arises from wide range of matrices evolved by the
software engineers to measure various aspects of the
software.
• The advantage of metrics is that we can measure different
aspects of software that need evaluation on an ongoing basis
for estimation in quantitative terms.
• The terms Measure, Measurement and Metrics are different
aspects.

BCACC9A: Software Estimation Slide Number 36


Software Metrics

• Measure provides a quantitative unit of the object in which


one is interested. Provides a quantitative indication of the
extent, amount, dimension, capacity, or size of some attribute
of a product or process.
• Measurement is the activity of determining the measure.
• The act of determining a measure is termed as measurement.
• Metrics is a quantitative measure built out of different
measures that represent the entity of interest. (IEEE)

BCACC9A: Software Estimation Slide Number 37


Software Metrics

•A quantitative measure of the degree to which a system,


component, or process possesses a given attribute.

BCACC9A: Software Estimation Slide Number 38


Software Attributes

•A quantitative measure of the degree to which a system,


component, or process possesses a given attribute.

BCACC9A: Software Estimation Slide Number 39


Types of Software Attributes

•Size
•Cost
•Development Time

Software Attributes

Size Cost Development Time

BCACC9A: Software Estimation Slide Number 40


Size of Software

•Size of software depends on


•Lines of Code
•Function Point(s)

BCACC9A: Software Estimation Slide Number 41


Size of Software
Size

Function Point Lines of Code

Input(s) Programming Language

Output(s) Architecture

Queries Complexity

File(s) Function Point(s)


BCACC9A: Software Estimation Slide Number 42
Size of Software

•Line of Code depends on


•Language
•Architecture
•Complexity
•Function Point

BCACC9A: Software Estimation Slide Number 43


Size of Software

•Function Point depends on


•Input
•Output
•Queries
•Files

BCACC9A: Software Estimation Slide Number 44


Categories of Project Size

•Project size is a major factor that determines the level of


management control, types of tools and techniques
required for the software project.

BCACC9A: Software Estimation Slide Number 45


Categories of Project Size

•As per size, project is of following types: -


•Trivial Project
•Small Project
•Medium Size Project
•Large Project
•Very Large Project
•Extremely large System

BCACC9A: Software Estimation Slide Number 46


Trivial Project

• Number of Programmer →One programmer develops a trivial


project.
• Duration → The programmer perhaps works part time for a
few days or for a few weeks to develop the software.
• Software Size →The programs are not having more than 500
source code lines packaged in 10 – 20 routines.
• Such programs are developed exclusively for personal use and
are usually discarded after few months. There is a little need of
formal analysis, elaborate design, documentation, extensive
test planning or supporting documents for trivial program.

BCACC9A: Software Estimation Slide Number 47


Small Size Project

• Number of programmers →A small project employs more than


one programmers.
• Duration → Programmers usually take 1 – 6 months to
develop the software.
• Software Size → Software contains 1000- 2000 lines of source
codes in perhaps 25-50 sub routines.
• Small projects include scientific app used by engineer to solve
numerical problems, small commercial app written by data
processing personal to perform straight forward data
manipulation and resource generation.

BCACC9A: Software Estimation Slide Number 48


Small Size Project …

•A small project requires a little interaction with the


programmer or between programmer and customer.
•Degree of formality would be much less than it is required
on the large projects.

BCACC9A: Software Estimation Slide Number 49


Medium Size Project

•Number of programmers → 2 – 3 programmers.


•Duration → 1 – 2 years to complete the project.
•Software Size → 10000 – 50000 lines of source codes
packaged in 250-1000 routines.
•Some of them are management information system,
inventory control system etc.

BCACC9A: Software Estimation Slide Number 50


Medium Size Project …

•Development of medium size project requires interaction


among programmers and the communication with
customer.
•A certain degree of formality is required in planning of
document and project reviews.

BCACC9A: Software Estimation Slide Number 51


Large Size Project

• Number of programmers → 5 – 20
• Duration → 2 – 3 Years.
• Software Size → 50000 – 100000 lines of source code
packaged in several sub systems.
• A large project often has significant interaction with other
programs and software system. For example compilers,
database packages, real time control system etc.
• Communication among developer and programmer becomes
more severe.

BCACC9A: Software Estimation Slide Number 52


Large Size Project

•A large project requires more than one programming team


which often involves more than one level of management.
•The size and complexity of large project makes it difficult
to foresee or even eventualities during planning and
analysis.
•Systematic process, standardized document and common
reviews are essential throughout the project.

BCACC9A: Software Estimation Slide Number 53


Very Large Size Project

• Number of programmers → 100 – 1000


• Duration → 4 – 5 Years.
• Software Size → 1,000,000 lines of source codes.
• A very large system generally consists of several major sub
systems.
• Each of which form a large system.
• The examples are operating system, database system,
systematic processes, standardized document and common
reviews are essential throughout the large project.

BCACC9A: Software Estimation Slide Number 54


Extremely Large Size Project

• Number of programmers → 2000 – 5000


• Duration → Upto 10 Years.
• Software size → 10,000,000 – 100,000,000 lines of source code.
• Extremely large system consists of several large sub system and often
involved real time processing, telecommunication, multi-tasking and
distributive processing.
• These system often have extremely high reliability requirement and
often involve life and processes.
• The examples are air traffic control, ballistic missile defense system
etc.

BCACC9A: Software Estimation Slide Number 55


Cost of Software

•Cost of Software depends on resource utilization.


•Resources are of two types
•Human Resource
•Development Resource

BCACC9A: Software Estimation Slide Number 56


Cost of Software
Cost

Resources

Human Resource Development Resource

Skill(s) Platform

Knowledge Software

Number Tools
BCACC9A: Software Estimation Slide Number 57
Cost of Software

•Cost of Human Resource depends on


•Skills
•Knowledge
•Number

BCACC9A: Software Estimation Slide Number 58


Cost of Software

•Cost of Development Resource depends on


•Platform
•Software
•Tools

BCACC9A: Software Estimation Slide Number 59


Development Time

•Development Time depends on time taken in


•Analysis
•Design
•Coding
•Testing
•Implementation

BCACC9A: Software Estimation Slide Number 60


Development Time
Development Time

Analysis

Design

Coding

Testing

Implementation
BCACC9A: Software Estimation Slide Number 61
Attributes of Software Metrics

•The beginning of constructing effective software metrics is


done by selecting appropriate measures and the process
management.
•It is very difficult to arrive at one single value or attribute
to evaluate the software.
•The stress is on to build up a variety of measures and the
concerned personnel will frame metrics based on these
measures.

BCACC9A: Software Estimation Slide Number 62


Attributes of Software Metrics

•Once the appropriate measures is selected, process of


management is required to those measures.

BCACC9A: Software Estimation Slide Number 63


Attributes of Software Metrics

•The process of management has following attributes


•Appropriate choice of process management for
software
•Appropriate methods of data collection
•Appropriate mathematical tools for compilation of
measure
•Resultant measurement that provides an insight into
the relevant aspect of the software.

BCACC9A: Software Estimation Slide Number 64


Attributes of Software Metrics

•The above stated attributes can be measured if the


measurement process works on the following principles
•The objectives of measurement are clear
•Data collection, analysis and computation are
automated to eliminate bias.
•Valid statistical techniques are used for data collection
and computation of measures.

BCACC9A: Software Estimation Slide Number 65


Attributes of Software Metrics

•The above stated attributes can be measured if the


measurement process works on the following principles
•Simple to learn
•Easy to compute
•Unambiguous

BCACC9A: Software Estimation Slide Number 66


Attributes of Software Metrics

•Clear in objective terms for application


•Independent of technology, architecture or programming
languages.
•Simple and computable
•It should be relatively easy to learn how to derive the
metric, and its computation should not demand inordinate
effort or time

BCACC9A: Software Estimation Slide Number 67


Attributes of Software Metrics

•Empirically and intuitively persuasive


•The metric should satisfy the engineer’s intuitive notions
about the product attribute under consideration

BCACC9A: Software Estimation Slide Number 68


Attributes of Software Metrics

•Consistent and objective


•The metric should always yield results that are
unambiguous.
•Consistent in the use of units and dimensions
•The mathematical computation of the metric should use
measures that do not lead to bizarre combinations of units

BCACC9A: Software Estimation Slide Number 69


Attributes of Software Metrics

•Programming language independent


•Metrics should be based on the analysis model, the design
model, or the structure of the program itself
•An effective mechanism for high-quality feedback
•The metric should lead to a higher-quality end product

BCACC9A: Software Estimation Slide Number 70


Software Metrics Database

•A disciplined SE approach using engineering principles


assesses the following entities:
•Method
•Process
•Environment
•People
•Technology
•Software Product

BCACC9A: Software Estimation Slide Number 71


Software Metrics Database

•Software organizations build metrics for main entities such


as software product, development process by collecting
data through direct and indirect measures from successful
internal projects.
•The measures are then used to build relevant metrics as
indicators or guidelines for assessment.

BCACC9A: Software Estimation Slide Number 72


Software Metrics Database

•Metrics are built for three main entities: -


•Process
•Product
•Project

BCACC9A: Software Estimation Slide Number 73


Software Metrics Database

•Process Metrics
•Process metrics are used for process improvement.
•Product Metrics
•Product metrics are used for product improvement and
to distinguishing factors.
•Project Metrics
•Project metrics are used for software project planning
and control.

BCACC9A: Software Estimation Slide Number 74


Software Metrics Database

•The common entities for which a metrics database is


developed are
•Process
•Project(Product)
•Quality

BCACC9A: Software Estimation Slide Number 75


Software Metrics Database

•The metrics database is used to assess and monitor the


progress of the software development, identify problem
areas that may become critical, manipulate activities for
effective resource usage and support team effort to meet
the project deadline.

BCACC9A: Software Estimation Slide Number 76


Types of Software Metrics

•Base Line Metrics


•Process Metrics
•Project Metrics
•Analysis Model Metrics

BCACC9A: Software Estimation Slide Number 77


Types of Software Metrics …

•Design Model Metrics


•Source Code Metrics
•Testing Metrics
•Maintenance Metrics

BCACC9A: Software Estimation Slide Number 78


Types of Software Metrics : Baseline

•An organization develops a baseline of metrics as a


reference for planning and assessment of new software.
•Baselines are created using data as a measure built from
several software products and projects developed earlier.
•The data used for baselines should come from a valid
source, from similar software environments and should be
accurate and reliable.

BCACC9A: Software Estimation Slide Number 79


Types of Software Metrics : Baseline …

•With the growth in projects and products, the baseline


metrics improve due to additional data from new projects.
•The development of baselines metrics is a continuous
process in a matured development organization.
•Baseline metrics are used as a starting point for technical
guidance, building business proposals, planning and
resource estimation and subsequently to control the
development of the new software.

BCACC9A: Software Estimation Slide Number 80


Types of Software Metrics : Process

•Software process and project metrics are quantitative


measure.
•They are management tool.
•They offer insight into effectiveness of the software
process and the projects that are conducted using the
process as a framework.
•Basic quality and productivity data are collected.

BCACC9A: Software Estimation Slide Number 81


Types of Software Metrics : Process …

•These data are analyzed, compared against past averages


and assessed.
•The goal is to determine whether quality and productivity
improvements have occurred.
•The data can also be used to pinpoint the problem areas.
•Remedies can be then developed and the software process
can be improved.

BCACC9A: Software Estimation Slide Number 82


Types of Software Metrics : Process …

•The process of software development is influenced by


•The Customer
•Business
•Development environment
•These have significant impact on process performance.

BCACC9A: Software Estimation Slide Number 83


Types of Software Metrics : Process …

•The customer environment stems from the customer need


and characteristics of those in the customer organization
who will use the software.
•The customer environment depends upon the customer
and the user.
•Software requirements will be clearly spelt out and agreed
to by all users and stakeholders.

BCACC9A: Software Estimation Slide Number 84


Types of Software Metrics : Process …

•Ease of use i.e. user friendly is the commonly required


attribute.
•If the business environment is complex as a result of
business rules, types of business functions, nature and size
of business, then this has significant impact onto process
and performance of the organization.

BCACC9A: Software Estimation Slide Number 85


Types of Software Metrics : Process …

•The development resource environment is considered


good if the skills and knowledge required to deliver the
software is available within the organization.
•If not then the process as well as organizational
performance will be adverse.
•The customer and business environment are beyond the
control of the organization.

BCACC9A: Software Estimation Slide Number 86


Types of Software Metrics : Process …

•Although some control can be exercised on development


process.
•The process and organizational performance is also
affected by nature of software product, quality of people
and technology.
•Due to complexity of such factors affecting the process,
there are no direct measures available to build the metrics.

BCACC9A: Software Estimation Slide Number 87


Types of Software Metrics : Process …

•Indirect measures like errors, defects and bugs repaired


during testing, demonstration etc.
•It is possible to compute efforts taken to develop the
product, time taken for development etc.
•Indirect measures measuring the performance of critical
activities like requirement analysis, planning, designing
etc.

BCACC9A: Software Estimation Slide Number 88


Types of Software Metrics : Process …

•Uses of Measurement
•Can be applied to the software process with the intent
of improving it on a continuous basis.
•Can be used throughout a software project to assist in
estimation.
•Can be used to help assess the quality of software work
products and to assist in tactical decision making as a
project proceeds.

BCACC9A: Software Estimation Slide Number 89


Types of Software Metrics : Process …

•Reasons to Measure
•To characterize in order to
•Gain an understanding of processes, products,
resources and environments.
•Establish baselines for comparisons with future
assessments.
•To evaluate
•Determine status with respect to plans.

BCACC9A: Software Estimation Slide Number 90


Types of Software Metrics : Process …

•To predict in order to


•Gain understanding of relationships among processes
and products.
•Build models of these relationships.
•To improve in order to
•Identify roadblocks, root causes, inefficiencies, and
other opportunities for improving product quality and
process performance.

BCACC9A: Software Estimation Slide Number 91


Development of Process Metrics

•Process metrics are collected across all projects and over


long periods of time.
•They are used for making strategic decisions.
•The intent is to provide a set of process indicators that lead
to long term software process improvement.

BCACC9A: Software Estimation Slide Number 92


Development of Process Metrics

•The only way to know how/where to improve any process


is to
•Measure specific attributes of the process.
•Develop a set of meaningful metrics based on these
attributes.
•Use the metrics to provide indicators that will lead to a
strategy for improvement.

BCACC9A: Software Estimation Slide Number 93


Development of Process Metrics

•We measure the effectiveness of a process by deriving a


set of metrics based on outcomes of the process such as
•Errors uncovered before release of software.
•Defects delivered to and reported by the end users.
•Work products delivered.
•Human effort expanded.
•Conformance to the schedule.
•Time and effort to complete each generic activity.

BCACC9A: Software Estimation Slide Number 94


Etiquette of Process Metrics

•Use common sense and organizational sensitivity when


interpreting metrics data.
•Provide regular feedback to the individuals and teams who
collect measures and metrics.
•Don’t use metrics to evaluate individuals.
•Work with practitioners and teams to set clear goals and
metrics that will be used achieve them.
•Never use metrics to threaten individuals or teams.

BCACC9A: Software Estimation Slide Number 95


Etiquette of Process Metrics

•Metrics data that indicate a problem should not be


considered “negative”
•Such data are merely an indicator for process
improvement.
•Don’t obsess on a single metric to the exclusion of other
important metrics.

BCACC9A: Software Estimation Slide Number 96


Sourcer of Error and Their Distribution

Source / Cause Reason of Error/ Effects % age of Errors


Anticipated
Requirement Analysis Business rules and logic. 25
and Specification Number of conditions and
constraints.
Requirement Analysis Data Management, 10
and Specification Definition Structure and
Application.

BCACC9A: Software Estimation Slide Number 97


Sourcer of Error and Their Distribution
Source / Cause Reason of Error/ Effects % age of Errors
Anticipated
Requirement Analysis Use of Standards 5
and Specification
Design Design specification 30
Code Testing 15
User Interface Design 5
Hardware Interface Design 5
Software Interface Design 5
BCACC9A: Software Estimation Slide Number 98
Development of Process Metrics

•The choice of process model is very important if the


organization has to control the quality and performance of
the software.
•The selection of the appropriate process model for the
given environment in which the solution is demanded is
extremely critical.

BCACC9A: Software Estimation Slide Number 99


Development of Process Metrics

•The organization’s capability to handle each phase in the


most efficient manner will control the incidence of error
during the life cycle.
•Hence, process metrics differ from organization to
organization, resulting in different software solution
proposals differing from each other in the technical,
commercial and management aspects.

BCACC9A: Software Estimation Slide Number 100


Project Metrics

•It is used by the project manager to control and coordinate


the project in terms of project cost, time and effort
through management of skills, customer relations,
technology of development and software solution design.
•It is also used to plan and execute life cycle activities.
•The most advantageous use of project metrics is in
estimation of various aspects of new software project.

BCACC9A: Software Estimation Slide Number 101


Project Metrics …

•It provides data on estimation of time, effort, resource,


activities errors etc through certain basic measures like
function point, line of code, pages in the documentation,
number of reviews i.e. requirement analysis, design, code
etc.

BCACC9A: Software Estimation Slide Number 102


Project Metrics …

•Project metrics enable a software project manager to


•Assess the status of an ongoing project.
•Track potential risks.
•Uncover problem areas before their status becomes
critical.
•Adjust work for flow or tasks.
•Evaluate the project team’s ability to control quality of
software work products.

BCACC9A: Software Estimation Slide Number 103


Project Metrics …

•Many of the same metrics are used in both the process


and project domain.
•Project metrics are used for making tactical decisions.
•They are used to adapt project workflow and technical
activities.

BCACC9A: Software Estimation Slide Number 104


Project Metrics …

•The first application of project metrics occurs during


estimation
•Metrics from past projects are used as a basis for
estimating time and effort.
•As a project proceeds, the amount of time and effort
expended are compared to original estimates.

BCACC9A: Software Estimation Slide Number 105


Project Metrics …

•As technical work commences, other project metrics


becomes important
•Production rates are measured (represented in terms of
models created, review hours, function points and
delivered source lines of code).
•Error uncovered during each generic framework activity
i.e. communication, planning, modeling, construction,
deployment etc. are measured.

BCACC9A: Software Estimation Slide Number 106


Project Metrics …

•Project metrics are used to


•Minimize the development schedule by making the
adjustments necessary to avoid delays and mitigate
potential problems and risks.
•Assess product quality on an ongoing basis and when
necessary, to modify the technical approach to improve
quality.

BCACC9A: Software Estimation Slide Number 107


Project Metrics …

•Project metrics are used to …


•As quality improves, defects are minimized.
•As defects go down, the amount of rework required
during the project is also reduced.
•As rework goes down, the overall project cost is
reduced.

BCACC9A: Software Estimation Slide Number 108


Analysis Model Metrics

•Functionality delivered
•System size
•Specification quality

BCACC9A: Software Estimation Slide Number 109


Analysis Model Metrics

•Functionality delivered
•Provides an indirect measure of the functionality that is
packaged within the software.
•System size
•Measures the overall size of the system defined in terms
of information available as part of the analysis model.

BCACC9A: Software Estimation Slide Number 110


Analysis Model Metrics

•Specification quality
•Provides an indication of the specificity and
completeness of a requirements specification.

BCACC9A: Software Estimation Slide Number 111


Design Metrics

•Architectural Design Metrics


•Component Level Metrics
•Interface Design Metrics
•Hierarchical Architecture Metrics
•Object – Oriented Design Metrics
•Specific Class – Oriented Design Metrics

BCACC9A: Software Estimation Slide Number 112


Architectural Design Metrics

•These metrics place emphasis on the architectural


structure and effectiveness of modules or components
within the architecture.
•They are “black box” in that they do not require any
knowledge of the inner workings of a particular software
component.
•Provide an indication of the quality of the architectural
design.

BCACC9A: Software Estimation Slide Number 113


Component Level Design Metrics

•Measure the complexity of software components and


other characteristics that have a bearing on quality

BCACC9A: Software Estimation Slide Number 114


Interface Design Metrics

•Focuses on usability.

BCACC9A: Software Estimation Slide Number 115


Hierarchical Architectural Design Metrics

•Fan Out → the number of modules immediately


subordinate to the module i, that is, the number of
modules directly invoked by module i
•Structural Complexity → S(i) = fout(i), where fout(i) is the
“fan out” of module i

BCACC9A: Software Estimation Slide Number 116


Hierarchical Architectural Design Metrics

•Data complexity → D(i) = v(i)/[fout(i) + 1], where v(i) is the


number of input and output variables that are passed to
and from module i
•System Complexity → C(i) = S(i) + D(i)

BCACC9A: Software Estimation Slide Number 117


Hierarchical Architectural Design Metrics

•With the increase in the value of the above complexity, the


overall architectural complexity of the system also
increases and this leads to greater likelihood that the
integration and testing effort will also increase
•Shape complexity → size = n + a, where n is the number of
nodes and a is the number of arcs
•Allows different program software architectures to be
compared in a straightforward manner

BCACC9A: Software Estimation Slide Number 118


Hierarchical Architectural Design Metrics

•Connectivity Density (i.e., the arc-to-node ratio) → r = a/n


•May provide a simple indication of the coupling in the
software architecture

BCACC9A: Software Estimation Slide Number 119


Object Oriented Design Metrics

•Size
•Population → A static count of all classes and methods
•Volume → A dynamic count of all instantiated objects at
a given time
•Length → The depth of an inheritance tree

BCACC9A: Software Estimation Slide Number 120


Object Oriented Design Metrics …

•Coupling → The number of collaborations between classes


or the number of methods called between objects
•Cohesion → The cohesion of a class is the degree to which
its set of properties is part of the problem or design
domain.
•Primitiveness → The degree to which a method in a class is
atomic (i.e., the method cannot be constructed out of a
sequence of other methods provided by the class).

BCACC9A: Software Estimation Slide Number 121


Specific – Class Oriented Design Metrics …

•Specific Class – Oriented Metrics


•Weighted methods per class
•The normalized complexity of the methods in a class
•Indicates the amount of effort to implement and test a
class

BCACC9A: Software Estimation Slide Number 122


Specific – Class Oriented Design Metrics …

•Depth of the Inheritance Tree


•The maximum length from the derived class (the node)
to the base class (the root).
•Indicates the potential difficulties when attempting to
predict the behavior of a class because of the number
of inherited methods

BCACC9A: Software Estimation Slide Number 123


Specific – Class Oriented Design Metrics …

•Number of children (i.e., subclasses)


•As the number of children of a class grows
•Reuse increases
•The abstraction represented by the parent class can be
diluted by inappropriate children
•The amount of testing required will increase
•Measure characteristics of classes and their
communication and collaboration characteristics.

BCACC9A: Software Estimation Slide Number 124


Specific – Class Oriented Design Metrics …

•Coupling between object classes


•Measures the number of collaborations a class has with
any other classes
•Higher coupling decreases the reusability of a class
•Higher coupling complicates modifications and testing
•Coupling should be kept as low as possible

BCACC9A: Software Estimation Slide Number 125


Specific – Class Oriented Design Metrics …

•Response for a class


•This is the set of methods that can potentially be
executed in a class in response to a public method call
from outside the class.
•As the response value increases, the effort required for
testing also increases as does the overall design
complexity of the class.

BCACC9A: Software Estimation Slide Number 126


Specific – Class Oriented Design Metrics …

•Lack of cohesion in methods


•This measures the number of methods that access one
or more of the same instance variables (i.e., attributes)
of a class
•If no methods access the same attribute, then the
measure is zero

BCACC9A: Software Estimation Slide Number 127


Specific – Class Oriented Design Metrics …

•Lack of cohesion in methods …


•As the measure increases, methods become more
coupled to one another via attributes, thereby
increasing the complexity of the class design

BCACC9A: Software Estimation Slide Number 128


Source Code Metrics

•Complexity Metrics → Measure the logical complexity of


source code (can also be applied to component-level
design)
•Length Metrics → Provide an indication of the size of the
software

BCACC9A: Software Estimation Slide Number 129


Testing Metrics

•Statement and Branch Coverage → Metrics Lead to the


design of test cases that provide program coverage
•Defect – Related Metrics → Focus on defects (i.e., bugs)
found, rather than on the tests themselves
•Testing Effectiveness Metrics → Provide a real-time
indication of the effectiveness of tests that have been
conducted

BCACC9A: Software Estimation Slide Number 130


Testing Metrics …

•In – Process Metrics → Process related metrics that can be


determined as testing is conducted
•Information Domain Values
•Number of external inputs
•Each external input originates from a user or is transmitted
from another application

BCACC9A: Software Estimation Slide Number 131


Testing Metrics …

•They provide distinct application-oriented data or control


information
•They are often used to update internal logical files
•They are not inquiries (those are counted under another
category)
•Number of External Outputs

BCACC9A: Software Estimation Slide Number 132


Testing Metrics …

•Each external output is derived within the application and


provides information to the user
•This refers to reports, screens, error messages, etc.
•Individual data items within a report or screen are not
counted separately
•Number of External inquiries

BCACC9A: Software Estimation Slide Number 133


Testing Metrics …

•An external inquiry is defined as an online input that


results in the generation of some immediate software
response
•The response is in the form of an on-line output
•Number of internal logical files
•Each internal logical file is a logical grouping of data that
resides within the application’s boundary and is
maintained via external inputs

BCACC9A: Software Estimation Slide Number 134


Testing Metrics …

•Number of external interface files


•Each external interface file is a logical grouping of data that
resides external to the application but provides data that
may be of use to the application

BCACC9A: Software Estimation Slide Number 135


Maintenance Metrics

•Software Maturity Index (SMI) → Provides an indication of


the stability of a software product based on changes that
occur for each release
•SMI = [MT - (Fa + Fc + Fd)]/MT where
•MT = #modules in the current release
•Fa = #modules in the current release that have been
added

BCACC9A: Software Estimation Slide Number 136


Maintenance Metrics …

•Software Maturity Index (SMI) → Provides an indication of


the stability of a software product based on changes that
occur for each release …
•Fc = #modules in the current release that have been
changed
•Fd = #modules from the preceding release that were
deleted in the current release

BCACC9A: Software Estimation Slide Number 137


Maintenance Metrics …

•As the SMI (i.e., the fraction) approaches 1.0, the software
product begins to stabilize
•The average time to produce a release of a software
product can be correlated with the SMI.

BCACC9A: Software Estimation Slide Number 138


Attributes of Software Metrics

•The beginning of constructing effective software metrics is


done by selecting appropriate measures and the process
management.
•It is very difficult to arrive at one single value or attribute
to evaluate the software.
•So, the stress is on to build up a variety of measures and
the concerned personnel will frame metrics based on
these measures.

BCACC9A: Software Estimation Slide Number 139


Attributes of Software Metrics

•Once the appropriate measures is selected, process of


management is required to those measures.

BCACC9A: Software Estimation Slide Number 140


Attributes of Software Metrics

•The process of management has following attributes


•Appropriate choice of process management for
software
•Appropriate methods of data collection
•Appropriate mathematical tools for compilation of
measure
•Resultant measurement that provides an insight into
the relevant aspect of the software

BCACC9A: Software Estimation Slide Number 141


Attributes of Software Metrics

•The stated attributes can be measured if the measurement


process works on the following principles
•The objectives of measurement are clear
•Data collection, analysis and computation are
automated to eliminate bias.
•Valid statistical techniques are used for data collection
and computation of measures.
•Simple to learn

BCACC9A: Software Estimation Slide Number 142


Attributes of Software Metrics

•The stated attributes can be measured if the measurement


process works on the following principles …
•Easy to compute
•Unambiguous
•Clear in objective terms for application
•Independent of technology, architecture or
programming languages
•Simple and computable

BCACC9A: Software Estimation Slide Number 143


Attributes of Software Metrics

•The stated attributes can be measured if the measurement


process works on the following principles …
•It should be relatively easy to learn how to derive the
metric, and its computation should not demand
inordinate effort or time
•Empirically and intuitively persuasive

BCACC9A: Software Estimation Slide Number 144


Attributes of Software Metrics

•The stated attributes can be measured if the measurement


process works on the following principles …
•The metric should satisfy the engineer’s intuitive
notions about the product attribute under
consideration
•Consistent and objective
•The metric should always yield results that are
unambiguous

BCACC9A: Software Estimation Slide Number 145


Attributes of Software Metrics

•The stated attributes can be measured if the measurement


process works on the following principles …
•Consistent in the use of units and dimensions
•The mathematical computation of the metric should use
measures that do not lead to bizarre combinations of
units
•Programming language independent

BCACC9A: Software Estimation Slide Number 146


Attributes of Software Metrics

•The stated attributes can be measured if the measurement


process works on the following principles …
•Metrics should be based on the analysis model, the
design model, or the structure of the program itself
•An effective mechanism for high – quality feedback
•The metric should lead to a higher-quality end product

BCACC9A: Software Estimation Slide Number 147


Metrics Database

•A disciplined SE approach using engineering principles


assesses the following entities: -
•Method
•Process
•Environment
•People
•Technology
•Software Product

BCACC9A: Software Estimation Slide Number 148


Metrics Database

•Software organizations build metrics for main entities such


as software product, development process by collecting
data through direct and indirect measures from successful
internal projects.
•The measures are then used to build relevant metrics as
indicators or guidelines for assessment.

BCACC9A: Software Estimation Slide Number 149


Metrics Database

•Metrics are built for three main entities:


•Process → Process metrics are used for process
improvement.
•Product → Product metrics are used for product
improvement and to distinguishing factors.
•Project → Project metrics are used for software project
planning and control.

BCACC9A: Software Estimation Slide Number 150


Metrics Database

•The common entities for which a metrics database is


developed are
•Process
•Project(i.e. Product)
•Quality

BCACC9A: Software Estimation Slide Number 151


Metrics Database

•The metrics database is used to assess and monitor the


progress of the software development, identify problem
areas that may become critical, manipulate activities for
effective resource usage and support team effort to meet
the project deadline.

BCACC9A: Software Estimation Slide Number 152


Estimation of Software

•Size
•Effort and Schedule
•Impact of Risk Estimation on Effort and Time
•Impact of Schedule and Manpower Constraint

BCACC9A: Software Estimation Slide Number 153


Estimation of Size of Software

•Process Metrics
•Documentation
•Line of Code
•Reviews
•Quality Metrics

BCACC9A: Software Estimation Slide Number 154


Expert Judgement

• It is top down management technique.


• Expert judgement relies on the judgement, background and
business sense of one or more key people in the organization.
• An expert might arrive at the cost estimate in the following
manner.
• The system to be developed is a process control system
similar to the one that was developed one year ago at a cost
of 10 lakhs, we made a respectable profit with that project.
• The new project has 25% more activity and hence we
consume more time and cost to develop and so on.

BCACC9A: Software Estimation Slide Number 155


Disadvantage of Expert Judgement

• The biggest quality on expert judgement name the experience


can also be liability.
• The expert may be confident that the project is similar with the
previous one but may have overlooked some factor that make
the new project significantly different or the expert making the
judgement or the estimate may not have the experience with
the project similar to the present one.
• To overcome this, group of experts some time prepare a
consensus estimates.

BCACC9A: Software Estimation Slide Number 156


Disadvantage of Expert Judgement …

•They try to minimize the individual oversights and lack of


familiarity with the particular project.
•This effort neutralizes the present biases and desire to gain
control through an overly optimistic estimate.

BCACC9A: Software Estimation Slide Number 157


Delphi Cost Estimation Technique

•Developed at RAND Corporation in 1951.


•Developed by Norman Dalkey and Olaf Helmer.
•Structured communication technique or method
•Developed as a systematic, interactive forecasting method
which
•Relies on a panel of experts

BCACC9A: Software Estimation Slide Number 158


Delphi Cost Estimation Technique …

•The technique can also be adapted for use in one to one


i.e. face-to-face meetings
•Used for business forecasting
•Delphi is based on the principle that forecasts (or
decisions) from a structured group of individuals / experts
are more accurate than those from unstructured groups.

BCACC9A: Software Estimation Slide Number 159


Delphi Cost Estimation Technique …

•The experts answer questionnaires in two or more rounds.


•After each round, a facilitator provides an anonymous
summary of the expert’s forecasts from the previous round
as well as the reasons they provided for their judgments.
•Experts are encouraged to revise their earlier answers in
light of the replies of other members of their panel.

BCACC9A: Software Estimation Slide Number 160


Delphi Cost Estimation Technique …

•During this process the range of the answers will decrease


and the group will converge towards the "correct" answer.
•The process is stopped after a predefined stop criterion
•Number of rounds
•Achievement of consensus
•Stability of results
•The mean or median scores of the final rounds determine
the results

BCACC9A: Software Estimation Slide Number 161


Features of Delphi Cost Estimation Technique

•Anonymity (Hiding the identity) of the participants


•Structured flow of information
•Regular feedback
•Role of the facilitator

BCACC9A: Software Estimation Slide Number 162


Anonymous Participants

•All participants remain anonymous.


•Their identity is not revealed, even after the completion of
the final report. This prevents
•The Authority
•Personality
•Reputation of participants
from dominating others in the process.

BCACC9A: Software Estimation Slide Number 163


Anonymous Participants …

•Frees participants from their


•Personal Biases
•Allows free expression of opinions
•Encourages open critique
•Facilitates admission of errors when revising earlier
judgments

BCACC9A: Software Estimation Slide Number 164


Structured Flow of Information

•The initial contributions from the experts are collected in


the form of answers to questionnaires and their comments
to these answers.
•The panel director controls the interactions among the
participants by processing the information and filtering out
irrelevant content.
•This avoids the negative effects of face-to-face panel
discussions and solves the usual problems of group
dynamics.

BCACC9A: Software Estimation Slide Number 165


Regularity in Feedback

•The Delphi Method allows participants to comment on the


responses of others, the progress of the panel as a whole,
and to revise their own forecasts and opinions in real time.

BCACC9A: Software Estimation Slide Number 166


Role Played by Facilitator

•The person coordinating the Delphi method is usually


known as a facilitator or Leader, and facilitates the
responses of their panel of experts, who are selected for a
reason, usually that they hold knowledge on an opinion or
view.
•The facilitator sends out questionnaires, surveys etc. and if
the panel of experts accept, they follow instructions and
present their views.

BCACC9A: Software Estimation Slide Number 167


Role Played by Facilitator …

•Responses are collected and analyzed, then common and


conflicting viewpoints are identified.
•If consensus is not reached, the process continues through
thesis and antithesis, to gradually work towards synthesis,
and building consensus.

BCACC9A: Software Estimation Slide Number 168


Implementation of Delphi Estimation Technique

• Choosing a Facilitator
• Identifying Your Experts
• Defining the Problem i.e. questionaire
• First Round of Evaluation of Questions
• Second Round of Evaluation of Questions
• Third Round of Evaluation of Questions
•…
• Act on the findings

BCACC9A: Software Estimation Slide Number 169


Implementation of Delphi Estimation Technique

• Choosing a Facilitator. The initial step of the Delphi Method is


to picking your facilitator. It is suggested to do...
• Identifying Your Experts. The success of your Delphi method
depends upon a board of specialists that are...
• Defining the Problem. Next step revolves around defining
what issues you are looking to comprehend via Delphi Method.
• Ask first round of Questions. In the first round, you need to
pose general questions to pick up an expansive...

BCACC9A: Software Estimation Slide Number 170


COCOMO – I Model

•Constructive Cost Model.


•Propose by Barry Boehm in 1981.
•Good for software engineering started using OOD (Object
Oriented Development), component technology, reusable
strategy and automated tool for code generation, testing
etc.

BCACC9A: Software Estimation Slide Number 171


COCOMO – I Model …

•COCOMO model uses exponential components in


estimation as the size of the software increases, the
development team size increases. Increasing system
development overhead namely communication,
configuration management, integration etc.
•COCOMO considers software product attributes,
development team attributes and project management
attributes and weigh them suitably to improve the
estimation.

BCACC9A: Software Estimation Slide Number 172


COCOMO – I Model …

•The latest version of COCOMO is COCOMO-II, released in


1997. The model used 161 data points and uses Bayesian
Statistical Analysis of Empirical Data of completed project
and expert opinion.
•Regression model based on LOC i.e. number of Lines of
Code.
•Procedural Cost Estimate Model for Software Projects.

BCACC9A: Software Estimation Slide Number 173


COCOMO – I Model …

•Used as the process of reliably predicting the various


parameters associated with making a project like
•Size
•Effort
•Cost
•Time
•Quality

BCACC9A: Software Estimation Slide Number 174


COCOMO – I Model …

•COCOMO is one of the most generally used software


estimation models
•COCOMO predicts the efforts and schedule of a software
product based on the size of the software

BCACC9A: Software Estimation Slide Number 175


Types of Projects in COCOMO – I Model

•Types of Project in COCOMO – I Model


•Organic
•Semidetached
•Embedded

BCACC9A: Software Estimation Slide Number 176


Organic Projects in COCOMO – I Model

•The project deals with developing a well-understood


application program
•The size of the development team is reasonably small
•Team members are experienced in developing similar
types of projects

BCACC9A: Software Estimation Slide Number 177


Organic Projects in COCOMO – I Model …

•The Examples are


•Business System
•Inventory Management System
•Data Processing System

BCACC9A: Software Estimation Slide Number 178


Semidetached Projects in COCOMO – I Model

•The development consists of a mixture of experienced and


inexperienced staff.
•Team members may have limited experience in related
systems but may be unfamiliar with some aspects of the
order being developed.

BCACC9A: Software Estimation Slide Number 179


Semidetached Projects in COCOMO – I Model …

•The Example are


•Developing a new Operating System (OS)
•Database Management System (DBMS)
•Complex Inventory Management System

BCACC9A: Software Estimation Slide Number 180


Embedded Projects in COCOMO – I Model

•The software being developed is strongly coupled to


complex hardware
•Stringent regulations on the operational method exist
•The Examples are
•ATM
•Air Traffic Control System

BCACC9A: Software Estimation Slide Number 181


Embedded Projects in COCOMO – I Model

•The software being developed is strongly coupled to


complex hardware
•Stringent regulations on the operational method exist
•The Examples are
•ATM
•Air Traffic Control System

BCACC9A: Software Estimation Slide Number 182


Projects in COCOMO – I Model

•Boehm provides a different set of expression to predict


effort (in a unit of person month)and development time
from the size of estimation in KLOC(Kilo Line of code)
efforts estimation takes into account the productivity loss
due to
•Holidays
•Weekly off
•Refreshment breaks etc.

BCACC9A: Software Estimation Slide Number 183


Cost Factors in COCOMO – I Model

•The cost factors are divided into four categories.


•They are
•Product
•Hardware
•Personnel
•Project

BCACC9A: Software Estimation Slide Number 184


Attributes of Cost Factors in COCOMO – I Model

•Personnel i.e. a1
•Project i.e. a2
•Product i.e. b1
•Hardware i.e. b2

BCACC9A: Software Estimation Slide Number 185


Attributes of Cost Factors in COCOMO – I Model

•Product i.e. b1
•Required software reliability extent
•Size of the application database
•The complexity of the product

BCACC9A: Software Estimation Slide Number 186


Attributes of Cost Factors in COCOMO – I Model

•Hardware i.e. b2
•Run-time performance constraints
•Memory constraints
•The volatility of the virtual machine environment
•Required turnabout time

BCACC9A: Software Estimation Slide Number 187


Attributes of Cost Factors in COCOMO – I Model

● Personnel i.e. a1
● Analyst capability
● Software engineering capability
● Applications experience
● Virtual machine experience
● Programming language experience

BCACC9A: Software Estimation Slide Number 188


Attributes of Cost Factors in COCOMO – I Model

● Project i.e. a2
● Use of software tools
● Application of software engineering methods
● Required development schedule

BCACC9A: Software Estimation Slide Number 189


Product Attributes of Cost Factors in COCOMO – I Model

Product Attributes i.e. b1


Very Low Low Normal High Very High Extra High
RELY 0.75 0.88 1.00 1.15 1.40
DATA 0.94 1.00 1.08 1.16
CPLX 0.70 0.85 1.00 1.15 1.30 1.65

BCACC9A: Software Estimation Slide Number 190


Hardware Attributes of Cost Factors in COCOMO – I
Model

Hardware Attributes i.e. b2


Very Low Low Normal High Very High Extra High
TIME 1.00 1.11 1.30 1.66
STOR 1.00 1.06 1.21 1.56
VIRT/ VOL 0.87 1.00 1.15 1.30
TURN 0.87 1.00 1.07 1.15

BCACC9A: Software Estimation Slide Number 191


Personal Attributes of Cost Factors in COCOMO – I Model

Personal Attributes i.e. a1


Very Low Low Normal High Very High Extra High
ACAP 1.46 1.19 1.00 0.86 0.71
AEXP 1.29 1.13 1.00 0.91 0.82
PCAP 1.42 1.17 1.00 0.86 0.70
VEXP 1.21 1.10 1.00 0.90
LEXP 1.14 1.07 1.00 0.95

BCACC9A: Software Estimation Slide Number 192


Project Attributes of Cost Factors in COCOMO – I Model

Project Attributes i.e. a2


Very Low Low Normal High Very High Extra High
MODP 1.24 1.10 1.00 0.91 0.82
TOOL 1.24 1.10 1.00 0.91 0.83
SECD 1.24 1.10 1.00 1.04 1.10

BCACC9A: Software Estimation Slide Number 193


COCOMO – I Model

● Boehm says that the , software cost estimation should be


done through three stages
● Basic Model
● Intermediate Model
● Detailed Model

BCACC9A: Software Estimation Slide Number 194


COCOMO – I Model: Basic Model

•The basic COCOMO model provide an accurate size of the


project parameters.
•The expressions for the basic COCOMO estimation model
are
•Effort=a1*(KLOC) *a2 Man Month Effort (or Person
Month)
•Tdev=b1*(Effort)*b2 Months

BCACC9A: Software Estimation Slide Number 195


COCOMO – I Model: Basic Model

•Where
•KLOC is the estimated size of the software product
indicate in Kilo Lines of Code,
•a1,a2,b1,b2 are constants for each group of software
products

BCACC9A: Software Estimation Slide Number 196


COCOMO – I Model: Basic Model

•Where
•Tdev is the estimated time to develop the software,
expressed in months
•Effort is the total effort required to develop the
software product, expressed in Man Month Effort or
Person Month (PM).

BCACC9A: Software Estimation Slide Number 197


COCOMO – I Model: Basic Model: Effort Estimation

•The expression for the estimation of the effort based on


the code size are
•Organic
•Effort = 2.4*(KLOC)*1.05 MME or PM
•Semi-detached
•Effort = 3.0*(KLOC)*1.12 MME or PM
•Embedded
•Effort = 3.6*(KLOC)*1.20 MME or PM

BCACC9A: Software Estimation Slide Number 198


COCOMO – I Model: Basic Model: Estimation of
Development Time

•The expression for the estimation of the development


time based on the effort are
•Organic
•Tdev = 2.5*(Effort)*0.38 Months
•Semi-detached
•Tdev = 2.5*(Effort)*0.35 Months
•Embedded
•Tdev = 2.5*(Effort)*0.32 Months

BCACC9A: Software Estimation Slide Number 199


COCOMO – I Model: Basic Model

•Suppose a project was estimated to be 500 KLOC. Calculate


the effort and development time for each of the three
model i.e., organic, semi-detached & embedded.
•Organic
•Effort = 2.4*(500)*1.05 MME or PM = 1260
•Organic
•Tdev = 2.5*(1260)*0.38 Months= 1197

BCACC9A: Software Estimation Slide Number 200


COCOMO – I Model: Working

•Get an initial estimate of the development effort from


evaluation of thousands of delivered lines of source code
(KDLOC).
•Determine a set of 15 multiplying factors from various
attributes of the project.
•Calculate the effort estimate by multiplying the initial
estimate with all the multiplying factors i.e., multiply the
values in step1 and step2.

BCACC9A: Software Estimation Slide Number 201


COCOMO – II Model

•The COCOMO-II Model uses 3 estimation models to


estimate effort and cost models are as follows:-
•Application Suite Model
•Early Designed Level Model
•Post Architectural Model

BCACC9A: Software Estimation Slide Number 202


COCOMO – II Model: Application Suite Model

•The model is used where software can be decomposed


into several components and each components can be
described in object point.
•The objects are screen, report and 3GL components which
are easy to identify and count when the software system is
split into sub-system components.
•Object point should be noted that are not object classes.

BCACC9A: Software Estimation Slide Number 203


COCOMO – II Model: Application Suite Model …

•The candidates for the object points are screen, report and
the number of 3GL modules to supplement the 4GL code.
•The objects are given object points depending on the level
of complexities.
•The advantage of using object point is that they can be
estimated from high level design of the software and they
are only number of screen, report and 3GL modules.

BCACC9A: Software Estimation Slide Number 204


COCOMO – II Model: Application Suite Model …

•The complexity level is the judgement of the Software


Engineering.
Object Points
Objects Simple Complex Very Complex
● Screen 1 2 3
● Report 2 5 8
● 3GL Module 4 10 -

BCACC9A: Software Estimation Slide Number 205


COCOMO – II Model: Application Suite Model …

•The object point counts need modification by the way of


reduction and the software may use reusable components
and library.
•Therefore revised object point (ROP) is given as ROP =
OBJECT POINT X (100 – (% of Reuse))/100.
•For this ROP, the effort in man month is computed using
the productivity constant based on the software
development team’s experience and capacity.

BCACC9A: Software Estimation Slide Number 206


COCOMO – II Model: Application Suite Model …

Developers level of Very low Low Normal High Very High


Experience and Maturity
Productivity 4 7 13 25 50
constant(NOP per
month)

BCACC9A: Software Estimation Slide Number 207


COCOMO – II Model: Application Suite Model …

•Man Month Effort (MME)=ROP/Productivity Constant.


•Example: - Let Object Point=40, Reuse(%)=10, then find
ROP=?
•ROP=Object Point x (100 – (reuse (%)))/100 = 40*(100 –
10) / 100 = 40 * 90 / 100 = 36.

BCACC9A: Software Estimation Slide Number 208


COCOMO – II Model: Application Suite Model …

•Now, if the development team experience and maturity


level is normal, the productivity constant is 13 and hence
MME = ROP / Productivity Constant = 36 / 13 = 3 Man
Months.
•The model is used to estimate the effort at the prototype
level where the requirements are not clear.

BCACC9A: Software Estimation Slide Number 209


COCOMO – II Model

•The COCOMO-II Model uses the base equation


MME=A*(SIZE)B, Where
•MME is the Man Month Effort
•A is the Constant representing nominal productivity
•B is the Factor integrating economy/dis-economy of
scale(Also known as Scale Factor)

BCACC9A: Software Estimation Slide Number 210


COCOMO – II Model

•SIZE = KLOC (Thousand Lines of Codes).


•If B=1, the software does not have any impact on MME.
•If B<1, the MME have positive impact.
•If b>1, the MME have negative impact.

BCACC9A: Software Estimation Slide Number 211


COCOMO – II Model

•This model uses five factors for arriving at economics and


dis-economics of scale which together concludes the B-
factor.
•Precedentness i.e. PREC
•Flexibility i.e. FLEX
•Risk Resolution i.e. RESL
•Team Cohesion i.e. TEAM
•Process Maturity i.e. PMAT

BCACC9A: Software Estimation Slide Number 212


COCOMO – II Model

Factor Code Factor Name Very Low Low Normal High


PREC Precedentness 6.20 4.96 3.72 2.48
FLEX Flexibility 5.07 4.05 3.04 2.03
RESL Risk Resolution 7.07 5.65 4.24 2.83
TEAM Team Cohesion 5.48 4.38 3.29 2.19
PMAT Process Maturity 7.80 6.24 4.68 3.12

BCACC9A: Software Estimation Slide Number 213


COCOMO – II Model

•PERC i.e. Precedentness


•Understanding and experience of developing similar
software.
•If the degree of learning benefit which can be given to
new software is very low, then rating is 6.20.

BCACC9A: Software Estimation Slide Number 214


COCOMO – II Model

•FLEX i.e. Flexibility


•Flexibility measured based on the degree of freedom
and comfort level the developer has, based on the level
of conformance required to either pre – established or
customer-laid down standards, specifications, tools and
schedules.

BCACC9A: Software Estimation Slide Number 215


COCOMO – II Model

•RESL i.e. Risk Resolution


•If the organization and the software development team
has considerable experience in risk management and is
in a position to develop an RMMM plan for the project,
then the level of risk resolution is very high and the
rating value is 2.83.

BCACC9A: Software Estimation Slide Number 216


COCOMO – II Model

•TEAM i.e. Team Cohesion


•If the capacity of the organization to provide a
development team whose members will work towards
common objectives in cohesion is nominal, then the
rating value is 3.29.

BCACC9A: Software Estimation Slide Number 217


COCOMO – II Model

•PMAT i.e. Process Maturity


•This is the SEI-CMM level used for describing and
organization’s development maturity.
•If the CMM level is very low i.e. ‘1’, then the rating value
is 7.80.

BCACC9A: Software Estimation Slide Number 218


COCOMO – II Model

•Let us assume that in a given situation, the organization’s


level on these five factors is very low, then B = 0.91 + 0.01
* (6.20 + 5.07 + 7.07 + 5.48 + 7.80) = 0.91 + 0.01* 31.62
= 0.91 + 0.3162 =1.2262
•A=13, size based on FPA is 10 KLOC
•Then MME=13*(10)1.2262 = 220 Man Month

BCACC9A: Software Estimation Slide Number 219


COCOMO – II Model

•In case of the organization’s level on these five factors is


high, then
•B = 0.91 + 0.01*(2.48 + 2.03 + 2.83 + 2.19 + 3.12) = 0.91 +
0.01*12.65 = 0.91 + 0.1265 = 1.0365 = 1.04
•Then MME=13*(10)1.04 =142 Man Months

BCACC9A: Software Estimation Slide Number 220


COCOMO – II Model: Post Architectural

•There are some other factors which are relevant as they


have larger impact on MME.
•If we consider these factors, then we calculate MME which
is modified value.

BCACC9A: Software Estimation Slide Number 221


COCOMO – II Model : Post Architectural …

•There are 16 factors which are significant.


•They are
•RELY
•DATA
•CPLX
•RUSE

BCACC9A: Software Estimation Slide Number 222


COCOMO – II Model : Post Architectural …

•There are 16 factors which are significant.


•They are …
•DOCU
•TIME
•STOR
•PVOL

BCACC9A: Software Estimation Slide Number 223


COCOMO – II Model: : Post Architectural …

•There are 16 factors which are significant.


•They are …
•ACAP
•PCAP
•PCON
•AEXP

BCACC9A: Software Estimation Slide Number 224


COCOMO – II Model : Post Architectural …

•There are 16 factors which are significant.


•They are …
•PEXP
•LTEX
•TOOL
•SITE

BCACC9A: Software Estimation Slide Number 225


COCOMO – II Model: : Post Architectural …

•COCOMO-II equation for MME (Modified) = MME *


(product of ratings of 16 factors).

BCACC9A: Software Estimation Slide Number 226


COCOMO – II Model : Post Architectural …

Factor Factor Name Levels and Factors


Very Low Low Nominal High
Product Factor
RELY Software Reliability 0.82 0.92 1.00 1.10
DATA Database Size 0.80 0.90 1.00 1.14
CPLX Software Complexity 0.73 0.87 1.00 1.17
RUSE Required Reusability 0.85 0.95 1.00 1.07
DOCU Documentation 0.81 0.91 1.00 1.11

BCACC9A: Software Estimation Slide Number 227


COCOMO – II Model : Post Architectural …

Factor Factor Name Levels and Factors


Very Low Low Nominal High
Platform Factors
TIME Time Constraint on Execution NRA NRA 1.00 1.11
STOR Main Storage Constraint NRA NRA 1.00 1.05
PVOL Platform Volatility NRA NRA 1.00 1.15

BCACC9A: Software Estimation Slide Number 228


COCOMO – II Model : Post Architectural …
Factor Factor Name Levels and Factors
Very Low Low Nominal High
Personnel Factor
ACAP Analyst Capability 1.42 1.19 1.00 0.85
PCAP Programmer Capability 134 1.15 1.00 0.88
AEXP Analyst Experience 1.22 1.10 1.00 0.88
PEXP Programmer Experience 1.19 1.09 1.00 0.91
LTEX Language and Tools Experience 1.20 1.09 1.00 0.91
PCON Personnel Continuity 1.29 1.12 1.00 0.90
BCACC9A: Software Estimation Slide Number 229
COCOMO – II Model : Post Architectural …

Factor Factor Name Levels and Factors


Very Low Low Nominal High
Project Factor
TOOL Use of Software Tool 1.17 1.09 1.00 0.90
SITE Site Environment 1.22 1.09 1.00 093

BCACC9A: Software Estimation Slide Number 230


COCOMO – II Model : Post Architectural …

•RELY i.e. Software Reliability


•Failure does not cause any inconvenience, rating = very
low.
•Failure is fatal, rating is high.
•DATA i.e. Database Size
•Database size is measured as D/P, where D: database in
bytes, P: lines of codes.
•If D/P<10, Rating is very low, if D/P>1000, rating is high.

BCACC9A: Software Estimation Slide Number 231


COCOMO – II Model : Post Architectural …

•CPLX i.e. Software Complexity


•Few control options, simple, few calculations, simple
data management, then rating is very low.
•If all these are high, then rating is high.
•RUSE i.e. Required Reusability
•No requirements of reusability i.e. customized
software, then the rating is very low.
•If the reusability is substantial, then the rating is high.

BCACC9A: Software Estimation Slide Number 232


COCOMO – II Model : Post Architectural …

• DOCU i.e. Documentation


•Documentation need is standard but low, then rating is
very low.
•If documentation need is very high both pre and post
development, then rating is high.
• TIME i.e. Time Constraint on Execution
•No constraint, then rating is very low.
•Available time is almost equal to the execution time,
then rating is high.

BCACC9A: Software Estimation Slide Number 233


COCOMO – II Model : Post Architectural …

• STOR i.e. Main Storage Constraint


•No constraint due to available very high storage, then
rating is very low.
•Available storage is almost equal to required storage,
then rating is high.
• PVOL i.e. Platform Volatility
•If platform is stable, then rating is very low.
•If platform is unstable and may change rapidly, then the
rating is high.

BCACC9A: Software Estimation Slide Number 234


COCOMO – II Model : Post Architectural …

• ACAP i.e. Analyst Capability


• In experience and lack of knowledge, then the rating is very
low.
• If analyst scores high on experience then the rating is high.
• PCAP i.e. Programmer Capability
• In experience and lack of knowledge, then the rating is very
low.
• If analyst scores high on experience then the rating is high.

BCACC9A: Software Estimation Slide Number 235


COCOMO – II Model : Post Architectural …

•PCON i.e. Personnel Continuity


•Very low turnover, then the rating is high. 50% or more
would leave, then the rating is very low.
•AEXP i.e. Analyst Experience
•Minimum Experience, then the rating is very low.
•More than adequate experience then the rating is high.

BCACC9A: Software Estimation Slide Number 236


COCOMO – II Model : Post Architectural …

•PEXP i.e. Programmer Experience


•Minimum Experience, then the rating is very low.
•More than adequate experience then the rating is high.
•LTEX i.e. Language and Tools Experience
•Minimum Experience, then the rating is very low.
•More than adequate experience then the rating is high.

BCACC9A: Software Estimation Slide Number 237


COCOMO – II Model : Post Architectural …

•TOOL i.e. Use of Software Tools


•No use or occasional use, then the rating is very low.
•Sustained use of variety of tools, then the rating is high.

BCACC9A: Software Estimation Slide Number 238


COCOMO – II Model : Post Architectural …

•SITE i.e. Site Environment


•Single site, single location, not more than one or two
sponsors, then the rating is very low.
•Multiple sites, multiple partners, number of locations
but supported by good communication infrastructure,
then the rating is high.
•If problem of communication are not there, rating is
very low.

BCACC9A: Software Estimation Slide Number 239


COCOMO – II Model : Post Architectural …

•Now considering the case where all the ratings are very
low, then
•Product of all 16 ratings = 0.82* 0.80* 0.73* 0.85*
0.81* 1.42* 1.34*1.22*1.19*1.20*1.29*1.17*1.22=2.01
•MME=220*2.01=442 Man Months

BCACC9A: Software Estimation Slide Number 240


COCOMO – II Model : Post Architectural …

•Now considering the case where all the ratings are high,
then
•Product of all 16 ratings = 1.10 * 1.14 * 1.17 * 1.07 *
1.11 * 1.11 * 1.05 * 1.15 * 0.85 * 0.88 * 0.88 * 0.91 *
0.91 * 0.90 * 0.90 * 0.93 = 0.98.
•MME=142*0.98=139 Man Months

BCACC9A: Software Estimation Slide Number 241


Work Breakdown Structure

•Expert judgement and group consensus are tow down


techniques.
•The work breakdown structure is bottom up approach.
•A work breakdown structure is a hierarchical char that
accounts for an individual part of the system.
•A work breakdown structure chart indicates product
hierarchy and process hierarchy.

BCACC9A: Software Estimation Slide Number 242


Product Hierarchy

•It identifies the product component and indicates the


manner in which the components are interconnected.
•A work breakdown chart of process hierarchy identifies the
work activity and relationship among those activities using
the techniques.
•Costs are estimated by assigning cost to each individual
component in the chart and then adding the cost.

BCACC9A: Software Estimation Slide Number 243


Product Hierarchy …

Product

Input Transform Output


System Sub System System

Read Data Result


Parser
Module Validator Computer

Slide Number
BCACC9A: Software Estimation
244
Process Hierarchy

• Processes can be broken down into components like project


management, development, system test, services and quality
assurance, which can be further broken down into sub
components. Some planners uses both product and project
hierarchy of work breakdown structure chart for cost
estimation.
• The primary advantage of this technique is, it identifies the
account for various process and product factors and in making
explicit exact cost which are included in the estimates.

BCACC9A: Software Estimation Slide Number 245


Process Hierarchy

BCACC9A: Software Estimation Slide Number 246


Process Hierarchy …

Process

Project Develop System Quality


Services
Management ment Test Assurance

Plan Review
and
Audit
Data Result
Validator Computer Slide Number
BCACC9A: Software Estimation
247
Process Hierarchy …

Slide Number
BCACC9A: Software Estimation
248
Cost Estimation

•Human Resource Cost


• Skills
• Knowledge
• Numbers

BCACC9A: Software Estimation Slide Number 249


Cost Estimation

•Development Resource Cost


•Platform
•Software
•Tools

BCACC9A: Software Estimation Slide Number 250


Cost Estimation

•Personal Cost
•Hardware Cost
•Software Cost
•Training Cost
•Marketing Cost
•Outsourcing Cost

BCACC9A: Software Estimation Slide Number 251


Planning the Development Process

•The first consideration is to define a product life cycle


model.
•The software life cycle includes all activities required to
define, develop, test, deliver, operate and maintain a
software product.

BCACC9A: Software Estimation Slide Number 252


Planning the Development Process

•The Life Cycle Model includes


•Phased Model
•Cost Model
•Prototype Model

BCACC9A: Software Estimation Slide Number 253


Phased Life Cycle Model

• In phased life cycle model segment, the software life cycle is a


series of successive activities.
• Each phase requires well defined input information, neutralizes
well defined processes and result in well defined product.
• Planning and requirement definition are two major activities of
analysis phase.
• They include understanding the customer’s problem by
performing the feasibility study, developing a recommended
study, developing the acceptance criteria and planning the
development process.

BCACC9A: Software Estimation Slide Number 254


Phased Life Cycle Model

• Requirement definition is concerned with identifying the basic


function of the software component. In a hardware / software
people system, emphasis is placed on what the software will
exactly do and what are its constraints. The product
requirement definition is the specification that describe the
processing environment, the required software function,
performance constraint of the software i.e. size, speed,
machine, configuration etc., exception handling, subsets and
implementation priorities, probable changes and light
modification and the acceptance criteria for the software.

BCACC9A: Software Estimation Slide Number 255


Phased Life Cycle Model

•In phase model, the software design follows analysis.


Architectural design includes identifying the software
components, decoupling and decomposing them into
processing modules and conceptual data structure and
specifying the interconnection among the components.
Detail design involves adaptation of existing code,
modification of standard algorithm, invention of new
algorithms, design of data representation and packaging of
the new software products.

BCACC9A: Software Estimation Slide Number 256


Phased Life Cycle Model

•The implementation phase involves transaction of design


specification into source code and debugging,
documentation and unit testing of source code. Errors
discovered during the implementation test includes the
errors in the data interfaces between routines, logical
errors in the algorithm, errors in the data structure layout
and failures to account for various processing cases.

BCACC9A: Software Estimation Slide Number 257


Phased Life Cycle Model

• In addition, source code may contain requirement errors that


indicate the failure to capture the customer needs, in the
requirement document, design error that reflect failure to
translate requirement into correct design specification and an
implementation errors that reflect the failure to correctly
translate design specification into source code. One of the
primary goal of phased approval to software development is to
eliminate requirement and design errors from an evolving
software product before implementation begins.

BCACC9A: Software Estimation Slide Number 258


System Testing

•System Testing involve two types of testing. They are


•Integration
•Acceptance

BCACC9A: Software Estimation Slide Number 259


Documentation

•Documentation is an important component of software.


•It can be a paper or electronic document. It could be part
of software and available on line.
•It could be delivered separately and available offline.

BCACC9A: Software Estimation Slide Number 260


Documentation

•A complex software needs normally following


documentation: -
• System Manual
• User Manual
• System Maintenance Manual
• Operations Manual

BCACC9A: Software Estimation Slide Number 261


System Manual

• It provides information about system scope, design,


architecture, system flow, technology details, interfaces used in
the system etc.
• It is also backed by the requirement analysis and modeling,
specification, important functions and features that the system
provides.
• The source code is a part of system manual, although in
general it is not given to the customer.
• Only executables of the entire system is delivered,
demonstrated and implemented.

BCACC9A: Software Estimation Slide Number 262


User Manual

•System user manual is an instruction for the users of the


system.
•It provides screen by screen, interface by interface, file by
file usage instructions and its impact elsewhere.
•It is also initially used for training as well as guiding users
of the system.

BCACC9A: Software Estimation Slide Number 263


System Maintenance Manual

•It deals with the routine system maintenance.


•It is used by the system administrator and coordinator to
cater the problems like user problems, system problems,
maintenance of files, databases, backups, security issues,
system logs etc.

BCACC9A: Software Estimation Slide Number 264


Operation Manual

•It deals with system operations as it functions.


•It provides guidelines to users to understand the
implications of any action for the system.
•It provides transparency and insight as to how the system
operates or responds to the action taken by the user.

BCACC9A: Software Estimation Slide Number 265


Planning Software Project

• Defining the Problem


• Planning is a primary stage of the development.
• Lack of planning is the cause of schedule slippage, cost over-runs,
poor quality and a high maintenance cost for the software.
• Careful planning is required for both development process and the
work product in order to avoid these problem.
• Develop a definitive statement of the problem to be solved, which
includes the description of the present situation, problem constraints
and the statement of the goal to be achieved.

BCACC9A: Software Estimation Slide Number 266


Planning Software Project …

• The problem statement should we trace in customer


terminology.
• Justify a computerized strategy solution for the problem. Not
the customer problem from the customer point of view. For
example Inventory Problem, Payroll Problem etc. and not as
the problem of sorting algorithm and relational database.
• Identify the functions to be provided by and the constraints on
the hardware system, the software sub system and the people
sub system.

BCACC9A: Software Estimation Slide Number 267


Planning Software Project …

•The interaction among sub system must be established


and development and operational constraints must be
determined by each subsequent sub system.
•The function to be performed by each major sub system
must be identified.

BCACC9A: Software Estimation Slide Number 268


Goals and Requirement for Planning Software Project …

• Determine system level goals and requirement for the


development process and the work product given a consize
statement of the problem and an indication of the constraint
that exist for a solution, preliminary goals and requirement
can be formulated.
• Goals are target to be achieved.
• Goals are applied to both the development process and the
work product.
• Goals can either be qualitative or quantitative.

BCACC9A: Software Estimation Slide Number 269


Goals and Requirement for Planning Software Project …

•High level goals and requirement can often be explained in


terms of quality attribute that the system should process.

BCACC9A: Software Estimation Slide Number 270


Goals and Requirement for Planning Software Project …

•The quality attributes are as follows:-


•Portability
•Reliability
•Efficiency
•Accuracy
•Errors
•Robustness
•Correctness

BCACC9A: Software Estimation Slide Number 271


Qualitative Goal Process

•The development process should enhance the professional


skills of the quality and assurance personnel.

BCACC9A: Software Estimation Slide Number 272


Quantitative Goal Process

•The system should be delivered on time.


•The system should reduce the cost of the transaction.

BCACC9A: Software Estimation Slide Number 273

You might also like