• 제목/요약/키워드: Source Code Metrics

검색결과 20건 처리시간 0.023초

웹 어플리케이션의 복잡도 예측에 관한 연구 (A Study of Estimation for Web Application Complexity)

  • 오성균;김미진
    • 한국컴퓨터정보학회논문지
    • /
    • 제9권3호
    • /
    • pp.27-34
    • /
    • 2004
  • 개발 패러다임이 점차 복잡한 웹 환경으로 전환되면서 복잡도에 대한 연구가 다시 활발해지고 있으나 아직 웹 어플리케이션의 구조나 복잡도 측정 매트릭에 정립된 이론이 부족한 실정이다. 또한 전통적 복잡도를 측정하는 프로그램 규모(LOC)나 순환복잡도 매트릭은 구현 후에나 알 수 있어 소프트웨어 개발주기 초기의 분석 및 설계 단계에는 큰 도움을 주지 못하고 있다. 본 연구에서는 실무에서 사용되는 6개 웹 프로젝트에 복잡도 인디케이터를 적용하여 결함 가능성이 높은 어플리케이션을 추출한다 추출한 61개의 프로그램을 대상으로 복잡도와 클래스 수 및 메소드 수에 대한 선형적 상관관계를 제안함으로써 웹어플리케이션의 복잡도를 구현 전에 미리 예측 가능하도록 하여 개발 프로세스의 인적 자원 관리나 비용 예측에 기여하고자 한다.

  • PDF

프로그램의 효율성 측정 방법과 간소화 (Efficiency Measurement Method and Simplification of Program)

  • 양해술
    • 한국정보처리학회논문지
    • /
    • 제5권1호
    • /
    • pp.49-62
    • /
    • 1998
  • 소프트웨어 대한 사용자의 요구를 충족시키기 위해 많은 기능을 가지는 방대한 규모의 소프트웨어가 개발되고 있다. 그러나 일반적으로 사용자는 소프트웨어의 부분적인 기능만을 사용하는 경우가 대부분이다. 많은 기능을 가지고 있는 소프트웨어에서 필요한 기능만을 남기고 불필요한 기능을 제거하여 구축할 경우 프로그램의 전체 사이즈가 줄어 실행 효율이 향상되고 그 프로그램을 유사 시스템에 재사용할 수 있으므로 결과적으로 소프트웨어의 품질을 높일 수 있게 된다. 소프트웨어의 품질에 관한 국제표준인 ISO/IEC 9126에서는 기능성, 신뢰성, 사용성, 효율성, 보수성, 이식성 등의 6항목을 정의하고 있다. 본 연구에서는 품질특성 중 효율성에 초점을 맞추어 효율성의 측정을 위한 외부특성과 내부특성에 관련된 메트릭스를 제안하고 효율성을 향상시키기 위한 기본적인 방안으로 소스 코드에 대한 간소화 방안을 제안하였다. 또한, 제안된 효율성에 메트릭스에 대해 실제 개발 프로젝트에 적용하여 평가 결과를 기술하고 문제점과 개선방안을 예시하였다.

  • PDF

이중 Viterbi 복호기를 가지는 반율 공간-주파수 부호화된 직교 주파수분할다중화 (A Half-Rate Space-Frequency Coded OFDM with Dual Viterbi Decoder)

  • 강석근
    • 정보처리학회논문지C
    • /
    • 제13C권1호
    • /
    • pp.75-82
    • /
    • 2006
  • 본 논문에서는 이중 Viterbi 복호기를 가지는 공간-주파수 부호화된 직교 주파수분할다중화 방식을 제안하고 분석한다. 여기서는 이진 정보원 부호를 컨볼루션 부호화한 후 서로 독립적인 두 개의 반을 직교 주파수분할다중화 심볼이 생성된다. 수신기는 복조된 신호를 이중 Viterbi 복호기를 이용하여 독립적으로 복호하고, 이들의 경로 메트릭을 비교한다. 따라서 기존 시스템에서의 복구된 이진 데이터는 단순한 Viterbi 복호기의 출력으로 나타나는 반면 제안된 방식에서는 분절길이 내에서 큰 경로 메트릭을 가지는 부호열의 조합이 된다. 그 결과, 제안된 공간-주파수 부호화된 직교 주파수분할다중화 방식은 기존의 시스템에 비하여 모든 신호대 잡음비 영역에서 향상된 성능을 갖는다.

