• 제목/요약/키워드: 리팩토링 기법

검색결과 13건 처리시간 0.027초

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

  • 남승우;홍장의
    • 융합정보논문지
    • /
    • 제8권2호
    • /
    • pp.91-103
    • /
    • 2018
  • 리팩토링은 기존 레거시 코드에 대한 품질을 확보하기 위한 공학적 기술로서, 프로그램의 기능은 변하지 않으면서 내부 구조를 개선하는 작업이다. 다양한 오픈 소스 소프트웨어가 재사용되면서, 기술적 이유 또는 시장 요구로 인하여 프로그래밍 언어 변환을 통한 소스 코드 재사용이 점진적으로 요구되고 있다. 이러한 상황에서 에너지 효율성을 고려하는 언어 변환 리팩토링 기법은 임베디드 소프트웨어 개발의 생산성은 물론 품질 향상을 위한 중요한 수단으로 여겨지고 있다. 본 논문에서는 기존에 제시된 에너지 절감형 리팩토링 기법에 추가하여 프로그래밍 언어의 문법 및 구조의 비교와 매핑을 통해 다른 언어로 변환하는 코드 리팩토링 기법을 제시하였다. 제안하는 리팩토링 기법의 활용은 소프트웨어 개발 언어의 환경변화에 대처하고, 기존 코드의 재사용을 높임으로써 신속한 소프트웨어 개발 및 품질 향상을 통한 제품의 경쟁력 향상을 기대할 수 있다.

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

  • 박재진;김두환;홍장의
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제3권3호
    • /
    • pp.109-118
    • /
    • 2014
  • 코드 리팩토링은 소프트웨어의 수명을 연장하기 위한 목적을 가지고, 유지보수성을 증진하는데 초점이 있다. 그러나 최근 소프트웨어의 유용성이 높아지고 활용 범위가 방대해지면서, 성능 및 신뢰성 등의 다양한 품질 속성을 코드 리팩토링을 통해 향상시키고자 하는 노력이 있었다. 최근 스마트 폰과 같은 모바일 기기에서 저전력 소프트웨어의 중요성이 강조됨에 따라, 전력 효율성을 보장하는 코드 리팩토링 기법들도 필요하게 되었다. 본 연구에서는 코드 리팩토링이 소모 전력의 절감 효과를 가져 올 수 있는지를 확인하고자 하였다. 즉 기존에 제시되었던 코드 리팩토링 기법들이 소모 전력에 대한 충분한 고려가 이루어지지 못했기 때문에 코드의 유지보수성은 향상시키지만, 전력 효율성이 감소하는 결과를 초래할 수 있다는 것이다. 따라서 본 연구에서는 M. Fowler가 개발한 코드 리팩토링 기법들을 대상으로 전력 효율성을 분석한다. 제시된 연구 결과를 통해 개발자들은 어떠한 리팩토링 기법이 전력 효율성을 제공하는지 판단할 수 있으며, 이를 통해 유지보수성이 높은 전력 효율적인 소프트웨어를 개발할 수 있을 것이다.

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

  • 정영애;박용범
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2006년도 춘계학술발표대회
    • /
    • pp.253-256
    • /
    • 2006
  • 소프트웨어는 생명주기 전반에 거쳐 발생하는 요구사항 변경으로 수정이 불가피하다. 소프트웨어를 수정할 때 품질과 안정성을 유지하는 것은 중요한 문제이다. 본 논문에서는 무브 메소드(Move Method) 기법을 기초로 하여 리팩토링 적용요인을 제안하고, 로지스틱 회귀분석을 통하여 적용요인이 메소드의 위치를 결정지을 수 있는 요인임을 증명하는 방법에 대하여 살펴본다. 또한 객체지향 프로그램에서 메소드와 더불어 중요한 요소인 필드의 위치를 결정지을 수 있는 요인을 무브 필드(Move Field) 기법에 기초하여, 객체내 필드의 위치를 결정하기 위한 리팩토링 요인을 정의하고, 향후 연구과제에 대하여 논한다.

  • PDF

