Slide 8.1
Object-Oriented and
Classical Software
Engineering
Fifth Edition, WCB/McGraw-Hill, 2002
Stephen R. Schach
[email protected]
© The McGraw-Hill Companies, 2002
CHAPTER 8
REUSABILITY,
PORTABILITY, AND
INTEROPERABILITY
© The McGraw-Hill Companies, 2002
Slide 8.2
Overview









Reuse concepts
Impediments to reuse
Reuse case studies
Objects and reuse
Reuse during the design and implementation
phases
Reuse and maintenance
Portability
Techniques for achieving portability
Interoperability
© The McGraw-Hill Companies, 2002
Slide 8.3
Reuse Concepts

Two types of reuse
– Accidental reuse
» First, product is built
» Then, parts put into part database for reuse
– Planned reuse
» First, reusable parts are constructed
» Then, products are built using these parts
© The McGraw-Hill Companies, 2002
Slide 8.4
Why reuse?

Minor Reason
– It is expensive to design, implement, test, and
document software
– Only 15% of new code serves an original purpose
(average)
– Reuse of parts saves
»
»
»
»

Design costs
Implementation costs
Testing costs
Documentation costs
Major Reason
– Maintenance

Maintenance consumes two-thirds of software
cost
© The McGraw-Hill Companies, 2002
Slide 8.5
Impediments to Reuse




Not invented here (NIH) syndrome
Concerns about faults in potentially
reusable routines
Storage–retrieval
Cost of reuse
© The McGraw-Hill Companies, 2002
Slide 8.6
What sort of reuse rates can we expect?



Theoretical maximum is 85%
What can we get in practice?
Consider case studies (1975 through 2000)
© The McGraw-Hill Companies, 2002
Slide 8.7
Raytheon Missile Systems Division


Data-processing
software
Planned reuse of
– Designs
» 6 code templates
– COBOL code
» 3200 reusable
modules

Reuse rate 60%
(1976–1982)
© The McGraw-Hill Companies, 2002
Slide 8.8
Toshiba Fuchu Works, Tokyo


Industrial process control systems
Accidental reuse of
–
–
–
–
–
–



Specifications
Designs
Modules
Contracts
Manuals
Standards
Reuse rate (1985)
33% design
48% code
© The McGraw-Hill Companies, 2002
Slide 8.9
NASA Software



Ground support system for unmanned
spacecraft control
Management permitted (but did not encourage)
accidental reuse
Accidental reuse of
– Modules

Slide 8.10
Reuse rate (1982)
– 28% reused unchanged
– 10% reused with minor changes
© The McGraw-Hill Companies, 2002
GTE Data Services


Slide 8.11
Data-processing software
Strongly encouraged by management
– Cash incentives when module was accepted for reuse
– Cash incentive when module was reused

Accidental reuse of
– Modules

Reuse rate
– (1988) 15% reused code, $1.5 million saved
– (est. 1989) 20% reused code
– (est. 1993) 50% reused code
© The McGraw-Hill Companies, 2002
Hewlett-Packard


Implemented in many divisions of the
company
Software Technology Division
– Accidental reuse of resource planning software
– 4.1 faults per KLOC of new code, 0.9 for reused
code
– Overall fault rate decreased 51%
– Productivity increased 57%
– Cost $1 million, savings $4.1 million (1983–92)
© The McGraw-Hill Companies, 2002
Slide 8.12
Hewlett-Packard (contd)

Slide 8.13
San Diego Technical Graphics (STG)
–
–
–
–
–
–
Planned reuse of firmware for printers
Cost $2.6 million, savings $5.6 million (1987–94)
24% reduction in faults
40% increase in productivity
Cost of developing reusable firmware—11% more
Cost of reusing it—19% of developing from scratch
© The McGraw-Hill Companies, 2002
European Space Agency





