3 research outputs found

    Modélisation en UML/OCL des langages de programmation et de leurs propriétés et processus IDM

    Get PDF
    Cette étude est axée sur l'activité de génération de composants logiciels se situant en phase terminale des processus de développement de logiciels dirigés par les modèles. Dans une première partie, nous présentons les travaux de recherche déjà existants sur les modèles et les transformations de modèles, ainsi que sur la modélisation en UML/OCL des langages de programmation limitée, la plupart du temps, aux aspects syntaxiques. Dans une deuxième partie, nous montrons comment nous modélisons en UML/OCL, les propriétés comportementales et axiomatiques des langages de programmation de style impératif. La modélisation des propriétés comportementales et axiomatiques d'un langage, en UML/OCL enrichi d'un langage d'actions, nous amène à montrer comment on peut, à l'aide de triplets de Hoare, vérifier que des segments de modèles de programmes sont corrects. Les assertions déduites des triplets de Hoare par application des propriétés axiomatiques du langage sont transmises à un Atelier B en vue d'étudier leurs éventuelles validités. Dans une troisième partie, nous montrons comment on peut injecter au niveau du Méta-Modèle UML des propriétés comportementales et axiomatiques spécifiques à un domaine d'applications particulier. Nous nous sommes limités au fragment du Méta-Modèle UML définissant les diagrammes d'activité se situant donc en amont des modèles de codes, avant la génération proprement dite des codes. La cohérence entre les modèles et les codes peut se vérifier à l'aide de propriétés comportementales et axiomatiques en comparant les modèles issues des exigences et les modèles des codes. Ces travaux de recherche ont été financés dans le cadre de l'ANR.Our work focuses on the software component generation phase that takes place at the last phase of a model driven development process. Our work is related to either the modelware or the grammarware because the model driven process can be considered as a successive of model transformations whereas the code generation is a specific transformation from the model to a language grammar. In the first part, we resume some relative works in the domain of the models and of the models transformation; we also present the language modeling in UML which is generally restricted by the syntax modeling. In the second part, we show how we model in UML/OCL the behavioral and axiomatic properties of imperative programming languages. The modeling of the behavioral properties helps to execute the code models if we dispose a right execution environment. In the other hand, the modeling of the axiomatic properties helps to demonstrate the correctness of the code model. In fact, the assertions obtained from the modeling of the axiomatic properties of the language will be transferred to a B atelier in order to have further validation. In the third part, we show how we inject into the UML metamodel the considered domain behavioral and axiomatic properties. We focus on the activity diagram metamodel of the UML which defines the behavior part of a UML model. The coherence between the models and the codes can be then verified in comparing the behavioral and axiomatic properties of the models issued from the requirements and that of the codes. Our work is financed by the ANR research projects

    La projection d'usage des TICs : la composition de fictions axiomatiques au service de la recherche technologique

    Get PDF
    Innovation is today a major and strategic asset for organisations that compete in a hypercompetitive world (D'Avenir & Gunther, 1994). They are trying to face these new challenges, by using a diversity of “expert systems” typical of our « advanced modernity » (Giddens, 1990). Amongst those, boosting R&D activities is major inputs that demand the use of different expertises. Speculative researches for innovation are one of them. They take place in the “Fuzzy Front End” of innovation, a place where the construction of the social reality of invention is made : its usage, or to be more precise, its projection. Our thesis examines these knowledge-producing technologies and tries to make understable the policies at work, the performance of embedded collectives on the innovation itself, and on themselves, and the arrangements made during this process. Our work in the Grenoble industrial area and collaboration with the CEA-LETI helped us to propose an understanding of these projections as compositions of axiomatic fictions for technological research. Analysing the concept of usage, we highlight its careers and the mutation of associated practices. Interrogating one form of projection, the scenario, we show the links that lie between fiction and perfomativity. By leaning on the project mutating components, we demonstrate the axiomatic character of the projection, understood as a form of answer made to a social demand that comes from different places, and whose necessity of actionnable knowledge is solved by composing with moving data.L'« hypercompétitivité » (D'Avenir & Gunther, 1994) qui caractérise notre environnement économique contemporain fait de l'innovation une préoccupation stratégique pour les organisations. Celles-ci tentent de répondre à cette injonction par le recours à une multitude de « systèmes experts », caractéristique de la « modernité avancée » (Giddens, 1990). Parmi ceux-ci, la stimulation des activités de R&D est reconnue comme une contribution majeure qui nécessite l'utilisation croissante de champs d'expertises variés. C'est dans ce contexte que les sciences sociales sont mobilisées comme forme d'expertise contributives des « recherches spéculatives pour l'innovation » (Stewart & Claeys, 2009). Ces recherches interviennent en amont de processus d'innovation, en un lieu nommé « Fuzzy Front End » (Smith & Reinertsen, 1995), lieu dans lequel se forge la construction de la réalité sociale de l'invention : son usage ou plutôt sa projection. Notre thèse s'interroge sur ces technologies de production de connaissances que sont les projections d'usage et ambitionne de rendre intelligibles les politiques qu'elles mettent en oeuvre, la performance des collectifs mobilisés sur les recherches et sur eux-mêmes ainsi que les arrangements déployés par les acteurs durant ces processus. Notre immersion dans le tissu industriel grenoblois, et en particulier dans l'environnement du CEA-LETI, nous a permis de proposer une lecture des projections d'usage comme des compositions de fictions axiomatiques au service de la recherche technologique. En scrutant le concept d'usage, nous mettons en lumière les carrières empruntées par celui-ci et les mutations des pratiques associées. En interrogeant l'une des formes de la projection d'usage, le scénario, nous mettons en évidence les liens entre performativité et recours à la fiction. En interrogeant les mutations des composantes du projet, nous démontrons le caractère axiomatique des projections, en tant que forme de réponse à une demande sociale qui émane de plusieurs endroits et dont l'exigence de production de savoirs actionnables nécessite de composer avec des données en mouvement

    Test à partir de spécifications axiomatiques

    No full text
    Testing is a very common practice in the software development process. The testing activity consists in executing the software on a subset of all its possible inputs in order to detect failures. A failure is detected when the software behaviour does not conform to its expected behaviour, represented or described by a reference object. The testing process is usually decomposed into three phases: the selection of the subset of inputs on which the software will be executed, the submission of these inputs to the software, collecting the outputs (the software answers) and the decision of the relevance of these outputs, when compared to the expected ones.The selection of inputs to submit to the software can be performed according to different approaches. When the test set selection phase is based on a reference object describing more or less formally the software expected behaviour, without any knowledge about the implementation, testing is said to be "black-box". Among the different black-box testing approaches, a formal framework has been defined for the one using as a reference object a logical specification of the system under test.The general framework for testing from logical (or axiomatic) specifications fixes the conditions and the hypotheses under which it is possible to test a system. The first hypothesis consists in considering the system under test as a formal model implementing the operations behaviour of which is described in the specification. The second hypothesis concerns the observability of the system under test. To be a test case, a formula has to be interpreted by the system under test. Then the form of formulas that the system is able to interpret must be fixed. These formulas usually do not contain variables. Once these hypotheses are set, we have an initial test set, the set of all observable formulas that are logical consequences of the specification.The first result to establish is the exhaustiveness of this set, that is its ability to prove the system correctness if it could be submitted in its whole. The exhaustive test set is usually of infinite size, a selection phase is then needed in order to choose a test set of finite and reasonable size to submit to the system. Several approaches are possible. The approach followed in my thesis, called partition testing, consists in dividing the initial exhaustive test set into test subsets, according to a certain selection criterion corresponding to a functionality or a characteristic of the system under test. Once this partition is fine enough, building a test set consists in choosing one test case in each obtained subset, thus applying the uniformity hypothesis (test cases in a test set all are equivalent to make the system fail). The second result to establish is to show that the division of the initial test set do not add (procedure correctness) neither lose (completeness) any test case.In the algebraic specification framework, a method that has extensively been studied, called axiom unfolding, consists in making a case analysis of the specification. Until now, this method was based on equational specifications whose axioms had the characteristic to be positive conditional (a conjunction of axioms implies an equation).My PhD work was aimed at extending and adapting this test selection framework to dynamic systems specified in an axiomatic formalism, namely first-order modal logic. The first step was to generalise the selection method that has been defined for positive conditional equational specifications to first-order specifications. This testing framework was then adapted to first-order modal specifications. The first specification formalism considered was a modal extension of positive conditional logic for which the testing framework has been defined. Once the framework has been adapted to positive conditional modal specifications, it could be generalised to first-order modal specifications.In each of these formalisms, we achieved two goals. On the one hand, we studied the necessary conditions to impose to the specification and the system under test in order to obtain the exhaustiveness of the initial test set. On the other hand, we adapted and extended the selection procedure by axiom unfolding to these formalisms and showed its correctness and completeness. In the two general frameworks of first-order and first-order modal specifications, we showed that the conditions required for the exhaustiveness of the initial test set were minor because they were easy to ensure in practice. This ensures a satisfying generalisation of test selection in this setting.Le test est l'une des méthodes les plus utilisées pour la validation du logiciel. L'activité de test consiste à exécuter le logiciel sur un sous-ensemble de ses entrées possibles de manière à déceler d'éventuelles erreurs. La présence d'erreurs est établie par confrontation du comportement du logiciel avec un objet de référence. Le processus de test est généralement décomposé en trois phases : la sélection du sous-ensemble des entrées sur lequel le logiciel sera exécuté, la soumission de ces entrées au logiciel en collectant les sorties (les réponses du logiciel) et la décision de l'adéquation de ces sorties avec les sorties attendues.La sélection des données à soumettre au logiciel peut être effectuée selon différentes approches. Lorsque la phase de sélection d'un jeu de tests est opérée à partir d'un objet de référence décrivant plus ou moins formellement le comportement du logiciel, sans connaissance de l'implantation elle-même, on parle de test « boîte noire ». Une des approches de test boîte noire pour laquelle un cadre formel a été proposé est celle qui utilise comme objet de référence une spécification logique du système sous test.Le cadre général de test à partir de spécifications logiques (ou axiomatiques) pose les conditions et les hypothèses sous lesquelles il est possible de tester un système. La première hypothèse consiste à considérer le système sous test comme un modèle formel implantant les opérations dont le comportement est décrit par la spécification. La seconde hypothèse a trait à l'observabilité du système sous test. Il faut fixer la forme des formules qui peuvent être interprétées par le système, c'est-à-dire qui peuvent être des tests. On se restreint généralement au moins aux formules qui ne contiennent pas de variables. Une fois ces hypothèses de test posées, on dispose d'un jeu de tests initial, celui de toutes les formules observables qui sont des conséquences logiques de la spécification. Le premier résultat à établir est l'exhaustivité de cet ensemble, c'est-à-dire sa capacité à prouver la correction du système s'il pouvait être soumis dans son intégralité. Le jeu de tests exhaustif étant le plus souvent infini, une phase de sélection intervient afin de choisir un jeu de tests de taille finie et raisonnable à soumettre au système. Plusieurs approches sont possibles. L'approche suivie dans ma thèse, dite par partition, consiste a diviser le jeu de tests exhaustif initial en sous-jeux de tests, selon un certain critère de sélection relatif à une fonctionnalité ou à une caractéristique du système que l'on veut tester. Une fois cette partition suffisamment fine, il suffit de choisir un cas de test dans chaque sous-jeu de test obtenu en appliquant l'hypothèse d'uniformité (tous les cas de test d'un jeu de test sont équivalents pour faire échouer le système). Le deuxième résultat à établir est que la division du jeu de tests initial n'ajoute pas (correction de la procédure) et ne fait pas perdre (complétude) de cas de test.Dans le cadre des spécifications algébriques, une des méthodes de partition du jeu de tests exhaustif qui a été très étudiée, appelée dépliage des axiomes, consiste à procéder à une analyse par cas de la spécification. Jusqu'à présent, cette méthode s'appuyait sur des spécifications équationnelles dont les axiomes avaient la caractéristique d'être conditionnels positifs (une conjonction d'équations implique une équation).Le travail de ma thèse a eu pour but d'étendre et d'adapter ce cadre de sélection de tests à des systèmes dynamiques spécifiés dans un formalisme axiomatique, la logique modale du premier ordre. La première étape a consisté à généraliser la méthode de sélection définie pour des spécifications équationnelles conditionnelles positives aux spécifications du premier ordre. Ce cadre de test a ensuite été d'adapté à des spécifications modales du premier ordre. Le premier formalisme de spécification considéré est une extension modale de la logique conditionnelle positive pour laquelle le cadre de test a été initialement défini. Une fois le cadre de test adapté aux spécifications modales conditionnelles positives, la généralisation aux spécifications modales du premier ordre a pu être effectuée. Dans chacun de ces formalismes nous avons effectué deux tâches. Nous avons d'une part étudié les conditions nécessaires à imposer à la spécification et au système sous test pour obtenir l'exhaustivité du jeu de tests initial. Nous avons d'autre part adapté et étendu la procédure de sélection par dépliage des axiomes à ces formalismes et montré sa correction et sa complétude. Dans les deux cadres généraux des spécifications du premier ordre et des spécifications modales du premier ordre, nous avons montré que les conditions nécessaires à l'exhausitivité du jeu de test visé étaient mineures car faciles à assurer dans la pratique, ce qui assure une généralisation satisfaisante de la sélection dans ce cadre
    corecore