• 제목/요약/키워드: 객체지향 역공학

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

객체지향 역공학을 위한 소프트웨어 복잡도 측정 기법 (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 Reverse Engineering Based Object Orient Diagram Extract Technique)

  • 박상훈;김연형;류성열
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.329-332
    • /
    • 2004
  • 레거시 소프트웨어를 재사용하기 위해서는 소스코드의 구조와 행위, 연관관계를 파악하는 것이 중요하다. 소스코드 분석을 통해 레거시 소프트웨어의 구조를 얻어내고 이에 대한 수정을 통해 소스코드에 반영하고자 하는 연구가 활발히 진행되고 있다. 그러나 기존의 역공학 도구들은 레거시 소프트웨어를 객체지향 다이어그램으로 정확히 추출해내지 못하였고 또한 호환성이 떨어지는 문제점을 가지고 있다. 본 연구에서는 기존의 역공학 툴들의 문제점을 보안하고 호환성을 높이며 재사용성을 향상시키기 위한 방법을 제시한다. 자바 소스코드로부터 UML클래스 다이어그램을 추출하기 위해 본 논문에서는 자바 소스코드의 파싱을 통해 클래스 다이어그램 생성에 필요한 AST를 추출하여 XML로 저장함으로써 상호운영성을 높이며 클래스간의 연관관계를 상세히 표현하기 위한 방법을 제시한다.

  • PDF

XNA기반 게임 개발 환경에서 역공학 방법을 이용한 객체지향 개념 학습 (Object-oriented Concept Learning using Reverse-engineering Method Based on XNA Game Development Environment)

  • 최영미;주문원;윤태복
    • 디지털콘텐츠학회 논문지
    • /
    • 제10권1호
    • /
    • pp.45-54
    • /
    • 2009
  • 본 논문은 게임 개발 환경에서 역공학을 이용한 객체지향개념 학습 방법을 제안한다. 흥미와 재미요소를 가지는 게임의 장점과 완성된 게임을 역으로 분석해 가며 사용된 기술을 학습자 스스로 도출해 낸다. 이 과정에서 게임에 사용된 객체지향 개념을 능동적으로 이해할 수 있는 학습 방법을 소개한다. 제안하는 방법은 XNA 게임 개발 환경에서 학습 사례를 소개하고 교수/학습자 역할에 따른 시나리오를 제시한다.

  • 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

기존 시스템에서 설계 패턴으로의 재공학 툴에 관한 연구 (A Study on The Reengineering Tool From conventional System into Design Pattern)

  • 김행곤;차정은
    • 한국정보처리학회논문지
    • /
    • 제5권9호
    • /
    • pp.2334-2344
    • /
    • 1998
  • 코드중심의 컴피넌트 추상화에 의한 클래스 단위의 응용시스템 구성은 각 요소의 독립성 및 재사용에 대한 잇점이 미흡하다. 이들 요소가 주로 구현상에 초점을 두기 때문이다. 다라서 사우이의 개발 단계에 대한 설계 문제의 추상화와 특정 영역의 일반적인 해결에 대한 정보 표현 및 구성 요소 상호 간의 관련성을 나타내는 설계패턴이 필요하다. 또한 기존 시스템을 분석하여 정확한 시스템을 이해하고 재사용 자원으로의 지식을 활용할 수 있는 소프트웨어 역공학이 필요하다. 즉, 객체지향 시스템의 설계구조를 추출하여 시스템 분석과 설계에 대한 이해를 향상시키고 표준화된 설계용어 및 컴퍼넌트 관계 구조를 통해 재사용을 용이하게 하는 설계 패턴 추출을 위한 역공학은 중요하다. 따라서 본 논문에서는 기존 객체지향 시스템 코드에서 설계 패턴 추출을 위한 역공학 적용에 관한 타당성과 설계 패턴 자동 추출을 위한 알고리즘을 Java 시스템에 적용하고 설계 패턴의 자동 추출을 위한 역공학 및 패턴 재사용을 위한 자동화 도구의 아키텍쳐를 설계 구현하다.

  • PDF

소프트웨어 재사용을 위한 실증적 객체지향 Refactoring 프로세스 설계 (A Study of Positive Object-Oriented Refactoring Technique for the Software Reuse)

  • 박진호;이종호;류성열
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (1)
    • /
    • pp.382-384
    • /
    • 2000
  • 현재 기업들은 거의 모든 부분이 전산화 작업으로 이루어지고 있으며, 기업의 중요한 업무는 모두 방대한 시스템이 사람을 대신해서 처리해 주고 있는 실정이다. 하지만 시스템 유지보수의 체계적인 프로세스에 대해서는 현재 연구된 바가 없어 쉽게 적용할 수 없는 문제가 존재한다. 재공학은 재사용하려는 소프트웨어를 분석, 재정의, 재문서화 등의 소프트웨어 역공학 방법을 통하여 좀더 효율적으로 소프트웨어를 분석할 수 있고, 순공학을 통해 문제점들의 교환과 새로운 구조와 시스템의 수정을 통해 더욱 경제적인 시스템을 만들 수 있다. 객체지향 어플리케이션의 Refactoring에서는 대표적으로 클래스간의 공통성을 추출하고, 이를 일반화시켜 추상클래스를 생성 및 삭제, 이동하는 과정을 통해 소프트웨어의 구조를 변경시켜 시스템의 성능향상을 도모하게 된다. 본 논문에서는 시스템의 재사용을 위한 실증적인 객체지향 Refactoring 기법을 제시한다.

  • PDF

객체지향 코드 품질 분석을 위한 효율적인 정적분석기 개발 및 가시화 사례 (The Constructing & Visualizing Practices in Effective Static Analyzer for analyzing the Quality of Object Oriented Source Code)

  • 이원영;문소영;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2019년도 추계학술발표대회
    • /
    • pp.704-707
    • /
    • 2019
  • 오늘날 객체지향 코드 내부 복잡도가 지속적으로 증가하는 데에 반해 IT 벤처/중소기업에서는 요구사항 및 설계문서 미비의 코드 개발과 테스트 중심의 경우가 빈번하다. 이는 시스템의 코드를 이해하고 수정, 유지보수를 하는데 많은 시간과 비용이 투자되고 있다. 본 연구는 객체지향 코드의 내부 구조 시각화를 위해 Tool-Chain방법을 이용한 정적 분석기 구축 및 가시화를 제안 한다. 이를 통해, 역공학 도구, 테스트 프로세스 등을 도입이 어려운 중소기업의 소프트웨어 품질 향상에 도움을 줄 수 있을 것으로 기대된다.

소프트웨어 역공학에서 기능성 검증 기법 (A Functional Verification Techniques in Software Reverse Engineering)

  • 황선명;진영택
    • 한국정보처리학회논문지
    • /
    • 제5권10호
    • /
    • pp.2546-2555
    • /
    • 1998
  • 기존의 절차중심 패러다임으로 개발된 시스템들은 사용자들의 새로운 요구와 변화 그리고 개발 당시의 기술보다 뛰어난 새로운 기술이 개발됨에 따라 수정되어야할 필요가 있다. 특히 재공학 및 역공학 기술로부터 품질이 높은 기존 시스템이 객체지향 시스템으로 변환되었을 때 변화된 시스템의 기능이 변환이전의 시스템과 동일한지 여부의 평가가 필요하다. 본 논문에서는 함수 커버리지를 제안하여 절차 중심의 소프트웨어와 변화된 객체지향 소프트웨어간의 기능적 일치성을 검증하기 위한 방법과 도구를 개발하였다. 이때 동적 분석에 필요한 계측도구의 삽입과정과 검증절차를 통하여 함수 커버리지의 만족 여부를 판단하여 테스트 데이터를 선정하였다.

  • PDF

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

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

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

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