Extracting the Source Code Context to Predict Import Changes using GPES

  • Lee, Jaekwon;Kim, Kisub;Lee, Yong-Hyeon;Hong, Jang-Eui;Seo, Young-Hoon;Yang, Byung-Do;Jung, Woosung
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제11권2호
    • /
    • pp.1234-1249
    • /
    • 2017
  • One of the difficulties developers encounter in maintaining tasks of a large-scale software system is the updating of suitable libraries on time. Developers tend to miss or make mistakes when searching for and choosing libraries during the development process, or there may not be a stable library for the developers to use. We present a novel approach for helping developers modify software easily and on time and avoid software failures. Using a tool previously built by us called GPES, we collected information of projects, such as abstract syntax trees, tokens, software metrics, relations, and evolutions, for our experiments. We analyzed the contexts of source codes in existing projects to predict changes automatically and to recommend suitable libraries for the projects. The collected data show that researchers can reduce the overall cost of data analysis by transforming the extracted data into the required input formats with a simple query-based implementation. Also, we manually evaluated how the extracted contexts are similar to the description and we found that a sufficient number of the words in the contexts is similar and it might help developers grasp the domain of the source codes easily.

재사용가능한 클래스 후보자들의 품질 메트릭들에 관한 연구 (A study on Quality Metrics of Reusable Classes Candidate)

  • 김재생;송영재
    • 한국정보처리학회논문지
    • /
    • 제4권1호
    • /
    • pp.107-117
    • /
    • 1997
  • 소프트웨어 품질 평가는 개발 중인 시스템이나 완성된 시스템의 품질을 평가하여 문제점을 수정하고, 기존의 원시코드에서 재사용가능한 부품을 추출하는 등 여러 연 구 분야에 이용되어왔다. 본 연구에서는 구현한 재사용 검색 시스템(KHR System)[11] 을 통해 나온 클래스 후보자들에게 재사용성 여부를 측정할 수 있는 품질 평가에 대 한 객관적인 추정 함수들을 제안, 적용하여 가장 적절한 후보자를 선택하도록 하였 다. 이 논문에서 제안한 클래스 후보자들에 대한 정량적인 품질 측정은 재사용하고자 하는 후보자 클래스들을 비교 평가할 수 있다는 장점을 가지고 있다.

  • PDF

Benchmarking of BioPerl, Perl, BioJava, Java, BioPython, and Python for Primitive Bioinformatics Tasks and Choosing a Suitable Language

  • Ryu, Tae-Wan
    • International Journal of Contents
    • /
    • 제5권2호
    • /
    • pp.6-15
    • /
    • 2009
  • Recently many different programming languages have emerged for the development of bioinformatics applications. In addition to the traditional languages, languages from open source projects such as BioPerl, BioPython, and BioJava have become popular because they provide special tools for biological data processing and are easy to use. However, it is not well-studied which of these programming languages will be most suitable for a given bioinformatics task and which factors should be considered in choosing a language for a project. Like many other application projects, bioinformatics projects also require various types of tasks. Accordingly, it will be a challenge to characterize all the aspects of a project in order to choose a language. However, most projects require some common and primitive tasks such as file I/O, text processing, and basic computation for counting, translation, statistics, etc. This paper presents the benchmarking results of six popular languages, Perl, BioPerl, Python, BioPython, Java, and BioJava, for several common and simple bioinformatics tasks. The experimental results of each language are compared through quantitative evaluation metrics such as execution time, memory usage, and size of the source code. Other qualitative factors, including writeability, readability, portability, scalability, and maintainability, that affect the success of a project are also discussed. The results of this research can be useful for developers in choosing an appropriate language for the development of bioinformatics applications.

재사용 모듈 추출을 위한 오픈 소스 기반 소프트웨어 시스템 구축 (Constructing an Open Source Based Software System for Reusable Module Extraction)

  • 변은영;박보경;장우성;김영철;손현승
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제23권9호
    • /
    • pp.535-541
    • /
    • 2017
  • 소프트웨어 시장 규모가 확대되면서 다양한 요구사항을 만족시키는 대규모 소프트웨어가 개발되고 있다. 이로 인해 소프트웨어 복잡도가 증가하게 되고 품질 관리는 어려워졌다. 특히, 레거시 시스템의 개선 및 새로운 시스템 개발 환경에서 재사용은 중요하다. 이 논문에서는 품질을 인증 받은 모듈을 재사용하는 방법을 제안한다. 재사용 적용 레벨은 코드 영역(메소드, 클래스, 컴포넌트), 프로젝트 도메인, 비즈니스로 나누어진다. 이 논문에서는 소프트웨어 복잡성을 측정하는 결합도와 응집도 기반의 재사용 메트릭과 메소드와 클래스 레벨에 따라 "재사용에 적합한 모듈 덩어리"를 시각화하는 재사용 적합 모듈 추출 메카니즘을 제안한다. 레거시 프로젝트에 역공학 기법을 적용하여 어떤 모듈/객체/덩어리가 재사용할 수 있는 지를 식별하고 확장 시스템을 개발하거나 유사한 새로운 시스템을 개발하기 위해 재사용한다면 소프트웨어의 신뢰성을 보장하고 소프트웨어 개발 단계에서 필요한 시간과 비용을 절감시킬 수 있다.