Slide 8.14
Ariane 5 rocket blew up 37 seconds after lift-off
Cost: $500 million
Reason: attempt to convert 64-but integer into 16bit unsigned integer, without Ada exception
handler
On-board computers crashed, so did rocket
Conversion was unnecessary
– Computations on the inertial reference system can stop
9 seconds before lift-off
– But, if there is a subsequent hold in countdown, it takes
several hours to reset the inertial reference system
– Computations therefore continue 50 seconds into flight
© The McGraw-Hill Companies, 2002
European Space Agency (contd)

Slide 8.15
Cause of problem
– Ten years before, it was mathematically proven that
overflow was impossible—on the Ariane 4
– Because of performance constraints, conversions that
could not lead to overflow were left unprotected
– Software was used, unchanged and untested, on
Ariane 5
– But, the assumptions for the Ariane 4 no longer held

Lesson
– Software developed in one context needs to be
retested when integrated into another context
© The McGraw-Hill Companies, 2002
Size of Reused Components

Slide 8.16
NASA
– Most reused components were small

Toshiba
– Many large components were reused

GTE
– Many large components were reused

Reason
– A strong managerial commitment for reuse is needed
© The McGraw-Hill Companies, 2002
Objects and Reuse

Claim of CS/D
– Ideal module has functional cohesion

Problem
– The data on which the module operates

We cannot reuse a module unless the
data are identical
© The McGraw-Hill Companies, 2002
Slide 8.17
Objects and Reuse (contd)

Claim of CS/D:
– Next best module has informational cohesion
– This is an object (an instance of a class)


An object comprises both data and action
This promotes reuse
© The McGraw-Hill Companies, 2002
Slide 8.18
Reuse During Design and Implementation

Design reuse
–
–
–
–
Library or toolkit
Framework
Design pattern
Software architecture
© The McGraw-Hill Companies, 2002
Slide 8.19
Library or Toolkit


Set of reusable routines
Examples:
– Scientific software
– GUI class library or toolkit

The user is responsible
for the control logic (white
in figure)
© The McGraw-Hill Companies, 2002
Slide 8.20
Application Framework





Control logic of the design
“Hot spots” (white in figure)
Faster than reusing toolkit
More of design is reused
The logic is usually harder to
design than the operations
© The McGraw-Hill Companies, 2002
Slide 8.21
Design Pattern



A solution to a
general design
problem
In the form of a set
of interacting
classes
The classes need
to be customized
(white in figure)
© The McGraw-Hill Companies, 2002
Slide 8.22
Widget Generator

Tool that uses the set
of classes created by
the widget generator
© The McGraw-Hill Companies, 2002
Slide 8.23
Abstract Factory Pattern



Abstract classes
and abstract
(virtual) methods
The interfaces
between client and
program and
generator are
abstract
The application
program is
uncoupled from the
specific operating
system
© The McGraw-Hill Companies, 2002
Slide 8.24
Software Architecture

Encompasses a wide variety of design
issues, including:
– Organization in terms of components
– How those components interact
© The McGraw-Hill Companies, 2002
Slide 8.25
Reuse of Software Architecture


Slide 8.26
Architecture reuse can lead to large-scale reuse
One mechanism:
– Software product lines

Case study:
– Hewlett-Packard printers (1995 to 1998)
» Person-hours to develop firmware decreased by a factor of 4
» Time to develop firmware decreased by factor of 3
» Reuse has increased to over 70% of components
© The McGraw-Hill Companies, 2002
Reuse and Maintenance


Reuse impacts maintenance more than development
Assumptions
– 30% of entire product reused unchanged
– 10% reused changed


Slide 8.27
Savings during maintenance are nearly 18%
Savings during development are about 9.3%
© The McGraw-Hill Companies, 2002
Objects and productivity

Reuse achieved
– Not via modules with functional cohesion,
– but via objects (informational cohesion)
[classes]

In general
– Software costs have decreased
– Overall quality has improved
– Large products are essentially collection of
smaller products
© The McGraw-Hill Companies, 2002
Slide 8.28
Difficulties and Problems

Slide 8.29
Learning curve
– Particularly noticeable with GUI

