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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-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
Description
도 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 /
본 발명에 따른 시스템에서, 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 /
이하에서는 본 발명에 따른 개발 프레임워크를 제공하는 시스템인 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 /
휘처(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
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
영역 내에 속하는 응용 프로그램의 요구 사항은 그 영역에 대한 휘처 모델에서 차이점을 나타내는 휘처들 중에서 응용 프로그램에 해당되는 휘처들과 공통점을 표현하는 필수 휘처들을 선택함으로써 명세할 수 있다. 응용 프로그램 개발자는 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
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 /
이하에서는 도 3을 참조하여 ASADAL/COMP(200)의 주요 기능 중의 하나인 자산 컴포넌트의 개발 과정을 자세히 설명한다. Hereinafter, a process of developing an asset component which is one of the main functions of the ASADAL /
자산 컴포넌트는 다양한 요구사항을 갖는 여러 응용 프로그램에서 재사용될 수 있도록, 휘처 모델에서 검색된 응용 프로그램들 간의 차이점을 나타내는 택일적 휘처 및 선택적 휘처를 중심으로, 그러한 휘처들이 선택되는 경우와 선택되지 않은 경우에 각각 적절히 대응할 수 있도록 작성되어야 한다. 또한, 자산 컴포넌트는 자산 컴포넌트 작성시 사용할 수 있는 휘처의 선택 여부, 그에 따른 불필요한 코드의 제거 및 적절한 코드의 삽입을 지원하는 매크로(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 /
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 /
즉, 형상관리 모듈은 소프트웨어 컴포넌트 생성시 사용된 휘처 선택 정보와 자산 컴포넌트 정보를 관리하여, 소프트웨어 컴포넌트에 문제점이 발견되었을 때 휘처 모델과 자산 컴포넌트에 대한 역추적성을 제공하고, 컴포넌트의 버전을 관리한다(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 /
ASADAL/OBJASADAL / OBJ
ASADAL/OBJ(300)는 크게 응용 프로그램에 대한 설계 및 구현과, 가상 테스트베드(test-bed) 상의 시뮬레이션을 통한 응용 프로그램에 대한 검증 작업을 수행한다. 또한, ASADAL/OBJ(300)에서 제어부는 시스템을 제어하기 위한 응용 프로그램을 개발하기 위한 부분이며, 환경 객체 부분은 응용 프로그램이 실제로 배치되어 실행되는 가상 환경을 개발하기 위한 부분이다.The ASADAL /
좀 더 구체적으로 설명하면, ASADAL/OBJ(300)은 응용 프로그램의 설계 및 구현 과정에서 이 응용 프로그램의 요구사항을 바탕으로 ASADAL/COMP(200)에서 생성된 소프트웨어 컴포넌트를 사용한다. ASADAL/OBJ(300)에서 소프트웨어 컴포넌트들은 행위 및 기능 명세 언어를 통하여 사용되며, 이들 컴포넌트들 및 ASADAL/COMP(200)에서 생성된 소프트웨어 컴포넌트의 관계를 표현하는 아키텍처 모델링이 제공된다. 또한, 가상 테스트베드 상의 시뮬레이션을 통한 응용 프로그램의 검증은 ASADAL/OBJ(300)의 환경 객체 모델링을 통해 응용 프로그램을 테스팅할 가상환경을 명세하여 3차원 시뮬레이션을 통해 수행된다.More specifically, the ASADAL /
도 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 /
먼저, 소프트웨어 아키텍처 모델링 모듈에서는 응용 프로그램 개발자(301)가 휘처의 비 기능적 요소를 실질적인 시스템에서 어떻게 배치할 것인지를 설계한다(S302). 즉, 이 모듈은 현재 ASADAL/ASSET DB(400)가 가지는 운영 모델과 소프트웨어 컴포넌트를 효율적으로 적절하게 사용하여 시스템에 대해 어떻게 아키텍처를 설계할 것인지를 결정한다. 이렇게 생성된 아키텍처 모델은 ASADAL/ASSET DB(400)에 저장된다.First, in the software architecture modeling module, the
다음으로, 운영 모델링 모듈은 시스템 내부가 가지는 기능과 행위를 명세하여 시스템을 표현한다(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 /
모델의 유효성 검사는 각 모듈에서 얻어진 모델이 복잡하게 명세된 경우에 로직 분석기를 통해 명세의 불일치성이나 모델의 오류를 찾는 작업이다. 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 /
도 5는 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 프레임워크인 ASADAL의 ASADAL/OBJ(300)의 환경 객체(environment object)의 기능과 그 데이터 처리 흐름을 나타내는 블록도이다.5 is a block diagram showing the function of the environment object (environment object) of the ASADAL /
ASADAL/OBJ(300)의 큰 특징 중의 하나는 특정 소프트웨어가 배치되어 실행될 시스템을 가상으로 모델링할 수 있는 환경을 제공한다는 것이다. 이러한 환경은 자동 코드 생성을 통해 얻어진 코드가 실제 시스템에 배치되었을 때 제대로 동작할 수 있을지 테스트하기 위한 것으로, 실제 코드가 배치될 환경을 가상으로 모델링할 수 있다.One of the great features of the ASADAL /
도 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 /
도 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 /
도 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 /
도 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 /
이상에서 설명한 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 /
자산 개발자는 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 /
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 /
위에서 설명한 바와 같이 소프트웨어 컴포넌트가 생성되면, 다음으로 재사용 컴포넌트를 사용하여 응용 프로그램을 작성하는데 아키텍처 모델링, 운영 모델링 및 자동 코드 생성을 지원하는 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 /
ASADAL/OBJ(300)에서 생성된 운영 모델을 자동 코드 생성 모듈의 입력이 되며, 실행 가능한 타켓 코드와 시뮬레이션 코드가 자동으로 생성된다(도 4의 S310 및 S312 참조). 이렇게 얻어진 시뮬레이션 코드는 가상 환경에서 제어부와 환경 객체가 서로 맞물려 돌아갈 수 있도록 하는 코드이며, 타겟 코드는 실제 시스템에 다운로드 되어 제어기능을 수행하는 코드이다. ASADAL/OBJ(300)에서 자동 생성된 실행 코드들은 응용 프로그램의 테스팅 단계에서 사용되며 ASADAL/ASSET DB(400)에 저장된다.The operation model generated by the ASADAL /
제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 /
제4실시예: 응용 프로그램 유지보수Fourth Embodiment: Application Maintenance
ASADAL/OBJ(300)의 가상 시뮬레이션에서 테스트의 결과가 예상과 다를 경우에는, 소프트웨어 컴포넌트에서 발생한 에러를 다음과 같은 방법을 통해 수정할 수 있다.If the result of the test in the virtual simulation of the ASADAL /
(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 /
(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 /
위와 같은 방법을 통하여 소프트웨어 컴포넌트에서 발생한 문제를 찾아낸 후, ASADAL/OBJ(300)는 코드 자동 생성을 통해 수정된 코드를 가지고 가상 환경에서 테스트하여 소프트웨어를 개발할 수 있다.After finding the problem occurring in the software component through the above method, the ASADAL /
이상에서 설명한 바와 같이, 본 발명에 따른 휘처 기반 소프트웨어 재사용 개발 환경을 제공하는 시스템인 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)
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)
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)
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)
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 |
-
2005
- 2005-06-28 KR KR1020050056305A patent/KR100744886B1/en not_active IP Right Cessation
- 2005-07-26 JP JP2005215541A patent/JP2007012003A/en active Pending
- 2005-11-01 WO PCT/KR2005/003651 patent/WO2007001108A1/en active Application Filing
Cited By (10)
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 |