Professional Documents
Culture Documents
Reusability, Portability, and Interoperability Reuse Concepts
Reusability, Portability, and Interoperability Reuse Concepts
Reusability, Portability, and Interoperability Reuse Concepts
Reuse Concepts
Interoperability
• “If reinventing the wheel were a criminal • Portable
offense, many software professionals would be – Easily modifying a product as a whole to run under
languishing in jail”[Schach 2001] another compiler, OS, or hardware architecture
• Reuse
– Using components of one product to facilitate the
development of another product
1
Types of Reuse Types of Reuse
• Advantage of Deliberate reuse versus • Disadvantage of Deliberate reuse versus
Accidental reuse Accidental reuse
– Components are designed and constructed specially – Developing reusable product can be
for use in future developments • Expensive
– Easy to reuse • Time consuming to
– Safe to reuse – Design
– Robust – Implement
– Well documented – Test
– Thoroughly tested – Document
– Makes maintenance easier
• No guarantee the component will be reused
Ch8 Copyright © 2004 by Eugean 5 Ch8 Copyright © 2004 by Eugean 6
Hacopians Hacopians
2
Impediments to Reuse Impediments to Reuse
• Organizing and storing reusable modules are • Reuse is expensive
difficult – Three costs are involved in reuse
– Developers must find modules faster than they can • Cost of defining and implementing reuse process
develop such modules • Cost of making it reusable
– How to solve this problem? • Cost of reusing it
• Use CASE tools
3
Object and Reuse Object and Reuse
• Composit/structured design (C/SD) states: • Modules with information cohesion are better
– Modules with functional cohesion are candidates candidates for reuse
for reuse – A module that represents a real world entity
• Modules with functional cohesion perform one task – A module that contains data and the action that
• Disadvantage: operates on the data
– The data must be reused with the module
» If the data is not identical in the new project the data or the – Object (instance of a class) is such a module
functionality of the module must change – If Object -Oriented paradigm is utilized correctly,
the resulting object has information cohesion
• Results in reuse
Ch8 Copyright © 2004 by Eugean 13 Ch8 Copyright © 2004 by Eugean 14
Hacopians Hacopians
4
Design Patterns Software Architecture
• A solution to a general design problem in the • The architecture of a software product may be:
form of a set of interacting classes that have to – Object -Oriented
be customized to create a specific design – Pipes and filters (Unix components)
[Schach 2001] – Client-server
5
Portability Interoperability
• Incompatibilities • Mutual cooperation of object code from
– Hardware different vendors, written in different languages
– Operating system and running on different platforms
– Numerical software – Component Object Module (COM)
– Compiler – Common Object Request Broker Architecture
(CORBA)