10 research outputs found

    An MDA approach towards integrating formal and informal modeling languages

    Get PDF
    This paper shows how formal and informal modeling languages can be cooperatively used in the MDA framework, and how transformations between models in these languages can be achieved using an MDA development environment. The integrated approach also provides an effective V&V technique for the MDA

    Formalising behaviour trees with CSP

    Get PDF
    Behaviour Trees is a novel approach for requirements engineering. It advocates a graphical tree notation that is easy to use and to understand. Individual requirements axe modelled as single trees which later on are integrated into a model of the system as a whole. We develop a formal semantics for a subset of Behaviour Trees using CSP. This work, on one hand, provides tool support for Behaviour Trees. On the other hand, it builds a front-end to a subset of the CSP notation and gives CSP users a new modelling strategy which is well suited to the challenges of requirements engineering

    Formal Verification of Tokeneer Behaviours Modelled in fUML Using CSP

    Get PDF
    Much research work has been done on formalizing UML diagrams, but less has focused on using this formalization to analyze the dynamic behaviours between formalized components. In this paper we propose using a subset of fUML (Foundational Subset for Executable UML) as a semi-formal language, and formalizing it to the process algebraic specification language CSP, to make use of FDR as a model checker. Our formalization includes modelling the asynchronous communication framework used within fUML. This allows different interpretations of the communications model to be evaluated. To illustrate the approach, we use the modelling of the Tokeneer ID Station specifications into fUML, and formalize them in CSP to check if the model is deadlock free

    Opérations de construction de spécification multi-vues UML et B

    Get PDF
    Colloque avec actes et comité de lecture. nationale.National audienceLes travaux sur l'intégration d'UML et B se sont surtout focalisés sur la définition d'un processus de transformation séquentiel et unidirectionnel d'UML en B ou de B en UML. Aucun effort n'a été entrepris sur la définition d'une démarche de construction simultanée qui permette une plus grande flexibilité et la possibilité de faire évoluer la spécification tout en maintenant la cohérence et la traçabilité entre les deux représentations. L'évolution d'une spécification résulte de l'application d'une ou plusieurs opérations de construction. Celles-ci caractérisent l'expression des raisonnements suivis pour construire les différents aspects du système. Dans ce cadre, l'utilisation de plusieurs formalismes pour décrire un système ne peut être attractive et bénéfique pour le concepteur que si les outils qu'il exploite lui proposent non seulement des notations, mais aussi une démarche pour leur utilisation. La mise en place de telles fonctions nécessite la prise en compte de plusieurs facteurs comme par exemple le contexte de modélisation, la sémantique et la syntaxe des formalismes utilisés. Le travail présenté dans ce papier vise à apporter des éléments de réflexion sur la définition des opérations de construction de spécifications multi-vues UML et B

    LoTuS: uma Ferramenta Gráfica Extensível para Modelagem, Análise e Verificação de Modelos LTS e PLTS

    Get PDF
    Este artigo apresenta LoTuS, uma ferramenta para modelagem gráfica, análise e verificação de comportamento de software usando LTS e PLTS. Suas principais contribuições são: facilitar o processo de modelagem formal através de um mecanismo de drag and drop que permite criar tanto modelos não probabilísticos como probabilísticos; permitir a geração de modelos a partir de outras fontes, como diagramas de sequencia da UML ou rastros de execução; prover um conjunto de técnicas de análise de modelos, como simulação, execução, detecção de deadlock e verificação probabilísticas de propriedades de alcançabilidade; e por fim, fornecer uma API para que desenvolvedores possam adicionar novas funcionalidades através da criação de plugins. A ferramenta foi avaliada em termos de sua usabilidade e desempenho e através de um estudo de caso no qual suas principais funcionalidades foram exercitadas

    Spécification et substitution de services OSGi

    Get PDF
    Software Oriented Architecture is one of the more popular and currently used architectural models. One of the essentials properties offered by this model is the loose binding between services. This property allows to indepently develop and deploy building blocks of an application. This leads to a hight mobility of the execution environment, where services can appear and disappear without a prior notivication. This paradigm brings several advantages in software designing and developpement, but there is ab big deal whis is to guaratee that applications built on top services will continue to run properly, even if the environnement is dynamic. In our work, we are interessed by one of the major problems of services communication which is services substitution. This problem is even more complex when services used are statefull. Besides, the substitution process include a look up mechanism of a compatible service, to replace the disappeared one. We work on OSGi platform and we propose an approach of services specification, in order to improve the finding of the best service for the substitution. Our contributions are then, on the first hand to provide an API based on proxies use to manage services substitutions in OSGi. On the second hand, we propose an approach of services specification based on a combined use of interface automata and CCS, to help finding the best service for the substitution.Les architectures orientées services constituent l'un des principaux modèles architecturaux couramment utilisés aujourd'hui. La propriété essentielle de ces architectures est le faible couplage entre les services. Cela permet de développer et de déployer les briques de base des applications de manière indépendante. Ceci conduit à une grande mobilité de l'environnement d'exécution où les services peuvent apparaître et disparaître à tout moment. Cependant, cette indépendance des services soulève de nombreux défis, dont l'un des principaux est de pouvoir donner le maximum de garanties sur le fait qu'une application utilisant les services développés par ailleurs s'exécutera comme prévu par ses concepteurs. Dans le cadre du présent travail, nous nous intéressons à l'une des principales raisons des problèmes de communication dans les environnements à services, qui est la substitution des services. Ce problème de substitution est encore plus complexe lorsque les services possèdent un état interne (statefull). Par ailleurs, le mécanisme de substitution implique la recherche d'un service compatible pour remplacer le disparu. Nous proposons donc un mécanisme permettant de fournir une spécification comportementale avec les services, de façon à ce qu'on puisse trouver le meilleur service possible pour la substitution. Nous travaillons sur la plate-forme OSGi qui implémente une architecture orientée services, et où aucun mécanisme de substitution n'est proposé par défaut. Notre contribution, d'une part, est une API basée sur l'utilisation des proxy, pour permettre de gérer la substitution des services sous OSGi. D'autre part, nous proposons une approche de spécification des comportements des services OSGi basée sur les automates interfaces et sur le CCS (algèbre de processus). D'un point de vue pratique, nous avons développé un cas d'étude sur OSGi, sur lequel nous avons illustré notre approche de spécification de services. Nous avons aussi implémenté une partie de notre API que nous avons testé à l'aide de quelques tests unitaires

    QUALITY IMPROVEMENT AND VALIDATION TECHNIQUES ON SOFTWARE SPECIFICATION AND DESIGN

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH

    Complementary formalisms - synthesis, verification and visualization

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH

    Alloy4PV : un Framework pour la Vérification de Procédés Métiers

    Get PDF
    In this thesis, we realized a study of the start-of-the-art on different process domains (business, software, military, medical, etc.). The aim was to identify and categorize critical properties that can be verified on any process model. This study resulted in a library of generic and configurable properties. As a second step, we have defined a framework for process verification called Alloy4PV. This framework uses a subset of UML 2 Activity Diagram as a process modeling language. For process verification, (1) we defined a formal model of UML 2 Activity Diagram based on the fUML semantics, the OMG standard that gives a semantic to a subset of UML 2. This was achieved using first-order logic, (2) we implemented this formalization using the Alloy language in order to perform bounded model-checking, and (3) we automatized in a graphical tool integrated to Eclipse, the possibility to express and verify properties on all the perspectives of a process model. This contribution resulted in a tool which is under evaluation by our MerGE project’s partners and to five publications in conferences proceedings.Dans cette thèse, nous avons tout d'abord fait une étude de l'état de l'art dans les différents domaines des procédés (métier, logiciel, militaire, médical, etc) afin d'identifier et de catégoriser les principales propriétés à garantir. À partir de cette étude, nous avons défini une bibliothèque de propriétés générique et paramétrable pour tout modèle de procédé. Ensuite, nous avons défini un framework pour la vérification de procédés appelé Alloy4PV. Il utilise un sous-ensemble des diagrammes d'activités UML 2 comme langage de modélisation. Afin d'effectuer la vérification de procédés, nous avons (1) défini un modèle formel des diagrammes d'activités basé sur la sémantique fUML (le standard de l'OMG donnant une sémantique à un sous-ensemble de UML) en utilisant la logique de premier ordre, (2) implémenté cette formalisation en utilisant le langage Alloy afin d'effectuer du model-checking borné, et (3) automatisé, dans un outil graphique intégré à Eclipse, la possibilité d'exprimer et de vérifier des propriétés sur toutes les perspectives du procédé
    corecore