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

검색결과 319건 처리시간 0.032초

효율적인 소프트웨어 제품라인 회귀시험을 위한 자동화된 코드 기반 시험 방법 (Efficient Code-based Software Product Line Regression Testing)

  • 정필수;강성원
    • 소프트웨어공학소사이어티 논문지
    • /
    • 제29권2호
    • /
    • pp.1-6
    • /
    • 2020
  • 소프트웨어 제품라인 개발은 제품군의 개발을 위하여 공통적인 부분과 가변적인 부분을 분리 개발함으로써 중복개발을 피하여 효율적으로 제품군을 개발하는 개발 패러다임이다. 소프트웨어 제품라인 개발에서 제품군을 생성하기 위해 사용되는 소스코드를 제품라인 코드 베이스라고 부르고, 제품라인 코드 베이스가 변경되어 제품군의 제품들이 영향을 받을 때 영향 받은 제품들을 시험하는 활동을 제품라인 회귀시험이라고 한다. 이 때 제품군의 각 제품을 개별적으로 시험하는 대신, 변경과 무관한 시험을 파악하여 피할 수 있다면 효율적인 제품라인 회귀시험이 가능해 질 것이다. 본 논문은 이런 방법으로 소프트웨어 제품라인 회귀시험을 효율적으로 수행하는 자동화된 방법인 SRTS를 소개한다. 이 방법은, 먼저 제품라인 코드 베이스와 시험 항목을 공통성과 가변성을 기반으로 나누고 변경에 영향을 받는 시험 항목을 식별하여 선택한 후, 선택된 시험 항목만을 재실행함으로써 불필요한 시험을 줄인다.

소스코드와 실행코드의 상관관계 분석을 통한 최악실행시간 측정 방법 (Measuring Method of Worst-case Execution Time by Analyzing Relation between Source Code and Executable Code)

  • 서용진;김현수
    • 인터넷정보학회논문지
    • /
    • 제17권4호
    • /
    • pp.51-60
    • /
    • 2016
  • 내장 소프트웨어는 실시간성 및 실행 환경으로부터의 독립성을 요구사항으로 갖는다. 실시간성 요구사항은 탑재된 태스크의 최악 실행 시간으로부터 영향을 받는다. 따라서 실시간성을 보장하기 위해서는 정적 분석 기반의 최악 실행 시간 분석 방법을 사용하여 프로그램의 최악 실행 시간을 파악하여야 한다. 그러나 기존의 최악 실행 시간 분석은 실행 환경으로부터 독립성을 고려하지 않는다. 이에 우리는 실행 환경으로부터 독립성을 제공하기 위해 소스코드로부터 실행 시간을 측정하는 방법을 제시한다. 이를 위해 실행 코드가 아닌 소스코드로부터 생성된 제어 흐름 그래프를 통해 실행 시간을 측정한다. 또한 소스코드로부터 생성된 제어 흐름 그래프에는 실행 시간 정보가 존재하지 않기 때문에, 이를 제공하기 위해 소스코드의 문장과 실행코드의 명령어와의 관계를 분석한다. 결과적으로 실행 시간 측정이 가능한 제어 흐름 그래프를 생성할 수 있다. 이를 통해 프로세서로부터 종속적인 부분을 매개변수화할 수 있기 때문에, 최악 실행 시간 분석 도구의 유연성을 향상시킬 수 있다.

소스코드 주제를 이용한 인공신경망 기반 경고 분류 방법 (Warning Classification Method Based On Artificial Neural Network Using Topics of Source Code)

  • 이정빈
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제9권11호
    • /
    • pp.273-280
    • /
    • 2020
  • 자동화된 정적분석 도구는 소스 코드상에 잠재된 결함을 개발자들이 적은 노력으로 빠르게 찾을 수 있도록 도와준다. 하지만 이러한 정적분석 도구는 수정할 필요가 없는 오탐지 경고들을 무수하게 발생시킨다. 본 연구에서는 소스코드 블록의 토픽 모델을 이용한 인공신경망 기반의 경고 분류 기법을 제안한다. 소프트웨어 변경 관리 시스템으로부터 버그를 수정한 리비전들을 수집하고, 개발자들로부터 수정된 코드 블록들을 추출한다. 토픽 모델링을 이용하여 수집된 코드 블록의 토픽 분포 값을 구하고, 코드 블록의 리비전 간 경고들의 삭제 여부를 표현하는 이진데이터를 인공신경망의 입력 값과 출력 값으로 사용하여 심층 학습을 수행한다. 그 결과, 인공신경망 기반의 분류 모델이 높은 예측 성능으로 진성 또는 오탐지 경고를 분류하였다.

