software reuse; caught between strategic importance and practical
TRANSCRIPT
Software Reuse; Caught between strategic importanceand practical feasibility
by Gerrit Muller Embedded Systems Institutee-mail: [email protected]
www.gaudisite.nl
AbstractWorldwide the belief is shared that software reuse is needed to cope with theever increasing amount of software. Software reuse is one part of addressingthe amount of software, which is often overhyped and underestimated. Reuseof software is discussed via 8 statements, addressing: the need for reuse, thetechnical and organizational challenges, integration issues, evolution, reuse ofknow how, focus on the bussiness and customer and validation.
Distribution
This article or presentation is written as part of the Gaudí project. The Gaudí projectphilosophy is to improve by obtaining frequent feedback. Frequent feedback is pursued by anopen creation process. This document is published as intermediate or nearly mature versionto get feedback. Further distribution is allowed as long as the document remains completeand unchanged.
21st February 2008status: conceptversion: 1.0
features
performance expectations
number of products
release cycle time years months
feature interaction
complexity
amount of software
new methods new tools
new standards integration effort
hardware performance
reuse openness interoperability
reliability
trends consequences solutions
new software technology
Why reuse: many valid objectives
+ reduced time to market + reduced cost per function + improved quality + improved reliability + easier diversity management + employees only have to understand one base system + improved predictability + larger purchasing power + means to consolidate knowledge + increase added value + enables parallel developments of multiple products + free feature propagation
Software Reuse; Caught between strategic importance and practical feasibility2 Gerrit Muller
version: 1.021st February 2008
SWRwhyReuse
Experiences with reuse, from counterproductive to effective
good reduced time to market reduced investment reduced (shared) maintenance cost improved quality improved reliability easier diversity management understanding of one base system improved predictability larger purchasing power means to consolidate knowledge increase added value enables parallel developments free feature propagation
bad longer time to market
high investments lots of maintenance
poor quality poor reliability
diversity is opposed lot of know how required
predictable too late dependability
knowledge dilution lack of market focus
interference but integration required
Software Reuse; Caught between strategic importance and practical feasibility3 Gerrit Muller
version: 1.021st February 2008
SWRexperiences
Succesful examples of reuse
homogeneous domain
hardware dominated
limited scope
cath lab MRI television waferstepper
car airplane shaver television
audio codec compression library streaming library
Software Reuse; Caught between strategic importance and practical feasibility4 Gerrit Muller
version: 1.021st February 2008
SWRsuccessful
Limits of successful reuse
poor/slow response on paradigm shifts
TV: LCD screens cath lab: image based acquisition control
struggle with integration/convergence with other domains
TV: digital networks and media cath lab: US imaging, MRI
software maintenance, configurations, integration, release
MRI: integration and test wafersteppers: number of configurations
how to innovate?
Software Reuse; Caught between strategic importance and practical feasibility5 Gerrit Muller
version: 1.021st February 2008
SWRlimits
Reuse statements
customer diversity market dynamics product diversity reuse shared
proven functionality
1 Reuse of software modules is needed
2 The technical and
reuse sharing
conflicting interests
overdesign or under performance
complicated supplier customer
relationships
3 organizational challenge are underestimated
integrating concepts: performance, resource management, exception handling, etcetera
4 Components are the easy part, integration is difficult
Software Reuse; Caught between strategic importance and practical feasibility6 Gerrit Muller
version: 1.021st February 2008
SWRstatements
Reuse statements continued
5 Reuse of know how or people instead of
implementation i s more effective
6 The p latform must evolve continuously
7 Focus on business bottomline and customer not on reuse
8. Use before reuse
dynamic market changing applications
served by
up to date products
based on
evolving platform
rapid changing technology
(Moore!) using
specification
design
implementation
validation
verification
people
know how
Software Reuse; Caught between strategic importance and practical feasibility7 Gerrit Muller
version: 1.021st February 2008
SWRstatementsContinued
1. Reuse is needed
Software Reuse; Caught between strategic importance and practical feasibility8 Gerrit Muller
version: 1.021st February 2008
Reuse is needed ... as part of the solution
features
performance expectations
number of products
release cycle time years months
feature interaction
complexity
amount of software
new methods new tools
new standards integration effort
hardware performance
reuse openness interoperability
reliability
trends consequences solutions
new software technology
Software Reuse; Caught between strategic importance and practical feasibility9 Gerrit Muller
version: 1.021st February 2008SWRreuseNeeded
2. Technical challenge
Software Reuse; Caught between strategic importance and practical feasibility10 Gerrit Muller
version: 1.021st February 2008
The danger of being generic: bloating
after refactoring
specific implementations
without a priori re-use generic design from
scratch
lots of if-then-else
lots of configuration options
lots of stubs
lots of best guess defaults
over-generic class
lots of config over- rides
lots of config over- rides
lots of config over- rides
toolbox side
client side
in retrospect common (duplicated) code
"Real-life" example: redesigned Tool super-class and descendants, ca 1994
Software Reuse; Caught between strategic importance and practical feasibility11 Gerrit Muller
version: 1.021st February 2008
GDbloatingVisualized
Exploring bloating
overhead
value
legenda
core function
poor
des
ign
("ho
w")
poor
spe
cific
atio
n ("
wha
t")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
genericity configurability provisions for
future
support for unused legacy code
Software Reuse; Caught between strategic importance and practical feasibility12 Gerrit Muller
version: 1.021st February 2008
EASRTbloating
Bloating causes more bloating
overhead
value
legenda
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
decomposition overhead poor
design poor spec
dogmatic rules
support for unused legacy code
genericity configurability provisions for
Software Reuse; Caught between strategic importance and practical feasibility13 Gerrit Muller
version: 1.021st February 2008
EASRTbloatingCausesBloating
causes even more bloating...
overhead
value
legenda
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
core functionality
genericity configurability provisions for
future
support for unused legacy code
poor
des
ign
("ho
w")
dogm
atic
rule
s fo
r ins
tanc
e fin
e gr
ain
CO
M in
terfa
ces
poor
spe
cific
atio
n ("
wha
t")
decomposition overhead poor
design poor spec
dogmatic rules
support for unused legacy code
genericity configurability provisions for
performance, resource optimization
poor design
poor spec
dogmatic rules
support for unused legacy code
genericity configurability provisions for
Bloating causes performance and resource problems.
Solution: special measures: memory pools, shortcuts, ...
Software Reuse; Caught between strategic importance and practical feasibility14 Gerrit Muller
version: 1.021st February 2008
EASRTbloatingCausesBloatingMore
3. Organizational challenge
Software Reuse; Caught between strategic importance and practical feasibility15 Gerrit Muller
version: 1.021st February 2008
Conventional operational organization
portfolio
operational manager
family
operational manager
project leader
(single product)
project leader
(subsystem)
developers
portfolio architect
family architect
product architect
subsystem architect
marketing manager
family
marketing manager
product manager
entire portfolio
product family
single product
subsystem
module
operational technical commercial
Software Reuse; Caught between strategic importance and practical feasibility16 Gerrit Muller
version: 1.021st February 2008
PCPoperationalOrganization
Modified operational organization
portfolio
operational manager
family
operational manager
project leader
(single product)
project leader
(subsystem)
subsystem developers
entire portfolio
product family
single product
sub- system
module
operational
project leader platform
project leader
(component)
component developers
marketing manager
family
marketing manager
product manager
commercial
portfolio architect
family architect
product architect
subsystem architect
technical
platform architect
component architect
platform manager
component manager
platform
component
Software Reuse; Caught between strategic importance and practical feasibility17 Gerrit Muller
version: 1.021st February 2008
GDoperationalOrganization
Reuse causes coupling
product creation
family creation
product creation
platform creation
policies priorities
deliverables
budgets constraints
deliverables
customer
customer
conflicting interests
Software Reuse; Caught between strategic importance and practical feasibility18 Gerrit Muller
version: 1.021st February 2008
SWRorganizationalCoupling
4. Integration
Software Reuse; Caught between strategic importance and practical feasibility19 Gerrit Muller
version: 1.021st February 2008
Decomposition is easy, integration is difficult
Decomposition is "easy"
Integration is difficult
Software Reuse; Caught between strategic importance and practical feasibility20 Gerrit Muller
version: 1.021st February 2008
LWAdecompositionAndIntegration
Nasty surprises show up during integration
component 1
component 4
component 3
component 2
integration and test
scheduled closing date
delay
Do you have any design issues for the design meeting?
The default answer is: No.
realized closing date
During integration numerous problems become visible
Software Reuse; Caught between strategic importance and practical feasibility21 Gerrit Muller
version: 1.021st February 2008
MSintegration
Architectural mismatch
tuner tuner MPEG MPEG
Duplication
Architectural mismatch : wrappers, translators, conflicting controls
Poor performance; additional resource usage
additional code and complexity,
no added value
UI UI
non problem Problems Architecture Reuse
Software Reuse; Caught between strategic importance and practical feasibility22 Gerrit Muller
version: 1.021st February 2008ARmergeProblems
Integrating concepts
resource usage
perfor- mance
exception handling
device abstraction
pipeline
start up shut down
persistence
IQ
tuner frame- buffer MPEG DSP CPU RAM
drivers scheduler OS
etc
audio video TXT file-
system networking etc.
view play browse
storage
acquisition compress encoding
display de- compress
decoding 2. construction
decomposition
3. allocation
1. functional decomposition
4. infrastructure
5. choice of integrating
concepts
safety
security
Software Reuse; Caught between strategic importance and practical feasibility23 Gerrit Muller
version: 1.021st February 2008
SWRintegratingConcepts
Platform block diagram
Architecture guidelines
Base Product
Hardware Abstraction Infrastructure services
Application Toolboxes
Application Services
Test environment
Development support
services
Product 1 specifics
Product 2 specifics
Product n specifics
Hardware
Software Reuse; Caught between strategic importance and practical feasibility24 Gerrit Muller
version: 1.021st February 2008SWRblockDiagram
Platform types
Architecture guidelines
Base Product
Infrastructure services
Application Toolboxes
Application Services
Test environment
Development support
services
Product 1 specifics
Product 2 specifics
Product n specifics
Architecture guidelines
Base Product
Infrastructure services
Application Toolboxes
Application Services
Test environment
Development support
services
Product 1 specifics
Product 2 specifics
Product n specifics
Architecture guidelines
Base Product
Infrastructure services
Application Toolboxes
Application Services
Test environment
Development support
services
Product 1 specifics
Product 2 specifics
Product n specifics
Hardware Abstraction
Hardware
Hardware Abstraction
Hardware
Hardware Abstraction
Hardware
integration level
system
component
prep
arat
ion
leve
l
subsystem
"platform"
module
syst
em
com
pone
nt
subs
yste
m
"pla
tform
"
mod
ule
"Delegated" integration
Shared integration
A
B
C
A B
C
Software Reuse; Caught between strategic importance and practical feasibility25 Gerrit Muller
version: 1.021st February 2008SWRplatformTypes
5. Reuse of know how and people
Software Reuse; Caught between strategic importance and practical feasibility26 Gerrit Muller
version: 1.021st February 2008
Reuse in CAFCR perspective
Customer What
Customer How
Product What
Product How
What does Customer need in Product and Why ?
C ustomer objectives
A pplication F unctional C onceptual R ealization
rate of change
Understanding spec design implemen- tation
"easy" reuse costly reuse
Software Reuse; Caught between strategic importance and practical feasibility27 Gerrit Muller
version: 1.021st February 2008
SWRrateOfChangeCAFCR
6. Evolution
Software Reuse; Caught between strategic importance and practical feasibility28 Gerrit Muller
version: 1.021st February 2008
The platform in a dynamic world
Architecture
Platform
Dynamic Market
Fast changing Technology
How stable is a platform or an architecture?
Components
Software Reuse; Caught between strategic importance and practical feasibility29 Gerrit Muller
version: 1.021st February 2008
LWAplatformStability
Platform evolution (Easyvision 1991-1996)
1991
1992
1994
1991
1994
Last changed in:
Growth
Change
3 rd generation components are mature, active maintenance needed. Growth and change continues, some "old" components become obsolete
1992
1996
Software Reuse; Caught between strategic importance and practical feasibility30 Gerrit Muller
version: 1.021st February 2008
LWAplatformEvolution
7. Focus on business bottomline and customer
Software Reuse; Caught between strategic importance and practical feasibility31 Gerrit Muller
version: 1.021st February 2008
Simplified process view
policy and planning
customer
Philips business
valu
e
PCP
customer oriented process (sales, service, production)
people and technology management process
Software Reuse; Caught between strategic importance and practical feasibility32 Gerrit Muller
version: 1.021st February 2008
ISADprocessDecomposition
Modified Process Decomposition
policy and planning
customer
Philips business
value
PCP
customer oriented process (sales, service, production)
people and technology management process
create generic components
Software Reuse; Caught between strategic importance and practical feasibility33 Gerrit Muller
version: 1.021st February 2008
SWRprocessDecompositionFamily
Financial Viewpoint on Process Decomposition
policy and planning
customer
Philips business
value
PCP
customer oriented process (sales, service, production)
people and technology management process
create generic components
management
tomorrow's cashflow
strategic asset
generation
assets
cashflow generation
Software Reuse; Caught between strategic importance and practical feasibility34 Gerrit Muller
version: 1.021st February 2008
SWRprocessDecompositionFamilyByValue
Feedback flow: loss of customer understanding!
policy and planning
Philips business
value
people and technology management process
create generic components
PCP
feed
- ba
ck
customer
customer oriented process (sales, service, production)
Software Reuse; Caught between strategic importance and practical feasibility35 Gerrit Muller
version: 1.021st February 2008
SWRprocessDecompositionFamilyPlusFlow
Models for reuse
lead customer
carrier product
platform
technology push
good direct feedback
too specific?
generic? no feedback
bad
advanced demanding
innovate for specific customer refactor to extract generics
innovate for specific product refactor to extract generics
innovate in generic platform integrate in products
innovate in research laboratory transfer to product development
Software Reuse; Caught between strategic importance and practical feasibility36 Gerrit Muller
version: 1.021st February 2008
SWRreuseModels
8. Use before reuse
Software Reuse; Caught between strategic importance and practical feasibility37 Gerrit Muller
version: 1.021st February 2008
Feedback
3 months 25 months
Start
Target
stepsize: elapsed time:
Software Reuse; Caught between strategic importance and practical feasibility38 Gerrit Muller
version: 1.021st February 2008LWAfeedbackLarge
Feedback (2)
3 months 25 months
2 months 12 months
Start Start
Target Target
stepsize: elapsed time
Software Reuse; Caught between strategic importance and practical feasibility39 Gerrit Muller
version: 1.021st February 2008
LWAfeedbackMedium
Feedback (3)
3 months 25 months
2 months 12 months
1 month 8 months
Start Start Start
Target Target Target
stepsize: elapsed time
Small feedback cycles result in Faster Time to Market
Software Reuse; Caught between strategic importance and practical feasibility40 Gerrit Muller
version: 1.021st February 2008LWAfeedbackSmall
Use = Validate before Reuse
Does it satisfy the needs?
Does it fit in the constraints?
Does it fit in the design?
Is the quality sufficient? multiplication of problems or multiplication of benefits
architectural match no bloating
cost price effort
performance functionality user interface
Software Reuse; Caught between strategic importance and practical feasibility41 Gerrit Muller
version: 1.021st February 2008
SWRuseBeforeReuse