Beruflich Dokumente
Kultur Dokumente
Suryakant
1
Shortcoming of basic and intermediate
COCOMO models
• Both models:
• consider a software product as a single homogeneous entity:
• However, most large systems are made up of several smaller sub-systems.
• Some sub-systems may be considered as organic type, some may be considered
embedded, etc.
• for some the reliability requirements may be high, and so on.
2
Complete COCOMO
3
Complete COCOMO Example
4
Halstead's Software Science
• Halstead (1979) distinguished software science from computer
science
• Premise: Any programming task consists of selecting and arranging a
finite number of progam “tokens”
• Tokens are basic syntactic units distinguishable by a compiler
• Computer Program: A collection of tokens that can be classified as
either operators or operands
Halstead's Software Science
6
Halstead's Software Science
Halstead’s Software Science (entropy
measures)
– n1 - number of distinct operators
– n2 - number of distinct operands
– N1 - total number of operators
– N2 - total number of operands
An example
if (k < 2)
{
if (k > 3)
x = x*k;
}
• Distinct operators: if ( ) { } > < = * ;
• Distinct operands: k 2 3 x
• n1 = 10
• n2 = 4
• N1 = 13
• N2 = 7
• Operators
( [ . , -> * + _ ! ~ ^ < > <= & % && ? / *= ; IF ELSE SWITCH
WHILE DO FOR CONTINUE GOTO BREAK etc
a = &b here a and b are operands and = & are operators
Function name in a function definition not an operator
Function name in a function call is an operator and
arguments of the function call are operands. However,
parameter list of a function in the function declaration
statement is not treated as operands.
Halstead’s Metrics
• Program length: N = N1 + N2
• Program vocabulary: n = n1 + n2
• Purity ratio: PR = N̂ /N
Program Complexity
• Volume: V = Estimated Length * log2 n
– Number of bits to provide a unique designator for each of the n items in
the program vocabulary.
• Difficulty
19
Rayleigh Curve
20
Putnam’s Work:
21
Putnam’s Work (CONT.) :
22
Putnam’s Work (CONT.) :
23
Rayleigh Curve
24
Rayleigh Curve
25
Life-Cycle
Requirements Design Code Test Maintenance
Rayleigh Curve
9.0
8.0
7.0
Person-months
6.0
5.0
4.0
3.0
2.0
1.0
0.0
0 5 10 15 20 25 30
Calendar Months
Rayleigh Curve
27
Effect of Schedule Change on Cost
28
Effect of Schedule Change on Cost
29
Effect of Schedule Change on Cost (CONT.)
• Observe:
• a relatively small compression in delivery
schedule
• can result in substantial penalty on human
effort.
• Also, observe:
• benefits can be gained by using fewer people
over a somewhat longer time span.
30
Example
31
Effect of Schedule Change on Cost (CONT.)
32
Effect of Schedule Change on Cost (CONT.)
• Boehm observed:
• “There is a limit beyond which the schedule of a software
project cannot be reduced by buying any more personnel
or equipment.”
• This limit occurs roughly at 75% of the nominal time
estimate.
33
Effect of Schedule Change on Cost
(CONT.)
34
Jensen Model
• Jensen model is very similar to Putnam model.
• attempts to soften the effect of schedule
compression on effort
• makes it applicable to smaller and medium sized
projects.
35
Jensen Model
• Jensen proposed the equation:
• L=CtetdK1/2
• Where,
• Cte is the effective technology constant,
• td is the time to develop the software, and
• K is the effort needed to develop the software.
36
Organization Structure
• Functional Organization:
• Engineers are organized into functional groups, e.g.
• specification, design, coding, testing, maintenance, etc.
• Engineers from functional groups get assigned to different
projects
37
Advantages of Functional Organization
• Specialization
• Ease of staffing
• Good documentation is produced
• different phases are carried out by different teams of
engineers.
• Helps identify errors earlier.
38
Project Organization
39
Team Structure
40
Democratic Teams
• Suitable for:
• small projects requiring
less than five or six
engineers
• research-oriented projects
• A manager provides
administrative leadership:
• at different times different
members of the group
provide technical
leadership. 41
Democratic Teams
42
Democratic Teams
•Disadvantage:
• team members may waste a lot
time arguing about trivial points:
• absence of any authority in the
team.
43
Chief Programmer Team
45
Chief Programmer Team
46
Mixed Control Team Organization
• Draws upon ideas from both:
• democratic organization and
• chief-programmer team organization.
• Communication is limited
• to a small group that is most likely to benefit
from it.
• Suitable for large organizations.
47
Team Organization
Democratic Team
Chief Programmer team
48
Mixed team organization
49
Who is a good software engineer?
• Exposure to systematic techniques, i.e. familiarity with software engineering
principles.
• Good technical knowledge of the project areas (Domain knowledge)
• Good programming abilities.
• Good communication skills. These skills comprise of oral, written, and
• interpersonal skills.
• High motivation.
• Sound knowledge of fundamentals of computer science
• Intelligence.
• Ability to work in a team.
• Discipline, etc.
Summary
• We discussed the broad responsibilities of the project
manager:
• Project planning
• Project Monitoring and Control
51
Summary
• To estimate software cost:
• Determine size of the product.
• Using size estimate,
• determine effort needed.
• From the effort estimate,
• determine project duration, and cost.
52
Summary (CONT.)
• Cost estimation techniques:
• Empirical Techniques
• Heuristic Techniques
• Analytical Techniques
• Empirical techniques:
• based on systematic guesses by experts.
• Expert Judgement
• Delphi Estimation
53
Summary (CONT.)
• Heuristic techniques:
• assume that characteristics of a software product can be modeled by a
mathematical expression.
• COCOMO
• Analytical techniques:
• derive the estimates starting with some basic assumptions:
• Halstead's Software Science
54
Summary (CONT.)
• The staffing level during the life cycle of a software product
development:
• follows Rayleigh curve
• maximum number of engineers required during testing.
55
Summary (CONT.)
56
Summary (CONT.)
57