특성 구성과 GenVoca 아키텍처에 기반한 컴포넌트 재구성 자동화 도구 (Automatic Component Reconfiguration Tool Based on the Feature Configuration and GenVoca Architecture)

  • 최승훈
    • 인터넷정보학회논문지
    • /
    • 제5권4호
    • /
    • pp.125-134
    • /
    • 2004
  • 최근 컴포넌트 기반의 소프트웨어 프러덕트 라인에 대한 연구와 소프트웨어 프러덕트 라인에 자동 생성 프로그래밍 기법을 적용하기 위한 연구가 활발히 진행 중이다. 본 논문은, 컴포넌트 기반의 소프트웨어 프러덕트 라인 개발에 활용될 수 있는 컴포넌트 재구성 자동화 도구를 제안한다. 본 도구는 도메인 공학의 주요 산물인 특성 모델로부터 재사용자의 요구 사항을 받아들여 특성 구성(feature configuration)을 만들고 이를 바탕으로 재구성된 컴포넌트 코드를 자동으로 생성한다. 이를 위하여 컨포넌트 패밀리는 자동 생성 프로그래밍의 한 기법인 GenVoco의 아키텍처를 가지며 XSLT 스크립트가 컴포넌트론 구성하는 구현 부품의 코드 템플릿을 제공한다. ‘은행 계좌’ 컴포넌트 패밀리를 사례 연구로 하여 본 논문의 컴포넌트 재구성 자동화 도구가 재사용자의 목적에 맞는 컴포넌트를 자동으로 생성함을 보였다. 본 논문의 연구 결과는 소프트웨어 프러덕트라인 개발의 생산성을 향상시키는데 응용될 수 있다.

  • PDF

A Python-based educational software tool for visualizing bioinformatics alignment algorithms

  • Elis Khatizah;Hee-Jo Nam;Hyun-Seok Park
    • Genomics & Informatics
    • /
    • 제21권1호
    • /
    • pp.15.1-15.4
    • /
    • 2023
  • Bioinformatics education can be defined as the teaching and learning of how to use software tools, along with mathematical and statistical analysis, to solve biological problems. Although many resources are available, most students still struggle to understand even the simplest sequence alignment algorithms. Applying visualizations to these topics benefits both lecturers and students. Unfortunately, educational software for visualizing step-by-step processes in the user experience of sequence alignment algorithms is rare. In this article, an educational visualization tool for biological sequence alignment is presented, and the source code is released in order to encourage the collaborative power of open-source software, with the expectation of further contributions from the community in the future. Two different modules are integrated to enable a student to investigate the characteristics of alignment algorithms.

A Study on Standardization of IISS Software for Combat Interface Information Analysis of Naval Combat Management System

  • Cheol-Hoon Kim;Dong-Han Jung;Young-San Kim;Hyo-Jo Lee
    • 한국컴퓨터정보학회논문지
    • /
    • 제29권2호
    • /
    • pp.119-126
    • /
    • 2024
  • 정보저장 소프트웨어는 함정전투체계의 연동 분석을 위해 전투 관리체계의 전술 도메인 메시지를 분석 컴퓨터로 전달하는 기능을 수행하며, 전투 관리체계와 분석 컴퓨터 간의 중간 매개체 역할을 한다. 정보저장 소프트웨어는 전투 관리체계에서 사용하는 대부분의 메시지를 처리하기 때문에 소스 코드의 양이 상대적으로 많고, 연동 장비 및 메시지의 변경 사항에 의해 수정 사항이 빈번하게 발생한다. 이에 따라 개발 과정에서 추가적인 공수가 소요되게 되고, 결국 개발 비용의 증가로 이어지게 된다. 본 논문에서는 재사용성을 향상하기 위하여 정보저장 소프트웨어 구조에 대한 표준화에 관한 연구를 수행하였다. 휘처 모델을 통해 정보저장 소프트웨어의 구성 요소를 기능별로 나누어 수정 요소를 분리하고, 디자인 패턴을 적용하여 정보저장 소프트웨어의 구조를 개선하였다. 그로 인해 연동 장비와 메시지의 변화에도 정보저장 소프트웨어의 수정 사항을 최소화할 수 있게 되어 개발 비용의 절감 효과가 기대된다.

