SlideShare a Scribd company logo
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

Cocom ii
Cocom iiCocom ii
Quality & Reliability in Software Engineering
Quality & Reliability in Software EngineeringQuality & Reliability in Software Engineering
Quality & Reliability in Software Engineering
SivaRamaSundar Devasubramaniam
 
Lect3 conventional vs modern spm
Lect3 conventional vs modern spmLect3 conventional vs modern spm
Lect3 conventional vs modern spm
meena466141
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and Methods
Riant Soft
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
Sandeep Kumar Nayak
 
System testing
System testingSystem testing
System testing
Sifat Hossain
 
Risk management(software engineering)
Risk management(software engineering)Risk management(software engineering)
Risk management(software engineering)
Priya Tomar
 
Black box and white box testing
Black box and white box testingBlack box and white box testing
Black box and white box testing
AWADHESH PRATAP SINGH UNIVERSITY, REWA (M.P.)
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
NancyBeaulah_R
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
Dr. C.V. Suresh Babu
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
Aman Adhikari
 
Static analysis
Static analysisStatic analysis
Static analysis
GowriLatha1
 
Incremental model (software engineering)
Incremental model (software engineering)Incremental model (software engineering)
Incremental model (software engineering)
MuhammadTalha436
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
Arun Shukla
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
swatisinghal
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
Bilal Shah
 
Software Testing and Quality Assurance unit1
Software Testing and Quality Assurance  unit1Software Testing and Quality Assurance  unit1
Software Testing and Quality Assurance unit1
Bhagyashree Dhakulkar
 
Software quality assurance activites
Software quality assurance activitesSoftware quality assurance activites
Software quality assurance activites
Golu Gupta
 

What's hot (20)

Cocom ii
Cocom iiCocom ii
Cocom ii
 
Quality & Reliability in Software Engineering
Quality & Reliability in Software EngineeringQuality & Reliability in Software Engineering
Quality & Reliability in Software Engineering
 
Lect3 conventional vs modern spm
Lect3 conventional vs modern spmLect3 conventional vs modern spm
Lect3 conventional vs modern spm
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and Methods
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
 
System testing
System testingSystem testing
System testing
 
Risk management(software engineering)
Risk management(software engineering)Risk management(software engineering)
Risk management(software engineering)
 
Black box and white box testing
Black box and white box testingBlack box and white box testing
Black box and white box testing
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Static analysis
Static analysisStatic analysis
Static analysis
 
Incremental model (software engineering)
Incremental model (software engineering)Incremental model (software engineering)
Incremental model (software engineering)
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
 
Software Testing and Quality Assurance unit1
Software Testing and Quality Assurance  unit1Software Testing and Quality Assurance  unit1
Software Testing and Quality Assurance unit1
 
Software quality assurance activites
Software quality assurance activitesSoftware quality assurance activites
Software quality assurance activites
 

Similar to Improving software econimics

unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
WrushabhShirsat3
 
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
Utkarsh Agarwal
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
Ankit yadav
 
Chapter 09
Chapter 09Chapter 09
Chapter 09
Hiren Selani
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
Chris F Carroll
 
Unit ii
Unit   iiUnit   ii
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
Andrew Phillips
 
Importance of Software architecture
Importance of Software architectureImportance of Software architecture
Importance of Software architecture
Steve Essich
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
3Quill Softwares
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
Vishal Singh
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
HopeTutors1
 
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
Mozaic Works
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
Giovanni Asproni
 
BDD Primer
BDD PrimerBDD Primer
BDD Primer
Attila Bertók
 
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
 
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
Kuwait10
 
Unit V.pptx
Unit V.pptxUnit V.pptx
Unit V.pptx
ODINARARCH
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
Ivano Malavolta
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
Niels Bech Nielsen
 
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 ...
Boyd Hemphill
 

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

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 

Recently uploaded (20)

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 

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.