• 제목/요약/키워드: 소프트웨어 소스 코드

검색결과 317건 처리시간 0.031초

소프트웨어 버그 정정에 SeqGAN 알고리즘을 적용 (Applying SeqGAN Algorithm to Software Bug Repair)

  • 양근석;이병정
    • 인터넷정보학회논문지
    • /
    • 제21권5호
    • /
    • pp.129-137
    • /
    • 2020
  • 최근 소프트웨어가 다양한 분야에 적용되면서 소프트웨어 규모와 프로그램 코드의 복잡성이 증가하였다. 이에 따라 소프트웨어 버그의 존재가 불가피하게 발생하고, 소프트웨어 유지보수의 비용이 증가하고 있다. 오픈 소스 프로젝트에서는 개발자가 할당 받은 버그 리포트를 해결할 때 많은 디버깅 시간을 소요한다. 이러한 문제를 해결하기 위해 본 논문은 SeqGAN 알고리즘을 소프트웨어 버그 정정에 적용한다. 자세히는 SeqGAN 알고리즘을 활용하여 프로그램 소스코드를 학습한다. 학습과정에서 공개된 유사 소스코드도 같이 활용한다. 생성된 후보 패치에 대한 적합성을 평가 하기 위해 적합도 함수를 적용하고, 주어진 모든 테스트 케이스를 통과하면 소프트웨어 버그 정정이 되었다고 본다. 제안한 모델의 효율성을 평가하기 위해 베이스라인과 비교하였으며, 제안한 모델이 더 잘 정정하는 것을 보였다.

소스 코드 난독화 기법에 의한 Clang 정적 분석 도구의 성능 영향 분석 (Analysis of Detection Ability Impact of Clang Static Analysis Tool by Source Code Obfuscation Technique)

  • 진홍주;박문찬;이동훈
    • 정보보호학회논문지
    • /
    • 제28권3호
    • /
    • pp.605-615
    • /
    • 2018
  • 사물 인터넷 시장 규모의 급격한 성장에 따라 임베디드 시스템에서 가장 많이 쓰이는 언어인 C/C++ 언어의 사용도 증가하고 있다. C/C++ 언어의 코드 품질을 향상시키고 개발 비용을 절감시키기 위해 소프트웨어 개발 전반부에서 수행 가능한 소프트웨어 검증기법인 정적 분석을 사용하는 것이 좋다. 많은 프로그램들이 정적 분석을 사용하여 소프트웨어의 안전성을 검증하고 있으며 많은 정적 분석 도구들이 사용 및 연구되고 있다. 본 논문에서는 Clang 정적 분석도구를 사용하여 검증된 시험 코드에 대한 보안 약점 검출 성능을 확인한다. 또한 소스 코드 난독화 기법인 구획 난독화, 데이터 난독화, 제어 흐름 난독화 기법이 각각 적용된 시험 코드에 대한 정적 분석 결과와 원본 시험 코드에 대한 정적 분석 결과를 비교하여 소스 코드 난독화 기법에 따른 Clang 정적 분석 도구의 성능 영향을 분석한다.

정형명세 보안기능의 코드생성 도구 비교 (Comparison of Code Generation Tools from Formal Specification of Security Function)

  • 유희준;김일곤;최진영;김상호;노병규
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (A)
    • /
    • pp.829-831
    • /
    • 2002
  • 최근 들어 보안에 대한 관심이 높아지고 있으며, 많은 보안 관련 프로그램이 사용되고 있는 상황이다. 하지만 안전성을 예측하기 어려운 보안 기능을 완벽하게 구현하기 위해서 현재의 테스팅 방법론만으로는 완전성을 보장할 수 없으므로 보다 안전한 보안 기능을 구현하기 위해서 정형명세 방법은 반드시 필요하다. 또한 실제로 시스템들이 개발되는 과정에 있어서 설계될 당시와는 달리 결함을 가질 수 있다. 시스템에 대한 명세가 정확하다 하더라도 개발자인 사람의 개입으로 인해서 개발하는 도중에 명세와 다른 결과를 초래하여 결함이 발생할 수 있다. 이러한 결함은 개발자나 사용자에 의해 쉽게 발견되기 어렵다. 만일 보안 시스템이 알져지지 않은 결함이 있다면 비밀 정보가 쉽게 누설될 수 있다는 큰 문제가 발생할 수 있다. 통신망을 사용하는 인구의 확대와 더불어 다양한 형태의 통신 서비스가 제공됨에 따라 시스템의 특성이 복잡해지고 불법적인 자료 접근의 위험도 많이 노출되고 있다. 따라서 명확한 정형명세 보안기능으로부터 자동 코드 생성은 반드시 필요하다. 본 논문에서는 여러 정형 도구를 사용해서 보안기능에 대한 정형명세를 작성한 후에 소스코드 생성한 후, 정형명세를 이용하여 설계 및 구현한 프로그램에 대한 명세와 소스코드간 일치성 검토 방법을 개발하여, 정형명세를 통해 생성된 보안기능 소스코드의 보안성 측면과 성능적 측면의 Teade-Off 분석하는 것이다. 논문에서는 인증 관련 보안 기능인 S/KRY에 대해서 4개(STATEMATE MAGMUM, Rational Rose 98, SPEAR, VDM-SL)의 정형도구를 사용하여 명세 후, 소스 코드를 생성하여 생성된 각 코드에 대하여 비교하였으며, 현재 상용화 되어있는 Bellcore 의 S/KEY 시스템과의 비교를 수행하였다. 분석에서는 제품의 효율성뿐만 아니라 보안성을 중요하게 생각하였으며, 앞으로 보안 관련 소프트웨어 개발에 사용될 수 있는 도구들이 가이드 라인에 대한 정보를 제공한다.

  • PDF

