Software Reuse; Caught between strategic importance andpractical feasibility
by Gerrit Muller University of South-Eastern Norway-NISEe-mail: [email protected]
www.gaudisite.nl
Abstract
Worldwide 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.
June 21, 2020status: conceptversion: 1.0
features
performance
expectations
number of
products
release cycle timeyears months
feature
interaction
complexity
amount of
software
new methods
new tools
new standardsintegration
effort
hardware
performance
reuseopenness
interoperabilityreliability
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.0June 21, 2020
SWRwhyReuse
Experiences with reuse, from counterproductive to effective
goodreduced 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
badlonger 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.0June 21, 2020
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.0June 21, 2020
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.0June 21, 2020
SWRlimits
Reuse statements
customer diversity
market dynamicsproduct 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.0June 21, 2020
SWRstatements
Reuse statements continued
5 Reuse of know how or people instead of
implementation is more effective
6 The platform must evolve continuously
7 Focus on business bottomline and customer
not on reuse
8. Use before reuse
dynamic market
changing applicationsserved by
up to date
productsbased
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.0June 21, 2020
SWRstatementsContinued
1. Reuse is needed
Software Reuse; Caught between strategic importance and practical feasibility8 Gerrit Muller
version: 1.0June 21, 2020
Reuse is needed ... as part of the solution
features
performance
expectations
number of
products
release cycle timeyears months
feature
interaction
complexity
amount of
software
new methods
new tools
new standardsintegration
effort
hardware
performance
reuseopenness
interoperabilityreliability
trends consequences solutions
new software
technology
Software Reuse; Caught between strategic importance and practical feasibility9 Gerrit Muller
version: 1.0June 21, 2020
SWRreuseNeeded
2. Technical challenge
Software Reuse; Caught between strategic importance and practical feasibility10 Gerrit Muller
version: 1.0June 21, 2020
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.0June 21, 2020
GDbloatingVisualized
Exploring bloating
overhead
value
legenda
core
function
po
or
de
sig
n (
"ho
w")
po
or
sp
ecific
atio
n (
"wh
at"
)
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
genericity
configurability
provisions for
future
support for
unused legacy
code
Software Reuse; Caught between strategic importance and practical feasibility12 Gerrit Muller
version: 1.0June 21, 2020
EASRTbloating
Bloating causes more bloating
overhead
value
legenda
core
functionality
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
decomposition overheadpoor
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.0June 21, 2020
EASRTbloatingCausesBloating
causes even more bloating...
overhead
value
legenda
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
codep
oo
r d
esig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
core
functionality
genericity
configurability
provisions for
future
support for
unused legacy
code
po
or
de
sig
n (
"ho
w")
do
gm
atic r
ule
sfo
r in
sta
nce
fin
e g
rain
CO
M in
terf
ace
s
po
or
sp
ecific
atio
n (
"wh
at"
)
decomposition overheadpoor
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.0June 21, 2020
EASRTbloatingCausesBloatingMore
3. Organizational challenge
Software Reuse; Caught between strategic importance and practical feasibility15 Gerrit Muller
version: 1.0June 21, 2020
Conventional operational organization
subsystem
singleproduct
productfamily
entireportfolio
developersmodule
portfolio
operational
manager
family
operational
manager
(single product)
project
leader
subsystem
project
leader
operational
portfolio
architect
family
architect
product
architect
subsystem
architect
technical
portfolio
marketing
manager
family
marketing
manager
product
manager
commercial
Software Reuse; Caught between strategic importance and practical feasibility16 Gerrit Muller
version: 1.0June 21, 2020
PCPoperationalOrganization
Modified operational organization
subsystem
developers
entire
portfolio
product
family
single
product
sub-
system
module
project
leaderplatform
component
project
leader
component
developers
platform
architect
component
architect
platform
manager
component
manager
platform
component
portfolio
operational
manager
family
operational
manager
single product
project
leader
subsystem
project
leader
operational
portfolio
architect
family
architect
product
architect
subsystem
architect
technical
portfolio
marketing
manager
family
marketing
manager
product
manager
commercial
Software Reuse; Caught between strategic importance and practical feasibility17 Gerrit Muller
version: 1.0June 21, 2020
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.0June 21, 2020
SWRorganizationalCoupling
4. Integration
Software Reuse; Caught between strategic importance and practical feasibility19 Gerrit Muller
version: 1.0June 21, 2020
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.0June 21, 2020
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.0June 21, 2020MSintegration
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.0June 21, 2020
ARmergeProblems
Integrating concepts
resource
usageperfor-
mance
exception
handling
device
abstraction
pipeline
start up
shut down
persistence
IQ
tunerframe-
bufferMPEG DSP CPU RAM
drivers scheduler OS
etc
audio video TXTfile-
systemnetworkingetc.
view play browse
storage
acquisition compress encoding
displayde-
compressdecoding
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.0June 21, 2020
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.0June 21, 2020
SWRblockDiagram
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
pre
par
atio
n le
vel
subsystem
"platform"
module
syste
m
co
mp
on
en
t
su
bsyste
m
"pla
tfo
rm"
mo
du
le
"Delegated" integration
Shared integration
A
B
C
A B
C
Software Reuse; Caught between strategic importance and practical feasibility25 Gerrit Muller
version: 1.0June 21, 2020
SWRplatformTypes
5. Reuse of know how and people
Software Reuse; Caught between strategic importance and practical feasibility26 Gerrit Muller
version: 1.0June 21, 2020
Reuse in CAFCR perspective
Customer
What
Customer
How
Product
What
Product
How
What does Customer need
in Product and Why?
Customer
objectives
Application Functional Conceptual Realization
rate of
change
Understanding spec design implemen-
tation
"easy" reusecostly
reuse
Software Reuse; Caught between strategic importance and practical feasibility27 Gerrit Muller
version: 1.0June 21, 2020
SWRrateOfChangeCAFCR
6. Evolution
Software Reuse; Caught between strategic importance and practical feasibility28 Gerrit Muller
version: 1.0June 21, 2020
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.0June 21, 2020
LWAplatformStability
Platform evolution (Easyvision 1991-1996)
1991
1992
1994
1991
1994
Last changed in:
Growth
Change
3rd
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.0June 21, 2020
LWAplatformEvolution
7. Focus on business bottomline and customer
Software Reuse; Caught between strategic importance and practical feasibility31 Gerrit Muller
version: 1.0June 21, 2020
Simplified process view
policy and
planning
customer
Philips business
value
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.0June 21, 2020
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.0June 21, 2020
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.0June 21, 2020
SWRprocessDecompositionFamilyByValue
Feedback flow: loss of customer understanding!
policy and
planning
Philips business
value
people and technology management process
create generic components
PCP
feed-
back
customer
customer oriented process(sales, service, production)
Software Reuse; Caught between strategic importance and practical feasibility35 Gerrit Muller
version: 1.0June 21, 2020
SWRprocessDecompositionFamilyPlusFlow
Models for reuse
lead customer
carrier product
platform
technology push
gooddirect 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.0June 21, 2020
SWRreuseModels
8. Use before reuse
Software Reuse; Caught between strategic importance and practical feasibility37 Gerrit Muller
version: 1.0June 21, 2020
Feedback
3 months
25 months
Start
Target
stepsize:
elapsed time:
Software Reuse; Caught between strategic importance and practical feasibility38 Gerrit Muller
version: 1.0June 21, 2020
LWAfeedbackLarge
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.0June 21, 2020
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.0June 21, 2020
LWAfeedbackSmall
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.0June 21, 2020
SWRuseBeforeReuse