DICE focuses on quality assurance for data-intensive applications developed through the model-driven engineering (MDE) paradigm. The project aims at delivering methods and tools that will help satisfying quality requirements in data-intensive applications by iterative enhancement of their architecture design. That is, the monitoring data acquired during testing and operation will be deeply analyzed to find quality pitfalls and performance outliers. The goal is to identify quality anti-patterns in the architecture of the data-intensive application and exploit this to accelerate refactoring and iteratively optimize quality characteristics.
Existing MDE approaches are by large agnostic of data properties and usage, thus complicating the development of high-quality data-intensive applications and their quality assessment. Instead, DICE wants to define an MDE approach that has the ability to account for:
- Properties of data, for example value, type, logical relationships, storage location, rate of updates from external sources, volumes.
- Data usage patterns of the application, for example read rates, write rates, update rates, replication policy, and synchronization rates.
This information will enable quality assessment since the early design stages, thus reducing the chances of project failure and the number of possible quality incidents.
DICE will release a novel UML profile and tools to continuously enhance and deploy architecturally-optimized versions of data-intensive cloud applications. The tool chain will be composed of the following tools:
- DICE profile. An MDE profile to develop data-intensive cloud applications and annotate their quality requirements.
- DICE IDE. Integrated development environment to accelerate the development of data-intensive applications written in Java.
- Quality analysis tools. A tool chain to support quality-related decision-making composed by simulation, verification and optimization tools.
- Iterative quality enhancement tools. A set of tools and methods for iterative design refinement.
- Deployment and testing tools. A set of tools that will accelerate deployment and testing of data-intensive applications on private and public clouds.
The IDE will guide the developer through the DICE methodology. It will offer the ability to specify the data-intensive application through UML and the DICE profile. From these models, the tool chain will guide the developer through the different phases of quality prediction, deployment, testing, and acquisition of feedback data through monitoring. The iterative quality enhancement tool chain will analyze feedback data to detect quality incidents and anti-patterns of the application design. This information will be used to guide the developer through cycles of quality enhancement of the data-intensive application.