2. Outline
1. Introduction
2. Five Software Cost Model Parameter
3. Cost Estimation Formula
4. Software Economics Improvement Trends
5. Five Economy Improvement Dimensions
6. Reducing Software Size
Language Comparison
Object-oriented methods and Visual Modeling
Reuse
Commercial Components
7. Improving Software Processes
8. Conclusion
9. References
2
3. 1. Introduction
• Software estimation must be based on
careful analysis and must be supported by
all.
• Software economics improvements must
come from reducing size, improving
process and environments, using more-
skilled personnel, and trading off software
feature thresholds.
3
4. 2. Five Software Cost Model
Parameters
• Size
• Process
• Personnel
• Environment
• Quality
4
6. 4. Software Economics Improvement Trends
Cost Model Parameters Trends
Size
Abstraction and component based
development technologies
Higher-order languages (C++, Ada 95), Object-
oriented (analysis, design, programming), reuse,
commercial components
Process
Methods and techniques
Iterative development, process maturity levels,
architecture first development, acquisition
reform
Personnel
People factors
Training and personnel skill development,
teamwork, win-win conditions
Environment
Automation technologies and tools
Integrated tools (visual modeling, compiler,
editor, debugger, change management), open
systems, hardware platform performance,
automation of coding, documentation, testing,
analysis
Quality
Performance, quality, accuracy
Hardware platform performance, demonstration-
based assessment, statistical quality control6
7. 5. Five Economy Improvement
Dimensions
• Reducing the size of the software.
• Improving the development process.
• Using more-skilled personnel and better
teams.
• Using better environments (tools) for
software development.
• Trading off, or backing off, on quality
thresholds. 7
9. Language Comparison
Language SLOC PER UFP
Assembly 320
C 128
FORTRAN 77 105
COBOL 85 91
Ada 83 71
C++ 56
Ada 95 55
Java 55
Visual Basic 35
Fig: Language Expressiveness of some of today’s
Popular languages
9
10. Object-Oriented Methods and
Visual Modeling
• Better capture of software abstractions leads to
better communications and better teamwork.
• Continuous integration leads to earlier risk
recognition and less costly corrections.
• Object-oriented architectures provide better
separation of disparate elements of a system and
help create firewalls for less costly development.
• Object-oriented and visual modeling create a
strong architectural vision for cleaner, less-costly
products.
10
11. Reuse of Software
• Common architectures.
• Development environments.
• Operating systems.
• Database management systems.
• Networking products.
• Office applications.
11
13. Commercial Components
APPROACH ADVANTAGES DISADVANTAGES
Commercial Components Predictable License Costs
Broadly used, mature
technology
Available Now
Dedicated Support Organization
Hardware/Software
Independence
Rich in functionality
Frequent upgrades
Up-front license fees
Recurring maintenance fees
Dependency on vendor
Runtime Efficiency
sacrifices
Functionality Constraints
Integration not always
trivial
No control over upgrades
and maintenance
Unnecessary features that
consume extra resources
Often inadequate reliability
and stability
13
14. Commercial Components Cont…
APPROACH ADVANTAGES DISADVANTAGES
Custom Development Complete Change freedom
Smaller, often Simpler
implementation
Often better Performance
Control Of Development and
enhancement
Expensive, Unpredictable
Development
Unpredictable availability date
Undefined maintenance model
Often immature and fragile
Single platform dependency
Drain on expert resources
14
15. 7. IMPROVING SOFTWARE
PROCESSES
ATTRIBUTES METAPROCESS MACROPROCESS MICROPROCESS
Subject Line of business Project Iteration
Objectives Line of business
Profitability
Competitiveness
Project profitability
Risk management
Project budget ,
schedule, quality
Resource management
Risk resolution
Milestone budget ,
schedule, quality
Audience Acquisition authorities
, customers
Organizational
management
Software project
managers
Software engineers
Subproject managers
Software engineers
Metrics Project predictability
Revenue , market
share
On budget , on
schedule
Major milestone
success
Project scrap and
rework
On budget , on
schedule
Major milestone
progress
Release/iteration scrap
and rework 15
16. IMPROVING SOFTWARE
PROCESSES Cont…
ATTRIBUTES METAPROCESS MACROPROCESS MICROPROCESS
Concerns Bureaucracy vs.
Standardization
Quality vs. financial
performance
Content vs. schedule
Time scales 6 to 12 months 1 to many years 1 to 6 months
16
17. 8. Conclusion
• Modern software technologies enabling
systems to be built with fewer human
generated source lines.
• Modern software processes are iterative.
• Modern software development and
maintenance environments are the delivery
mechanism for process automation
17
18. 9. References
1. Royce, Bittner, Perrow, The Economics of Software Development, Addison-
Wesley, 2009.
2. Royce, Walker, “Successful Software Management Style: Steering and
Balance,”
IEEE Software, Vol. 22, No. 5, September/October 2005
3. Royce, Winston W., “Managing the Development of Large Software
Systems,”
IEEE Wescon, 1970.
4. Kruchten, Philippe, The Rational Unified Process: An Introduction, Addison-
Wesley, 1999, 2003.
5. Kruchten, Philippe, Kroll, Per, The Rational Unified Process Made Easy: A
Practitioner’s Guide to the RUP, Addison-Wesley, 2003.
18