4 research outputs found

    Automatic Recall of Software Lessons Learned for Software Project Managers

    Get PDF
    Context: Lessons learned (LL) records constitute the software organization memory of successes and failures. LL are recorded within the organization repository for future reference to optimize planning, gain experience, and elevate market competitiveness. However, manually searching this repository is a daunting task, so it is often disregarded. This can lead to the repetition of previous mistakes or even missing potential opportunities. This, in turn, can negatively affect the organization’s profitability and competitiveness. Objective: We aim to present a novel solution that provides an automatic process to recall relevant LL and to push those LL to project managers. This will dramatically save the time and effort of manually searching the unstructured LL repositories and thus encourage the LL exploitation. Method: We exploit existing project artifacts to build the LL search queries on-the-fly in order to bypass the tedious manual searching. An empirical case study is conducted to build the automatic LL recall solution and evaluate its effectiveness. The study employs three of the most popular information retrieval models to construct the solution. Furthermore, a real-world dataset of 212 LL records from 30 different software projects is used for validation. Top-k and MAP well-known accuracy metrics are used as well. Results: Our case study results confirm the effectiveness of the automatic LL recall solution. Also, the results prove the success of using existing project artifacts to dynamically build the search query string. This is supported by a discerning accuracy of about 70% achieved in the case of top-k. Conclusion: The automatic LL recall solution is valid with high accuracy. It will eliminate the effort needed to manually search the LL repository. Therefore, this will positively encourage project managers to reuse the available LL knowledge – which will avoid old pitfalls and unleash hidden business opportunities

    Locating bugs without looking back

    Get PDF
    Bug localisation is a core program comprehension task in software maintenance: given the observation of a bug, e.g. via a bug report, where is it located in the source code? Information retrieval (IR) approaches see the bug report as the query, and the source code files as the documents to be retrieved, ranked by relevance. Such approaches have the advantage of not requiring expensive static or dynamic analysis of the code. However, current state-of-the-art IR approaches rely on project history, in particular previously fixed bugs or previous versions of the source code. We present a novel approach that directly scores each current file against the given report, thus not requiring past code and reports. The scoring method is based on heuristics identified through manual inspection of a small sample of bug reports. We compare our approach to eight others, using their own five metrics on their own six open source projects. Out of 30 performance indicators, we improve 27 and equal 2. Over the projects analysed, on average we find one or more affected files in the top 10 ranked files for 76% of the bug reports. These results show the applicability of our approach to software projects without history

    Identifikasi Peluang Refaktorisasi Pada Kasus God Class Berdasarkan Kesamaan Konsep

    Get PDF
    Sebuah kelas dalam Pemrograman Berbasis Objek (PBO) harus memiliki desain yang spesifik untuk menangani dan mengimplementasikan sebuah konsep. Kelas harus memiliki tanggungjawab spesifik terhadap sebuah konsep yang diimplementasikan dalam operasi. Pada pengembangannya, seringkali pengembang perangkat lunak tidak memperhatikan desain konsep kelas sehingga kelas menjadi berkembang dan memiliki implementasi yang kompleks atau biasa disebut dengan “God Class”. Dalam hal ini diperlukan metode untuk mengidentifikasi peluang refaktorisasi God Class menjadi beberapa kelas baru yang nantinya akan direfaktorisasi menggunakan metode refaktorisasi kelas seperti ExtractClass. Pada penelitian sebelumnya, telah diusulkan metode identifikasi peluang refaktorisasi kelas menggunakan tiga pembobotan yaitu SSM (Structural Similariy between Methods), CDM (Call based Dependency between Methods) dan CSM (Conceptual Similarity between Methods). Perhitungan CSM telah dilakukan dengan pendekatan LSI (Latent Semantic Indexing). Namun metode penilaian kesamaan konsep tersebut tidak dapat mendeteksi kesamaan konsep pada kalimat penyusun nama operasi. Kecenderungan pengembang menggunakan pilihan kata yang memiliki makna dan penggunaan kalimat kerja dalam membentuk nama operasi menjadikan peluang pada penelitian ini untuk dikembangkannya perhitungan CSM menggunakan pendekatan semantik dan word dependency sebagai lokasi konsep pada nama operasi. Penelitian ini mengajukan metode dalam mengidentifikasi peluang refaktorisasi kelas dengan menghitung tingkat kedekatan konsep pada operasi. Operasi pada kelas diekstrak menjadi corpus dan dihitung nilai kedekatannya dengan operasi yang lain menggunakan SSM, CDM, dan CSM. Pada perhitungan CSM dilakukan penilaian kesamaan konsep secara semantik menggunakan kedekatan konsep term-term penyusun korpus menggunakan library Standford Dependency. Dimana untuk menghitung kedekatan konsep antar operasi diusulkan menggunakan pendekatan vector space models dengan memodifikasi pembobotan TF-IDF dengan word distance dan word dependency. Kemudian nilai kedekatan antar operasi tersebut direpresentasikan dalam bentuk graf dan dilakukan pemotongan graf menggunakan metode Max-Flow Min-Cut untuk mendapatkan identifikasi operasi yang harus dipisahkan dari kelas God Class. Dengan mekanisme tersebut diatas maka pemrogram mendapatkan rekomendasi peluang refaktorisasi kelas dengan mudah. Hasil penelitian ini mencapai hasil dengan tingkat precision 0,708% dan recall 0,936%. =========================================================== A class in Object-Oriented Programming (OOP) must have a specific de-sign for handle and implement a concept. The class must have a specific respon-sibility to a concept which is implemented in the methods. In its development, software developers often do not pay attention to the design concept of the class so that the class be growing and has a complex implementation or commonly called the "God Class". In this case the necessary methods to identify refactoring opportunities to split God Class into several new classes that will be refactored using methods such ExtractClass Class Refactoring. In previous studies, it has been proposed methods for identification of refactoring opportunities using the three weighting which is SSM (Structural Similariy between Methods), CDM (Call-based Dependency between Methods) and CSM (Conceptual Similarity be-tween Methods). CSM calculations have been done with the approach of LSI (La-tent Semantic Indexing). But the concept of similarity assessment methods can not detect a similar concept to the sentences making up the name of the opera-tion. The tendency of developers using choice words have meaning and use of the phrase work in shaping the operation name on this research creates the opportuni-ty for the development of CSM calculation using semantic approach and word dependency as a concept on the location name of the operation. This study propose a method for identifying refactoring opportunities by identifying the concept location of methods. Methods of classes will be extracted into a corpus and calculated the value of its similarity to other operations using the SSM, CDM, and CSM. In the calculation of CSM assessment semantically similar concept of using concept similarity detection using StandfordDependen-cy. Where to calculate the proposed operation to the similarities between the ap-proach vector space models by modifying the TF-IDF weighting distance and word by word dependency. Then the similarity between these operations repre-sented in the form of graphs and graph cuts made using Max-Flow Min-Cut to get identification operations must be separated from God class Class. With proposed method, software developer can easily get recomendation for class refactoring opportunities. The result of this research is precision 0,708% and recall 0,936%

    Automatic Recall of Lessons Learned for Software Project Managers

    Get PDF
    Lessons learned (LL) records constitute a software organization’s memory of successes and failures. LL are recorded within the organization repository for future reference to optimize planning, gain experience, and elevate market competitiveness. However, manually searching this repository is a daunting task, so it is often overlooked. This can lead to the repetition of previous mistakes and missing potential opportunities, which, in turn, can negatively affect the organization’s profitability and competitiveness. In this thesis, we present a novel solution that provides an automatic process to recall relevant LL and to push them to project managers. This substantially reduces the amount of time and effort required to manually search the unstructured LL repositories, and therefore, it encourages the utilization of LL. In this study, we exploit existing project artifacts to build the LL search queries on-the-fly, in order to bypass the tedious manual search process. While most of the current LL recall studies rely on case-based reasoning, they have some limitations including the need to reformat the LL repository, which is impractical, and the need for tight user involvement. This makes us the first to employ information retrieval (IR) to address the LL recall. An empirical study has been conducted to build the automatic LL recall solution and evaluate its effectiveness. In our study, we employ three of the most popular IR models to construct a solution that considers multiple classifier configurations. In addition, we have extended this study by examining the impact of the hybridization of LL classifiers on the classifiers’ performance. Furthermore, a real-world dataset of 212 LL records from 30 different software projects has been used for validation. Top-k and MAP, well-known accuracy metrics, have been used as well. The study results confirm the effectiveness of the automatic LL recall solution by a discerning accuracy of about 70%, which was increased to 74% in the case of hybridization. This eliminates the effort needed to manually search the LL repository, which positively encourages project managers to reuse the available LL knowledge – which in turn avoids old pitfalls and unleash hidden business opportunities
    corecore