6 research outputs found

    Investigación en Progreso: Estudio del Comportamiento Dinámico del Diseño de Sistemas de Información basado en Redes Complejas

    Get PDF
    La medición de sistemas de información es una de las tareas más importantes dentro de la Ingeniería del Software ya que permite caracterizarlos y estudiarlos eficientemente. Se han desarrollado decenas de métricas aunque principalmente orientadas a aspectos estáticos. Este proyecto tiene como objetivo desarrollar un proceso de análisis que permita estudiar y evaluar el comportamiento dinámico de un sistema software desde el punto de vista del diseño de sistemas

    Understanding Class-level Testability Through Dynamic Analysis

    Get PDF
    It is generally acknowledged that software testing is both challenging and time-consuming. Understanding the factors that may positively or negatively affect testing effort will point to possibilities for reducing this effort. Consequently there is a significant body of research that has investigated relationships between static code properties and testability. The work reported in this paper complements this body of research by providing an empirical evaluation of the degree of association between runtime properties and class-level testability in object-oriented (OO) systems. The motivation for the use of dynamic code properties comes from the success of such metrics in providing a more complete insight into the multiple dimensions of software quality. In particular, we investigate the potential relationships between the runtime characteristics of production code, represented by Dynamic Coupling and Key Classes, and internal class-level testability. Testability of a class is consider ed here at the level of unit tests and two different measures are used to characterise those unit tests. The selected measures relate to test scope and structure: one is intended to measure the unit test size, represented by test lines of code, and the other is designed to reflect the intended design, represented by the number of test cases. In this research we found that Dynamic Coupling and Key Classes have significant correlations with class-level testability measures. We therefore suggest that these properties could be used as indicators of class-level testability. These results enhance our current knowledge and should help researchers in the area to build on previous results regarding factors believed to be related to testability and testing. Our results should also benefit practitioners in future class testability planning and maintenance activities

    Analiza możliwości współpracy aplikacji mobilnych z usługami sieciowymi typu REST i Web Service

    Get PDF
    The article presents the results of a review of libraries for the Android platform, supporting the integration with REST and SOAP network services. An analysis of the performance and complexity of client programs using the most popular solutions. The research methods were based on the author's mobile application that enable the simulation of asynchronous communication. The result of the research is a comparative analysis of libraries, that facilitate the selection of adequate solutions.W artykule przedstawiono wyniki przeglądu bibliotek na platformę Android, wspomagających integrację z usługami sieciowymi typu REST i SOAP. Przeprowadzono analizę wydajności i złożoności programów klienckich korzystających z najpopularniejszych rozwiązań. Metody badawcze oparto na autorskiej aplikacji mobilnej umożliwiającej symulację komunikacji asynchronicznej. Wynikiem badań jest analiza porównawcza bibliotek, ułatwiająca wybór adekwatnych rozwiązań

    A survey on software coupling relations and tools

    Full text link
    Context Coupling relations reflect the dependencies between software entities and can be used to assess the quality of a program. For this reason, a vast amount of them has been developed, together with tools to compute their related metrics. However, this makes the coupling measures suitable for a given application challenging to find. Goals The first objective of this work is to provide a classification of the different kinds of coupling relations, together with the metrics to measure them. The second consists in presenting an overview of the tools proposed until now by the software engineering academic community to extract these metrics. Method This work constitutes a systematic literature review in software engineering. To retrieve the referenced publications, publicly available scientific research databases were used. These sources were queried using keywords inherent to software coupling. We included publications from the period 2002 to 2017 and highly cited earlier publications. A snowballing technique was used to retrieve further related material. Results Four groups of coupling relations were found: structural, dynamic, semantic and logical. A fifth set of coupling relations includes approaches too recent to be considered an independent group and measures developed for specific environments. The investigation also retrieved tools that extract the metrics belonging to each coupling group. Conclusion This study shows the directions followed by the research on software coupling: e.g., developing metrics for specific environments. Concerning the metric tools, three trends have emerged in recent years: use of visualization techniques, extensibility and scalability. Finally, some coupling metrics applications were presented (e.g., code smell detection), indicating possible future research directions. Public preprint [https://doi.org/10.5281/zenodo.2002001]

    Measuring the reactivity of intelligent agent programs

    Get PDF
    The booming of intelligent agent technology over past few decades brings a surging number of agent applications in various areas. There also have a large number of designs as well as programming languages been introduced in the literature in the agent oriented area. However, very little work has been dedicated to define quality measures for the development of an agent-based system. Previous efforts mostly focus on adopting classical measures such as using coupling (degree of program dependency) and cohesion (degree of function relationship in single module) to measure the quality of agent programs. I maintain that its time to work on a set of software quality measures that are specific to the distinct characteristics of agent-based systems. In this thesis, two methods are purposed to measure the reactivity of agent systems, which provide indications on how agent systems respond to changes in their environment in a timely fashion. A prototype tool is developed integrated with Jason, a well-known agent-oriented programming platform, to calculate reactivity of each agent in agent system based on their plan libraries, and conducted several experiments to demonstrate the reliability of reactivity measure. In addition, an agent behavioural profile is introduced which is an overview of relationships of actions in agent plan library. Based on agent behavioural profile, definitions of agent behavioral profile identity, entailment as well as preservation were proposed, which ensure original agent\u27s behaviours could be preserved while performing reactivity enhancement

    A Study on Software Testability and the Quality of Testing in Object-Oriented Systems

    Get PDF
    Software testing is known to be important to the delivery of high-quality systems, but it is also challenging, expensive and time-consuming. This has motivated academic and industrial researchers to seek ways to improve the testability of software. Software testability is the ease with which a software artefact can be effectively tested. The first step towards building testable software components is to understand the factors – of software processes, products and people – that are related to and can influence software testability. In particular, the goal of this thesis is to provide researchers and practitioners with a comprehensive understanding of design and source code factors that can affect the testability of a class in object oriented systems. This thesis considers three different views on software testability that address three related aspects: 1) the distribution of unit tests in relation to the dynamic coupling and centrality of software production classes, 2) the relationship between dynamic (i.e., runtime) software properties and class testability, and 3) the relationship between code smells, test smells and the factors related to smells distribution. The thesis utilises a combination of source code analysis techniques (both static and dynamic), software metrics, software visualisation techniques and graph-based metrics (from complex networks theory) to address its goals and objectives. A systematic mapping study was first conducted to thoroughly investigate the body of research on dynamic software metrics and to identify issues associated with their selection, design and implementation. This mapping study identified, evaluated and classified 62 research works based on a pre-tested protocol and a set of classification criteria. Based on the findings of this study, a number of dynamic metrics were selected and used in the experiments that were then conducted. The thesis demonstrates that by using a combination of visualisation, dynamic analysis, static analysis and graph-based metrics it is feasible to identify central classes and to diagrammatically depict testing coverage information. Experimental results show that, even in projects with high test coverage, some classes appear to be left without any direct unit testing, even though they play a central role during a typical execution profile. It is contended that the proposed visualisation techniques could be particularly helpful when developers need to maintain and reengineer existing test suites. Another important finding of this thesis is that frequently executed and tightly coupled classes are correlated with the testability of the class – such classes require larger unit tests and more test cases. This information could inform estimates of the effort required to test classes when developing new unit tests or when maintaining and refactoring existing tests. An additional key finding of this thesis is that test and code smells, in general, can have a negative impact on class testability. Increasing levels of size and complexity in code are associated with the increased presence of test smells. In addition, production classes that contain smells generally require larger unit tests, and are also likely to be associated with test smells in their associated unit tests. There are some particular smells that are more significantly associated with class testability than other smells. Furthermore, some particular code smells can be seen as a sign for the presence of test smells, as some test and code smells are found to co-occur in the test and production code. These results suggest that code smells, and specifically certain types of smells, as well as measures of size and complexity, can be used to provide a more comprehensive indication of smells likely to emerge in test code produced subsequently (or vice versa in a test-first context). Such findings should contribute positively to the work of testers and maintainers when writing unit tests and when refactoring and maintaining existing tests
    corecore