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

검색결과 76건 처리시간 0.034초

소스코드의 보안성 메트릭 설계에 관한 연구 (A Study on the Design of Security Metrics for Source Code)

  • 서동수
    • 정보보호학회논문지
    • /
    • 제20권6호
    • /
    • pp.147-155
    • /
    • 2010
  • 소스코드의 정적분석 기술은 소스코드 자체에 내재된 취약성을 찾는데 활용되는 중요한 기술로 인식되고 있다. 본 논문은 정보시스템의 소스코드 보안성 수준을 평가하는 방법으로 정적분석 결과인 소스코드의 취약성 정보와 프로그램이 처리하는 정보의 중요도를 활용하는 평가 메트릭의 설계 및 활용을 소개한다. 소스코드 보안성 메트릭은 소스코드의 취약점 수준을 개발 과정에서 미리 파악할 수 있도록 도움을 준다는 측면에서 평가자와 개발자 모두가 활용할 수 있다. 특히 평가자는 보안 메트릭을 통해 소스코드의 성격과 요구되는 정보의 보안수준에 따라 소스코드의 보안 수준을 점검하며, 코드 검수에 활용할 수 있다.

LEA 코드를 위한 코드 스멜 관점에서 메트릭 접근 (Metrics Approach in aspect of Code Smell for LEA Code)

  • 홍진근
    • 한국인터넷방송통신학회논문지
    • /
    • 제24권4호
    • /
    • pp.49-55
    • /
    • 2024
  • 코드 스멜은 Kent Beck에 의해 사용된 개념으로, 잠재적인 품질 문제를 나타내며 리팩토링의 필요성을 제시한다. 본 논문은 LEA 코드베이스에서 코드 스멜을 평가하며, 분류와 관련된 메트릭에 중점을 둔다. 연구에서는 LEA_core.c와 LEA.cpp를 분석하여 코드 품질과 복잡성의 차이를 강조한다. 또한 연구에서는 LOC, NOM, NOA, CYCLO, MAXNESTING, FANOUT와 같은 메트릭을 사용하여 크기, 복잡성, 결합도, 캡슐화, 상속, 응집도를 평가한다. 연구 결과에서는 LEA_core.c가 LEA.cpp에 비해 더 복잡하고 유지보수가 어려운 것으로 나타났다. 우리는 향후 연구에서 실시간 코드 스멜 탐지 및 리팩토링 제안을 위한 자동화 도구를 개발할 것이다.

Metrics for Code Quality Check in SEED_mode.c

  • Jin-Kuen Hong
    • International Journal of Internet, Broadcasting and Communication
    • /
    • 제16권3호
    • /
    • pp.184-191
    • /
    • 2024
  • The focus of this paper is secure code development and maintenance. When it comes to safe code, it is most important to consider code readability and maintainability. This is because complex code has a code smell, that is, a structural problem that complicates code understanding and modification. In this paper, the goal is to improve code quality by detecting and removing smells existing in code. We target the encryption and decryption code SEED.c and evaluate the quality level of the code using several metrics such as lines of code (LOC), number of methods (NOM), number of attributes (NOA), cyclo, and maximum nesting level. We improved the quality of SEED.c through systematic detection and refactoring of code smells. Studies have shown that refactoring processes such as splitting long methods, modularizing large classes, reducing redundant code, and simplifying long parameter lists improve code quality. Through this study, we found that encryption code requires refactoring measures to maintain code security.

A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques

  • Agnihotri, Mansi;Chug, Anuradha
    • Journal of Information Processing Systems
    • /
    • 제16권4호
    • /
    • pp.915-934
    • /
    • 2020
  • Software refactoring is a process to restructure an existing software code while keeping its external behavior the same. Currently, various refactoring techniques are being used to develop more readable and less complex codes by improving the non-functional attributes of software. Refactoring can further improve code maintainability by applying various techniques to the source code, which in turn preserves the behavior of code. Refactoring facilitates bug removal and extends the capabilities of the program. In this paper, an exhaustive review is conducted regarding bad smells present in source code, applications of specific refactoring methods to remove that bad smell and its effect on software quality. A total of 68 studies belonging to 32 journals, 31 conferences, and 5 other sources that were published between the years 2001 and 2019 were shortlisted. The studies were analyzed based on of bad smells identified, refactoring techniques used, and their effects on software metrics. We found that "long method", "feature envy", and "data class" bad smells were identified or corrected in the majority of studies. "Feature envy" smell was detected in 36.66% of the total shortlisted studies. Extract class refactoring approach was used in 38.77% of the total studies, followed by the move method and extract method techniques that were used in 34.69% and 30.61% of the total studies, respectively. The effects of refactoring on complexity and coupling metrics of software were also analyzed in the majority of studies, i.e., 29 studies each. Interestingly, the majority of selected studies (41%) used large open source datasets written in Java language instead of proprietary software. At the end, this study provides future guidelines for conducting research in the field of code refactoring.

