Software Decomposition and Instrumentation for Enhanced Flexibility and Reusability

S. Jarzabek and H. Zhang (Singapore)


Software Engineering, Reusability, Flexibility, Software Design.


Changes in business environment are inevitable and frequent. Layers of software systems related to business workflow and function must be flexible enough to evolve in response to those changes. Flexibility is, therefore, a critical quality that marks successful long-lived software systems. Flexibility is also a key to software reuse. In this paper, we argue that some of the concepts of Object Oriented (OO) approach are not supportive to achieving flexibility in software models and programs. Decomposition along object boundaries, if taken literally, leads to fragmentation of system control and functions into objects’ methods. For system layers affected by frequent changes such fragmentation is counter productive during software evolution and hampers reuse. This phenomenon is known to companies who have been applying OO languages or visual environments based on OO concepts to long-lived software systems. In the paper, we illustrate the above problem and describe techniques for enhanced flexibility of software system models and programs.

Important Links:

Go Back