KR20070000732A - Asadal : system for providing feature-oriented software product line engineering environment - Google Patents

Asadal : system for providing feature-oriented software product line engineering environment Download PDF

Info

Publication number
KR20070000732A
KR20070000732A KR1020050056305A KR20050056305A KR20070000732A KR 20070000732 A KR20070000732 A KR 20070000732A KR 1020050056305 A KR1020050056305 A KR 1020050056305A KR 20050056305 A KR20050056305 A KR 20050056305A KR 20070000732 A KR20070000732 A KR 20070000732A
Authority
KR
South Korea
Prior art keywords
asadal
feature
module
asset
software
Prior art date
Application number
KR1020050056305A
Other languages
Korean (ko)
Other versions
KR100744886B1 (en
Inventor
강교철
Original Assignee
학교법인 포항공과대학교
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 학교법인 포항공과대학교, 포항공과대학교 산학협력단 filed Critical 학교법인 포항공과대학교
Priority to KR1020050056305A priority Critical patent/KR100744886B1/en
Priority to JP2005215541A priority patent/JP2007012003A/en
Priority to PCT/KR2005/003651 priority patent/WO2007001108A1/en
Publication of KR20070000732A publication Critical patent/KR20070000732A/en
Application granted granted Critical
Publication of KR100744886B1 publication Critical patent/KR100744886B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)

Abstract

An ASADAL(A System Analysis and Design Aided tooL) system for offering a feature-based software product line development environment is provided to support software product line methodology by defining an ASADAL framework supporting the methodology of feature-based software product line engineering, a structure of each module forming an ASADAL, and a function and data flow of each module. An ASADAL form(100) models features for a specific area and selects the features corresponding to an application program among the features generated by feature modeling. An ASADAL component(200) develops an asset component based on feature selection information, generates a software computer through a macro process, and manages a shape of the software component. An ASADAL object(300) models an architecture and operation for the application software development, automatically generates codes, builds a virtual test bed, and performs a test through simulation. An ASADAL asset database(400) stores data generated from each part. An ASADAL analyzer(500) verifies consistency of the data stored in the ASADAL asset database.

Description

아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을 제공하는 시스템 {ASADAL : SYSTEM FOR PROVIDING FEATURE-ORIENTED SOFTWARE PRODUCT LINE ENGINEERING ENVIRONMENT}Asadaal: System for providing feature-based software product line development environment {ASADAL: SYSTEM FOR PROVIDING FEATURE-ORIENTED SOFTWARE PRODUCT LINE ENGINEERING ENVIRONMENT}

도 1은 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경을 지원하는 아사달(ASADAL) 프레임워크의 구성을 나타내는 블록도,1 is a block diagram showing the configuration of an ASADAL framework supporting a feature-based software product line development environment in accordance with the present invention;

도 2는 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경에서 휘처 모델링과 휘처 선택을 수행하는 ASADAL/FORM의 구성 및 데이터 처리 흐름을 나타내는 블록도,2 is a block diagram showing a configuration and data processing flow of an ASADAL / FORM performing feature modeling and feature selection in a feature-based software product line development environment according to the present invention;

도 3은 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경에서 자산 컴포넌트와 소프트웨어 컴포넌트의 생성 및 형상관리를 수행하는 ASADAL/COMP의 구성 및 데이터 처리 흐름을 나타내는 블록도,3 is a block diagram showing a configuration and data processing flow of an ASADAL / COMP performing creation and configuration management of asset components and software components in a feature-based software product line development environment according to the present invention;

도 6 내지 도 8은 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경에서 자동 코드 생성 및 3차원 가상 시뮬레이션 테스팅을 수행하는 ASADAL/OBJ의 구성 및 데이터 처리 흐름을 보여주는 블록도,6 to 8 are block diagrams illustrating the configuration and data processing flow of ASADAL / OBJ performing automatic code generation and 3D virtual simulation testing in a feature-based software product line development environment according to the present invention.

도 9는 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경에서 모델 간의 일관성 검증 및 유효성 검사를 수행하는 ASADAL/ANALYZER의 구성 및 데이터 처리 흐름을 나타내는 블록도이다.9 is a block diagram illustrating a configuration and data processing flow of ASADAL / ANALYZER for performing consistency verification and validation between models in a feature-based software product line development environment according to the present invention.

본 발명은 휘처 기반 소프트웨어 제품라인 개발 환경에 관한 것으로서, 특히 특정 도메인(또는 영역)에 대해 소프트웨어 제품라인 방법론을 적용하여 도메인에 대한 휘처 분석과 응용 프로그램 개발을 위한 휘처 선택, 재사용 가능한 자산 컴포넌트의 생성, 매크로 처리(macro-processing)를 통한 소프트웨어 컴포넌트의 생성과 컴포넌트에 대한 형상 관리, 소프트웨어 컴포넌트를 이용한 응용 소프트웨어의 개발과 가상환경에서의 소프트웨어 테스팅을 지원함으로써 소프트웨어 제품라인 개발을 용이하게 하는 휘처 기반 소프트웨어 제품라인 개발 환경을 구현하는 시스템에 관한 것이다.TECHNICAL FIELD The present invention relates to a feature-based software product line development environment. In particular, the software product line methodology is applied to a specific domain (or region) to generate feature selection and reusable asset components for domain analysis and application development. , Feature-based software that facilitates software product line development by supporting the creation of software components through macro-processing, configuration management of components, application software development using software components, and software testing in virtual environments A system for implementing a product line development environment.

소프트웨어 개발의 생산성을 높이고자 하는 소프트웨어 재사용 기술의 초점은 소스 코드의 재사용에서 소프트웨어 설계의 재사용으로, 다시 소프트웨어 설계의 재사용에서 영역 공학에 기반을 둔 재사용으로 그 중심이 옮겨져 왔다. 이러한 소프트웨어 재사용 기술의 변화의 이유는, 소스코드를 재사용하기 위해서는 설계의 재사용이 선행되어야 하고, 또한 설계를 재사용하기 위해서는 영역 공학을 통해서 해당 응용 영역에서 공통적으로 쓰이는 영역 자산을 먼저 개발하여야 했기 때문이다. 따라서 지난 수년 간 소프트웨어 재사용 연구는 영역 분석 및 영역 공학에 중 점을 두고 수행되어 왔다. The focus of software reuse technology to increase the productivity of software development has shifted from reuse of source code to reuse of software design, and from reuse of software design to reuse based on domain engineering. The reason for the change of the software reuse technology is that the reuse of the design must be preceded in order to reuse the source code, and in order to reuse the design, the area assets commonly used in the application area must be developed through the area engineering. . Thus, software reuse research has been focused on domain analysis and domain engineering for many years.

소프트웨어 재사용 기술에 관한 연구에서 영역 공학적인 접근 방법은 해당 응용 영역에 대해서 광범위한 분석을 실시하고 이를 통하여 재사용성이 높은 컴포넌트를 개발하는 것이다. 그러나 이러한 접근 방법은 많은 경우에 영역 내의 모든 제품을 포함하려는 경향이 있었으며, 이로 인하여 소프트웨어 개발의 비용과 기간이 증가하는 문제가 발생하기도 하였다. 또한 소프트웨어 재사용성을 극대화하기 위한 노력으로 소프트웨어 구조의 계층화와 정보 은닉을 위한 캡슐화를 강조하다 보면 결과적으로 성능이 떨어지는 시스템을 개발하게 되는 문제점이 발생하기도 했다. 이와 같이, 해당 응용 영역을 중심으로 소프트웨어를 재사용하려함에 있어서 적절한 영역의 범위와 재사용성의 정도를 결정하는 것은 어려운 문제이다.In the study of software reuse technology, the domain engineering approach is to develop a highly reusable component through extensive analysis of the application area. In many cases, however, this approach tended to include all products in the domain, which in turn increased the cost and duration of software development. In addition, in an effort to maximize software reusability, emphasizing the layering of software structures and encapsulation for information concealment has resulted in a problem of developing a system with poor performance. As described above, it is difficult to determine the extent of the appropriate area and the degree of reusability in attempting to reuse the software around the application area.

위에서 언급한 문제 가운데 일부를 해결하고자 소프트웨어 제품라인 공학(software product line engineering)의 패러다임이 제시되었다. 이 패러다임에 따르면 소프트웨어 재사용은 특정 소프트웨어 제품 라인을 재사용하기 위해서 신중하게 수립된 계획 하에 이루어진다. 즉, 소프트웨어 제품라인 공학에 의해면, 기업이 진입하고자 하는 시장상황을 분석한 결과를 바탕으로 하여 영역 분석을 해야 하는 범위와 이를 기반으로 하는 소프트웨어 제품 라인 자산의 개발 범위를 명확하게 할 수 있다.To solve some of the problems mentioned above, a paradigm of software product line engineering has been proposed. According to this paradigm, software reuse is a carefully planned plan for reusing specific software product lines. In other words, software product line engineering can clarify the scope of area analysis and the development scope of software product line assets based on the results of analyzing the market situation that a company wants to enter.

소프트웨어 제품라인 공학은, 소프트웨어 제품라인의 핵심이 되는 소프트웨어 자산을 개발하기 위해서 하나 또는 그 이상의 시장을 목표로 하는 비슷한 기능을 제공하는 소프트웨어들 간의 공통점(commonality)과 차이점(variability)을 분 석하여, 이를 기반으로 변화를 수용할 수 있는 소프트웨어 아키텍쳐(software architecture)와 재사용 가능한 컴포넌트(component)를 개발하는 방안을 제시한다. 최근에는 이러한 소프트웨어의 전략적인 재사용을 위한 소프트웨어 제품 라인 공학에 대한 관심과 인식이 점차 증가하고 있으며, 이에 대한 연구도 활발히 진행 중이다.Software product line engineering analyzes commonalities and variability among software that provides similar functionality targeting one or more markets to develop the software assets that are the core of the software product line. Based on this, we propose a software architecture that can accommodate change and develop reusable components. Recently, interest and recognition in software product line engineering for strategic reuse of such software is gradually increasing, and research on this is being actively conducted.

그러나 이와 같은 소프트웨어 제품라인 공학의 개념에 따라 도메인에 대한 공통점과 차이점 분석, 유연한 소프트웨어 아키텍쳐와 재사용 컴포넌트의 개발 등 소프트웨어 제품라인 공학의 전체적인 방법론을 지원하는 체계적이고 효과적인 소프트웨어 개발 환경을 제공하는 시스템이 아직 제시되지 못하고 있다.However, according to the concept of software product line engineering, there is still a system that provides a systematic and effective software development environment that supports the overall methodology of software product line engineering, such as analyzing commonalities and differences of domains, developing flexible software architecture and reusable components. It is not presented.

