9 research outputs found

    Ontologies in domain specific languages : a systematic literature review

    Get PDF
    The systematic literature review conducted in this paper explores the current techniques employed to leverage the development of DSLs using ontologies. Similarities and differences between ontologies and DSLs, techniques to combine DSLs with ontologies, the rationale of these techniques and challenges in the DSL approaches addressed by the used techniques have been investigated. Details about these topics have been provided for each relevant research paper that we were able to investigate in the limited amount of time of one month. At the same time, a synthesis describing the main trends in all the topics mentioned above has been done

    Improving IT service management using an ontology-based and model-driven approach

    Get PDF
    Texto en inglés y resumen en inglés y españolLa adopción de marcos de trabajo de mejores prácticas que permiten la integración de las Tecnologías de la Información (TI) con el negocio, ayuda a las organizaciones a crear y compartir procesos de gestión de servicios de TI. Sin embargo, las guías y modelos publicados suelen especificarse en lenguaje natural o con representaciones gráficas que carecen de la semántica computacional necesaria para poder automatizar su validación, simulación e incluso su ejecución. En esta tesis se presenta Onto-ITIL, una propuesta basada en ontologías y en el enfoque de desarrollo de software dirigido por modelos que captura las mejores prácticas ofrecidas por ITIL® (del inglés Information Technology Infrastructure Library), y destinada a facilitar la prestación de servicios de TI. El objetivo de Onto-ITIL es ayudar a los expertos del dominio a modelar e implementar procesos de gestión de servicios de TI evitando ambigüedades semánticas y contradicciones. La formalización de los procesos de gestión de servicios de TI en términos de ITIL constituye un primer paso para cubrir la brecha que se da entre el negocio y las TI. Para definir las ontologías se ha utilizado OWL (del inglés Web Ontology Language). Adicionalmente, se ha definido un conjunto de reglas basadas en SWRL (del inglés Semantic Web Rule Language) que permiten enriquecer la ontología con una serie de restricciones semánticas y de reglas de inferencia de conocimiento. Por último, la definición de un conjunto de consultas basadas en SQWRL (del inglés Query-Enhanced Web Rule Language) permite recuperar conocimiento obtenido con OWL e inferido a través de las reglas SWRL. Además de formalizar los procesos de gestión de servicios de TI en base a las buenas prácticas consideradas por ITIL, Onto-ITIL también permite compartir, reutilizar e intercambiar las especificaciones de dichos procesos a través de mecanismos automatizados que proporcionan ciertos marcos de trabajo de comercio electrónico, como por ejemplo, ebXML. Mediante la adopción del enfoque MDE (del inglés Model-driven Engineering), se ha utilizado un DSL (del inglés Domain Specific Language) basado en la ontología Onto-ITIL que sirve para implementar sistemas de información basados en flujos de trabajo que dan soporte a los Sistemas de Gestión de Servicios de TI (SGSTI). Los modelos que se obtienen a partir de este lenguaje de modelado se pueden considerar modelos de alto nivel que han sido enriquecidos con conocimiento ontológico, y que están definidos exclusivamente en términos de lógica de negocio, es decir, que no presentan ningún aspecto arquitectónico o de plataforma de implementación. Con lo cual, de acuerdo con la arquitectura en cuatro capas propuesta por el OMG (del inglés Object Management Group), estos modelos se encontrarían a nivel CIM (del inglés Computation Independent Model). En resumen, la propuesta presentada en esta tesis permite: (i) formalizar el conocimiento asociado a los sistemas de gestión de servicios de TI en base a ontologías que recogen las buenas prácticas consideradas por ITIL; (ii) modelar la semántica de las actividades que definen los procesos de gestión de servicios de TI en forma de flujos de trabajo; (iii) generar de manera automática modelos de requisitos de alto nivel para implementar sistemas de información que se necesitan para dar soporte a dichos procesos; y (iv) a partir de los modelos anteriores, obtener modelos de más bajo nivel (llegando incluso al código de las aplicaciones) a través de transformaciones automáticas de modelos. La investigación llevada a cabo en esta tesis se ha validado mediante de la implementación de un caso de estudio real proporcionado por una compañía española que ofrece servicios de TI

    Improving IT service management using an ontology-based and model-driven approach

    Get PDF
    Texto en inglés y resumen en inglés y españolLa adopción de marcos de trabajo de mejores prácticas que permiten la integración de las Tecnologías de la Información (TI) con el negocio, ayuda a las organizaciones a crear y compartir procesos de gestión de servicios de TI. Sin embargo, las guías y modelos publicados suelen especificarse en lenguaje natural o con representaciones gráficas que carecen de la semántica computacional necesaria para poder automatizar su validación, simulación e incluso su ejecución. En esta tesis se presenta Onto-ITIL, una propuesta basada en ontologías y en el enfoque de desarrollo de software dirigido por modelos que captura las mejores prácticas ofrecidas por ITIL® (del inglés Information Technology Infrastructure Library), y destinada a facilitar la prestación de servicios de TI. El objetivo de Onto-ITIL es ayudar a los expertos del dominio a modelar e implementar procesos de gestión de servicios de TI evitando ambigüedades semánticas y contradicciones. La formalización de los procesos de gestión de servicios de TI en términos de ITIL constituye un primer paso para cubrir la brecha que se da entre el negocio y las TI. Para definir las ontologías se ha utilizado OWL (del inglés Web Ontology Language). Adicionalmente, se ha definido un conjunto de reglas basadas en SWRL (del inglés Semantic Web Rule Language) que permiten enriquecer la ontología con una serie de restricciones semánticas y de reglas de inferencia de conocimiento. Por último, la definición de un conjunto de consultas basadas en SQWRL (del inglés Query-Enhanced Web Rule Language) permite recuperar conocimiento obtenido con OWL e inferido a través de las reglas SWRL. Además de formalizar los procesos de gestión de servicios de TI en base a las buenas prácticas consideradas por ITIL, Onto-ITIL también permite compartir, reutilizar e intercambiar las especificaciones de dichos procesos a través de mecanismos automatizados que proporcionan ciertos marcos de trabajo de comercio electrónico, como por ejemplo, ebXML. Mediante la adopción del enfoque MDE (del inglés Model-driven Engineering), se ha utilizado un DSL (del inglés Domain Specific Language) basado en la ontología Onto-ITIL que sirve para implementar sistemas de información basados en flujos de trabajo que dan soporte a los Sistemas de Gestión de Servicios de TI (SGSTI). Los modelos que se obtienen a partir de este lenguaje de modelado se pueden considerar modelos de alto nivel que han sido enriquecidos con conocimiento ontológico, y que están definidos exclusivamente en términos de lógica de negocio, es decir, que no presentan ningún aspecto arquitectónico o de plataforma de implementación. Con lo cual, de acuerdo con la arquitectura en cuatro capas propuesta por el OMG (del inglés Object Management Group), estos modelos se encontrarían a nivel CIM (del inglés Computation Independent Model). En resumen, la propuesta presentada en esta tesis permite: (i) formalizar el conocimiento asociado a los sistemas de gestión de servicios de TI en base a ontologías que recogen las buenas prácticas consideradas por ITIL; (ii) modelar la semántica de las actividades que definen los procesos de gestión de servicios de TI en forma de flujos de trabajo; (iii) generar de manera automática modelos de requisitos de alto nivel para implementar sistemas de información que se necesitan para dar soporte a dichos procesos; y (iv) a partir de los modelos anteriores, obtener modelos de más bajo nivel (llegando incluso al código de las aplicaciones) a través de transformaciones automáticas de modelos. La investigación llevada a cabo en esta tesis se ha validado mediante de la implementación de un caso de estudio real proporcionado por una compañía española que ofrece servicios de TI

    Designing Round-Trip Systems by Change Propagation and Model Partitioning

    Get PDF
    Software development processes incorporate a variety of different artifacts (e.g., source code, models, and documentation). For multiple reasons the data that is contained in these artifacts does expose some degree of redundancy. Ensuring global consistency across artifacts during all stages in the development of software systems is required, because inconsistent artifacts can yield to failures. Ensuring consistency can be either achieved by reducing the amount of redundancy or by synchronizing the information that is shared across multiple artifacts. The discipline of software engineering that addresses these problems is called Round-Trip Engineering (RTE). In this thesis we present a conceptual framework for the design RTE systems. This framework delivers precise definitions for essential terms in the context of RTE and a process that can be used to address new RTE applications. The main idea of the framework is to partition models into parts that require synchronization - skeletons - and parts that do not - clothings. Once such a partitioning is obtained, the relations between the elements of the skeletons determine whether a deterministic RTE system can be built. If not, manual decisions may be required by developers. Based on this conceptual framework, two concrete approaches to RTE are presented. The first one - Backpropagation-based RTE - employs change translation, traceability and synchronization fitness functions to allow for synchronization of artifacts that are connected by non-injective transformations. The second approach - Role-based Tool Integration - provides means to avoid redundancy. To do so, a novel tool design method that relies on role modeling is presented. Tool integration is then performed by the creation of role bindings between role models. In addition to the two concrete approaches to RTE, which form the main contributions of the thesis, we investigate the creation of bridges between technical spaces. We consider these bridges as an essential prerequisite for performing logical synchronization between artifacts. Also, the feasibility of semantic web technologies is a subject of the thesis, because the specification of synchronization rules was identified as a blocking factor during our problem analysis. The thesis is complemented by an evaluation of all presented RTE approaches in different scenarios. Based on this evaluation, the strengths and weaknesses of the approaches are identified. Also, the practical feasibility of our approaches is confirmed w.r.t. the presented RTE applications

    A Unified Framework for Multi-Level Modeling

    Full text link
    With the growing importance of modeling in software engineering and knowledge engineering, and the accelerating convergence of these two disciplines through the confluence of internet-based software applications, the need for a simple, unified information modeling framework fulfilling the use cases of both communities has increased significantly over recent years. These use cases include switching seamlessly between exploratory and constructive modes of modeling, representing all objects of relevance to a system using a precise engineering-oriented notation, and applying a wide range of automated checking and reasoning services to models to enhance their quality. This thesis lays the foundation for such a framework by formalizing and extending the multi-level modeling paradigm developed by Atkinson & Kühne, building a practical prototype tool based on the widely-used Eclipse EMF toolkit. This paradigm represents the best foundation for such a framework because it can capture all objects of relevance to a system, at all levels of classification (e.g. instances, types, metatypes, metametatypes etc...), in a uniform and extensible way regardless of when and how they came into existence. Multi-level models can therefore accomodate the generation and use of information from the exploration and discovery phases of a project right through to the operation and run-time execution phases, seamlessly changing the way the information is interpreted and processed as needed. The developed framework and tool (Multi-level modeling and ontology engineering Environment, Melanie) encompasses all the typical ingredients of a model-driven development environment: a (meta) model (the Pan Level Model, PLM), a concrete syntax (The Level-agnostic Modeling Language, LML) and a formal semantics based on set theory. In addition, the framework supports the full range of model querying, checking and evolution services supported by standard software engineering and knowledge engineering tools. This includes full support for the constructive generation of instances from types and the exploratory discovery of new information based on existing model content (e.g. subsumption). To demonstrate the practical usability of the technology, the approach is applied to two well known examples from the software engineering and knowledge engineering communities -- The Pizza ontology from the Protégé documentation and the Royal & Loyal example from the OCL documentation

    Détection, Explications et Restructuration de défauts de conception : les patrons abîmés.

    Get PDF
    Models driven engineering considers models first class entities for the software development. The models driven processes must be able to take into account the know-how of experts, generally expressed in terms of analysis, architectural of design patterns. To choose the right pattern and to ensure its correct integration within a model constitute curbs with the systematic use of the good design practices. In order to reduce these tasks, we propose an approach based on the automatic inspection of models. In the same manner that there are code review activities aiming at checking the absence of bad coding practices in a program, we have tooled a design review activity identifying, explaining and correcting the bad design practices in a model. A spoiled pattern is comparable with a design pattern, its instantiations solving the same types of problems, but with a different and certainly improvable architecture. Experiments were carried out in order to collect spoiled patterns, allowing us to propose a catalog of bad practices, complementary to the GoF catalog. The detection of the instantiations of spoiled patterns in a UML model is related with a wide graph homomorphism. Graphs UML having typed vertexes, detection is based on local and global structural properties allowing the solving of this NP-Complete problem by successive filtering. Thus, this algorithm is able to detect all the possible instantiations of a spoiled pattern, by managing moreover prohibited and optional edges. The model fragment semantics is given by its intent which is validated by the designer. The intent of the detected fragments and the benefit of a replacement by the adequate pattern are deduced by requests on an ontology conceived for this purpose. The transformation of the fragments into instantiations of design pattern is carried out thanks to model refactoring automatically deduced from the structural differences between a spoiled pattern and an design pattern.L'ingénierie des modèles considère les modèles comme des entités de première classe pour le développement logiciel. Les processus dirigés par les modèles se doivent d'être capables de prendre en compte le savoir-faire d'experts, généralement exprimé en termes de patrons, qu'ils soient d'analyse, de conception ou d'architecture. Choisir le bon patron et assurer sa bonne intégration au sein d'une modélisation constitue des freins à l'utilisation systématique des bonnes pratiques de conception. Afin d'alléger ces tâches, nous proposons une approche basée sur l'inspection automatique des modèles. De la même manière qu'il existe des revues de code visant à vérifier l'absence de mauvaises pratiques de codage dans un programme, nous avons outillé une activité de revue de conception identifiant, expliquant et corrigeant les mauvaises pratiques de conception dans un modèle. Un patron abîmé est comparable à un patron de conception, ses contextualisations résolvant les mêmes types de problèmes, mais avec une architecture différente et certainement améliorable. Des expérimentations ont été menées afin de collecter des patrons abîmés, nous amenant à proposer un catalogue de mauvaises pratiques, complémentaire au catalogue du GoF. La détection des contextualisations de patrons abîmés dans un modèle UML est apparentée à un morphisme de graphe étendu. Les graphes UML ayant des sommets typés, la détection s'appuie sur des particularités structurelles locales et globales permettant de résoudre ce problème NP-Complet par des filtrages successifs. Cet algorithme est ainsi capable de détecter toutes les contextualisations possibles d'un patron abîmé, en gérant de plus les arcs interdits et facultatifs. La sémantique d'un fragment de modèle est donnée par son intention et celle-ci est validée par le concepteur. L'intention des fragments détectés et les bénéfices d'un remplacement par le patron adéquat sont déduits par des requêtes sur une ontologie conçue à cet effet. La transformation des fragments en contextualisations de patrons de conception est réalisée grâce à des restructurations de modèles déduites automatiquement des différences structurelles entre un patron abîmé et un patron de conception

    Customizable Feature based Design Pattern Recognition Integrating Multiple Techniques

    Get PDF
    Die Analyse und Rückgewinnung von Architekturinformationen aus existierenden Altsystemen ist eine komplexe, teure und zeitraubende Aufgabe, was der kontinuierlich steigenden Komplexität von Software und dem Aufkommen der modernen Technologien geschuldet ist. Die Wartung von Altsystemen wird immer stärker nachgefragt und muss dabei mit den neuesten Technologien und neuen Kundenanforderungen umgehen können. Die Wiederverwendung der Artefakte aus Altsystemen für neue Entwicklungen wird sehr bedeutsam und überlebenswichtig für die Softwarebranche. Die Architekturen von Altsystemen unterliegen konstanten Veränderungen, deren Projektdokumentation oft unvollständig, inkonsistent und veraltet ist. Diese Dokumente enthalten ungenügend Informationen über die innere Struktur der Systeme. Häufig liefert nur der Quellcode zuverlässige Informationen über die Struktur von Altsystemen. Das Extrahieren von Artefakten aus Quellcode von Altsystemen unterstützt das Programmverständnis, die Wartung, das Refactoring, das Reverse Engineering, die nachträgliche Dokumentation und Reengineering Methoden. Das Ziel dieser Dissertation ist es Entwurfsinformationen von Altsystemen zu extrahieren, mit Fokus auf die Wiedergewinnung von Architekturmustern. Architekturmuster sind Schlüsselelemente, um Architekturentscheidungen aus Quellcode von Altsystemen zu extrahieren. Die Verwendung von Mustern bei der Entwicklung von Applikationen wird allgemein als qualitätssteigernd betrachtet und reduziert Entwicklungszeit und kosten. In der Vergangenheit wurden unterschiedliche Methoden entwickelt, um Muster in Altsystemen zu erkennen. Diese Techniken erkennen Muster mit unterschiedlicher Genauigkeit, da ein und dasselbe Muster unterschiedlich spezifiziert und implementiert wird. Der Lösungsansatz dieser Dissertation basiert auf anpassbaren und wiederverwendbaren Merkmal-Typen, die statische und dynamische Parameter nutzen, um variable Muster zu definieren. Jeder Merkmal-Typ verwendet eine wählbare Suchtechnik (SQL Anfragen, Reguläre Ausdrücke oder Quellcode Parser), um ein bestimmtes Merkmal eines Musters im Quellcode zu identifizieren. Insbesondere zur Erkennung verschiedener Varianten eines Musters kommen im entwickelten Verfahren statische, dynamische und semantische Analysen zum Einsatz. Die Verwendung unterschiedlicher Suchtechniken erhöht die Genauigkeit der Mustererkennung bei verschiedenen Softwaresystemen. Zusätzlich wurde eine neue Semantik für Annotationen im Quellcode von existierenden Softwaresystemen entwickelt, welche die Effizienz der Mustererkennung steigert. Eine prototypische Implementierung des Ansatzes, genannt UDDPRT, wurde zur Erkennung verschiedener Muster in Softwaresystemenen unterschiedlicher Programmiersprachen (JAVA, C/C++, C#) verwendet. UDDPRT erlaubt die Anpassung der Mustererkennung durch den Benutzer. Alle Abfragen und deren Zusammenspiel sind konfigurierbar und erlauben dadurch die Erkennung von neuen und abgewandelten Mustern. Es wurden umfangreiche Experimente mit diversen Open Source Software Systemen durchgeführt und die erzielten Ergebnisse wurden mit denen anderer Ansätze verglichen. Dabei war es möglich eine deutliche Steigerung der Genauigkeit im entwickelten Verfahren gegenüber existierenden Ansätzen zu zeigen.Recovering design information from legacy applications is a complex, expensive, quiet challenging, and time consuming task due to ever increasing complexity of software and advent of modern technology. The growing demand for maintenance of legacy systems, which can cope with the latest technologies and new business requirements, the reuse of artifacts from the existing legacy applications for new developments become very important and vital for software industry. Due to constant evolution in architecture of legacy systems, they often have incomplete, inconsistent and obsolete documents which do not provide enough information about the structure of these systems. Mostly, source code is the only reliable source of information for recovering artifacts from legacy systems. Extraction of design artifacts from the source code of existing legacy systems supports program comprehension, maintenance, code refactoring, reverse engineering, redocumentation and reengineering methodologies. The objective of approach used in this thesis is to recover design information from legacy code with particular focus on the recovery of design patterns. Design patterns are key artifacts for recovering design decisions from the legacy source code. Patterns have been extensively tested in different applications and reusing them yield quality software with reduced cost and time frame. Different techniques, methodologies and tools are used to recover patterns from legacy applications in the past. Each technique recovers patterns with different precision and recall rates due to different specifications and implementations of same pattern. The approach used in this thesis is based on customizable and reusable feature types which use static and dynamic parameters to define variant pattern definitions. Each feature type allows user to switch/select between multiple searching techniques (SQL queries, Regular Expressions and Source Code Parsers) which are used to match features of patterns with source code artifacts. The technique focuses on detecting variants of different design patterns by using static, dynamic and semantic analysis techniques. The integrated use of SQL queries, source code parsers, regular expressions and annotations improve the precision and recall for pattern extraction from different legacy systems. The approach has introduced new semantics of annotations to be used in the source code of legacy applications, which reduce search space and time for detecting patterns. The prototypical implementation of approach, called UDDPRT is used to recognize different design patterns from the source code of multiple languages (Java, C/C++, C#). The prototype is flexible and customizable that novice user can change the SQL queries and regular expressions for detecting implementation variants of design patterns. The approach has improved significant precision and recall of pattern extraction by performing experiments on number of open source systems taken as baselines for comparisons
    corecore