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

검색결과 323건 처리시간 0.029초

나쁜 코딩 습관 개선을 위한 코드 가시화 연구 (A Study on Software Visualization for Bad Smell Coding Improvement)

  • 박지훈;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 추계학술발표대회
    • /
    • pp.477-480
    • /
    • 2016
  • 최근 소프트웨어 시장의 규모와 위상은 급속도로 성장하고 있다. 하지만 커지는 산업에 비해서 소프트웨어의 품질에 대한 인식은 아직 미흡하다. 국내 중소기업의 경우 인력, 비용 등의 여러 측면에서 어려움이 존재한다. 구현 중심의 개발이 이루어지면서 소프트웨어의 품질보다 빠른 개발에 초점을 두어 저 품질의 소프트웨어를 양산하고 있다. 본 논문에서는 이를 해결하기 위한 가시화를 통해 나쁜 코딩 습관을 개선하여 소프트웨어의 품질향상을 도모한다. 가시화를 통해 소스 코드에서 개선되어야 할 부분을 찾아내 소프트웨어의 품질을 향상시킬 수 있을 것으로 기대한다.

특성 구성을 이용한 컴포넌트 재구성 자동화 (Automatic Component Reconfiguration using Feature Configuration)

  • 정주미;장정아;최승훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 봄 학술발표논문집 Vol.31 No.1 (B)
    • /
    • pp.382-384
    • /
    • 2004
  • 소프트웨어 개발 단계 초기에 소프트웨어 제품군에 속하는 멤버들의 공통정과 차이점들을 미리 예측하고 분석하여 단위가 크고 전략적인 형태의 재사용을 가능하도록 함으로써 궁극적으로 소프트웨어 개발의 생산성을 향상시키고자 하는 것이 소프트웨어 프로덕트 라인 개발 방법론의 목적이다. 최근에는 소프트웨어 프로덕트 라인 개발에 자동 생성 프로그래밍 기법을 적용하기 위한 연구가 진행 중이다. 그런데, 어플리케이션 단위의 프로덕트 라인 개발 방법론은 단위가 너무 커서 자동 생성 기법을 효율적으로 적용하기가 힘들며, 따라서 그 초점을 컴포넌트 단위로 한정시킬 필요가 있다 본 논문에서는 도메인 공학의 주요 산물인 특성 다이어그램으로부터 특정 컴포넌트의 요구사항을 나타내는 특성 구성(Feature Configuration)을 만들고, 이를 바탕으로 컴포넌트 코드를 자동 생성하는 도구를 구현하였다. 본 논문의 컴포넌트 재구성 자동화 도구는 재사용자의 요구에 맞는 컴포넌트 소스 코드를 자동 생성함으로써 소프트웨어 프로덕트 라인 개발 생산성을 향상시킨다.

  • PDF

차분 퍼징을 이용한 국내 공개 암호소스코드 안전성 검증 (Security Verification of Korean Open Crypto Source Codes with Differential Fuzzing Analysis Method)

  • 윤형준;서석충
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1225-1236
    • /
    • 2020
  • 퍼징은 예상되는 범위를 벗어난 입력값을 무작위로 생성해 소프트웨어를 동적으로 테스팅 하는 방법으로, 취약점 분석을 자동화하기 위해 주로 쓰인다. 현재 한국인터넷진흥원에서는 국내 표준 암호 알고리즘들에 대한 소스코드를 공개하고 있으며, 많은 암호모듈 개발업체들이 이 소스코드를 이용하여 암호모듈을 개발하고 있다. 만약 이러한 공개 소스코드에 취약점이 존재할 경우, 이를 참고한 암호 라이브러리는 잠재적 취약점을 가지게 되어 향후 막대한 손실을 초래하는 보안 사고로 이어질 수 있다. 이에 본 연구에서는 SEED, HIGHT, ARIA와 같은 블록암호 소스코드의 안전성을 검증하기 위한 적절한 보안 정책을 수립하였고, 차분 퍼징을 이용해 안전성을 검증하였다. 최종적으로 스택 버퍼 오버플로우와 널 포인터 역참조를 포함하는 메모리 버그 항목과 오류 처리 항목에서 총 45개의 취약점을 발견하였으며, 이를 해결할 수 있는 취약점 개선 방안을 제시한다.

