7 research outputs found
30 Years of Software Refactoring Research:A Systematic Literature Review
Due to the growing complexity of software systems, there has been a dramatic
increase and industry demand for tools and techniques on software refactoring
in the last ten years, defined traditionally as a set of program
transformations intended to improve the system design while preserving the
behavior. Refactoring studies are expanded beyond code-level restructuring to
be applied at different levels (architecture, model, requirements, etc.),
adopted in many domains beyond the object-oriented paradigm (cloud computing,
mobile, web, etc.), used in industrial settings and considered objectives
beyond improving the design to include other non-functional requirements (e.g.,
improve performance, security, etc.). Thus, challenges to be addressed by
refactoring work are, nowadays, beyond code transformation to include, but not
limited to, scheduling the opportune time to carry refactoring, recommendations
of specific refactoring activities, detection of refactoring opportunities, and
testing the correctness of applied refactorings. Therefore, the refactoring
research efforts are fragmented over several research communities, various
domains, and objectives. To structure the field and existing research results,
this paper provides a systematic literature review and analyzes the results of
3183 research papers on refactoring covering the last three decades to offer
the most scalable and comprehensive literature review of existing refactoring
research studies. Based on this survey, we created a taxonomy to classify the
existing research, identified research trends, and highlighted gaps in the
literature and avenues for further research.Comment: 23 page
30 Years of Software Refactoring Research: A Systematic Literature Review
Peer Reviewedhttps://deepblue.lib.umich.edu/bitstream/2027.42/155872/4/30YRefactoring.pd
シンスライシングを用いたPHPアプリの設定値参照ミス検知手法の提案
本研究ではPHP5で開発されたアプリケーションの,設定値に関連した不具合に着目し,対象とした不具合を検知する手法の提案と,不具合検知ツールMis.Configを開発した. PHP5アプリケーションの多くは,設定ファイルと呼ばれる,アプリケーションの動作に必要な設定値の情報をまとめたファイルを持つ.設定値とは,データベース接続に必要なデータベース名・ユーザー名・パスワード情報などである. 設定ファイルで定義された設定値が,PHPプログラム内で参照されるとき,定義と異なる型を想定して参照されることがある.これによってアプリケーションの誤動作が発生することが報告されている.本研究では,この不具合を「設定値参照時の型不一致ミス」とし,これらを検知する手法の提案と,不具合検知ツールMis.Configを開発した. Mis.Configの実現にあたり,コントロールフローグラフとシンスライシングを用いた.Mis.Configの精度実験として,実際に公開されているPHPアプリケーションの設定値を変更・追加し,人為的に設定値の型不一致を発生させた.発生した型不一致をMis.Configが検知できるかを実験した.結果,対象とした三種類の型間での型不一致は,再現率・適合率共に100%であり,全て検出することができた.実験全体の精度は,適合率100%,再現率78%, F値85%であった.電気通信大学201
Diseño y desarrollo de un sistema de medición y monitoreo remoto enfocado al uso doméstico
Según cifras del Ministerio de las TIC de Colombia, para el cuarto trimestre de 2013, hubo una penetración de internet del 16,6% en el municipio de Pereira lo que significaba un total de 77181 suscriptores a internet en el municipio. Para el segundo trimestre de 2014 ya había un total de 79489 suscriptores de internet fijo. Si se cruzan las cifras anteriores con las cifras arrojadas por el censo poblacional de 2005 realizado por el DANE, en donde se especifica que en el municipio de Pereira hay un promedio de 3,6 personas por cada hogar, se tiene como resultado una cifra considerable de personas con acceso a internet en sus hogares. Según Cisco, se espera que para el 2015 y 2020 se cuente con 25 billones y 50 billones espectivamente de dispositivos conectados a internet, lo cual se ve evidenciado en la creciente producción de sensores y dispositivos de comunicación de bajo costo que permiten hacer reportes periódicos de datos siguiendo determinados protocolos
Recommended from our members
Evolutionary combinatorial optimisation for energy storage scheduling, and web-based power systems analysis using PHP
Two research areas are covered in this thesis: the formulation of a novel evolutionary combinatorial optimisation algorithm for energy storage system (ESS) scheduling, and web-based power systems analysis (WBPSA) using PHP programming. An increase in electricity demand usually calls for reinforcement of the network equipment to handle the new load and network operators sometimes postpone or avoid this reinforcement by using ESS to store electrical energy when network usage is low and release it to be used in the grid during periods of high demand. The ESS operation must be scheduled to be effective and there are several scheduling methods that depend on energy generation data, flexible time-of-use tariffs or closed loop set-points. This thesis proposes a method that uses only historic or forecasted demand data which is also a requirement for other methods. The methodology formulates an electricity demand profile and ESS as a combination of the one-dimensional bin packing problem and the subset sum problem and solves them heuristically with specific modifications and transformations to obtain viable schedules. The schedules may then be optimised further using genetic algorithm optimisation. Comparative analyses with other algorithms and case studies using real-world data are used for verification. The algorithm is shown to be effective and has some advantages when compared to other existing algorithms; hence it can be used in scenarios where other methods are not applicable. On the second topic the thesis explores web-based power systems analysis platforms and shows that most use a web server primarily as an interface for exchanging requests and results between a front-end web browser and specialised back-end computation software written in a general programming language. A web server runs programs written in scripting languages such as PHP, which is the most popular web server programming language. Recent versions of web scripting languages have the computational capabilities required for power systems analysis and can handle the task of modelling networks and analysing them. This provides an opportunity for a slimmer 2-tier framework in which the web server also acts as the computation layer. The requirements for general power systems modelling are discussed and a methodology for realising web-based simulation using PHP programming is developed. Some of the modelling functions are handled natively in PHP and some require the use of extensions. The results show that using PHP for simulations can result in simpler access to power systems analysis functions in websites and web applications. The memory consumed by the PHP library developed is seen to be low and the computation time for reasonably large networks is in the millisecond range
Explainable, Security-Aware and Dependency-Aware Framework for Intelligent Software Refactoring
As software systems continue to grow in size and complexity, their maintenance continues to become more challenging and costly. Even for the most technologically sophisticated and competent organizations, building and maintaining high-performing software applications with high-quality-code is an extremely challenging and expensive endeavor. Software Refactoring is widely recognized as the key component for maintaining high-quality software by restructuring existing code and reducing technical debt. However, refactoring is difficult to achieve and often neglected due to several limitations in the existing refactoring techniques that reduce their effectiveness. These limitation include, but not limited to, detecting refactoring opportunities, recommending specific refactoring activities, and explaining the recommended changes. Existing techniques are mainly focused on the use of quality metrics such as coupling, cohesion, and the Quality Metrics for Object Oriented Design (QMOOD). However, there are many other factors identified in this work to assist and facilitate different maintenance activities for developers:
1. To structure the refactoring field and existing research results, this dissertation provides the most scalable and comprehensive systematic literature review analyzing the results of 3183 research papers on refactoring covering the last three decades. Based on this survey, we created a taxonomy to classify the existing research, identified research trends and highlighted gaps in the literature for further research.
2. To draw attention to what should be the current refactoring research focus from the developers’ perspective, we carried out the first large scale refactoring study on the most popular online Q&A forum for developers, Stack Overflow. We collected and analyzed posts to identify what developers ask about refactoring, the challenges that practitioners face when refactoring software systems, and what should be the current refactoring research focus from the developers’ perspective.
3. To improve the detection of refactoring opportunities in terms of quality and security in the context of mobile apps, we designed a framework that recommends the files to be refactored based on user reviews. We also considered the detection of refactoring opportunities in the context of web services. We proposed a machine learning-based approach that helps service providers and subscribers predict the quality of service with the least costs. Furthermore, to help developers make an accurate assessment of the quality of their software systems and decide if the code should be refactored, we propose a clustering-based approach to automatically identify the preferred benchmark to use for the quality assessment of a project.
4. Regarding the refactoring generation process, we proposed different techniques to enhance the change operators and seeding mechanism by using the history of applied refactorings and incorporating refactoring dependencies in order to improve the quality of the refactoring solutions. We also introduced the security aspect when generating refactoring recommendations, by investigating the possible impact of improving different quality attributes on a set of security metrics and finding the best trade-off between them. In another approach, we recommend refactorings to prioritize fixing quality issues in security-critical files, improve quality attributes and remove code smells.
All the above contributions were validated at the large scale on thousands of open source and industry projects in collaboration with industry partners and the open source community. The contributions of this dissertation are integrated in a cloud-based refactoring framework which is currently used by practitioners.Ph.D.College of Engineering & Computer ScienceUniversity of Michigan-Dearbornhttp://deepblue.lib.umich.edu/bitstream/2027.42/171082/1/Chaima Abid Final Dissertation.pdfDescription of Chaima Abid Final Dissertation.pdf : Dissertatio