• 제목/요약/키워드: 소스코드 복잡도

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

대용량 소스코드 시각화기법 연구 (Visualization Techniques for Massive Source Code)

  • 서동수
    • 컴퓨터교육학회논문지
    • /
    • 제18권4호
    • /
    • pp.63-70
    • /
    • 2015
  • 프로그램 소스코드는 텍스트를 기반으로 하는 정보이며 동시에 논리 구조를 포함하고 있는 복잡한 구문의 집합체이다. 특히 소스코드의 규모가 수만 라인에 이르는 경우 구조적, 논리적인 복잡함으로 인해 기존의 빅데이터 시각화 기법이 잘 적용되기 힘들다는 문제가 발생한다. 본 논문은 소스코드가 갖는 구조적인 특징을 시각화하는데 있어 필요한 절차를 제안한다. 이를 위해 본 논문은 파싱 과정을 거쳐 생성된 추상구문트리를 대상으로 프로그램의 구조특징을 표현하기 위한 자료형의 정의, 함수간 호출관계를 표현한다. 이들 정보를 바탕으로 제어 정보를 네트워크 형태로 시각화함으로써 모듈의 구조적인 특징을 개괄적으로 살펴볼 수 있는 방법을 제시한다. 본 연구의 결과는 대규모 소프트웨어의 구조적 특징을 이해하거나 변경을 관리하는 효과적인 수단으로 활용할 수 있다.

Aspect-Oriented Programming을 이용한 Source Code 분석 시스템 설계 (A Design of Source Code Analysis System Using Aspect Oriented Programming)

  • 최민용;양해술
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 추계학술발표논문집 (하)
    • /
    • pp.2107-2110
    • /
    • 2002
  • 소프트웨어를 설계, 구현하는데 있어서의 어려움이란 주변 환경이나 제반 기술 등과 같은 어려움도 있겠지만 실제 프로그래머가 작성하는 소스코드의 복잡성도 그 원인중의 하나라 할 수 있다. 이와 같은 문제의 해결을 위해서는 소스코드의 접근이나 이의 테스트를 위한 결합 등의 유연성이 높은 소프트웨어 기술이 필요한 실정이다. 이에 따라 AOP(Aspect-Oriented Programming) 기술을 이용하여 소스코드 자체의 접근 및 그의 처리를 용이하게 하여 복잡한 시스템의 개발이나 기존 시스템의 관리에 있어 효율을 높이고자 한다.

  • PDF

C 소스코드를 이용한 PAD 생성 시스템 구현 (Implementation of the PAD Generating System Based on C Source Code)

  • 천준석;임진수;우균
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 춘계학술발표대회
    • /
    • pp.1089-1092
    • /
    • 2013
  • 컴퓨터 하드웨어의 발달로 인해 하드웨어의 성능을 충분히 발휘할 수 있는 소프트웨어의 개발이 요구되고 있다. 소프트웨어가 복잡해질수록 개발 시 인적 비용, 물적 비용, 시간 비용이 증가하는데, 실제 개발 비용보다는 개발 후 유지보수에 사용되는 비용이 훨씬 크다. 유지보수는 코드 수정을 통해 이루어지는데, 다른 사람이 작성한 코드를 수정할 경우에는 코드의 이해가 요구된다. 코드는 흐름도를 이용하게 되면 좀 더 쉽게 이해할 수 있는데, 복잡한 코드를 흐름도로 작성할 경우 흐름도가 자체가 복잡해져서 코드 이해가 어려워지는 경우가 많다. 이러한 단점을 보완하기 위한 방법의 하나로 1979년 PAD가 개발되었다. 이 논문은 C 소스코드를 입력받아 PAD를 자동으로 생성하는 시스템을 제안한다. 이 시스템을 이용하면 유지보수 비용에 소비되는 시간과 노력을 절약할 수 있을 것으로 생각된다.

