We call Smart APIs those data-intensive APIs that have been generated and evolved using the data-driven approach explored in this project.

In order to automate the creation and evolution of Smart APIs we define three separate processes can be seen in the figure below. In this figure it also appears the activities that we envisage will be necessary for each process and the artefacts necessary for conducting each activity. Finally, it also shows a possible implementation generated from the obtained models that will give rise to the execution environment.

P1. Smart API Generation. This process will be in charge of gathering the information, metadata and behaviour required to create a Smart API to be published by the API provider. With this information, a Smart API, its documentation with related metadata (including non-functional requirements, NFRs for short) and its implementation will be generated and stored in a directory. Additionally, this process will automatically generate and manage the DIFs mentioned in Section 2.1 and an ad-hoc API DB required to efficiently consume relevant external data. This process will address challenges Ch1 and Ch2 described in the previous section.

P2. Smart API Evolution Proposal Generation. As Smart APIs are invoked in an execution environment, they will store data coming from their execution. These data, along with the information provided by the Smart API users (developers and end-users) and the analysis of software repositories of API consumer applications, will be processed to recommend candidate evolution proposals for the Smart APIs. Those proposals, which will be evaluated using a set of strategic indicators, will be rendered to the Smart API provider who will be able to make informed decisions. This process will address challenges Ch3 and Ch4.

P3. Smart API Evolution. The last process will automate the Smart API evolution from the evolution proposals obtained in P2. The Smart API provider will select the Smart APIs that wants to evolve and will provide the necessary information to implement such evolution. This process will finally evolve the Smart APIs, and the entries in the directory of the corresponding APIs will be automatically modified regenerating the data flows and API DB required to the new version of the APIs. This process will address challenge Ch5.