Problems with inheritance
– New subclass does not affect its superclass
– But, any change to a superclass affects all its
subclasses
– Subclasses low in the inheritance tree can be huge
(inherited attributes)

Polymorphism and dynamic binding
– Maintenance problems were already discussed
© The McGraw-Hill Companies, 2002
Difficulties and Problems (contd)

Slide 8.30
Advantages far outweigh the problems
– Numerous refereed (e.g., [Capper et al., 1994]) and
informal (OOPSLA Addendum) reports
© The McGraw-Hill Companies, 2002
Portability



Slide 8.31
Product P: Machine M1 Op. Sys. O1 Compiler C1
Need P': Machine M2 Op. Sys. O2 Compiler C2
P is portable if it is cheaper to port P than to write
P' from scratch
© The McGraw-Hill Companies, 2002
Incompatibilities




Hardware (disk, tape, characters, parity)
Operating system (JCL, virtual memory)
Numerical software (word size, Ada)
Compiler
–
–
–
–
–
–
–
FORTRAN
Pascal
COBOL
C
Ada
C++
Java
© The McGraw-Hill Companies, 2002
Slide 8.32
Why Portability?

Difficulties hampering
portability
–
–
–
–

One-off software
Hardware incompatibility
Lifetimes of software, hardware
Multiple copy software
Portability saves money!
© The McGraw-Hill Companies, 2002
Slide 8.33
Portability strategies

Portable system software
– Isolate implementation-dependent
pieces
» UNIX kernel, device-drivers
– Levels of abstraction
» Graphics
© The McGraw-Hill Companies, 2002
Slide 8.34
Portability Strategies (contd)

Portable application software
–
–
–
–
–
Use popular language
Use popular operating system
Adhere to language standards
Avoid numerical incompatibilities
Excellent documentation
© The McGraw-Hill Companies, 2002
Slide 8.35
Portability Strategies (contd)

Portable data
– COBOL, Pascal versus ASCII files
– DBMS
© The McGraw-Hill Companies, 2002
Slide 8.36
Interoperability

The mutual cooperation of object code
– From different vendors
– Written in different languages
– Running on different machines

Example:
– Nation-wide network of ATMs
»
»
»
»
Server runs database software
Clients (ATMs) run C++
Communications software
Security
© The McGraw-Hill Companies, 2002
Slide 8.37
COM

Common Microsoft mechanism for all
component services
– Within the same process
» Invocation
– Different processes on the same machine
» Interprocess communication
– Between different machines
» Remote process call (RPC)
© The McGraw-Hill Companies, 2002
Slide 8.38
How COM Is Implemented




Each piece is implemented as a COM
component (“object”)
Each component has one or more interfaces
Each interface supports one or more functions
(“methods”)
The client calls the COM library and specifies
– The class of the component
– The specific interface

Slide 8.39
The COM library instantiates the COM
component
© The McGraw-Hill Companies, 2002
Warning

COM uses object-oriented terminology
– Class
– Object
– Method

However, COM is currently only objectbased, not object-oriented
© The McGraw-Hill Companies, 2002
Slide 8.40
CORBA



International standard architecture for objectoriented systems
Object request broker (ORB) allows client to
invoke a method of any object in the system
“The mother of all client/server middleware”
© The McGraw-Hill Companies, 2002
Slide 8.41
Comparing COM and CORBA

Slide 8.42
CORBA is an international standard
– Implemented on a wide variety of platforms

COM is a Microsoft product
– Hard to use with non-Microsoft products

Integration of COTS software is easier with COM
– Most COTS software is supplied by Microsoft

CORBA is much simpler than COM
© The McGraw-Hill Companies, 2002
Future Trends in Interoperability




Slide 8.43
COM and CORBA are currently the “big two”
Other interoperability products may succeed,
such as JavaBeans
Web-based applications need to be integrated
into client–server products
XML (Extensible Markup Language) will probably
play a major role
© The McGraw-Hill Companies, 2002
Descargar

The Software Process