본 발명은 상술한 종래 기술의 문제점을 개선하기 위한 것으로, 휘처 기반 소프트웨어 제품라인 공학의 방법론을 지원하는 아사달(ASADAL: A System Analysis and Design Aided tooL) 프레임워크를 정의하고, ASADAL을 구성하는 각 모듈의 구조, 모듈의 기능 및 데이터 흐름을 정의함으로써 소프트웨어 제품라인 방법론을 지원하는 휘처 기반 소프트웨어 재사용 개발 환경 시스템을 제공하는데 그 목적이 있다.The present invention is to improve the above-mentioned problems of the prior art, and defines an ASADAL (AS System Analysis and Design Aided tooL) framework supporting the methodology of the feature-based software product line engineering, and each module constituting ASADAL. The goal is to provide a feature-based software reuse development environment system that supports the software product line methodology by defining the structure, module functionality, and data flow of the.

또한, 본 발명은 이러한 체계적인 개발 환경을 이용하여, 도메인에 대해 공통점과 차이점을 분석한 휘처 모델링 결과를 바탕으로 재사용 가능한 소프트웨어 자산을 얻고, 소프트웨어 자산을 활용하여 효율적으로 응용 소프트웨어를 개발하 고, 이를 3차원 시뮬레이션 기반으로 테스트해 봄으로써 궁극적으로 소프트웨어 제품라인 공학의 개념에 따른 높은 품질의 소프트웨어를 얻는 것을 목적으로 한다.In addition, the present invention obtains reusable software assets based on feature modeling results of analyzing commonalities and differences of domains using such a systematic development environment, and efficiently develops application software using software assets. By testing on a three-dimensional simulation basis, the goal is ultimately to obtain high quality software based on the concept of software product line engineering.

상기 목적을 달성하기 위한 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경을 제공하는 시스템은, 특정 영역에 대한 휘처 모델링과 상기 휘처 모델링에 의해 생성된 휘처 중에서 응용 프로그램에 해당하는 휘처를 선택하는 ASADAL/FORM, 상기 휘처 선택 정보에 기초하여 자산 컴포넌터를 개발하고 매크로 처리를 통한 소프트웨어 컴포넌트의 생성 및 상기 소프트웨어 컴포넌트의 형상 관리를 수행하는 ASADAL/COMP, 상기 응용 소프트웨어 개발을 위한 아키텍처 모델링 및 운영 모델링과 자동 코드 생성, 가상 테스트 베드의 구축 및 시뮬레이션을 통한 검증을 수행하는 ASADAL/OBJ, 상기 ASADAL/FORM, ASADAL/COMP 및 ASADAL/OBJ에 의해 생성된 데이터를 저장하는 ASADAL/ASSET DB, 상기 ASADAL/ASSET DB에 저장된 데이터들 간의 일관성을 검증하는 ASADAL/ANALYZER를 포함한다.The system for providing a feature-based software product line development environment according to the present invention for achieving the above object is, ASADAL / to select a feature corresponding to the application from the feature modeling for the specific region and the feature generated by the feature modeling; FORM, ASADAL / COMP for developing asset components based on the feature selection information, generating software components through macro processing and shape management of the software components, architecture modeling and operational modeling for the application software development, and automatic ASADAL / OBJ which performs verification through code generation, virtual test bed construction and simulation, ASADAL / ASSET DB which stores data generated by the ASADAL / FORM, ASADAL / COMP and ASADAL / OBJ, and ASADAL / ASSET DB Includes ASADAL / ANALYZER to verify consistency between data stored in

이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 환경인 아사달(ASADAL: A System Analysis and Design Aided tooL) 프레임워크의 구성을 나타내는 블록도이다. 본 발명에 따른 시스템은 다섯 개의 구성요소인 ASADAL/FORM(100), ASADAL/COMP(200), ASADAL/OBJ(300), ASADAL/ASSET DB(400) 및 ASADAL/ANALYZER(500)를 포함한다. 도 1에 도시된 시스템의 구성요소 중에서 ASADAL/FORM(100), ASADAL/COMP(200), ASADAL/OBJ(300) 및 ASADAL/ANALYZER(500)는 하나의 컴퓨터 또는 네트워크로 연결된 다수의 컴퓨터에서 실행될 수 있는 소프트웨어로 구현될 수 있다.1 is a block diagram showing the configuration of the ASADAL (A System Analysis and Design Aided too L) framework according to the present invention. The system according to the present invention includes five components, ASADAL / FORM 100, ASADAL / COMP 200, ASADAL / OBJ 300, ASADAL / ASSET DB 400 and ASADAL / ANALYZER 500. Among the components of the system shown in FIG. 1, ASADAL / FORM 100, ASADAL / COMP 200, ASADAL / OBJ 300, and ASADAL / ANALYZER 500 may run on one computer or on multiple computers connected by a network. Can be implemented in software.

본 발명에 따른 시스템에서, ASADAL/FORM(100)은 영역에 대한 휘처 모델링과 응용 프로그램에 해당하는 휘처를 선택하는 기능을 수행하며, ASADAL/COMP(200)는 자산 컴포넌트의 개발과 매크로 프로세싱을 통한 소프트웨어 컴포넌트의 생성 및 컴포넌트 형상 관리의 기능을 수행한다. ASADAL/OBJ(300)는 응용 소프트웨어 개발을 위한 아키텍처 모델링 및 운영 모델링과 자동 코드 생성, 가상 테스트 베드의 구축 및 시뮬레이션을 통한 검증 기능을 제공한다. 또한, ASADAL/ASSET DB(400)는 이상에서 설명한 각 모듈에서 생성된 산출물을 저장하며, ASADAL/ANALYZER(500)는 ASADAL/ASSET DB(400)에 저장된 산출물들 간의 일관성을 검증한다.In the system according to the present invention, the ASADAL / FORM 100 performs the function of selecting the feature corresponding to the feature modeling and application program for the region, and the ASADAL / COMP 200 performs the development and macro processing of the asset component. It performs the functions of software component creation and component configuration management. ASADAL / OBJ 300 provides architectural modeling and operational modeling for application software development, automatic code generation, and verification by building and simulating a virtual test bed. In addition, the ASADAL / ASSET DB (400) stores the output generated in each module described above, the ASADAL / ANALYZER (500) verifies the consistency between the outputs stored in the ASADAL / ASSET DB (400).

이하에서는 본 발명에 따른 개발 프레임워크를 제공하는 시스템인 ASADAL을 구성하는 각 모듈을 첨부된 도면을 참조하여 자세히 설명한다.Hereinafter, with reference to the accompanying drawings, each module constituting the ASADAL which is a system for providing a development framework according to the present invention will be described in detail.

ASADAL/FORMASADAL / FORM

도 2는 본 발명에 따른 개발 프레임워크를 제공하는 시스템인 ASADAL의 ASADAL/FORM(100)의 구성 및 데이터 처리 흐름을 나타내는 블록도이다. ASADAL/FORM(100)의 주요한 기능은, 소프트웨어 제품 라인 분석가가 도메인(또는 영역)을 분석하여 관련된 시스템 간의 공통점과 차이점을 휘처 단위로 추출하여 도 메인에 대한 휘처 모델을 생성하는 것과, 응용프로그램 개발자가 시스템을 분석하여 응용 프로그램의 요구사항을 만족시키는 휘처를 선택할 수 있도록 하는 것으로, 이 기능들을 좀 더 자세히 설명하면 아래와 같다.Figure 2 is a block diagram showing the configuration and data processing flow of the ASADAL / FORM 100 of ASADAL which is a system providing a development framework according to the present invention. The main function of ASADAL / FORM 100 is that the software product line analyst analyzes domains (or domains) and extracts feature and common features between related systems in feature units to create feature models for domains. Analyzes the system and selects features that meet the application's requirements.

휘처(feature)는 특정 영역에 관련된 사람들이 관심을 가지는 영역 내에서의 속성 또는 특징을 의미한다. 예를 들어, 사용자 매뉴얼이나 소프트웨어 문서, 영역 전문가들 사이에 사용되는 용어들을 분석함으로써 휘처를 찾을 수 있다. 휘처 모델링(feature modeling)이란 많은 후보 휘처들 중에서 영역 범위에 속하는 시스템들 간의 공통점과 차이점을 나타내는 휘처들을 찾아서 그들의 관계 및 합성 법칙 등을 명세하는 과정을 말한다. 즉, 휘처 모델링이란 비슷한 종류의 시스템들 사이에서 공통적인 부분이 무엇이며, 어떠한 부분에서 차이가 나고, 앞으로 어떠한 차이가 발생할 것인지를 명확히 하는 과정을 의미한다.A feature refers to an attribute or feature within a region of interest to those associated with a particular region. For example, a feature can be found by analyzing terms used between user manuals, software documentation, and domain experts. Feature modeling refers to a process of finding features representing commonalities and differences among systems belonging to an area range among many candidate features and specifying their relations and synthesis laws. In other words, feature modeling is the process of clarifying what is common among similar types of systems, what is different, and what will happen in the future.

ASADAL/FORM(100)은 휘처 모델링을 지원하는 에디터 모듈을 통해 휘처 모델을 작성하며, 이렇게 작성된 휘처 모델은 ASADAL/ASSET DB(400)에 저장하여 다른 모듈이 사용할 수 있게 한다. 즉, 도 2를 참조하면, 제품라인 분석가(102)는 도메인을 분석하여 후보 휘처들을 얻는다(S110). 이렇게 얻어진 후보 휘처들을 바탕으로 휘처 모델 에디터를 통해 시스템의 공통점을 나타내는 필수 휘처, 차이점을 나타내는 선택적 휘처 및 택일적 휘처를 분류하여 트리(tree) 구조의 휘처 모델을 작성한다(S120).The ASADAL / FORM 100 creates a feature model through an editor module that supports feature modeling. The feature model is then stored in the ASADAL / ASSET DB 400 to be used by other modules. That is, referring to FIG. 2, the product line analyst 102 analyzes the domain to obtain candidate features (S110). Based on the candidate features thus obtained, a feature model of a tree structure is created by classifying essential features representing commonalities, selective features representing differences, and alternative features using the feature model editor (S120).

