27 research outputs found

    Consistency Modeling in a Multi-Model Architecture : Integrate and Celebrate Diversity

    Get PDF
    Central to Model-Driven Engineering (MDE) is seeing models as objects that can be handled and organized into metamodel stacks and multi-model architectures. This work contributes with a unique way of doing consistency modeling where the involved models are explicitly organized in a multi-model architecture; a general model for creating multi-model architectures that allows semantics to be attached is defined and applied; explicit attachment of semantics is demonstrated by attaching Java classes that implement different instantiation semantics in order to realize the consistency modeling and the automatic generation of consistency data. The kind of consistency addressed concerns relations between data residing in legacy databases defined by different schemas. The consistency modeling is meant to solve the problem of exposing inconsistencies by relating the data. The consistency modeling combines in a practical way visual modeling and logic (OCL). The approach is not limited to exposing inconsistencies, but may also be used to derive more general information given one or more data sets. The consistency is modeled by defining a consistency model that relates elements of two given legacy models. The consistency model is expressed in a language specially designed for consistency modeling. The language allows definition of classes, associations and invariants expressed in OCL. The interpretation of the language is special: Given one conforming data set for each of the legacy models, the consistency model may then be automatically instantiated to consistency data that tells if the data sets are consistent or not. The invariants are used to decide what instances to generate when making the consistency data. The amount of consistency data to create is finite and limited by the given data sets. The consistency model is instantiated until no more elements can be added without breaking some invariant or multiplicity. The consistency data is presented as a model which can be investigated by the user

    A survey on handling computationally expensive multiobjective optimization problems with evolutionary algorithms

    Get PDF
    This is the author accepted manuscript. The final version is available from Springer Verlag via the DOI in this record.Evolutionary algorithms are widely used for solving multiobjective optimization problems but are often criticized because of a large number of function evaluations needed. Approximations, especially function approximations, also referred to as surrogates or metamodels are commonly used in the literature to reduce the computation time. This paper presents a survey of 45 different recent algorithms proposed in the literature between 2008 and 2016 to handle computationally expensive multiobjective optimization problems. Several algorithms are discussed based on what kind of an approximation such as problem, function or fitness approximation they use. Most emphasis is given to function approximation-based algorithms. We also compare these algorithms based on different criteria such as metamodeling technique and evolutionary algorithm used, type and dimensions of the problem solved, handling constraints, training time and the type of evolution control. Furthermore, we identify and discuss some promising elements and major issues among algorithms in the literature related to using an approximation and numerical settings used. In addition, we discuss selecting an algorithm to solve a given computationally expensive multiobjective optimization problem based on the dimensions in both objective and decision spaces and the computation budget available.The research of Tinkle Chugh was funded by the COMAS Doctoral Program (at the University of Jyväskylä) and FiDiPro Project DeCoMo (funded by Tekes, the Finnish Funding Agency for Innovation), and the research of Dr. Karthik Sindhya was funded by SIMPRO project funded by Tekes as well as DeCoMo

    Open meta-modelling frameworks via meta-object protocols

    Full text link
    Meta-modelling is central to Model-Driven Engineering. Many meta-modelling notations, approaches and tools have been proposed along the years, which widely vary regarding their supported modelling features. However, current approaches tend to be closed and rigid with respect to the supported concepts and semantics. Moreover, extending the environment with features beyond those natively supported requires highly technical knowledge. This situation hampers flexibility and interoperability of meta-modelling environments. In order to alleviate this situation, we propose open meta-modelling frameworks, which can be extended and configured via meta-object protocols (MOPs). Such environments offer extension points on events like element instantiation, model loading or property access, and enable selecting particular model elements over which the extensions are to be executed. We show how MOP-based mechanisms permit extending meta-modelling frameworks in a flexible way, and allow describing a wide range of meta-modelling concepts. As a proof of concept, we show and compare an implementation in the MetaDepth tool and an aspect-based implementation atop the Eclipse Modelling Framework (EMF). We have evaluated our approach by extending EMF and MetaDepth with modelling services not foreseen initially when they were created. The evaluation shows that MOP-based mechanisms permit extending meta-modelling frameworks in a flexible way, and are powerful enough to support the specification of a broad variety of meta-modelling featuresWork partially funded by projects RECOM and FLEXOR (Spanish MINECO,TIN2015-73968-JIN (AEI/FEDER/UE) and TIN2014-52129-R) and the R&D programme of the Madrid Region (S2013/ICE-3006

    A Conceptual Modelling Approach to Software Variability

    Get PDF
    Variability is the ability of a system to be efficiently extended, changed, customised or configured for use in a particular context. Increasing amounts of variability are required of software systems. The number of possible variants of a software system may become very large, essentially infinite. Efficient methods for modelling and reasoning about software variability are needed and numerous such languages have been developed. Most of these languages either lack a solid conceptual foundation or a rigorous formal semantics, or both. In this dissertation, three novel software variability modelling languages, KOALISH, FORFAMEL and KUMBANG, which synthesises KOALISH and FORFAMEL, are developed. The languages are based on concepts found relevant to modelling software variability in scientific literature and practice, namely features and software architecture. They synthesise and clarify the concepts defined in a number of previous languages. Ideas first developed in product configuration research for modelling variability in non-software products are elaborated and integrated into the languages. A formal semantics is given for the languages by translation to weight constraint rule language (WCRL). One of the goals of this dissertation is to enable the representation of software variability knowledge at different levels of abstraction in a uniform manner, preferably using an existing conceptual modelling language with a formal semantics. Unfortunately, it turns out that no existing language meets these requirements. Consequently, a novel conceptual modelling language, NIVEL, with the necessary capabilities is developed in this dissertation. The modelling concepts of NIVEL are not based on software variability. Consequently, NIVEL can be applied in domains other than software variability and is hence generic and contributes to the theory of conceptual modelling. A formal semantics enabling automated, decidable reasoning is given for NIVEL by translation to WCRL. NIVEL is used to give an alternative definition of KUMBANG. The alternative definition is more compact and easily understandable than the original one. Major parts of the semantics of KUMBANG are captured by the semantics of NIVEL. The definition of KUMBANG in terms of a generic modelling language also brings software variability modelling closer to other forms of modelling, thus making software variability modelling less of an isolated discipline

    Facet-oriented Modelling

    Full text link
    © ACM 2021. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in ACM Transactions on Software Engineering and Methodology, http://dx.doi.org/10.1145/10.1145/3428076Models are the central assets in model-driven engineering (MDE), as they are actively used in all phases of software development. Models are built using metamodel-based languages, and so objects in models are typed by a metamodel class. This typing is static, established at creation time, and cannot be changed later. Therefore, objects in MDE are closed and fixed with respect to the class they conform to, the fields they have, and the well-formedness constraints they must comply with. This hampers many MDE activities, like the reuse of model-related artefacts such as transformations, the opportunistic or dynamic combination of metamodels, or the dynamic reconfiguration of models. To alleviate this rigidity, we propose making model objects open so that they can acquire or drop so-called facets. These contribute with a type, fields and constraints to the objects holding them. Facets are defined by regular metamodels, hence being a lightweight extension of standard metamodelling. Facet metamodels may declare usage interfaces, as well as laws that govern the assignment of facets to objects (or classes). This article describes our proposal, reporting on a theory, analysis techniques, and an implementation. The benefits of the approach are validated on the basis of five case studies dealing with annotation models, transformation reuse, multi-view modelling, multi-level modelling, and language product linesWork partially funded by the R&D programme of the Madrid Region (project FORTE, S2018/TCS-4314) and the Spanish Ministry of Science (project MASSIVE, RTI2018-095255-B-I00

    MODEL DRIVEN SOFTWARE PRODUCT LINE ENGINEERING: SYSTEM VARIABILITY VIEW AND PROCESS IMPLICATIONS

    Full text link
    La Ingeniería de Líneas de Productos Software -Software Product Line Engineerings (SPLEs) en inglés- es una técnica de desarrollo de software que busca aplicar los principios de la fabricación industrial para la obtención de aplicaciones informáticas: esto es, una Línea de productos Software -Software Product Line (SPL)- se emplea para producir una familia de productos con características comunes, cuyos miembros, sin embargo, pueden tener características diferenciales. Identificar a priori estas características comunes y diferenciales permite maximizar la reutilización, reduciendo el tiempo y el coste del desarrollo. Describir estas relaciones con la suficiente expresividad se vuelve un aspecto fundamental para conseguir el éxito. La Ingeniería Dirigida por Modelos -Model Driven Engineering (MDE) en inglés- se ha revelado en los últimos años como un paradigma que permite tratar con artefactos software con un alto nivel de abstracción de forma efectiva. Gracias a ello, las SPLs puede aprovecharse en granmedida de los estándares y herramientas que han surgido dentro de la comunidad de MDE. No obstante, aún no se ha conseguido una buena integración entre SPLE y MDE, y como consecuencia, los mecanismos para la gestión de la variabilidad no son suficientemente expresivos. De esta manera, no es posible integrar la variabilidad de forma eficiente en procesos complejos de desarrollo de software donde las diferentes vistas de un sistema, las transformaciones de modelos y la generación de código juegan un papel fundamental. Esta tesis presenta MULTIPLE, un marco de trabajo y una herramienta que persiguen integrar de forma precisa y eficiente los mecanismos de gestión de variabilidad propios de las SPLs dentro de los procesos de MDE. MULTIPLE proporciona lenguajes específicos de dominio para especificar diferentes vistas de los sistemas software. Entre ellas se hace especial hincapié en la vista de variabilidad ya que es determinante para la especificación de SPLs.Gómez Llana, A. (2012). MODEL DRIVEN SOFTWARE PRODUCT LINE ENGINEERING: SYSTEM VARIABILITY VIEW AND PROCESS IMPLICATIONS [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/15075Palanci

    Using Workflows to Automate Activities in MDE Tools

    Full text link
    Le génie logiciel a pour but de créer des outils logiciels qui permettent de résoudre des problèmes particuliers d’une façon facile et efficace. À cet égard, l’ingénierie dirigée par les modèles (IDM), facilite la création d’outils logiciels, en modélisant et transformant systématiquement des modèles. À cette fin, l’IDM s’appuie sur des workbenches de langage : des environnements de développement intégré (IDE) pour modéliser des langages, concevoir des modèles, les exécuter et les vérifier. Mais l’utilisation des outils est loin d’être efficace. Les activités de l’IDM typiques, telles que la création d’un langage de domaine dédié ou créer une transformation de modèles, sont des activités complexes qui exigent des opérations souvent répétitives. Par conséquent, le temps de développement augmentate inutilement. Le but de ce mémoire est de proposer une approche qui augmente la productivité des modélisateurs dans leurs activités quotidiennes en automatisant le plus possible les tâches à faire dans les outils IDM. Je propose une solution utilisant l’IDM où l’utilisateur définit un flux de travail qui peut être paramétré lors de l’exécution. Cette solution est implémentée dans un IDE pour la modélisation graphique. À l’aide de deux évaluations empiriques, je montre que la productivité des utilisateurs est augmentée et amééliorée.Software engineering aims to create software tools that allow people to solve particular problems in an easy and efficient way. In this regard, Model-driven engineering (MDE) enables to generate software tools, by systematically modeling and transforming models. In order to do this, MDE relies on language workbenches: Integrated Development Environment (IDE) for engineering modeling languages, designing models executing them and verifying them. However, the usability of these tools is far from efficient. Common MDE activities, such as creating a domain-specific language or developing a model transformation, are nontrivial and often require repetitive tasks. This results in unnecessary risings of development time. The goal of this thesis is to increase the productivity of modelers in their daily activities by automating the tasks performed in current MDE tools. I propose an MDE-based solution where the user defines a reusable workflow that can be parameterized at run-time and executed. This solution is implemented in an IDE for graphical modeling. I also performed two empirical evaluations in which the users’ productivity is improved

    Consistency of UML based designs using ontology reasoners

    Get PDF
    Software plays an important role in our society and economy. Software development is an intricate process, and it comprises many different tasks: gathering requirements, designing new solutions that fulfill these requirements, as well as implementing these designs using a programming language into a working system. As a consequence, the development of high quality software is a core problem in software engineering. This thesis focuses on the validation of software designs. The issue of the analysis of designs is of great importance, since errors originating from designs may appear in the final system. It is considered economical to rectify the problems as early in the software development process as possible. Practitioners often create and visualize designs using modeling languages, one of the more popular being the Uni ed Modeling Language (UML). The analysis of the designs can be done manually, but in case of large systems, the need of mechanisms that automatically analyze these designs arises. In this thesis, we propose an automatic approach to analyze UML based designs using logic reasoners. This approach firstly proposes the translations of the UML based designs into a language understandable by reasoners in the form of logic facts, and secondly shows how to use the logic reasoners to infer the logical consequences of these logic facts. We have implemented the proposed translations in the form of a tool that can be used with any standard compliant UML modeling tool. Moreover, we authenticate the proposed approach by automatically validating hundreds of UML based designs that consist of thousands of model elements available in an online model repository. The proposed approach is limited in scope, but is fully automatic and does not require any expertise of logic languages from the user. We exemplify the proposed approach with two applications, which include the validation of domain specific languages and the validation of web service interfaces

    Grid-enabled adaptive surrugate modeling for computer aided engineering

    Get PDF
    corecore