KEMBAR78
Software Engineering Chapter 4 Part 1 Euu | PPTX
Software Project Estimation
Chapter- 4 – part -1
Management Spectrum
• The management spectrum describes the management/hierarchy of people associated with a
software project.
• How to make a software project successful.
• Effective Software Project Management focuses on the four P’s:
1. People
2. Product
3. Process
4. Project
• The order is not arbitrary.
The People
• People factor is very much important in the
process of software development.
• It includes:
– project manager,
– team leaders,
– stakeholders,
– analysts, and
– other IT professionals.
• Organizations achieve high levels of maturity
in the people management area.
• There are following areas for software people
like,
– recruiting,
– performance management,
– training,
– compensation,
– career development,
– workgroup development, and
– team/culture development
Stakeholders
• Senior managers who define the business issues that often have significant influence on the
project.
• Project (technical) managers who must plan, motivate, organize, and control the practitioners
who do software work.
• Practitioners who deliver the technical skills that are necessary to engineer a product or
application.
• Customers who specify the requirements for the software to be engineered
• End-users who interact with the software once it is released for production use.
Product
• As the name inferred, this is the deliverable or the result of the project.
• The product can consist of both tangible (that can be clearly seen to exist) or intangible (difficult to
describe, understand or measure) such as shifting the company to a new place or getting a new
software in a company.
• Before a project can be planned, the product objectives and scope should be identified.
• Objectives identify the overall goals for the product without considering how these goals will be
achieved.
• Scope identifies the primary data, functions and behaviors that categorize the product.
• 4. It identifies cost, risk and realistic break downs of project task.
Process
• It regulates how the team will go about its development in the respective time period. The Process
has several steps involved like, documentation phase, implementation phase, deployment phase,
and interaction phase.
• The process model is the plan to be selected depending on following factors
– a) Customers and developers.
– b) Characteristics of product itself.
– c) Project environment of software team.
• Regardless of the size and type of project, there are small number of framework activities that
are applicable to all of them.
• There are also umbrella activities like SQA, that occur throughout the system.
Project
• We conduct planned and controlled software projects for one primary reason-it is the only
known way to manage complexity.
• A software project manager, who build the product must avoid a set of common warning signs,
understand the critical success factors that lead to good project management.
• It include all and everything of the total development process and to avoid the project failure.
Metrics For Size Estimation In Software Engineering
• Project size estimation is a crucial
aspect of software engineering, as it
helps in planning and allocating
resources for the project.
• If this is estimated accurately then all other
parameters like effort, duration, cost, etc can
be determined easily.
• If a software company maintains simple
record , a table of size oriented
measurement ill be shown as :
1. project alpha: 12,100 lines of code were developed
2. with 24 person-months of effort
3. at a cost 0f $$168,000.
4. it indicates that 365 pages of documentation were
developed,
5. 134 error were recorded before the software was
released and
6. 29 defects were encountered after release to the
customer within the first year of the operation.
• At present two techniques that are used to estimate project size are:
1.Lines of code or LOC
2.Function point
• Lines of code
• Lines of code or LOC is the most popular and used metrics to estimate size.
1. LOC determination is simple as well.
2. LOC measures the project size in terms of number of lines of statements or instructions
written in the source code.
3. In LOC count, comments and headers are ignored.
• Advantages of LOC
1. Simple to measure
• Disadvantages of LOC
1. proper estimation may not be possible. Estimation of accurate LOC is only possible once the
complete code has been developed.
2. This metrics will vary to a large extent from programmer to programmer. An experienced
professional may write same logic in less number of lines than a novice programmer.
3. As project planning needs to be done before the development work begins so this metrics is
of little use for project managers.
Function point metrics
• Function point metrics overcomes many of the shortcomings of LOC.
• Function point metrics proposes that size of the software project is directly dependent on various
functionalities it supports.
• More the features supported the more would be the size.
• This technique helps determine size of the project directly from the problem specification so is
really helpful to project managers during project planning while determining size.
• The steps in function point analysis are:
1. Count the number of functions of each proposed type.
2. Compute the Unadjusted Function Points(UFP).
3. Find Total Degree of Influence(TDI).
4. Compute Value Adjustment Factor(VAF).
5. Find the Function Point Count(FPC).
• Count the number of functions of each
proposed type:
1. External Inputs: Functions related to data
entering the system.
2. External outputs: Functions related to data
exiting the system.
3. External Inquiries: They lead to data
retrieval from the system but don’t change
the system. E.g online i/p that result in
online o/p
4. Internal Files: Logical files maintained
within the system. Log files are not
included here.
5. External interface Files: These are logical
files for other external storage media
applications which are used by our system.
• Compute the Unadjusted Function Points(UFP).
• Categorize each of the five function types like simple,
average, or complex based on their complexity. Multiply
the count of each function type with its weighting factor
and find the weighted sum. The weighting factors for
each type based on their complexity are as follows:
• Find Total Degree of Influence: Use the general
characteristics’ of a system
1. Data Communications,
2. Distributed Data Processing,
3. Performance,
4. Heavily Used Configuration,
5. Transaction Rate,
6. On-Line Data Entry,
7. End-user Efficiency,
8. Online Update,
9. Complex Processing Reusability,
10. Installation Ease,
11. Operational Ease,
12. Multiple Sites and
13. Facilitate Change.
• Each of the above characteristics is evaluated on
a scale of 0-5.
• Compute Value Adjustment Factor(VAF): Use the following
formula to calculate VAF
• VAF = (TDI * 0.01) + 0.65
•
• Find the Function Point Count: Use the following formula
to calculate FPC
• FPC = UFP * VAF
Project Cost Estimation In Software Engineering
• it is used to find out the cost estimates.
• The cost estimate is the financial spend that is done on the efforts to develop and test software
in Software Engineering.
• Cost estimation models are some mathematical algorithms or parametric equations that are
used to estimate the cost of a product or a project.
Heuristic Technique
• In this technique, the relationship among different project parameters is expressed using
mathematical equations. The popular heuristic technique is given by Constructive Cost Model
(COCOMO). This technique is also used to increase or speed up the analysis and investment
decisions.
• Static, Single Variable estimation Models: When a model makes use of single variables to
calculate desired values such as cost, time, efforts, etc. is said to be a single variable model.
The basic COCOMO model is used .The most common equation is:
• Estimated Cost C= a1 * eb
• Static, Multivariable Models: These models are based on method (1), they depend on
several variables describing various aspects of the software development environment.
• Estimated Cost C= a1 * eb
+a2 * eb
+……..
• The intermediate COCOMO model is considered perfect for multivalued models.
Analytical estimation
• Analytical estimation is a type of technique that is used to measure work.
• In this technique, firstly the task is divided or broken down into its basic component operations or
elements for analyzing.
• Second, if the standard time is available from some other source, then these sources are applied to each
element or component of work.
• Third, if there is no such time available, then the work is estimated based on the experience of the work.
• In this technique, results are derived by making certain basic assumptions about the project. Hence, the
analytical estimation technique has some scientific basis.
• Halstead’s software science is based on an analytical estimation model.
• Halstead’s software science.
• Token Count
• n1 = count of unique operators.
n2 = count of unique operands.
N1 = count of total occurrences of operators.
N2 = count of total occurrence of operands.
• In terms of the total tokens used, the size of the program can be expressed as N = N1 + N2
• Halstead metrics are:
• Program Volume (V)
• The unit of measurement of volume is the standard unit for size "bits." It is the actual size of a program
if a uniform binary encoding for the vocabulary is used.
• V=N*log2n
• Program Level (L)
• The value of L ranges between zero and one, with L=1 representing a program written at the highest
possible level (i.e., with minimum size).
• L=V*/V
• Program Difficulty
• The difficulty level or error-proneness (D) of the program is proportional to the number of the unique
operator in the program.
• D= (n1/2) * (N2/n2)
• Programming Effort (E)
• The unit of measurement of E is elementary mental discriminations.
• E=V/L=D*V
main ()
{
int a,b,c, avg;
scanf(%d %d %d", &a, &b, &c);
avg = (a+b+c)/3;
printf("avg = %d", avg);
}
Calculate the estimated length and program volume.
Unique operators -> main, (), {, int, scanf, &, ,, ;, =, +, /, printf
Unique operands -> a, b, c, avg, 3, %d%d%d, avg=%d
Solution 1: η1 = 12 η2 = 07 η=19
N1=27. N2=15. N=42
Ex-1
Calculate the estimated program length and volume.
= 12 log 2 12 + 7 log 2 7 = 62.67
Volume: V=42* log 2 19 =178.4
Difficulty: D=
Effect: E=12.85*178.4=2292.44
Time required to program T = 2292.44 / 18=127.357 sec
Number of delivered bugs B = 2292.44 2/3
/ 3000 = 0.05
Ex-2
Void swap (int a[ ], int i)
{
int temp;
Temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
We first find out the operands and operators from above function along with their occurrences.
N = N1 + N2 -> = 16 +21 = 37 -> N = 37
n = n1 + n2 -> = 5 + 9 = 14 -> n = 14
Estimated length = n1 log2 n1 + n2 log2 n2
= 5 log 5 + 9 log 9
= 5 * 2.32 + 9 * 2.19 = 31.37
Estimated length = 31.37
Volume = N * log n
= 37 * log (14) = 37 * 2.63 = 97.64
Volume (V) = 97.64
Ex-3 if (x>5)
{
x= x + 2;
if (x < 7)
{
x=0;
}
}
N1 = 15 , N2 = 9
n1 = 9 , n2 = 5
N1 =15, N2 =9
n1 =9, n2 =5
TotalLength(N)
N=N1 +N2 =15+9=24
Vocabulary(n)
n=n1 +n2 =9+5=14
N/N
N=n1log2 n1+n2 log2 n2
=9log2 9+5log2 5
=9log10 9/0.3010+5log10 5/0.3010
=9x(3.17)+5x(2.32)
=28.53+116
=40.13
EstimatedLength=N/N=40.13/24=1.67
Volume= Nlog2 n
=24log2 14
=24xlog10 14/0.3010
=24x3.807=91.36
D=N1/2xN2 /n2
= 9/2x9/5=81/10=8.1
Effort=V*D
=91.36x8.1=740.016
Empirical Estimation techniques.(based on experiments and practical
experience, not on ideas)
• Empirical estimation is a technique or model in which empirically derived formulas are used for
predicting the data that are a required and essential part of the software project planning step.
• These techniques are usually based on the data that is collected previously from a project and also
based on some guesses, prior experience with the development of similar types of projects, and
assumptions.
• In this technique, an educated guess of project parameters is made. Hence, these models are based
on common sense. For example Delphi technique and Expert Judgment technique.
Delphi Technique
• the Delphi Technique is used to make decisions about complex issues based on individual opinions.
1. In this approach, the coordinator provides each estimator with a copy of the software requirements
specification (SRS) document and a form for recording his cost estimate.
2. Estimators complete their individual estimates anonymously and submit to the coordinator.
3. In their estimates, the estimators mention any unusual characteristic of the product which has
influenced his estimation.
4. The coordinator prepares and distributes the summary of the responses of all the estimators, and
includes any unusual rationale noted by any of the estimators.
5. Based on this summary, the estimators re-estimate. This process is iterated for several rounds.
6. However, no discussion among the estimators is allowed during the entire estimation process.
Expert Judgment technique
• Expert judgment is when you call in an expert to get a skilled opinion. It's an estimation
methodology for project planning that relies on the expert's opinion to estimate quantitative
project details
• However this is subjected to human error and individual bias.
• Expert may overlook some factors.
• Expert may not have all the knowledge about the project.
• So a more approach would be to get it done by group of experts.
• Thanks ……..Continue in next session.!!!

Software Engineering Chapter 4 Part 1 Euu

  • 1.
  • 2.
    Management Spectrum • Themanagement spectrum describes the management/hierarchy of people associated with a software project. • How to make a software project successful. • Effective Software Project Management focuses on the four P’s: 1. People 2. Product 3. Process 4. Project • The order is not arbitrary.
  • 3.
    The People • Peoplefactor is very much important in the process of software development. • It includes: – project manager, – team leaders, – stakeholders, – analysts, and – other IT professionals. • Organizations achieve high levels of maturity in the people management area. • There are following areas for software people like, – recruiting, – performance management, – training, – compensation, – career development, – workgroup development, and – team/culture development
  • 4.
    Stakeholders • Senior managerswho define the business issues that often have significant influence on the project. • Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work. • Practitioners who deliver the technical skills that are necessary to engineer a product or application. • Customers who specify the requirements for the software to be engineered • End-users who interact with the software once it is released for production use.
  • 5.
    Product • As thename inferred, this is the deliverable or the result of the project. • The product can consist of both tangible (that can be clearly seen to exist) or intangible (difficult to describe, understand or measure) such as shifting the company to a new place or getting a new software in a company. • Before a project can be planned, the product objectives and scope should be identified. • Objectives identify the overall goals for the product without considering how these goals will be achieved. • Scope identifies the primary data, functions and behaviors that categorize the product. • 4. It identifies cost, risk and realistic break downs of project task.
  • 6.
    Process • It regulateshow the team will go about its development in the respective time period. The Process has several steps involved like, documentation phase, implementation phase, deployment phase, and interaction phase. • The process model is the plan to be selected depending on following factors – a) Customers and developers. – b) Characteristics of product itself. – c) Project environment of software team. • Regardless of the size and type of project, there are small number of framework activities that are applicable to all of them. • There are also umbrella activities like SQA, that occur throughout the system.
  • 7.
    Project • We conductplanned and controlled software projects for one primary reason-it is the only known way to manage complexity. • A software project manager, who build the product must avoid a set of common warning signs, understand the critical success factors that lead to good project management. • It include all and everything of the total development process and to avoid the project failure.
  • 8.
    Metrics For SizeEstimation In Software Engineering • Project size estimation is a crucial aspect of software engineering, as it helps in planning and allocating resources for the project. • If this is estimated accurately then all other parameters like effort, duration, cost, etc can be determined easily. • If a software company maintains simple record , a table of size oriented measurement ill be shown as : 1. project alpha: 12,100 lines of code were developed 2. with 24 person-months of effort 3. at a cost 0f $$168,000. 4. it indicates that 365 pages of documentation were developed, 5. 134 error were recorded before the software was released and 6. 29 defects were encountered after release to the customer within the first year of the operation.
  • 9.
    • At presenttwo techniques that are used to estimate project size are: 1.Lines of code or LOC 2.Function point • Lines of code • Lines of code or LOC is the most popular and used metrics to estimate size. 1. LOC determination is simple as well. 2. LOC measures the project size in terms of number of lines of statements or instructions written in the source code. 3. In LOC count, comments and headers are ignored.
  • 10.
    • Advantages ofLOC 1. Simple to measure • Disadvantages of LOC 1. proper estimation may not be possible. Estimation of accurate LOC is only possible once the complete code has been developed. 2. This metrics will vary to a large extent from programmer to programmer. An experienced professional may write same logic in less number of lines than a novice programmer. 3. As project planning needs to be done before the development work begins so this metrics is of little use for project managers.
  • 11.
    Function point metrics •Function point metrics overcomes many of the shortcomings of LOC. • Function point metrics proposes that size of the software project is directly dependent on various functionalities it supports. • More the features supported the more would be the size. • This technique helps determine size of the project directly from the problem specification so is really helpful to project managers during project planning while determining size. • The steps in function point analysis are: 1. Count the number of functions of each proposed type. 2. Compute the Unadjusted Function Points(UFP). 3. Find Total Degree of Influence(TDI). 4. Compute Value Adjustment Factor(VAF). 5. Find the Function Point Count(FPC).
  • 12.
    • Count thenumber of functions of each proposed type: 1. External Inputs: Functions related to data entering the system. 2. External outputs: Functions related to data exiting the system. 3. External Inquiries: They lead to data retrieval from the system but don’t change the system. E.g online i/p that result in online o/p 4. Internal Files: Logical files maintained within the system. Log files are not included here. 5. External interface Files: These are logical files for other external storage media applications which are used by our system. • Compute the Unadjusted Function Points(UFP). • Categorize each of the five function types like simple, average, or complex based on their complexity. Multiply the count of each function type with its weighting factor and find the weighted sum. The weighting factors for each type based on their complexity are as follows:
  • 13.
    • Find TotalDegree of Influence: Use the general characteristics’ of a system 1. Data Communications, 2. Distributed Data Processing, 3. Performance, 4. Heavily Used Configuration, 5. Transaction Rate, 6. On-Line Data Entry, 7. End-user Efficiency, 8. Online Update, 9. Complex Processing Reusability, 10. Installation Ease, 11. Operational Ease, 12. Multiple Sites and 13. Facilitate Change. • Each of the above characteristics is evaluated on a scale of 0-5. • Compute Value Adjustment Factor(VAF): Use the following formula to calculate VAF • VAF = (TDI * 0.01) + 0.65 • • Find the Function Point Count: Use the following formula to calculate FPC • FPC = UFP * VAF
  • 14.
    Project Cost EstimationIn Software Engineering • it is used to find out the cost estimates. • The cost estimate is the financial spend that is done on the efforts to develop and test software in Software Engineering. • Cost estimation models are some mathematical algorithms or parametric equations that are used to estimate the cost of a product or a project.
  • 15.
    Heuristic Technique • Inthis technique, the relationship among different project parameters is expressed using mathematical equations. The popular heuristic technique is given by Constructive Cost Model (COCOMO). This technique is also used to increase or speed up the analysis and investment decisions. • Static, Single Variable estimation Models: When a model makes use of single variables to calculate desired values such as cost, time, efforts, etc. is said to be a single variable model. The basic COCOMO model is used .The most common equation is: • Estimated Cost C= a1 * eb • Static, Multivariable Models: These models are based on method (1), they depend on several variables describing various aspects of the software development environment. • Estimated Cost C= a1 * eb +a2 * eb +…….. • The intermediate COCOMO model is considered perfect for multivalued models.
  • 16.
    Analytical estimation • Analyticalestimation is a type of technique that is used to measure work. • In this technique, firstly the task is divided or broken down into its basic component operations or elements for analyzing. • Second, if the standard time is available from some other source, then these sources are applied to each element or component of work. • Third, if there is no such time available, then the work is estimated based on the experience of the work. • In this technique, results are derived by making certain basic assumptions about the project. Hence, the analytical estimation technique has some scientific basis. • Halstead’s software science is based on an analytical estimation model.
  • 17.
    • Halstead’s softwarescience. • Token Count • n1 = count of unique operators. n2 = count of unique operands. N1 = count of total occurrences of operators. N2 = count of total occurrence of operands. • In terms of the total tokens used, the size of the program can be expressed as N = N1 + N2
  • 18.
    • Halstead metricsare: • Program Volume (V) • The unit of measurement of volume is the standard unit for size "bits." It is the actual size of a program if a uniform binary encoding for the vocabulary is used. • V=N*log2n • Program Level (L) • The value of L ranges between zero and one, with L=1 representing a program written at the highest possible level (i.e., with minimum size). • L=V*/V • Program Difficulty • The difficulty level or error-proneness (D) of the program is proportional to the number of the unique operator in the program. • D= (n1/2) * (N2/n2) • Programming Effort (E) • The unit of measurement of E is elementary mental discriminations. • E=V/L=D*V
  • 19.
    main () { int a,b,c,avg; scanf(%d %d %d", &a, &b, &c); avg = (a+b+c)/3; printf("avg = %d", avg); } Calculate the estimated length and program volume. Unique operators -> main, (), {, int, scanf, &, ,, ;, =, +, /, printf Unique operands -> a, b, c, avg, 3, %d%d%d, avg=%d Solution 1: η1 = 12 η2 = 07 η=19 N1=27. N2=15. N=42 Ex-1
  • 20.
    Calculate the estimatedprogram length and volume. = 12 log 2 12 + 7 log 2 7 = 62.67 Volume: V=42* log 2 19 =178.4 Difficulty: D= Effect: E=12.85*178.4=2292.44 Time required to program T = 2292.44 / 18=127.357 sec Number of delivered bugs B = 2292.44 2/3 / 3000 = 0.05
  • 21.
    Ex-2 Void swap (inta[ ], int i) { int temp; Temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } We first find out the operands and operators from above function along with their occurrences.
  • 22.
    N = N1+ N2 -> = 16 +21 = 37 -> N = 37 n = n1 + n2 -> = 5 + 9 = 14 -> n = 14 Estimated length = n1 log2 n1 + n2 log2 n2 = 5 log 5 + 9 log 9 = 5 * 2.32 + 9 * 2.19 = 31.37 Estimated length = 31.37 Volume = N * log n = 37 * log (14) = 37 * 2.63 = 97.64 Volume (V) = 97.64
  • 23.
    Ex-3 if (x>5) { x=x + 2; if (x < 7) { x=0; } } N1 = 15 , N2 = 9 n1 = 9 , n2 = 5
  • 25.
    N1 =15, N2=9 n1 =9, n2 =5 TotalLength(N) N=N1 +N2 =15+9=24 Vocabulary(n) n=n1 +n2 =9+5=14 N/N N=n1log2 n1+n2 log2 n2 =9log2 9+5log2 5 =9log10 9/0.3010+5log10 5/0.3010 =9x(3.17)+5x(2.32) =28.53+116 =40.13 EstimatedLength=N/N=40.13/24=1.67 Volume= Nlog2 n =24log2 14 =24xlog10 14/0.3010 =24x3.807=91.36 D=N1/2xN2 /n2 = 9/2x9/5=81/10=8.1 Effort=V*D =91.36x8.1=740.016
  • 26.
    Empirical Estimation techniques.(basedon experiments and practical experience, not on ideas) • Empirical estimation is a technique or model in which empirically derived formulas are used for predicting the data that are a required and essential part of the software project planning step. • These techniques are usually based on the data that is collected previously from a project and also based on some guesses, prior experience with the development of similar types of projects, and assumptions. • In this technique, an educated guess of project parameters is made. Hence, these models are based on common sense. For example Delphi technique and Expert Judgment technique.
  • 27.
    Delphi Technique • theDelphi Technique is used to make decisions about complex issues based on individual opinions. 1. In this approach, the coordinator provides each estimator with a copy of the software requirements specification (SRS) document and a form for recording his cost estimate. 2. Estimators complete their individual estimates anonymously and submit to the coordinator. 3. In their estimates, the estimators mention any unusual characteristic of the product which has influenced his estimation. 4. The coordinator prepares and distributes the summary of the responses of all the estimators, and includes any unusual rationale noted by any of the estimators. 5. Based on this summary, the estimators re-estimate. This process is iterated for several rounds. 6. However, no discussion among the estimators is allowed during the entire estimation process.
  • 28.
    Expert Judgment technique •Expert judgment is when you call in an expert to get a skilled opinion. It's an estimation methodology for project planning that relies on the expert's opinion to estimate quantitative project details • However this is subjected to human error and individual bias. • Expert may overlook some factors. • Expert may not have all the knowledge about the project. • So a more approach would be to get it done by group of experts.
  • 29.
    • Thanks ……..Continuein next session.!!!