Energy Bad Smells 기반 소모전력 절감을 위한 코드 리팩토링 기법 (Code Refactoring Techniques Based on Energy Bad Smells for Reducing Energy Consumption)

  • 이제욱;김두환;홍장의
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제5권5호
    • /
    • pp.209-220
    • /
    • 2016
  • 최근 스마트폰, 태블릿과 같은 기기의 사용량이 증가하면서, 이에 탑재되는 소프트웨어는 더욱 복잡해지고 규모가 커지고 있다. 배터리의 전력으로 구동되는 모바일 기기들은 전력 공급의 한계로 인해 운용시간을 증가시키는 것이 중요한 이슈이다. 최근에는 소프트웨어 동작이 하드웨어 구동을 통해 전력 소모를 일으킨다는 점에서, 효율적인 동작 패턴을 갖는 소프트웨어 개발에 대한 연구들이 진행되고 있다. 그러나 모바일 기기에 탑재되는 소프트웨어는 그 개발 주기가 짧은 경우가 많아 최적화와 전력 소모량을 반영하기 어려운 경우가 많다. 따라서 본 연구에서는 소모전력 절감을 위한 코드 리팩토링 기법을 제안하여, 소프트웨어 개발 및 유지보수에서 보다 용이하게 저전력 요구사항을 충족시키고자 한다. 이를 위해 전력 소모량을 감소시킬 수 있는 코드 패턴에 대하여 Energy Bad Smell을 식별하고, 이를 제거하기 위한 새로운 코드 리팩토링 기법을 제안하며, 실험을 통해 그 효용성을 검증하였다.

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

  • 이서정;이재욱;황훈규;이장세
    • 한국항해항만학회지
    • /
    • 제36권5호
    • /
    • pp.363-370
    • /
    • 2012
  • 최근 국제해사기구에서 추진하고 있는 e-navigation은 선박의 안전운항을 위한 다양한 서비스를 지향하고 있다. 이에 따라, 해양 분야에 다양한 소프트웨어 개발이 기대되고 있으며, 동시에 그 품질의 중요성이 높아지고 있다. 이 논문에서는 소프트웨어의 품질 향상의 실험을 위해, 기존 AIS중개서버 프로그램에 소프트웨어 리팩토링(refactoring) 기법을 적용하였으며, 그 효과를 분석하였다. 리팩토링은 소프트웨어를 소스 코드 수준에서 구조의 복잡성을 줄여서, 이해하기 쉽고 기능 변경이 용이한 상태로 변경하는 기법이다. 이를 통해, 겉으로 보이는 동작의 변화는 없이 내부구조가 변경된다. 리팩토링 적용 효과 분석을 위해서, IEC/ISO 9126 소프트웨어 품질표준의 유지보수성과 관련된 기존 메트릭의 산술적 측정기법을 도입했다.

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

  • 김두환;정유진;홍장의
    • 중소기업융합학회논문지
    • /
    • 제6권4호
    • /
    • pp.137-150
    • /
    • 2016
  • IT 기술 및 비즈니스의 급속한 발전에 따라 새로운 서비스를 고객에게 제공하기 위한 노력이 증가하고 있으며, 신속한 서비스 제공을 위해 기존의 레거시 시스템에 대한 개선 및 확장이 빈번히 발생하고 있다. 이로 인하여 기존 레거시 시스템에 대한 소스 코드의 품질 확보는 서비스 요구에 신속히 대응할 수 있는 핵심적인 기술 요소가 되었다. 리팩토링은 기존 레거시 코드에 대한 품질을 확보하기 위한 공학적 기술로서, 부가가치를 제공하는 레거시 시스템의 개선 및 확장에 필수적이다. 본 논문에서는 레거시 시스템의 소스 코드 품질 향상을 위한 기존의 리팩토링 기법과 지원 도구에 대한 조사 분석을 통해 리팩토링 기법과 도구에 대한 특성을 제안한다. 제안하는 특성을 기반으로 서비스 개발자가 레거시 시스템의 소스 코드 품질 향상을 위하여 리팩토링을 수행하고자 하는 경우, 어떠한 기법과 도구를 활용할 것인가에 대한 가이드라인을 제공받을 수 있다. 이를 통해 보다 정확하고 시행착오 없는 레거시 시스템의 소스 코드 품질을 향상시킬 수 있으며, 새로운 서비스에 대한 신속한 대응도 가능하게 될 것이다.

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

  • 함동화;이준하;박수진;박수용
    • 소프트웨어공학소사이어티 논문지
    • /
    • 제26권4호
    • /
    • pp.93-103
    • /
    • 2013
  • 소프트웨어의 규모는 시간이 지남에 따라 복잡성과 유지보수 비용이 증가한다. 이로 인해 최근 유지보수의 중요성이 더욱 대두되고 있다. 소프트웨어가 진화 할수록 유지보수를 어렵게 하는 징후인 코드의 나쁜 냄새(Bad Smell)가 점점 심해지기 때문에 나쁜 냄새가 나는 코드를 제거하여 유지보수를 용이하게 개선해야 한다. 최근에는 이러한 나쁜 냄새를 위해 소프트웨어 리팩토링 기법에 대한 연구가 많이 연구되고 있다. 본 논문에서는 나쁜 냄새의 한 종류인 긴 매개변수 리스트(Long Parameter List)를 식별하고 해결하여 소프트웨어의 유지보수성을 향상시키는 방안을 제안한다. 제안되는 방안은 매개변수간의 의미적인 유사도를 측정하여 이를 군집화 하여 새로운 객체가 될 수 있는 매개변수들을 식별한다. 제안되는 방안은 경력 있는 객체지향 소프트웨어 개발자들이 군집화한 매개변수리스트와의 비교를 통해 평가되고, 그 결과가 통계적으로 검증된다.

  • PDF

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

  • 신경호;이민순;김준환;이병수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 추계학술발표대회
    • /
    • pp.311-314
    • /
    • 2007
  • AODV 프로토콜은 최단경로 라우팅 기법, 에너지 효율, 빠른 지역 경로 복구 등을 위한 많은 알고리즘이 연구되어 왔다. AODV 프로토콜의 성능평가는 대부분 NS2 시뮬레이터를 통해 이루어지고 있으며, AODV의 성능개선을 위한 알고리즘의 적용은 NS2의 AODV 소스파일 변경을 통해 이루어진다. AODV 소스파일의 AODV 클래스가 아주 많은 역할을 하는 구조로 작성되어 있어 알고리즘의 적용이 쉽지 않고, 이로 인해 성능평가를 위한 시뮬레이션에 시간과 노력이 많이 들게 된다. 이를 위해 기존 소프트웨어를 재사용하고 유연성을 높일 수 있도록 소프트웨어의 리팩토링을 해주어야 한다. 리팩토링은 소프트웨어를 효율적이고 유지보수가 쉽도록 전환하는 과정이며, 소프트웨어의 재사용성을 높여주고 유연성을 제공해 줄 수 있다. 본 연구에서는 AODV의 성능 개선을 위한 알고리즘 적용이 보다 유연해지도록 AODV 관련 클래스들에 대해 리팩토링을 수행한다.

  • PDF