임베디드 소프트웨어를 위한 실시간 성능 테스팅 도구의 설계 및 구현 (A Design and Implementation of the Performance Testing Tool for Embedded Softwares)

  • 신경호;조용윤;유재우
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (1)
    • /
    • pp.763-765
    • /
    • 2004
  • 본 논문은 임베디드 시스템의 제한된 자원을 효율적으로 사용할 수 있는 임베디드 소프트웨어의 개발을 위한 성능 측정 도구를 제안한다. 제안하는 성능 측정 도구는 편리한 GUI를 제공하는 호스트-타겟(host-target) 기반의 테스팅 환경이다. 제안하는 테스팅 도구는 타겟 머신에 맞는 테스팅 코드 생성을 위한 파싱 엔진과 호스트-타겟간 소스 코드와 결과의 전송 및 테스팅 수행을 위한 에이젼트 모듈로 구성된다. 또한, 문자 스트링 형태의 저수준 테스팅 결과를 API 형태로 변경하는 데이터 처리기와 API 형태의 결과 정보를 그래픽 형태로 출력하는 레포트 생성기를 포함한다. 본 테스팅 도구는 개발자에게 레포트 뷰(view)를 제공하여 빠른 성능 분석과 코드 수정을 지원하며, 효율적이고 신뢰성 있는 임베디드 기반 소프트웨어 개발의 기회를 제공할 것으로 기대된다.

  • PDF

공개 오픈소스의 보안 취약성에 대한 학부생의 인식조사 연구 (A Study on the Awareness of Open Source Security Vulnerabilities)

  • 강태임;최창빈;김가연;이태현;이경호;조세나;장영수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2018년도 춘계학술발표대회
    • /
    • pp.131-132
    • /
    • 2018
  • 오픈소스는 소스코드를 무료로 공개하여 누구나 쉽게 사용하고 공유 할 수 있도록 만든 소프트웨어 이다. 누구나 열람할 수 있는 오픈소스의 특성상 보안에 취약하고 소프트웨어의 구조적 오류가 발생 할 수 있다. 필요한 기능을 손쉽고 편리하게 사용할 수 있다는 장점이 있지만, 검증되지 오픈소스는 해커와 같은 외부 공격에 취약점을 노출시킬 수 있다. 본 논문에서는 이러한 오픈소스의 취약점을 Adobe Flash Player의 사례를 통해 알아보고 취약점 해결방안을 고찰해 봄으로써 오픈소스를 사용하면서 발생할 수 있는 문제점을 보완하고자 하였다.

코드클론 표본 집합체 자동 생성기 (Automatic Generation of Code-clone Reference Corpus)

  • 이효섭;도경구
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제7권1호
    • /
    • pp.29-39
    • /
    • 2011
  • 프로그램 내의 코드클론을 찾아주는 도구나 기술들을 평가하기 위해서는 해당 도구가 탐지하는 못하는 클론이 있는지 확인해야 한다. 이를 위해서 샘플 소스코드에 대해서 코드클론을 모두 모아놓은 표준 표본 집합체가 필요하다. 그런데 기존의 코드클론 표본 집합체는 여러 클론탐지 도구의 결과들을 참조해 수작업으로 구축하지만 평가 기준으로 사용하기에는 빠져있는 표본이 많다. 본 연구에서는 자동으로 코드클론 표본 집합체를 생성하는 방법을 제안하고 도구를 구현하였다. 이 도구는 프로그램 소스를 핵심구문트리로 변환한 뒤, 트리를 샅샅이 비교하여 클론 패턴을 찾아낸다. 본 도구는 오탐이 없으며, 특정한 패턴을 제외하고 미탐도 없어서 코드클론 표본 집합체를 자동으로 생성하기 적합하다. 실험결과 상용도구인 CloneDR에서 찾아낸 클론을 모두 포함하면서 2-3배 더 많은 클론들을 찾아내었고, Bellon의 기존 표본 집합체의 클론들을 거의 대부분 포함(93-100%)하면서 자동 구축한 표본 집합체의 크기가 훨씬 크다.