기존 프로그래밍 원시코드에서 자바 바이트 코드로의 변환 (Program Translation from Conventional Programming Source to Java Bytecode)

  • Jeon-Geun Kang;Haeng-Kon Kim
    • 한국컴퓨터산업학회논문지
    • /
    • 제3권8호
    • /
    • pp.963-980
    • /
    • 2002
  • 소프트웨어 재공학은 기존 시스템의 유지보수 문제에 대한 해결책으로 많은 연구가 이루어 지고 있다. 재공학은 역공학과 순공학을 이용하여 기존 시스템에 대한 이해와 새로운 시스템의 개발을 의미하며 기존 시스템에서의 컴퍼넌트들로부터 필요한 기능을 가져와 재구성 하는 것이다. 본 논문에서는 기존의 프로시져 언어에 의해 컴파일된 바이너리 코드를 입력으로 받아서 웹 기반 자바 바이트 코드로 변환한다. 즉 바이너리-바이너리 단계에서 수행되는 소프트웨어 시스템을 제안한다. 이를 위해 먼저 Pascal-L 에 의해 작성된 기존의 프로그램 언어를 Jasmin 이라는 어셈블리 코드로 먼저 번역하고 사용자 읽기 가능한 자바 바이트 코드 상태인 Jasmin 어셈블리가 실제 자바 코드로 변환된다. 이 시스템은 결국 기존의 원시코드가 번역기를 통해 실행 가능한 바이너리 코드 형식으로 실행된다. 이 번역과정은 먼저 주어진 바이너리코드에서 언어구조를 식별하는 과정과 변수 객체의 위치를 분석하고 초기화 하는 과정 그리고 주어진 바이너리 코드를 Jasmin 코드로의 매핑하는 단계등으로 구성된다.

  • PDF

프로그램 소스코드 비교 및 소스코드 관리를 위한 웹툴 (A WEB TOOL FOR SOURCE CODE COMPARING AND CODE MANAGEMENT)

  • 최규현;한덕희;박미소;류근호
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 추계학술발표대회
    • /
    • pp.994-997
    • /
    • 2014
  • 소프트웨어 형상관리는 소스코드제어, 변경 관리 및 버전제어를 하는 행위를 가리키는 것이다. 여러 개발자가 공통 파일 세트에서 동시에 작업 중인 소프트웨어 개발에 주요 사용된다. 이 논문에서는 소프트웨어 형상관리를 위한 소스코드 비교기능, 변경 및 수정 내역 기록, 개발자를 위한 소스코드 공유 공간을 제공하는 등의 기능에 대한 설명과 기대효과에 대해 설명한다.

정적 코드 내부 정보의 테이블 정규화를 통한 품질 메트릭 지표들의 가시화를 위한 추출 메커니즘 (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)에 대한 계산을 질의어화 하고 추출된 정보를 가시화하는 과정을 구현하는 것에만 초점을 두었다. 이러한 연구들은 방대한 코드로부터 추출한 정보를 이용하여 코드를 분석할 때 많은 시간과 자원이 소모된다는 한계점이 있다. 또한 각 코드 내 정보 테이블들이 정규화되지 않았기 때문에 코드 내부의 정보(클래스, 함수, 속성 등)들에 대한 테이블 조인 연산 시 메모리 공간과 시간 소비가 발생할 수 있다. 이러한 문제들을 해결하기 위해, 데이터베이스 테이블의 정규화된 설계와 이를 통한 코드 내부의 품질 메트릭 지표에 대한 추출 및 가시화 메커니즘 제안한다. 이러한 메커니즘을 통해 코드 가시화 공정이 최적화되고, 개발자가 리팩토링해야 할 모듈을 가이드 할 수 있을 것으로 기대한다. 앞으로는 부분 학습도 시도할 예정이다.

멀티 플랫폼 소프트웨어 개발을 위한 대화형 도구의 설계 및 구현 (Design and Development of an Interactive Tool for Developing Multi-platform Software)

  • 최진우;황선태;우종우
    • 인터넷정보학회논문지
    • /
    • 제3권4호
    • /
    • pp.95-102
    • /
    • 2002
  • 새로운 하드웨어 및 운영 체제의 지속적인 출현으로 인해 멀티 플랫폼에서 이식이 가능한 포터블 프로그래밍에 대한 중요성이 더욱 부각되고 있다. 또한 최근 컴퓨터 및 컴퓨터 통신의 발달로 인해 서로 다른 플랫폼으로의 접근 기회가 증가함에 따라 소프트웨어 개발자는 초기 제작 단계부터 여러 가지 플랫폼을 염두에 두고 개발해야 하는 등 소프트웨어 개발 부담이 가중되고 있다. 기존의 GNU 시스템 도구 등에서는 소스 코드의 일부 configuration을 자동으로 생성하게 하고 새로운 플랫폼을 향한 지침서 등을 제시하고 있지만 소프트웨어에 이식성을 부여하기 위한 실질적인 코드는 소스 레벨에서 개발사에 의해 직접 입력되어야 하는 한계가 있다. 본 논문에서는 멀티 플랫폼 소프트웨어 개발을 위한 대화형 의 설계와 구현에 관하여 기술한다. 이 도구는 다양한 유닉스 계열 시스템에 관한 숙련된 지식이 없는 개발자들도 손쉽게 멀티 플랫폼 소프트웨어를 개발할 수 있도록 도울 수 있게 설계되었다. 또한 이 도구는 기존 GNU의 autoconf, autoheader, automake와 같은 시스템 툴을 사용하며, 개발자와 상호작용에 따라 적합한 장소에 포터블 삽입할 수 있다.

  • PDF