Enterprise Architecture Capability Profile for Software Reuse
Most of today's software development projects depend on the usage of existing solutions to save time and development cost. To achieve this goal, companies should take advantage of the features provided by services or application programming interfaces exposed by existing solutions. Collecting and qualifying IT components and services helps to reuse them directly or via orchestration. The goal of this work is twofold. First, we target the design of a software capability container that provides a broader view of an organization’s internal and external software. The second objective is to define an exploitation model of the software capability profiles in line with requirements engineering and enterprise architecture, to fill the gap between the goals of the stakeholders and what can be delivered as a practical solution. However, to achieve the above-stated objectives, there are many challenges to manage the complexity of the exploitation of internal or external’s software capability profiles, to select the best candidate components to act as a building blocks in a new system. Among those challenges, one can mention the identification of architectural artifacts for the evaluation and reuse of software components. Adding to this challenge, the alignment of requirements and architectural artifacts in engineering cycle for requirements consolidation and refinement to facilitate the discovery and reuse of existing solutions.
For this purpose, we define a Framework offering a qualification process that helps to retrieve and gather initial requirements used to guide the development of existing software and related services. The qualification process is based on a proposed Enterprise Architecture Capability Profile and its associated ontology. This latter is useful to formally specify and encode the produced capability profile that offers a qualification and covers business, operational and technical aspects for service-oriented software. Furthermore, an exploitation methodology of the designed container is proposed along with the Framework and based on the alignment of requirements engineering process with an architecture development method. These latter evolve together to investigate the highest functional and technical compatibility of the desired functionalities and related constraints, to respond to end-user’s requirements and efficiently reuse the qualified solutions.
Our contribution aims to improve the evaluation, discovery, and reuse of existing software and related services. Besides, the originality of this research work consists in upgrading research on services consumption and orchestration to the level of end-users’ requirements, mapped with advanced service assets as an enabler for accelerating business application development. An implementation of the Framework along with an industrial case study are proposed to validate and demonstrate the effectiveness of this approach.