ASADAL/FORM(100)은 시스템들 간의 공통점과 차이점을 나타내는 필수 휘처 및 선택적 휘처 등을 찾아서 그들의 관계 및 합성 법칙을 명세하며, 제품라인 분석 가(102)가 작성한 휘처 모델이 합성 법칙에 맞게 명세되어 있는지, 휘처들 간의 관계가 제대로 설정되어 있는지 등을 검증할 수 있는 기능을 지원한다(S130). 이러한 휘처 모델 검증 과정을 통하여 소프트웨어 제품라인 분석가(102)는 유효한 휘처 모델을 얻을 수 있다.ASADAL / FORM 100 finds the essential features and the optional features representing the commonalities and differences among the systems, and specifies their relations and the synthesis law.The feature model created by the product line analyst 102 is specified according to the synthesis law. It supports a function that can verify whether the relationship between the features are properly set (S130). Through the feature model verification process, the software product line analyst 102 may obtain a valid feature model.

영역 내에 속하는 응용 프로그램의 요구 사항은 그 영역에 대한 휘처 모델에서 차이점을 나타내는 휘처들 중에서 응용 프로그램에 해당되는 휘처들과 공통점을 표현하는 필수 휘처들을 선택함으로써 명세할 수 있다. 응용 프로그램 개발자는 ASADAL/FORM(100)의 휘처 선택 모듈을 통해 영역 분석가에 의해 작성된 휘처 모델에서 휘처의 설명이나 합성 규칙 등을 이용하여 응용 프로그램의 요구사항에 맞는 유효한 휘처 집합이 생성될 수 있도록 휘처들을 선택한다.The requirements of an application program within an area can be specified by selecting the required features that represent the features in common with the features corresponding to the application among the features representing the difference in the feature model for the area. Application developers can use the feature selection module of ASADAL / FORM 100 to create a feature set in the feature model created by the domain analyst, using feature descriptions, composition rules, etc. to meet the requirements of the application. Select them.

즉, 도 2를 참조하면, 응용 프로그램 개발자(104)는 응용 프로그램을 분석하여 그 요구사항을 결정한 후(S140), ASADAL/ASSET DB(400)에 저장되어 있는 휘처 모델을 가져와서 그 요구사항을 만족시키는 휘처들을 선택한다(S150). 이러한 휘처 선택 정보는 다시 ASADAL/ASSET DB(400)에 저장된다.That is, referring to FIG. 2, the application developer 104 analyzes an application to determine its requirements (S140), and then imports a feature model stored in the ASADAL / ASSET DB 400 to obtain the requirements. Select features to satisfy (S150). The feature selection information is stored in the ASADAL / ASSET DB 400 again.

ASADAL/COMPASADAL / COMP

도 3은 본 발명에 따른 개발 프레임워크를 제공하는 시스템인 ASADAL의 ASADAL/COMP(200)의 기능 및 데이터 처리 흐름을 나타내는 블록도이다. ASADAL/COMP(200)의 주요한 기능은, ASADAL/FORM(100)에서 만들어진 휘처 모델과 휘처 선택 정보를 기반으로 재사용 가능한 자산 컴포넌트를 작성하는 것과, 자산 컴포넌트를 매크로 처리하여 휘처 선택에 맞는 소프트웨어 컴포넌트를 생성하는 것, 그리고 이러한 컴포넌트에 대한 형상 관리를 수행하는 것이다.3 is a block diagram showing the function and data processing flow of ASADAL / COMP 200 of ASADAL, a system providing a development framework according to the present invention. The main functions of ASADAL / COMP 200 are to create a reusable asset component based on the feature model and feature selection information created on the ASADAL / FORM 100, and to process the asset component into a macro to select a software component for feature selection. Creating and performing configuration management for these components.

이하에서는 도 3을 참조하여 ASADAL/COMP(200)의 주요 기능 중의 하나인 자산 컴포넌트의 개발 과정을 자세히 설명한다. Hereinafter, a process of developing an asset component which is one of the main functions of the ASADAL / COMP 200 will be described in detail with reference to FIG. 3.

자산 컴포넌트는 다양한 요구사항을 갖는 여러 응용 프로그램에서 재사용될 수 있도록, 휘처 모델에서 검색된 응용 프로그램들 간의 차이점을 나타내는 택일적 휘처 및 선택적 휘처를 중심으로, 그러한 휘처들이 선택되는 경우와 선택되지 않은 경우에 각각 적절히 대응할 수 있도록 작성되어야 한다. 또한, 자산 컴포넌트는 자산 컴포넌트 작성시 사용할 수 있는 휘처의 선택 여부, 그에 따른 불필요한 코드의 제거 및 적절한 코드의 삽입을 지원하는 매크로(macro)들을 정의한다. Asset components can be reused in multiple applications with varying requirements, with alternative features and optional features representing differences between applications retrieved from the feature model, when and when those features are selected and not selected. Each must be prepared to respond appropriately. In addition, the asset component defines macros that support the selection of features that can be used when creating the asset component, the removal of unnecessary code, and the insertion of appropriate code.

도 3을 참조하면, ASADAL/COMP(200)는 자산 컴포넌트를 작성하기 위해서 ASADAL/ASSET DB(400)로부터 해당 도메인에 대해서 작성한 휘처 모델을 가져온다. ASADAL/COMP(200)는 ASADAL/ASSET DB(400)에서 가져온 휘처 모델에서 정의된 필수 휘처들 중에서 관련성이 높은 것들을 묶어서 이들을 구현하는 자산 컴포넌트를 정의하고, 그 자산 컴포넌트에 관련되는 선택적 휘처 및 택일적 휘처들이 존재한다면 그들의 선택 여부에 따라 컴포넌트가 어떻게 대응해야 할지를 매크로를 사용하여 명세한다(S240). 이렇게 작성된 자산 컴포넌트는 ASADAL/ASSET DB(400)에 저장되어 소프트웨어 컴포넌트 생성에 사용된다.Referring to FIG. 3, the ASADAL / COMP 200 imports the feature model created for the domain from the ASADAL / ASSET DB 400 to create an asset component. ASADAL / COMP 200 defines an asset component that implements them by grouping the relevant features among the mandatory features defined in the feature model taken from ASADAL / ASSET DB 400, and selects optional features and alternatives related to that asset component. If features are present, a macro specifies how the component should respond according to their selection (S240). The asset component thus created is stored in the ASADAL / ASSET DB 400 and used to generate software components.

ASADAL/COMP(200)는 자산 컴포넌트 작성시 사용할 수 있는 휘처의 선택 여 부, 그에 따른 불필요한 코드의 제거 및 적절한 코드의 삽입을 지원하는 매크로들을 정의하는데, 자산 컴포넌트 검증 모듈은 매크로 작성시 생기는 문법적인 오류와 명세의 유효성을 검증할 수 있는 기능을 지원한다(S210). 자산 컴포넌트를 검증하는 작업은 소프트웨어 컴포넌트 개발시 매크로 처리의 기초 작업이 되므로 매크로 처리 전에 필수적으로 수행되어야 한다.ASADAL / COMP (200) defines macros that support the selection of features that can be used when creating an asset component, thereby eliminating unnecessary code and inserting the appropriate code. It supports the function to validate the error and specification (S210). Validating asset components must be performed before macro processing because it is the basic task of macro processing in software component development.

도 3에 나타난 바와 같이, ASADAL/COMP(200)는 휘처의 선택 정보와 자산 컴포넌트를 ASADAL/ASSET DB(400)에서 가져오고, 이렇게 얻어진 휘처 선택 정보와 자산 컴포넌트를 바탕으로 자산 컴포넌트 명세에 포함된 매크로들을 그 의미에 맞게 처리하여, 선택되지 않은 휘처들을 구현하고 있는 코드들을 제거하고 선택된 휘처들을 구현하는 코드들을 적절히 변화시켜 소프트웨어 컴포넌트들을 자동 생성한다(S220). 이렇게 생성된 소프트웨어 컴포넌트는 ASADAL/ASSET DB(400)에 저장되며, 휘처 선택 정보와 함께 형상 관리 모듈로 넘겨져 형상 관리된다.As shown in FIG. 3, the ASADAL / COMP 200 imports the feature selection information and the asset component from the ASADAL / ASSET DB 400, and is included in the asset component specification based on the feature selection information and the asset component thus obtained. The macros are processed according to their meanings, and the software components are automatically generated by removing codes implementing the non-selected features and appropriately changing the codes implementing the selected features (S220). The generated software component is stored in the ASADAL / ASSET DB 400, and is passed to the configuration management module along with the feature selection information to be managed.

즉, 형상관리 모듈은 소프트웨어 컴포넌트 생성시 사용된 휘처 선택 정보와 자산 컴포넌트 정보를 관리하여, 소프트웨어 컴포넌트에 문제점이 발견되었을 때 휘처 모델과 자산 컴포넌트에 대한 역추적성을 제공하고, 컴포넌트의 버전을 관리한다(S230).That is, the configuration management module manages the feature selection information and the asset component information used when the software component is generated, and provides a traceback of the feature model and the asset component when a problem is found in the software component, and manages the version of the component. (S230).

예를 들어, 만약 ASADAL/COMP(200)에서 작성한 소프트웨어 컴포넌트가 외부 모듈에서 사용되는 중에 문제가 발생되면, 사용자는 그 문제의 해결을 위해서 ASADAL/COMP(200)의 형상 관리 모듈에게 그 소프트웨어 컴포넌트의 휘처 선택 정보와 자산 컴포넌트의 버전 정보를 얻음으로써 이 소프트웨어 컴포넌트가 만들어지기 까지의 자취를 얻을 수 있다. 이러한 정보를 분석하면 소프트웨어 컴포넌트의 문제점을 야기한 근본적인 원인을 찾아서 수정된 소프트웨어 컴포넌트를 생성할 수 있다.For example, if a problem occurs while a software component created by the ASADAL / COMP 200 is used in an external module, the user may ask the configuration management module of the ASADAL / COMP 200 to solve the problem. By obtaining the feature selection information and the version information of the asset component, you can get a trace until the software component is created. By analyzing this information, you can find the root cause of the software component problem and create a modified software component.

ASADAL/OBJASADAL / OBJ

ASADAL/OBJ(300)는 크게 응용 프로그램에 대한 설계 및 구현과, 가상 테스트베드(test-bed) 상의 시뮬레이션을 통한 응용 프로그램에 대한 검증 작업을 수행한다. 또한, ASADAL/OBJ(300)에서 제어부는 시스템을 제어하기 위한 응용 프로그램을 개발하기 위한 부분이며, 환경 객체 부분은 응용 프로그램이 실제로 배치되어 실행되는 가상 환경을 개발하기 위한 부분이다.The ASADAL / OBJ 300 largely performs the design and implementation of the application and the verification of the application through simulation on a virtual test bed. In addition, in the ASADAL / OBJ 300, the controller is a part for developing an application program for controlling the system, and the environment object part is a part for developing a virtual environment in which the application program is actually arranged and executed.

