• 제목/요약/키워드: 코드 가시화

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

코드 내부 정보의 정규화 기반 효율적인 코드 정적 분석 및 가시화 (Effective code static analysis and visualization based on Normalization of internal code information)

  • 박찬솔;전병국;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2022년도 추계학술발표대회
    • /
    • pp.85-87
    • /
    • 2022
  • 고품질 코드를 위한 정적 분석은 아직도 매우 필요한 영역이며, 또한 코드의 가시화는 개발자들에게 코드의 복잡한 모듈에 대한 가이드에 필요하다. 기존의 코드 가시화는 정적 분석의 코드 내부 정보들을 DB 테이블화 및 품질 지표(CK Metrics, Coupling, # function Calls, Bed smell) 질의어화, 그리고 추출된 정보를 가시화하는 것에만 초점을 두었다. 문제는 코드 내부 정보(Class, method, parameters, etc) 테이블들에 대한 join 연산 시 엄청난 시간과 리소스가 소모된다. 이 문제를 해결하기 위해, 우리는 테이블 설계의 정규화를 제안한다. 또한 필요한 품질 지표의 질의를 통해 코드 내부 정보 추출하여 데이터 및 제어 복잡 모듈을 식별하여 refactoring 를 가이드 한다. 앞으로는 이 부분의 AI learning 을 통해 bad/good program 을 식별을 기대한다.

IDL : 데이터 처리, 분석 가시화 소프트웨어

  • 신승원;김경섭;윤태호;한명희
    • 전기의세계
    • /
    • 제53권8호
    • /
    • pp.43-47
    • /
    • 2004
  • IDL (Interactive Data Languate)은 미국의 RSI 회사 (Research Systems inc.)에서, 데이터 처리 및 분석, 가시화를 주 목적으로 개발된 응용 소프트웨어이다. IDL은 특히 복잡한 수학적 분석을 위하여 배열 개념의 연산 처리 과정으로 설계되었으며, 시각적인 표현의 구현을 위하여 데이터의 가시화에 대한 많은 기능들을 제공한다. 따라서 종래의 프로그램 언어에서 수백 라인들로 이루어진 코드를, IDL에서는 단 몇 줄의 코드 구성으로 복잡한 데이터 처리 및 가시화가 가능하다. (중략)

  • PDF

소프트웨어 가시화를 통한 품질 개선 사례 연구 (A Case Study on Improving SW Quality through Software Visualization)

  • 박보경;권하은;손현승;김영수;이상은;김영철
    • 정보과학회 논문지
    • /
    • 제41권11호
    • /
    • pp.935-942
    • /
    • 2014
  • 오늘날 소프트웨어는 규모가 크고 시장 출하 기간의 단축 상황에서도 고품질 이슈가 중요하다. 그리고 산업 현장에서는 빠른 개발을 위해 아직도 코드 중심 개발에 초점을 두고 있다. 따라서 1) 개발자의 나쁜 코드 개발 습관의 개선 측면 그리고 2) 소프트웨어 비설계화, 비문서화 및 코드 내부 구조 비가시화의 유지보수 측면 등을 해결해야 한다. 이에 코드 가시화의 필요성이 대두되고 있다. 본 논문에서는 객체지향 코드의 내부 구조 시각화 방법을 위해 Tool-Chain을 이용한 내부 구조 가시화 방법과 품질 개선 절차를 제안한다. 사례로써 NIPA의 SW Visualization 기법을 실제 객체 코드에 적용한다. 먼저 객체지향 코드의 모듈 단위를 클래스로 정의하고, 코드의 정량적 분석 및 가시화를 통해 코드의 복잡도(Code Complexity)를 줄이고자 하였다.

