380 research outputs found

    Proceedings of 11th Symposium on Programming Languages and Software Tools and 7th Nordic Workshop on Model Driven Software Engineering

    Get PDF
    Robert C. Martin presented a software metric for a set of classes i.e. a package. The objective of the package level metric is to identify poorly designed packages. The Martin's metric actually consists of eight metrics which measure a few different characteristics of packages. The metric is widely known, but there is lack of theoretical and empirical evaluation of the Martin’s metric. This paper evaluates the theoretical background of the metric against an evaluation framework and presents an experimental evaluation of ïŹve open-source software applications. The theoretical validation reveals a weakness in Martin's definition for cohesion. We propose a modification which is valid according to the evaluation framework.  </div

    IDENTIFICATION AND QUANTIFICATION OF VARIABILITY MEASURES AFFECTING CODE REUSABILITY IN OPEN SOURCE ENVIRONMENT

    Get PDF
    Open source software (OSS) is one of the emerging areas in software engineering, and is gaining the interest of the software development community. OSS was started as a movement, and for many years software developers contributed to it as their hobby (non commercial purpose). Now, OSS components are being reused in CBSD (commercial purpose). However, recently, the use of OSS in SPL is envisioned recently by software engineering researchers, thus bringing it into a new arena. Being an emerging research area, it demands exploratory study to explore the dimensions of this phenomenon. Furthermore, there is a need to assess the reusability of OSS which is the focal point of these disciplines (CBSE, SPL, and OSS). In this research, a mixed method based approach is employed which is specifically 'partially mixed sequential dominant study'. It involves both qualitative (interviews) and quantitative phases (survey and experiment). During the qualitative phase seven respondents were involved, sample size of survey was 396, and three experiments were conducted. The main contribution of this study is results of exploration of the phenomenon 'reuse of OSS in reuse intensive software development'. The findings include 7 categories and 39 dimensions. One of the dimension factors affecting reusability was carried to the quantitative phase (survey and experiment). On basis of the findings, proposal for reusability attribute model was presented at class and package level. Variability is one of the newly identified attribute of reusability. A comprehensive theoretical analysis of variability implementation mechanisms is conducted to propose metrics for its assessment. The reusability attribute model is validated by statistical analysis of I 03 classes and 77 packages. An evolutionary reusability analysis of two open source software was conducted, where different versions of software are analyzed for their reusability. The results show a positive correlation between variability and reusability at package level and validate the other identified attributes. The results would be helpful to conduct further studies in this area

    Zones of pain:Visualising the relationship between software architecture and defects

    Get PDF
    Substantial development time is devoted to software maintenance and testing. As development resources are usually finite, there is a risk that some components receive insufficient effort for thorough testing. Architectural complexity (e.g. tight coupling) can make effective testing particularly challenging. Software components with high architectural complexity are more likely be defect–prone. The aim of this study is to investigate the relationship between established architectural attributes and defect–proneness. We used the architectural attributes: abstractness, instability and distance to measure the architectural complexity of software components. We investigated the ability of these attributes to discriminate between defective and non-defective components on four open source systems. We visualised defect–proneness by plotting architectural complexity and defectiveness using Martin’s ‘Zones of Pain’. Our results show that architecture has an inconsistent impact on defect–proneness. Some architecturally complex components seem immune to defects in some projects. In other projects architecturally complex components significantly suffer from defects. Where architectural complexity does increase defect–proneness the impact is strong. We recommend practitioners monitor the architectural complexity of their software components over time by visualising potential defect–proneness using Martin’s Zones of Pain

    Kakas Bantu Penilaian Kopling Menggunakan Metrik Indirect Package Coupling Based On Responsibilty

    Get PDF
    Pesatnya kemajuan teknologi saat ini menyebabkan perlunya dilakukan perawatan perangkat lunak secara rutin agar tetap relevan. Perawatan dapat lebih mudah dilakukan terhadap perangkat lunak dengan kualitas rancangan yang baik. Kualitas rancangan dapat diukur menggunakan metrik pengukur ketergantungan antarmodul, yaitu kopling. Metrik untuk menghitung nilai kopling yang baik perlu mempertimbangkan adanya relasi yang bersifat tidak langsung, seperti metrik indirect package coupling based on responsibility. Berdasarkan permasalahanpermasalahan tersebut, dibangunlah kakas bantu penilaian kopling package dengan metrik indirect package coupling based on responsiblity. Berkas diagram package yang dimasukkan harus diekspor terlebih dahulu ke dalam format XML (eXtensible Markup Language) dengan menggunakan perangkat lunak seperti Visual Paradigm. Berkas tersebut diproses oleh sistem menggunakan parser DOM (Document Object Model). Kakas bantu ini sudah teruji dengan pengujian unit dan integrasi menggunakan teknik pengujian white box, serta pengujian validasi menggunakan teknik pengujian black box. Selain itu, dilakukan pengujian performa menggunakan 3 package dari diagram package JDraw yang disederhanakan, yaitu event, gui, dan action. Dari hasil pengujian diperoleh bahwa kakas bantu berhasil menghemat waktu penilaian kopling package event yang dibutuhkan manusia sekitar 10 menit 27,1188 detik

    MEnDiGa: A Minimal Engine for Digital Games

    Get PDF
    Game engines generate high dependence of developed games on provided implementation resources. Feature modeling is a technique that captures commonalities and variabilities results of domain analysis to provide a basis for automated configuration of concrete products. This paper presents the Minimal Engine for Digital Games (MEnDiGa), a simplified collection of game assets based on game features capable of building small and casual games regardless of their implementation resources. It presents minimal features in a representative hierarchy of spatial and game elements along with basic behaviors and event support related to game logic features. It also presents modules of code to represent, interpret, and adapt game features to provide the execution of configured games in multiple game platforms. As a proof of concept, a clone of the Doodle Jump game was developed using MEnDiGa assets and compared with original game version. As a result, a new G-factor based approach for game construction is provided, which is able to separate the core of game elements from the implementation itself in an independent, reusable, and large-scale way

    MSE and FAMIX 3.0: an Interexchange Format and Source Code Model Family

    Get PDF
    Software systems exceeding a certain critical size easily become difficult to maintain and adapt. Requirements change, platforms change and if a system does not evolve properly, its usefulness will decay over time. This document presents MSE a robust, scalable, extensible interexchange format and FAMIX 3.0 a family of metamodels to represent source code

    IDENTIFICATION AND QUANTIFICATION OF VARIABILITY MEASURES AFFECTING CODE REUSABILITY IN OPEN SOURCE ENVIRONMENT

    Get PDF
    Open source software (OSS) is one of the emerging areas in software engineering, and is gaining the interest of the software development community. OSS was started as a movement, and for many years software developers contributed to it as their hobby (non commercial purpose). Now, OSS components are being reused in CBSD (commercial purpose). However, recently, the use of OSS in SPL is envisioned recently by software engineering researchers, thus bringing it into a new arena. Being an emerging research area, it demands exploratory study to explore the dimensions of this phenomenon. Furthermore, there is a need to assess the reusability of OSS which is the focal point of these disciplines (CBSE, SPL, and OSS). In this research, a mixed method based approach is employed which is specifically 'partially mixed sequential dominant study'. It involves both qualitative (interviews) and quantitative phases (survey and experiment). During the qualitative phase seven respondents were involved, sample size of survey was 396, and three experiments were conducted. The main contribution of this study is results of exploration of the phenomenon 'reuse of OSS in reuse intensive software development'. The findings include 7 categories and 39 dimensions. One of the dimension factors affecting reusability was carried to the quantitative phase (survey and experiment). On basis of the findings, proposal for reusability attribute model was presented at class and package level. Variability is one of the newly identified attribute of reusability. A comprehensive theoretical analysis of variability implementation mechanisms is conducted to propose metrics for its assessment. The reusability attribute model is validated by statistical analysis of I 03 classes and 77 packages. An evolutionary reusability analysis of two open source software was conducted, where different versions of software are analyzed for their reusability. The results show a positive correlation between variability and reusability at package level and validate the other identified attributes. The results would be helpful to conduct further studies in this area
    • 

    corecore