• Title/Summary/Keyword: Code refactoring

Search Result 38, Processing Time 0.025 seconds

Refactoring the Code for Visualizing Protein Database Information in a 3D Viewer for Software Reusability

  • Chun, Yoo-Jin;Ham, Seong-Il;Yang, San-Duk;Rhie, Arang;Park, Hyun-Seok
    • Genomics & Informatics
    • /
    • v.6 no.1
    • /
    • pp.50-53
    • /
    • 2008
  • We have released five Java Application Programming Interface (API) packages for viewing three-dimensional structures of proteins from the Protein Data Bank. To this end, the user interface of an earlier version has been refactored in an object-oriented fashion, in which refactoring is the process of changing a software system to improve its internal structure, without altering the external behavior. Various GUI design and features have been provided conveniently thanks to the Model-View-Control (MVC) model, which is an architectural pattern used in software engineering. Availability: The source code and API specification can be downloaded from https://sourceforge.net/projects/j3dpsv/.

Bayesian Network-based Probabilistic Management of Software Metrics for Refactoring (리팩토링을 위한 소프트웨어 메트릭의 베이지안 네트워크 기반 확률적 관리)

  • Choi, Seunghee;Lee, Goo Yeon
    • Journal of KIISE
    • /
    • v.43 no.12
    • /
    • pp.1334-1341
    • /
    • 2016
  • In recent years, the importance of managing software defects in the implementation stage has emerged because of the rapid development and wide-range usage of intelligent smart devices. Even if not a few studies have been conducted on the prediction models for software defects, their outcomes have not been widely shared. This paper proposes an efficient probabilistic management model of software metrics based on the Bayesian network, to overcome limits such as binary defect prediction models. We expect the proposed model to configure the Bayesian network by taking advantage of various software metrics, which can help in identifying improvements for refactoring. Once the source code has improved through code refactoring, the measured related metric values will also change. The proposed model presents probability values reflecting the effects after defect removal, which can be achieved by improving metrics through refactoring. This model could cope with the conclusive binary predictions, and consequently secure flexibilities on decision making, using indeterminate probability values.

Metrics Approach in aspect of Code Smell for LEA Code (LEA 코드를 위한 코드 스멜 관점에서 메트릭 접근)

  • Jin-Keun Hong
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.24 no.4
    • /
    • pp.49-55
    • /
    • 2024
  • Code smells, used by Kent Beck, indicate potential quality issues and suggest the need for refactoring. This paper evaluates code smells in the LEA codebase, focusing on categorization and associated metrics. The research analyze LEA_core.c and LEA.cpp, highlighting differences in code quality and complexity. And metrics such as LOC, NOM, NOA, CYCLO, MAXNESTING, and FANOUT are used to assess size, complexity, coupling, encapsulation, inheritance, and cohesion. In the result of research, LEA_core.c is found to be more complex and challenging to maintain compared to LEA.cpp. In future work, we will develop automated tools for real-time code smell detection and refactoring suggestions

Building a Code Visualization Process to Extract Bad Smell Codes (배드 스멜 코드 추출을 위한 코드 가시화 프로세스 구축)

  • Park, Jihoon;Park, Bo Kyung;Kim, Ki Du;Kim, R. Young Chul
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.8 no.12
    • /
    • pp.465-472
    • /
    • 2019
  • Today, in many area the rise of software necessity there has been increasing the issue of the impotance of Good Software. Our reality in software industrial world has been happening to frequently change requirements at any stage of software life cycle. Furthermore this frequent changing will be increasing the design complexity, which will result in being the lower quality of software against our purpose the original design goals. To solve this problem, we suggest how to improve software design through refactoring based on reverse engineering. This is our way of diverse approaches to visually identify bad smell patterns in source code. We expect to improve software quality through refactoring on even frequently changing requirements.

Applying Design Pattern & Refactoring on Implementing RTOS for the Small Educational Multi-Joint Robot (소형 교육용 다관절로봇 RTOS 구현을 위한 디자인 패턴 & 리팩토링 적용)

  • Son, Hyun-Seung;Kim, Woo-Yeol;Ahn, Hong-Young;Kim, Robert Young-Chul
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.9 no.3
    • /
    • pp.217-224
    • /
    • 2009
  • The traditional small educational multi-joint robots were developed on firmware. In these system's case, we cann't give a chance to educate good practices due on executing just robot's simple movements. But it may be possible for RTOS to control the elaborate movement of the robot with assembling each part on firmware. With this RTOS, we can enhance the efficiency of robot's movements, but too difficult to use the education as increasing the complexity of robot system. To solve the problem, we apply with Design pattern and Refactoring for the Education. Applying robot's design with Design pattern and Refactoring. There may be easily understand what and how to design RTOS for any level ones. We may easily change/upgrade RTOS for new system with this approach. This paper mentions to design RTOS with Design patterns and to apply RTOS's source code with Refactoring.

  • PDF

Refactoring Effectiveness Analysis for Software Quality Enhancement : using AIS Mediation Server Program (소프트웨어 품질 향상을 위한 리팩토링 효과 분석 : AIS 중개 서버 프로그램을 대상으로)

  • Lee, Seo-Jeong;Lee, Jae-Wook;Hwang, Hoon-Kyu;Lee, Jang-Se
    • Journal of Navigation and Port Research
    • /
    • v.36 no.5
    • /
    • pp.363-370
    • /
    • 2012
  • Recently, International Maritime Organization has been developing e-navigation implementation strategy plan, which is focused on various services for vessel safety navigation. Then, different kinds of software will be developed in maritime area and with this, the quality issues are to be expected becoming more important. In this paper, we adopt software refactoring techniques to reduce the complexity of structure on source code level. It makes software program more effective to understand and modify, without any change of outward behavior. The existing AIS broadcast server program is used as an example for our trial, and calculating coupling and cohesion metric are introduced to analyze the refactoring effect, taking account of the maintainability of IEC/ISO9126 software quality standards.

