SlideShare a Scribd company logo
1 of 23
23 1
Chapter 3 – ImprovingChapter 3 – Improving
Software EconomicsSoftware Economics
Part 1 of 2Part 1 of 2
2323 22
Balanced AttackBalanced Attack
 Can improve software economicsCan improve software economics
 Easy to do so and have poor resultsEasy to do so and have poor results
 Key is a ‘balanced’ approach; patientKey is a ‘balanced’ approach; patient
 Five Key Initiatives – In Order:Five Key Initiatives – In Order:
• Reducing theReducing the size and/or complexitysize and/or complexity of applicationof application
• Improving the developmentImproving the development processprocess itselfitself
• UsingUsing more-skilled personnelmore-skilled personnel and creation of betterand creation of better
teamsteams
• Creating better ‘Creating better ‘environmentsenvironments’ with appropriate’ with appropriate
tools and technology to foster improvementtools and technology to foster improvement
• Re-lookingRe-looking at Qualityat Quality
2323 33
This lectureThis lecture
 We will concentrate onWe will concentrate on
• Reducing the Size (most slides), and aReducing the Size (most slides), and a
little onlittle on
• Looking at the Process.Looking at the Process.
2323 44
Cost Model Parameters Trends
Size
Abstraction and component-based
development technologies
Higher Order Languages (C++, Java, VB,
 OO (analysis, design, programming)
 Reuse
 Commercial Components
Process
Methods and techniques  Iterative Development
 Process Maturity Models
 Architecture-first development
 Acquisition reform
Personnel
People factors Training and personnel skill development
Teamwork
Win-win cultures
Environment
Automation technologies and tools
Integrated tools (visual modeling, compiler, editors,
debuggers, CMS, ….
Open Systems
Hardware platform performance
Automation of coding, documents, testing, analyses
Quality
Performance, reliability, accuracy Hardware platform performance
Demonstration-based assessment
Statistical quality control
2323 55
Comments on Overall ApproachesComments on Overall Approaches
 Significant interdependencies are apparent!Significant interdependencies are apparent!
 Examples:Examples:
• SomeSome toolstools ((environmentenvironment) can bring about a) can bring about a
reduction inreduction in sizesize andand processprocess improvementimprovement
(process).(process).
• UI and GUIs today (tools –UI and GUIs today (tools – environmentenvironment) GUI) GUI
Builders, affectBuilders, affect processprocess andand qualityquality……
• ImprovedImproved processprocess (use-case driven…) => end user(use-case driven…) => end user
functionality drives the process thus favorablyfunctionality drives the process thus favorably
impactingimpacting qualityquality….….
• A ‘host’ of other interdependencies…A ‘host’ of other interdependencies…
2323 66
1. Reducing Software Product Size1. Reducing Software Product Size
 The larger the product, the moreThe larger the product, the more
expensive it is ‘per line.’ Fact.expensive it is ‘per line.’ Fact.
 Complicated due toComplicated due to
• Component-based developmentComponent-based development
• Automatic code generationAutomatic code generation
• ““Instruction Explosion”Instruction Explosion”
• GUI buildersGUI builders
• 4GLs4GLs
• Modeling LanguagesModeling Languages
• Executable code size often increases!Executable code size often increases!
2323 77
1. Reducing Software Product Size:1. Reducing Software Product Size:
A. LanguagesA. Languages
 Function Point metrics:Function Point metrics:
 Language independentLanguage independent!!
 External user inputs, outputs, internal logicalExternal user inputs, outputs, internal logical
data groups, external data interfaces, anddata groups, external data interfaces, and
external inquiries.external inquiries.
 SLOC metrics:SLOC metrics:
 usefuluseful afterafter a candidate solution is formulateda candidate solution is formulated
and implementation language is known.and implementation language is known.
 Many comparisons of function pointsMany comparisons of function points
to lines of code.to lines of code.
2323 88
Comparison TableComparison Table
LANGUAGE SLOC PER UFP
Assembler Language 320
C 128
Fortran 77 105
Cobol 85 91
Ada 83 71
C++ 56
Ada 95 55
Java 55
Visual Basic 35
2323 99
More on Comparisons: LanguagesMore on Comparisons: Languages
 Use table as a general comparison guide only.Use table as a general comparison guide only.
 Languages (in general) are often best suitedLanguages (in general) are often best suited
for ‘classes of problems’ (domain of usage)for ‘classes of problems’ (domain of usage)
• Web-based apps: Java vs COBOLWeb-based apps: Java vs COBOL
• Transaction processing: Java vs COBOLTransaction processing: Java vs COBOL
• Systems programming: Assembler vs C vs JavaSystems programming: Assembler vs C vs Java
• Prototyping UI: VB versus Java (varies…)Prototyping UI: VB versus Java (varies…)
 Shows ‘Shows ‘level of expressivenesslevel of expressiveness.’.’
 Read through comparisons… pros and cons:Read through comparisons… pros and cons:
• C to C++C to C++
• JavaJava
2323 1010
More on Comparisons: LanguagesMore on Comparisons: Languages
 Function Points focus more on ‘Function Points focus more on ‘functionalityfunctionality.’.’
 The implementingThe implementing programming language sizeprogramming language size
can becan be inferredinferred from function point count.from function point count.
  Not simple to compute function points tho…Not simple to compute function points tho…
• Automatic code generators (CASE; GUI) can reduceAutomatic code generators (CASE; GUI) can reduce
sizesize of ‘human generated’ codeof ‘human generated’ code  less time; fewerless time; fewer
team members…(helps cost; efficiency of automaticteam members…(helps cost; efficiency of automatic
code generators? Function point computation?)code generators? Function point computation?)
• Commercial DBMSs, GUI Builders, middleware, …Commercial DBMSs, GUI Builders, middleware, …
reduce the amount of code to be developed…reduce the amount of code to be developed…
 Size may be larger! How are fpoints computed here???Size may be larger! How are fpoints computed here???
• Others!!Others!!
2323 1111
Level of abstraction and functionalityLevel of abstraction and functionality
– benefits and ‘expressiveness’– benefits and ‘expressiveness’
 Reducing size changes ‘level of abstraction’Reducing size changes ‘level of abstraction’
allowing us to focus on architectureallowing us to focus on architecture, …, …  easier toeasier to
understand, reuse, maintain. (may importunderstand, reuse, maintain. (may import
packages of classes and objects…)packages of classes and objects…)
• We can talk about layers, dependencies, interfaces,We can talk about layers, dependencies, interfaces,
services!services!
• Can talk about classes, subsystems, packages.Can talk about classes, subsystems, packages.
• These are serious abstractions!These are serious abstractions!
 But, these higher-level abstractions are often highBut, these higher-level abstractions are often high
users of storage, and communications bandwidth…users of storage, and communications bandwidth…
2323 1212
 A package is aA package is a general purpose mechanismgeneral purpose mechanism forfor
organizing elements into groups (use cases;organizing elements into groups (use cases;
classes, other model elements…)classes, other model elements…)
 Package is aPackage is a model elementmodel element which can containwhich can contain
otherother model elementsmodel elements
Package ExpressivenessPackage Expressiveness
Package Name
Packages may contain many model
elements: use case models, classes,
objects, subsystems, components,
other packages.
General grouping for organizational
purposes
May have tremendous ‘expressiveness’
Think Math class in Java…
2323 1313
Subsystem - ExpressivenessSubsystem - Expressiveness
 AA combinationcombination of a packageof a package
• groups similar model elementsgroups similar model elements andand
• aa classclass has behaviors via its methods.has behaviors via its methods.
(classes provide / encapsulate behaviors(classes provide / encapsulate behaviors
or services)or services)
 SubsystemsSubsystems RealizeRealize one or moreone or more
interfaces whichinterfaces which definedefine its behaviorsits behaviors
<<subsystem>>
Subsystem Name
Interface
(a class)
nterface
Realization
Subsystem
Generally has classes
associated that
provide the holistic
service of the
subsystem…
2323 1414
Component
Name
Design Model Implementation Model
<<subsystem>>
Component Name
Component
Interface
Component
Interface
Subsystems and ComponentsSubsystems and Components
 ComponentsComponents are theare the physical realizationphysical realization ofof
anan abstractionabstraction in the designin the design
• physical realization can exist on many levelsphysical realization can exist on many levels
• consider the realization of a presentaton layerconsider the realization of a presentaton layer
modeled as a ‘component.’modeled as a ‘component.’
 Components (in the implementationComponents (in the implementation
model) can be used tomodel) can be used to represent therepresent the
subsystemssubsystems from the design model.from the design model.
2323 1515
1. Reducing Software Product Size:1. Reducing Software Product Size:
 B.B. OO Methods and Visual ModelingOO Methods and Visual Modeling
 Assertions abound re benefits of OOAssertions abound re benefits of OO
methods on productivity and qualitymethods on productivity and quality
• Not terribly locked in concrete yetNot terribly locked in concrete yet
• High costs of OO training using OOSE,High costs of OO training using OOSE,
modeling languages like UML andmodeling languages like UML and
comprehensive,comprehensive, configurable processesconfigurable processes likelike
the RUP andthe RUP and many technologiesmany technologies……
 OO technology reduces size (amongOO technology reduces size (among
other things), but there is no free lunch.other things), but there is no free lunch.
2323 1616
B. OO Methods and Visual ModelingB. OO Methods and Visual Modeling
 Size is not everything…Size is not everything…
 OO technology approaches –OO technology approaches – so many other benefitsso many other benefits::
• Encourage aEncourage a commoncommon vocabularyvocabulary
 Glossary; domain model; – artifacts ; object ‘concepts’ andGlossary; domain model; – artifacts ; object ‘concepts’ and
termsterms
• Support continuous integrationSupport continuous integration
 Easy to talk about subsystems, classes, interfaces…Easy to talk about subsystems, classes, interfaces…
 Architecture first approach – for stability, planning teams,Architecture first approach – for stability, planning teams,
iteration plans, …iteration plans, …
• Architecture provides aArchitecture provides a clear separation of concernsclear separation of concerns – for– for
development in paralleldevelopment in parallel; configuration;; configuration; integrity ofintegrity of
development…development…
  And then, when you consider theAnd then, when you consider the RUP as a process builtRUP as a process built
around OO technologyaround OO technology, there are a, there are a hosthost of additionalof additional
benefits….benefits….
2323 1717
1. Reducing Software Product Size:1. Reducing Software Product Size:
 C.C. ReuseReuse
 Always had ‘reuse’ with stored functions/subpgmsAlways had ‘reuse’ with stored functions/subpgms

Many forms of reuseMany forms of reuse::
 Old stuff: data descriptions; documents, and a host ofOld stuff: data descriptions; documents, and a host of
similar, old artifacts, designs, architectures…similar, old artifacts, designs, architectures…
 fromfrom allall phasesphases of software developmentof software development
 Common architectures; processes, common environments...Common architectures; processes, common environments...
 Very common during monolithic type developmentVery common during monolithic type development..
 Differences in platforms / environments hasDifferences in platforms / environments has
hurt reuse potentialhurt reuse potential
 Common Microsoft platforms: - counter exampleCommon Microsoft platforms: - counter example
 Linux; MACs, resulting fromLinux; MACs, resulting from distributing applicationsdistributing applications!!
2323 1818
C. Reuse (continued)C. Reuse (continued)
 Main reason for Reuse or ‘lack’ thereof:Main reason for Reuse or ‘lack’ thereof: moneymoney..
(not addressing commercial components…)(not addressing commercial components…)
 Costs toCosts to buildbuild reusable and configure reusable components.reusable and configure reusable components.
Must be able to justify.Must be able to justify.
 Can reuse be justified across many projects?Can reuse be justified across many projects?
 Some commercial organizations focused on sellingSome commercial organizations focused on selling
commercial components.commercial components.
 Very few success storiesVery few success stories for software componentfor software component
reusereuse
• exceptions: operation systems, middleware, GUIexceptions: operation systems, middleware, GUI
Builders, other obvious ones.Builders, other obvious ones.
 Most developersMost developers dodo undertake some kind of reuseundertake some kind of reuse
– just perhaps not as formalized…– just perhaps not as formalized…
2323 1919
1. Reducing Software Product Size:1. Reducing Software Product Size:
 D. Commercial ComponentsD. Commercial Components
 Major trend –Major trend – buy commercial componentsbuy commercial components..
 Saves custom developmentSaves custom development
 Usually needs tailoringUsually needs tailoring
 Certainly pros and cons.Certainly pros and cons.
 Bottom line: may well haveBottom line: may well have global impacts on:global impacts on:
• qualityquality
• costcost
• supportability, and thesupportability, and the
• architecturearchitecture..
2323 2020
APPROACH ADVANTAGES DISADVANTAGES
Commercial Components Predictable license costs Frequent upgrades
Broadly used, mature technology Up-front license fees
Available now Recurring maintenance fees
Dedicated support organizations Dependency on vendor
Hardware/software independence Run-time efficiency sacrifices
Rich in functionality Functionality constraints
Integration not always trivial
No control over upgrades or maintenance
Unnecessary features that consume extra
resources
Often inadequate reliability and stability
Multiple vendor incompatibilities
Custom Development Complete change freedom Expensive, unpredictable development
Smaller, often simpler implementations Unpredictable availability date
Often better performance Underdefined maintenance model
Control of development and enhancement Often immature and fragile
Single-platform dependency
Drain on expert resources
Advantages and Disadvantages of Commercial Components versus Custom Software
2323 2121
2. Improving Software2. Improving Software
ProcessesProcesses
 Development projects are complex undertakingsDevelopment projects are complex undertakings
• Some activities done in parallel; others sequential.Some activities done in parallel; others sequential.
• Some activities: overhead; some productionSome activities: overhead; some production..
 Production activitiesProduction activities  the project itself – requirementsthe project itself – requirements
elicitation and modeling, analysis, design,elicitation and modeling, analysis, design,
implementation…implementation…
 Overhead activitiesOverhead activities  planning, progress monitoring,planning, progress monitoring,
risk assessment, financial assessments, configurationrisk assessment, financial assessments, configuration
control, quality assessment, integration, testing, latecontrol, quality assessment, integration, testing, late
rework, management, personnel training, etc….rework, management, personnel training, etc….
 Objective: minimize overhead and directObjective: minimize overhead and direct
these energies toward production activities.these energies toward production activities.
2323 2222
2. Improving Software Processes – (cont.)2. Improving Software Processes – (cont.)
• It is all aboutIt is all about process!process!
• A high-qualityA high-quality processprocess reduces:reduces:
 Required effortRequired effort and thusand thus scheduleschedule
 Project time yet withProject time yet with improved qualityimproved quality..
 ThreeThree genericgeneric improvement scenarios:improvement scenarios:
• ImproveImprove efficiencyefficiency of eachof each stepstep in processin process
• Eliminate some stepsEliminate some steps in the processin the process
• Undertake the same number of steps, butUndertake the same number of steps, but
employ concurrency where possibleemploy concurrency where possible
2323 2323
2. Improving Software Processes -2. Improving Software Processes -
continuedcontinued
 First approachFirst approach
• more efficient steps – older approach - is good,more efficient steps – older approach - is good,
• more ROI on second (fewer steps) andmore ROI on second (fewer steps) and
• third (concurrency in activities)third (concurrency in activities)
 We want the highest quality system with fewestWe want the highest quality system with fewest
iterations in least time.iterations in least time.
• Must eliminateMust eliminate rework and late scraprework and late scrap – fixing things up!– fixing things up!
• Integration testing is culprit.Integration testing is culprit.
• Fixing things up as a result of integration and system testsFixing things up as a result of integration and system tests
are killers!!!are killers!!!
 OurOur ProcessProcess must reduce the probability of latemust reduce the probability of late
rework!rework!
• Does the RUP facilitate this? If so, How?Does the RUP facilitate this? If so, How?

More Related Content

What's hot

What's hot (20)

Software process
Software processSoftware process
Software process
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project Management
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Lect4 software economics
Lect4 software economicsLect4 software economics
Lect4 software economics
 
Project control and process instrumentation
Project control and process instrumentationProject control and process instrumentation
Project control and process instrumentation
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Spm unit 2
Spm unit 2Spm unit 2
Spm unit 2
 
Quality concept
Quality concept Quality concept
Quality concept
 
Lect5 improving software economics
Lect5 improving software economicsLect5 improving software economics
Lect5 improving software economics
 
Chap 1 introduction to cloud computing
Chap 1 introduction to cloud computingChap 1 introduction to cloud computing
Chap 1 introduction to cloud computing
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testing
 
Checkpoints of the Process
Checkpoints of the ProcessCheckpoints of the Process
Checkpoints of the Process
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPM
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Artifacts
ArtifactsArtifacts
Artifacts
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
Software management renaissance
Software management renaissanceSoftware management renaissance
Software management renaissance
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 

Similar to Improving software econimics

unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
WrushabhShirsat3
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
the_wumberlog
 

Similar to Improving software econimics (20)

unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Chapter 09
Chapter 09Chapter 09
Chapter 09
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
Unit ii
Unit   iiUnit   ii
Unit ii
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
Importance of Software architecture
Importance of Software architectureImportance of Software architecture
Importance of Software architecture
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 
BDD Primer
BDD PrimerBDD Primer
BDD Primer
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Unit V.pptx
Unit V.pptxUnit V.pptx
Unit V.pptx
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Improving software econimics

  • 1. 23 1 Chapter 3 – ImprovingChapter 3 – Improving Software EconomicsSoftware Economics Part 1 of 2Part 1 of 2
  • 2. 2323 22 Balanced AttackBalanced Attack  Can improve software economicsCan improve software economics  Easy to do so and have poor resultsEasy to do so and have poor results  Key is a ‘balanced’ approach; patientKey is a ‘balanced’ approach; patient  Five Key Initiatives – In Order:Five Key Initiatives – In Order: • Reducing theReducing the size and/or complexitysize and/or complexity of applicationof application • Improving the developmentImproving the development processprocess itselfitself • UsingUsing more-skilled personnelmore-skilled personnel and creation of betterand creation of better teamsteams • Creating better ‘Creating better ‘environmentsenvironments’ with appropriate’ with appropriate tools and technology to foster improvementtools and technology to foster improvement • Re-lookingRe-looking at Qualityat Quality
  • 3. 2323 33 This lectureThis lecture  We will concentrate onWe will concentrate on • Reducing the Size (most slides), and aReducing the Size (most slides), and a little onlittle on • Looking at the Process.Looking at the Process.
  • 4. 2323 44 Cost Model Parameters Trends Size Abstraction and component-based development technologies Higher Order Languages (C++, Java, VB,  OO (analysis, design, programming)  Reuse  Commercial Components Process Methods and techniques  Iterative Development  Process Maturity Models  Architecture-first development  Acquisition reform Personnel People factors Training and personnel skill development Teamwork Win-win cultures Environment Automation technologies and tools Integrated tools (visual modeling, compiler, editors, debuggers, CMS, …. Open Systems Hardware platform performance Automation of coding, documents, testing, analyses Quality Performance, reliability, accuracy Hardware platform performance Demonstration-based assessment Statistical quality control
  • 5. 2323 55 Comments on Overall ApproachesComments on Overall Approaches  Significant interdependencies are apparent!Significant interdependencies are apparent!  Examples:Examples: • SomeSome toolstools ((environmentenvironment) can bring about a) can bring about a reduction inreduction in sizesize andand processprocess improvementimprovement (process).(process). • UI and GUIs today (tools –UI and GUIs today (tools – environmentenvironment) GUI) GUI Builders, affectBuilders, affect processprocess andand qualityquality…… • ImprovedImproved processprocess (use-case driven…) => end user(use-case driven…) => end user functionality drives the process thus favorablyfunctionality drives the process thus favorably impactingimpacting qualityquality….…. • A ‘host’ of other interdependencies…A ‘host’ of other interdependencies…
  • 6. 2323 66 1. Reducing Software Product Size1. Reducing Software Product Size  The larger the product, the moreThe larger the product, the more expensive it is ‘per line.’ Fact.expensive it is ‘per line.’ Fact.  Complicated due toComplicated due to • Component-based developmentComponent-based development • Automatic code generationAutomatic code generation • ““Instruction Explosion”Instruction Explosion” • GUI buildersGUI builders • 4GLs4GLs • Modeling LanguagesModeling Languages • Executable code size often increases!Executable code size often increases!
  • 7. 2323 77 1. Reducing Software Product Size:1. Reducing Software Product Size: A. LanguagesA. Languages  Function Point metrics:Function Point metrics:  Language independentLanguage independent!!  External user inputs, outputs, internal logicalExternal user inputs, outputs, internal logical data groups, external data interfaces, anddata groups, external data interfaces, and external inquiries.external inquiries.  SLOC metrics:SLOC metrics:  usefuluseful afterafter a candidate solution is formulateda candidate solution is formulated and implementation language is known.and implementation language is known.  Many comparisons of function pointsMany comparisons of function points to lines of code.to lines of code.
  • 8. 2323 88 Comparison TableComparison Table LANGUAGE SLOC PER UFP Assembler Language 320 C 128 Fortran 77 105 Cobol 85 91 Ada 83 71 C++ 56 Ada 95 55 Java 55 Visual Basic 35
  • 9. 2323 99 More on Comparisons: LanguagesMore on Comparisons: Languages  Use table as a general comparison guide only.Use table as a general comparison guide only.  Languages (in general) are often best suitedLanguages (in general) are often best suited for ‘classes of problems’ (domain of usage)for ‘classes of problems’ (domain of usage) • Web-based apps: Java vs COBOLWeb-based apps: Java vs COBOL • Transaction processing: Java vs COBOLTransaction processing: Java vs COBOL • Systems programming: Assembler vs C vs JavaSystems programming: Assembler vs C vs Java • Prototyping UI: VB versus Java (varies…)Prototyping UI: VB versus Java (varies…)  Shows ‘Shows ‘level of expressivenesslevel of expressiveness.’.’  Read through comparisons… pros and cons:Read through comparisons… pros and cons: • C to C++C to C++ • JavaJava
  • 10. 2323 1010 More on Comparisons: LanguagesMore on Comparisons: Languages  Function Points focus more on ‘Function Points focus more on ‘functionalityfunctionality.’.’  The implementingThe implementing programming language sizeprogramming language size can becan be inferredinferred from function point count.from function point count.   Not simple to compute function points tho…Not simple to compute function points tho… • Automatic code generators (CASE; GUI) can reduceAutomatic code generators (CASE; GUI) can reduce sizesize of ‘human generated’ codeof ‘human generated’ code  less time; fewerless time; fewer team members…(helps cost; efficiency of automaticteam members…(helps cost; efficiency of automatic code generators? Function point computation?)code generators? Function point computation?) • Commercial DBMSs, GUI Builders, middleware, …Commercial DBMSs, GUI Builders, middleware, … reduce the amount of code to be developed…reduce the amount of code to be developed…  Size may be larger! How are fpoints computed here???Size may be larger! How are fpoints computed here??? • Others!!Others!!
  • 11. 2323 1111 Level of abstraction and functionalityLevel of abstraction and functionality – benefits and ‘expressiveness’– benefits and ‘expressiveness’  Reducing size changes ‘level of abstraction’Reducing size changes ‘level of abstraction’ allowing us to focus on architectureallowing us to focus on architecture, …, …  easier toeasier to understand, reuse, maintain. (may importunderstand, reuse, maintain. (may import packages of classes and objects…)packages of classes and objects…) • We can talk about layers, dependencies, interfaces,We can talk about layers, dependencies, interfaces, services!services! • Can talk about classes, subsystems, packages.Can talk about classes, subsystems, packages. • These are serious abstractions!These are serious abstractions!  But, these higher-level abstractions are often highBut, these higher-level abstractions are often high users of storage, and communications bandwidth…users of storage, and communications bandwidth…
  • 12. 2323 1212  A package is aA package is a general purpose mechanismgeneral purpose mechanism forfor organizing elements into groups (use cases;organizing elements into groups (use cases; classes, other model elements…)classes, other model elements…)  Package is aPackage is a model elementmodel element which can containwhich can contain otherother model elementsmodel elements Package ExpressivenessPackage Expressiveness Package Name Packages may contain many model elements: use case models, classes, objects, subsystems, components, other packages. General grouping for organizational purposes May have tremendous ‘expressiveness’ Think Math class in Java…
  • 13. 2323 1313 Subsystem - ExpressivenessSubsystem - Expressiveness  AA combinationcombination of a packageof a package • groups similar model elementsgroups similar model elements andand • aa classclass has behaviors via its methods.has behaviors via its methods. (classes provide / encapsulate behaviors(classes provide / encapsulate behaviors or services)or services)  SubsystemsSubsystems RealizeRealize one or moreone or more interfaces whichinterfaces which definedefine its behaviorsits behaviors <<subsystem>> Subsystem Name Interface (a class) nterface Realization Subsystem Generally has classes associated that provide the holistic service of the subsystem…
  • 14. 2323 1414 Component Name Design Model Implementation Model <<subsystem>> Component Name Component Interface Component Interface Subsystems and ComponentsSubsystems and Components  ComponentsComponents are theare the physical realizationphysical realization ofof anan abstractionabstraction in the designin the design • physical realization can exist on many levelsphysical realization can exist on many levels • consider the realization of a presentaton layerconsider the realization of a presentaton layer modeled as a ‘component.’modeled as a ‘component.’  Components (in the implementationComponents (in the implementation model) can be used tomodel) can be used to represent therepresent the subsystemssubsystems from the design model.from the design model.
  • 15. 2323 1515 1. Reducing Software Product Size:1. Reducing Software Product Size:  B.B. OO Methods and Visual ModelingOO Methods and Visual Modeling  Assertions abound re benefits of OOAssertions abound re benefits of OO methods on productivity and qualitymethods on productivity and quality • Not terribly locked in concrete yetNot terribly locked in concrete yet • High costs of OO training using OOSE,High costs of OO training using OOSE, modeling languages like UML andmodeling languages like UML and comprehensive,comprehensive, configurable processesconfigurable processes likelike the RUP andthe RUP and many technologiesmany technologies……  OO technology reduces size (amongOO technology reduces size (among other things), but there is no free lunch.other things), but there is no free lunch.
  • 16. 2323 1616 B. OO Methods and Visual ModelingB. OO Methods and Visual Modeling  Size is not everything…Size is not everything…  OO technology approaches –OO technology approaches – so many other benefitsso many other benefits:: • Encourage aEncourage a commoncommon vocabularyvocabulary  Glossary; domain model; – artifacts ; object ‘concepts’ andGlossary; domain model; – artifacts ; object ‘concepts’ and termsterms • Support continuous integrationSupport continuous integration  Easy to talk about subsystems, classes, interfaces…Easy to talk about subsystems, classes, interfaces…  Architecture first approach – for stability, planning teams,Architecture first approach – for stability, planning teams, iteration plans, …iteration plans, … • Architecture provides aArchitecture provides a clear separation of concernsclear separation of concerns – for– for development in paralleldevelopment in parallel; configuration;; configuration; integrity ofintegrity of development…development…   And then, when you consider theAnd then, when you consider the RUP as a process builtRUP as a process built around OO technologyaround OO technology, there are a, there are a hosthost of additionalof additional benefits….benefits….
  • 17. 2323 1717 1. Reducing Software Product Size:1. Reducing Software Product Size:  C.C. ReuseReuse  Always had ‘reuse’ with stored functions/subpgmsAlways had ‘reuse’ with stored functions/subpgms  Many forms of reuseMany forms of reuse::  Old stuff: data descriptions; documents, and a host ofOld stuff: data descriptions; documents, and a host of similar, old artifacts, designs, architectures…similar, old artifacts, designs, architectures…  fromfrom allall phasesphases of software developmentof software development  Common architectures; processes, common environments...Common architectures; processes, common environments...  Very common during monolithic type developmentVery common during monolithic type development..  Differences in platforms / environments hasDifferences in platforms / environments has hurt reuse potentialhurt reuse potential  Common Microsoft platforms: - counter exampleCommon Microsoft platforms: - counter example  Linux; MACs, resulting fromLinux; MACs, resulting from distributing applicationsdistributing applications!!
  • 18. 2323 1818 C. Reuse (continued)C. Reuse (continued)  Main reason for Reuse or ‘lack’ thereof:Main reason for Reuse or ‘lack’ thereof: moneymoney.. (not addressing commercial components…)(not addressing commercial components…)  Costs toCosts to buildbuild reusable and configure reusable components.reusable and configure reusable components. Must be able to justify.Must be able to justify.  Can reuse be justified across many projects?Can reuse be justified across many projects?  Some commercial organizations focused on sellingSome commercial organizations focused on selling commercial components.commercial components.  Very few success storiesVery few success stories for software componentfor software component reusereuse • exceptions: operation systems, middleware, GUIexceptions: operation systems, middleware, GUI Builders, other obvious ones.Builders, other obvious ones.  Most developersMost developers dodo undertake some kind of reuseundertake some kind of reuse – just perhaps not as formalized…– just perhaps not as formalized…
  • 19. 2323 1919 1. Reducing Software Product Size:1. Reducing Software Product Size:  D. Commercial ComponentsD. Commercial Components  Major trend –Major trend – buy commercial componentsbuy commercial components..  Saves custom developmentSaves custom development  Usually needs tailoringUsually needs tailoring  Certainly pros and cons.Certainly pros and cons.  Bottom line: may well haveBottom line: may well have global impacts on:global impacts on: • qualityquality • costcost • supportability, and thesupportability, and the • architecturearchitecture..
  • 20. 2323 2020 APPROACH ADVANTAGES DISADVANTAGES Commercial Components Predictable license costs Frequent upgrades Broadly used, mature technology Up-front license fees Available now Recurring maintenance fees Dedicated support organizations Dependency on vendor Hardware/software independence Run-time efficiency sacrifices Rich in functionality Functionality constraints Integration not always trivial No control over upgrades or maintenance Unnecessary features that consume extra resources Often inadequate reliability and stability Multiple vendor incompatibilities Custom Development Complete change freedom Expensive, unpredictable development Smaller, often simpler implementations Unpredictable availability date Often better performance Underdefined maintenance model Control of development and enhancement Often immature and fragile Single-platform dependency Drain on expert resources Advantages and Disadvantages of Commercial Components versus Custom Software
  • 21. 2323 2121 2. Improving Software2. Improving Software ProcessesProcesses  Development projects are complex undertakingsDevelopment projects are complex undertakings • Some activities done in parallel; others sequential.Some activities done in parallel; others sequential. • Some activities: overhead; some productionSome activities: overhead; some production..  Production activitiesProduction activities  the project itself – requirementsthe project itself – requirements elicitation and modeling, analysis, design,elicitation and modeling, analysis, design, implementation…implementation…  Overhead activitiesOverhead activities  planning, progress monitoring,planning, progress monitoring, risk assessment, financial assessments, configurationrisk assessment, financial assessments, configuration control, quality assessment, integration, testing, latecontrol, quality assessment, integration, testing, late rework, management, personnel training, etc….rework, management, personnel training, etc….  Objective: minimize overhead and directObjective: minimize overhead and direct these energies toward production activities.these energies toward production activities.
  • 22. 2323 2222 2. Improving Software Processes – (cont.)2. Improving Software Processes – (cont.) • It is all aboutIt is all about process!process! • A high-qualityA high-quality processprocess reduces:reduces:  Required effortRequired effort and thusand thus scheduleschedule  Project time yet withProject time yet with improved qualityimproved quality..  ThreeThree genericgeneric improvement scenarios:improvement scenarios: • ImproveImprove efficiencyefficiency of eachof each stepstep in processin process • Eliminate some stepsEliminate some steps in the processin the process • Undertake the same number of steps, butUndertake the same number of steps, but employ concurrency where possibleemploy concurrency where possible
  • 23. 2323 2323 2. Improving Software Processes -2. Improving Software Processes - continuedcontinued  First approachFirst approach • more efficient steps – older approach - is good,more efficient steps – older approach - is good, • more ROI on second (fewer steps) andmore ROI on second (fewer steps) and • third (concurrency in activities)third (concurrency in activities)  We want the highest quality system with fewestWe want the highest quality system with fewest iterations in least time.iterations in least time. • Must eliminateMust eliminate rework and late scraprework and late scrap – fixing things up!– fixing things up! • Integration testing is culprit.Integration testing is culprit. • Fixing things up as a result of integration and system testsFixing things up as a result of integration and system tests are killers!!!are killers!!!  OurOur ProcessProcess must reduce the probability of latemust reduce the probability of late rework!rework! • Does the RUP facilitate this? If so, How?Does the RUP facilitate this? If so, How?

Editor's Notes

  1. There are many different definitions and uses for subsystems. This is the definition we will focus on in this course.