좀 더 구체적으로 설명하면, ASADAL/OBJ(300)은 응용 프로그램의 설계 및 구현 과정에서 이 응용 프로그램의 요구사항을 바탕으로 ASADAL/COMP(200)에서 생성된 소프트웨어 컴포넌트를 사용한다. ASADAL/OBJ(300)에서 소프트웨어 컴포넌트들은 행위 및 기능 명세 언어를 통하여 사용되며, 이들 컴포넌트들 및 ASADAL/COMP(200)에서 생성된 소프트웨어 컴포넌트의 관계를 표현하는 아키텍처 모델링이 제공된다. 또한, 가상 테스트베드 상의 시뮬레이션을 통한 응용 프로그램의 검증은 ASADAL/OBJ(300)의 환경 객체 모델링을 통해 응용 프로그램을 테스팅할 가상환경을 명세하여 3차원 시뮬레이션을 통해 수행된다.More specifically, the ASADAL / OBJ 300 uses software components generated by the ASADAL / COMP 200 based on the requirements of the application in the design and implementation of the application. Software components in ASADAL / OBJ 300 are used through behavioral and functional specification languages, and architectural modeling is provided that represents the relationship between these components and software components generated in ASADAL / COMP 200. In addition, the verification of the application through the simulation on the virtual test bed is performed through the three-dimensional simulation by specifying the virtual environment to test the application through the environment object modeling of the ASADAL / OBJ (300).

도 4는 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 프레임워크를 제 공하는 시스템인 ASADAL의 ASADAL/OBJ(300)의 제어부의 기능과 그 데이터 처리 흐름을 나타내는 블록도이다.Figure 4 is a block diagram showing the function of the control unit and the data processing flow of the ASADAL / OBJ 300 of the ASADAL system that provides a feature-based software reuse development framework according to the present invention.

먼저, 소프트웨어 아키텍처 모델링 모듈에서는 응용 프로그램 개발자(301)가 휘처의 비 기능적 요소를 실질적인 시스템에서 어떻게 배치할 것인지를 설계한다(S302). 즉, 이 모듈은 현재 ASADAL/ASSET DB(400)가 가지는 운영 모델과 소프트웨어 컴포넌트를 효율적으로 적절하게 사용하여 시스템에 대해 어떻게 아키텍처를 설계할 것인지를 결정한다. 이렇게 생성된 아키텍처 모델은 ASADAL/ASSET DB(400)에 저장된다.First, in the software architecture modeling module, the application developer 301 designs how to arrange the non-functional elements of the feature in the actual system (S302). That is, the module determines how to design the architecture for the system by efficiently using the operating model and software components of the current ASADAL / ASSET DB 400. The generated architecture model is stored in the ASADAL / ASSET DB (400).

다음으로, 운영 모델링 모듈은 시스템 내부가 가지는 기능과 행위를 명세하여 시스템을 표현한다(S304). ASADAL/OBJ(300)는 ASADAL/ASSET DB(400)에 저장되어 있는 시스템의 아키텍처를 참조하여 그 아키텍처에 맞게 시스템의 내부를 운영 모델링 명세할 수 있으며, 휘처 기반으로 생성된 소프트웨어 컴포넌트를 재사용하여 시스템을 구성할 수도 있다. ASADAL/OBJ(300)는 시스템 운영에 필요한 소프트웨어 컴포넌트를 사용할 수 있도록 하는 명세를 제공하므로 사용자는 편리하게 외부 소프트웨어 컴포넌트를 사용할 수 있다. 또한, ASADAL/ASSET DB(400)에 저장되어 있는 다른 시스템의 같은 기능을 가진 운영 모델을 재사용하여 사용할 수도 있다.Next, the operational modeling module expresses the system by specifying the functions and actions the system has inside (S304). ASADAL / OBJ (300) can refer to the architecture of the system stored in the ASADAL / ASSET DB (400) to specify the operating modeling of the system according to the architecture, and reuse the software components generated on the basis of the feature It can also be configured. The ASADAL / OBJ 300 provides a specification for using the software components required for operating the system, so that the user can conveniently use the external software components. In addition, an operation model having the same function as that of another system stored in the ASADAL / ASSET DB 400 may be reused.

모델의 유효성 검사는 각 모듈에서 얻어진 모델이 복잡하게 명세된 경우에 로직 분석기를 통해 명세의 불일치성이나 모델의 오류를 찾는 작업이다. ASADAL/OBJ(300)에서 응용 프로그램 개발자는 운영 모델과 아키텍처 모델의 유효성을 검증하여 자동 코드 생성시 발생할 수 있는 오류를 줄일 수 있으며 효율을 높일 수 있다(S306 및 S308).Model validation is the task of looking for inconsistencies in specifications or model errors through a logic analyzer when the models obtained in each module are complexly specified. In the ASADAL / OBJ (300), the application developer can reduce the errors that can occur during automatic code generation by validating the operational model and the architecture model (S306 and S308).

본 발명에 따른 개발 프레임워크에서는 ASADAL/ASSET DB(400)에서 가져온 운영모델을 자동 코드 생성 모듈의 입력으로 하여 타겟 프로그램 언어로 편리하게 코드를 생성할 수 있다. 즉, 자동 코드 생성 모듈을 통해 사용자는 소프트웨어 개발 시간을 줄이고 코드 작성 시 생기는 여러 가지 문제를 쉽게 해결할 수 있는 환경을 제공한다. ASADAL/OBJ(300)는 3차원 가상 시뮬레이션에서 테스팅하기 위한 시뮬레이션 코드와 실제 시스템에 배치(embed)되어 작동할 제어 코드(target code)를 생성한다(S310 및 S312). 따라서, 시뮬레이션 코드는 가상 테스팅 시에 환경 객체와 맞물려 시뮬레이션할 수 있도록 생성되며, 제어 코드는 실제 시스템에 다운로드되어 실행될 수 있도록 생성된다.In the development framework according to the present invention, an operation model taken from the ASADAL / ASSET DB 400 can be conveniently generated as a target programming language by using an automatic code generation module as an input. In other words, the automatic code generation module reduces the software development time and provides an environment where users can easily solve various problems that occur when writing code. The ASADAL / OBJ 300 generates a simulation code for testing in a three-dimensional virtual simulation and a control code (embedded) to operate in a real system (S310 and S312). Therefore, the simulation code is generated to be simulated by interlocking with an environment object during virtual testing, and the control code is generated to be downloaded and executed on the actual system.

도 5는 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 프레임워크인 ASADAL의 ASADAL/OBJ(300)의 환경 객체(environment object)의 기능과 그 데이터 처리 흐름을 나타내는 블록도이다.5 is a block diagram showing the function of the environment object (environment object) of the ASADAL / OBJ 300 of ASADAL, which is a feature-based software reuse development framework in accordance with the present invention and its data processing flow.

ASADAL/OBJ(300)의 큰 특징 중의 하나는 특정 소프트웨어가 배치되어 실행될 시스템을 가상으로 모델링할 수 있는 환경을 제공한다는 것이다. 이러한 환경은 자동 코드 생성을 통해 얻어진 코드가 실제 시스템에 배치되었을 때 제대로 동작할 수 있을지 테스트하기 위한 것으로, 실제 코드가 배치될 환경을 가상으로 모델링할 수 있다.One of the great features of the ASADAL / OBJ 300 is that it provides an environment for virtually modeling the system on which particular software is deployed and executed. This environment is designed to test whether the code obtained through automatic code generation can work properly when deployed on a real system. The environment can be modeled virtually.

도 5에서 환경 객체 모델링 모듈은 객체의 형태(shape)를 모델링하기 위해 여러 가지 모양을 가지는 시스템을 시각적으로 표현하기 위한 3차원 형태 모듈로 구성된다(S314). 이런 형태 모델은 운영 모델(S304)과 매치되어 가상 시뮬레이션 시에 실제 객체의 움직임을 가상으로 표현할 수 있다(S310).In FIG. 5, the environment object modeling module is composed of a three-dimensional shape module for visually representing a system having various shapes in order to model a shape of an object (S314). This shape model may be matched with the operation model S304 to virtually express the movement of the real object during the virtual simulation (S310).

도 6은 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 프레임워크인 ASADAL의 ASADAL/OBJ(300)의 I/O 매핑의 동작을 나타내기 위한 블록도이다. ASADAL/OBJ(300)에서는 제어부와 환경 객체 간의 데이터와 이벤트를 연결할 수 있는 가상 입출력(I/O) 매핑(S316)과 실제 시스템과 환경 객체 간의 데이터와 이벤트를 연결할 수 있는 실제 입출력(I/O) 매핑(S318)이 가능하다. ASADAL/OBJ(300)의 시뮬레이션 모듈은 제어 코드와 환경 객체 사이에서 데이터 및 이벤트를 연결시켜주는 입출력 대응 테이블(I/O mapping table) 모듈이 존재함으로써 제어 코드와 환경 객체가 맞물려 함께 시뮬레이션될 수 있도록 지원한다.6 is a block diagram illustrating the operation of I / O mapping of ASADAL / OBJ 300 of ASADAL, which is a feature-based software reuse development framework according to the present invention. In ASADAL / OBJ 300, a virtual input / output (I / O) mapping (S316) for connecting data and events between a control unit and an environment object and an actual input / output (I / O) for connecting data and events between a real system and an environment object ) Mapping (S318) is possible. The simulation module of ASADAL / OBJ 300 has an I / O mapping table module that connects data and events between control code and environment objects so that the control code and environment objects can be simulated together. Support.

