Systematic Reuse takes advantage of the similarities among software systems. As companies gain experience in software development with a given technology or for a certain business area, they become able to predict what will remain stable and what might change from one project to another. This ability can be used to organise software development a priori from the 'family' or 'domain' perspective, rather than having isolated projects that just use each others' results when the opportunity arises.
Dramatic productivity increase can be achieved in this way, by eliminating redundant work and streamlining the production process. This basically involves the creation of a common infrastructure of reusable artefacts (architectures, components, documentation, etc) and the systematic reuse of these core assets in all projects. The assets may be either developed or acquired in the market. Companies increasingly rely on commercial third-party software (COTS), raising the problem of integration mismatch.
A product family approach to software development fosters systematic reuse by capitalising on the organisation's experience in a business or technical domain to eliminate redundant work and streamline the production process.
The Systematic Reuse technology offer addresses to companies with the following characteristics:
Free/open source software (F/OSS) is now present in the market and constitutes an additional alternative when acquiring commercial software. F/OSS raises issues similar to those raised by COTS, but in addition it posses some additional concerns of technical and non-technical nature that need to be addressed in the context of integrating third-party components in software systems.
Deals with the techniques to identify, model and trace variability through different kinds of documents (design, code, text, etc.).
It consists of a CMMI® extension for Product Family Engineering. It is the result of the consensus from leading companies, and includes a set of services and qualification schemes associated with the extended model.
Extend the application of Product Family Engineering processes methods and tools to help aggregate applications in diverse domains. Address the specific problems of embedded systems and non-software domains. Master systems complexity by mapping different product variants to a single platform, while respecting constraints (such as time, memory, security, quality of service, etc.).
Addresses market and quality issues of third-party software. Emphasis is on overcoming the technical and non-technical (legal, managerial, etc.) barriers to develop a component market.
ESI has acquired a relevant international position in R&D in Product Families Engineering and Systematic Reuse. ESI has taken a prominent role in several R&D projects, leading some of the technical and management activities. A selection of these projects is:
Selected R&D projects list:
ESI has been working for more than 10 years in reuse technology and now it can offer a comprehensive set of products and services covering all the phases of reuse transition, from awareness to full implementation. This includes training, reuse investment analysis, reuse process assessment, domain analysis workshops and reuse transition planning and measurement.
The Reuse Based Software Factory (RBSF) is a very practical integrated solution that ESI has successfully implemented in several customers who develop information systems in a variety of sectors, including banking, public administration, telecommunications and transport. RBSF support development in a 'software factory's approach with tangible results in a very short time (a few months).