임베디드 시스템의 보안성 향상을 위한 LLVM 기반의 소스코드 난독화 도구 설계 (Design of Source Code Obfuscation Tool based LLVM to improve security in Embedded System)

  • 하재현;곽동규
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2022년도 추계학술발표대회
    • /
    • pp.201-203
    • /
    • 2022
  • 임베디드 시스템이 일상생활 및 각종 산업에 밀접하게 연관되어 개인 정보 및 국가 기술 등 지적 자산에 대한 보안의 필요성이 나타나고 있다. 이러한 문제점은 임베디드 시스템에 들어가는 소프트웨어의 역공학으로부터 초래된다. 따라서 본 논문은 소스 코드에 대해 제어 흐름 평탄화라는 난독화 알고리즘을 설계하는 방법을 제안한다. 이는 독자적으로 작성된 난독화 알고리즘이기 때문에 오픈 소스로 공개되어져 있는 다른 난독화 도구들에 비해 안전한 특징을 가진다. 제어 흐름 평탄화는 프로그램의 기능을 유지하면서 소스 코드의 정적 분석을 어렵게 하는 기법으로, 데이터를 탈취하려는 악의적인 행위를 사전에 예방할 수 있다. 본 논문에서 제안하는 제어 흐름 평탄화 알고리즘은 하나의 기본 블록으로 이루어진 단순한 소스 코드를 여러 개의 기본 블록으로 분할하고, 조건문을 통해 연결하는 방법을 사용하여 알고리즘의 복잡도를 높였다. 이처럼 새롭게 작성된 Pass를 통해 소스코드 난독화를 적용시켜 임베디드 시스템의 보안성을 향상시킬 수 있다.

소프트웨어 소스 코드의 저작권 관리를 위한 디지털 라이센스의 검색 (Digital License Searching for Copyright Management of Software Source Code)

  • 차병래
    • 한국콘텐츠학회논문지
    • /
    • 제7권1호
    • /
    • pp.21-31
    • /
    • 2007
  • 지적재산권 제도는 21세기 정보화 사회의 발전에 있어서도 중요한 역할을 하고 있다. 국가 경쟁력 제고를 위해서도 디지털콘텐츠에서 확대하여 소프트웨어 소스 코드에 대한 지적재산권 제도와 기술의 정비는 매우 중요한 의미를 지닌다. 소프트웨어 소스코드의 소유권 분쟁이 발생 시 소유권을 증명하기 위해서는 원본의 소프트웨어 소스코드를 판별해야만 하는 문제점을 갖고 있다. 본 연구에서는 소프트웨어 소스코드의 원본 판별을 지원하기 위한 소프트웨어 소스코드의 디지털 라이센스는 소스코드의 예약어를 파싱하여 계층구조를 갖는 XML 파일로 표현하며, 복잡한 소스코드 대신에 소프트웨어 소스코드의 아키텍처를 트리구조 형태로 표현할 수 있다. 그리고 디지털 라이센스를 검색하기 위한 색인 및 검색에 대한 연구를 수행한다.

소프트웨어 소스 코드의 저작권 관리를 위한 디지털 라이센스의 비교와 분류 그리고 크립텍스 모델 (Discrimination and Comparison of Digital License for Copyright Management of Software Source Code and CRYPTEX Model)

  • 차병래;정영기
    • 한국콘텐츠학회논문지
    • /
    • 제8권1호
    • /
    • pp.246-258
    • /
    • 2008
  • 소프트웨어 산업은 21세기 정보화 사회의 발전에 있어서도 중요한 역할을 하고 있다. 소프트웨어 소스 코드의 소유권 분쟁이 발생 시 소유권을 증명하기 위해서는 원본의 소프트웨어 소스코드를 판별해야만 하는 문제점을 갖고 있다. 본 논문에서는 소프트웨어 소스코드의 원본 판별을 지원하기 위한 소프트웨어 소스코드의 디지털 라이센스는 소스코드의 예약어를 파싱하여 계층구조를 갖는 XML 파일로 표현하며, 복잡한 소스코드 대신에 소프트웨어 소스코드의 노드 패턴과 아키텍처 패턴인 트리 구조 형태로 표현할 수 있다. 그리고 디지털 라이센스에 의한 소스코드의 분류 가능성에 대한 시뮬레이션과 크립텍스 모델을 제안한다.

