• 제목/요약/키워드: 소프트웨어 역공학

검색결과 88건 처리시간 0.024초

규칙기반 역공학 도구의 구현 및 평가 (A implementation and evaluation of Rule-Based Reverse-Engineering Tool)

  • 진영배
    • 한국컴퓨터정보학회논문지
    • /
    • 제9권3호
    • /
    • pp.135-141
    • /
    • 2004
  • 소프트웨어의 종류가 다양하고, 커짐에 따라서 유지 보수 문제는 더욱 복잡하고 어렵게 되고, 프로그램 에러의 교정이나 요구 사항의 변경, 사용자에 대한 요구가 점차 증가되면서 소프트웨어의 유지 보수가 소프트웨어 생명 주기에서 가장 비용을 많이 차지하는 부분이 되었다. 본 논문에서는 객체지향 시스템에서 소프트웨어 재구성 환경을 위한 역공학 도구를 설계, 구현하였다. 이 도구는 클래스 정보를 이용한 규칙기반 역공학 도구이다. 프로그램 유지보수자가 프롤로그를 이용한 시스템 쿼리를 사용할 수 있도록 하였다. 대부분의 유사한 클래스를 추출하기 위한 재구조화 방법과 변수와 함수 사이의 관계에 근거를 둔 방법을 사용하였다. 추출된 클래스의 가시성이 자동적으로 산출되고, 논리언어를 이용한 쿼리를 사용함으로서 실질적인 유지보수가 이루어지도록 하였다. 또한 이 도구를 평가하는 방법을 제안하였다.

  • PDF

Adams-H를 위한 문서화 시스템 설계 및 구현 (A Design and Implementation of Documentation System for Adams-H)

  • 이승훈;조현훈;류성열
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 춘계학술발표논문집 (상)
    • /
    • pp.427-430
    • /
    • 2002
  • 기존의 2 Tier나 3 Tier형태의 소프트웨어 개발 시 생산성과 효율성을 향상시키기 위하여 RAD Tool을 많이 사용하였다. 이러한 RAD Tool의 사용은 생산성과 효율성을 향상 시켰지만 소프트웨어의 유지보수나 성능 개선을 위한 작업 시 코드의 중복이나 복잡성 등의 증가 등 많은 문제점들을 발생되었으며, 이는 소프트웨어의 유지보수에 많은 문제점을 가져왔다. 이러한 문제점들은 역공학 기법을 통해서 해결이 가능하다. 역공학 기법을 이용하여 소프트웨어의 구조를 이해할 수 있는 정보를 추출하고 추출된 정보를 체계적으로 관리할 수 있는 시스템을 구축하여 문서화하는 것이다. 이에 본 논문에서는 소프트웨어의 소스코드를 분석하여 시스템 변경 등의 작업 시 문서화를 지원하여 생산성과 효율성을 증가시킬 수 있는 시스템을 설계 구현하였다.

  • PDF

역공학 분석 시스템 구현 (Implementation of Reverse Engineering Analysis)

  • 박형철;간정현;장태진;이주연;권순각;이중화
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국정보통신학회 2012년도 춘계학술대회
    • /
    • pp.509-511
    • /
    • 2012
  • 역공학(Reverse Engineering)은 이미 만들어진 소프트웨어 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 것을 의미한다. 본 논문은 역공학 개념을 이용하여 하나의 파일에서 뽑을 수 있는 데이터 즉, 클래스나 변수, 메소드, 연관 관계 등을 추출하여 xml문서에 저장 후 역공학한 프로젝트 내에서 선언된 변수와 함수들의 사용횟수를 도출하는 시스템을 구현한다. 이를 바탕으로 역공학한 프로젝트 내에서 선언된 변수와 함수들의 사용횟수를 도출함으로써 검출 및 유지 보수가 용이하며, 클래스 다이어그램이 좀 더 자세하게 그려줄 수 있다.

  • PDF

XML 역공학 시스템 (XML Reverse Engineering System)

  • 박형철;간정현;장태진;이주연;이태혁;권순각
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국정보통신학회 2012년도 추계학술대회
    • /
    • pp.692-695
    • /
    • 2012
  • 만들어진 소프트웨어 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 역공학(Reverse Engineering)은 유지 보수 및 재사용 측면에서 필요하다. 본 논문은 역공학 개념을 이용하여 하나의 소스 파일에서 클래스, 클래스내의 멤버 변수 및 메소드, 서로 다른 클래스 사이의 연관 관계 등을 추출하여 xml 문서로 표시하여 저장하는 시스템을 구현한다. 또한, 역공학한 프로젝트 내에서 선언된 변수와 함수들의 사용횟수를 분석하며, 분석된 결과를 GUI 형태로 표시시켜 줌으로써 사용자의 편리성을 제공해준다.

  • PDF

객체지향 역공학을 위한 소프트웨어 복잡도 측정 기법 (A Software Complexity Measurement Technique for Object-Oriented Reverse Engineering)

  • 김종완;황종선
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권9호
    • /
    • pp.847-852
    • /
    • 2005
  • 지난 10여년간 객체지향 코드의 관리 및 분석을 위해 객체지향 소프트웨어 시스템에 대한 다양한 복잡도 계산 기법들이 제안되었다. 이러한 기법들은 WMC(Weighted Methods per Class), LCOM(Lack of Cohesion in Methods)과 같이 소스코드 분석을 기반으로 한다. 기존 기법들의 한계는 코드에서 함수의 개수만 계산한다는 것이다. 본 논문에서는 함수의 파라메타 개수, 반환값 여부 그리고 자료형까지도 확인하는 새로운 가중치 기법을 제안하며, 이를 역공학에 적용한다. 또한 역공학과정에서 객체지향 코드를 위한 클래스 복잡도 계산 지침을 제공하기 위해 인터페이스에 가중치를 부여하는 효율적인 복잡도 측정 기법을 제안한다. 제안기법인 ECC(Enhanced Class Complexity)는 C++ 환경에서 일관성 있고 정확한 결과를 보여준다.

