Lecture10-1

advertisement
Informatics 43
Introduction to Software Engineering
Lecture 10-1
December 9, 2014
Emily Navarro
Duplication of course material for any commercial purpose without the explicit written
permission of the professor is prohibited.
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 1
Today’s Lecture
• Announcements
• Moore’s Law
• Project estimation
• Test 2
• Wrap-up
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 2
Today’s Lecture
• Announcements
• Moore’s Law
• Project estimation
• Test 2
• Wrap-up
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 3
Some Announcements
• 0.5% extra credit for submitting the EEE Course Evaluation
• I will be in my office on Thursday, December 18 3:30-5:30pm
for pickup of Test 2, HW 3, HW 2, Quiz 6, etc.
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 4
Today’s Lecture
• Announcements
• Moore’s Law
• Project estimation
• Test 2
• Wrap-up
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 5
Moore’s Law
The number of transistors on integrated circuits doubles
approximately every two years.
Intel P4004 from 1969
2,300 transistors,
108 kHz clock speed
SDCL
Software Design and
Collaboration Laboratory
Intel Core i7 from 2010
731,000,000 transistors,
3.06 GHz clock speed
6
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 6
Moore’s Law
Electronics
19 April 1965
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 7
Moore’s Original Data
Gordon Moore
Electronics
19 April 1965
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 8
Moore’s Law to 2000
SDCL
Software Design and
Collaboration Laboratory
9
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 9
Moore’s Law through 2010
Motorola
Intel
SDCL
Software Design and
Collaboration Laboratory
10
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 10
Moore’s Law with MS OS
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 11
Moore’s Law in the Future?
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 12
Moore’s Law
• Has held true for almost 50 years
• Is so “true” that it guides the semiconductor industry in longterm planning and setting targets for research and
development
• May have reached its last stages with chips shrinking to the
atomic level
– But Intel claims they will continue to follow Moore’s Law
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 13
Today’s Lecture
• Announcements
• Moore’s Law
• Project estimation
• Test 2
• Wrap-up
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 14
Project Estimation – Why?
• We need to be able to estimate things like how long a project
will take, how many people are needed, how much it will
cost, etc.
• For the purpose of planning, giving bids, etc.
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 15
What to estimate
•
•
•
•
SDCL
Effort (person-months)
Duration (calendar months)
Cost (dollars)
KLOC (thousands of lines of code)
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 16
Estimating a project
• Approach 1: Naïve estimation
– Take your best guess
• Approach 2: Estimation by parts
– Bottom-up or top-down, depending on where you start
• Approach 3: Re-estimation
– As more time is spent on a project, uncertainty decreases
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 17
Productivity Rates
•
Longhorn Project (2003)
–
–
•
Grady and Caswell at HP (1987)
–
•
~1100 LOC/person/year
Brooks (1975) IBM OS/360
–
SDCL
16 MLOC, 5000 people, 3 years
1067 LOC/person/year
600-800 instructions/person/year in control group
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 18
Factors Affecting Productivity Rates
• Application domain experience
• Process quality
• Project size
– Negative relationship
• Technology support
• Working environment
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 19
A general estimation formula
• Textbook, p. 275:
Units of effort = a + b(size)c + ACCUM(factors)
a = base cost
b = scales the size variable, derived from past projects
c = allows estimated project size to influence the effort
estimation non-linearly
ACCUM = a function, sum or product or ?
factors = other influences on the effort
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 20
COCOMO - A Specific Estimation Model (Boehm)
• One of the most widely used software estimation models
• Predicts effort and schedule based on inputs relating to the
size of the software and a number of cost drivers that affect
productivity
• Steps
1.
2.
3.
4.
SDCL
Determine project mode (organic/simple,
semidetached/intermediate, embedded/difficult)
Estimate the size of project (in KLOC or function points)
Review 15 factors (cost-drivers), and estimate the impact of each on
the project
Determine project effort by inserting the estimated values into an
effort formula
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 21
COCOMO Project Modes
• Project mode is based on 8 parameters
–
–
–
–
–
The team’s understanding of project objectives
The team’s experience with similar projects
The project’s need to conform with established requirements
The project’s need to conform with established external interfaces
The need to develop the project concurrently with new
systems/operational procedures
– The project’s need for new technology, architecture, etc.
– The project’s need to meet or beat the schedule
– Project size
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 22
COCOMO Project Modes
• Organic Mode
– Small teams with good experience working with “less than rigid”
requirements
• Semidetached Mode
– Medium teams with mixed experience working with a mixture of rigid
and less than rigid requirements
• Embedded Mode
– Projects that must be developed within a series of tight constraints
• Each mode has its own effort estimation formula
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 23
COCOMO Cost Drivers
• Product attributes
• Personnel attributes
– Required software reliability
– Database size
– Product complexity
• Computer attributes
–
–
–
–
SDCL
Execution time constraint
Main memory constraint
Virtual machine complexity
Computer turnaround time
Software Design and
Collaboration Laboratory
–
–
–
–
–
Analyst capability
Applications experience
Programmer capability
Virtual machine experience
Programming language
experience
• Project attributes
– Use of modern practice
– Use of software tools
– Required development
schedule
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 24
Comparison of Formulas
KLOC
Halstead
Boehm
Walston-Felix
E=0.7 KLOC1.50
E=2.4 KLOC1.05
E=5.2 KLOC0.91
1
10
50
100
1000
0.7
22.1
247.5
700.0
22,135.9
2.4
26.9
145.9
302.1
3,390.1
5.2
42.3
182.8
343.6
2,792.6
• Coefficients derived using actual project data
– Variability in project characteristics?
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 25
What to Measure/Estimate
• Lines of code – e.g. delivered lines of executable source code
• Function points – count inputs, outputs, files
• Feature points – similar to function points, also count
algorithms
• Object points – count screens, reports, and 3-GL components
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 26
Function Points
• Analyze specifications and high-level design for
–
–
–
–
–
External inputs
External outputs
External inquiries
Internal logical files (e.g. classes, data structures)
External interface files
• The result (after plugging them into a formula) is a number
of Function Points.
• Maybe: person-months = 0.20 * FP1.5
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 27
Today’s Lecture
• Announcements
• Moore’s Law
• Project estimation
• Test 2
• Wrap-up
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 28
Test 2 Items from Today’s Lecture
• Moore’s Law
• Project estimation
– Factors affecting productivity rates
– COCOMO (know what it is)
– Function points
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 29
Today’s Lecture
• Announcements
• Moore’s Law
• Project estimation
• Test 2
• Wrap-up
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 30
What Did We Learn?
• What is software engineering?
– Perspectives
– Definitions
– Essential qualities (complexity, conformity, changeability, invisibility)
• Software engineering principles
– Rigor and formality
– Separation of concerns
• modularity
• divide and conquer
• abstraction
– Anticipation of change
– Generality
– Incrementality
• Software failures/fiascos
– Many related to requirements
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 31
What Did We Learn?
• Requirements Engineering
– Requirements document (Homework 1)
•
•
•
•
•
Mythical Man Month
Use cases
Software architecture
Software process models
Version control
– Git (Homework 2)
•
•
•
•
•
SDCL
Designs, models, notations
User orientation
Testing
Moore’s law
Project estimation
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 32
What is Software Engineering?
Software –
Engineering -
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 33
What is Software Engineering?
Software –
•
•
•
•
•
Code
Documentation, user manuals
Designs, specifications
Test cases
Plans and schedules
Engineering -
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 34
What is Software Engineering?
Software –
•
•
•
•
•
Code
Documentation, user manuals
Designs, specifications
Test cases
Plans and schedules
Engineering • Skill and knowledge
• Application of scientific principles
• Trade-offs, cost / benefit analysis
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 35
Software engineering
• “A broad field that touches upon all aspects of developing
and supporting a software system.” [Tsui, Karam, Bernal]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 36
Software engineering
• “A broad field that touches upon all aspects of developing
and supporting a software system.” [Tsui, Karam, Bernal]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 37
Software engineering
• “A discipline that deals with the building of software systems
which are so large that they are built by a team or teams of
engineers.” [Ghezzi, Jazayeri, Mandrioli]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 38
Software engineering
• “A discipline that deals with the building of software systems
which are so large that they are built by a team or teams of
engineers.” [Ghezzi, Jazayeri, Mandrioli]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 39
Software engineering
• “Multi-person construction of multi-version software.”
[Parnas]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 40
Software engineering
• “Multi-person construction of multi-version software.”
[Parnas]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 41
Software engineering
• “A discipline whose aim is the production of fault-free
software, delivered on-time and within budget, that satisfies
the user’s needs. Furthermore, the software must be easy to
modify when the user’s needs change.” [Schach]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 42
Software engineering
• “A discipline whose aim is the production of fault-free
software, delivered on-time and within budget, that satisfies
the user’s needs. Furthermore, the software must be easy to
modify when the user’s needs change.” [Schach]
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 43
What is Software Engineering?
Informatics 43:
• The process of constructing software.
• Phases of development other than programming.
• Principles and qualities of enduring value.
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 44
• Good luck on Test 2
• Enjoy your break!
SDCL
Software Design and
Collaboration Laboratory
Department of Informatics, UC Irvine
sdcl.ics.uci.edu 45
Download