Article

Software Reusability Estimation based on Dynamic Metrics using Soft Computing Techniques

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Dynamic metrics capture the run time features of object-oriented languages, i.e., runtime polymorphism, dynamic binding, etc., that are not covered by static metrics. Therefore, in this paper, we derived a new approach to measuring the software reusability of a design pattern based on dynamic metrics. To achieve this, the authors proposed a model based on five parameters, i.e., polymorphism, inheritance, number of children, coupling, and complexity, to measure the reusability factor by using various soft computing techniques, i.e., Fuzzy, Neural Network, and Neuro-Fuzzy. Further, we also compared the proposed model with four existing machine learning algorithms. Lastly, we found that the proposed model using the neuro-fuzzy technique is trained well and predicts well with MAE (Mean absolute error) 0.003 and RMSE (Root mean square error) 0.009 based on dynamic metrics. Hence, it is concluded that dynamic metrics are a better predictor of the reusability factor than static metrics.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... These systems amalgamate the strengths of neural networks and fuzzy logic, rendering them more adaptable and flexible across diverse datasets and conditions. Neuro-fuzzy systems possess the capability to autonomously adapt to variations in input data and environmental factors, making them well-suited for modeling complex systems like engines, which contend with highly variable operating conditions [30,31]. ...
Article
Full-text available
Nowadays, large numbers of organizations may opt for Aspect-Oriented Programming (AOP), which is an enhancement to Object-Oriented Programming (OOP). This is due to the addition of a number of concepts that have assisted in the production of more flexible and reusable components. One of the most important elements added by AOP is software reuse, which is based on reusability attributes. These attributes indicate the possibility of reusing one or more components in the development of a new system. It is one of the most essential attributes to evaluate the quality of a system’s components. Thus far, little attention has been paid to the process of measuring AOP reusability, and it has not yet been standardized. The objective of the current study is to come up with a reasonable measurement for AOP software reuse, which is simultaneously a significant topic for researchers while offering several advantages for organizations. Although numerous models have been built to estimate the reusability of software, most of them are not dedicated to Aspect-Oriented Software (AOS). In this study, a model has been designed for AOS reusability estimation and measurement based on a new equation depending on five attributes that have a range of positive and negative impacts on AOS reusability. Three of those attributes, namely coupling, cohesion, and design size, have been included in previous studies. This study proposes complexity and generality as two new attributes to be considered. Each of these attributes was measured based on the metrics also proposed in this study. A new equation to calculate AOS reusability was constructed based on the most important reusability attributes and metrics. Seven aspect projects were employed as a case study to apply the proposed equation. After the proposed equation was applied to the selected projects, we obtained new values of reusability to compare with the values that resulted from applying the previous equation. The fact that new values emerged indicates that the proposed reusability metrics and attributes had a significant effect.
Article
Full-text available
This paper introduces an innovative framework for the management of virtual companies in smart urban environments, with an emphasis on socio-economic resilience facilitated by Sustainable Information Systems. The system aims to equip virtual enterprises in smart cities with tools for robust operations amid socio-economic challenges. Its effectiveness is evidenced by improvements in investment risk assessment, business process simulation, and HR project management, enhancing efficiency and foresight. A key feature is predictive analytics for crisis demand forecasting, enabling swift market adjustments and strategic inventory management. It also helps identify alternative clients and suppliers, ensuring business continuity. Integrating machine learning and augmented reality, the system supports automation and strategic decision-making, significantly benefiting the e-commerce sector by addressing fluctuating demand, supply chain issues, and market adaptations during crises. The Sustainable Information System for Virtual Company Management in Smart Cities offers crucial support for e-businesses facing these socio-economic challenges, facilitating their navigation through turbulent times. Its meticulously designed architecture and functionalities make it a powerful instrument for assisting virtual companies in crisis conditions, fostering their sustainable growth within the socio-economic framework of smart urban settings. Comparative studies with existing models underscore this system’s superior efficiency and holistic approach, highlighting its contribution to enhancing the operational efficiency of virtual companies by 95%, reducing the time needed for critical activities like investment risk analysis and business process simulation, and bolstering the socio-economic resilience of smart cities against crises
Preprint
Full-text available
Nowadays, large numbers of organizations may prefer Aspect-Oriented Programming (AOP), which is an enhancement to Object-Oriented Programming (OOP). This is due to the concepts that have been added and helped in producing more flexible and reusable components. As a result, AOP has directed attention to software reuse, which is a significant topic for researchers and offers several advantages for organizations. Software reuse is based on reusability attributes which indicate the possibility of a component that was built to be reused in developing a new system. It is one of the most essential attributes to evaluate the quality of a system’s components. Many models have been built to estimate the reusability of the software but most of them are not dedicated to Aspect-Oriented Software (AOS). This study aims to establish a ground for AOS reusability estimation and measurement based on a new model and its associated equations depending on six attributes that impact AOS reusability negatively and/or positively. Four attributes of them have been included in previous studies which are coupling, cohesion, design size, and messaging. Two new attributes have been proposed in this study, which are complexity, and generality. Both of these attributes have been measured based on the metrics that have also been proposed in this study. A new equation to calculate AOS reusability has been proposed in this research work. Seven Aspect projects have been employed as a case study to apply the proposed equation.
Chapter
Full-text available
Software engineering is an application of engineering which is more focused on original development, but reusability plays a very significant role in order to produce good quality, error free, and less maintainable software. Software reusability is an attribute of quality which helps in selecting beforehand acquired notions in new statuses. Software reusability not only advances productivity, but it also provides a good quality software and has also optimistic effect on maintainability. Software reusability is advantageous in the manner that it provides high reliability, low cost of maintenance, and reduction in development time. In this paper, we have discussed and analyzed various machine learning techniques used for estimation of software reusability. It is found that machine learning techniques are competitive in nature with other reusability estimation techniques and can be used for estimation of reusability. This study will help software developers and information industry to elucidate that how software reusability can assist them in selecting advanced quality of software.
Article
Full-text available
The widely adopted component-based development paradigm considers the reuse of proper software components as a primary criterion for successful software development. As a result, various research efforts are directed towards evaluating the extent to which a software component is reusable. Prior efforts follow expert-based approaches, however the continuously increasing open-source software initiative allows the introduction of data-driven alternatives. In this context we have generated a dataset that harnesses information residing in online code hosting facilities and introduces the actual reuse rate of software components as a measure of their reusability. To do so, we have analyzed the most popular projects included in the maven registry and have computed a large number of static analysis metrics at both class and package levels using SourceMeter tool [2] that quantify six major source code properties: complexity, cohesion, coupling, inheritance, documentation and size. For these projects we additionally computed their reuse rate using our self-developed code search engine, AGORA [5]. The generated dataset contains analysis information regarding more than 24,000 classes and 2000 packages, and can, thus, be used as the information basis towards the design and development of data-driven reusability evaluation methodologies. The dataset is related to the research article entitled "Measuring the Reusability of Software Components using Static Analysis Metrics and Reuse Rate Information" [1].
Article
Full-text available
This paper focuses on the importance of software reuse and metrics in software engineering. Software reuse is the process of reusing parts or all of an existing software system, architecture, or methodology to develop new software, potentially with different functionality. Software reuse metrics involve the different methods of ensuring that the reuse components are of the right quality, and reuse metrics serve to expose and predict the defects in the reusable process. In this paper, we introduced the concept of software reuse while exploring its merits and demerits, the types, and the impact of software reuse. From a survey outlook, we observed that high cost incurred whilst troubleshooting a reuse component and the difficulty integrating with development tools are some of the many potential problems associated with software reuse. In addition, we discussed software reuse metrics, the need for metrics, and their importance to software reuse (and its potential problems and solutions), and stakeholders in the software engineering process. Some of the issues discussed are case studies involving common software packages, object-oriented programming and its relationship to reuse, and the types of reuse metrics. Having presented an expository account of software reuse and metrics, this paper then provides recommendations for real world applications and future research.
Chapter
Full-text available
Nowadays, developers tend to adopt a component-based software engineering approach, reusing own implementations and/or resorting to third-party source code. This practice is in principle cost-effective, however it may also lead to low quality software products, if the components to be reused exhibit low quality. Thus, several approaches have been developed to measure the quality of software components. Most of them, however, rely on the aid of experts for defining target quality scores and deriving metric thresholds, leading to results that are context-dependent and subjective. In this work, we build a mechanism that employs static analysis metrics extracted from GitHub projects and defines a target quality score based on repositories’ stars and forks, which indicate their adoption/acceptance by developers. Upon removing outliers with a one-class classifier, we employ Principal Feature Analysis and examine the semantics among metrics to provide an analysis on five axes for source code components (classes or packages): complexity, coupling, size, degree of inheritance, and quality of documentation. Neural networks are thus applied to estimate the final quality score given metrics from these axes. Preliminary evaluation indicates that our approach effectively estimates software quality at both class and package levels.
Conference Paper
Full-text available
The popularity of open-source software repositories has led to a new reuse paradigm, where online resources can be thoroughly analyzed to identify reusable software components. Obviously, assessing the quality and specifically the reusability potential of source code residing in open software repositories poses a major challenge for the research community. Although several systems have been designed towards this direction, most of them do not focus on reusability. In this paper, we define and formulate a reusability score by employing information from GitHub stars and forks, which indicate the extent to which software components are adopted/accepted by developers. Our methodology involves applying and assessing different state-of-the- practice machine learning algorithms, in order to construct models for reusability estimation at both class and package levels. Preliminary evaluation of our methodology indicates that our approach can successfully assess reusability, as perceived by developers.
Conference Paper
Full-text available
Reusing software assets has many advantages and has been essential feature of all software development approaches. Component based software development has been especially inspired by reuse. In order to reuse software component, the component has to be designed and built for reusability. Since reusability is influenced by a number of different factors, there are various approaches and metrics used to measure reusability. In this paper we conducted extensive literature review in order to identify reusability metrics and factors influencing reusability. Total of 39 papers introducing reusability metrics were found and analyzed. We identified 36 different factors influencing reusability, 12 black box component metrics and more than 20 white box/glass box metrics.
Conference Paper
Full-text available
Reusability of software is found to be a key feature of quality. The most obvious outcomes of software reuse are overcoming the software crisis, advancing in software quality and improving productivity. The issue of spotting reusable software components from given existing system is very important but yet it is not much cultivated. For identification and evaluation of reusable software we use an approach that has foundation of software models and metrics. Idea of this study is to examine the competence and effectiveness of machine learning regression techniques which are experimented here to build precise and constructive evaluation model that can assess the reusability of Object Oriented based software components based on the values of five metrics of metrics suite presented by “Shyam R. Chaidmber and Chris F. Kemerer”. By setting different values of parameters of these algorithms, it is also concluded that which specific algorithm or class of algorithms is appropriate for reusability evaluation and with which parameter's values. For this comparative analysis we have used Weka and experimented different regression techniques as Multi-linear regression, Model Tree M5P, Standard instance-based learning scheme IBk and Meta-learning scheme Additive Regression. As the result of this analysis and experimentation “Standard instance-based learning IBk with no distance weighting” is found to be the best regression algorithm for reusability evaluation of Object Oriented software components using CK metrics.
Article
Full-text available
This paper aims to help in the selection of reusable educational materials from repositories on the web, developing an indicator of the reusability of learning objects. For this purpose, our research will be carried out in three stages. The first, based on previous studies in this area, will determine those aspects that influence reusability. The second will define a set of metrics that measure those aspects using metadata. The third will propose different methods of aggregation in order to obtain a single resulting value and evaluate the efficiency of the model by analyzing a significant set of learning objects obtained from the eLera and Merlot repositories. The results obtained suggest that the proposed indicator could provide useful information when searching for learning objects in repositories. This reusability measurement could constitute an indicator of quality, which would allow search results to be ordered, with those with the greatest possibility of being reused taking priority. Furthermore, the proposed reusability indicator could be calculated automatically or in an assisted way if metadata elements satisfy the minimum quality requisites identified. KeywordsReusability–Learning objects–Metadata–Metrics
Conference Paper
Full-text available
There are many machine learning algorithms currently available. In the 21st century, the problem no longer lies in writing the learner but in choosing which learners to run on a given data set. We argue that the final choice of learners should not be exclusive; in fact, there are distinct advantages in running data sets through multiple learners. To illustrate our point, we perform a case study on a reuse data set using three different styles of learners: association rule, decision tree induction, and treatment. Software reuse is a topic of avid debate in the professional and academic arena; it has proven that it can be both a blessing and a curse. Although there is much debate over where and when reuse should be instituted into a project, our learners found some procedures which should significantly improve the odds of a reuse program succeeding.
Conference Paper
Full-text available
Polymorphism is an essential feature of the object-oriented paradigm. However, polymorphism induces hidden forms of class dependencies, which may impact software quality. In this paper, we define and empirically investigate the quality impact of polymorphism on OO design. We define measures of two main aspects of polymorphic behaviors provided by the C++ language: polymorphism based on compile time linking decisions (overloading functions for example) and polymorphism based on run-time binding decisions (virtual functions for example). Then, we validate our measures by evaluating their impact on class fault-proneness, a software quality attribute. The results show that our measures are capturing different dimensions than LOC a size measure, as well as they are significant predictors of fault proneness. In fact, we show that they constitute a good complement to the existing OO design measures
Article
Full-text available
Given the central role that software development plays in the delivery and application of information technology, managers are increasingly focusing on process improvement in the software development area. This demand has spurred the provision of a number of new and/or improved approaches to software development, with perhaps the most prominent being object-orientation (OO). In addition, the focus on process improvement has increased the demand for software measures, or metrics with which to manage the process. The need for such metrics is particularly acute when an organization is adopting a new technology for which established practices have yet to be developed. This research addresses these needs through the development and implementation of a new suite of metrics for OO design. Metrics developed in previous research, while contributing to the field's understanding of software development processes, have generally been subject to serious criticisms, including the lack of a theoretical base. Following Wand and Weber (1989), the theoretical base chosen for the metrics was the ontology of Bunge (1977). Six design metrics are developed, and then analytically evaluated against Weyuker's (1988) proposed set of measurement principles. An automated data collection tool was then developed and implemented to collect an empirical sample of these metrics at two field sites in order to demonstrate their feasibility and suggest ways in which managers may use these metrics for process improvement
Article
This paper serves as an introduction to the Analytic Hierarchy Process - A multicriteria decision making approach in which factors are arranged in a hierarchic structure. The principles and the philosophy of the theory are summarized giving general background information of the type of measurement utilized, its properties and applications.
Article
This paper examines the relationship between the static coupling between objects (CBO) metric and some of its dynamic counterparts. The dimensions of the relationship for Java programs are investigated, and the influence of instruction coverage on this relationship is measured. An empirical evaluation of 14 Java programs taken from the SPEC JVM98 and the JOlden benchmark suites is conducted using the static CBO metric, six dynamic metrics and instruction coverage data.The results presented here confirm preliminary studies indicating the independence of static and dynamic coupling metrics, but point to a strong influence of coverage on the relationship. Based on this, this paper suggests that dynamic coupling metrics might be better interpreted in the context of coverage measures, rather than as stand-alone software metrics.
Conference Paper
Measuring "reuse" and "reusability" is difficult because there are so many different facets to these concepts. Before we can effectively measure reuse and reusability, we must first be able to effectively measure these different facets. One such facet is the programming language constructs that are available. For example whether or not a language supports polymorphism is believed to affect how reusable a developer can make a code artifact. Effectively measuring polymorphism is a challenge because its behaviour is only observable at run-time. In this paper, we present a metric for polymorphism based on the dynamic behaviour of the code. We evaluate the usefulness of the metric through two case studies.
Conference Paper
Building efficient machine-learning assessment models is an important achievement of empirical software engineering research. Their integration in automated decision-making systems is one of the objectives of this work. It aims at empirically verify the relationships between some software internal artifacts and two quality attributes: maintainability and reusability. Several algorithms, belonging to various machine-learning approaches, are selected and run on software data collected from medium size applications. Some of these approaches produce models with very high quantitative performances; others give interpretable and "glass-box" models that are very complementary.
Empirical validation of dynamic metrics using knowledge based approach
  • P K Manju
  • Bhatia
Manju, P. K. Bhatia, "Empirical validation of dynamic metrics using knowledge based approach," International Journal of Advanced Research in Engineering and Technology, vol. 11, issue 12, pp. 3219-3230, 2020.
Neuro-fuzzy based approach to software reusability estimation
  • D Godara
  • O P Sangwan
D. Godara, O. P. Sangwan, "Neuro-fuzzy based approach to software reusability estimation," Proceedings of the International Conference on Sustainable Computing Techniques in Engineering Science and Management (IJCTA), pp. 3811-3891, 2016.
Dynamic reusability prediction model for SMEs based on realtime constraints
  • P Mangayarkarasi
  • R Selvarani
P. Mangayarkarasi, R. Selvarani, "Dynamic reusability prediction model for SMEs based on realtime constraints," International Journal of Engineering Trends and Technology -Special Issues, pp. 63-75, 2020.
Empirical analysis of the reusability of object-oriented program code in open-source software
  • F Taibi
F. Taibi, "Empirical analysis of the reusability of object-oriented program code in open-source software," International Journal of Computer, Information, System and Control Engineering, vol. 8, issue 1, pp. 114-120, 2014.