IMPROVING SOFTWAREIMPROVING SOFTWARE
ECONOMICSECONOMICS
Presented by:
Deep sharma
M.Tech (1st
Year)
Software
Engineering 1
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
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
2. Five Software Cost Model
Parameters
• Size
• Process
• Personnel
• Environment
• Quality
4
3. Cost Estimation Formula
• Effort = (personnel)(Environment)(Quality)(Size)
(exp(Process))
5
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
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
6. Reducing Software Size
• Languages.
• Object-oriented methods and Visual
Modeling.
• Reuse.
• Commercial Components.
8
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
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
Reuse of Software
• Common architectures.
• Development environments.
• Operating systems.
• Database management systems.
• Networking products.
• Office applications.
11
Reuse Cost and Schedule
12
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
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
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
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
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
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
THANK YOU
19

Improving software economics

  • 1.
    IMPROVING SOFTWAREIMPROVING SOFTWARE ECONOMICSECONOMICS Presentedby: Deep sharma M.Tech (1st Year) Software Engineering 1
  • 2.
    Outline 1. Introduction 2. FiveSoftware 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 • Softwareestimation 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 SoftwareCost Model Parameters • Size • Process • Personnel • Environment • Quality 4
  • 5.
    3. Cost EstimationFormula • Effort = (personnel)(Environment)(Quality)(Size) (exp(Process)) 5
  • 6.
    4. Software EconomicsImprovement 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 EconomyImprovement 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
  • 8.
    6. Reducing SoftwareSize • Languages. • Object-oriented methods and Visual Modeling. • Reuse. • Commercial Components. 8
  • 9.
    Language Comparison Language SLOCPER 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 VisualModeling • 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
  • 12.
    Reuse Cost andSchedule 12
  • 13.
    Commercial Components APPROACH ADVANTAGESDISADVANTAGES 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… APPROACHADVANTAGES 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 ATTRIBUTESMETAPROCESS 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… ATTRIBUTESMETAPROCESS 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 • Modernsoftware 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
  • 19.