공통평가기준 인증을 위한 SW의 내부 구조 및 복잡도 분석 사례에 관한 연구 (Case Study on Analysis for Well-Structured Internals and Complexity of Software for Common Criteria)

  • 최정란;서동수;배창환
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 추계학술발표대회
    • /
    • pp.642-645
    • /
    • 2014
  • 본 논문은 EAL6 수준의 공통평가기준 인증을 위해 ADV(개발) 클래스에서 ADV_INT에 대해 기술하였다. 특히, 테스트용 스마트 운영체제 소스코드 분석을 통해 구현된 내부 구조가 잘 구조화되었는지, 지나치게 복잡하지 않았는지 입증하기 위해 시도를 하였다. 다양한 소스코드 분석 도구를 통해 사이클로매틱복잡도(CyC), 정보흐름복잡도(IFC), Weighted IFC, fan-in, fan-out 등의 정보를 추출하였고, 추출된 정보를 기반으로 적용하여 수행하였다. 구조화된 정보 분석을 위해 객체지향 분석 도구를 사용한 재구조화 기법을 적용하여 수행하였다. 객체간 결합도, 팬아웃 등의 정보 등을 추출하였다. 추출된 정보를 기반으로 SW의 복잡도 및 구조적 정보를 분석한 결과 응집도 분석에 한계, TOE의 형상관리 정보 등의 부재에 따른 추출된 정보 분석의 한계, 활용된 도구의 분석 정보의 재반영 부재 및 구조적 분석 등의 한계점이 드러났다.

객체 지향 패러다임에서의 코드 재사용을 위한 응집도 레벨 식별 모범 사례 (Best Practice on identifying the level of cohesion for reusing source code in object-oriented paradigm)

  • 변은영;박보경;장우성;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 추계학술발표대회
    • /
    • pp.455-458
    • /
    • 2016
  • 소프트웨어의 재사용은 소프트웨어 개발의 품질과 생산성을 높이고 개발 비용을 절감할 수 있다. 소프트웨어 재사용을 위해서 가장 중요한 것은 소스 코드에서 재사용성이 높은 모듈을 추출하기 위해 모듈화에 적합한 소스 코드를 식별해야 한다. 이를 위해서 우리는 코드 가시화를 적용한다. 정량적 지표인 응집도 지표와 추출하여 코드의 복잡도와 재사용성을 판단한다. 본 논문에서는 객체 지향 패러다임에서 응집도를 재정의 하여 제안하고 모듈 단위를 메소드로 정의하여 모듈의 응집도를 추출한다. 이를 통해 모듈화가 가능한 코드의 재사용과 복잡한 코드의 리팩토링이 가능하도록 한다.

객체지향 관점의 결합도 & 응집도 재정의와 코드 가시화 시스템내 파서 플러그인화 구현 (Plug-in Diverse Parsers Within Code Visualization System with Redefining the Coupling and Cohesion in the Object-Oriented Paradigm)

  • 이진협;박지훈;변은영;손현승;서채연;김영철
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제6권5호
    • /
    • pp.229-234
    • /
    • 2017
  • 소프트웨어는 비가시적 특성과 기존 개발자들의 나쁜 코딩 습관인 중복된 코드, 불필요한 코드 등이 많아 복잡도가 높아져 소프트웨어의 고품질화가 저해된다. 그러므로 개발자가 소스코드의 복잡도를 쉽게 자동 식별하는 코드 가시화가 필요하다. 이를 위해, 공개 소스 기반의 가시화 도구를 구축하였다. 특히 나쁜 코드 패턴들을 식별하기 위해, 다양한 파서를 plug-in하는 방법을 제안한다. 또한 객체지향 관점에 맞는 결합도와 응집도 재정의를 통해, 자유로운 패턴을 입력하여 개발자가 원하는 나쁜 패턴을 추출하고자 한다.

정형명세 보안기능의 코드생성 도구 비교 (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