New Era of Software Reuse
Scope of Software Reuse
The reuse of good practice and well proven techniques has always been central to the various disciplines of engineering. Software engineering is no exception. In fact it is no surprise that reuse is one of the core ideas in software engineering. For example the concept of the program loop and the program subroutine are both examples of software reuse. The re-execution of a binary program is another trivial example of high-level software reuse.
From the above examples it is easy to conclude that the software reuse buzzword carries little meaning unless properly qualified by the nature of the reuse. Nevertheless, the systematic adoption of high-level reuse represents an extremely powerful idea in the efficient use of software. It is the most powerful mean so far when trying to improve quality and productivity in software development. Productivity gains of more than 20 times have been seen in software development as a result of a correct deployment of software reuse methodology.
Reuse Often Considered Unrealistic
In many engineering disciplines reuse is often realised in the form of mass produced hardware components, which can be reused in many imaginative combinations to form an endless variety of high quality systems with complex functionality. On the other hand, in software development reuse is often considered as an unrealistic option, because of the perceived ease of re-implementation shared by management and developers. The management is often bound by short-term goals, like wanting to meet narrow deadlines, while developers are a strongly reinforced in a "new implementation" culture by the instant gratification from the recreation process. This is often combined with a sometimes correct perception of lack of control when reusing software implemented by someone else. All of these factors strongly reinforces the well known "not-invented-here" culture, which in the extreme case applies to individuals within organisations, and which will seriously hamper any attempts to introduce effective high-level software reuse.
Software Reuse - a New Era
However, at MetaAgility we firmly believe that the software industry now stands on the threshold of a new era centred around the systematic adoption of high-level software reuse methodology. We believe that the techniques and the efficient management of software reuse are now sufficiently well understood to allow its systematic exploitation to the benefit of business.
High-Level Reuse Concepts
At MetaAgility we believe that future software reuse methodology will be focused on the following high-level reuse concepts:
Assembly of Complex Systems
A combination of these high-level reuse ideas will allow the assembly of complex systems and applications from a relatively small number of coarse-grain software components with black-box behaviour, which in isolation is relatively easy to understand and communicate.
Driven by Business Needs
The driving force for adopting software reuse technology does not primarily come from within the IT community, but from the strategic need of business organisations to become more adaptable.
Sverker Griph, January 2001
Return to the white paper index.
Home of www.metaagility.com
Copyright (2005) MetaAgility Knowledge Engineering.