To Improve Code Structure by Identifying Move Method Opportunities Using Frequent Usage Patterns in Source-Code

Author(s):  
Randeep Singh ◽  
Ashok Kumar
Author(s):  
Mohamed Aymen Saied ◽  
Hani Abdeen ◽  
Omar Benomar ◽  
Houari Sahraoui
Keyword(s):  

A number of software metrics estimate the complexity of software program by a couple of substantial software attributes and trends. Metric for measuring the reliability is extraordinary among the presently available complexity metrics by contemplating a non-physical attributes i.e. readability. Readability may be a key quality attribute for managing software source codes. Readability of the source code is mainly concerned with code maintainability which is a significant characteristic of software quality, mainly from the developers’ perspective. As the code is readable, the easier it is to modify, lesser errors, copious maintainable, easy to reuse and even more reliable. Readability is employed to enhance source codes for subsequent maintenance and extensibility. But code readability is not simply computable while dealing with open source software as contributors access the code and modify its structure according to his/her style of coding. This nature of development begins problems for the new contributors to understand the code structure. To enhance code readability, In this paper, we proposed a conceptual model of mining software repositories for software metrics in which we proposed a set of metrics for readability of the code that is easier to use and helpful to understand the code structure. We also mention a mechanism to validate the proposed metrics by the data extracted from the mining software repositories and comparing it with a survey conducting from experts working in industries


Author(s):  
IRENEUSZ JÓŹWIAK ◽  
MAKSYMILIAN KOWALCZYK ◽  
ANDRZEJ PIOTROWICZ

Software refactorization is a process of changing program's source code structure without changing its functionality. The purpose of the refactorization is to make program's source code easier to understand and maintain, which in turn influence the fact that in a long term such code should have fewer errors (be more reliable). In recent years many works described refactorization, but till now there are no researches, which would assess long term influence of refactoring on reliability. In this work we try to depict our fundamental study on software systems reliability improvement in context of refactoring. We tried to find the answer to the question: What are benefits of using refactorization as far as reliability is concerned?


Author(s):  
Jue Wang ◽  
Yingnong Dang ◽  
Hongyu Zhang ◽  
Kai Chen ◽  
Tao Xie ◽  
...  

Author(s):  
J. R. Dye ◽  
Y. Y. Tay ◽  
H. M. Lankarani

This study demonstrates the implementation and advantages in utilizing the Matlab programming environment for general-purpose simulations of constrained planar dynamic and kinematic multibody mechanical systems. Many currently available tools have a focus and can have limited flexibility through difficulty in data entry, limited access to source code, analysis of data or use of programming languages not readily taught. A Matlab source code is created, which includes the use of Microsoft Excel and GUI’s created in GUIDE that allow a user to construct, simulate and analyze multibody systems in Matlab. This technique allows the user to utilize any of Matlab toolboxes for unique problems or integrate the base program into a Simulink environment. An overview of the general code structure and multibody kinematics and dynamics equations used are shown in this paper. For kinematic simulations, the system’s Cartesian coordinates are found by finding the roots of the constraints vector at each time step. For the dynamic systems, the solver uses a numerical integration scheme with augmented form of the constrained equations of motion to solve for the system’s accelerations. Examples are presented demonstrating the benefits of using the Matlab environment and the flexibility to easily expand the code to simulate unique problems. These examples include an Ackermann steering for automotive applications and a double pendulum at the influence of gravity. The last example shows how a custom function can be created to inject forces into the dynamic solver in order to simulate a structural beam at the influence of a heavy pendulum.


2020 ◽  
Author(s):  
Paul Smith ◽  
Keith Beven ◽  
Ann Kretzschmar ◽  
Nick Chappell

<p>At a minimum reproducible research requires the use of models with strict version control and documented end points (e.g executable calls) so that simulations can be repeated with (hopefully) identical code and data. <br><br>Opening the research process beyond this requires that both the model source code and documentation can be scrutinised. Achieving this in a meaningful way means going beyond documentation on the code structure, installation and use. Since models are only approximations of physical systems it is important that users appreciate their limitations and are thoughtful in their use. It is therefore suggested that integration of a model into the scientific process requires developers to go further by:</p><ol><li>Documenting, in a way that be directly related to the code, the underlying equations and solutions used by the model and their motivation.</li> <li>Automating simple reproducible tests on components of the model across a range of dynamic situations beyond those expected.</li> <li>Providing reproducible case studies highlighting good practice and limitations of the model which can be used both to allow users to access the applicability of the model and to evaluate model changes.</li> </ol><p>We look at an implementation of these ideas with regards to the ongoing development of Dynamic TOPMODEL. We highlight challenges at both the technical and administrative level and outline how we are addressing them at https://waternumbers.github.io/dynatop/.</p>


Complexity ◽  
2020 ◽  
Vol 2020 ◽  
pp. 1-25
Author(s):  
Masoud Aghdasifam ◽  
Habib Izadkhah ◽  
Ayaz Isazadeh

Software refactoring is a software maintenance action to improve the software internal quality without changing its external behavior. During the maintenance process, structural refactoring is performed by remodularizing the source code. Software clustering is a modularization technique to remodularize artifacts of source code aiming to improve readability and reusability. Due to the NP hardness of the clustering problem, evolutionary approaches such as the genetic algorithm have been used to solve this problem. In the structural refactoring literature, there exists no search-based algorithm that employs a hierarchical approach for modularization. Utilizing global and local search strategies, in this paper, a new search-based top-down hierarchical clustering approach, named TDHC, is proposed that can be used to modularize the system. The output of the algorithm is a tree in which each node is an artifact composed of all artifacts in its subtrees and is a candidate to be a software module (i.e., cluster). This tree helps a software maintainer to have better vision on source code structure to decide appropriate composition points of artifacts aiming to create modules (i.e., files, packages, and components). Experimental results on seven folders of Mozilla Firefox with different functionalities and five other software systems show that the TDHC produces modularization closer to the human expert’s decomposition (i.e., directory structure) than the other existing algorithms. The proposed algorithm is expected to help a software maintainer for better remodularization of a source code. The source codes and dataset related to this paper can be accessed at https://github.com/SoftwareMaintenanceLab.


Author(s):  
Miguel-Angel Sicilia ◽  
Salvador Sánchez-Alonso ◽  
Marçal Mora-Cantallops ◽  
Elena García-Barriocanal

Sign in / Sign up

Export Citation Format

Share Document