트랜잭션의 시점, 크기 및 개발자의 숙련도를 고려한 논리적커플링 측정기법 (A Logical Coupling Measurement Method Based on Transaction Time, Size and Expertise of Developer)

  • 심빈구;김진태;박수용
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제36권11호
    • /
    • pp.891-900
    • /
    • 2009
  • 소프트웨어의 수명이 길어짐에 따라, 소프트웨어 유지보수비용을 줄이기 위한 기법에 대한 연구의 중요도가 높아지고 있다. 소프트웨어 엔티티들간의 커플링(Coupling)정보는 소스코드 분석 및 리팩토링등의 소프트웨어 유지보수에 활동에서 의사결정시 정량적인 근거자료로 유용하게 사용되고 있다. 논리적 커플링(Logical Coupling)은 소프트웨어가 진화하는 과정에서 관측된 엔티티들간의 관계성 정도를 나타낸다. 논리적커플링이 처음 소개된 이후로, 커플링의 단위를 상세화 하는 연구가 발표됨으로써, 큰 단위의 엔티티간 논리적커플링으로는 설명할 수 없는 소프트웨어의 특성들이 설명되었다. 하지만, 기존 연구는 프로젝트 구성원들의 성향 및 프로젝트의 특성을 고려하지 못 하였다. 본 연구는 버전관리시스템의 변경기록에 담겨있는 프로젝트 구성원들의 성향과 프로젝트 자체의 특징을 고려한 다중관점 기반의 논리적커플링 측정기법을 제안하고, 오픈소스프로젝트를 통해 제안하는 기법을 검증하였다.

CSS 가독성 향상을 위한 최적화기법 (An Optimization Technique to Improve Readability of CSS)

  • 정우성;이은주
    • 한국컴퓨터정보학회논문지
    • /
    • 제15권7호
    • /
    • pp.99-108
    • /
    • 2010
  • 웹 어플리케이션의 원활한 유지보수를 위하여 소스 페이지의 가독성 향상은 필수적이다. CSS는 웹 페이지의 구성 요소 중에서 순수한 표현계층이지만 인라인 형태로 삽입되는 경우가 많고, 웹 개발도구에 의해 자동생성되기도 하는데, 이들은 전체 코드의 가독성과 UI 계층의 재사용성이 떨어지게 된다. 기존의 CSS 최적화 연구는 주로 사이즈 압축을 다루고 있어 재사용성이나 가독성에 초점을 맞추고 있지 않다. 본 논문에서는 CSS 가독성 및 재사용성 향상을 위하여 CSS 코드를 구조화하고, 가독성 향상을 위한 기준을 정의하였다. 이들을 기반으로 최종적으로 CSS 코드의 가독성을 높이는 알고리즘을 제안하고, 예제 및 실험을 통하여 본 접근법의 유용성을 보인다.