• Title/Summary/Keyword: 리팩토링

Search Result 42, Processing Time 0.028 seconds

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 기반으로 리팩토링을 명세한다.

Analyzing Characteristics of Code Refactoring for Python Deep-Learning Applications (파이썬 딥러닝 응용의 코드 리팩토링 특성 분석)

  • Kim, Dong Kwan
    • The Journal of the Korea Contents Association
    • /
    • v.22 no.10
    • /
    • pp.754-764
    • /
    • 2022
  • Code refactoring refers to a maintenance task to change the code of a software system in order to consider new requirements, fix bugs, and restructure code. There have been various studies of refactoring subjects such as refactoring types, refactoring benefits, and CASE tools. However, Java applications rather than python ones have been benefited by refactoring-based coding practices. There are few cases of refactoring stuides on Python applications. This paper finds and analyzes single refactoring operations and composite refactoring operations for Python-based deep learning systems. In addition, we find that there is a statistically significant difference in the frequency of occurrence of single and complex refactoring operations in the two groups of deep learning applications and typical Python applications. Furthermore, we analyze keywords of commit messages to catch refactoring intentions of software developers.

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

Extension of Code Refactoring Technique to Support Energy Efficiency and Language Conversion of Embedded Software (임베디드 소프트웨어의 에너지 효율성과 언어 변환 지원을 위한 코드 리팩토링 기법 확장)

  • Nam, Seungwoo;Hong, Jang-Eui
    • Journal of Convergence for Information Technology
    • /
    • v.8 no.2
    • /
    • pp.91-103
    • /
    • 2018
  • Refactoring is an engineering technique for securing the quality of existing legacy code, improving the internal structure without changing the functionality of the software. Along with the reuse of open source software, reuse of source code through programming language conversion is increasingly required due to technical or market requirements. In this situation, the refactoring technique including language conversion as well as energy efficiency is considered to be an important means for improving the productivity and the quality of embedded software development. This paper proposes a code refactoring technique that converts the grammar and structure of a programming language into those of a different language through comparison and mapping, in addition to the existing energy efficient refactoring technique. The use of the proposed refactoring technique can expect to improve the competitiveness of the product through rapid software development and quality improvement by coping with the environment change of the software development language and enhancing the reuse of the existing code.

Analysis of Energy Efficiency for Code Refactoring Techniques (코드 리팩토링 기법의 전력 효율성 분석)

  • Park, Jae-Jin;Kim, Doohwan;Hong, Jang Eui
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.3 no.3
    • /
    • pp.109-118
    • /
    • 2014
  • Code refactoring focuses on enhancing the maintainability of software to extend its lifetime. However as software applications were varied and the range of its usage becomes broaden, there are some efforts to improve software qualities like performance or reliability as well as maintainability using code refactoring techniques. Recently, as low-energy software has become one of critical issues in mobile environment, developing energy efficient software through code refactoring becomes an important one. Therefore this paper has its goal to investigate whether the existing refactoring techniques can support energy efficient software generation or not. That is to say, the existing code refactoring techniques can cause the minus of energy efficiency because they did not considered the energy consumption in their refactoring process. This paper experiments and analyzes to check whether the M. Fowler's code refactoring techniques can support the energy efficient software generation or not. Our research result can give to software developer some informations about energy-efficient refactoring techniques, and can support the development of software that has high maintainability and good energy efficiency.

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

Refacing : Refactoring of Presentation Layer in n-Tier Architecture (리페이싱 : 다계층 아키텍처에서 표현 계층의 리팩토링)

  • 이욱진;박상현;이병정;김희천;우치수
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2004.10b
    • /
    • pp.376-378
    • /
    • 2004
  • 리페이싱은 다계층 아키텍처에서 클라이언트가 접하는 표현 계층을 리팩토링하는 것이다 즉 리페이싱은 표현 계층의 부적절한 구조 및 코드를 찾아내어 적절하게 개선하는 작업이다. 리페이싱은 1) 코드 가독성을 향상시키고, 2) 유지보수를 원활하게 하며, 3) 시스템이나 제품의 업그레이드 과정을 도와준다. 이 논문은 리팩토링을 참고하여, 리페이싱 절차를 제안하고, 실제로 카탈로그 중 하나인 '표현 계층과 업무 처리 계층(Business Logic Layer)의 분리' 카탈로그를 소개한다

  • PDF