역공학을 이용한 소프트웨어 재사용 시스템에 관한 연구 (A study on Software Reuse System Using Reverse Engineering)

  • 최은만
    • 한국정보처리학회논문지
    • /
    • 제4권1호
    • /
    • pp.97-106
    • /
    • 1997
  • 소프트웨어 재 사용 기법은 기존의 시스템을 개발하는데 사용된 다양한 형태의 정보와 지식을 다른 시스템 개발에 재적용함으로써 생산성을 향상할 수 있고 유지보 수를 쉽게 할 수 있다. 본 논문에서는 C 및 C++로 개발된 원시 코드를 대상으로 역공 학을 이용하여 재사용 가능한 부품을 수출하고 이 부품을 저장 및 검색, 합성하여 사 용할 수 있는 재사용 시스템 CSORUS(C and C++ SOurce ReUse System)를 설계 및 구현 하였다. 역공학을 이용하여 재사용 부품을 구축할 경우 실무 분야에서 적용되어 검증 받은 신뢰도가 높은 부품이므로 재사용 부품의 신뢰도와 새로운 시스템의 유지보수를 쉽게 할 수 있다면 장점이 있다.

  • PDF

역공학 기반 금융VAN 연동 서비스 모델링을 통한 시스템 구현 연구 (A Study on System Implementation through modeling the Financial VAN(Value Added Network) Connected Service Based on Reverse engineering)

  • 김규원;박보경;장우성;문소영;김영철
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2010년도 한국컴퓨터종합학술대회논문집 Vol.37 No.1(B)
    • /
    • pp.92-96
    • /
    • 2010
  • VAN 시스템에서 운영되는 소프트웨어는 개발이 완료한 후에도 업체들의 다양한 요구 사항을 수용해야한다. 소프트웨어 개발 초기에 갖추어진 개발문서들은 오랜 유지보수 기간이 지나면 초기 개발의 내용과 많은 부분이 다르다. 이때 개발자가 각 각의 요구사항을 수용할 때 경험을 토대로 수정하기 때문에 개발문서가 정확하게 반영되지 않는다. 이러한 경우에 개발문서는 그 역할을 수행하지 못하므로 소스 코드에 의지 할 수밖에 없다. 또한 절차식 언어로 개발된 소프트웨어의 경우는 유지보수가 더 어렵다. 절차식 언어를 객체지향 언어로 변경한다면 유지보수성이 높아 질 것이다. 본 논문에서는 이러한 문제를 해결하기 위해 역공학을 이용하여 기존의 절차식 언어를 객체 지향 언어로 변경하기 위한 과정을 제안한다.

  • PDF

코드 가시화부터 모델링 추출을 통한 역공학 적용 (Applying Reverse Engineering through extracting Models from Code Visualization)

  • 권하은;박보경;이근상;박용범;김영수;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 추계학술발표대회
    • /
    • pp.646-649
    • /
    • 2014
  • 최근 레가시 소프트웨어 기능의 증가와 범위가 넓어져, 결함으로 발생하는 사고의 피해 규모가 증가하고 있다. 그로 인해 소프트웨어의 고품질화가 절대적으로 필요하다. 기존 NIPA의 소프트웨어 가시화는 코드로부터 아키텍처 추출을 중점을 고려한다. 이로부터 역공학 기법을 통한 객체지향 코드의 정적 분석과 가시화로 모델(클래스 모델, 순차적 모델, 패키지 모델, 그리고 유스 케이스 모델)과 요구사항을 추출하고자 한다. 이에 앞서 기존에 구축한 Tool-chain에서 가시화를 통한 클래스 모델 추출을 먼저 시도한다. 본 논문에서는 객체지향 패러다임에 맞게 수정된 결합도 측정 방법을 제안하고 추출된 UML 클래스 다이어그램에 적용한다. 그 방법은 측정된 결합도를 클래스 간 의존 관계와 비교하고 UML 클래스 다이어그램에 표현하는 것이다. 이를 통해 기존 레가시 소프트웨어의 재개발 과정에서 설계 문서의 추출과 고품질화가 가능하다.

Visual C++ 소스코드를 위한 Obfuscation 도구 구현 (Implementation of an Obfuscation Tool for Visual C++ Source Code)

  • 조병민;장혜영;노진욱;오현수;정민규;이승원;박용수;우제학;조성제
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (C)
    • /
    • pp.521-525
    • /
    • 2006
  • 최근 소프트웨어의 주요 알고리즘 및 자료구조 등의 지적재산권을 역공학 분석과 같이 악의적인 공격들로부터 보호하기 위한 연구가 이루어지고 있다. 본 논문에서는 산업 현장에서 많이 사용되는 Visual C++ 또는 MFC로 작성된 프로그램의 소스 코드를 역공학 공격으로부터 보호하기 위한 Obfuscation 도구를 구현하고 그 성능을 평가한다. 구현된 도구는 3가지 Obfuscation 알고리즘을 적용하여 소스 코드를 생성하며 생성된 소스 코드들은 가독성이 떨어지고 역공학 분석이 어렵도록 변환되지만, 프로그램의 본래 기능은 그대로 유지하며 성능상의 변화가 크지 않음을 실험을 통해 확인할 수 있었다.

  • PDF