• Title/Summary/Keyword: 요소 리팩토링

Search Result 16, Processing Time 0.023 seconds

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

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

The Refactoring Specification for Dynamic Composition based on OCL (동적 조립을 위한 OCL 기반의 리팩토링 명세)

  • Jang, Pil-Jae;Kim, Kyung-Min;Kim, Tae-Woong;Kim, Un-Ji
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2009.11a
    • /
    • pp.857-858
    • /
    • 2009
  • 최근의 소프트웨어 개발에서는 리팩토링이 일반적인 요소로서 활발하게 이용되고 있다. 리팩토링에 대한 관심이 높아지면서 리팩토링의 자동화와 리팩토링 재사용을 위한 조립에 대한 연구가 많이 진행되고 있다. 기존의 연구들에서는 리팩토링과 리팩토링 조립에 대해 선/후행조건을 각각 명세하고 있다. 하지만 리팩토링 조립의 경우에 대한 선/후행조건은 개별적인 리팩토링들의 선/후행조건들과 중복된 기능들이 대부분이며, 사용 가능한 리팩토링의 조립이 정적으로 고정되어 있음을 의미한다. 이에 본 연구에서는 리팩토링 조립의 경우가 고정되어 있지 않고 조립의 경우에 따른 선/후행조건의 추가적인 정의 없이 동적으로 다양하게 조립여부를 확인할 수 있도록 하고자 한다. 이를 위해 리팩토링의 동적 조립을 위한 전체 프레임워크를 제안하며 OCL 기반으로 리팩토링을 명세한다.

A Composition Check of Composite Refactorings Not Having a Specification of Precondition (선행조건이 명세되어 있지 않은 복합 리팩토링에 대한 조립성 검사)

  • Kim, Kyung-Min;Jang, Pil-Jae;Kim, Tae-Gong
    • The KIPS Transactions:PartD
    • /
    • v.18D no.1
    • /
    • pp.23-34
    • /
    • 2011
  • Refactoring has been actively used in recent software developments. Many studies on the processing of more large scaled composite refactorings have been conducted through the composition of elementary refactorings. It is important to verify the possibility of composition before the refactoring is performed, because the composite refactorings are processed to the sequence of composed elementary refactorings. In conventional studies, they verify the possibility of composition using the precondition of composite refactorings which are computed from the precondition and postcondition of elementary refactorings. They can not verify the possibility of composition in case which composite refactorings do not have a specification of precondition. Thus, we plan to verify the possibility of composition by using the elementary refactorings only without any additional definitions of the preconditions of composite refactorings. To achieve this goal, we proposes a specification method of elementary refactorings and a method for the composition check of refactorings. Then, we develop a prototype tool based on these methods. In addition, we verify the efficiency of our methods through case studies.

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

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
  • 최근 소프트웨어 개발에 리팩토링이 활성화되고 있다. 리팩토링에 대한 관심이 높아지면서 요소 리팩토링을 정의해서 이들의 조립을 통해 더 큰 단위의 복합 리팩토링을 정의하려는 연구들이 많이 진행되고 있다. 복합 리팩토링을 이용하여 기존 코드의 설계를 개선하기 위해서는 복합 리팩토링의 적용에 앞서 개선할 점이 무엇인지 아는 것이 우선이다. 이처럼 리팩토링의 적용이 필요한 상황을 리팩토링 기회라고 한다. 이에 본 연구에서는 복합 리팩토링 기회를 탐지하는 방법을 제안한다. 그리고 제안한 방법으로 복합 리팩토링의 기회를 직접 탐지해봄으로써 본 연구의 효용성을 확인해본다.

