FormArch Formal Software Architecture Development using Eclipse Christiano Braga Alexandre Sztajnberg cbraga@ic.uff.br alexszt@ime.uerj.br Universidade Federal Fluminense Universidade Estadual do Rio de Janeiro FormArch – p.1/21
Pervasive computing Modern computer applications are distributed and relate heterogeneous devices. A question that is now intriguing both the industry and the academy is how to define and guarantee that certain properties related to quality of services (QoS) provided by these applications are within certain parameters. FormArch – p.2/21
ADL Software Architecture Description Languages, or ADLs, are specification languages that allow the software engineer to focus on architecture-level issues such as component composition and their coordination. The ADL approach has several benefits when compared to other software development techniques such as a high-level of reuse and reconfiguration. FormArch – p.3/21
CBabel ADL CBabel is an ADL that also supports the definition of QoS properties, by means of contracts . As a side-effect, component code is not “cluttered” with code other than that related with the abstraction that the component implements, such as QoS issues. The question that remains unanswered is how to verify that an architecture description really fulfills all the QoS requirements. FormArch – p.4/21
Model Checking Model checking (MC) is a formal verification technique, that is, has a mathematical model. MC is applied on the state computation graph of a system specification. An important aspect is that the application of MC techniques can be fully automated. Two major problems with MC are the state explosion problem and a specification language that can naturally specify a system. FormArch – p.5/21
Model Checking (cont.) ADLs provide a nice abstraction technique minimizing the state explosion problem since they are domain-specific languages that constraint the state space to be explored to that of coordination or QoS aspects. Moreover we believe that component nesting concept (from Harel’s state-chart) can also provide a nice abstraction technique for component-level verification. FormArch – p.6/21
Model Checking (cont.) The question that remains unanswered now is how to specify and model check CBabel architecture descriptions. FormArch – p.7/21
RWL and Maude Rewriting logic (RWL) has been presented as a logic and semantic framework to which several logics and specification formalisms have been mapped to, due to its unified view of deduction and computation. Such logics and specification formalisms include linear temporal logic and the π -calculus. The Maude language is an algebraic declarative language that provides a concrete syntax to RWL. FormArch – p.8/21
RWL and Maude (cont.) The Maude system is high-performance implementation of RWL and the Maude language with built-in model checking capabilities. Several proving tools, such as an Inductive Theorem Prover and a Church-Rosser checker for equational theories, have been defined to Maude in Maude using its metalevel features. FormArch – p.9/21
Rewriting Semantics for CBabel All this has motivated us to define a mapping from CBabel to rewriting logic and Maude, that is, to specify a rewriting semantics to CBabel. The question now is how to integrate all the tools that have been defined to manipulate CBabel description to those created to reason about Maude specifications. FormArch – p.10/21
Integrating CBabel and Maude via Eclipse We named our approach FormArch and use the Eclipse platform to integrate CBabel and Maude tools. In FormArch we use: Eclipse Modeling Framework (EMF) to define CBabel and Maude models. XSLT to transform a XMI CBabel description into a XMI Maude theory. XSLT to transform Maude model checking results, such as counter examples, to data to be displayed by CBabel plugins. FormArch – p.11/21
CBDT – CBabel Development Tools CBabel tools include: Two perspectives: development and control. Development perspective’s views: Graphical editor for CBabel descriptions. Textual editor for CBabel descriptions. Architecture type checking. Verifies the port compatibilities. FormArch – p.12/21
CBDT (cont.) CBabel tools include: Development perspective’s views: Code generator. (EMF based!) Connection with Maude model checker plugin, parameterized by CBabel rewriting logic semantics, to model check architectural descriptions. FormArch – p.13/21
CBDT (cont.) CBabel tools include: Development perspective’s views: Connection with Maude model checker plugin, parameterized by, say Java , rewriting logic semantics and JDT, while using Java, to perform component-level model checking. FormArch – p.14/21
CBDT (cont.) CBabel tools include: Control perspective’s views: Architecture meta-data repository inspector. (EMF based!) Communication with R-Rio middleware which provides several services to run and manage the architecture, including dynamic reconfiguration. FormArch – p.15/21
MDT – Maude Development Tools Several plugins: Editor. (EMF based!) Console. Executes the interpreter and provides a graphical interface for the debugging tools. Specific plugins for tools including the Model Checker, programming languages semantics, ITP (Inductive Theorem Prover), Church-Rosser Checker and Knuth-Bendix Completion. FormArch – p.16/21
Using FormArch in Pervasive Apps The Architecture Designer: 1. The application architecture and QoS requirements, such as connection availability are described graphically or textually using CBDT. 2. For each version of the architecture description the Maude model checker view is used to make sure that the QoS requirements are preserved as well as all architectural-level properties that the designer wishes to verify. FormArch – p.17/21
Using FormArch (cont.) The Component Designer performs a similar process but for the component code (such as a PDA application) and uses the Maude model-checker view parameterized by the component-application’s programming language rewriting logic semantics, e.g. Java semantics. FormArch – p.18/21
Using FormArch (cont.) Due to Maude’s high-performance and its object-based foreign interface (under development), the specifications produced from CBabel descriptions can actually be used as applications. However if a further degree of performance is required, the tool can generate proven-correct code based on the rewriting logic semantics of the components’ programming language and CBabel. FormArch – p.19/21
Conclusion We have presented FormArch, an Eclipse-based tool for the development of software applications through architectural descriptions using formal verification techniques. Eclipse nicely integrates two different toolkits that in principle are unrelated. Moreover EMF is a key concept of the integration process since our approach relates two specification frameworks: CBabel and Maude. FormArch – p.20/21
Conclusion Moreover our approach adds a “semantic perspective” to the round-trip engineering that EMF proposes since all the translations are based on formal descriptions in RWL. In particular we wish to target the domain of pervasive applications with QoS requirements such as the mobile phone embedded and control software. FormArch – p.21/21
Recommend
More recommend