웹 프록시 캐쉬에 대한 운영체제 지원 성능의 측정과 분석 (Measurement and Analysis on Operating System Supports for Web Proxy Cache)

  • 백윤철;추연준
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제8권4호
    • /
    • pp.450-456
    • /
    • 2002
  • 오픈 소스 웹 관련 소프트웨어는 주로 UNIX 기반 운영체제 상에서 작동하며, 사용하는 운영체제에 따라 웹 시스템 전체의 성능에 영향을 미칠 수 있다. 본 논문에서는 운영체제가 웹 서비스를 얼마나 잘 지원하는 가를 분석하기 위해 소스 코드 수준의 시간 측정 도구를 만들고, 오픈 소스 웹 프록시 캐쉬 소프트웨어인 Squid가 요청하는 운영체제 시스템 호출의 수행 시간을 측정하였다. Squid는 2.4.STABLE1을 사용하였으며, 기반 운영체제로는 역시 오픈 소스인 Linux 2.4.2와 Solaris 8을 사용하여 시스템 서비스 성능 차이를 비교하였다. 이 결과 전체적으로 Squid를 지원하는 데에는 Linux 2.4.2가Solaris 8보다 나은 것으로 나타났다. 실험 결과는 오픈 소스 소프트웨어를 이용하여 웹 서비스를 구축하는 경우, 소프트웨어 선택을 위한 판단 자료로 사용될 수 있고, 웹 관련 소프트웨어를 지원하는 운영체제 서비스의 성능 개선을 위한 자료로도 유용하게 사용될 수 있다.

변경 유형의 유사도 및 커밋 시간을 이용한 파일 변경 결합도 (A Technique to Detect Change-Coupled Files Using the Similarity of Change Types and Commit Time)

  • 김정일;이은주
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제3권2호
    • /
    • pp.65-72
    • /
    • 2014
  • 변경 결합도는 두 요소들 사이의 향후 변경 연관성을 알려준다. 만약, 소스 파일들이 자주 함께 변경된다면, 그 소스 파일들의 변경 결합도는 높다고 볼 수 있으며, 나중에 다시 함께 변경될 확률이 높다. 일반적으로 소스 파일들 사이의 변경 결합도는 공통 변경 횟수에 기반하여 정의되었다. 그런데 연관성이 낮은 변경들이 일괄적으로 함께 커밋되는 경우, 즉 뒤얽힌 변경(tangled change)과 같은 경우들이 빈번히 발생한다. 따라서 함께 변경된 횟수만으로 소스 파일의 변경 결합도를 결정하는 것은 한계가 있다. 본 논문에서는 기존의 방법을 보완하기 위해, 소스 파일의 변경 시간뿐 아니라 소스 코드 변경 유형의 유사성을 함께 고려하는 것을 제안하였다. 이를 위하여, 우선 추출된 변경 유형 정보를 이용하여 변경 유형 빈도 벡터를 정의하고, 다음에 코사인 유사도 측정을 통해서 각 소스 파일 버전에서 적용된 코드 변경 유사성을 계산한다. 이후 Eclipse 프로젝트인 JDT와 CDT에 대한 사례 연구를 통해 제안된 방법의 효용성을 보였다.

온라인 저지 시스템 지원을 위한 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 여부를 확인하여 소스코드 개선에 대한 피드백 기능에 적용 가능할 것으로 예상된다.

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