오픈 소스 프로젝트 도큐멘테이션 가이드라인 연구 (A Documentation Guide to Open Source Software Project)

  • 박치남;류성열
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2006년도 추계학술발표대회
    • /
    • pp.531-534
    • /
    • 2006
  • 오픈소스 소프트웨어를 효율적으로 활용하기 위한 다양한 연구와 정책이 이루어지고 있으나 OGC에서 제기한 가이드에서 볼 수 있듯이 많은 단점을 가지고 있다. 특히 오픈 소스를 이용하여 새로운 제품을 개발하고자 하는 사람들이 제품의 선정과 구체적인 소스 코드를 분석하기 위한 문서화의 표준이 없다. 본 연구에서는 이러한 문제점을 극복하기 위한 기본적인 방안을 작성하기 위하여 오픈소스의 개발모형을 조사 분석하고, 분석된 모형에 근거한 오픈소스의 선정과 소스코드를 효율적으로 분석하기 위한 문서화 표준의 가이드라인을 작성하고자 한다. 또 이를 기반으로 오픈소스 커뮤니티 관리적 차원에서의 해결방안으로 관리항목의 기능을 분류하고 특성분류에 따른 문서화 작성지침을 제안 한다

  • PDF

버그리포트를 이용한 정보검색 기반 테스트케이스 우선순위화 기법 (A Technique for Test Case Prioritization based on IR using Bug Report)

  • 안준;염창선;김정호;이은석
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2015년도 추계학술발표대회
    • /
    • pp.1023-1026
    • /
    • 2015
  • 비용 효율적인 소프트웨어 유지보수 방안에 대한 기대가 높다. 본 논문에서는 유지보수 비용을 감소시키기 위해 회귀 테스트에 사용되는 테스트케이스를 효과적으로 우선순위화하는 방안을 제안한다. 테스트케이스를 우선순위화하는 방법으로는 코드의 커버리지를 이용해 테스트케이스의 우선순위를 높이는 방법과 모델 기반 테스트케이스 우선순위화 방법 등 여러 가지 방법이 제안되어 왔다. 본 논문에서는 소스코드, 커밋 로그와 버그리포트의 정보를 이용해 정보검색 기반의 테스트케이스 우선순위화 기법을 제안한다. 변경된 소스코드 이력은 새로운 기능의 업데이트 유무를 확인 할 수 있으며, 결함으로 수정된 파일을 추측할 수 있다. 버그 리포트는 소스코드의 결함에 대한 정보를 담고 있다. 제안한 방법의 유효성을 확인하기 위해 오픈소스 프로젝트(Joda-Time, Commons-Lang)를 이용해 실험을 진행하였다. 실험을 통해 소스코드, 커밋 로그와 버그리포트로 테스트케이스 우선순위화 방법의 유효성을 확인했으며, 버그리포트를 적용해 테스트케이스 우선순위화 기법을 이전 연구에 비해 최대 8% 향상된 결과를 확인 할 수 있었다.

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

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

요구사항 스펙과 소스 코드 간 동기화를 위한 자동 프로젝트 문서 도구 개발 (Construction of Automatic Project Document Generator for synchronizing source code with requirement specifications)

  • 권하은;박보경;김영철;김영수;이상은
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2015년도 추계학술발표대회
    • /
    • pp.1035-1037
    • /
    • 2015
  • 현재 소프트웨어 요구사항은 전체 소프트웨어 개발 프로세스를 거쳐, 완성된 제품 인도 시 인수 기준으로 작용한다. 그러므로 이런 요구사항은 개발주기 전체에 걸친 매우 중요한 관리 수단이다. 그러나 국내 다수의 중소기업은 이러한 문서화에 시간 및 비용이 부족하여, 개발 문서의 부재 혹은 코드와 문서가 불일치한 것이 현실이다. 이 문제를 해결하기 위해, 자동 프로젝트 문서 발생기(Automatic Project Document Generator)를 제안한다. 제안한 발생기를 통해 요구사항 스펙과 소스 코드 간 동기화로 요구사항 대로 개발이 진행되는지 확인 가능하다.