도 7을 참조하면, 아키텍처 모델링과 운영 모델링을 통해서 얻은 응용 프로그램을 테스트하기 위해서 환경 모델링 모듈에서 응용 프로그램을 배치시킬 환경을 생성한 후, 이 둘 간의 데이터 및 이벤트를 매핑시키기 위해 I/O 매핑 모듈을 중간에 위치시킨다. 즉, 응용 프로그램 개발자는 ASADAL/OBJ(300)에서 제어부와 환경 객체를 모델링한 후, 이들 간에 이벤트와 데이터를 매핑시켜 시뮬레이션할 수 있는 I/O 매핑 모듈을 통해 연결한다(S320 내지 S324). 또한, ASADAL/OBJ(300)는 제어부와 환경 객체의 내부 명세를 입력으로 하여 실행 가능한 시뮬레이션 코드를 생성하여 시뮬레이션시키는 제어기 시뮬레이션 모듈(또는 엔진) 및 환경 시뮬레이션 모듈(또는 엔진)을 포함한다. 제어 코드를 시뮬레이션 시키는 엔진과 환경을 시뮬레이션 시키는 엔진이 서로 데이터와 이벤트를 주고받게 조정하는 I/O 핸들링 모듈을 지원함으로써 시각적이고 직관적인 소프트웨어 테스팅이 가능하다. 이러한 직관적인 테스팅을 통해 사용자는 제어 코드가 실제로 배치되었을 때 제대로 동작 가능한지 여부를 판단하고 시스템에서 예상되는 문제에 빠르게 대처할 수 있다.Referring to FIG. 7, in order to test an application obtained through architecture modeling and operational modeling, an environment modeling module generates an environment in which an application is to be deployed, and then I / O mapping module to map data and events between the two. In the middle. That is, the application programmer models the control unit and the environment object in the ASADAL / OBJ 300, and then connects the event and the data between them through an I / O mapping module that can be simulated (S320 to S324). Also, the ASADAL / OBJ 300 includes a controller simulation module (or engine) and an environment simulation module (or engine) for generating and simulating executable simulation code by inputting a control unit and an internal specification of an environment object. Visual and intuitive software testing is possible by supporting an engine that simulates control code and an I / O handling module that coordinates the exchange of data and events with each other. This intuitive testing allows the user to determine if the control code is actually working when it is actually deployed and to quickly cope with the problems expected in the system.

도 8은 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 프레임워크를 제공하는 시스템인 ASADAL의 ASADAL/OBJ(300)와 실제 시스템 간의 시뮬레이션을 나타내는 구성도이다. 도 8을 참조하면, ASADAL/OBJ(300)는 ASADAL/ASSET DB(400)에서 타겟 코드를 실제 시스템(330)으로 다운로드 시킨 후, 실제 시스템(330)과 가상 환경 시뮬레이션(S328) 간의 데이터 및 이벤트를 매핑시키기 위해서 실제 I/O 매핑 모듈(S326)을 그들의 중간에 위치시킨다. 이렇게 실제 시스템이 실제 객체에 대해 보내는 데이터와 이벤트를 가상 환경에서 미리 테스팅할 수 있으므로 실제 기계에 배치하기 전에 코드가 제대로 동작 가능한지 여부를 테스팅할 수 있으며 테스팅 비용을 줄일 수 있다.8 is a block diagram illustrating a simulation between an ASADAL / OBJ 300 and an actual system of ASADAL, which is a system providing a feature-based software reuse development framework according to the present invention. Referring to FIG. 8, after the ASADAL / OBJ 300 downloads the target code from the ASADAL / ASSET DB 400 to the real system 330, data and events between the real system 330 and the virtual environment simulation S328. In order to map the real I / O mapping module (S326) is placed in the middle of them. In this way, data and events sent by real systems to real objects can be pretested in a virtual environment, enabling you to test whether your code can work properly before deploying on a real machine, and reduce your testing costs.

도 9는 본 발명에 따른 휘처 기반 소프트웨어 제품라인 개발 프레임워크를 제공하는 시스템인 ASADAL의 ASADAL/ANALYZER(500)의 구성을 나타내는 블록도이다. 본 발명에 따른 ASADAL/ANALYZER(500)는 ASADAL/ASSET DB(400)에 저장된 모델들 간의 일관성을 검사하는 것과, 해당 모델의 명세가 유효한지를 검사하는 기능을 수행한다. 즉, 자산 개발자는 휘처 모델과 자산 컴포넌트 간의 일관성을 검증하고(S330), 응용 프로그램 개발자는 운영 모델 내부의 일관성, 아키텍처 모델과 소프트웨어 컴포넌트 간의 일관성, 소프트웨어 컴포넌트와 운영 모델 간의 일관성을 검증할 수 있다(S332 내지 S336). 이러한 모델 검사 기능은 설계 및 코드 생성 시 반 드시 수행되는 과정으로, 이러한 과정이 없이는 자동적으로 생성된 코드의 올바른 동작을 보장할 수 없게 된다.9 is a block diagram showing the configuration of ASADAL / ANALYZER 500 of ASADAL, a system that provides a feature-based software product line development framework in accordance with the present invention. The ASADAL / ANALYZER 500 according to the present invention performs a function of checking consistency between models stored in the ASADAL / ASSET DB 400 and checking whether a specification of the corresponding model is valid. That is, the asset developer verifies the consistency between the feature model and the asset component (S330), and the application developer may verify the consistency between the operational model, the consistency between the architectural model and the software component, and the consistency between the software component and the operational model ( S332 to S336). This model checking function is a process that must be performed during design and code generation. Without this process, automatic operation of automatically generated code cannot be guaranteed.

이상에서 설명한 ASADAL 프레임워크가 구체적으로 어떤 기능을 지원하는지를 (1) 자산 개발(asset development), (2) 응용 프로그램의 개발(application development), (3) 응용 프로그램 테스팅(application testing), (4) 응용 프로그램 유지 보수(application maintenance)의 관점에서 바라본 실시예를 통해서 살펴보도록 한다.Specifically, the ASADAL framework described above supports (1) asset development, (2) application development, (3) application testing, and (4) Let us look through the embodiment seen from the perspective of application maintenance (application maintenance).

제1실시예: 자산 개발Example 1: Asset Development

이상에서 설명한 본 발명에 따른 ASADAL의 모듈들을 이용해서 자산 컴포넌트를 개발하는 방법은 아래와 같다.A method of developing an asset component using the modules of the ASADAL according to the present invention described above is as follows.

즉, ASADAL 프레임워크는 휘처 중심으로 시스템을 분석하는 것을 기초로 한다. 따라서 자산 컴포넌트를 개발하기 전에, 영역에 대한 공통점과 차이점의 분석을 통해 후보 휘처들을 얻고 ASADAL/FORM(100)의 휘처 모델링 모듈을 사용하여 완성된 휘처 모델을 작성한다(도 2의 S110 및 S120 참조). 휘처 모델 자체의 유효성을 검증한 후 검증된 휘처 모델은 ASADAL/ASSET DB(400)에 저장한다(도 2의 S130 참조).In other words, the ASADAL framework is based on analyzing the system around features. Therefore, before developing an asset component, candidate features are obtained through analysis of commonalities and differences for the regions, and a completed feature model is created using the feature modeling module of ASADAL / FORM 100 (see S110 and S120 in FIG. 2). ). After validating the feature model itself, the verified feature model is stored in the ASADAL / ASSET DB 400 (see S130 of FIG. 2).

ASADAL/COMP(200)에서는 영역 분석을 통해 얻어진 휘처 모델에 대해 컴포넌트 전체에 걸쳐 영향을 미치는 필수 휘처, 컴포넌트의 일부분에 영향을 미치는 선 택적 휘처, 택일적으로 컴포넌트에 영향을 미치는 택일적 휘처들의 선택 가능성을 적절하게 대응할 수 있도록 매크로를 사용하여 자산 컴포넌트를 명세한다(도 3의 S240 참조). 이렇게 얻어진 자산 컴포넌트는 자산 컴포넌트 검증 모듈에서 유효성을 검증하고 ASADAL/ASSET DB(400)에 저장한다(도 3의 S210 참조). In the ASADAL / COMP 200, for the feature model obtained through the area analysis, the selection of mandatory features affecting the entire component, optional features affecting a part of the component, and alternative features affecting the component alternatively Asset components are specified using macros to appropriately address the possibilities (see S240 in FIG. 3). The asset component thus obtained is validated by the asset component verification module and stored in the ASADAL / ASSET DB 400 (see S210 of FIG. 3).

자산 개발자는 ASADAL/ANALYZER(500)를 통해 휘처 기반으로 작성된 자산 컴포넌트가 일관성 있게 작성되었는지를 검증한다(도 9 참조).The asset developer verifies whether the asset component created on the basis of the feature is consistently created through the ASADAL / ANALYZER 500 (see FIG. 9).

제2실시예: 응용 프로그램 개발Second Embodiment: Application Development

도메인(또는 영역)에 대한 자산 컴포넌트의 개발이 완료되었다면, 응용 프로그램 개발자는 휘처 모델에서 시스템 요구사항을 만족시키는 휘처만을 선택한다(도 2의 S140 및 S150 참조). 이러한 휘처의 선택은 ASADAL/FORM(100)에서 수행되며, 휘처 선택 정보는 ASADAL/ASSET DB(400)에 저장된다.Once the development of the asset component for the domain (or region) is complete, the application developer selects only the features that meet the system requirements in the feature model (see S140 and S150 in FIG. 2). The selection of the feature is performed in the ASADAL / FORM 100, and the feature selection information is stored in the ASADAL / ASSET DB 400.

ASADAL/COMP(200)에서는 휘처의 선택 정보와 자산 컴포넌트를 ASADAL/ASSET DB(400)에서 가져와서 소프트웨어 컴포넌트의 생성을 위해 휘처 선택 정보를 자산 컴포넌트에 적절하게 대응시키는 매크로 처리(macro-processing) 작업을 수행한다(도 3의 S220 참조). 즉, 사용자의 요구 사항에 맞게 선택된 휘처 선택 정보를 매크로 처리함으로써 선택된 휘처들을 구현하는 코드만 적용하여 완성된 소프트웨어 컴포넌트를 생성하는 것이다. 이렇게 만들어진 소프트웨어 컴포넌트는 ASADAL/COMP(200)의 형상관리 모듈을 통해 관리되며, 외부 모듈에서 재사용될 수 있도록 ASADAL/ASSET DB(400)에 저장된다(도 3의 S230 참조).ASADAL / COMP (200) is a macro-processing operation to take the feature selection information and asset components from the ASADAL / ASSET DB (400) to properly match the feature selection information to the asset component for generation of software components (See S220 of FIG. 3). In other words, by processing the feature selection information selected according to the requirements of the user by macro, only the code for implementing the selected features is applied to generate the completed software component. The software component thus created is managed through the configuration management module of the ASADAL / COMP 200, and is stored in the ASADAL / ASSET DB 400 to be reused in an external module (see S230 of FIG. 3).

