Stanford Computer Industry Study

The Changing Software Paradigm

Gio Wiederhold

February 1996

Topic of Study

Program Creation and Maintenance

A central topic for the Software Industry and

for Education

Background:

3 years as program manager at ARPA (1991-94)

What is changing

Programming is changing

from code generation

to composition of existing codes

Two views of the change:

1. Logical progression

2. Paradigm change

Effects of the change

1. Logical Progression

2. Paradigm Shift

We have to explicitly change from

a subroutine mentality (programmer control) to

a service mentality (cooperation & mediation)

Evidence

PAST ARGUMENTS

Number of bits/word

Number of registers

Size of address field

An Early Example ~1980

Databases

Database Interfaces

SQL:

two parts

1. a Non-procedural Query Language

2. a Schema which exposes available data

but hides much detail

The query language is restricted to the terms given in the schema

The schema hides implementation detail

Recent Examples ~1990

Of removal of code by services:

Transform Data to Information

Application Layer

Mediation Layer

Foundation Layer

Evolution of mediation

Example in Health Care

Mediation on the WWW

Workforce reallocation

Integration originally performed for large systems ( > 5Mbyte )

Integration now performed for most systems ( > 5Mbyte )

Dealing with Multiple Services

But

Emerging Mediation

Maintenance

Maintenance Strategy

Good BENEFIT/COST

wrt customer

don't change system, interfaces

We expect SW to be adapatable

Ideal maintenance by reuse

Incremental Maintenance

1. New/Revised application neeeds more data

2. Mediator isolates other applications

3. New application checks out data and function

4. Other applications can join when feasible

versus

1. New/Revised application neeeds more data

2. Determine affected applications

3. Change affected codes, create test scaffolding

4. Plan for system-wide release at half-year cycle

5. Batch all other changes for that cycle

6. Perform critical, risky release of batch

New Metrics

Lines of Code --> Time to Asssemble a Product

Several years --> 3/6 months

System Administrator --> Customer

Detailed data --> Component / Service specs

New Role for Consultants

Old

and

Future

Conclusion

is occurring, nearly invisibly

than satisfying all wishes wrt to

performance and features

Dissemination