12 research outputs found

    On porting software visualization tools to the web

    Get PDF
    Software systems are hard to understand due to the complexity and the sheer size of the data to be analyzed. Software visualization tools are a great help as they can sum up large quantities of data in dense, meaningful pictures. Traditionally, such tools come in the form of desktop applications. Modern web frameworks are about to change this status quo, as building software visualization tools as web applications can help in making them available to a larger audience in a collaborative setting. Such a migration comes with a number of promises, perils, and technical implications that must be considered before starting any migration process. In this paper, we share our experiences in porting two such tools to the web and provide guidelines about the porting. In particular, we discuss promises and perils that go hand in hand with such an endeavor and present a number of technological alternatives that are available to implement web-based visualization

    Dificuldades e desafios na incorporação de práticas arquitectónicas

    Get PDF
    La arquitectura software se ha convertido en un activo clave en las organizaciones desarrolladoras de software, pues permite alcanzar las metas de calidad y lograr productos fácilmente evolucionables. Sin embargo, en las pequeñas organizaciones, la arquitectura de software normalmente es una idea vaga sobre la estructura de la solución. En este artículo se presenta un estudio de caso de aplicación de los métodos de arquitectura QAW, ADD y VaB, con pequeños equipos de ingenieros desarrolladores durante un curso de ingeniería de software. Se identificaron algunas dificultades para trazar y documentar correctamente el rationale asociado a atributos de calidad, tácticas arquitecturales y patrones seleccionados. Se pudo establecer la dificultad de seguir un proceso de arquitectura y que quede evidencia consistente del mismo, más aún cuando la misma especificación genera conflicto entre los atributos establecidos y las tácticas y patrones que se van estableciendo.The architecture software has become a key asset for software organizations because it facilitates achieving quality goals and developing of easy evolvable products. However, in small organizations, software architecture is usually a vague idea about the structure of solution. In this paper, a case of applying several methods of architecture (QAW, ADD and VaB) with small teams constituted by software developers, during a course of software development, is presented. Some difficulties to trace and correctly document the rationale associated with quality attributes, tactics architectural and selected patterns, were identified. It was established the difficulty of following an architectural process and to let consistent evidence about that, especially when the same specification generates conflict between the established attributes and tactics and patterns that going establishing..A arquitetura de software tornou-se um elemento essencial nas organizações de desenvolvimento de software, permitindo atingir as metas de qualidade e obter produtos facilmente evoluíveis. No entanto, em pequenas organizações, arquitetura de software é geralmente uma vaga ideia sobre a estrutura da solução. Este artigo apresenta um estudo de caso de aplicação dos métodos de arquitetura QAW, ADD e VaB, com pequenas equipes de engenheiros desenvolvedores durante um curso de engenharia de software. Foram identificadas algumas dificuldades para rastrear e documentar devidamente o rationale associado a atributos de qualidade, táticas de arquitetura e padrões selecionados. Estabeleceu-se a dificuldade de seguir um processo de arquitetura e deixar evidência consistente do mesmo, especialmente quando a mesma especificação gera conflito entre os atributos estabelecidos e as tácticas e padrões que vão se estabelecendo

    Uma Infraestrutura baseada em Múltiplas Visões Interativas para Apoiar Evolução de Software

    Get PDF
    [Contexto] Tecnologias e ambientes de desenvolvimento voltados para as áreas de manutenção e evolução colaborativas de software têm atraído a atenção de empresas e grupos de usuários no sentido de resolver seus problemas em projetos de software. Entretanto, em muitos casos é necessário utilizar diferentes ferramentas. Como resultado, o tempo e o esforço dispendidos são crescentes em função da diversidade de soluções. Esses problemas se tornam mais intensos quando se trata de equipes geograficamente distribuídas. [Objetivo] Neste sentido, foi desenvolvida a GiveMe Infra, uma infraestrutura para apoio à realização de atividades de manutenção e evolução de software por equipes co-localizadas ou geograficamente distribuídas. Além disso, essa infraestrutura considera os resultados obtidos das atividades de compreensão de software. Essas atividades são apoiadas por visualizações de software que permitem ao usuário obter diferentes perspectivas sobre as informações disponibilizadas. [Método] A infraestrutura apoia a identificação de métodos que podem ser afetados quando um outro método é alterado, auxiliando equipes de manutenção na modificação de sistemas. Para isso, foi realizado um estudo experimental num contexto real de manutenção em empresas parceiras, avaliando o apoio dado pela infraestrutura, através dos recursos oferecidos. [Resultados] Através da utilização dessa infraestrutura foi possível obter apoio na identificação de métodos a serem alterados quando uma determinada modificação é feita. Essa infraestrutura permitiu obter maiores informações sobre o processo de evolução de software, objetivando a realização de atividades de manutenção de maior qualidade. [Conclusões] Os resultados obtidos evidenciaram a importância da GiveMe Infra para apoiar as atividades de manutenção e evolução. Entretanto, avaliações adicionais são necessárias

    The Medium of Visualization for Software Comprehension

    Get PDF
    Although abundant studies have shown how visualization can help software developers to understand software systems, visualization is still not a common practice since developers (i) have little support to find a proper visualization for their needs, and once they find a suitable visualization tool, they (ii) are unsure of its effectiveness. We aim to offer support for identifying proper visualizations, and to increase the effectiveness of visualization techniques. In this dissertation, we characterize proposed software visualizations. To fill the gap between proposed visualizations and their practical application, we encapsulate such characteristics in an ontology, and propose a meta-visualization approach to find suitable visualizations. Amongst others characteristics of software visualizations, we identify that the medium used to display them can be a means to increase the effectiveness of visualization techniques for particular comprehension tasks.We implement visualization prototypes and validate our thesis via experiments. We found that even though developers using a physical 3D model medium required the least time to deal with tasks that involve identifying outliers, they perceived the least difficulty when visualizing systems based on the standard computer screen medium. Moreover, developers using immersive virtual reality obtained the highest recollection. We conclude that the effectiveness of software visualizations that use the city metaphor to support comprehension tasks can be increased when city visualizations are rendered in an appropriate medium. Furthermore, that visualization of software visualizations can be a suitable means for exploring their multiple characteristics that can be properly encapsulated in an ontology

    Empirical Evaluation of the Usefulness of Graph-based Visualization Techniques to Support Software Understanding

    Get PDF
    Many researchers have highlighted the scarcity of empirical studies that systematically examine the advantages and disadvantages of the use of visualization techniques for software understanding activities. Such studies are crucial for gathering and analyzing objective and quantifiable evidence about the usefulness of proposed visualization techniques and tools, and ultimately, for guiding the research in software visualization. This paper presents a controlled experiment aimed at assessing the impact of a graph-based visualization technique on comprehension tasks. Six common comprehension tasks were performed by 20 undergraduate software engineering students. The completion time and the accuracy of the participants’ responses were measured. The results indicate that on one hand the use of the graph-based visualization increases the correctness (by 21.45% in average) but on the other hand it does not reduce the completion time in program comprehension tasks.Resumen: Muchos investigadores han señalado la falta de estudios empíricos que sistemáticamente examinen las ventajas y desventajas del uso de técnicas de visualiza ción para soportar la comprensión del software. Estos estudios son indispensables para recolectar y analizar evidencia objetiva y cuantificable acerca de la utilidad de las técnicas de visualización y herramientas propuestas, y más aún, para servir como gu ía de la investigación en visualización de software. En este estudio, 6 tareas típicas de comprensión de software fueron realizadas por 20 estudiantes de ingeniería de software. Se midió el tiempo de respuesta y se calificó la exactitud en las respuestas d e los participantes. Los resultados indican que, por una parte, el uso de la técnica de visualización basada en grafos mejoró la exactitud en las respuestas de los estudiantes (21.45% en promedio), por otra parte, no se encontró evidencia de reducción en e l tiempo gastado por los estudiantes para resolver las tareas de comprensión de software.Maestrí

    Predicting change propagation using domain-based coupling

    Get PDF
    Most enterprise systems operate in domains where business rules and requirements frequently change. Managing the cost and impact of these changes has been a known challenge, and the software maintenance community has been tackling it for more than two decades. The traditional approach to impact analysis is by tracing dependencies in the design documents and the source code. More recently the software maintenance history has been exploited for impact analysis. The problem is that these approaches are difficult to implement for hybrid systems that consist of heterogeneous components. In today’s computer era, it is common to find systems of systems where each system was developed in a different language. In such environments, it is a challenge to estimate the change propagation between components that are developed in different languages. There is often no direct code dependency between these components, and they are maintained in different development environments by different developers. In addition, it is the domain experts and consultants who raise the most of the enhancement requests; however, using the existing change impact analysis methods, they cannot evaluate the impact and cost of the proposed changes without the support of the developers. This thesis seeks to address these problems by proposing a new approach to change impact analysis based on software domain-level information. This approach is based on the assumption that domain-level relationships are reflected in the software source code, and one can predict software dependencies and change propagation by exploiting software domain-level information. The proposed approach is independent of the software implementation, inexpensive to implement, and usable by domain experts with no requirement to access and analyse the source code. This thesis introduces domain-based coupling as a novel measure of the semantic similarity between software user interface components. The hypothesis is that the domain-based coupling between software components is correlated with the likelihood of the existence of dependencies and change propagation between these components. This hypothesis has been evaluated with two case studies: • A study of one of the largest open source enterprise systems demonstrates that architectural dependencies can be identified with an accuracy of more than 70% solely based on the domain-based coupling. • A study of 12 years’ maintenance history of the five subsystems of a significant sized proprietary enterprise system demonstrates that the co-change coupling derived from over 75,000 change records can be predicted solely using domain-based coupling, with average recall and precision of more than 60%, which is of comparable quality to other state-of-the-art change impact analysis methods. The results of these studies support our hypothesis that software dependencies and change propagation can be predicted solely from software domain-level information. Although the accuracy of such predictions are not sufficiently strong to completely replace the traditional dependency analysis methods; nevertheless, the presented results suggest that the domain-based coupling might be used as a complementary method or where analysis of dependencies in the code and documents is not a viable option
    corecore