software reuse; caught between strategic importance and practical

41
Software Reuse; Caught between strategic importance and practical feasibility by Gerrit Muller Embedded Systems Institute e-mail: [email protected] www.gaudisite.nl Abstract Worldwide the belief is shared that software reuse is needed to cope with the ever increasing amount of software. Software reuse is one part of addressing the amount of software, which is often overhyped and underestimated. Reuse of software is discussed via 8 statements, addressing: the need for reuse, the technical and organizational challenges, integration issues, evolution, reuse of know how, focus on the bussiness and customer and validation. Distribution This article or presentation is written as part of the Gaudí project. The Gaudí project philosophy is to improve by obtaining frequent feedback. Frequent feedback is pursued by an open creation process. This document is published as intermediate or nearly mature version to get feedback. Further distribution is allowed as long as the document remains complete and unchanged. 21st February 2008 status: concept version: 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

Upload: others

Post on 03-Feb-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Reuse; Caught between strategic importance and practical

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

Page 2: Software Reuse; Caught between strategic importance and practical

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

Page 3: Software Reuse; Caught between strategic importance and practical

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

Page 4: Software Reuse; Caught between strategic importance and practical

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

Page 5: Software Reuse; Caught between strategic importance and practical

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

Page 6: Software Reuse; Caught between strategic importance and practical

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

Page 7: Software Reuse; Caught between strategic importance and practical

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

Page 8: Software Reuse; Caught between strategic importance and practical

1. Reuse is needed

Software Reuse; Caught between strategic importance and practical feasibility8 Gerrit Muller

version: 1.021st February 2008

Page 9: Software Reuse; Caught between strategic importance and practical

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

Page 10: Software Reuse; Caught between strategic importance and practical

2. Technical challenge

Software Reuse; Caught between strategic importance and practical feasibility10 Gerrit Muller

version: 1.021st February 2008

Page 11: Software Reuse; Caught between strategic importance and practical

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

Page 12: Software Reuse; Caught between strategic importance and practical

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

Page 13: Software Reuse; Caught between strategic importance and practical

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

Page 14: Software Reuse; Caught between strategic importance and practical

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

Page 15: Software Reuse; Caught between strategic importance and practical

3. Organizational challenge

Software Reuse; Caught between strategic importance and practical feasibility15 Gerrit Muller

version: 1.021st February 2008

Page 16: Software Reuse; Caught between strategic importance and practical

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

Page 17: Software Reuse; Caught between strategic importance and practical

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

Page 18: Software Reuse; Caught between strategic importance and practical

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

Page 19: Software Reuse; Caught between strategic importance and practical

4. Integration

Software Reuse; Caught between strategic importance and practical feasibility19 Gerrit Muller

version: 1.021st February 2008

Page 20: Software Reuse; Caught between strategic importance and practical

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

Page 21: Software Reuse; Caught between strategic importance and practical

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

Page 22: Software Reuse; Caught between strategic importance and practical

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

Page 23: Software Reuse; Caught between strategic importance and practical

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

Page 24: Software Reuse; Caught between strategic importance and practical

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

Page 25: Software Reuse; Caught between strategic importance and practical

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

Page 26: Software Reuse; Caught between strategic importance and practical

5. Reuse of know how and people

Software Reuse; Caught between strategic importance and practical feasibility26 Gerrit Muller

version: 1.021st February 2008

Page 27: Software Reuse; Caught between strategic importance and practical

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

Page 28: Software Reuse; Caught between strategic importance and practical

6. Evolution

Software Reuse; Caught between strategic importance and practical feasibility28 Gerrit Muller

version: 1.021st February 2008

Page 29: Software Reuse; Caught between strategic importance and practical

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

Page 30: Software Reuse; Caught between strategic importance and practical

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

Page 31: Software Reuse; Caught between strategic importance and practical

7. Focus on business bottomline and customer

Software Reuse; Caught between strategic importance and practical feasibility31 Gerrit Muller

version: 1.021st February 2008

Page 32: Software Reuse; Caught between strategic importance and practical

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

Page 33: Software Reuse; Caught between strategic importance and practical

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

Page 34: Software Reuse; Caught between strategic importance and practical

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

Page 35: Software Reuse; Caught between strategic importance and practical

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

Page 36: Software Reuse; Caught between strategic importance and practical

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

Page 37: Software Reuse; Caught between strategic importance and practical

8. Use before reuse

Software Reuse; Caught between strategic importance and practical feasibility37 Gerrit Muller

version: 1.021st February 2008

Page 38: Software Reuse; Caught between strategic importance and practical

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

Page 39: Software Reuse; Caught between strategic importance and practical

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

Page 40: Software Reuse; Caught between strategic importance and practical

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

Page 41: Software Reuse; Caught between strategic importance and practical

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