scholarly journals Using Clustering Techniques  to Guide Refactoring of  Object-Oriented Classes

2021 ◽  
Author(s):  
◽  
Keith Cassell

<p>Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to analyze and modify. The research described in this thesis concentrates on determining how to improve the structure of object-oriented classes, the fundamental unit of organization for object-oriented programs. Some refactoring tools can mechanically restructure object-oriented classes, given the appropriate inputs regarding what attributes and methods belong in the revised classes. We address the research question of determining what belongs in those classes, i.e., determining which methods and attributes most belong together and how those methods and attributes can be organized into classes. Clustering techniques can be useful for grouping entities that belong together; however, doing so requires matching an appropriate algorithm to the domain task and choosing appropriate inputs. This thesis identifies clustering techniques suitable for determining the redistribution of existing attributes and methods among object-oriented classes, and discusses the strengths and weaknesses of these techniques. It then describes experiments using these techniques as the basis for refactoring open source Java classes and the changes in the class quality metrics that resulted. Based on these results and on others reported in the literature, it recommends particular clustering techniques for particular refactoring problems. These clustering techniques have been incorporated into an open source refactoring tool that provides low-cost assistance to programmers maintaining object-oriented classes. Such maintenance can reduce the total cost of software development.</p>

2021 ◽  
Author(s):  
◽  
Keith Cassell

<p>Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to analyze and modify. The research described in this thesis concentrates on determining how to improve the structure of object-oriented classes, the fundamental unit of organization for object-oriented programs. Some refactoring tools can mechanically restructure object-oriented classes, given the appropriate inputs regarding what attributes and methods belong in the revised classes. We address the research question of determining what belongs in those classes, i.e., determining which methods and attributes most belong together and how those methods and attributes can be organized into classes. Clustering techniques can be useful for grouping entities that belong together; however, doing so requires matching an appropriate algorithm to the domain task and choosing appropriate inputs. This thesis identifies clustering techniques suitable for determining the redistribution of existing attributes and methods among object-oriented classes, and discusses the strengths and weaknesses of these techniques. It then describes experiments using these techniques as the basis for refactoring open source Java classes and the changes in the class quality metrics that resulted. Based on these results and on others reported in the literature, it recommends particular clustering techniques for particular refactoring problems. These clustering techniques have been incorporated into an open source refactoring tool that provides low-cost assistance to programmers maintaining object-oriented classes. Such maintenance can reduce the total cost of software development.</p>


Author(s):  
Benjamin R. Hubbard ◽  
Joshua M. Pearce

This study provides designs for a low-cost, easily replicable open source lab-grade digital scale that can be used as a precision balance. The design is such that it can be manufactured for use in most labs throughout the world with open source RepRap-class material extrusion-based 3-D printers for the mechanical components and readily available open source electronics including the Arduino Nano. Several versions of the design were fabricated and tested for precision and accuracy for a range of load cells. The results showed the open source scale was found to be repeatable within 0.1g with multiple load cells, with even better precision (0.01g) depending on load cell range and style. The scale tracks linearly with proprietary lab-grade scales, meeting the performance specified in the load cell data sheets, indicating that it is accurate across the range of the load cell installed. The smallest loadcell tested(100g) offers precision on the order of a commercial digital mass balance. The scale can be produced at significant cost savings compared to scales of comparable range and precision when serial capability is present. The cost savings increase significantly as the range of the scale increases and are particularly well-suited for resource-constrained medical and scientific facilities.


Author(s):  
P. K. KAPUR ◽  
ANU. G. AGGARWAL ◽  
KANICA KAPOOR ◽  
GURJEET KAUR

The demand for complex and large-scale software systems is increasing rapidly. Therefore, the development of high-quality, reliable and low cost computer software has become critical issue in the enormous worldwide computer technology market. For developing these large and complex software small and independent modules are integrated which are tested independently during module testing phase of software development. In the process, testing resources such as time, testing personnel etc. are used. These resources are not infinitely large. Consequently, it is an important matter for the project manager to allocate these limited resources among the modules optimally during the testing process. Another major concern in software development is the cost. It is in fact, profit to the management if the cost of the software is less while meeting the costumer requirements. In this paper, we investigate an optimal resource allocation problem of minimizing the cost of software testing under limited amount of available resources, given a reliability constraint. To solve the optimization problem we present genetic algorithm which stands up as a powerful tool for solving search and optimization problems. The key objective of using genetic algorithm in the field of software reliability is its capability to give optimal results through learning from historical data. One numerical example has been discussed to illustrate the applicability of the approach.


2003 ◽  
Vol 2003 (01) ◽  
pp. 0102
Author(s):  
Terry Bollinger

This report documents the results of a study by The MITRE Corporation on the use of free and open-source software (FOSS) in the U.S. Department of Defense (DoD). FOSS gives users the right to run, copy, distribute, study, change, and improve it as they see fit, without asking permission or making fiscal payments to any external group or person. The study showed that FOSS provides substantial benefits to DoD security, infrastructure support, software development, and research. Given the openness of its source code, the finding that FOSS profoundly benefits security was both counterintuitive and instructive. Banning FOSS in DoD would remove access to exceptionally well-verified infrastructure components such as OpenBSD and robust network and software analysis tools needed to detect and respond to cyber-attacks. Finally, losing the hands-on source code accessibility of FOSS source code would reduce DoD’s ability to respond rapidly to cyberattacks. In short, banning FOSS would have immediate, broad, and strongly negative impacts on the DoD’s ability to defend the U.S. against cyberattacks. For infrastructure support, the deep historical ties between FOSS and the emergence of the Internet mean that removing FOSS applications would strongly negatively impact the DoD’s ability to support web and Internet-based applications. Software development would be hit especially hard due to many leading-edge and broadly used tools being FOSS. Finally, the loss of access to low-cost data processing tools and the inability to share results in the more potent form of executable FOSS software would seriously and negatively impact nearly all forms of scientific and data-driven research.