소프트웨어 신뢰성 예측을 위한 객체지향 척도 분석 (Analysis of Object-Oriented Metrics to Predict Software Reliability)

  • 이양규
    • 한국신뢰성학회지:신뢰성응용연구
    • /
    • 제16권1호
    • /
    • pp.48-55
    • /
    • 2016
  • Purpose: The purpose of this study is to identify the object-oriented metrics which have strong impact on the reliability and fault-proneness of software products. The reliability and fault-proneness of software product is closely related to the design properties of class diagrams such as coupling between objects and depth of inheritance tree. Methods: This study has empirically validated the object-oriented metrics to determine which metrics are the best to predict fault-proneness. We have tested the metrics using logistic regressions and artificial neural networks. The results are then compared and validated by ROC curves. Results: The artificial neural network models show better results in sensitivity, specificity and correctness than logistic regression models. Among object-oriented metrics, several metrics can estimate the fault-proneness better. The metrics are CBO (coupling between objects), DIT (depth of inheritance), LCOM (lack of cohesive methods), RFC (response for class). In addition to the object-oriented metrics, LOC (lines of code) metric has also proven to be a good factor for determining fault-proneness of software products. Conclusion: In order to develop fault-free and reliable software products on time and within budget, assuring quality of initial phases of software development processes is crucial. Since object-oriented metrics can be measured in the early phases, it is important to make sure the key metrics of software design as good as possible.