위에서 설명한 바와 같이 소프트웨어 컴포넌트가 생성되면, 다음으로 재사용 컴포넌트를 사용하여 응용 프로그램을 작성하는데 아키텍처 모델링, 운영 모델링 및 자동 코드 생성을 지원하는 ASADAL/OBJ(300)가 사용된다. 즉, ASADAL/OBJ(300)는 ASADAL/ASSET DB(400)에 저장된 재사용 가능한 여러 모델을 기반으로 하여 사용자가 원하는 요구사항을 만족시키는 아키텍처 모델을 설계한다(도 4의 S302 참조). 또한 시스템의 내부 운영 모델을 시스템의 내부 기능과 행위의 관점에서 명세한다(도 4의 S304 참조). 기능 관점의 명세에서는 외부 소프트웨어 컴포넌트를 사용할 수 있도록 명세를 할 수 있어서 소프트웨어 컴포넌트를 재사용하여 시스템을 구성할 수 있다. 또한 작성된 아키텍처 모델과 운영 모델을 유효성 검증 모듈을 통해 그 유효성 검증을 수행할 수 있다(도 4의 S306 및 S308 참조).As described above, once the software component is created, the ASADAL / OBJ 300 is used to support architecture modeling, operational modeling, and automatic code generation to create applications using reusable components. That is, the ASADAL / OBJ 300 designs an architecture model that satisfies the requirements of the user based on various reusable models stored in the ASADAL / ASSET DB 400 (see S302 of FIG. 4). It also specifies the internal operating model of the system in terms of the internal functions and behavior of the system (see S304 in FIG. 4). In the specification of the functional point of view, the specification can be made to use external software components so that the system can be configured by reusing the software components. In addition, validation of the created architectural model and operational model can be performed through the validation module (see S306 and S308 of FIG. 4).

ASADAL/OBJ(300)에서 생성된 운영 모델을 자동 코드 생성 모듈의 입력이 되며, 실행 가능한 타켓 코드와 시뮬레이션 코드가 자동으로 생성된다(도 4의 S310 및 S312 참조). 이렇게 얻어진 시뮬레이션 코드는 가상 환경에서 제어부와 환경 객체가 서로 맞물려 돌아갈 수 있도록 하는 코드이며, 타겟 코드는 실제 시스템에 다운로드 되어 제어기능을 수행하는 코드이다. ASADAL/OBJ(300)에서 자동 생성된 실행 코드들은 응용 프로그램의 테스팅 단계에서 사용되며 ASADAL/ASSET DB(400)에 저장된다.The operation model generated by the ASADAL / OBJ 300 is an input of an automatic code generation module, and an executable target code and a simulation code are automatically generated (see S310 and S312 of FIG. 4). The simulation code thus obtained is a code that allows the controller and environment objects to interlock with each other in a virtual environment, and the target code is a code that is downloaded to an actual system and performs a control function. Execution codes automatically generated by the ASADAL / OBJ 300 are used in the testing phase of the application and are stored in the ASADAL / ASSET DB 400.

제3실시예: 응용 프로그램 테스팅Third Embodiment: Application Testing

응용 프로그램의 테스팅은 (i) 시뮬레이션 코드와 환경 객체를 통한 가상 시뮬레이션과, (ii) 타겟 코드를 실제 시스템에 다운로드하여 테스트하는 방식에 의해 이루어진다.Testing of the application is accomplished by (i) virtual simulations using simulation code and environment objects, and (ii) downloading and testing the target code on a real system.

먼저 가상 환경 시뮬레이션을 통한 테스팅은 ASADAL/OBJ(300)의 환경 모델링 모듈을 사용하여 프로그램이 배치되어 실행될 가상 환경을 명세한다(도 5의 S314 참조). 제어부의 코드와 환경 객체들 간의 데이터와 이벤트를 매핑하기 위해서 가상 I/O 매핑 모듈을 통해 서로간의 데이터를 매핑시키고, 매핑 정보는 ASADAL/ASSET DB(400)에 저장시킨다(도 6의 S316 참조). 다음으로, ASADAL/OBJ(300)는 시스템을 제어하는 제어 소프트웨어와 제어 소프트웨어를 배치하여 가상 환경에서 테스트할 수 있도록 작성된 3차원 시뮬레이션 모듈을 통하여 제어 소프트웨어를 직관적으로 테스트할 수 있으며 이러한 가상 환경을 통해 자동 생성된 코드가 가상 환경에서 의도된 대로 작동되는지 검증할 수 있다(도 7의 S320 내지 S324 참조).Testing through a virtual environment simulation first specifies a virtual environment in which a program is placed and executed using the environment modeling module of the ASADAL / OBJ 300 (see S314 of FIG. 5). In order to map data and events between the code of the control unit and the environment objects, data is mapped to each other through the virtual I / O mapping module, and the mapping information is stored in the ASADAL / ASSET DB 400 (see S316 of FIG. 6). . Next, ASADAL / OBJ (300) can intuitively test the control software through a three-dimensional simulation module that can be placed in the virtual environment by placing the control software and control software to control the system, and through this virtual environment It is possible to verify that the automatically generated code works as intended in the virtual environment (see S320 to S324 in FIG. 7).

가상 환경 테스팅에서 실행 코드가 검증되었다면, 실행 코드를 실제 시스템에 다운로드하여 제대로 작동하는지 검증해야 한다. ASADAL/OBJ(300)는 실제 시스템과 가상 시뮬레이션 환경이 서로 데이터와 이벤트를 주고받을 수 있는 실제 I/O 매핑 정보를 가짐으로써 실행 코드가 실제 시스템에서 제대로 작동하는지 검증할 수 있다(도 8의 S326 참조).Once the executable code has been verified in the virtual environment testing, you need to download the executable code to a real system to verify that it works. The ASADAL / OBJ 300 may verify that the execution code works properly in the real system by having real I / O mapping information in which the real system and the virtual simulation environment exchange data and events with each other (S326 of FIG. 8). Reference).

제4실시예: 응용 프로그램 유지보수Fourth Embodiment: Application Maintenance

ASADAL/OBJ(300)의 가상 시뮬레이션에서 테스트의 결과가 예상과 다를 경우에는, 소프트웨어 컴포넌트에서 발생한 에러를 다음과 같은 방법을 통해 수정할 수 있다.If the result of the test in the virtual simulation of the ASADAL / OBJ 300 is different from the expected, the error occurred in the software component can be corrected through the following method.

(1) 먼저, 휘처 모델 자체에 수정이 필요한지 고려한다. 이 경우 ASADAL/FORM(100)을 통해서 수정할 수 있으며, 이렇게 수정된 휘처 모델은 ASADAL/ASSET DB(400)에 저장하고, ASADAL/COMP(200)에서 소프트웨어 컴포넌트를 다시 생성한다.(1) First, consider whether the feature model itself needs correction. In this case, it can be modified through the ASADAL / FORM 100. The modified feature model is stored in the ASADAL / ASSET DB 400, and the software component is re-created in the ASADAL / COMP 200.

(2) 휘처 모델의 수정이 필요하지 않은 경우에는, 자산 컴포넌트에 수정이 필요한지 고려한다. 자산 컴포넌트에 수정이 필요한 경우에는 ASADAL/COMP(200)에서 수정하여 ASADAL/ASSET DB(400)에 저장하고, ASADAL/COMP(200)에서 소프트웨어 컴포넌트를 다시 생성한다.(2) If modification of the feature model is not required, consider whether the asset component needs modification. If the asset component needs to be modified, it is modified in ASADAL / COMP (200), stored in ASADAL / ASSET DB (400), and the software component is regenerated in ASADAL / COMP (200).

(3) 휘처 모델과 자산 컴포넌트에 수정이 필요하지 않은 경우에는, ASADAL/OBJ(300)에서 운영 모델링 모듈을 통해 내부 명세를 수정한다.(3) If the feature model and asset component do not require modification, the ASADAL / OBJ 300 modifies the internal specification through the operational modeling module.

위와 같은 방법을 통하여 소프트웨어 컴포넌트에서 발생한 문제를 찾아낸 후, ASADAL/OBJ(300)는 코드 자동 생성을 통해 수정된 코드를 가지고 가상 환경에서 테스트하여 소프트웨어를 개발할 수 있다.After finding the problem occurring in the software component through the above method, the ASADAL / OBJ 300 may develop the software by testing in a virtual environment with the modified code through automatic code generation.

이상에서 설명한 바와 같이, 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 환경을 제공하는 시스템인 ASADAL은 비슷한 시스템을 이루는 영역 내의 시스템들의 기능적, 환경적, 기술적 및 구현적 공통점과 차이점을 명확히 분석하여 컴포넌트 개발에 반영함으로써 컴포넌트의 재사용성과 적응가능성을 높이는 이점을 가진다.As described above, ASADAL, a system that provides a feature-based software reuse development environment according to the present invention, clearly analyzes the functional, environmental, technical, and implementation commonalities and differences of systems in a domain forming a similar system to develop components. Reflecting has the advantage of increasing the reusability and adaptability of the component.

또한, 본 발명에 따른 개발 환경에서는 소프트웨어의 개발 초기 단계에서부터 모델을 검증하고, 시뮬레이션을 통해 모델의 오류를 찾아낼 수 있다. 따라서, 이러한 분석을 통해 모델의 신뢰도를 높일 수 있고, 소프트웨어 개발 초기 단계에 중대한 오류를 검사할 수 있으므로 개발비용을 크게 줄일 수 있는 효과가 있다.In addition, in the development environment according to the present invention, the model can be verified from the initial stage of software development, and errors of the model can be found through simulation. Therefore, this analysis can increase the reliability of the model and can significantly reduce the development cost because it can check for critical errors in the early stages of software development.

본 발명에 따른 3차원 시뮬레이션을 통한 소프트웨어 검사는 실제 현실 세계와 유사한 환경을 3차원 모델링을 통해서 구축하고 이를 바탕으로 소프트웨어 검사 및 평가를 수행하므로, 다양한 검사를 적은 비용으로 수행할 수 있는 장점이 있다. 특히, 실시간 제어 시스템은 임베디드 시스템(embedded system)인 경우가 대부분이므로, 외부의 하드웨어 환경과 내부 소프트웨어 시스템이 정상적으로 상호작용 하는지를 소프트웨어적으로 검사하고 평가하는 일이 소프트웨어의 신뢰도를 높일 수 있을 뿐만 아니라 시스템의 검사비용도 크게 줄일 수 있다.Software inspection through the three-dimensional simulation according to the present invention has the advantage that can perform a variety of inspection at a low cost since the environment similar to the real world is built through the three-dimensional modeling and performing the software inspection and evaluation based on this . In particular, since a real-time control system is often an embedded system, software inspection and evaluation of an external hardware environment and an internal software system can enhance the reliability of the software. Inspection costs can also be significantly reduced.

본 발명에 따른 개발 환경은 소프트웨어 분석, 설계, 구현 및 테스팅의 단계를 모두 지원하는 체계적인 프레임워크를 제공함으로써 각 단계마다 의미 있는 산출물을 얻을 수 있는 효과가 있다. 또한, 본 발명에 따른 개발 환경은 소프트웨어의 효율적인 재사용이 기능하도록 설계되어 있으며, 이러한 재사용 기법은 여러 분 야의 소프트웨어 개발에 광범위하게 적용될 수 있다.The development environment according to the present invention provides a systematic framework that supports all steps of software analysis, design, implementation, and testing, thereby obtaining meaningful output at each step. In addition, the development environment according to the present invention is designed such that efficient reuse of software functions, and this reuse technique can be widely applied to various areas of software development.

