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

검색결과 42건 처리시간 0.043초

디자인 패턴을 이용한 리팩토링 사례 연구 (A Case Study on Refactoring using Design Patterns)

  • 유명환;정인정
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (하)
    • /
    • pp.2031-2034
    • /
    • 2002
  • 소프트웨어가 대형화되고 복잡해짐에 따라 개발 과정에서 많은 요구사항이 발생되고 변화가 일어난다. 이러한 상황에서 소프트웨어는 유연성을 지니고 요구사항을 충족시켜야 한다. 그러나 추후에 발생할 요구사항을 모두 예견하고 충족시키는 것은 불가능하다. 이를 위해 기존 소프트웨어를 재사용하고 유연성을 높일 수 있도록 소프트웨어의 리펙토링(refactoring)을 해주어야 한다. 리펙토링은 행동(behavior) 변화가 없이 보호하고 소프트웨어를 효율적이고 유지보수가 쉽도록 전환하는 과정이다. 리펙토링에서 추상 슈퍼클래스 (abstract superclass)의 생성과 디자인 패턴을 이용함으로써 소프트웨어의 재사용성을 높여주고 유연성을 제공해 줄 수 있다. 본 논문에서는 사례 연구로써 표준프로파일 제공시스템의 통합검색부분에 추상 슈퍼클래스의 추출 및 생성, 디자인 패턴, 기존 프로그램의 합성 등의 방법을 적용하여 리팩토링을 하도록 한다.

  • PDF

컴포넌트 기반 재사용을 위한 레거시 소프트웨어 리팩토링 (Refactoring Legacy Software for Component-Based Reuse)

  • 조현;최순규;김은영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (2)
    • /
    • pp.55-57
    • /
    • 2002
  • IT 기술이 급격히 변화하더라도 새롭게 개발되는 대부분 소프트웨어의 핵심 부분은 기존에 존재하는 소프트웨어를 재사용하여 구현되어지는 경우가 많다. 그러나, 소프트웨어가 최초로 개발된 후 시간이 흐르고 빈번한 수정이 가해지게되면 소프트웨어는 필연적으로 최초의 형상과 많이 달라져 소프트웨어의 효과적인 재사용을 어렵게 한다. 이러한 레거시 소프트웨어를 재사용하기 위해 Refactoring을 적용하여 레거시 소프트웨어를 컴포넌트화하고 이를 재사용하고자 한다. 또한, Refactoring에 관련된 일련의 활동을 Activity로 보고 변경 관리의 대상으로 선정하여 이를 관리함으로써 Refactoring 활동을 평가하고자 한다.

  • PDF

BMP 기반 엔티티 빈의 재사용성과 유지보수성 향상 방안 (Improving Reusability and Maintainability of Entity Bean in Bean-Managed Persistence.)

  • 김고운;이금석
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2003년도 춘계학술발표논문집 (하)
    • /
    • pp.1729-1732
    • /
    • 2003
  • EJB는 J2EE 기반의 분산 컴포넌트 모델로 재사용 가능한 소프트웨어이다. 그중 데이터베이스의 데이터를 객체화한 엔티티 빈 컴포넌트는 영속성에 따라 CMP와 BMP로 구분이 되는데, BMP는 영속성의 차이로 인해 CMP와 조립하기 어려워 재사용성이 떨어지고, 소스코드가 복잡해 유지보수가 어렵다. 본 논문에서는 EJB 컴포넌트 중에서 BMP를 기반으로 구현한 엔티티 빈에 Dual Persistent 엔티티 빈 패턴(Entity Bean Pattern)을 적용하여 재사용성을 향상시키고, 소스코드를 리팩토링(Refactoring) 하여 유지보수성 향상시키는 DPwR(Dual Persistence with Refactoring) 방법을 제안하였다.

  • PDF

ERP 근태 관리 시스템의 코드 스멜 분석 (Code Smell Analysis of ERP Time Attendance Management System)

  • 최원재;김태환;문현준;김정선
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2020년도 제62차 하계학술대회논문집 28권2호
    • /
    • pp.389-390
    • /
    • 2020
  • 배포된 소프트웨어는 고객의 새로운 요구사항을 반영하면서 기능을 추가하거나 수정한다. 수정된 소프트웨어는 문제없이 동작하지만, 내부의 구조는 점점 더 복잡해지면서 유지보수가 어려워지고, 수정 시 버그 발생 확률이 높아지게 된다. 이에 따라 잘못된 코드 구조를 개선하고, 소프트웨어의 품질을 향상시켜야한다. 본 논문에서는 개발된 ERP 근태관리 시스템이 지속적인 요구사항을 반영하면서 발생한 잘못된 코드 구조인 코드 스멜을 탐지하고 분석하는 연구를 진행하였다.

  • 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 관련 클래스들에 대해 리팩토링을 수행한다.