정적 코드 내부 정보의 테이블 정규화를 통한 품질 메트릭 지표들의 가시화를 위한 추출 메커니즘 (Quality Visualization of Quality Metric Indicators based on Table Normalization of Static Code Building Information)

  • 박찬솔;문소영;김영철
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제12권5호
    • /
    • pp.199-206
    • /
    • 2023
  • 현대 소프트웨어의 규모는 커지고 있다. 이에 따라 고품질 코드를 위한 정적 분석의 중요성이 커지고 있다. 코드에 대한 정적 분석을 통해 결함과 복잡도를 식별하는 것이 필요하다. 이를 가시화하여 개발자 및 이해 관계자가 알기 쉽게 가이드도 필요하다. 기존 코드 가시화 연구들은 정적 분석의 코드 내부 정보들을 데이터베이스 테이블에 저장하여 및 품질 지표(CK Metrics, Coupling, Number of function calls, Bed smell)에 대한 계산을 질의어화 하고 추출된 정보를 가시화하는 과정을 구현하는 것에만 초점을 두었다. 이러한 연구들은 방대한 코드로부터 추출한 정보를 이용하여 코드를 분석할 때 많은 시간과 자원이 소모된다는 한계점이 있다. 또한 각 코드 내 정보 테이블들이 정규화되지 않았기 때문에 코드 내부의 정보(클래스, 함수, 속성 등)들에 대한 테이블 조인 연산 시 메모리 공간과 시간 소비가 발생할 수 있다. 이러한 문제들을 해결하기 위해, 데이터베이스 테이블의 정규화된 설계와 이를 통한 코드 내부의 품질 메트릭 지표에 대한 추출 및 가시화 메커니즘 제안한다. 이러한 메커니즘을 통해 코드 가시화 공정이 최적화되고, 개발자가 리팩토링해야 할 모듈을 가이드 할 수 있을 것으로 기대한다. 앞으로는 부분 학습도 시도할 예정이다.

소프트웨어 변경 이력의 최근 변경을 클래스 다이어그램으로 가시화하는 도구 (A Class Diagramming Tool for Visualizing the Latest Revision of Software Change History)

  • 심재경;조희태;박종열;이선아
    • 정보과학회 논문지
    • /
    • 제45권2호
    • /
    • pp.150-156
    • /
    • 2018
  • 소프트웨어 가시화 연구는 개발자들이 소프트웨어 시스템을 이해하고 코드 변경을 수행할 때 도움을 줄 수 있다는 점에서 중요하다. 최근 제시된 상향식 소프트웨어 가시화 도구들은 개발자가 직접 작업하는 코드 정보만을 보여주는 이점으로 개발자들의 작업에 도움을 줄 수 있다는 효과를 입증하고 있다. 하지만 이러한 도구들은 개발자가 탐색한 코드만 한정되게 보여주는 약점이 있다. 본 논문은 상향식 가시화 도구에서 연관이 되는 코드 정보를 제공하여 코드 탐색을 돕기 위하여 소프트웨어 개정 이력을 클래스 다이어그램으로 보이는 도구를 제시한다. 제시 도구는 개발자들이 커밋한 코드 정보를 한 번의 클릭으로 클래스 다이어그램으로 보여줌으로써, 개발자들의 코드 변경에 대한 빠른 이해를 돕는다. 또한 본 논문은 사례 연구를 통하여 개발자들이 수일동안 지속적인 변경 작업을 수행할 때 제시 도구가 유용할 수 있음을 보인다.

SW 가시화 기반 리펙토링 기법 적용을 통한 정적 코드 복잡도 개선 (Improving Static Code Complexity with Refactoring technique based on SW visualization.)

  • 강건희;손현승;김영수;박용범;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 추계학술발표대회
    • /
    • pp.650-653
    • /
    • 2014
  • 기존의 소프트웨어 개발은 SW품질을 중요시 하지만, 고품질에 대한 문제가 아직도 존재한다. 또한 기존 레가시 시스템는 개발자나 설계의 부재 경우가 많고, 코드의 내부 복잡도와 모듈간의 결합도가 높을 가능성이 높다. 따라서 코드 가시화를 통한 복잡도 개선은 고품질화과 더불어 코드 모듈의 재사용과 유지보수등과 직접적 관련성이 있다. 본 논문은 기존 SW가시화용 자동 Tool Chain 기반에서 여러 리펙토링 방법 절차 적용으로 복잡도 개선을 제안 한다. 이런 코드 가시화가 결과적으로 타깃의 결합도를 줄일 수 있다. 기존의 레가시 코드에 자동 Tool chain적용은 고품질 적용이 충분히 예상된다.

