Spelling suggestions: "subject:"orientéeobjet"" "subject:"orientéobjet""
21 |
Concepts et méthodes pour le développement d'environnements de simulation intelligents. Application au bâtimentSoubra, Souheil 08 July 1992 (has links) (PDF)
La simulation numérique est un outil d'aide à la conception et à l'audit encore peu utilisé dans le secteur du bâtiment par comparaison avec d'autres secteurs d'activité (électronique, espace, automobile...). Parallèlement, dans le milieu de la recherche connexe au bâtiment, des codes de simulation permettant de répondre à un ensemble de problèmes scientifiques et techniques ont été développés. Malgré leurs performances sur le plan numérique, ces codes manquent d'un certain nombre de fonctionnalités afin que leur utilisation soit simple et productive (assistance à l'utilisateur, vérification de la cohérence, échange de données...). Dans ce but, ce travail de recherche s'attache à la conception d'un Environnement de Simulation Intelligent (ESI) alliant les performances numériques des codes de simulation existants aux possibilités offertes par les systèmes à base de connaissances. Il s'agit de développer au sein de l'ESI une partie symbolique et une partie numérique : la partie symbolique agit alors comme un serveur sémantique qui d'une part supporte des opérations de haut niveau d'abstraction (partage de données entre différents codes de simulation, modélisation du raisonnement...) et, d'autre part, pilote la partie qui assure la résolution numérique du système étudié. Après une brève présentation du processus de modélisation/simulation/analyse des résultats et des modalités du dialogue Homme/Machine associées à l'utilisation des ordinateurs dans ce processus, les composants de l'ESI sont décrits suivant une méthode de spécification formelle basée sur une approche orientée objet. Une première application au secteur du bâtiment, implantée au sein d'une plate-forme logicielle pour la génération de systèmes à base de connaissance développée au CSTB et utilisant le modèle de données intégré du bâtiment issu du projet européen COMBINE, est présentée.
|
22 |
Spécification et vérification de programmes orientés objets en logique de séparationHurlin, Clément 14 September 2009 (has links) (PDF)
Cette thèse propose une extension de la logique de séparation pour les programmes parallèles et orientés-objets. La logique de séparation est un formalisme récent et prometteur pour vérifier les programmes impératifs. Cependant, jusqu'à présent, la logique de séparation a été appliquée à des programmes utilisant un opérateur parallèle irréaliste (||) et des verrous non-ré-entrants (contrairement au langage Java). Dans cette thèse, nous adaptons la logique de séparation aux opérateurs "fork" et "join" (utilisés par de nombreux langages: C, Java, etc...) et aux verrous ré-entrants (utilisés par le langage Java).<br /><br />Cette adaptation inclut un système de vérification pour des programmes similaires aux programmes Java. Ce système est constitué d'un ensemble de triplets de Hoare qui forment un algorithme de vérification. La preuve de correction de ce système a été effectuée et ce système a été évalué sur plusieurs exemples ambitieux (dont la classe Itérateur de la librairie Java et un algorithme de couplage de verrous).<br /><br />En plus de l'extension décrite ci-dessus, plusieurs analyses utilisant la logique de séparation ont été inventées.<br /><br />La première analyse consiste à spécifier les séquences d'appels de méthodes autorisées (appelés "protocoles") dans les classes. Cette analyse décrit finement des protocoles complexes (telle que celui de la classe Itérateur). En outre, nous avons proposé une nouvelle technique permettant de vérifier que les spécifications d'un programme sont correctes en utilisant les protocoles.<br /><br />La seconde analyse permet de montrer qu'une formule en logique de séparation n'implique pas une autre formule. Cela est utile dans les vérificateurs de programmes car ceux-ci doivent fréquemment démontrer des implications entre formules. L'intérêt de cette analyse est que sa complexité est basse : cela permet de l'utiliser souvent sans consommer beaucoup de ressources.<br /><br />La troisième analyse permet de paralléliser automatiquement des programmes. Cette analyse prend en entrée des programmes prouvés en logique de séparation et rend en sortie des programmes parallélisés, optimisés, et prouvés. Notre analyse utilise la sémantique de séparation de l'opérateur "*" pour détecter quand deux sous programmes accèdent à des parties disjointes du tas. Dans ce cas, la parallélisation est possible. L'algorithme de détection est implémenté par un système de réécriture.
|
23 |
Communication par événements dans les modèles à objetsLenormand, Emmanuel 07 November 1996 (has links) (PDF)
Les applications coopératives mettent en jeu des interactions complexes entre les différents éléments qui les composent. L'environnement utilisé pour leur programmation doit donc offrir les mécanismes nécessaires à la réalisation de ces interactions. Le choix d'un environnement à objets pour cette mise en œuvre revêt de nombreux avantages, relatifs aux caractéristiques canoniques des modèles à objets (notion d'interface, héritage, encapsulation), mais certains mécanismes nécessaires aux applications coopératives ne sont pas ou peu pris en compte dans ce contexte. Parmi ceux-ci, nous nous intéressons plus particulièrement à un mode de communication asynchrone et anonyme, complément de l'appel de méthode synchrone. Nous proposons d'intégrer un tel mode de communication dans les modèles à objets en utilisant la notion d'événement: un événement peut être émis et déclencher de manière asynchrone des actions dans les objets. Nous décrivons les différents choix possibles pour intégrer cette communication à base d'événements dans un modèle à objets. Ces choix concernent à la fois les aspects déclaratifs du mécanisme et ceux relatifs au modèle d'exécution associé. Nous examinons également les effets de cette extension sur les caractéristiques canoniques des modèles à objets. Nous appliquons ensuite cette étude au modèle Guide, qui offre des objets répartis, partageables et persistants. Nous montrons comment le mode de communication proposé peut être intégré à ce modèle particulier, en insistant sur les critères qui motivent nos choix. Enfin, la réalisation d'un prototype et d'applications qui l'utilisent a permis de valider les propositions faites
|
24 |
Gestion d'un évolution du schéma d'une base de données à objets: une approche par compromisBenatallah, Boualem 04 March 1996 (has links) (PDF)
Dans cette thèse, nous intéressons au problème de l'évolution des schémas pour les bases de données à objets. Nous considérons d'abord les solutions proposées pour la gestion de l'évolution de schéma de bases de données à objets. Nous proposons une classification des approches existantes. Pour chacune de ces approches nous décrivons son principe, les mécanismes d'évolution associés, ainsi que les produits et les prototypes qui l'implantent. Nous analysons ces travaux en soulignant les avantages et les inconvénients de chaque approche. Nous présentons ensuite notre approche. D'une part, cette approche propose un cadre qui permet de combiner les fonctionnalités de la modification et du versionnement pour une meilleure gestion de l'évolution de schéma. D'autre part, elle offre à l'utilisateur un langage permettant de décrire les liens entre les différents états de la base de données afin de traduire le plus fidèlement possible les évolutions du monde réel. Le versionnement de schéma évite la perte d'informations et assure que les anciens programmes d'applications continuent de fonctionner. Cependant, le nombre de versions peut devenir important ; ce qui rend complexe leur gestion. Notre approche permet de limiter le nombre de versions: (1) l'évolution d'un schéma est traduite par sa modification si l'évolution est non-soustractive (ne provoque pas la suppression de propriétés) ou si l'utilisateur le décide, (2) La technique utilisée pour adapter les instances au schéma après l'évolution, est basée sur la caractérisation de l'importance de l'existence en tant que telle d'une version d'objet. Ainsi, le nombre de versions est limité à celles qui sont fréquemment accédées par des programmes, (3) la possibilité donnée à l'administrateur de réorganiser la base de données lui permet de supprimer des versions historiques du schéma
|
25 |
Un modèle générique pour la gestion des informations complexes et dynamiques :Jarwah, Sahar 28 April 1992 (has links) (PDF)
Ce travail a pour objectif d'apporter une aide au développement et a la maintenance de logiciels de grande taille dans les environnements de génie logiciel (egl). Il s'agit de définir et d'implanter un noyau générique de stockage et de gestion permettant l'intégration de l'ensemble d'informations génie logiciel et offrant des outils généraux et déclaratifs. Le gestionnaire d'un projet peut ainsi spécifier la stratégie ou la methode de développement souhaitée. Nous avons défini un modèle de données pour les systèmes hypertexte capable de gérer la spécificité des informations génie logiciel et d'offrir une interrogation bien adaptée a ce type d'environnement (navigation, browser, etc). Le modèle est sémantique oriente-objet qui intègre aussi bien les aspects statiques que les aspects dynamiques des informations génie logiciel. Nous avons exploite la richesse des modèles sémantiques pour la représentation des abstractions nécessaires: objets complexes et composites, versions multiples et généralisation de la notion d'objet composite a celle d'objet générique composite. Via la notion de document, qui représente, en plus du contenu textuel des documents, leur contenu sémantique et leur présentation visuelle, le modèle comprend les éléments de base nécessaires pour l'intégration des fonctionnalités d'un systeme hypertexte, et, dans une étape ultérieure, de la recherche par le contenu sémantique des informations. Concernant la dynamique, nous utilisons le couplage entre données et traitements existant dans les modèles orientes-objet et donnons aux méthodes une définition déclarative sous forme de déclencheurs. Les méthodes, dans ce formalisme, n'expriment pas seulement le comportement des objets, mais aussi, les situations de leur déclenchement et les contrôles a effectuer sur le comportement des objets
|
26 |
Object Identification and Aspect Mining in Procedural Object-Oriented CodeBhatti, Muhammad Usman 16 February 2009 (has links) (PDF)
In this dissertation, we present Procedural Object-Oriented Code (POC). POC is the aftermath of the software development activity that involves state of the art object-oriented languages, without employing object-oriented analysis and design. Huge classes, absence of abstractions for domain entities, and shallow inheritance hierarchies are hallmark design defects of procedural object-oriented code. POC also consists of scattered code appearing not only due to the absence of aspects, but it also manifests scattered code appearing due to the non-abstracted domain enti- ties i.e., domain entities that do not have their proper object-oriented classes. The non-abstracted domain logic hinders mining useful crosscutting concerns related to aspects in POC. Confronted with the absence of object-oriented design and the difficulty of mining aspects in POC, we studied it from two perspectives. First, we improve aspect mining techniques by classifying various crosscutting concerns identified in POC with a two-pronged approach: Firstly, the approach identifies and groups crosscutting concerns present in a software system: aspects as well as non-abstracted domain logic. Crosscutting concerns pertaining to non- abstracted domain entities are identified and extracted through their usage of appli- cation domain entity data. Secondly, a new metric called spread-out is introduced to quantify the divulgence of diverse crosscutting concerns. Second, we studied the problem of object identification in procedural object- oriented code. We present a semi-automatic, tool-assisted approach for restructuring POC into an improved object-oriented design. The approach identifies principal classes in POC. These principal classes are then used to extract object-oriented abstractions using Formal Concept Analysis lattices. This is achieved by providing three different concept lattices, namely fundamental, association, and interactions views. We developed tools to validate the approaches presented in the thesis. The approaches are validated on a recently developed industrial application. The appli- cation is used to run blood plasma analysis automatons. The results of our approach are promising.
|
27 |
Sur la modélisation et la simulation du couplage thermo-chimio-mécanique au sein des élastomères chargésNguyen Van, Thien An 29 November 2012 (has links) (PDF)
Dans ce travail prospectif, nous proposons une modélisation intégrant un couplage thermo-chimio-mécanique pour les élastomères chargés et dissipatifs. En se basant sur les résultats et les observations de la littérature, nous avons développé un cadre thermodynamique général et proposé trois modèles phénoménologiques de comportement. Nos outils principaux sont la thermodynamique des processus irréversibles, la notion d'états intermédiaires, les matériaux standards généralisés. Une variable interne correspondant au degré de réticulation est introduite. L'évolution de cette variable prend en compte une influence thermique et mécanique à travers la pression hydrostatique. Il s'agit d'une des originalités de cette approche. Ce travail se place dans le cadre général des grandes transformations. Un schéma numérique de résolution monolithique des équations bilan par éléments finis est proposé. Ce schéma tient compte de l'hypothèse de faible compressibilité du matériau par un choix judicieux de relations faibles entre inconnues et par le choix des approximations pour ces dernières. La résolution en temps est traitée par un schéma d'Euler implicite associé à une technique de linéarisation de Newton-Raphson. Un modèle orienté objet du matériau thermo-chimio-mécanique est proposé et implémenté en langage Java dans le code FEMJava. Quelques exemples de simulation illustrent le potentiel de ces modèles en reproduisant de manière qualitative des observations expérimentales.
|
28 |
Développement d'outils numériques et expérimentaux pour le dimensionnement de pyromécanismes utilisés en sécurité automobileChorel, Lucie 04 June 2010 (has links)
De part sa nature multi-physique, un pyromécanisme est un système complexe à modéliser et sa simulation nécessite la mise en oeuvre de plusieurs ressources de calcul spécifiques couplées. Le but de ce travail est de fournir un outil numérique capable de modéliser un pyromécanisme et de simuler son fonctionnement en intégrant les interfaces nécessaires au pilotage des différentes ressources de calcul. La faisabilité d'un tel outil est illustrée pour un pyromécanisme spécifique : l'enrouleur pyrotechnique de ceinture. La conception de l'outil numérique proposé est basée sur l'approche Orienté Objet (OO) pour modéliser la structure technologique du pyromécanisme et l'interfaçage avec les ressources de calcul externes. Le modèle OO technologique est construit par héritage des modèles Core Product Model (CPM) et Open Assembly Model (OAM) développés au NIST (National Institute of Standards and Technology). Grâce aux modèles CPM-OAM, un système mécanique peut être décrit comme une hiérarchie d'assemblages et de pièces, reliés par des liaisons cinématiques. La simulation complète du pyromécanisme enrouleur de ceinture requiert des ressources de calcul spécifiques : Un module simulant le fonctionnement du générateur de gaz de l'enrouleur a été développé, implémenté sous Scilab. Ce module calcule la pression exercée par le générateur de gaz sur la chaîne cinématique chargée de transmettre le mouvement jusqu'à la bobine enroulant la ceinture. L'une d'une bibliothèque C++ de calcul dynamique de solides rigides existante, Chrono::Engine, permet la simulation de la chaîne cinématique soumise à cette pression. L'outil numérique fournit l'ensemble des paramètres nécessaires aux ressources de calcul et pilote la co-simulation entre ces ressources (programme Scilab de combustion et calcul mécanique Chrono::Engine). L'identification des paramètres des modèles mis en oeuvre nécessite de caractériser expérimentalement le comportement des sous-systèmes, comme le générateur de gaz, et des composants déformables (barre de torsion intégrée dans la chaîne cinématique et ceinture de sécurité). Des dispos tifs d'essais conçus spécifiquement permettent l'identification le comportement de ces composants, soumis à des sollicitations dynamiques. La validation du démonstrateur réalisé en C++ est basée sur la comparaison des résultats des simulations avec les résultats d'essais expérimentaux du système entier l'enrouleur de ceinture. / The simulation of a pyromechanism is a complex task because of its multi-physics intrinsic nature. Consequently, various computing resources are needed to simulate each physical aspect. The goal of this project is to provide a numerical tool able to model a pyromechanism and to interface the different computing resources in order to simulate an equipment. Feasibility of such a tool is illustrated with a specific pyromechanism : pyrotechnic belt retractor. The design of the numerical tool is based on an Object Oriented Approach (OOA) to model both the technological aspects of the pyromechanism and the interfaces with computing resources. The technological OO model is based on “Core Product Model” (CPM) and on “Open Assembly Model” (OAM) of the NIST (National Institute of Standards and Technology). Thanks to CPM-OAM model, any mechanism can be described as a hierarchy of assemblies and parts, linked by associations (connections, kinematic link,...). The full simulation of the pyromechanism requires external computing resources: - a model for simulating a gas generator implemented under Scilab. It computes the pressure produced by the gas generator, coupled with displacement of the mechanical load. - a C++ library for mechanical simulation of rigid bodies : ChronoEngine the response of the mechanical system computed kinematic response under pressure from gas generator. The resulting software provides all parameters needed by these external computing resources and drives the ballistic and mechanical co-simulation. Parameter identifications of models ask for experimental characterization of sub-system, as gas generator and deformable part (torsion bar and safety belt). Experimental devices has been developed for identifying behavioral law under dynamic load. Validation of demonstrator, written in C++, is based on comparison between simulation results and experimental results of the pyrotechnic retractor.
|
29 |
From monolithic architectural style to microservice one : structure-based and task-based approaches / Du style architectural monolithique vers le style microservice : approches basées sur la structure et sur les tâchesSelmadji, Anfel 03 October 2019 (has links)
Les technologies logicielles ne cessent d'évoluer pour faciliter le développement, le déploiement et la maintenance d'applications dans différents domaines. En parallèle, ces applications évoluent en continu pour garantir une bonne qualité de service et deviennent de plus en plus complexes. Cette évolution implique souvent des coûts de développement et de maintenance de plus en plus importants, auxquels peut s'ajouter une augmentation des coûts de déploiement sur des infrastructures d'exécution récentes comme le cloud. Réduire ces coûts et améliorer la qualité de ces applications sont actuellement des objectifs centraux du domaine du génie logiciel. Récemment, les microservices sont apparus comme un exemple de technologie ou style architectural favorisant l'atteinte de ces objectifs.Alors que les microservices peuvent être utilisés pour développer de nouvelles applications, il existe des applications monolithiques (i.e., monolithes) cons-truites comme une seule unité et que les propriétaires (e.g., entreprise, etc.) souhaitent maintenir et déployer sur le cloud. Dans ce cas, il est fréquent d'envisager de redévelopper ces applications à partir de rien ou d'envisager une migration vers de nouveaux styles architecturaux. Redévelopper une application ou réaliser une migration manuellement peut devenir rapidement une tâche longue, source d'erreurs et très coûteuse. Une migration automatique apparaît donc comme une solution évidente.L'objectif principal de notre thèse est de contribuer à proposer des solutions pour l'automatisation du processus de migration d'applications monolithiques orientées objet vers des microservices. Cette migration implique deux étapes : l'identification de microservices et le packaging de ces microservices. Nous nous focalisons sur d'identification en s'appuyant sur une analyse du code source. Nous proposons en particulier deux approches.La première consiste à identifier des microservices en analysant les relations structurelles entre les classes du code source ainsi que les accès aux données persistantes. Dans cette approche, nous prenons aussi en compte les recommandations d'un architecte logiciel. L'originalité de ce travail peut être vue sous trois aspects. Tout d'abord, les microservices sont identifiés en se basant sur l'évaluation d'une fonction bien définie mesurant leur qualité. Cette fonction repose sur des métriques reflétant la "sémantique" du concept "microservice". Deuxièmement, les recommandations de l'architecte logiciel ne sont exploitées que lorsqu'elles sont disponibles. Enfin, deux modèles algorithmiques ont été utilisés pour partitionner les classes d'une application orientée objet en microservices : un algorithme de regroupement hiérarchique et un algorithme génétique.La deuxième approche consiste à extraire à partir d'un code source orienté objet un workflow qui peut être utilisé en entrée de certaines approches existantes d'identification des microservices. Un workflow décrit le séquencement de tâches constituant une application suivant deux formalismes: un flot de contrôle et/ou un flot de données. L'extraction d'un workflow à partir d'un code source nécessite d'être capable de définir une correspondance entre les concepts du mon-de objet et ceux d'un workflow.Pour valider nos deux approches, nous avons implémenté deux prototypes et mené des expérimentations sur plusieurs cas d'étude. Les microservices identifiés ont été évalués qualitativement et quantitativement. Les workflows obtenus ont été évalués manuellement sur un jeu de tests. Les résultats obtenus montrent respectivement la pertinence des microservices identifiés et l'exactitude des workflows obtenus. / Software technologies are constantly evolving to facilitate the development, deployment, and maintenance of applications in different areas. In parallel, these applications evolve continuously to guarantee an adequate quality of service, and they become more and more complex. Such evolution often involves increased development and maintenance costs, that can become even higher when these applications are deployed in recent execution infrastructures such as the cloud. Nowadays, reducing these costs and improving the quality of applications are main objectives of software engineering. Recently, microservices have emerged as an example of a technology or architectural style that helps to achieve these objectives.While microservices can be used to develop new applications, there are monolithic ones (i.e., monoliths) built as a single unit and their owners (e.g., companies, etc.) want to maintain and deploy them in the cloud. In this case, it is common to consider rewriting these applications from scratch or migrating them towards recent architectural styles. Rewriting an application or migrating it manually can quickly become a long, error-prone, and expensive task. An automatic migration appears as an evident solution.The ultimate aim of our dissertation is contributing to automate the migration of monolithic Object-Oriented (OO) applications to microservices. This migration consists of two steps: microservice identification and microservice packaging. We focus on microservice identification based on source code analysis. Specifically, we propose two approaches.The first one identifies microservices from the source code of a monolithic OO application relying on code structure, data accesses, and software architect recommendations. The originality of our approach can be viewed from three aspects. Firstly, microservices are identified based on the evaluation of a well-defined function measuring their quality. This function relies on metrics reflecting the "semantics" of the concept "microservice". Secondly, software architect recommendations are exploited only when they are available. Finally, two algorithmic models have been used to partition the classes of an OO application into microservices: clustering and genetic algorithms.The second approach extracts from an OO source code a workflow that can be used as an input of some existing microservice identification approaches. A workflow describes the sequencing of tasks constituting an application according to two formalisms: control flow and /or data flow. Extracting a workflow from source code requires the ability to map OO conceptsinto workflow ones.To validate both approaches, we implemented two prototypes and conducted experiments on several case studies. The identified microservices have been evaluated qualitatively and quantitatively. The extracted workflows have been manually evaluated relying on test suites. The obtained results show respectively the relevance of the identified microservices and the correctness of the extracted workflows.
|
30 |
Modélisation spatio-temporelle orientée-objet pour l'étude du comportement de transport basé sur l'activitéFrihida, Ali January 2001 (has links)
Thèse numérisée par la Direction des bibliothèques de l'Université de Montréal.
|
Page generated in 0.0483 seconds