4 research outputs found

    Construction incrémentale de spécifications de systèmes critiques intégrant des procédures de vérification

    Get PDF
    Cette thèse porte sur l'aide à la construction de machines d'états UML de systèmes réactifs. Elle vise à définir un cadre théorique et pragmatique pour mettre en œuvre une approche incrémentale caractérisée par une succession de phases de construction, évaluation et correction de modèles. Ce cadre offre des moyens de vérifier si un nouveau modèle est conforme à ceux définis durant les étapes précédentes sans avoir à demander une description explicite des propriétés à vérifier. Afin de pouvoir analyser les machines d'états, nous leur associons une sémantique LTS ce qui nous a conduit à définir une procédure de transformation automatique de machines d'états en LTS. Dans un premier temps, nous avons défini et implanté des techniques de vérification de relations de conformité de LTS (red, ext, conf, et confrestr). Dans un second temps, nous nous sommes intéressés à la définition d'un cadre de construction incrémentale dans lequel plusieurs stratégies de développement peuvent être mises en œuvre en s'assurant que le modèle final élaboré sera une implantation conforme à la spécification initiale. Ces stratégies reposent sur des combinaisons de raffinements qui peuvent être de deux types : le raffinement vertical pour éliminer l'indéterminisme et ajouter des détails ; le raffinement horizontal pour ajouter de nouvelles fonctionnalités sans ajouter d'indéterminisme. Enfin, nous transposons la problématique de construction incrémentale d'une machine d'états à la construction d'architectures dont les composants sont des machines d'états. Des conditions sont définies pour assurer la conformité entre des architectures dans le cas de la substitution de composants.This thesis focuses on supporting construction of UML state machines of reactive systems. It aims at developing a theoretic and pragmatic framework to implement an incremental approach characterized by a succession of construction, evaluation and correction of models. This framework provides the means to verify whether a new model is consistent with those defined in the previous steps without requiring an explicit description of the properties to be verified. To analyze the state machines, we associated with them a LTS semantics which led us to define a procedure for automatic transformation of state machines in LTS. Initially, we have defined and implemented verification technique of conformance relations on LTS (red, ext, conf and confrestr). In a second step, we have defined a framework for incremental construction in which several development strategies can be implemented ensuring that the final developed model will be an implementation consistent with the initial specification. These strategies are based on combination of refinements that may be of two types: vertical refinement to eliminate nondeterminism and add details, and the horizontal refinement to add new features without adding nondeterminism. Finally, we transpose the problem of incremental construction of state machines to the construction of architectures whose components are state machines. Conditions are defined to ensure conformance between architectures in the case of substitution of components

    Model Based Test Generation and Optimization

    Get PDF
    Abstract Model Based Test Generation and Optimization Mohamed Mussa A. Mussa, Ph.D. Concordia University, 2015 Software testing is an essential activity in the software engineering process. It is used to enhance the quality of the software products throughout the software development process. It inspects different aspects of the software quality such as correctness, performance and usability. Furthermore, software testing consumes about 50% of the software development efforts. Software products go through several testing levels. The main ones are unit-level testing, component-level testing, integration-level testing, system-level testing and acceptance-level testing. Each testing level involves a sequence of tasks such as planning, modeling, execution and evaluation. Plenty of systematic test generation approaches have been developed using different languages and notations. The majority of these approaches target a specific testing-level. However, only little effort has been directed toward systematic transition among testing-levels. Considering the incompatibility between these approaches, tailored compatibility-tools are required between the testing levels. Furthermore, several test models are usually generated to evaluate the implementation at each testing level. Unfortunately, there is redundancy among these models. Efficient reuse of these test models represents a significant challenge. On the other hand, the growing attention to the model driven methodologies bonds the development and the testing activities. However, research is still required to link the testing levels. In this PhD thesis, we propose a model based testing framework that enables reusability and collaboration across the testing levels. In this framework, we propose test generation and test optimization approaches that at each level consider artifacts generated in preceding testing levels. More precisely, we propose an approach for the generation of integration test models starting from component test models, and another approach for the optimization of the acceptance test model using the integration test models. To conduct our research in rigorous settings, we base our framework on standard notations that are widely adopted for software development and testing, namely Unified Modeling Language (UML). In our first approach, component test cases are examined to locate and select the ones that include an interaction among the integrated components. The selected test cases are merged to generate integration test cases, which tackles the theoretical research issue of merging test cases. Furthermore, the generated test cases are mapped against each other to remove potential redundancies. For the second approach, acceptance test optimization, integration test models are compared to the acceptance test model in order to remove test cases that have already been exercised during the integration-level testing. However, not all integration test cases are suitable for the comparison. Integration test cases have to be examined to ensure that they do not include test stubs for system components. We have developed two approaches and implemented the corresponding prototypes in order to demonstrate the effectiveness of our work. The first prototype implements the integration test generation approach. It accepts component test models and generates integration test models. The second prototype implements the acceptance test optimization approach. It accepts integration test models along with the acceptance test model and generates an optimized acceptance test model

    Merging Behavior Specifications

    No full text
    This paper describes a method for merging behavior specifications modeled by transition systems. Given two behavior specifications B1 and B2, Merge(B1, B2) defines a new behavior specification that extends B1 and B2. Moreover, provided that a necessary and sufficient condition holds, Merge(B1, B2) is a cyclic extension of B1 and B2. In other words, Merge(B1, B2) extends B1 and B2, and any cyclic trace in B1 or B2 remains a cyclic in Merge(B1, B2). Therefore, in the case of cyclic traces of B1 or B2, Merge(B1, B2) transforms into Merge(B1, B2), and may exhibit, in a recursive manner, behaviors of B1 and B2. If Merge(B1, B2) is a cyclic extension of B1 and B2, then Merge(B1, B2) represents the least common cyclic extension of B1 and B2. This approach is useful for the extension and integration of system specifications. 1 Introduction Formal specifications play an important role in the development life cycle of systems. They capture the user requirements. They can be validated against suc..
    corecore