시스템 레벨 설계에서 리팩토링을 적용한 단계적 상세화 (A stepwise refinement method by applying Refactoring in system level design)

  • 김현종;공헌택;김치수
    • 한국산학기술학회논문지
    • /
    • 제12권6호
    • /
    • pp.2840-2850
    • /
    • 2011
  • 임베디드 시스템을 설계하기 위해서는 하드웨어 설계와 소프트웨어 설계를 동시에 진행하여 마지막으로 그들을 통합하여 시스템을 구축하는 하드웨어/소프트웨어 공동 설계라는 설계 방법을 사용한다. 본 연구에서는 기존의 임베디드 시스템 설계의 문제점을 분석하고 그 해결 방안으로 SpecC 기술을 이용한 시스템 레벨 설계 방법을 제안한다. 또한 시스템 레벨 설계의 단계적 상세화를 실현하기 위해 소프트웨어 공학의 리팩토링 기술을 적용하여 체계적이고, 구체적인 단계적 상세화 방법을 제시한다.

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

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

코드 가시화 툴체인 기반 UML 설계 추출 및 검증 사례 (Best Practices on Validation and Extraction of Object oriented Designs with Code Visualization Tool-chain)

  • 이원영;김영철
    • 인터넷정보학회논문지
    • /
    • 제23권2호
    • /
    • pp.79-86
    • /
    • 2022
  • 본 논문은 역공학 기반 소프트웨어 가시화를 통해 설계 개선 실현과 고품질화에 초점을 두고 있다. 앞으로의 4차 산업의 다양한 영역에서 새로운 기술과 복잡한 소프트웨어가 대두됨에 따라 안정성과 신뢰성을 겸비한 소프트웨어 검증이 이슈화되고 있다. 간단한 연산 소프트웨어부터 기계 학습기반의 데이터 지향 소프트웨어까지 다양한 소프트웨어 고품질화를 위한 역공학 기반 UML 설계 추출 및 가시화 방법을 제안한다. 이를 기반으로 목표 설계에 대한 정확도를 확인하고 코드 내부 복잡도 식별을 이용하여 설계 개선을 통한 소프트웨어 품질 향상을 기대한다.

성능 저하 식별을 통한 저전력 개선용 코드 가시화 방법 (Code Visualization Approach for Low level Power Improvement via Identifying Performance Dissipation)

  • 안현식;박보경;김영철;김기두
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제9권10호
    • /
    • pp.213-220
    • /
    • 2020
  • 높은 사양이 필요한 하드웨어 기반의 모바일 및 IoT 임베디드 시스템은 저전력과 성능에 중요한 이슈를 갖고 있다. 이는 전력 소비로 발열량 증가 및 기기의 수명 단축 문제가 발생된다. 이러한 환경에서 소프트웨어도 제한된 전력, 메모리 등에서 안정적인 동작을 수행해야하므로 디바이스의 소비전력이 증가한다. 이를 해결하고자, 코드 관점에서 성능을 저하시키는 모듈을 식별하고, 그 모듈의 전력 최소화를 통한 성능 개선 가시화 방법을 제안한다. 이는 코드 가시화를 통해 복잡한 모듈(특히 Cyclomatic complexity, Coupling & Cohesion)을 식별하고, 저전력 코드 패턴화와 성능 코드를 간결화 한다. 이런 코드로 소비전력을 감소 및 성능 개선 함으로써 코드의 품질을 최적화 할 수 있다.

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

  • 최승희;이구연
    • 정보과학회 논문지
    • /
    • 제43권12호
    • /
    • pp.1334-1341
    • /
    • 2016
  • 최근 지능형 스마트 디바이스의 눈부신 발전과 사용으로 개발 단계의 소프트웨어 결함 관리의 중요성이 부각되고 있다. 효과적 결함 관리를 위해 소프트웨어 메트릭을 토대로 많은 결함 예측 모델 연구가 수행되고 있지만, 결함 예측 모델 연구 성과가 널리 확산되지는 못하고 있다. 본 논문에서는 결함 존재 유무에 관한 이진적 결함 예측 모델의 제약을 극복할 수 있도록, 베이지안 네트워크 기반 확률적 소프트웨어 메트릭 관리 방법을 제안한다. 제안 모델은 소프트웨어 메트릭을 활용하여 베이지안 네트워크를 구성하고, 이를 토대로 베이지안 추론을 수행하여 리팩토링을 위한 개선점을 식별할 수 있는 모델이다. 코드 리팩토링을 통해 소스 코드가 개선되면 관련 메트릭 측정값 또한 변하게 된다. 제안 모델은 리팩토링을 통한 메트릭의 개선으로 얻을 수 있는 결함 제거 효과를 확률 값으로 제시해준다. 따라서 이진 값 형태의 확정성을 극복할 수 있으며, 불확정적인 확률 값으로 의사결정의 유연성을 확보할 수 있을 것이다.