7 research outputs found

    Мониторинг дефектов проектирования объектно-ориентированного программного обеспечения

    Get PDF
    Дефекты проектирования вносятся в программное обеспечение в процессе его сопровождения в результате невыполнения правил проектирования. Несмотря на то, что дефекты проектирования негативно влияют на сопровождаемость программного обеспечения, и должны устраняться, в некоторых случаях их внесение является лучшим проектным решением проблемы. В работе описываются графические представления, предназначенные для облегчения мониторинга дефектов проектирования. Определен каталог категорий, объединяющих дефекты проектирования по общности их истории, позволяющий упростить интерпретацию графических представлений. Показано что мониторинг с помощью визуализации позволяет быстро выделить прогрессирующие дефекты проектирования.Design flaws are introduced into software during its maintenance as a result of failure to comply with design rules. Despite the fact that defects in the design adversely affect the maintainability of software, and should be eliminated, in some cases, their introduction is the best design solution. The paper describes the graphical representations designed to facilitate the monitoring of design flaws. Catalog of categories is defined which combine defects in the design by their shared history and allows simplifying the interpretation of graphic representations. It is shown that by monitoring using visualization one can quickly identify progressing design flaws

    Distributed and Collaborative Software Evolution Analysis with Churrasco

    Get PDF
    AbstractAnalyzing the evolution of large and long-lived software systems is a complex problem that requires extensive tool support due to the amount and complexity of the data that needs to be processed. In this paper, we present Churrasco, a tool to support collaborative software evolution analysis through a web interface. After describing the tool and its architecture, we provide a usage scenario of Churrasco on a large open source software system, and we present two collaboration experiments performed with, respectively, 8 and 4 participants

    МЕТОД ДІАГНОСТИКИ ОБ’ЄКТНО-ОРІЄНТОВАНОГО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

    Get PDF
     During software maintenance changes are introduced often in harsh terms and conditions of limited resources. As a result, its structure degraded and, consequently, it becomes difficult to understand and modify. This phenomenon is known as software decay and is extremely harmful, as tends to be unnoticed at first, but then grow with time. Therefore the problem of developing methods and diagnostics software is an issue.The purpose of the paper is to develop a method of object-oriented software diagnostic to detect design defects in the phase of their appearance and monitoring their development. For achieve a purpose following tasks are supplied and solved: develop a metamodel that enables to perform analysis of design defects history based on it; develop a set of graphics to facilitate the tracking of defects in various aspects; determine which tasks may be solved by studying graphic images.The essence of method of object-oriented software diagnosing is to monitor the design defects. The method is implemented by using the proposed meta-history of design flaws (DDHM - Design Flaws History Model) object-oriented software and multidimensional visualization of defects of the design elements at various levels of abstraction. In DDHM first defect is modeled as a separate entity, able to change their characteristics with time. Considered the following quantitative characteristics of the defect: the degree of deficiency, symptoms of defect intensity and average intensity of the defect symptoms.Analysis of graphic images give next opportunities:  highlight the most dangerous defects, a more efficient allocation of resources aimed at supporting the maintenance of software; identify restructuring - information on where and when the restructuring of the software necessary for understanding how and to some extent, why the structure of the software was modified; implement early detection of defects, using information on the development of defects from version to version, with maintenance engineers can diagnose the defect in the early stages of development and adjustment of working with maintenance, so as to prevent the need for restructuring in the future; determine the circumstances of the emergence and development of the defect - the modern tools of automation software life cycle, such as Microsoft Visual Studio Team System, store data about all the changes the source code, for example, who brought these changes and why, so it is possible to determine who, and because of what requirements made defect.To implement the method we developed diagnostics software SEM (Software Evolution Miner). При сопровождении программного обеспечения изменения зачастую вносятся в жестких условиях ограниченных ресурсов. В результате его структура деградирует и, следовательно, становится трудной в понимании. Предлагаемый метод диагностики объектно-ориентированного программного обеспечения позволяет выявлять дефекты проектирования на стадии их возникновения и контроля развития. Метод реализован с помощью предлагаемой метамодели истории дефектов проектирования (DDHM – Design Defect History Model) объектно-ориентированного программного обеспечения и многоаспектной визуализации дефектов проектирования элементов конструкции на различных уровнях абстракции. Анализ графического изображения позволяет выделять наиболее опасные дефекты, более эффективно распределять ресурсы, направленные на сопровождение программного обеспечения, определять реструктуризацию − информацию о том, где и когда переделано программное обеспечение, необходимое для понимания, каким образом и до какой степени, почему была изменена структура программного обеспечения, осуществлять раннее обнаружение дефектов, используя информацию о развитии дефектов от версии к версии, с помощью которой инженеры могут диагностировать дефекты на ранней стадии развития и адаптировать работы по сопровождению для предупредупреждения необходимости реструктуризации в будущем, выяснять обстоятельства возникновения и развития дефектов. Современные инструменты автоматизации жизненного цикла программного обеспечения, такие, как Microsoft Visual Studio Team System, хранят данные о всех изменениях исходного кода, например, кто внес изменения и почему. Для реализации метода разработано средство диагностики программного обеспечения SEM. Запропоновано метод діагностики об’єктно-орієнтованого програмного забезпечення, який дозволяє інженеру відстежувати еволюцію дефекту проектування і в результаті виявити найбільш небезпечні дефекти або дефекти на ранній стадії розвитку, які можуть стати небезпечними в майбутньому

    Mining collaboration patterns from a large developer network

    Get PDF
    In this study, we extract patterns from a large developer collaborations network extracted from Source Forge.Net at high and low level of details. At the high level of details, we extract various network-level statistics from the network. At the low level of details, we extract topological sub-graph patterns that are frequently seen among collaborating developers. Extracting sub graph patterns from large graphs is a hard NP-complete problem. To address this challenge, we employ a novel combination of graph mining and graph matching by leveraging network-level properties of a developer network. With the approach, we successfully analyze a snapshot of Source Forge.Net data taken on September 2009. We present mined patterns and describe interesting observations.5 page(s

    Predicting project outcome leveraging socio-technical network patterns

    Get PDF
    There are many software projects started daily, some are successful, while others are not. Successful projects get completed, are used by many people, and bring benefits to users. Failed projects do not bring similar benefits. In this work, we are interested in developing an effective machine learning solution that predicts project outcome (i.e., success or failures) from developer socio-technical network. To do so, we investigate successful and failed projects to find factors that differentiate the two. We analyze the socio-technical aspect of the software development process by focusing at the people that contribute to these projects and the interactions among them. We first form a collaboration graph for each software project. We then create a training set consisting of two graph databases corresponding to successful and failed projects respectively. A new data mining approach is then employed to extract discriminative rich patterns that appear frequently on the successful projects but rarely on the failed projects. We find that these automatically mined patterns are effective features to predict project outcomes. We experiment our solution on projects in SourceForge.Net, the largest open source software development portal, and show that under 10 fold cross validation, our approach could achieve an accuracy of more than 90% and an AUC score of 0.86. We also present and analyze some mined socio-technical patterns.10 page(s

    A unified framework for the comprehension of software's time dimension

    Get PDF
    Les logiciels sont de plus en plus complexes et leur développement est souvent fait par des équipes dispersées et changeantes. Par ailleurs, de nos jours, la majorité des logiciels sont recyclés au lieu d’être développés à partir de zéro. La tâche de compréhension, inhérente aux tâches de maintenance, consiste à analyser plusieurs dimensions du logiciel en parallèle. La dimension temps intervient à deux niveaux dans le logiciel : il change durant son évolution et durant son exécution. Ces changements prennent un sens particulier quand ils sont analysés avec d’autres dimensions du logiciel. L’analyse de données multidimensionnelles est un problème difficile à résoudre. Cependant, certaines méthodes permettent de contourner cette difficulté. Ainsi, les approches semi-automatiques, comme la visualisation du logiciel, permettent à l’usager d’intervenir durant l’analyse pour explorer et guider la recherche d’informations. Dans une première étape de la thèse, nous appliquons des techniques de visualisation pour mieux comprendre la dynamique des logiciels pendant l’évolution et l’exécution. Les changements dans le temps sont représentés par des heat maps. Ainsi, nous utilisons la même représentation graphique pour visualiser les changements pendant l’évolution et ceux pendant l’exécution. Une autre catégorie d’approches, qui permettent de comprendre certains aspects dynamiques du logiciel, concerne l’utilisation d’heuristiques. Dans une seconde étape de la thèse, nous nous intéressons à l’identification des phases pendant l’évolution ou pendant l’exécution en utilisant la même approche. Dans ce contexte, la prémisse est qu’il existe une cohérence inhérente dans les évènements, qui permet d’isoler des sous-ensembles comme des phases. Cette hypothèse de cohérence est ensuite définie spécifiquement pour les évènements de changements de code (évolution) ou de changements d’état (exécution). L’objectif de la thèse est d’étudier l’unification de ces deux dimensions du temps que sont l’évolution et l’exécution. Ceci s’inscrit dans notre volonté de rapprocher les deux domaines de recherche qui s’intéressent à une même catégorie de problèmes, mais selon deux perspectives différentes.Software systems are getting more and more complex and are developed by teams that are constantly changing and not necessarily working in the same location. Moreover, most software systems, nowadays, are recycled rather than being developed from scratch. A comprehension task is crucial when performing maintenance tasks; it consists of analyzing multiple software dimensions concurrently. Time is one of these dimensions, as software changes its state with time in two manners: during their execution and during their evolution. These changes make sense only when analyzed within the context of other software dimensions, such as structure or bug information. Multidimensional analysis is a difficult problem to solve. However, there are certain methods that bypass this difficulty, such as semi-automatic approaches. Software visualization is one of them, as it allows being part of the analysis by exploring and guiding information search. The first stage of the thesis consists of applying visualization techniques to better understand software dynamicity during execution and evolution. Changes over time are represented by heat maps. Hence, we utilize the same graphical representation to visualize both change types over time. Other approaches that permit the analysis of a program’s dynamic behavior over time involve the use of heuristics. In the thesis’ second stage, we are interested in the identification of the programs’ execution phases and evolution patterns using the same approach, i.e. search-based optimisation. In this context, the premise is the existence of internal cohesion between change events that allow the clustering in phases. This hypothesis of cohesion is defined specifically for change events in the code during software evolution and state changes during program execution. This thesis’ main objective is to study the unification of these two time dimensions, evolution and execution, in an attempt to bring together two research domains that work on the same set of problems, but from two different perspectives
    corecore