55 research outputs found

    Towards a Tool-based Development Methodology for Pervasive Computing Applications

    Get PDF
    Despite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test the application, and finally deploying it. This paper presents a design language and a tool suite covering the development life-cycle of a pervasive computing application. The design language allows to define a taxonomy of area-specific building-blocks, abstracting over their heterogeneity. This language also includes a layer to define the architecture of an application, following an architectural pattern commonly used in the pervasive computing domain. Our underlying methodology assigns roles to the stakeholders, providing separation of concerns. Our tool suite includes a compiler that takes design artifacts written in our language as input and generates a programming framework that supports the subsequent development stages, namely implementation, testing, and deployment. Our methodology has been applied on a wide spectrum of areas. Based on these experiments, we assess our approach through three criteria: expressiveness, usability, and productivity

    Early aspects: aspect-oriented requirements engineering and architecture design

    Get PDF
    This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications

    A model-driven deployment approach for applying the performance and scalability perspective from a set of software architecture styles

    Get PDF
    Software architecture aims to satisfy software requirements from different points of view. This is represented by models, which are the reference to understand the structure and behavior of the software. Nevertheless, one of the great challenges of software engineering is to ensure that design, implementation and deployment of the software are consistent. In the same way, another challenge is to ensure that a system improves its performance when it is in a scenario of receiving many requests per unit of time. In this manner, this research work presents a proposed model-driven deployment approach which from software architecture models, automates the deployment of software systems on a cloud computing platform by means of the application of scalability tactic, specifically horizontal scaling. In addition, this work includes a traditional model-driven development process which automates the implementation of the software system to be deployed. Likewise, Sarch is designed and proposed, a domain-specific language based on the specification of a set of architectural styles and their representation as architectural views. Finally, a tool called Sarch-Studio is built, which allows writing in Sarch language and performs automatic development and deployment processes.Resumen: La arquitectura de software pretende satisfacer los requisitos de software a partir de diferentes puntos de vista. Esta es representada por medio de modelos, los cuales son la referencia para comprender la estructura y comportamiento de el software. Sin embargo, uno de los grandes retos de la ingeniería de software es asegurar que el diseño, la implementación y el despliegue del software sean consistentes. De la misma forma, otro reto es lograr que un sistema de soft- ware mejore su rendimiento cuando este se encuentra en un escenario de recepción de muchas solicitudes por unidad de tiempo. De esta manera, este trabajo de investigación presenta un enfoque de despliegue dirigido por modelos, que a partir de modelos de arquitectura de soft- ware, automatiza el despliegue de sistemas de software en una plataforma de computación en la nube, por medio de la aplicación de tácticas de escalabilidad, específicamente de la táctica de escalamiento horizontal. Además, este trabajo incluye un proceso tradicional de desarrollo dirigido por modelos, el cual automatiza la implementación de los sistemas de software a ser de- splegados. Así mismo, se diseña y se propone Sarch, un lenguaje de dominio específico basado en la especificación de un conjunto de estilos arquitectónicos y su representación como vistas arquitectónicas. Finalmente, se implementa una herramienta llamada Sarch-Studio, que permite escribir en lenguaje Sarch y es la encargada de realizar los procesos automáticos de desarrollo y despliegue.Maestrí

    Ensuring and Assessing Architecture Conformance to Microservice Decomposition Patterns

    Get PDF
    Microservice-based software architecture design has been widely discussed, and best practices have been published as architecture design patterns. However, conformance to those patterns is hard to ensure and assess automatically, leading to problems such as architectural drift and erosion, especially in the context of continued software evolution or large-scale microservice systems. In addition, not much in the component and connector architecture models is specific (only) to the microservices approach, whereas other aspects really specific to that approach, such as independent deployment of microservices, are usually modeled in other views or not at all. We suggest a set of constraints to check and metrics to assess architecture conformance to microservice patterns. In comparison to expert judgment derived from the patterns, a subset of these constraints and metrics shows a good relative performance and potential for automation

    Using a Dynamic Domain-Specific Modeling Language for the Model-Driven Development of Cross-Platform Mobile Applications

    Get PDF
    There has been a gradual but steady convergence of dynamic programming languages with modeling languages. One area that can benefit from this convergence is modeldriven development (MDD) especially in the domain of mobile application development. By using a dynamic language to construct a domain-specific modeling language (DSML), it is possible to create models that are executable, exhibit flexible type checking, and provide a smaller cognitive gap between business users, modelers and developers than more traditional model-driven approaches. Dynamic languages have found strong adoption by practitioners of Agile development processes. These processes often rely on developers to rapidly produce working code that meets business needs and to do so in an iterative and incremental way. Such methodologies tend to eschew “throwaway” artifacts and models as being wasteful except as a communication vehicle to produce executable code. These approaches are not readily supported with traditional heavyweight approaches to model-driven development such as the Object Management Group’s Model-Driven Architecture approach. This research asks whether it is possible for a domain-specific modeling language written in a dynamic programming language to define a cross-platform model that can produce native code and do so in a way that developer productivity and code quality are at least as effective as hand-written code produced using native tools. Using a prototype modeling tool, AXIOM (Agile eXecutable and Incremental Objectoriented Modeling), we examine this question through small- and mid-scale experiments and find that the AXIOM approach improved developer productivity by almost 400%, albeit only after some up-front investment. We also find that the generated code can be of equal if not better quality than the equivalent hand-written code. Finally, we find that there are significant challenges in the synthesis of a DSML that can be used to model applications across platforms as diverse as today’s mobile operating systems, which point to intriguing avenues of subsequent research

    DiaSuite: a Tool Suite To Develop Sense/Compute/Control Applications

    Get PDF
    International audienceWe present DiaSuite, a tool suite that uses a software design approach to drive the development process. DiaSuite focuses on a specific domain, namely Sense/Compute/Control (SCC) applications. It comprises a domain-specific design language, a compiler producing a Java programming framework, a 2D-renderer to simulate an application, and a deployment framework. We have validated our tool suite on a variety of concrete applications in areas including telecommunications, building automation, robotics and avionics

    Factors affecting Technical Debt Raw data from a systematic literature map

    Get PDF
    "This document presents the complete list of references that have been short listed during the systematic review process carried out during the months of April-September 2012. The objective of the systematic review was to identify current research trends in technical debt and to explore the relationship between technical debt measures and agile software development. This documents includes 352 references that are categorized according to their relevance to technical debt research." [Abstract

    Software Technologies - 8th International Joint Conference, ICSOFT 2013 : Revised Selected Papers

    Get PDF

    A Catalog of Reusable Design Decisions for Developing UML/MOF-based Domain-specific Modeling Languages

    Get PDF
    In model-driven development (MDD), domain-specific modeling languages (DSMLs) act as a communication vehicle for aligning the requirements of domain experts with the needs of software engineers. With the rise of the UML as a de facto standard, UML/MOF-based DSMLs are now widely used for MDD. This paper documents design decisions collected from 90 UML/MOF-based DSML projects. These recurring design decisions were gained, on the one hand, by performing a systematic literature review (SLR) on the development of UML/MOF-based DSMLs. Via the SLR, we retrieved 80 related DSML projects for review. On the other hand, we collected decisions from developing ten DSML projects by ourselves. The design decisions are presented in the form of reusable decision records, with each decision record corresponding to a decision point in DSML development processes. Furthermore, we also report on frequently observed (combinations of) decision options as well as on associations between options which may occur within a single decision point or between two decision points. This collection of decision-record documents targets decision makers in DSML development (e.g., DSML engineers, software architects, domain experts).Series: Technical Reports / Institute for Information Systems and New Medi
    corecore