IBM Implements Strategic Reuse for Developers - Joanne L. Scouler Curriculum Architect, IBM and Eran Gery Distinguished Engineer, Rational Continuous Engineering, IBM

IBM strikes a winner with developer support for code module reuse using an enterprise global component management  approach.  It is a sign of the maturity of the software industry that strategic reuse and product line engineering have emerged as core aspects of achieving efficient business operations.  

Using the IBM Rational systems and software engineering platform developers can achieve gain in efficiency across an entire product development project.  Projects are increasingly managed with a lifecycle perspective.   IBM® Rational® solution for systems and software engineering is referred to as the SSE platform.

Platforms facilitate strategic reuse in large-scale product line development.  Reusing components is a fundamental tenet of modern software development,  Applying change management across different variants, and leveraging automation  thereafter is used to control reuse.  Modern strategic reuse depends on establishing a robust variant control process.  Reuse is accomplished via strategic development controls.

The need for engineering development efficiency is apparent as systems become more complex.  Joanne L. Scouler (jscouler@us.ibm.com), Curriculum Architect, IBM and Eran Gery (eran.gery@il.ibm.com), Distinguished Engineer, Rational Continuous Engineering, IBM are the authors of a paper on strategic reuse.  http://www.ibm.com/developerworks/rational/library/14/strategic-reuse/index.html   Growing complexity of products and the integration of software for flexibility provides a way to respond to intensifying competitive pressures,  The need for engineering development efficiency is apparent as systems become more complex.

Component structures represent an early way software managers used to create tools useful for managing different configurations.  The evolution of component structures has brought the ability to enable increasingly fine-grained variations within the components.  In this way components can be modified and used for building a product in a manner that fosters reuse.

Products consist of multiple components, each with multiple configurations. Therefore, to manage the entire configuration of a product, the IBM platform uses global configurations.  A global configuration is a composite of configurations.  The ability to use different components from several tools across the life cycle is permitting more robust implementations of component architecture based on platform technology.

Global configurations can contain other global configurations, forming a hierarchy of configurations that typically corresponds to the hierarchical nature of a complex system. A hierarchy of global configurations represent the engineering assets of a complex model.

Models can be created that contain an entire product model configuration. The platform contains components from various lifecycle tools, including the requirements, overall architecture, and product level tests for that particular model. It contains other global configurations for the primary subsystems of the product:

The variability of a product line could be abstracted using feature models.  Feature modeling can augment variant management.  Feature modeling is achieved when combined with reuse patterns.  Feature models represent the variability of a system as a hierarchical tree, made of nodes. Features represent user visible capabilities of the system.  The feature model depicts the feature variation of the system