6 research outputs found

    What to Fix? Distinguishing between design and non-design rules in automated tools

    Full text link
    Technical debt---design shortcuts taken to optimize for delivery speed---is a critical part of long-term software costs. Consequently, automatically detecting technical debt is a high priority for software practitioners. Software quality tool vendors have responded to this need by positioning their tools to detect and manage technical debt. While these tools bundle a number of rules, it is hard for users to understand which rules identify design issues, as opposed to syntactic quality. This is important, since previous studies have revealed the most significant technical debt is related to design issues. Other research has focused on comparing these tools on open source projects, but these comparisons have not looked at whether the rules were relevant to design. We conducted an empirical study using a structured categorization approach, and manually classify 466 software quality rules from three industry tools---CAST, SonarQube, and NDepend. We found that most of these rules were easily labeled as either not design (55%) or design (19%). The remainder (26%) resulted in disagreements among the labelers. Our results are a first step in formalizing a definition of a design rule, in order to support automatic detection.Comment: Long version of accepted short paper at International Conference on Software Architecture 2017 (Gothenburg, SE

    Measurement Technique to Evaluate Model- Based Tools for Safety Critical Embedded Systems

    Get PDF
    Abstract: Model-based systems engineering is a state of art engineering process being adopted by industry all over the world to develop a safe, reliable, maintainable and available system. Industry standards like IEC 61508, EN50128 and RTCA DO-178C recognize the capabilities of the model-based approach for an effective engineering process performance. There are number of model-based tools available in the market and the selection of an appropriate tool is very critical for the success of the project. Hence there should be benchmark to select the appropriate tool for the project. This paper provides a measurement technique for evaluating model-based tools based on the tool features like its applicability, portability, scalability, and compatibility, conformance to standards, versioning and reporting to name a few. The effectiveness of the techniques proposed is evaluated for a proven system as a case study. The outcome provides the metrics for the selection of appropriate tool for an application and probable combination of tools that can be used in various phases of the life cycle. The proposed technique helps in selection of the most appropriate tool for a particular application based on the project schedule, budget and safety requirements resulting into an effective process

    Dependency profiles for software architecture evaluations

    Full text link

    REST4Mobile: A framework for enhanced usability of REST services on smartphones

    Get PDF
    Considering end-user research and proliferation of smartphones and REpresentational State Transfer (REST) interfaces, we envisage that smartphone owners can innovate to compose applications on the small screen. This paper presents the design and evaluation of a REST service development framework (viz, REST4Mobile) with the aim to enhance the usability when consuming on smartphones. Our design process uses the usability factors identified in our previous work as primary constraints for modeling the framework and a corresponding composition tool. Thus, sample REST services are developed with and then without the framework, and usability of composing the services on smartphones is evaluated. Evaluation was conducted by deploying the component REST services, the composition tool, and the resulting composite apps on a local machine. As the task of service composition is conducted directly on the smartphone's screen, the evaluation process is designed to be repeatable on remote servers and on the cloud. Results showed that constraints can be added into the REST architectural style on the basis of the influences of domain specific terms and human cognitive capabilities on the naming and size of the Uniform Resource Identifiers (URIs). In addition, the principles embodying the framework are found to be influential factors in enhancing the usability of REST services on smartphones

    Modelo inteligente de especificaci贸n de la granularidad de aplicaciones basadas en microservicios.

    Get PDF
    Los microservicios son un enfoque arquitect贸nico y organizativo del desarrollo de software en el que las aplicaciones est谩n compuestas por peque帽os servicios independientes que se comunican a trav茅s de una interfaz de programaci贸n de aplicaciones (API) bien definida, muchas empresas utilizan los microservicios para estructurar sus sistemas, tambi茅n la arquitectura de microservicios ha sido utilizada en otras 谩reas como la internet de las cosas (IoT), computaci贸n en el borde (edge computing), computaci贸n en la nube, desarrollo de veh铆culos aut贸nomos, telecomunicaciones, sistemas de E-Salud, E-Learning, entre otros. Un gran desaf铆o al dise帽ar este tipo de aplicaciones es encontrar una partici贸n o granularidad adecuada de los microservicios, proceso que a la fecha se realiza y dise帽a de forma intuitiva, seg煤n la experiencia del arquitecto o del equipo de desarrollo. La definici贸n del tama帽o o granularidad de los microservicios es un tema de investigaci贸n abierto y de inter茅s, no se han estandarizado patrones, m茅todos o modelos que permitan definir qu茅 tan peque帽o debe ser un microservicio. Las estrategias m谩s utilizadas para estimar la granularidad de los microservicios son: el aprendizaje autom谩tico, la similitud sem谩ntica, la programaci贸n gen茅tica y la ingenier铆a de dominio. En este trabajo de investigaci贸n doctoral se propone un modelo inteligente para especificar y evaluar la granularidad de los microservicios que hacen parte de una aplicaci贸n; teniendo en cuenta algunas caracter铆sticas como la complejidad cognitiva, el tiempo de desarrollo, el acoplamiento, la cohesi贸n y su comunicaci贸n. En el capitulo uno se presentan el marco te贸rico, se plantea el problema de investigaci贸n resuelto, junto con las preguntas de investigaci贸n que ayudan a resolverlo, tambi茅n se presentan los objetivos y la metodologia de investigaci贸n, por medio de la cual se propone una nueva pr谩ctica, un modelo inteligente de especificaci贸n de la granularidad de los microservicios llamada 驴Microsevices Backlog驴, tambi茅n se presentan las fases y m茅todos de investigaci贸n que permitieron resolver las preguntas de investigaci贸n planteadas. El captiulo dos presenta el esatado del arte y los trabajos relacionados con el presente trabajo de investigaci贸n doctoral; tambi茅n se identifican las m茅tricas que se han utilizado para definir y evaluar la granularidad de los microservicios. En el capitulo 3 se caracteriza el proceso de desarrollo de aplicaciones basadas en microservicios, explicando su uso en un caso de estudio llamado 驴Sinplafut驴. En el capitulo 4 se plantea la descripci贸n del 驴Microservice Backlog驴, se presenta la definici贸n de cada uno de sus componentes, entre los cuales se encuentran: el componente parametrizador, el componente agrupador (un algoritmo gen茅tico y un algoritmo de agrupamiento sem谩ntico basado en aprendizaje autom谩tico no supervisado), el componente evaluador de m茅tricas y el componente comparador de descomposiciones y de microservicios candidatos, tambi茅n se presenta la formulaci贸n matem谩tica de la granularidad de aplicaciones basadas en microservicios. El capitulo 5 presenta la evaluaci贸n de la pr谩ctica propuesta, se realiz贸 de forma iterativa usando cuatro casos de estudio, dos ejemplos planteados en el estado del arte (Cargo Tracking and JPet-Store) y dos proyectos reales (Foristom Conferences y Sinplafut), se utiliz贸 el Microservices Backlog para obtener y evaluar los microservicios candidatos de las cuatro aplicaciones. Se realiz贸 un analisis comparativo contra m茅todos propuestos en el estado del arte y con el dise帽o basado en el dominio (DDD), el cual es le m茅todo m谩s utilizado para definir los microservicios que van a ser parte de una aplicaci贸n. El Microservices Backlog obtuvo un bajo acoplamiento, alta cohesi贸n, baja complejidad y reduce la comunicaci贸n entre los microservicios, esto comparado con las propuestas del estado del arte y con DDD. Finalmente en el capitulo 6 se presentan las conclusiones, contribuciones, limitaciones y productos obtenidos como resultado de esta tesisDoctoradoDOCTOR(A) EN INGENIER脥
    corecore