Section: Application Domains
Software Quality
As with any type of production, an essential part of software production is determining the quality of the software. The level of quality associated to a software product is inevitably tied to properties such as how well it was developed and how useful it is to its users. The AtlanMod team is considering software quality aspects in two areas that are described in the following paragraphs: formal verification of models and corpus-based domain-specific language (DSL) analysis.
In the context of MDE, models are expressions of a conceptualization (metamodel) of their respective domain. Therefore precise definitions of our metamodels are important to get the subsequent MDE activities right, such as testing, concrete syntax definition, model interchange, code generation, and any more. In this sense, metamodels establish a single point of truth. The Object Constraint Language (OCL) of the OMG is widely accepted as a standard language to provide such precise definitions.
However, precise metamodels are complex artifacts. To get them right, systematic approaches to quality assurance are required. As a solution to this problem, we propose formal checking of model satisfiability (can we express the desired things), and formal checking of unsatisfiability (does the metamodel not have models with undesirable properties). As both activities constitute NP-hard problems, they have to be put carefully into algorithms. The team maintains the tool EMFtoCSP which translates the problem into the domain of constrain logic programming (CLP) for which sophisticated decision procedures exist. The tool integrates the described functionality in the Eclipse Modeling Framework (EMF) and the Eclipse Modeling Tools (MDT), making the functionality available for MDE in practice.
In terms of DSLs, an equally important aspect of software language engineering other than the initial development process is the identification of quality characteristics of the language. We are currently investigating the use of corpus-based analysis to identify language characteristics. A corpus in this case consists of artifacts or models of the DSL that have been generated by its users. We aim to extract information based on the corpus of a DSL to identify various characteristics that can potentially prove useful for the language engineer in his or her efforts to improve the language. Such information can complement other quality measurements including the formal verification method described in the previous paragraph and user feedback-based evaluations. In addition to an initial investigation of cloning in DSLs, our corpus-based analysis is also investigating metamodel element instance and relationship analyses