Claims (12)

휘처 기반 소프트웨어 제품라인 개발 환경을 제공하는 시스템에 있어서,A system for providing a feature-based software product line development environment, 특정 영역에 대한 휘처 모델링과 상기 휘처 모델링에 의해 생성된 휘처 중에서 응용 프로그램에 해당하는 휘처를 선택하는 ASADAL/FORM,ASADAL / FORM for selecting the feature corresponding to the application from the feature modeling for the specific region and the feature generated by the feature modeling; 상기 휘처 선택 정보에 기초하여 자산 컴포넌트를 개발하고 매크로 처리를 통한 소프트웨어 컴포넌트의 생성 및 상기 소프트웨어 컴포넌트의 형상 관리를 수행하는 ASADAL/COMP,ASADAL / COMP, which develops an asset component based on the feature selection information, generates a software component through macro processing, and performs shape management of the software component; 상기 응용 소프트웨어 개발을 위한 아키텍처 모델링 및 운영 모델링과 자동 코드 생성, 가상 테스트 베드의 구축 및 시뮬레이션을 통한 검증을 수행하는 ASADAL/OBJ,ASADAL / OBJ, which performs architecture modeling and operational modeling for the application software development, automatic code generation, and verification by building and simulating a virtual test bed, 상기 ASADAL/FORM, ASADAL/COMP 및 ASADAL/OBJ에 의해 생성된 데이터를 저장하는 ASADAL/ASSET DB,An ASADAL / ASSET DB for storing data generated by the ASADAL / FORM, ASADAL / COMP and ASADAL / OBJ, 상기 ASADAL/ASSET DB에 저장된 데이터들 간의 일관성을 검증하는 ASADAL/ANALYZER를 포함하는 Includes ASADAL / ANALYZER for verifying the consistency between the data stored in the ASADAL / ASSET DB 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 ASADAL/FORM은,The ASADAL / FORM, 상기 영역의 분석을 통해 얻은 후보 휘처들을 바탕으로 상기 영역과 관련된 시스템들의 공통점을 나타내는 필수 휘처, 상기 시스템들 간의 차이점을 나타내는 선택적 휘처 및 택일적 휘처를 분류하여 트리 구조로 구성된 휘처 모델의 작성을 수행하는 휘처 모델링 에디터,Based on the candidate features obtained through the analysis of the region, essential features representing the commonalities of the systems related to the region, selective features representing the differences between the systems, and alternative features are classified to create a feature structure composed of a tree structure. Feature modeling editor, 상기 휘처들의 관계 및 상기 휘처 모델의 합성 규칙에 따른 명세 여부를 검증하는 휘처 모델 검증 모듈,Feature model verification module for verifying whether the specification according to the relationship between the feature and the composition rule of the feature model, 상기 휘처 모델에서의 휘처의 설명 및 합성 규칙을 이용하여 상기 응용 프로그램의 요구사항에 맞는 유효한 휘처를 선택하는 휘처 선택 모듈을 포함하는 것을 특징으로 하는And a feature selection module for selecting a valid feature that meets the requirements of the application program by using the feature description and composition rule of the feature model. 시스템.system. 제 2 항에 있어서,The method of claim 2, 상기 휘처 모델링 에디터 및 상기 휘처 선택 모듈에서 각각 생성된 상기 휘처 모델 및 상기 휘처 선택 정보는 상기 ASADAL/ASSET DB에 저장되는 것을 특징으로 하는The feature model and the feature selection information generated in the feature modeling editor and the feature selection module are stored in the ASADAL / ASSET DB. 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 ASADAL/COMP는, ASADAL / COMP, 상기 휘처 모델에서 선택적 휘처 및 택일적 휘처에 따라 자산 컴포넌트가 어떻게 대응할지를 매크로를 이용하여 명세하는 자산 컴포넌트 개발 모듈,An asset component development module that specifies, using a macro, how an asset component corresponds to an optional feature and an optional feature in the feature model; 상기 매크로의 작성시 발생하는 문법적인 오류와 명세의 유효성을 검증하는 자산 컴포넌트 검증 모듈,Asset component verification module for validating the grammatical errors and specifications that occur when the macro is written, 상기 휘처 선택 정보에 기초하여 자산 컴포넌트 명세에 포함된 매크로를 처리하여 선택된 휘처들을 구현하는 코드를 변화시켜 소프트웨어 컴포넌트를 자동 생성하는 소프트웨어 컴포넌트 생성 모듈,A software component generation module configured to process a macro included in the asset component specification based on the feature selection information to change a code for implementing the selected features to automatically generate a software component; 상기 소프트웨어 컴포넌트의 생성 시 사용된 휘처 선택 정보와 자산 컴포넌트 정보에 기초하여 생성된 형상관리 정보를 관리하며, 상기 소프트웨어 컴포넌트에 문제점이 발견되면 휘처 모델과 자산 컴포넌트에 대한 역추적성을 제공하는 컴포넌트 형상관리 모듈을 포함하는 것을 특징으로 하는 Component configuration management based on the feature selection information and asset component information used in the creation of the software component and manages the configuration management information. If a problem is found in the software component, the component configuration management provides traceback to the feature model and the asset component. Characterized in that it comprises a module 시스템 system 제 4 항에 있어서,The method of claim 4, wherein 상기 자산 컴포넌트 개발 모듈은 상기 ASADAL/ASSET DB에서 상기 휘처 모델을 전달받아 상기 자산 컴포넌트를 생성하며, 상기 생성된 자산 컴포넌트를 상기 ASADAL/ASSET DB에 저장하며,The asset component development module receives the feature model from the ASADAL / ASSET DB to generate the asset component, and stores the generated asset component in the ASADAL / ASSET DB. 상기 소프트웨어 컴포넌트 생성 모듈은 상기 ASADAL/ASSET DB에서 상기 휘처 선택 정보와 상기 자산 컴포넌트를 전달받아 상기 소프트웨어 컴포넌트를 생성하며, 상기 생성된 소프트웨어 컴포넌트를 상기 ASADAL/ASSET DB에 저장하며,The software component generation module receives the feature selection information and the asset component from the ASADAL / ASSET DB to generate the software component, and stores the generated software component in the ASADAL / ASSET DB. 상기 형상관리 모듈에서 생성된 상기 형상관리 정보는 상기 ASADAL/ASSET DB에 저장되는 것을 특징으로 하는The configuration management information generated by the configuration management module is stored in the ASADAL / ASSET DB, characterized in that 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 ASADAL/OBJ는,The ASADAL / OBJ, 상기 휘처 모델에 표현된 휘처의 비기능적 요소를 실질적인 시스템에서 어떻게 배치할지를 설계하여 소프트웨어 아키텍처를 생성하는 소프트웨어 아키텍처 모델링 모듈,A software architecture modeling module for creating a software architecture by designing how to place non-functional elements of features represented in the feature model in a practical system, 상기 소프트웨어 아키텍처를 참조하여 상기 시스템이 가지는 기능과 행위를 명세하여 상기 시스템을 표현하는 운영 모델을 생성하는 운영 모델링 모듈,An operation modeling module for generating an operation model representing the system by specifying functions and behaviors of the system with reference to the software architecture; 상기 소프트웨어 아키텍처 모델링 모듈 및 운영 모델링 모듈에서 생성된 소프트웨어 아키텍처 및 운영 모델에 포함된 명세의 불일치성 및 오류를 검증하는 모델 유효성 검증 모듈,A model validation module for verifying inconsistencies and errors in specifications included in the software architecture model and the operating model generated by the software architecture modeling module and the operational modeling module, 상기 운영 모델을 기초로 하여 얻은 기능과 행위의 명세를 이용하여 타겟 프로그램 언어로 제어 코드 및 시뮬레이션 코드를 생성하는 자동 코드 생성 모듈을 포함하는 것을 특징으로 하는And an automatic code generation module for generating a control code and a simulation code in a target programming language using a specification of functions and behaviors obtained based on the operational model. 시스템.system. 제 6 항에 있어서,The method of claim 6, 상기 ASADAL/OBJ는,The ASADAL / OBJ, 상기 응용 프로그램이 배치되어 실행될 시스템을 가상으로 모델링하여 환경 객체를 생성하는 환경 객체 모델링 모듈,An environment object modeling module for generating an environment object by virtually modeling a system in which the application is to be executed and executed; 상기 제어 코드를 상기 시스템을 제어하기 위한 응용 프로그램을 개발하는 제어부에서 실행하는 제어기 시뮬레이션 모듈,A controller simulation module for executing the control code in a controller for developing an application program for controlling the system; 상기 시뮬레이션 코드를 상기 환경 객체에서 실행하는 환경 시뮬레이션 모듈,An environment simulation module for executing the simulation code on the environment object; 상기 제어기 시뮬레이션 모듈과 상기 환경 시뮬레이션 모듈 간에 송수신되는 데이터와 이벤트를 연결하는 가상 입출력 매핑 모듈,A virtual input / output mapping module for connecting data and events transmitted and received between the controller simulation module and the environment simulation module; 상기 시스템과 상기 환경 시뮬레이션 모듈 간에 송수신되는 데이터와 이벤트를 연결하는 실제 입출력 매핑 모듈을 더 포함하는 것을 특징으로 하는And an actual input / output mapping module for connecting data and events transmitted and received between the system and the environment simulation module. 시스템.system. 제 7 항에 있어서,The method of claim 7, wherein 상기 환경 객체 모델링 모듈은 상기 환경 객체의 형태를 모델링하기 위해 여 러 가지 모양을 가지는 시스템을 시각적으로 표현하기 위한 3차원 형태를 생성하며, 상기 환경 시뮬레이션 모듈은 상기 3차원 형태를 상기 운영 모델과 매치하여 3차원 시뮬레이션을 수행하는 것을 특징으로 하는The environment object modeling module generates a three-dimensional shape for visually representing a system having various shapes to model the shape of the environment object, and the environment simulation module matches the three-dimensional shape with the operational model. Characterized in that to perform a three-dimensional simulation 시스템. system. 제 7 항에 있어서,The method of claim 7, wherein 상기 타겟 코드는 상기 시스템에서 실제 시스템의 제어기로 다운로드되며, 상기 시스템은 상기 실제 입출력 매핑 모듈을 통하여 상기 환경 시뮬레이션 모듈과 이벤트와 데이터의 통신을 수행하여 시뮬레이션을 수행하는 것을 특징으로 하는The target code is downloaded from the system to a controller of an actual system, and the system performs simulation by communicating an event and data with the environment simulation module through the actual input / output mapping module. 시스템.system. 제 6 항에 있어서,The method of claim 6, 상기 운영 모델링 모듈은 기능 명세의 방법을 통하여 상기 시스템의 외부에서 입력되는 재사용 가능한 소프트웨어 컴포넌트를 사용하는 것을 특징으로 하는 The operational modeling module uses reusable software components input from the outside of the system through a method of functional specification. 시스템.system. 제 6 항에 있어서,The method of claim 6, 상기 소프트웨어 아키텍처 모델링 모듈은 생성된 소프트웨어 아키텍처를 상기 ASADAL/ASSET DB에 저장하며,The software architecture modeling module stores the generated software architecture in the ASADAL / ASSET DB, 상기 운영 모델링 모듈은 상기 ASADAL/ASSET DB에 저장된 상기 소프트웨어 아키텍처를 전달받아 상기 운영 모델을 생성하고, 상기 생성된 운영 모델을 상기 ASADAL/ASSET DB에 저장하는 것을 특징으로 하는The operational modeling module receives the software architecture stored in the ASADAL / ASSET DB, generates the operational model, and stores the generated operational model in the ASADAL / ASSET DB. 시스템.system. 제 1 항에 있어서,The method of claim 1, 상기 ASADAL/ANALYZER는,The ASADAL / ANALYZER, 상기 휘처 모델과 상기 자산 컴포넌트 간의 일관성을 검사하는 모듈,A module for checking consistency between the feature model and the asset component, 상기 운영 모델의 일관성을 검사하는 모듈,A module for checking the consistency of the operational model, 상기 아키텍처 모델과 상기 소프트웨어 컴포넌트 간의 일관성을 검사하는 모듈,A module for checking consistency between the architectural model and the software component, 상기 소프트웨어 컴포넌트와 상기 운영 모델 간의 일관성을 검사하는 모듈을 포함하는 것을 특징으로 하는And a module for checking consistency between the software component and the operational model. 시스템.system.
KR1020050056305A 2005-06-28 2005-06-28 Asadal : system for providing feature-oriented software product line engineering environment KR100744886B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050056305A KR100744886B1 (en) 2005-06-28 2005-06-28 Asadal : system for providing feature-oriented software product line engineering environment
JP2005215541A JP2007012003A (en) 2005-06-28 2005-07-26 System for providing development environment of feature-oriented software product line
PCT/KR2005/003651 WO2007001108A1 (en) 2005-06-28 2005-11-01 System for providing feature-oriented software product line engineering environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050056305A KR100744886B1 (en) 2005-06-28 2005-06-28 Asadal : system for providing feature-oriented software product line engineering environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020070035518A Division KR20070049126A (en) 2007-04-11 2007-04-11 Asadal : system for providing feature-oriented software product line engineering environment