A Study on Aspect Refactoring using Program Dependency Graph (프로그램 의존성 그래프를 이용한 어스팩트 리팩토링에 관한 연구)

  • Cho, Byoung-Hyoun;Lee, Seung-Hyung;Song, Young-Jae
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2010.04a
    • /
    • pp.989-992
    • /
    • 2010
  • 리팩토링은 시스템의 기능 변경 없이 코드 구조를 재조정하여 가독성을 높이고 유지보수성을 향상하기 위함이다. 기존의 어스팩트 리팩토링은 프로그램의 특정 부분을 어스팩트로 정의하여 리팩토링하거나 구현된 어스팩트 명세를 재구성하는 방식으로, 객체지향 프로그램에 적용하는데 어려움이 있다. 본 논문은 객체지향 리팩토링에 어스팩트 개념을 적용하기 위한 구체화된 접근방법을 제시하는 것이 목적이며 이를 위해 프로그램 의존성 그래프를 이용한다. 리팩토링의 주요 어스팩트인 중복 코드는 프로그램 의존 그래프에서 노드 사이의 순서관계를 비교하여, 리팩토링을 위한 어스팩트 후보로 변환하며 이를 근거로 재조합 함으로써 캡슐화된 객체 내부의 리팩토링 요소를 편리하게 처리할 수 있다.

Analysis of Refactoring Techniques and Tools for Source Code Quality Improvement (소스 코드 품질 향상을 위한 리팩토링 기법 및 도구 분석)

  • Kim, Doohwan;Jung, YooJin;Hong, Jang-Eui
    • Journal of Convergence Society for SMB
    • /
    • v.6 no.4
    • /
    • pp.137-150
    • /
    • 2016
  • Along with the rapid development of IT technology and business services, the effort to provide new services to the customers has been increasing, and also the improvement and enhancement of legacy systems are continuously occurring for rapid service delivery. In this situation, the quality assurance of the source code for the legacy system became a key technical elements that can quickly respond to the service needs. Refactoring is an engineering technique to ensure the quality for the legacy code, and essential for the improvement and extension of the legacy system in order to provide value-added services. This paper proposes some features of refactoring techniques through surveying and analyzing the existing refactoring techniques and tools to enhance source code quality. When service developers want to refactor the source code of the legacy system to enhance code quality, our proposed features may provide with the guidance on what to use any technique and tool in their work. This can improve the source code quality with correct refactoring and without trial and error, and will also enable rapid response to new services.

Comparative Analysis of Determination of Method Location between Classes (클래스 간 메소드 위치 결정 방법의 비교)

  • Jung, Young-Ae;Park, Young-B.
    • The Journal of the Korea Contents Association
    • /
    • v.6 no.12
    • /
    • pp.80-88
    • /
    • 2006
  • In Object-Oriented Paradigm, various cohesion measurements have been studied taking into account reference relation among components - like attributes and methods - that belong to a class. In addition, a number of methods have taken into research utilizing manual analysis, that is performed by developer's intuition and experience, and automatic analysis in refactoring field. The verification of objective criteria is demanded in order to process automatic refactoring. In this paper, we propose a method exploiting logistic regression and neural network for analysis of the relationship between six factors considering reference relation and method location among classes. Experimental results demonstrate that the logistic regression predicts the results up to 97% and the neural network predicts the outcomes up to 90%. Hence, we conclude that the logistic regression based method is more effective to predict the method location. Moreover, more than 90% of experimental results from both methods show that the six factors used in Move Method in refactoring are suitable to be used as an objective criteria.

  • PDF

System Optimization Technique using Crosscutting Concern (크로스커팅 개념을 이용한 시스템 최적화 기법)

  • Lee, Seunghyung;Yoo, Hyun
    • Journal of Digital Convergence
    • /
    • v.15 no.3
    • /
    • pp.181-186
    • /
    • 2017
  • The system optimization is a technique that changes the structure of the program in order to extract the duplicated modules without changing the source code, reuse of the extracted module. Structure-oriented development and object-oriented development are efficient at crosscutting concern modular, however can't be modular of crosscutting concept. To apply the crosscutting concept in an existing system, there is a need to a extracting technique for distributed system optimization module within the system. This paper proposes a method for extracting the redundant modules in the completed system. The proposed method extracts elements that overlap over a source code analysis to analyze the data dependency and control dependency. The extracted redundant element is used to program dependency analysis for the system optimization. Duplicated dependency analysis result is converted into a control flow graph, it is possible to produce a minimum crosscutting module. The element extracted by dependency analysis proposes a system optimization method which minimizes the duplicated code within system by setting the crosscutting concern module.