Búsqueda avanzada

Easing DApp Interaction for Non-Blockchain Users from a Conceptual Modelling Approach

Blockchain decentralized applications (DApp+IBk-s) are applications which run on blockchains nodes. Thus, to interact directly with this sort of applica-tions, users need to have a blockchain address, wallet, and knowledge about how to make transactions to interact with DApp+IBk-s. Therefore, the knowledge required to use a DApp can easily make users to desist when trying to interact with them. To tackle this issue, we propose a software ar-chitecture that will be in the middle of the user and the DApp, thus making users initially unaware of the fact that they are interacting with a DApp. This is achieved by analyzing the relationship between DApps and Apps by using UML modelling. Next, based on the previous analysis, we created a middleware for users to interact with a DApp in the same manner they do with a traditional web app, i.e., by using usernames, passwords and user in-terface elements instead of addresses, private keys or transactions. To put the developed middleware into practice, we developed a DApp that makes use of it. This DApp registers the time control of workers from companies by using blockchain to store the data in a secure and non-modifiable man-ner. Finally, we performed an experiment, thus demonstrating that a DApp that implements the proposed middleware would improve its usability for users with no experience with blockchain.

Ensuring the Semantic Correctness of a BAUML Artifact-centric BPM (Summary)

Using models to represent business processes provides several advantages, such as being able to check the correctness of the processes before their implementation. In contrast to traditional process modeling approaches, the artifact-centric approach treats data as a key element of the process, also considering the tasks or activities that are performed in it. This paper presents a way to verify and validate the semantic correctness of an artifact-centric business process model defined using a combination of UML and OCL models – a BAUML model. To do this, we provide a method to translate all BAUML components into a set of logic formulas. The result of this translation ensures that the only changes allowed are those specified in the model, and that those changes are taking place according the order established by the model. Having obtained this logic representation, these models can be validated by any existing reasoning method able to deal with negation of derived predicates. Moreover, we show how to automatically generate the relevant tests to validate the models and we prove the feasibility of our approach.

An industrial case study on the use of UML in software maintenance and its perceived benefits and hurdles (RELEVANTE YA PUBLICADO)

UML is a commonly-used graphical language for the modelling ofsoftware. Works regarding UML’s effectiveness have studied projects thatdevelop software systems from scratch. Yet the maintenance of softwareconsumes a large share of the overall time and effort required to develop softwaresystems. This study, therefore, focuses on the use of UML in softwaremaintenance. We wish to elicit the practices of the software modelling usedduring maintenance in industry and understand what are perceived as hurdles andbenefits when using modelling. In order to achieve a high level of realism, weperformed a case study in a multinational company’s ICT department. Theanalysis is based on 31 interviews with employees who work on softwaremaintenance projects. The interviewees played different roles and providedcomplementary views about the use, hurdles and benefits of software modellingand the use of UML. Our study uncovered a broad range of modelling-relatedpractices, which are presented in a theoretical framework that illustrates howthese practices are linked to the specific goals and context of softwareengineering projects. We present a list of recommended practices that contributeto the increased effectiveness of software modelling. The use of softwaremodelling notations (like UML) is considered beneficial for softwaremaintenance but needs to be tailored to its context. Various practices thatcontribute to the effective use of modelling are commonly overlooked,suggesting that a more conscious holistic approach with which to integratemodelling practices into the overall software engineering approach is required.

Smart Bound Selection for the Verification of UML/OCL Class Diagrams (YA PUBLICADO)

Correctness of UML class diagrams annotated with OCL constraints can be checked using bounded verification techniques, e.g., SAT or constraint programming (CP) solvers. Bounded verification detects faults efficiently but, on the other hand, the absence of faults does not guarantee a correct behavior outside the bounded domain. Hence, choosing suitable bounds is a non-trivial process as there is a trade-off between the verification time (faster for smaller domains) and the confidence in the result (better for larger domains). Unfortunately, bounded verification tools provide little support in the bound selection process.In this paper, we present a technique that can be used to (i) automatically infer verification bounds whenever possible, (ii) tighten a set of bounds proposed by the user and (iii) guide the user in the bound selection process. This approach may increase the usability of UML/OCL bounded verification tools and improve the efficiency of the verification process.This paper has been published in IEEE Transactions on Software Engineering[]

Un Método de Generación de Pruebas de Rendimiento para Múltiples Tecnologías desde Modelos UML con Anotaciones MARTE

Obtener el rendimiento esperado de un flujo de trabajo sería más fácil si cada tarea incluyera sus propias especificaciones. Sin embargo, normalmente sólo se dan requisitos globales de rendimiento, obligando a los diseñadores a inferir los requisitos locales a mano. En trabajos anteriores presentamos dos algoritmos que automáticamente inferían restricciones locales de rendimiento a partir de diagramas de actividad Unified Modelling Language anotados mediante el perfil Modelling and Analysis of Real-Time and Embedded Systems. En este trabajo presentamos un método para usar estas anotaciones para generar casos de prueba de rendimiento para múltiples tecnologías, relacionando el modelo de rendimiento con modelos de diseño e implementación. Mostramos cómo se podría aplicar a código Java y a composiciones de servicios mediante tecnologías existentes de código abierto, y estudiamos las tareas a realizar para su implementación y las similitudes y diferencias con otras propuestas.