Publications (2)

Publication Number Publication Date
KR20070000732A true KR20070000732A (en) 2007-01-03
KR100744886B1 KR100744886B1 (en) 2007-08-01

Family

ID=37595330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050056305A KR100744886B1 (en) 2005-06-28 2005-06-28 Asadal : system for providing feature-oriented software product line engineering environment

Country Status (3)

Country Link
JP (1) JP2007012003A (en)
KR (1) KR100744886B1 (en)
WO (1) WO2007001108A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860963B1 (en) * 2007-03-08 2008-09-30 삼성전자주식회사 Apparatus and method for developing software based on component
KR100890861B1 (en) * 2008-03-04 2009-03-27 정병수 Construction method for framework of 3 dimensional application program and implementation method for application program thereof
KR100946763B1 (en) * 2008-07-23 2010-03-11 성균관대학교산학협력단 Method and device for generating of code
US8601433B2 (en) 2008-02-15 2013-12-03 Samsung Electronics Co., Ltd. Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
KR101484680B1 (en) * 2007-10-04 2015-01-21 삼성전자 주식회사 System and Method for Software Product Management with a Component Model
KR101691929B1 (en) * 2015-09-21 2017-01-17 배재대학교 산학협력단 An apparatus for implementing an automation of a web user interface and method therefor
US10055204B2 (en) 2015-10-30 2018-08-21 Xiaomi Inc. Generating communication firmware and a program plug-in based on product information and a program template
KR20200102264A (en) 2019-02-21 2020-08-31 국방과학연구소 Apparatus and method for supporting weapon system software product line engineering and computer readible storage medium therefor
KR20200143073A (en) 2019-06-14 2020-12-23 국방과학연구소 Method and apparatus for generating technical document of weapon system software based on software product line

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103495B2 (en) 2007-08-08 2012-01-24 Microsoft Corporation Feature oriented protocol modeling
US20090089739A1 (en) * 2007-09-28 2009-04-02 Microsoft Corporation Intelligent editing of relational models
CN101937336B (en) 2009-06-30 2013-12-25 国际商业机器公司 Software asset bundling and consumption method and system
US8584080B2 (en) 2010-03-22 2013-11-12 International Business Machines Corporation Modeling and generating computer software product line variants
JP5316485B2 (en) * 2010-06-22 2013-10-16 富士電機株式会社 Software development support apparatus, software development support method, and software development support program
KR101155207B1 (en) * 2010-11-18 2012-06-13 포항공과대학교 산학협력단 Method of developing software and apparatus for the same
US8549473B2 (en) 2011-05-19 2013-10-01 International Business Machines Corporation Configuration management system for software product line development environment
KR101290847B1 (en) 2011-11-11 2013-07-29 포항공과대학교 산학협력단 Method for creating a feature model from legacy system source code
GB201209987D0 (en) * 2012-06-06 2012-07-18 Microsoft Corp Address system
KR101363657B1 (en) * 2012-12-06 2014-02-20 포항공과대학교 산학협력단 Method for comparing feature models and apparatus for the same
CN103399740B (en) * 2013-07-19 2016-08-10 北京大学 Software quality Requirements Modeling and inference method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895764A (en) * 1994-09-26 1996-04-12 Atr Tsushin Syst Kenkyusho:Kk Software design support device
JPH08234972A (en) * 1995-02-23 1996-09-13 Hitachi Eng Co Ltd Software reusing device and method
US5673199A (en) 1995-05-01 1997-09-30 Hughes Electronics Computer aided reuse tool
JPH11237982A (en) 1998-02-23 1999-08-31 Ricoh Co Ltd Software component development supporting device
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
US20020035584A1 (en) * 2000-05-09 2002-03-21 Paul Scheier icFoundation web site development software and icFoundation biztalk server 2000 integration
US7117480B2 (en) 2001-11-27 2006-10-03 3M Innovative Properties Company Reusable software components for invoking computational models
US7152028B2 (en) * 2001-12-13 2006-12-19 Texas Instruments Incorporated Software development tool with embedded cache analysis
CA2409788A1 (en) * 2002-10-25 2004-04-25 Ibm Canada Limited-Ibm Canada Limitee Architecture for dynamically monitoring computer application data
KR20060070611A (en) * 2004-12-21 2006-06-26 한국전자통신연구원 Asset and product creation device and method using product line analysis

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860963B1 (en) * 2007-03-08 2008-09-30 삼성전자주식회사 Apparatus and method for developing software based on component
KR101484680B1 (en) * 2007-10-04 2015-01-21 삼성전자 주식회사 System and Method for Software Product Management with a Component Model
US9081637B2 (en) 2007-10-04 2015-07-14 Samsung Electronics Co., Ltd. System and method for a software product manager
US8601433B2 (en) 2008-02-15 2013-12-03 Samsung Electronics Co., Ltd. Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
KR100890861B1 (en) * 2008-03-04 2009-03-27 정병수 Construction method for framework of 3 dimensional application program and implementation method for application program thereof
KR100946763B1 (en) * 2008-07-23 2010-03-11 성균관대학교산학협력단 Method and device for generating of code
KR101691929B1 (en) * 2015-09-21 2017-01-17 배재대학교 산학협력단 An apparatus for implementing an automation of a web user interface and method therefor
US10055204B2 (en) 2015-10-30 2018-08-21 Xiaomi Inc. Generating communication firmware and a program plug-in based on product information and a program template
KR20200102264A (en) 2019-02-21 2020-08-31 국방과학연구소 Apparatus and method for supporting weapon system software product line engineering and computer readible storage medium therefor
KR20200143073A (en) 2019-06-14 2020-12-23 국방과학연구소 Method and apparatus for generating technical document of weapon system software based on software product line

Also Published As

Publication number Publication date
KR100744886B1 (en) 2007-08-01
JP2007012003A (en) 2007-01-18
WO2007001108A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
KR100744886B1 (en) Asadal : system for providing feature-oriented software product line engineering environment
US9754059B2 (en) Graphical design verification environment generator
JP5295269B2 (en) Method for generating component model-based virtual software platform, method for verifying software platform architecture using the same, and apparatus therefor
CN110008113B (en) Test method and device and electronic equipment
WO2012032890A1 (en) Source code conversion method and source code conversion program
JP2004139599A (en) Method for automatically decomposing dynamic system model into submodel
CN103065000A (en) MDE (model driven engineering)-based method for analyzing and verifying SysML state machine diagram
Zeller et al. Functional verification of distributed automation systems: Assisting production line operators by an automated model composition
KR20070049126A (en) Asadal : system for providing feature-oriented software product line engineering environment
KR20190094779A (en) Automatically Generate Device for PLC Instruction Compiler Test-Case
Kim et al. ASADAL: a tool system for co-development of software and test environment based on product line engineering
Zaeh et al. Model-driven development of PLC software for machine tools
JP2008305079A (en) Requirement specification automatic verification method
Bagheri et al. Monarch: Model-based development of software architectures
Liu et al. Model-driven design of tools for multi-domain systems with loosely coupled metamodels
US20230011461A1 (en) Method and system for generating engineering diagrams in an engineering system
Kernschmidt et al. Possibilities and challenges of an integrated development using a combined SysML-model and corresponding domain specific models
Pitchford Embedded software quality, integration, and testing techniques
JP4609655B2 (en) Attached data generator for program parts
Priggouris et al. The system design life cycle
CN117272694B (en) Method, system and medium for establishing equipment simulation model based on parameter componentization
Ruchkin Towards Integration of Modeling Methods for Cyber-Physical Systems.
Jambon et al. Dialogue validation from task analysis
DeVries Mapping of UML Diagrams to Extended Petri Nets for Formal Verification
Ray Automated translation of matlab Simulink/Stateflow models to an intermediate format in hyvisual

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20120710

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130710

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee