• 제목/요약/키워드: 소스 코드 분석

검색결과 341건 처리시간 0.028초

JUnit 텍스트 UI 테스트 러너를 활용한 자바 프로그램 단위 테스트 고찰 (Unit Testing of Java Program using JUnit Text UI Test Runner)

  • 이채영;윤회진;박영철
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(B)
    • /
    • pp.258-260
    • /
    • 2012
  • 본 논문은 오픈소스 자바 어플리케이션인 JTopas를 대상으로 단위 메소드 테스트를 수행하고, 기존의 IDE 중심의 JUnit 테스트 환경이 아닌 텍스트 UI 테스트 러너 기반으로 테스트를 수행함으로써 얻는 효과를 기술한다. 또한 리눅스 환경을 활용하여 쉘 프로그램으로 테스트 실행 프로그램을 작성하였으며, 이를 통하여 테스트 실행 결과 분석을 용이하게 할 수 있다. 동시에 테스트 코드와 테스트 대상 소스 코드를 관리하는 패키지 구성 방법을 보임으로써, TDD등에서 요구하는 테스트 코드 작성과 소스 코드 작성을 동시에 수행하는 환경을 지원하는 효과가 있다.

소프트웨어 설계 툴의 코드자동생성능력 비교 연구 (A Comparison Study of Code Generation Capability of Software Design Tools)

  • 조수란;강성원
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (C)
    • /
    • pp.325-330
    • /
    • 2006
  • 소프트웨어 설계 툴은 소프트웨어 개발을 위하여 실무에 도입되어 많이 이용되고 있다. 그러나 대부분의 소프트웨어 설계 툴이 코드를 자동으로 생성할 수 있는 기능을 제공하고 있어서 이를 잘 활용하면 개발시간을 단축하고 및 개발생산성을 향상 크게 향상 시킬 수 있음에도 불구하고, 많은 사용자들은 설계 툴을 단순한 모델링 툴로서만 이용하고 있다. 본 연구에서는 사용자들이 소프트웨어 설계 툴의 코드생성 능력을 잘 활용할 수 있도록, 몇 개의 선정된 설계 툴의 코드자동생성능력의 비교를 통해 설계 툴의 코드 생성능력을 비교 일 분석하였다. 자동 생성된 코드는 Java 소스코드이며, 언어지원능력, 난이도, 생성된 소스 코드의 레벨을 비교기준으로 평가를 수행하였다.

  • PDF

Sentry: Kernel Extension을 위한 바이너리 수준의 인터포지션 기법 (Sentry: a Binary-Level Interposition Mechanism for Kernel Extension)

  • 김세원;황재현;유혁
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 한국컴퓨터종합학술대회 논문집 Vol.33 No.1 (A)
    • /
    • pp.325-327
    • /
    • 2006
  • 현재 사용되고 있는 운영체제들은 그들의 기능을 확장하거나 교체하기 위해서 kernel extension을 사용해 왔다. 일반적으로 이러한 kernel extension들은 커널과 같은 주소공간에서 실행하기 때문에, 그것에서 발생하는 오류(fault)로 인해 전체 시스템이 망가지는 결과를 초래할 위험이 있다. 그래서 kernel extension의 안전한 실행에 관한 연구들은 kernel extension에서 발생한 오류를 전체 시스템으로부터 고립시키는 것이 주목적이었다. 하지만 이러한 방법들은 kernel extension의 어셈블리어로 된 코드를 분석하거나 사용하고 있는 커널의 소스 코드를 수정을 필요로 한다. 본 논문은 Sentry라는 kernel extension을 감시하기 위한 인터포지션 서비스를 제안한다. Sentry를 사용하기 위해서 별도의 커널 코드를 수정할 필요도 없으며, 이미 사용하고 있는 리눅스와 호환될 수 있는 특징을 지니고 있다. 그리고 kernel extension의 소스코드 및 어셈블리 코드에 대한 분석 없이 바이너리 파일을 직접 수정하여 kernel extension을 모니터링 할 수 있도록 한다. 게다가 Sentry는 재구성이 가능하기 때문에 얼마든지 kernel extension에 대한 보호정책을 동적으로 바꿀 수 있다.

  • PDF

안전한 소프트웨어 개발을 위한 정적분석 도구 시험코드 개발 (Validation Test Codes Development of Static Analysis Tool for Secure Software)

  • 방지호;하란
    • 한국통신학회논문지
    • /
    • 제38C권5호
    • /
    • pp.420-427
    • /
    • 2013
  • 최근 안전한 소프트웨어 개발을 위해 소프트웨어의 소스코드를 분석하여 보안취약점의 원인이 되는 소프트웨어 보안약점을 식별해 주는 정적분석 도구가 많이 활용되고 있다. 최적의 정적분석 도구를 선택하기 위해서는 도구가 보유한 보안약점 규칙 및 분석기능이 중요한 요소가 된다. 따라서, 본 논문은 정적분석 도구가 보유한 규칙 및 분석 성능을 평가하기 위해 개발한 시험코드를 제시하고자 한다. 시험코드는 SQL 삽입 등 43개 보안약점이 존재하는 소스코드로 정적분석 도구가 보유한 보안약점 규칙과 이를 기반으로 한 도구의 분석기능의 적절성을 평가하기 위해 사용될 수 있다.

작성자 분석과 CNN을 적용한 소스 코드 작성자 식별 프레임워크 (The Identification Framework for source code author using Authorship Analysis and CNN)

  • 신건윤;김동욱;홍성삼;한명묵
    • 인터넷정보학회논문지
    • /
    • 제19권5호
    • /
    • pp.33-41
    • /
    • 2018
  • 최근 인터넷 기술이 발전함에 따라 다양한 프로그램들이 만들어지고 있고 이에 따라 다양한 코드들이 많은 사람들을 통해 만들어진다. 이러한 측면을 이용하여 특정 작성자가 작성한 코드들 그대로 가져가 자신이 작성한 것처럼 보여주거나, 참고한 코드들에 대한 정확한 표기 없이 그대로 사용하여 이에 대한 보호가 점차 어려워지고 있다. 따라서 본 논문에서는 작성자 분석 이론과 합성곱 신경망 기반 자연어 처리 방법을 적용한 작성자 식별 프레임워크룰 제안한다. 작성자 분석 이론을 적용하여 소스 코드에서 작성자 식별에 적합한 특징들을 추출하고 이를 텍스트 마이닝에서 사용하고 있는 특징들과 결합하여 기계학습 기반의 작성자 식별을 수행한다. 그리고 합성곱 신경망 기반 자연어 처리 방법을 소스 코드에 적용하여 코드 작성자 분류를 수행한다. 본 논문에서는 작성자 분석이론과 합성곱 신경망을 적용한 작성자 식별 프레임워크를 통해 작성자를 식별하기 위해서는 작성자 식별만을 위한 특징들이 필요하다는 것과 합성곱 신경망 기반 자연어 처리 방법이 소스 코드등과 같은 특수한 체계를 갖추고 있는 언어에서도 적용이 가능하다. 실험 결과 작성자 분석 이론 기반 작성자 식별 정확도는 95.1%였으며 CNN을 적용한 결과 반복횟수가 90번 이상일 경우 98% 이상의 정확도를 보여줬다.

자바가상기계 메모리 할당을 보여주는 비주얼 도구의 개발 (Development Visual Tools of that shows memory allocation of JVM)

  • 이수진;정민수;김우완;이공선;윤기송
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (1)
    • /
    • pp.409-411
    • /
    • 1999
  • 본 논문에서 소개하고 있는 비주얼 자바가상기계 시뮬레이터는 자바 컴파일러에 의해 컴파일된 결과인 바이트코드를 분석하고, 그 분석된 결과가 자바가상기계내부구조에 어떻게 할당되는지를 시각적으로 보여줌으로써 자바 소스 코드가 보여주지 못하는 가상기계 내부의 메소드 영역, 자바 스택 영역, 힙 영역에 할당되는 정보를 통해 자바 소스 프로그램의 보다 명확하고 쉬운 이해가 가능하도록 한다.

  • PDF

소스 코드에 포함된 코딩 패턴의 특성과 출현 위치 관련성에 대한 분석 (Analysis of characteristics and location of the appearance for codding pattern in the source code)

  • 김영태;공헌택;김치수
    • 디지털융복합연구
    • /
    • 제11권7호
    • /
    • pp.165-171
    • /
    • 2013
  • 코딩 패턴이란 소스 코드에 자주 나타나는 전형적인 코드 조각이다. 소프트웨어에서 로깅이나 동기화 처리 등 모듈화가 곤란한 기능과 프로그래밍의 상용구 등이 코딩 패턴으로 추출된다. 기존에 소스 코드에 대한 패턴 마이닝을 이용한 코딩 패턴 감지 방법이 제안되었지만, 수동으로 조사 가능한 코딩 패턴의 수는 한정되어 있기 때문에 대규모 소프트웨어 등에 대한 충분한 분석은 할 수 없다. 본 논문에서는 개발자가 분석하고자 하는 코딩 패턴만을 추출하는 것을 목표로 코딩 패턴의 특성 평가 척도로 6개의 지표를 선정하여 4개의 오픈 소스에 대한 분석을 실시했다. 매트릭스 사이의 값의 관계와 실제 패턴의 특징을 분석한 결과, 패턴의 인스턴스 수, 인스턴스의 분포의 넓이, 패턴의 요소에 포함되는 반복 구조 비율 등의 지표 등을 분석해야 패턴 선택에 도움이 되는 것을 확인했다.

OSS 유사도 및 라이선스 분석 플랫폼에 관한 연구 (A Study on Platform for OSS Similarity and License Analysis)

  • 김기환;윤성철;김수현;이임영
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2023년도 추계학술발표대회
    • /
    • pp.317-318
    • /
    • 2023
  • 소프트웨어를 개발하는 과정에서 소스 코드를 직접 작성하면 높은 비용과 시간이 필요하다. 이를 해결하기 위해 OSS를 활용해 개발 비용 절감 및 소요 시간 단축 등 다양한 이점을 가지게 된다. 그러나 수많은 기업은 무분별한 OSS 사용으로 인해 개발 중인 소프트웨어에 적용되는 OSS의 라이선스를 정확히 파악하지 못한다. 그로 인해 라이선스 위반 및 충돌로 인한 저작권 문제로 법적 분쟁과 상용화된 소프트웨어 제품을 전부 리콜해야 하는 등의 피해가 발생한다. 하지만 국내에는 이러한 문제를 체계적으로 분석하고 예방하기 위한 점검 도구가 부족하다. 본 논문은 앞서 언급된 문제를 해결하고자, 높은 접근성을 바탕으로 OSS의 정보를 효과적으로 분석하는 플랫폼을 구현하였다. 사용자가 소스 코드의 분석을 요청하면, 플랫폼에 등록된 OSS 프로젝트 중 가장 높은 유사도를 보이는 프로젝트의 메타데이터, 유사도 분석 결과, 라이선스 정보를 제공한다. 이를 통해 사용자들은 자신들이 사용 중인 소스 코드에 적용된 OSS의 세부 구성 요소를 편리하게 분석하고 조회할 수 있다.

온라인 저지 시스템 지원을 위한 Feature-Wise Linear Modulation 기반 소스코드 문맥 학습 모델 설계 (Learning Source Code Context with Feature-Wise Linear Modulation to Support Online Judge System)

  • 현경석;최우성;정재화
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제11권11호
    • /
    • pp.473-478
    • /
    • 2022
  • 온라인 저지 시스템 지원하기 위한 표절 검사, 소스코드 분석 및 자동화된 튜터링 기법이 연구되고 있다. 최근 딥러닝 기술 기반의 소스코드 유사도 분석을 통한 표절 감지 기술들이 제안되었으나, 자동화된 튜터링을 지원하기 위한 딥러닝 기반의 연구는 미흡한 실정이다. 따라서 본 논문에서는 자바 바이트코드와 문제정보를 결합하여 학습하고, 학습자가 온라인 저지 시스템에 코드를 제출하기 전에 pass/fail 여부를 예측할 수 있는 GRU 기반의 Input / Output side FiLM 모델을 제안한다. 또한 온라인 저지에 수집되는 데이터의 특성상 비대칭이 발생하기 때문에 밸런스 샘플링 기법을 적용하여 데이터를 균등하게 분포시켜 두 상황을 제안한 모델로 학습하였다. 실험 결과 Input side FiLM 모델이 가장 높은 73.63%의 성능을 보였다. 이를 기반으로 학습자들이 온라인 저지의 평가를 받기 전에 pass/faill 여부를 확인하여 소스코드 개선에 대한 피드백 기능에 적용 가능할 것으로 예상된다.

자동학습에 기반한 디자인 패턴 인식 (Design Pattern Discovery based on Machine Learning)

  • 황성욱;윤현상;이은석
    • 한국HCI학회:학술대회논문집
    • /
    • 한국HCI학회 2006년도 학술대회 1부
    • /
    • pp.760-765
    • /
    • 2006
  • 디자인 패턴의 사용은 시스템을 좀 더 유연하고, 이해하기 쉽고, 재사용 가능하게 만든다. 개발이 완료된 시스템이 명확하게 문서화가 되어 있으면, 시스템의 내부 구조를 이해하기 쉽고, 향후 유지 보수의 비용이 적게 든다. 하지만, 대부분 시스템의 경우 개발된 시스템의 문서화가 잘 되어 있지 않기 때문에, 시스템에 문제가 생겨 수정 하고자 하거나, 새로운 모듈을 추가하여 시스템의 기능을 확장하고자 할 때, 전체 소스코드를 분석하여 시스템을 이해해야 하는 어려움이 있다. 이러한 문제점을 해결하기 위해서 소스코드에서 자동적으로 디자인 패턴을 인식하여 문서화를 증진시킬 수 있다. 따라서 신뢰할 만한 디자인 패턴 인식 시스템이 중요하다. 지금까지 디자인 패턴 인식 방법은 시스템의 구조적인 특징만을 이용하여 패턴을 인식하여 왔다. 그래서 본 논문은 구조적인 특징뿐만 아니라 동적인 분석, 그리고 자동학습(machine learning)에 기반하여 소스코드로부터 디자인 패턴을 인식하는 방법을 제안하고자 한다. 그리고 전 작업에서 만든 자바로 쓰여진 에이전트 개발 툴을 대상으로 실시하여 인식한 디자인 패턴에 대한 평가를 하였다.

  • PDF