XSLT 스크립트를 이용한 계층 구조 조립 자동화 (Automatic Composition of Layered Architecture using XSLT Scripts)

  • 정주미;장정아;최승훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (2)
    • /
    • pp.433-435
    • /
    • 2004
  • 소프트웨어 프로덕트 라인은 핵심 소프트웨어 자산의 개발을 위한 도메인 공학과 실제 소프트웨어 부품을 조립하여 구체적인 소프트웨어 시스템을 개발하는 응용 공학을 포함한다. 소프트웨어 프로덕트 라인 구축 시 가장 중요한 점은 특정 도메인에 존재하는 가변성(variability)을 지원할 수 있어야 한다는 것으로, 재사용자의 목적에 따라 효율적으로 소프트웨어를 맞춤 생산할 수 있는 컴포넌트 재구성성(reconfigurability)이 핵심 요소라 할 수 있다. 본 논문에서는 재사용자가 선택한 특성 구성을 바탕으로 계층 구조 조립 자동화를 통해 컴포넌트 코드를 자동 생성하는 도구를 구현하였다. 이를 위하여, 컴포넌트 패밀리의 특성 모델에서 표현되는 차이점에 따라 계층 구조의 각 컴포넌트들이 조립되도록 XSLT 스크립트를 사용하였다. 특성 모델과 XML/XSLT 기술을 이용하여 컴포넌트 코드 생성 시에 재구성성을 지원하고 재사용자의 요구에 맞는 컴포넌트 소스 코드를 자동 생성함으로써 소프트웨어 프로덕트 라인 개발 생산성을 향상시킨다.

  • PDF

오픈 소스의 소프트웨어 보안 문제 및 시큐어 코딩 적용방안 (Open Source Software Security Issues and Applying a Secure Coding Scheme)

  • 김병국
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제23권8호
    • /
    • pp.487-491
    • /
    • 2017
  • 오픈 소스는 소프트웨어 혹은 하드웨어의 저작권자가 소스코드를 공개하여 누구나 특별한 제한 없이 자유롭게 사용, 복제, 배포, 수정할 수 있는 소프트웨어로 낮은 진입비용과 빠르고 유연한 개발, 호환성 및 신뢰성과 안전성의 장점을 가지고 있다. 이러한 여러 유용한 오픈 소스의 등장은 소프트웨어 개발에 있어 적은 비용과 시간 투입으로도 높은 수준의 결과물을 얻을 수 있다는 장점도 있지만 반면에 오픈 소스의 보안약점을 이용한 피해 사례가 증가하는 등 보안 문제 또한 심각해지고 있으며 오픈 소스 도입에 있어 보안성을 검증하는 별도의 절차도 아직까지 미흡한 상황이다. 따라서 본 논문에서는 실제 신뢰성이 높다고 알려진 오픈 소스를 보안적 관점에서 바라보며 오픈 소스에 존재하는 보안약점을 분석하고, 이러한 보안약점을 제거하기 위한 수단으로 시큐어 코딩 적용 방안을 제안한다.

데이터베이스 응용 소프트웨어 개발 지원 도구에 관한 연구 (A Study on the Support Tool for Database Application Software Development)

  • 김아영;윤청
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2015년도 춘계학술발표대회
    • /
    • pp.534-536
    • /
    • 2015
  • 소프트웨어 산업의 발전에 따라 개발 수요의 충족 및 개발 효율성의 증대를 위해 다양한 개발 방법론과 개발 지원 도구들이 등장해 왔다. 그러나 데이터베이스 응용 소프트웨어(Database Application Software, DB-App)의 개발이 활발함에도 불구하고, 해당 분야 개발의 효율을 도모하는 방안에 관한 연구는 미비한 실정이다. DB-App의 소스 코드(Source code)에는 쿼리(Query)문이 빈번하게 사용되지만 작성 과정에서 오류가 발생하기가 쉽고 관리에 대한 어려움이 있다. 이는 개발 효율을 저하시켜 비용을 증가시키는 요인이 된다. 본 논문에서는 다양한 데이터베이스와 프로그래밍 언어로 개발되는 DB-App 개발을 지원하기 위한 방법을 기술하였으며, 사용자의 설정에 따라 쿼리문을 포함한 소스 코드를 생성하는 도구를 설계하였다.