객체지향 역공학을 위한 소프트웨어 복잡도 측정 기법 (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++ 환경에서 일관성 있고 정확한 결과를 보여준다.

소스코드의 분석을 통한 알고리즘 레벨에서의 소프트웨어 복잡도 측정 방법 (The Software Complexity Estimation Method in Algorithm Level by Analysis of Source code)

  • 임웅;남정학;심동규;조대성;최웅일
    • 대한전자공학회논문지SP
    • /
    • 제47권5호
    • /
    • pp.153-164
    • /
    • 2010
  • 프로그램은 실행파일 내의 각 명령어를 수행함으로써 전력을 소비한다. 소비 전력은 복잡도와 비례하기 때문에 프로그램의 복잡도를 측정함으로써 예측될 수 있다. 일반적으로 소프트웨어의 복잡도는 마이크로프로세서 시뮬레이터를 사용하여 측정한다. 그러나 시뮬레이터를 사용한 복잡도 측정방법은 하드웨어를 트랜지스터 레벨과 같은 낮은 레벨에서 모델링하기 때문에 수행시간이 오래 걸리고, 단순히 정량적 측정치만을 제공한다. 본 논문에서는 소프트웨어의 최상위 레벨인 프로그램의 소스코드를 분석하고, 복잡도 매트릭을 생성하여 프로그램 전체에 대한 복잡도를 수식화하여 표현하는 방법을 제안한다. 또한 복잡도 매트릭을 함수 단위로 생성함으로써 연산이 집중되는 모듈에 대한 세분화된 정보를 제공할 수 있다. 제안한 알고리즘의 성능분석은 게이트 레벨 마이크로프로세서 시뮬레이터인 SimpleScalar와의 비교를 통해서 수행하였다. 분석을 위해 사용된 소프트웨어는 최신 비디오코덱인 H.264/AVC에서 사용되는 $4{\times}4$ 정수변환, 화면 내 예측, 화면 간 예측 모듈이다. 각각의 소프트웨어에 대하여 정량적으로 측정된 성능 분석을 위하여 입력된 각 모듈에 대한 실행 명령어의 수를 비교하였으며, 정확도는 SimpleScalar를 통하여 측정된 시뮬레이션 결과 대비 약 11.6%, 9.6%, 3.5%의 오차를 보였다.

교차 계층 설계 기법을 사용한 새로운 AODV 라우팅 프로토콜 설계 및 성능평가 (Performance Evaluation of the new AODV Routing Protocol with Cross-Layer Design Approach)

  • 장재신;위성홍
    • 한국정보통신학회논문지
    • /
    • 제24권6호
    • /
    • pp.768-777
    • /
    • 2020
  • 본 논문에서는 이동 애드혹 네트워크에서 널리 사용되는 AODV 라우팅 프로토콜과 통신 노드의 이동성 때문에 발생하는 통신 경로 단절 등의 문제를 해결하기 위해 다중 경로설정을 지원하는 AODV 기법을 기반으로 개선된 다양한 연구 결과들을 분석한다. 그리고 AODV 기법이 사용하는 홉 기반 라우팅 기법의 문제점을 분석하고, 이를 개선하기 위해 홉 수를 주 메트릭으로 사용하면서 보조 메트릭으로 경로 지연시간의 합을 사용하는 새로운 C-AODV 라우팅 프로토콜을 설계하고, NS-3 네트워크 시뮬레이터에 구현하여 성능평가를 수행한다. 컴퓨터 시뮬레이션 성능평가 결과를 토대로 C-AODV 기법이 기존 AODV 기법과 비교하여 성능이 어느 정도 개선되는지 비교 분석하고 앞으로 개선할 사항 등을 제시한다.