A Catalog of Bad Smells in Design-by-Contract Methodologies with Java Modeling Language

  • Viana, Thiago
    • Journal of Computing Science and Engineering
    • /
    • v.7 no.4
    • /
    • pp.251-262
    • /
    • 2013
  • Bad smells are usually related to program source code, arising from bad design and programming practices. Refactoring activities are often motivated by the detection of bad smells. With the increasing adoption of Design-by-Contract (DBC) methodologies in formal software development, evidence of bad design practices can similarly be found in programs that combine actual production code with interface contracts. These contracts can be written in languages, such as the Java Modeling Language (JML), an extension to the Java syntax. This paper presents a catalog of bad smells that appear during DBC practice, considering JML as the language for specifying contracts. These smells are described over JML constructs, although several can appear in other DBC languages. The catalog contains 6 DBC smells. We evaluate the recurrence of DBC smells in two ways: first by describing a small study with graduate student projects, and second by counting occurrences of smells in contracts from the JML models application programming interface (API). This API contains classes with more than 1,600 lines in contracts. Along with the documented smells, suggestions are provided for minimizing the impact or even removing a bad smell. It is believed that initiatives towards the cataloging of bad smells are useful for establishing good design practices in DBC.

Object-Oriented based Refactoring Process (객체지향 기반의 Refactoring 프로세스)

  • Lee, Jong-Ho;Park, Jin-Ho;Rhew, Sung-Yul
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.7 no.4
    • /
    • pp.299-308
    • /
    • 2001
  • The company invests its time and money for temporary maintenance to satisfy the fast change of the computer use environment and the user's demands. Therefore, various problems occur including low performance because of duplication of codes and unstable structures from the restructuring and redevelopment. Furthermore, if a developer, who did not participate in initial process of development, wrote additional program codes to upgrade or restructure, it would cause many problems such as lack or lose of development documentation, understanding of documentation and reuse of existing program language. This study, Object-oriented Refactoring Process, suggests that the developers can reuse object unit to overcome the limit of the reusing code. In addition, this paper shows case study to verify our process by adjusting the project called "D2D", which is a case tool for developing windows system from Company D. Our works get positive results such as improvement of system pelfonnance, decreased cost of development and maintenance and optimizing structure and class.

  • PDF

Which Code Changes Should You Review First?: A Code Review Tool to Summarize and Prioritize Important Software Changes

  • Song, Myoungkyu;Kwon, Young-Woo
    • Journal of Multimedia Information System
    • /
    • v.4 no.4
    • /
    • pp.255-262
    • /
    • 2017
  • In recent software development, repetitive code fragments (i.e., clones) are common due to the copy-and-paste programming practice, the framework-based development, or the reuse of same design patterns. Such similar code fragments are likely to introduce more bugs but are easily disregarded by a code reviewer or a programmer. In this paper, we present a code review tool to help code reviewers identify important code changes written by other programmers and recommend which changes need to be reviewed first. Specifically, to identify important code changes, our approach detects code clones across revisions and investigates them. Then, to help a code reviewer, our approach ranks the identified changes in accordance with several software quality metrics and statistics on those clones and changes. Furthermore, our approach allows the code reviewer to express their preferences during code review time. As a result, the code reviewer who has little knowledge of a code base can reduce his or her effort by reviewing the most significant changes that require an instant attention. To evaluate our approach, we integrated our approach with a modern IDE (e.g., Eclipse) as a plugin and then analyzed two third-party open source projects. The experimental results indicate that our approach can improve code reviewer's productivity.

An Experiment in Refactoring an Object-Oriented CASE Tool (객체 지향 CASE 도구에 대한 재구조화 실험)

  • Jo, Jang-U;Kim, Tae-Gyun
    • The Transactions of the Korea Information Processing Society
    • /
    • v.6 no.4
    • /
    • pp.932-940
    • /
    • 1999
  • Object-oriented programming is often touted as promoting software reuse. However it is recognized that objected-oriented software often need to be restructured before it can be reused. refactoring is the process that changes the software structure to make it more reusable, easier to maintain and easire to be enhanced wit new functionalities. This paper desirbes experience gained and lessons learned from restructuring OODesigner, a Computer Aided Software Engineering(CASE) tool that supports Objects Modeling Technique(OMT). this tool supports a wide range of features such as constructing object modeler of OMT, managing information repository, documenting class resources, automatical generating C++ and java code, reverse engineering of C++ and Java cod, searching and reusing classes in the corresponding repository and collecting metrics data. although the version 1.x was developed using OMT(i.e the tool has been designed using OMT) and C++, we recognized that the potential maintenance problem originated from the ill-designed class architecture. Thus this version was totally restructured, resulting in a new version that is easier to maintain than the old version. In this paper, we briefly describe its restructuring process, emphasizing the fact that the Refactoring of the tool is conducted using the tool itself. Then we discuss lessons learned from these processes and we exhibit some comparative measurements of the developed version.

  • PDF