Eclipse SCAVA collects data from open-source repositories (code version management systems, issue trackers, continuous integration systems and discussion forums in natural language). This data is analyzed qualitatively and then stored in a knowledge base. The knowledge base is used to query for specific answers when the programmer is confronted with (a) a design decision (b) a code or design smell. SCAVA extends the Eclipse IDE for several languages, at least the Java language at first, with new IDE interactions for code suggestions and problem detection.
To this end, the following tools are in scope:
- source code analysis tools to extract and store actionable knowledge from the source code of a collection of open-source projects
- natural language analysis tools to extract quality metrics related to the communication channels, and bug tracking systems of OSS projects by using Natural Language Processing and text mining techniques;
- system conﬁguration analysis tools to gather and analyse system conﬁguration artefacts and data to provide an integrated DevOps-level view of a considered open source project;
- workﬂow-based knowledge extractors to simplify the development of bespoke analysis and knowledge extraction tools by contributing a framework that will shield engineers from technological issues and allow them to concentrate on the core analysis tasks instead;
- cross-project relationship analysis tools to specify and manage in a homogeneous manner a wider range of open source project relationships, such as dependencies and conﬂicts. The outcomes of the diﬀerent SCAVA analysis tools will contribute the deﬁnition of a knowledge base supporting multidimensional classiﬁcations of projects and disclosing a number of applications such as automated identiﬁcation of complementary and competing projects, project incompatibilities and prediction of the future of given projects based on the evolution of other projects that had similar characteristics in the past.
- extensions for the Eclipse IDE that will allow developers to adopt the SCAVA knowledge base and analysis tools directly from the development environment. The IDE extensions will also include features for monitoring the developer activity while they work on a given OSS project. Thus the IDE will issue alerts or recommendations and collect user feedback which will help developers to improve their productivity. Depending on the context, recommendations can include suggested code snippets, patterns, automatic ﬁx to coding issues, suggestions to use alternative APIs or components, etc.