• Title/Summary/Keyword: 제품라인 코드베이스

검색결과 3건 처리시간 0.015초

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

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

제품군의 재사용 가능한 클론 코드의 메소드 경로 통일을 위한 코드 클러스터링 방법 (A Code Clustering Technique for Unifying Method Full Path of Reusable Cloned Code Sets of a Product Family)

  • 김태영;이지현;김은미
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제12권1호
    • /
    • pp.1-18
    • /
    • 2023
  • 유사한 소프트웨어는 기존 산출물을 복제하고 수정하는 클론-앤-오운(clone-and-own, CAO) 방법으로 개발되곤 한다. 그러나 클론-앤-오운 방법은 복제된 제품의 수가 늘면서 유지보수를 어렵게 만들기 때문에 나쁜 프랙티스로 간주된다. 소프트웨어 제품라인 공학은 체계적인 재사용을 통해 소프트웨어 제품군을 개발하는 방법으로 클론-앤-오운 방법의 문제를 해결할 수 있다. CAO 방식으로 개발되어 온 제품패밀리를 제품라인 공학으로 마이그레이션하는 작업은 여러 소프트웨어 제품에서 클로닝된 부분들을 찾아 통합하고 재사용 가능한 자산으로 구축하는 것으로부터 시작된다. 그러나 클로닝이 디렉토리부터 코드 라인까지 다양한 수준에서 발생하고 그 과정에서 이들의 구조에 변경이 일어날 수 있어 단순하게 클로닝을 찾아내는 것만으로는 고품질의 제품라인 코드베이스를 구축하기 어렵다. 성공적인 마이그레이션을 위해서는 소스 코드들 사이의 클로닝 관계를 찾는 것 이외에도 소스 코드들의 파일 경로와 클래스 이름, 메소드 시그니처 등의 동일성을 확보는 작업이 선행되어야 한다. 이에 본 연구는 CAO 기반으로 개발된 제품들로부터 마이그레이션 대상 제품들을 선정한 후 제품들에 흩어져 있는 유사 코드 집합을 검출하여 메소드 경로의 통일이 필요한 대상을 식별하는 클러스터링 방법을 제안한다. 제안 방법의 효과를 보이기 위해 CAO 방식으로 진화해온 ApoGames 제품군에 제안 방법을 적용하여 실험을 진행하였다. 그 결과, 전처리 없이 수행된 파일의 상대 경로 기반 클러스터링 방법의 평균 정밀도는 0.91이며 식별된 공통 클러스터의 개수는 0개인 반면에 이 논문에서 제안하는 전처리와 함께 수행된 메소드 시그니처 기반 클러스터링 방법의 평균 정밀도는 0.98로 개선되었으며 식별된 공통 클러스터는 최대 15개까지 증가하였다.

임베디드 소프트웨어의 재사용성 향상을 위한 리엔지니어링 프레임워크 (Re-engineering framework for improving reusability of embedded software)

  • 김강태
    • 한국컴퓨터정보학회논문지
    • /
    • 제13권4호
    • /
    • pp.1-9
    • /
    • 2008
  • 대부분의 전자제품은 날로 다양한 소비자의 니즈로 인해 수많은 라인업을 보유하고 있다. 이에 대응하기 위해 보통 '베이스 모델'이라 불리는 초기 개발모델에서 각 상품화 과제의 특정 요구사항을 반영하여 파생개발을 한다. 제품 라인업에 기반한 소프트웨어 라인 업이 형성되는 개발환경에서 '베이스 코드'의 구조와 그 구성요소의 품질은 향후 파생되는 여러 많은 제품의 생산성과 품질의 근간이 된다. '베이스코드'는 최초 개발 후 여러 상품화를 거치면서 그 구조와 코드 자체에 수많은 변경이 가해진다. 상품화 과제의 요구사양에 따라 변경되거나 추가되는 기능의 구현은 필수적 활동이며, 성능 개선 및 문제점 해결을 위한 구조 및 코드의 변경 역시 상품화를 통해 지속적으로 발생하는 유지관리 활동이다. 하지만 위와 같은 변경은 최초 설계 시 의도된 구조가 깨지거나 코드의 복잡도가 증가하는 등의 노쇠화 징후(Ageing symptom)로 나타나 유지관리에 어려움을 준다. 본 논문은 노쇠화 된 베이스 코드의 상품화 적용 효율을 높이기 위해 재사용성, 유지보수성, 확장성 등의 비기능적 요소(quality attribute)의 개선을 위한 절차와 기법으로 리엔지니어링 프레임워크를 제안한다.

  • PDF