• Title/Summary/Keyword: refactoring

Search Result 66, Processing Time 0.035 seconds

Removing Long Parameter List Using Semantic Matrix (메소드의 매개변수 리스트의 간소화를 위한 리팩토링 방안)

  • Ham, Dong Hwa;Lee, Jun Ha;Park, Soo Jin;Park, Soo Young
    • Journal of Software Engineering Society
    • /
    • v.26 no.4
    • /
    • pp.93-103
    • /
    • 2013
  • Complexity and maintenance cost of software increase as much as software has been evolved, therefore importance of software maintenance recently arise. There are many signs that are difficulties to maintain software, called bad smell, in a large-scale software. The bad smell should be removed to improve maintainability. Recently, many software refactoring methods have researched to terminate the bad smell. In this paper, we propose how to identify long parameter list, which causes bad smell, and how to solve the problem for increasing software maintainability. In our approach, we classify the parameters for creating new objects by measuring semantic similarity among them. This is evaluated by experienced software developers, and the result is statistically verified.

  • PDF

Refactoring factors to decide the location of a field (필드 위치결정을 위한 리팩토링 요인)

  • Jung Young-Ae;Park Young-B.
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.253-256
    • /
    • 2006
  • 소프트웨어는 생명주기 전반에 거쳐 발생하는 요구사항 변경으로 수정이 불가피하다. 소프트웨어를 수정할 때 품질과 안정성을 유지하는 것은 중요한 문제이다. 본 논문에서는 무브 메소드(Move Method) 기법을 기초로 하여 리팩토링 적용요인을 제안하고, 로지스틱 회귀분석을 통하여 적용요인이 메소드의 위치를 결정지을 수 있는 요인임을 증명하는 방법에 대하여 살펴본다. 또한 객체지향 프로그램에서 메소드와 더불어 중요한 요소인 필드의 위치를 결정지을 수 있는 요인을 무브 필드(Move Field) 기법에 기초하여, 객체내 필드의 위치를 결정하기 위한 리팩토링 요인을 정의하고, 향후 연구과제에 대하여 논한다.

  • PDF

The Composition Mechanism for Reusability of Refactoring (리팩토링 재사용을 위한 조립 메커니즘)

  • Kim, Kyung-Min;Kim, Tae-Gong
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06b
    • /
    • pp.144-147
    • /
    • 2011
  • 최근 소프트웨어 개발에 리팩토링이 활성화되고 있다. 리팩토링에 대한 관심이 높아지면서 요소 리팩토링을 정의해서 이들의 조립을 통해 새로운 복합 리팩토링을 정의하려는 연구들이 많이 진행되고 있다. 그러나 이러한 연구들에서는 복합 리팩토링을 구성하고 있는 조립된 리팩토링의 종류가 요소 리팩토링으로 제한되어 있고, 조립 방법도 대부분 요소 리팩토링들의 순차적인 결합으로 되어 있는 경우에만 처리되고 있다. 이에 본 연구에서는 조립할 수 있는 리팩토링의 구성 요소를 요소 리팩토링뿐만 아니라 이미 정의되어 있는 복합 리팩토링도 가능하게 하고, 조건처리와 반복 등 다양한 방법으로 리팩토링들을 조립할 수 있는 메커니즘을 제안한다. 그리고 무순서반복 조립의 적용 가능성에 대한 증명 방법을 제안한다. 이를 통해 리팩토링들의 재사용성과 확장성을 향상시킬 수 있을 것이다.

A Study on the Detection Method of Composite Refactoring Opportunities (복합 리팩토링 기회의 탐지 방법에 관한 연구)

  • Kim, Kyung-Min;Kim, Tae-Gong
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06b
    • /
    • pp.223-225
    • /
    • 2012
  • 최근 소프트웨어 개발에 리팩토링이 활성화되고 있다. 리팩토링에 대한 관심이 높아지면서 요소 리팩토링을 정의해서 이들의 조립을 통해 더 큰 단위의 복합 리팩토링을 정의하려는 연구들이 많이 진행되고 있다. 복합 리팩토링을 이용하여 기존 코드의 설계를 개선하기 위해서는 복합 리팩토링의 적용에 앞서 개선할 점이 무엇인지 아는 것이 우선이다. 이처럼 리팩토링의 적용이 필요한 상황을 리팩토링 기회라고 한다. 이에 본 연구에서는 복합 리팩토링 기회를 탐지하는 방법을 제안한다. 그리고 제안한 방법으로 복합 리팩토링의 기회를 직접 탐지해봄으로써 본 연구의 효용성을 확인해본다.