전력 소모 최소화를 통한 성능 개선의 코드 가시화 방법 (Code visualization approach for performance improvement via mlnlmlzlng power dissipation)

  • 안현식;박보경;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2020년도 춘계학술발표대회
    • /
    • pp.375-376
    • /
    • 2020
  • 높은 사양이 필요한 하드웨어 기반의 모바일 및 IoT 임베디드 시스템은 저전력과 성능에 중요한 이슈를 갖고 있다. 이는 전력 소비로 발열량 증가 및 기기의 수명 단축 문제가 발생된다. 이러한 환경에서 소프트웨어도 제한된 전력, 메모리 등에서 안정적인 동작을 수행해야 하므로 디바이스의 소비전략이 증가한다. 이를 해결하고자, 코드 관점에서 전력 소모 최소화를 통한 소프트웨어 성능 개선 가시화 방법을 제안한다. 이는 코드 가시화를 통해 복잡한 모듈을 식별하고, 저전력 코드 패턴을 적용하여 소프트웨어 성능을 개선한다. 이런 코드로 소비전력을 감소 및 성능을 개선함으로써 코드의 품질을 최적화 할 수 있다.

코드 복잡도 해결을 위한 Python 정적 분석기 개발 (Python's Static Analyzer for solving Code Complexity)

  • 홍제성;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2020년도 추계학술발표대회
    • /
    • pp.729-732
    • /
    • 2020
  • 앞으로 4 차 산업혁명 시대에 많은 인공지능 관련 소프트웨어 및 데이터 기반 소프트웨어가 개발이 필수적이다. 문제는 이런 소프트웨어 관련 품질을 고려하지 않고 있다. 또한 많은 Python 관련 공개 소프트웨어에 대해 품질 보장이 불가능하다. 이를 위해, 코드 가시화 메커니즘, 인공지능 관련 코드 품질을 높이기 위해 AI 관련 Python 코드 복잡도 기반 고품질화 및 코드 가시화 메커니즘을 제안한다. 또한 기존의 복잡도를 측정하는 품질 메트릭스 중 하나인 McCabe's Cyclomatic 복잡도의 개선을 제안한다. 기존의 복잡도 공식에 응집도, 결합도를 가중치로 적용하여 개선된 복잡도를 계산한다. 소프트웨어의 내부 구조 및 관계와 복잡도 정보를 가시화하여 소프트웨어의 품질 향상에 기여한다.

배드 스멜 코드 추출을 위한 코드 가시화 프로세스 구축 (Building a Code Visualization Process to Extract Bad Smell Codes)

  • 박지훈;박보경;김기두;김영철
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제8권12호
    • /
    • pp.465-472
    • /
    • 2019
  • 오늘날 많은 영역에서 소프트웨어의 사용 범위가 넓어짐에 따라 좋은 소프트웨어 (Good Software)의 개발은 매우 중요하다. 하지만 현실은 소프트웨어 개발의 모든 단계에서 요구사항의 변경이 자주 발생한다. 또한 빈번한 변경으로 인해 설계 복잡성이 증가하여 원래의 설계 목표보다 소프트웨어 품질이 저하될 수 있다. 이러한 문제 해결을 위해, 배드 스멜(Bad Smell) 코드 추출을 위한 코드 가시화 프로세스를 제안한다. 이 방법은 마틴 파울러의 배드 스멜을 기반으로 소스 코드를 식별하여 리팩토링 영역을 가시화 한다. 잦은 요구사항의 변경에도 리팩토링을 통한 소프트웨어의 설계 개선을 기대한다.

성능 저하 식별을 통한 저전력 개선용 코드 가시화 방법 (Code Visualization Approach for Low level Power Improvement via Identifying Performance Dissipation)

  • 안현식;박보경;김영철;김기두
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제9권10호
    • /
    • pp.213-220
    • /
    • 2020
  • 높은 사양이 필요한 하드웨어 기반의 모바일 및 IoT 임베디드 시스템은 저전력과 성능에 중요한 이슈를 갖고 있다. 이는 전력 소비로 발열량 증가 및 기기의 수명 단축 문제가 발생된다. 이러한 환경에서 소프트웨어도 제한된 전력, 메모리 등에서 안정적인 동작을 수행해야하므로 디바이스의 소비전력이 증가한다. 이를 해결하고자, 코드 관점에서 성능을 저하시키는 모듈을 식별하고, 그 모듈의 전력 최소화를 통한 성능 개선 가시화 방법을 제안한다. 이는 코드 가시화를 통해 복잡한 모듈(특히 Cyclomatic complexity, Coupling & Cohesion)을 식별하고, 저전력 코드 패턴화와 성능 코드를 간결화 한다. 이런 코드로 소비전력을 감소 및 성능 개선 함으로써 코드의 품질을 최적화 할 수 있다.