2021 ◽  
pp. 207-209
Author(s):  
Ahmed Altaher

UML (Unfiled Modeling Language), known as the standard method for object-oriented (analysis and design) modeling, includes other languages which enables it to implement a prototype of the structure and behaviors of the product. This paper attempts to explore the observations about UML role on the cost of software maintenance, and hence on the Total Cost of Ownership (TCO) of a software product. It is therefore important to investigate the benefits obtained through modeling..


2014 ◽  
pp. 1119-1141
Author(s):  
Jörn Guy Süß ◽  
Neil Robinson ◽  
David Carrington ◽  
Paul Strooper

Implementation of railway controller application logic is a highly safety-critical and time-consuming task carried out individually for each client and station by specialised signalling engineers, with corresponding high costs. Μίνθα is a software development framework designed to create code generators for application logic for the client railway companies of Ansaldo STS that use the Microlok II controller to lower the cost and increase repeatability. This chapter describes the evolution of Μίνθα from prototype to framework, and introduces the software engineering approaches of object-oriented meta-modelling and framework development along the way. It also presents known limitations and further application areas of the framework.


Author(s):  
A. Contrerasa ◽  
F. Possob ◽  
Т. N. Veziroglu

The purpose of this work is to develop and evaluate a mathematical model for the process of hydrogen production in Venezuela, via electrolysis and using hydroelectricity, with a view to using it as an energy vector in rural sectors of the country. Regression models were prepared to estimate the fluctuation of the main variables involved in the process: the production of hydrogen, the efficiency of energy conversion, the cost of hydroelectricity and the cost of the electrolyser. Finally, the proposed model was applied to various different time-horizons and populations, obtaining the cost of hydrogen production in each case. The results obtained are well below those mentioned in the references, owing largely to the low cost of the electricity used, which accounts for around 45% of the total cost of the system.


Author(s):  
PANKAJ JALOTE ◽  
ASHOK K. MITTAL ◽  
RAM GOPAL PRAJAPAT

Inspection is widely believed to be one of the most cost-effective methods for detection of defects in the work products produced during software development. However, the inspection process, by its very nature, is labor intensive and for delivering value, they have to be properly executed and controlled. While controlling the inspection process, the inspection module size is a key control parameter. Larger module size can lead to an increased leakage of defects which increases the cost since rework in the subsequent phases is more expensive. Small module size reduces the defect leakage but increases the number of inspections. In this paper, we formulate a cost model for an inspection process using which the total cost can be minimized. We then use the technique of Design of Experiments to study how the optimum module size varies with some of the key parameters of the inspection process, and determine the optimum module size for different situations.


2020 ◽  
Author(s):  
John P. Efromson ◽  
Shuai Li ◽  
Michael D. Lynch

AbstractAutosampling from bioreactors reduces error, increases reproducibility and offers improved aseptic handling when compared to manual sampling. Additionally, autosampling greatly decreases the hands-on time required for a bioreactor experiment and enables sampling 24 hrs a day. We have designed, built and tested a low cost, open source, automated bioreactor sampling system, the BioSamplr. The BioSamplr can take up to ten samples from a bioreactor at a desired sample interval and cools them to a desired temperature. The device, assembled from low cost and 3D printed components, is controlled wirelessly by a Raspberry Pi, and records all sampling data to a log file. The cost and accessibility of the BioSamplr make it useful for laboratories without access to more expensive and complex autosampling systems.


2008 ◽  
Author(s):  
◽  
Pariksha Singh

Competitive pressure on the software industry encourages organizations to examine the effectiveness of their software development and evolutionary processes. Therefore it is important that software is measured in order to improve the quality. The question is not whether we should measure software but how it should be measured. Software measurement has been in existence for over three decades and it is still in the process of becoming a mature science. The many influences of new software development technologies have led to a diverse growth in software measurement technologies which have resulted in various definitions and validation techniques. An important aspect of software measurement is the measurement of the design, which nowadays often means the measurement of object oriented design. Chidamer and Kemerer (1994) designed a metric suite for object oriented design, which has provided a new foundation for metrics and acts as a starting point for further development of the software measurement science. This study documents theoretical object oriented cohesion metrics and calculates those metrics for classes extracted from a sample of open source software packages. For each open source software package, the following data is recorded: software size, age, domain, number of developers, number of bugs, support requests, feature requests, etc. The study then tests by means of association rules which theoretical cohesion metrics are validated hypothesis: that older software is more cohesive than younger software, bigger packages is less cohesive than smaller packages, and the smaller the software program the more maintainable it is. This study attempts to validate existing theoretical object oriented cohesion metrics by mining open source software data with association rules.


Sign in / Sign up

Export Citation Format

Share Document