($RESORT^{TM}$ 자바 품질 메트릭스 솔루션 (Solutions of $RESORT^{TM}$ Java Quality Metrics)

  • 이헌기
    • 한국IT서비스학회:학술대회논문집
    • /
    • 한국IT서비스학회 2002년도 추계학술대회
    • /
    • pp.203-208
    • /
    • 2002
  • $RESORT^{TM}$ 품질 솔루션은 Java 언어로 작성된 소프트웨어로부터 품질을 측정하고 평가하기 위한 자바 품질 메트릭스 자동화 도구로서 $RESORT^{TM}-Java$ 제품군 중 하나이다. 본 논문에서는 System/Package/Class 단위로 Java Code의 Product Metrics등을 측정하여 소프트웨어 품질을 평가하는데 사용되는 도구들을 기술한다. 이 도구들은 5 종류의 소프트웨어 메트릭스 솔루션을 제공한다: OO Metrics, Package Metrics, Halstead Metrics, Quality Metrics, System Level Metrics. 소프트웨어 메트릭스는 전체 개발 비용의 60% 이상을 차지하는 유지보수의 비용을 줄이고, 고품질의 소프트웨어를 개발하기 위해서 반드시 필요하다. 또한, 소프트웨어의 생산성을 높일 수 있을 뿐 아니라 신뢰성 향상, 그리고 유지보수에 대한 효율성을 향상시킬 수 있다.

  • PDF

BIBD 기반의 멀티미디어 핑거프린팅 코드의 공모코드들에 대한 공모자 추적 (Colluders Tracing on the Collusion Codes of Multimedia Fingerprinting Codes based on BIBD)

  • 이강현
    • 전자공학회논문지CI
    • /
    • 제46권6호
    • /
    • pp.79-86
    • /
    • 2009
  • 본 논문에서는 BIBD 기반의 멀티미디어 핑거프린팅 코드에 대한 공모코드들의 성능측정과 효용성 평가를 하여, 공모자 전체를 추적할 수 알고리즘을 제안한다. 공모코드들 중에는 "all 0" 또는 "all 1"의 비트 열이 생성되고, 또한 사용자의 핑거프린팅 코드와 동일한 공모코드, 비트반전 된 공모코드가 생성이 되어 공모자가 비공모자로 판정이 되거나, 비공모자가 공모자로 판정이 되는 경우가 발생한다. 따라서 공모자의 추적에 어려움이 발생한다. 본 논문에서 공모코드들의 성능측정 및 효용성 평가를 하기 위하여, 기존의 논문에서 부분적으로 처리되었던 평균화공격에 total solution으로 논리적 공모연산을 추가하여 실험하였다. 제안된 본 논문의 BIBD 기반의 멀티미디어 핑거프린팅 코드에 대한 공모공격 코드 생성의 성능측정, 효용성 평가의 실험을 통하여 공모자 추적이 100% 이루어짐을 확인하였다.

소프트웨어 개발보안 활동을 위한 보안메트릭 정의 (Definition of Security Metrics for Software Security-enhanced Development)

  • 서동수
    • 인터넷정보학회논문지
    • /
    • 제17권4호
    • /
    • pp.79-86
    • /
    • 2016
  • 2012년 시행된 소프트웨어 개발보안 제도에 힘입어 시큐어코딩은 개발자들에게 정보시스템 구축시 보안성을 향상시킬 수 있는 기법으로 인식되고 있다. 제도의 확산에도 불구하고 지속적인 보안성 향상에 대한 관리는 개발보안 제도에서 간과된 부분이기도 하다. 본 논문은 품질관리 시각에서 보안성과 관련한 시큐어코딩의 특징을 조명한다. 또한, 보안 메트릭의 제시를 통해 구현과 유지 보수 활동을 자연스럽게 연계시키는 방법과 보안 메트릭을 활용하는 방법을 제안함으로써 소스코드의 관리에 도움을 주고자 한다.

Design and Implementation of a Data Extraction Tool for Analyzing Software Changes

  • Lee, Yong-Hyeon;Kim, Kisub;Lee, Jaekwon;Jung, Woosung
    • 한국컴퓨터정보학회논문지
    • /
    • 제21권8호
    • /
    • pp.65-75
    • /
    • 2016
  • In this paper, we present a novel approach to help MSR researchers obtain necessary data with a tool, termed General Purpose Extractor for Source code (GPES). GPES has a single function extracts high-quality data, e.g., the version history, abstract syntax tree (AST), changed code diff, and software quality metrics. Moreover, features such as an AST of other languages or new software metrics can be extended easily given that GPES has a flexible data model and a component-based design. We conducted several case studies to evaluate the usefulness and effectiveness of our tool. Case studies show that researchers can reduce the overall cost of data analysis by transforming the data into the required formats.

Java프로그램에 대한 품질 및 복잡도 메트릭스 평가시스템 구현 (Development of A System for Quality Assessment and Complexity Metrics of Java programs)

  • 이상범;김경환
    • 한국산학기술학회논문지
    • /
    • 제4권4호
    • /
    • pp.346-351
    • /
    • 2003
  • 소프트웨어의 규모가 커지고 복잡해지고 있음에도 불구하고 한편으로는 개발기간의 단축, 코스트 절감, 생산성, 품질 향상 등이 요구되어지고 있다. 질 좋고 효율적인 소프트웨어를 구현하기 위해 예전부터 수많은 기법과 방법들이 제안되었고 구현되었다. 대표적인 것으로 다양한 CASE도구, 프로세스 평가모델(CMM, SPICE, ISO9000), 메트릭스 등이 있다. 하지만 이러한 개발 지원 방법들은 개발자 각 개인의 생산성을 위해 지원하기보다는 주로 프로젝트 전체 관리를 위해서 사용되어지고 있는 것이 일반적이다. 따라서 이러한 기법과 방법들을 개별 프로그래머의 개발과정에 사용하는 것은 부적절하다. 본 연구에서는 객체지향적 소프트웨어 개발방법론을 적용한 개발 프로세스를 개발조직의 평가개선보다는 개발자 개인의 작업향상과 품질향상에 위한 기법을 개발하였다. 특히 개발프로세스 중 코딩 단계에서 생산되는 생산물(source code)의 품질평가를 할 수 있는 평가 시스템을 제작하였다. 구체적으로 이 평가 시스템은 Java프로그램에 대한 품질평가로서 단순히 메트릭스 값만을 보여 주는 것이 아니라, 개발자가 작성한 소스코드, 클래스(class)의 계층구조를 동시에 보여준다.

  • PDF