Extended IPO technique for Code Refactoring (코드 리팩토링을 위한 확장된 IPO 기법)

  • Park, Jae-Jin;Lee, Jae-Wook;Hong, Jang-Eui
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06b
    • /
    • pp.255-257
    • /
    • 2012
  • 긴 파라미터 리스트(Long parameter list)는 소프트웨어 코드의 품질을 저해시키는 Bad Smell들 중 하나로써, 코드에 대한 이해도를 떨어뜨리고 코드의 변경을 어렵게 한다는 문제점이 있다. 이러한 문제를 해결하는 기법들 중 하나인 IPO(Introduce Parameter Object) 기법은 함께 사용되는 빈도가 높은 파라미터들을 하나의 클래스로 만든 후에 관련된 기능들을 해당 클래스의 메소드로 추출하여 사용하므로 코드의 중복을 막아 재사용성을 높이고 코드에 대한 이해도를 높일 수 있다. 하지만 IPO 기법의 주된 관심사는 파라미터 그룹의 발생 빈도에 초점을 두고 있으며, 커플링에 대한 고려가 충분히 이루어지지 않는다. 따라서 본 연구에서는 IPO 기법과 커플링의 관계를 분석하여 IPO 기법이 커플링까지 고려할 수 있도록 확장된 IPO기법을 제안한다. 제안된 기법은 기존의 기법에 비해 더 낮은 커플링을 달성하여 고품질의 코드를 얻을 수 있다.

Towards Performance-Enhancing Programming for Android Application Development

  • Kim, Dong Kwan
    • International Journal of Contents
    • /
    • v.13 no.4
    • /
    • pp.39-46
    • /
    • 2017
  • Due to resource constraints, most of Android application developers need to address potential performance problems during application development and maintenance. The coding styles and patterns of Android programming could often affect the execution time and energy efficiency which are utilized by the Android applications. Thus, it is necessary for application developers to apply performance-enhancing programming practices for mobile application development. This paper introduces performance-enhancing best practices for Android programming, and further, it evaluates the impact of these practices on the CPU time of the application. The original version with the performance-worsening code has been refactored to become an efficient version without changing its functionality. To demonstrate the efficiency of the proposed approach, each coding pattern was evaluated by measuring the CPU time under the controlled runtime environment. Furthermore, the Android applications were evaluated and compared via the CPU time of the original version, with that of the refactored version. These experimental results indicate that, by -using the proposed programming practices, the Android developer can develop performance-efficient mobile applications.

Improving Static Code Complexity with Refactoring technique based on SW visualization. (SW 가시화 기반 리펙토링 기법 적용을 통한 정적 코드 복잡도 개선)

  • Kang, Geon-hee;Son, HyunSeoung;Kim, Youngsoo;Park, Yong B.;Kim, R. Young Chul
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2014.11a
    • /
    • pp.650-653
    • /
    • 2014
  • 기존의 소프트웨어 개발은 SW품질을 중요시 하지만, 고품질에 대한 문제가 아직도 존재한다. 또한 기존 레가시 시스템는 개발자나 설계의 부재 경우가 많고, 코드의 내부 복잡도와 모듈간의 결합도가 높을 가능성이 높다. 따라서 코드 가시화를 통한 복잡도 개선은 고품질화과 더불어 코드 모듈의 재사용과 유지보수등과 직접적 관련성이 있다. 본 논문은 기존 SW가시화용 자동 Tool Chain 기반에서 여러 리펙토링 방법 절차 적용으로 복잡도 개선을 제안 한다. 이런 코드 가시화가 결과적으로 타깃의 결합도를 줄일 수 있다. 기존의 레가시 코드에 자동 Tool chain적용은 고품질 적용이 충분히 예상된다.

