5 research outputs found

    Intelligent environments: a manifesto

    Get PDF
    We explain basic features of an emerging area called Intelligent Environments. We give a short overview on how it has developed, what is the current state of the art and what are the challenges laying ahead. The aim of the article is to make aware the Computer Science community of this new development, the differences with previous dominant paradigms and the opportunities that this area offers to the scientific community and society

    Understanding Documentation Use Through Log Analysis: An Exploratory Case Study of Four Cloud Services

    Full text link
    Almost no modern software system is written from scratch, and developers are required to effectively learn to use third-party libraries or software services. Thus, many practitioners and researchers have looked for ways to create effective documentation that supports developers' learning. However, few efforts have focused on how people actually use the documentation. In this paper, we report on an exploratory, multi-phase, mixed methods empirical study of documentation page-view logs from four cloud-based industrial services. By analyzing page-view logs for over 100,000 users, we find diverse patterns of documentation page visits. Moreover, we show statistically that which documentation pages people visit often correlates with user characteristics such as past experience with the specific product, on the one hand, and with future adoption of the API on the other hand. We discuss the implications of these results on documentation design and propose documentation page-view log analysis as a feasible technique for design audits of documentation, from ones written for software developers to ones designed to support end users (e.g., Adobe Photoshop)

    Achieving non-intrusive interoperability between models for involving users in modeling tasks

    Full text link
    [EN] Model-Driven Development (MDD) promotes models as the cornerstone in the software development process, thereby displacing source code as the development process's main feature. Although this model-centric schema claims advantages over traditional software development (e.g., the code could be automatically generated from the models), it does not have the level of adoption that has been expected. The literature review reveals a broad agreement in the fact that end-users may develop and adapt systems themselves but the complexity in modeling standards and the lack of modeling skills prevents their active involvement in modeling tasks of existing MDD processes. To overcome this, end-users should be provided with different modeling languages that use concepts, which fit their particular skills, context and needs. This challenge is the main goal of this thesis, which is addressed by combining the End-user Development and the Model-Driven Development fields. This work starts with the involvement of end-users into the modeling tasks using a tool-supported visual modeling language that allows end-users to select and customize system features of pervasive systems using closer concepts for them. Afterwards, this thesis shows the necessity of enriching existing MDD processes for supporting the development of a new generation of software systems (e.g., smart health) that require expertise in a variety of domains. Consequently, different types of users (e.g., scientists, engineers and end-users) must actively participate in the description of model fragments that depend on their expertise using a different modeling language. Thus, users are able to collaborate to obtain a unified system description. At this point, it becomes necessary to provide mechanisms that transforms models fragments from one modeling language to another, delimits which model fragments are described by a different user, and integrates those model fragments. To provide this, the presented approach encompasses variability management in a novel way to enable collaborative modeling by supporting both the selection of model fragments of the system that may be described using a different modeling language, and the integration of those model fragments once they are described. Furthermore, interoperability mechanisms bridge two different modeling languages in a non-intrusive way with the structure of models by transforming the description of gaps. Thus, our proposal could enrich models of existing MDD processes with model fragments that have been described using a different modeling language, which could make users feel confident to adopt models for describing domain-specific content and could help to adopt MDD processes. The proposal has been validated in three case studies from different levels of complexity and domains: smart home systems, web information systems, and biomechanical protocols. The results have proven the applicability and feasibility of our approach to actively involve different types of users (end- users with software professionals, domain experts with software development experts, and doctors with biomedical engineers, respectively) in model descriptions of existing MDD processes using a different modeling language.[ES] En el Desarrollo de Software Dirigido por Modelos (DSDM) los modelos son la piedra angular del proceso de desarrollo de software, desplazando así al código fuente como artefacto principal. Aunque este enfoque centrado en modelos ofrece ventajas sobre el desarrollo de software tradicional (por ejemplo, la generación de código de forma automática a partir de los modelos) no tiene el nivel de adopción esperado. La literatura científica revela un amplio acuerdo en el hecho de que los usuarios finales puedan ellos mismos desarrollar y adaptar los sistemas pero la complejidad de los estándares de modelado y la carencia de habilidades de modelado impide su participación activa en procesos DSDM existentes. Para lograrlo, los usuarios finales deben disponer de lenguajes de modelado diferentes con conceptos adaptados a sus habilidades, contexto y necesidades. Este desafío es el objetivo principal de esta tesis que se aborda combinando las ideas del desarrollo orientado al usuario final y el DSDM. Este trabajo comienza involucrando usuarios finales en tareas de modelado con una herramienta que les proporciona un lenguaje de modelado visual para seleccionar y personalizar características de un sistema pervasivo utilizando conceptos familiares para ellos. Después, esta tesis motiva la necesidad de enriquecer procesos de DSDM existentes para soportar el desarrollo de una nueva generación de sistemas software (por ejemplo, salud inteligente) que requieren conocimientos especializados en una variedad de dominios. Consecuentemente, diferentes tipos de usuarios (por ejemplo, científicos, ingenieros y usuarios finales) deben participar activamente en la descripción de fragmentos de modelos que dependen de su experiencia utilizando un lenguaje de modelado diferente. De este modo, los usuarios pueden colaborar para obtener una descripción del sistema unificada. En este punto, es necesario proporcionar mecanismos que transformen e integren los fragmentos de un lenguaje de modelado a otro y delimiten qué fragmentos se describen por un usuario diferente. Para proporcionar esto, la propuesta presentada utiliza la gestión de variabilidad de forma novedosa para permitir modelado colaborativo seleccionando fragmentos de un modelo del sistema que pueden ser descritos utilizando un lenguaje de modelado diferente y, la integración de esos fragmentos una vez que hayan sido descritos. Además, la propuesta utiliza mecanismos de interoperabilidad para conectar dos lenguajes de modelado diferentes transformando la descripción de los fragmentos de una manera no invasiva con su estructura. Por tanto, nuestra propuesta puede enriquecer los modelos de procesos DSDM existentes con fragmentos de modelos que han sido descritos con un lenguaje diferente y esto, podría hacer que los usuarios se sientan seguros al adoptar modelos para describir contenido de dominio específico y podría ayudar a adoptar procesos DSDM. La propuesta ha sido validada en tres casos de estudio con diferentes niveles de complejidad y dominios: sistemas para el hogar inteligente, sistemas de información web y protocolos biomecánicos. Los resultados han demostrado la aplicabilidad y viabilidad de nuestra propuesta para involucrar diferentes tipos de usuarios (usuarios finales con profesionales de software, expertos en el dominio con expertos en desarrollo de software y, médicos con ingenieros biomédicos, respectivamente) en descripciones de modelos de procesos DSDM existentes utilizando un lenguaje de modelado diferente.[CA] En el Desenvolupament de Programari Dirigit per Models (DPDM) els models són la pedra angular del procés de desenvolupament de programari, desplaçant així al codi font com a artefacte principal. Encara que aquest enfocament centrat en models ofereix avantatges sobre el desenvolupament de programari tradicional (per exemple, la generació de codi de forma automàtica a partir dels models) no té el nivell d'adopció esperat. La literatura científica revela un ampli acord en el fet que els usuaris finals puguen ells mateixos desenvolupar i adaptar els sistemes però la complexitat dels estàndards de modelatge i la falta d'habilitats de modelatge impedeix la seua participació activa en processos DPDM existents. Per a aconseguir-ho, els usuaris finals han de disposar de llenguatges de modelatge diferents amb conceptes adaptats a les seues habilitats, context i necessitats. Aquest desafiament és l'objectiu principal d'aquesta tesi que s'aborda combinant les idees del desenvolupament orientat a l'usuari final i el DPDM. Aquest treball comença involucrant usuaris finals en tasques de modelatge amb una eina que els proporciona un llenguatge de modelatge visual que permet als usuaris finals seleccionar i personalitzar característiques d'un sistema pervasiu utilitzant conceptes familiars per a ells. Després, aquesta tesi motiva la necessitat d'enriquir processos de DPDM existents per a suportar el desenvolupament d'una nova generació de sistemes programari (per exemple, salut intel¿ligent) que requereixen coneixements especialitzats en una varietat de dominis. Conseqüentment, diferents tipus d'usuaris (per exemple, científics, enginyers i usuaris finals) han de participar activament en la descripció de fragments de models que depenen de la seua experiència utilitzant un llenguatge de modelatge diferent. D'aquesta manera, els usuaris poden col¿laborar per a obtenir una descripció del sistema unificada. En aquest punt, és necessari proporcionar mecanismes que transformen i integren els fragments d'un llenguatge de modelatge a un altre i delimiten quins fragments es descriuen per un usuari diferent. Per a proporcionar açò, la proposta presentada utilitza la gestió de variabilitat de forma nova per a permetre modelatge col.laboratiu seleccionant fragments d'un model del sistema que poden ser descrits utilitzant un llenguatge de modelatge diferent i, la integració d'aqueixos fragments una vegada que hagen sigut descrits. A més, la proposta utilitza mecanismes d'interoperabilitat per a connectar dos llenguatges de modelatge diferents transformant la descripció dels fragments d'una manera no invasiva amb la seua estructura. Per tant, la nostra proposta pot enriquir els models de processos DPDM existents amb fragments de models que han sigut descrits amb un llenguatge diferent i açò, podria fer que els usuaris se senten segurs en adoptar models per a descriure contingut de domini específic i podria ajudar a adoptar processos DPDM. La proposta ha sigut validada en tres casos d'estudi amb diferents nivells de complexitat i dominis: sistemes per a la llar intel¿ligent, sistemes d'informació web i protocols biomecànics. Els resultats han demostrat l'aplicabilitat i viabilitat de la nostra proposta per a involucrar diferents tipus d'usuaris (usuaris finals amb professionals de programari, experts en el domini amb experts en desenvolupament de programari i, metges amb enginyers biomèdics, respectivament) en descripcions de models de processos DPDM existents utilitzant un llenguatge de modelatge diferent.Pérez Pérez, MF. (2015). Achieving non-intrusive interoperability between models for involving users in modeling tasks [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/58429TESI

    Consistency-by-Construction Techniques for Software Models and Model Transformations

    Get PDF
    A model is consistent with given specifications (specs) if and only if all the specifications are held on the model, i.e., all the specs are true (correct) for the model. Constructing consistent models (e.g., programs or artifacts) is vital during software development, especially in Model-Driven Engineering (MDE), where models are employed throughout the life cycle of software development phases (analysis, design, implementation, and testing). Models are usually written using domain-specific modeling languages (DSMLs) and specified to describe a domain problem or a system from different perspectives and at several levels of abstraction. If a model conforms to the definition of its DSML (denoted usually by a meta-model and integrity constraints), the model is consistent. Model transformations are an essential technology for manipulating models, including, e.g., refactoring and code generation in a (semi)automated way. They are often supposed to have a well-defined behavior in the sense that their resulting models are consistent with regard to a set of constraints. Inconsistent models may affect their applicability and thus the automation becomes untrustworthy and error-prone. The consistency of the models and model transformation results contribute to the quality of the overall modeled system. Although MDE has significantly progressed and become an accepted best practice in many application domains such as automotive and aerospace, there are still several significant challenges that have to be tackled to realize the MDE vision in the industry. Challenges such as handling and resolving inconsistent models (e.g., incomplete models), enabling and enforcing model consistency/correctness during the construction, fostering the trust in and use of model transformations (e.g., by ensuring the resulting models are consistent), developing efficient (automated, standardized and reliable) domain-specific modeling tools, and dealing with large models are continually making the need for more research evident. In this thesis, we contribute four automated interactive techniques for ensuring the consistency of models and model transformation results during the construction process. The first two contributions construct consistent models of a given DSML in an automated and interactive way. The construction can start at a seed model being potentially inconsistent. Since enhancing a set of transformations to satisfy a set of constraints is a tedious and error-prone task and requires high skills related to the theoretical foundation, we present the other contributions. They ensure model consistency by enhancing the behavior of model transformations through automatically constructing application conditions. The resulting application conditions control the applicability of the transformations to respect a set of constraints. Moreover, we provide several optimizing strategies. Specifically, we present the following: First, we present a model repair technique for repairing models in an automated and interactive way. Our approach guides the modeler to repair the whole model by resolving all the cardinalities violations and thereby yields a desired, consistent model. Second, we introduce a model generation technique to efficiently generate large, consistent, and diverse models. Both techniques are DSML-agnostic, i.e., they can deal with any meta-models. We present meta-techniques to instantiate both approaches to a given DSML; namely, we develop meta-tools to generate the corresponding DSML tools (model repair and generation) for a given meta-model automatically. We present the soundness of our techniques and evaluate and discuss their features such as scalability. Third, we develop a tool based on a correct-by-construction technique for translating OCL constraints into semantically equivalent graph constraints and integrating them as guaranteeing application conditions into a transformation rule in a fully automated way. A constraint-guaranteeing application condition ensures that a rule applies successfully to a model if and only if the resulting model after the rule application satisfies the constraint. Fourth, we propose an optimizing-by-construction technique for application conditions for transformation rules that need to be constraint-preserving. A constraint-preserving application condition ensures that a rule applies successfully to a consistent model (w.r.t. the constraint) if and only if the resulting model after the rule application still satisfies the constraint. We show the soundness of our techniques, develop them as ready-to-use tools, evaluate the efficiency (complexity and performance) of both works, and assess the overall approach in general as well. All our four techniques are compliant with the Eclipse Modeling Framework (EMF), which is the realization of the OMG standard specification in practice. Thus, the interoperability and the interchangeability of the techniques are ensured. Our techniques not only improve the quality of the modeled system but also increase software productivity by providing meta-tools for generating the DSML tool supports and automating the tasks

    Automated model-based spreadsheet debugging

    Get PDF
    Spreadsheets are interactive data organization and calculation programs that are developed in spreadsheet environments like Microsoft Excel or LibreOffice Calc. They are probably the most successful example of end-user developed software and are utilized in almost all branches and at all levels of companies. Although spreadsheets often support important decision making processes, they are, like all software, prone to error. In several cases, faults in spreadsheets have caused severe losses of money. Spreadsheet developers are usually not educated in the practices of software development. As they are thus not familiar with quality control methods like systematic testing or debugging, they have to be supported by the spreadsheet environment itself to search for faults in their calculations in order to ensure the correctness and a better overall quality of the developed spreadsheets. This thesis by publication introduces several approaches to locate faults in spreadsheets. The presented approaches are based on the principles of Model-Based Diagnosis (MBD), which is a technique to find the possible reasons why a system does not behave as expected. Several new algorithmic enhancements of the general MBD approach are combined in this thesis to allow spreadsheet users to debug their spreadsheets and to efficiently find the reason of the observed unexpected output values. In order to assure a seamless integration into the environment that is well-known to the spreadsheet developers, the presented approaches are implemented as an extension for Microsoft Excel. The first part of the thesis outlines the different algorithmic approaches that are introduced in this thesis and summarizes the improvements that were achieved over the general MBD approach. In the second part, the appendix, a selection of the author's publications are presented. These publications comprise (a) a survey of the research in the area of spreadsheet quality assurance, (b) a work describing how to adapt the general MBD approach to spreadsheets, (c) two new algorithmic improvements of the general technique to speed up the calculation of the possible reasons of an observed fault, (d) a new concept and algorithm to efficiently determine questions that a user can be asked during debugging in order to reduce the number of possible reasons for the observed unexpected output values, and (e) a new method to find faults in a set of spreadsheets and a new corpus of real-world spreadsheets containing faults that can be used to evaluate the proposed debugging approaches
    corecore