Refactoring for Classes Related with NS2 AODV (NS2 AODV 관련 클래스의 리팩토링)

  • Shin, Kyoung-Ho;Lee, Min-Soon;Kim, Jun-Hwan;Lee, Byoung-Soo
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.11a
    • /
    • pp.311-314
    • /
    • 2007
  • AODV 프로토콜은 최단경로 라우팅 기법, 에너지 효율, 빠른 지역 경로 복구 등을 위한 많은 알고리즘이 연구되어 왔다. AODV 프로토콜의 성능평가는 대부분 NS2 시뮬레이터를 통해 이루어지고 있으며, AODV의 성능개선을 위한 알고리즘의 적용은 NS2의 AODV 소스파일 변경을 통해 이루어진다. AODV 소스파일의 AODV 클래스가 아주 많은 역할을 하는 구조로 작성되어 있어 알고리즘의 적용이 쉽지 않고, 이로 인해 성능평가를 위한 시뮬레이션에 시간과 노력이 많이 들게 된다. 이를 위해 기존 소프트웨어를 재사용하고 유연성을 높일 수 있도록 소프트웨어의 리팩토링을 해주어야 한다. 리팩토링은 소프트웨어를 효율적이고 유지보수가 쉽도록 전환하는 과정이며, 소프트웨어의 재사용성을 높여주고 유연성을 제공해 줄 수 있다. 본 연구에서는 AODV의 성능 개선을 위한 알고리즘 적용이 보다 유연해지도록 AODV 관련 클래스들에 대해 리팩토링을 수행한다.

  • PDF

Design of Learning Process with Code Reconstruction Principle for Non-computer Majors

  • Hye-Wuk, Jung
    • International Journal of Advanced Culture Technology
    • /
    • v.10 no.4
    • /
    • pp.175-180
    • /
    • 2022
  • To develop computational thinking skills, university students are learning how to solve problems with algorithms, program commands and grammar, and program writing. Because non-computer majors have difficulty with computer programming-related content, they need a learning method to acquire coding knowledge from the process of understanding, interpreting, changing, and improving source codes by themselves. This study explored clone coding, refactoring coding, and coding methods using reconstruction tools, which are practical and effective learning methods for improving coding skills for students who are accustomed to coding. A coding learning process with the code reconstruction principle was designed to help non-computer majors use it to understand coding technology and develop their problem-solving ability and applied the coding technology learning method used in programmer education.

The Meta-model for Composition of Refactoring (리팩토링 조립을 위한 메타모델)

  • Kim, Eun-Ji;Kim, Kyung-Min;Kim, Tae-Gong
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2010.11a
    • /
    • pp.311-314
    • /
    • 2010
  • 리팩토링은 프로그램의 행위를 변경하지 않으면서 프로그램의 내부 구조를 수정하는 과정이다. 소프트웨어의 유지보수 측면에서 유용하기 때문에 리팩토링이 활발하게 이용되고 있다. 리팩토링에 대한 관심이 높아지면서 요소 리팩토링을 정의해서 이들의 조립을 통해 새로운 복합 리팩토링을 정의하려는 연구들이 많이 진행되고 있다. 그러나 이러한 연구들에서는 복합 리팩토링을 구성하고 있는 조립된 리팩토링의 종류가 요소 리팩토링으로 제한되어 있고, 조립 방법도 대부분 요소 리팩토링들의 순차적인 결합으로 되어 있는 경우에만 처리되고 있다. 이에 본 연구에서는 조립할 수 있는 리팩토링의 구성 요소를 요소 리팩토링뿐만 아니라 이미 정의되어 있는 복합 리팩토링도 가능하게 하고, 조건처리와 반복 등 다양한 방법으로 리팩토링들을 조립할 수 있는 메커니즘을 제안한다. 그리고 이러한 다양한 형태의 조립 메커니즘을 지원해주는 메타모델을 정의한다. 이를 통해 리팩토링들의 재사용성과 확장성을 향상시킬 수 있을 것이다.