KR20010103718A - 시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법 - Google Patents

시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법 Download PDF

Info

Publication number
KR20010103718A
KR20010103718A KR1020017007970A KR20017007970A KR20010103718A KR 20010103718 A KR20010103718 A KR 20010103718A KR 1020017007970 A KR1020017007970 A KR 1020017007970A KR 20017007970 A KR20017007970 A KR 20017007970A KR 20010103718 A KR20010103718 A KR 20010103718A
Authority
KR
South Korea
Prior art keywords
core
objects
segment
event tracking
subcore
Prior art date
Application number
KR1020017007970A
Other languages
English (en)
Other versions
KR100664478B1 (ko
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 윌슨 케이쓰 엠.
Publication of KR20010103718A publication Critical patent/KR20010103718A/ko
Application granted granted Critical
Publication of KR100664478B1 publication Critical patent/KR100664478B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

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

Abstract

소프트웨어 애플리케이션(100)을 분석하여 그의 "핵심 기능"을 식별한다(102). 애플리케이션-특정 제어 행동이 포함되지 않은 객체 지향형 코어 객체가 생성되어, 이러한 필수적인 기능을 수행한다(104). 사건 추적이 식별된다. 이 제어 행동이 "제어 객체"로 구체화되어(108), 특정한 사건 추적을 실행하는데 필요한 다양한 코어 객체들의 동작을 호출한다. 핵심 기능와 제어 행동이 분리되기 때문에, 코어 객체는 애플리케이션에 독립적이며, 관련 제어 객체를 상이한 애플리케이션-특정 사건 추적으로 수정함으로써 수정없이 다른 애플리케이션에서 재사용될 수 있다. 제어 객체는 특정 기능을 수행하는 코어 객체 그룹간의 프로그램 흐름을 제어하는 고수준의 "세그먼트 컨트롤러"(120)이거나, 저수준의 객체 그룹에 대해 동일한 기능을 제공하는 "코어 객체 컨트롤러"(126)일 수 있다. "뷰 매니저"(150)를 사용함으로써, 코어 객체 재사용성이 더 향상된다.

Description

시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법{METHOD OF CREATING AND USING SYSTEM-INDEPENDENT SOFTWARE COMPONENTS}
소프트웨어 코드 생성 및 디버깅 프로세스는 매우 노동 집약적이고 고비용을 요구한다. 그 결과, "재사용 가능한" 코드, 즉 다양한 시스템에서 수정없이 설계될 수 있는 코드를 생성하여, 주어진 시스템에서 생성되어야만 하는 새로운 코드량을 최소화하기 위한 많은 노력들이 있어 왔다. 본 명세서에서 사용된 바와 같이, "시스템"은 특정한 애플리케이션용으로 설계된 소프트웨어를 가리킨다.
"객체 지향 프로그래밍"(OOP)은 소프트웨어 코드의 재사용을 용이하게 하는 한 기술이다. OOP는 매우 모듈한 애플리케이션 프로그램을 생성하며, 그 생성된 코드 모듈은 아마 다른 애플리케이션에 플러그될 수 있다. 이러한 추측은 일반적으로 추상 데이터 구조와 같은 저수준 객체에 대해서는 진실로 판명된다. 그러나, OOP 기술은 고수준 객체에 대한 양호한 재사용성을 반드시 요구하는 것은 아니다. 예컨대, 항공기의 속도 및 고도를 유지하는 "항공기 항로" 객체는 재사용이 어려울 수도 있는데, 이는 그 객체에 의해 수신된 데이터의 결과로서 취해지는 행동이 그 객체가 사용되는 특정 시스템에 의존하기 때문이다. 그러한 객체는 예컨대, 동일한 입력 데이터에 대해 상이한 반응을 요구하는 민간 항공 교통 제어 시스템 또는 군사 명령 및 제어 시스템에서 발견될 수도 있다. 이러한 응답 행동은 시스템 특정적이고, 통상 그러한 객체에 내재되어 있어, 상이한 시스템에서 사용하기에 부적합하다.
가상 항공 방어 시스템을 이용하여 이러한 문제점을 예증하기 위하여, 그러한 시스템에 대한 "사건 추적도(event trace diagram)"를 도 1a에 나타내었다. 이 시스템은 OOP 기술을 이용하여 구현되며, 사건 추적도의 상부를 가로질러 나타낸 "레이다(Radar)", "항공 항로(Air Track)", "비행 물체(Flying Object)" 등과 같이 새로운 레이다 보고서를 처리하는데 필요한 객체들을 갖는다. 프로그램 제어가 한 객체로부터 다른 객체로 전송되게 하는 "사건들"을 상기 객체들 아래에 나타내었다.
통상의 시스템 사건 추적은 새로운 보고서를 수신하는 "레이다" 객체(10)에서 시작되며, 그 새로운 보고서는 "항공 항로" 객체(12)로 중계된다. 즉, "레이다" 객체가 새로운 보고서를 수신하는 "사건"(14)은 프로그램 제어가 "항공 항로" 객체로 전송되게 하는 자극이다. "항공 항로" 객체(12)는 프로그램 제어를 "비행 물체" 객체(16)로 전송하며, 그 "비행 물체" 객체(16)는 그 항로를 잠재적인 적국 항공기로 인지하고 프로그램 제어를 "적 항공기(Enemy Aircraft)" 객체(18)로 전송한다. "적 항공기" 객체는 위협을 평가하고 결과로서 프로그램 제어를 "위협(Threat)" 객체(20)에 전송한다. "위협" 객체는 보고서를 작성하여, 그 보고서 및 프로그램 제어를 "전투 매니저(Battle Manager)" 객체(22)로 전송한다. "전투 매니저" 객체는 다른 객체들과 상호 작용하여, 프로그램 제어를 결국 "요격기(Interceptor)" 객체(24)로 전송한다. "전투 매니저" 객체는 또한 상태를 "고위 직급(Higher Echelon)" 객체(26)에 보고한다.
종래의 OOP 기술을 이용하면, 도 1a의 사건 추적 실행에 필요한 제어 순서는 객체들로 직접 구현된다. 즉, "레이다"는 "항공 항로"를 호출하고, "항공 항로"는 비행 물체"를 호출하는 등의 방식으로 구현된다. 그러나, 이와 같이 구현됨으로써 그 객체들의 재사용이 어려워지는데, 이는 새로운 레이다 보고서를 처리하는 사건 추적이 시스템마다 매우 상이할 수도 있기 때문이다. 이를 도 1b에 나타내었다. 이와 같이 상이한 항공 방어 시스템은 도 1a의 시스템과 유사한 기능을 갖는 객체들을 요구하며, 한편 사건 추적은 상이한다. 본 명세서에서, "항공 항로" 객체(32)는 항로 보고서를 직접 "고위 직급" 객체(34)로 전송하며, "전투 매니저" 객체(36)는 "고위 직급" 객체에 의해 호출된다. 새로운 시스템에서 최초의 "항공 항로" 또는 "전투 매니저" 객체(12, 22)를 재사용하기 위해서는, 이 객체들 내에 인코드된 제어 순서가 새로운 사건 추적을 구현할 새로운 제어 순서로 대체되어야만 한다. 따라서, 이 객체들은 단지 수정 후에만 "재사용 가능"하며, 객체가 새로운 시스템에서 재사용될 때마다 수정 프로세스가 반복된다.
시스템 기능으로부터 프로그램 제어 태스크를 분리시키기 위한 노력들이 있어 왔다. 예컨대, Dorset House Publishing(1988)에서 출판된 Hatley and Pirbhai의 Strategies for Real-time System Specification , pp. 59-72와, Yourdon Ress(1985)에서 출판된 Ward and Mellor의 Structured Development for Real-Time Systems , pp. 41-70에는 프로그램 제어를 처리하는 "컨트롤러"에 대한 개념이 논의되어 있다. 그러나, 양자 모두에 기재된 시스템은 구조적 분석 및 구조적 설계를 이용한 기능적 방식으로 설계되며, 그 결과 시스템 아키텍쳐는 시스템이 제공해야 하는 특정 기능들로 편성된다. 불행히도, 이러한 방식으로 생성된 소프트웨어 구성 요소들은 이들이 처음 설계된 특정 애플리케이션 시스템에 단단히 얽매여 있어, 이들을 다른 시스템에서 재사용하기가 어렵다.
본 발명은 컴퓨터 소프트웨어 분야에 관한 것으로서, 특히 최소한의 수정으로 상이한 시스템에서 사용될 수 있는 소프트웨어 구성 요소를 생성하는 방법에 관한 것이다.
도 1a은 특정한 소프트웨어 시스템에 대한 종래 기술의 시스템 사건 추적도.
도 1b는 도 1a와 유사한 객체들을 포함하나, 상이한 소프트웨어 시스템에 대한 종래 기술의 시스템 사건 추적도.
도 2는 본 발명에 따라 시스템-독립 소프트웨어 구성 요소 생성 및 재사용 방법을 나타낸 흐름도.
도 3은 본 발명에 따라 제어 객체들의 사용을 나타낸 도면.
도 4는 본 발명에 따라 재사용 가능한 시스템-독립 소프트웨어 구성 요소를 사용하는 시스템을 생성하기 위한 레거시 시스템을 재설계하는 방법을 나타낸 흐름도.
도 5는 본 발명에 따라 뷰 매니저 객체의 사용을 나타내는 도면.
도 6은 본 발명에 따라 시스템-독립 소프트웨어 구성 요소 생성 및 재사용 방법을 더 상세히 나타낸 흐름도.
본 발명은 시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법을 제공하여, 생성된 코드를 거의 수정없이 다양한 시스템에서 재사용할 수 있게 한다.
OOP 기반의 시스템을 개발하는데 새로운 프로세스가 이용된다. 3가지 유형의 소프트웨어 구성 요소, 즉 "코어" 객체, "뷰 매니저" 객체 및 "컨트롤러" 객체를 생성하는 설계 방식을 이용함으로써 고수준의 재사용성을 달성할 수 있다. 코어 객체는 애플리케이션에서 요구되는 필수적인 행동, 즉 핵심 기능을 포함하며, 컨트롤러 객체는 하부 시스템의 제어 행동을 표현한다. 제어 행동으로부터 핵심 기능을 분리함으로써, 생성된 시스템-독립 코어 객체를 상이한 시스템에서 재사용하는 것이 가능하다.
뷰 매니저 객체는 서버 객체와 클라이언트 객체 사이에 영구적인 통신 링크를 생성하지 않고 "서버" 코어 객체와 복수의 "클라이언트" 코어 객체간의 통신을가능하게 하는데 사용된다. 또한, 뷰 매니저는 서버 객체가 그 서버 객체 내에 상태 변화가 있을 때마다 그의 모든 클라이언트 객체에게 자동적으로 통지하는 것을 가능하게 한다. 뷰 매니저 객체의 사용은 코어 객체의 재사용성을 더 향상시킨다.
일단 분리되면, 시스템의 제어 행동은 하나 또는 그 이상의 "제어 객체"로 구체화되어, 특정한 사건 추적 실행에 필요할 때마다 다양한 코어 객체의 동작을 호출한다. 제어 객체는 프로그램 흐름을 처리하기 때문에, 코어 객체는 단순히 관련된 제어 객체를 시스템 특정 사건 추적을 수용하도록 수정함으로써 다른 애플리케이션에서 (거의 수정없이) 재사용될 수 있다.
본 발명의 개념은 확대 또는 축소될 수 있다. 따라서, 제어 객체는 "세그먼트"로서 식별되고 고수준의 시스템 기능을 수행하는 코어 객체 그룹간의 프로그램 흐름을 제어하는 "세그먼트 컨트롤러"나, 코어 객체를 조합하여 조립한 저수준 객체 그룹에 대해 동일한 목적을 제공하는 "코어 객체 컨트롤러"일 수 있다.
본 발명의 또 다른 특징 및 이점은 첨부된 도면과 함께 다음의 실시예로부터 당업자에게 명확해 질 것이다.
도 2는 새로운 시스템-독립 소프트웨어 구성 요소 생성 및 재사용 방법을 나타낸다. 프로세스는 통상적으로 소프트웨어 프로그램으로 실현되는 특정 시스템(100), 예컨대 항공 교통 제어 시스템에서 시작한다.
단계 102에서, 애플리케이션을 분석하여 그의 "핵심 기능", 즉 시스템에서 요구되는 필수적인 행동을 결정한다. 항공 교통 제어 시스템에 있어서, 핵심 기능은 예컨대, 항공기 식별 및 추적, 레이다 정보 표시, 그리고 가능한 충돌 탐지를 포함할 수도 있다.
다음, 핵심 기능을 구현하는 "코어 객체"를 생성한다(단계 104). 코어 객체는 단일 객체이거나, 또는 다수의 "서브코어" 객체로 분할될 수도 있다. 이러한 코어 및 서브코어 객체는 시스템-특정 제어 행동이 그 객체 안에 내장되어서는 안된다. 종래의 OOP 원리에 의하면, 각 코어 객체는 현실 세계의 실체(entity)(예컨대, 비행기)를 표현하며, 그 실체는 관련 상태(즉, 실체를 설명하는 데이터, 예컨대 비행기 형태, 연료 적재력 등), 아이덴티티 및 행동(예컨대, 이륙, 비행, 착륙 등)을 갖는다.
다음, 시스템이 동작할 때 코어 객체가 관여할 수도 있는 시스템 사건 추적을 정의한다(단계 106). 다음, 이러한 시스템-특정 사건 관련 제어 흐름을 "제어 객체" 내에 배치하는데, 그 제어 객체는 그 안에 내장된 사건 추적의 지시에 따라 코어 객체의 동작을 호출한다.
본 발명의 방법은 도 2에 나타낸 정확한 순서의 단계로 제한되지 않는다는 것을 주의해야 한다. 예컨대, 먼저 시스템의 사건 추적을 정의(단계 106)하고, 그 정보를 이용하여 핵심 기능을 식별(단계 102)하는 것이 이로울 수도 있다. 유사하게, 코어 객체 생성(104) 전에 시스템의 제어 객체를 생성(단계 108)할 수도 있다.
코어, 뷰 매니저(이하 상세히 논의됨) 및 제어 객체에 대한 코드는 OOP 기술로 기록된다. 그 결과, 이렇게 얻어진 시스템은 양호한 신뢰성 및 지속성 등의 객체 지향 방법에 의한 이점으로부터 이익을 얻는다. 더욱이, OOP 기술은 서로 협동하는 협동 구성 요소 그룹으로 편성되는 시스템 아키텍쳐를 제공하여 시스템의 성능을 제공하기 때문에, OOP 기반의 시스템은 고유하게 전통적인 기능적 방식으로 개발된 동등한 시스템보다 더 양호한 재사용 가능성을 제공한다. OOP 기반의 시스템에서 발견되는 고유의 재사용성은 본 명세서에 기재된 바와 같은 제어 객체의 사용으로 더 향상된다.
재사용 가능한 객체는 C++ 또는 Ada-95 등의 임의의 객체 지향 프로그래밍 언어로 기록될 수 있다. 코어 객체는 예컨대, Prentice-Hall(1991)에서 출판된 J.Rumbaugh 등의 Object-Oriented Modeling and Design , pp. 260-264에 기재된 OMT 방법과 같은 객체 모델링 방법을 이용하거나, Rational Corporation(1997)에서 출판된 UML Summary Version 1.0.1 에 기재된 UML(Unified Modeling Language)을 이용하여 설계 및 생성하는 것이 바람직하다.
시스템의 사건 추적은 먼저 사용 케이스 분석을 하여 시스템 사건 응답 목록을 개발하는 식의 종래의 방법을 이용하여 정의된다. 시스템의 사건 추적은 다양한 세그먼트이 서로 상호 작용하여 시스템 수준의 사용 케이스에 기재된 기능을 달성하는 방법의 분석을 수행하여 설정된다. 사용 케이스의 생성은 예컨대, Addison-Wesley(1992)에서 출판된 I. Jacobson 등의 Object-Oriented Software Engineering , pp. 113-143에 기재되어 있다. 사건 추적의 생성은 예컨대, Prentice-Hall(1991)에서 출판된 J. Rumbaugh 등의 Object-Oriented Modeling and Design , pp. 86-87에 기재되어 있다.
도 3은 본 명세서에서 기재된 방법으로 얻어지는 시스템의 코어 객체와 제어 객체간의 관계의 예를 나타낸다. 단계 104에 따라, 코어 객체 코어 A, 코어 B, 코어 C 및 코어 D 어셈블리가 생성되며, 각각 특정 시스템의 핵심 기능을 구현한다. 전술된 바와 같이, 각 코어 객체는 단일 객체이거나, 또는 객체 어셈블리일 수 있으며, 객체 어셈블리는 "부모(parent)" 코어 객체와 하나 또는 그 이상의 서브코어 객체로 구성된다. 코어 D 어셈블리는 그러한 어셈블리로서, 객체 코어 D가 서브코어 객체 서브코어 1 및 서브코어 2의 부모가 된다.
이러한 예에 있어서, 코어 객체 코어 A, 코어 B, 코어 C 및 코어 D 어셈블리는 "세그먼트", 즉 특정한 고수준의 기능을 수행하는 코어 객체 그룹을 형성한다. 예컨대, 도 1a의 객체 "레이다" 및 "항공 항로"는 세그먼트로서 그룹화되어, 항공 교통 제어 시스템에서 고수준의 추적 기능을 처리한다. 단계 106에 따라, 코어 객체 코어 A, 코어 B, 코어 C 및 코어 D 어셈블리의 세그먼트에 대한 시스템 사건 추적 관련 제어 흐름이 정의되어, 제어 객체(120) 내에 배치된다; 코어 객체들이 세그먼트를 형성하기 때문에, 제어 객체(120)는 "세그먼트 컨트롤러"로서 식별된다. 세그먼트에 의해 수행되는 기능이 실행될 필요가 있을 때, 통상 다른 세그먼트로부터 서비스 요청(121)을 통해 세그먼트 컨트롤러(120)가 호출된다.
도 3의 화살표(122)는 코어 객체 코어 A, 코어 B, 코어 C 및 코어 D 어셈블리에 대한 제어 흐름을 반영하며, 세그먼트 컨트롤러(120)에 의해 관리된다. 세그먼트 컨트롤러(120)는 데이터가 아닌 단지 제어만을 전파한다. 즉, 데이터는 코어 객체로부터 세그먼트 컨트롤러(120)로 역류되지 않는다. 세그먼트 컨트롤러(120)는 코어 객체가 그의 처리를 완료하였음을 간단한 상태 메시지를 통해 통지받은 후, 실행될 사건 추적에 따라 순서대로 다음 코어 객체를 호출한다.
세그먼트 컨트롤러(120)는 세그먼트의 객체들이 관여할 수도 있는 모든 사건에 관한 정보를 포함하고 이에 따라 코어 객체들을 호출하기 때문에, 개개의 코어 객체 내에 제어 흐름 정보가 내장될 필요가 없다. 이러한 방법으로 코어 객체로부터 시스템 특정 제어 행동을 제거함으로써, 상이한 사건 추적을 갖는 다른 시스템에서도 코어 객체를 용이하게 재사용할 수 있다. 코어 객체의 핵심 기능이 다른 시스템에서 요구되는 경우, 통상 최초 생성된 바와 같이 정확히 사용되거나, 또는 약간 수정되어 사용될 수 있으며, 새로운 시스템에 대한 제어 흐름은 새로운 또는 수정된 세그먼트 컨트롤러로 구체화된다. 그들은 사건 추적을 간단히 실행하기 때문에, 세그먼트 컨트롤러의 설계가 간단해진다. 따라서, 적은 노력으로 새로운 애플리케이션을 위한 세그먼트 컨트롤러(120)를 수정하는 것을 기대할 수 있다.
코어 객체가 그 자신의 세그먼트 내의 다른 객체로부터 데이터를 요구하는 경우에는, 그 객체와의 직접적인 상호 작용(점선 124로 표시됨)을 통해 얻는다. 즉, 데이터는 세그먼트 컨트롤러(120)를 통해 이동되지 않는다. 예컨대, 코어 B가 코어 C로부터 데이터를 요구하는 경우에는, 코어 C와 직접 상호 작용하여 요구한 데이터를 얻는다. 그러한 직접적인 상호 작용은 특정 상호 작용이 객체들의 기본 행동의 일부일 때 활용된다. 본 명세서에서, 예컨대 코어 B는 그의 기본 책무들 중 하나를 이행하기 위해 코어 C로부터 데이터를 요구하며, 따라서 직접적인 상호 작용이 시작된다.
전술된 바와 같이, 일부 코어 객체는 다수의 "서브코어" 객체로 분할될 수 있다. 이러한 객체에 대한 예로서, 도 3에 블럭 레벨 코어 D 어셈블리로 나타내었으며, 코어 D 어셈블리는 2개의 서브코어 객체 서브코어 1 및 서브코어 2를 포함한다. OOP 용어에 있어서, 코어 D는 "자식(child)" 객체 서브코어 1 및 서브코어 2의 "부모" 객체로 불리어진다. 본 명세서에 기재된 본 발명의 방법은 완전한 세그먼트에 적용되었던 방식과 동일한 방식으로 코어 D 어셈블리에 적용될 수 있다. 즉, 서브코어 1 및 서브코어 2는 코어 D의 어떤 특수화된 핵심 기능을 구현하도록 설계된다. 서브코어 1, 서브코어 2 또는 코어 D의 호출을 포함하는 제어 흐름은 본 명세서에서 "코어 객체 컨트롤러"로서 식별되는 컨트롤러(126) 내에 배치된다. 코어 객체 컨트롤러(126)는 코어 D 어셈블리 내의 동작을 호출하는 모든 요청을 먼저 수신한 후, 어셈블리 내의 적절한 객체, 즉 코어 D, 서브코어 1 또는 서브코어 2로 향하게 한다. 이는 통상 다형성(polymorphism)으로 알려진 OOP 기술에 의해 성취된다. 이러한 식으로 분리한 핵심 기능 및 제어 행동은 코어 D, 서브코어 1 및 서브코어 2 객체가 시스템으로부터 독립하는 것을 가능하게 하여, 코어 객체 컨트롤러(126)를 간단히 수정함으로써 다른 시스템에서 재사용할 수 있게 한다. 따라서, 본 발명의 방법은 시스템의 고수준의 세그먼트 레벨 및 저수준의 코어 레벨 모두에 적용될 수 있으며, 재사용 가능한 소프트웨어 구성 요소의 수는 상기 방법이 더 넓게 적용됨에 따라 증가한다.
재사용 가능한 시스템-독립 객체들로 구현된 새로운 시스템을 생성하기 위한 레거시 시스템의 재설계뿐만 아니라 완전히 새로운 소프트웨어 애플리케이션에 적용 가능한 방법이 있다. 레거시 시스템을 재설계할 때 일부 추가적인 분석 단계가 요구되지만, 상기 양자의 경우에 대해 유사한 방법이 적용된다. 도 4는 레거시 시스템을 재설계하는 방법을 나타낸 흐름도이다. 레거시 시스템(130)의 행동을 분석하여(단계 132), 시스템의 사건 추적을 식별하고(단계 134), 그의 핵심 기능을 식별한다(단계 136). 핵심 기능을 구현하기 위하여 시스템-독립 코어 객체를 생성(또는 다른 시스템이나 객체 저장소로부터 재사용)한다(단계 138). 다음, 시스템의 사건 추적을 구현하기 위하여 제어 객체를 생성하여(단계 140), 그 결과물인 새로운 시스템을 테스트 및 디플로이한다(단계 142). 이와 같이 재설계된 시스템은 다른시스템에서 용이하게 재사용될 수 있는 시스템-독립 코어 객체를 포함하고 있다.
도 2와 관련하여 전술된 바와 같이, 도 4에 나타낸 단계들은 나타낸 정확한 순서를 따를 필요가 없다. 각 단계는 본 발명을 실행하도록 수행되어야만 하지만, 재설계된 시스템을 성공적으로 생성하는데 여러 다른 순서가 적용될 수 있다.
택일적으로, 재사용 가능한 코어 객체들은 추상적으로 생성되어, 어떤 특정한 시스템에 유지되지 않으면서 객체 저장소에 유지될 수도 있다. 기본적인 항공 교통 제어 동작들을 수행하는 객체와 같이, 매우 다양한 시스템에서 요구될 수도 있는 기본적인 기능들은 시스템-특정 제어 행동들이 생성된 객체 내에 내장되지 않는 한, 본 발명에 따라 생성될 수 있다. 객체가 선택되어 시스템에서 사용될 때, 그 객체를 포함하는 사건 추적이 전술된 바와 같이 결정되고, 제어 객체가 생성되어 그 사건 추적을 구현한다.
코어 객체의 재사용성은 "서버" 코어 객체들과 그것들 각각의 "클라이언트" 코어 객체들간의 지속적인 상호 작용을 처리하는 방법을 제공하는 "뷰 매니저"를 사용함으로써 더 향상될 수 있다. 뷰 매니저는 사건 통지에 기초하여 하나의 "서버" 코어 객체로부터 하나 또는 그 이상의 다른 코어 객체("클라이언트"라고 부름)로 데이터를 퍼뜨리는 매커니즘을 제공하는 하나의 객체 또는 객체군이다. 그 클라이언트는 특정 세그먼트 내의 객체일 수도 있고, 또는 상이한 세그먼트 내에 존재할 수도 있다. 각 코어 객체마다 독립된 뷰 매니저가 생성된다. 유사하게 각 서브코어 객체마다 독립된 "서브뷰" 매니저가 생성된다.
뷰 매니저의 사용예를 도 5에 나타내었다. 뷰 매니저(150)는 서브 코어 객체a, b, c 및 d를 포함하는 코어 객체 코어 E와 코어 객체 컨트롤러(152) 사이에 배치된다. 뷰 매니저(150)는 코어 객체 컨트롤러(152) 또는 코어 E 객체로부터 데이터를 수신할 수 있다. 뷰 매니저(150)는 서브뷰 매니저 객체 a, b, c 및 d로 분할되어, 각각 서브코어 객체 a, b, c 및 d로부터 데이터를 퍼뜨리는 것을 관리하기 위해 생성된다. 이 예에 있어서, 코어 E 어셈블리 내에서 발견되는 데이터를 요구하는 3개의 "클라이언트"(클라이언트 1, 클라이언트 2 및 클라이언트 3으로 식별됨), 즉 다른 세그먼트 또는 객체가 있다.
클라이언트 객체는 먼저 코어 객체 컨트롤러(152)를 통해 뷰 매니저에 "등록하여", 코어 E 또는 그의 서브코어 객체 a-d 중 어느 하나 내에서 상태 변화가 있을 때마다 그 변화 통지를 자동적으로 수신하길 원한다는 사실을 뷰 매니저에게 알린다. 그러한 등록이 클라이언트가 서브코어 객체들 중 하나에 의해 관리되는 데이터 변화에 관심이 있음을 나타내는 경우에는, 뷰 매니저(150)는 이러한 등록 정보를 클라이언트가 관심있는 데이터를 관리하는 서브코어 객체와 관련된 서브뷰 매니저로 전송한다. 코어 E 또는 서브코어 객체 a-d 내에서 상태 변화가 있을 때, 관련 뷰 매니저는 그러한 변화를 알리기 위한 "변화 통지"를 등록된 클라이언트로 방송한다; 이는 통상 다형성으로 알려진 OOP 기술에 의해 성취된다.
지금까지, 서버 객체로부터 클라이언트 객체로의 데이터 통신은 관련된 그 객체들 내에 내장되어야만 했다. 이러한 데이터 통신 세목(detail)을 코어 객체로부터 분리하여 뷰 매니저 내에 배치함으로써, 코어 객체의 재사용성을 향상시킨다. 등록이 동적이기 때문에, 뷰 매니저는 통상 재사용시 수정될 필요가 없다. 본 명세서에 기재된 제어 객체 및 뷰 매니저 개념을 이용하여 코어 객체가 생성되는 경우, 소프트웨어의 재사용성 및 확장성이 상당히 향상된다.
도 6은 새로운 소프트웨어 시스템을 개발하는데 이용될 수 있는 본 발명의 방법을 더 상세히 나타낸다. 단계 200에서, 시스템 레벨의 사용 케이스 및 시스템 레벨의 사건 응답 목록이 개발된다. 이러한 단계는 시스템이 요구하는 기능을 정의하는 일을 도와준다.
식별된 기능들은 개발/동작 세그먼트로 분할된다(단계 202). 전술된 바와 같이, 세그먼트는 전 시스템 기능의 집합이며, 결합력있는 독립형의 성능을 제공한다. 시스템 아키텍쳐는 그러한 세그먼트들과 그것들간의 인터페이스로 구성될 수 있다.
사용 케이스 및 사건 응답 목록은 세그먼트 레벨로 개발된다(단계 204). 각 기능적인 사건에 대하여, 그 기능을 성취하는데 필요한 코어 객체가 기술되고, 사건에 대한 응답이 정의된다.
코어 객체가 정의되고, 각 세그먼트 내의 객체들의 상호 작용을 기술한 세그먼트 사건 추적도가 사용 케이스 및 사건 응답 목록에 기초하여 개발된다(단계 206). 각 세그먼트는 그 세그먼트에서 복수 줄거리의 기능을 기술한 복수의 사건 추적을 가질 수도 있다.
단계 208에서, 세그먼트 컨트롤러(전술됨)는 개발된 세그먼트 사건 추적에 기초하여 정의되며, 세그먼트의 행동 및 외부 인터페이스를 인캡슐레이트해야 한다. 세그먼트 컨트롤러의 공공(public) 동작(메쏘드)이 또한 정의되어, 그 각각의세그먼트에 대한 애플리케이션 프로그램 인터페이스(API)의 역할을 한다.
공공 속성 및 동작(메쏘드)을 포함하는 코어 객체의 상세한 설계는 단계 206에서 정의된 세그먼트 사건 추적에 기초하여 단계 210에서 성취된다.
단계 212에서, 필요에 따라 서브코어 객체들 사이의 제어 태스크를 관리하는데 필요한 코어 객체 컨트롤러(전술됨)와 함께, 코어 객체가 정의된다.
단계 214에서, 뷰 매니저(전술됨)가 생성되어, 코어 객체와 클라이언트간의 지속적인 상호 작용을 처리한다.
단계 216에서, 코어 객체는 코드화되고, 테스트되어, 아카이브되며, 단계 218에서, 세그먼트 컨트롤러 또한 코드화되고, 테스트되어, 아카이브된다. 단계 220에서 세그먼트, 코어 객체 및 뷰 매니저가 통합되고, 단계 222에서 그 통합된 세그먼트가 테스트되어 아카이브된다.
이 시점에서, 시스템이 생성되고, 그 시스템에 의해 사용된 코어 객체는 다른 시스템에서 용이하게 재사용 가능하며, 단지 세그먼트 컨트롤러만 수정된다.
도 2 및 도 4와 관련하여 전술된 바와 같이, 도 6에 나타낸 단계들은 나타낸 정확한 순서를 따를 필요가 없다. 재사용 가능한 소프트웨어 구성 요소를 특징으로 하는 기능적인 시스템을 성공적으로 생성하는데 여러 다른 순서가 적용될 수 있다.
지금까지 본 발명의 특정 실시예를 설명하였지만, 당업자에 의해 다양하게 변화 및 변형된 실시예가 가능하다. 따라서, 본 발명은 단지 첨부된 청구범위로 제한되지 않는다.

Claims (24)

  1. 시스템-독립 소프트웨어 구성 요소 생성 방법에 있어서,
    소프트웨어 시스템에 의해 요구되는 핵심 기능들을 식별하는 단계와,
    상기 핵심 기능들을 구현하는 시스템-독립 코어 객체들을 생성하는 단계와,
    상기 시스템에 기초하여 상기 코어 객체들간의 사건 추적 관련 제어 흐름을 정의하는 단계와,
    상기 사건 추적 관련 제어 흐름에 따라 상기 코어 객체들의 동작을 호출하는 제어 객체들을 생성하는 단계를 포함하며,
    상기 핵심 기능들과 상기 사건 추적 관련 제어 흐름을 각각 상기 코어 객체들과 상기 제어 객체들로 분리함으로써, 상이한 사건 추적 관련 제어 흐름을 갖는 다른 소프트웨어 시스템에서 상기 코어 객체들이 재사용될 수 있는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  2. 제1항에 있어서, 상기 코어 객체들간의 상기 사건 추적 관련 제어 흐름은 상기 시스템을 동작시킬 때 요구되는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  3. 제1항에 있어서, 상기 각 코어 객체는 객체 지향 프로그래밍(OOP) 기술로 생성되는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  4. 제1항에 있어서, 상기 각 제어 객체는 객체 지향 프로그래밍(OOP) 기술로 생성되는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  5. 제1항에 있어서, 상기 코어 객체들과 상기 제어 객체들은 객체 지향 프로그래밍 언어로 기록되는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  6. 제1항에 있어서,
    함께 특정 기능을 수행하는 코어 객체 그룹을 각각 포함하는 세그먼트들을 식별하는 단계를 더 포함하며,
    상기 제어 객체들 중 하나는 상기 사건 추적 관련 제어 흐름에 따라 특정 세그먼트의 코어 객체들의 동작을 호출하는 세그먼트 컨트롤러이고,
    상기 핵심 기능들과 상기 사건 추적 관련 제어 흐름을 각각 상기 세그먼트들과 상기 세그먼트 컨트롤러로 분리함으로써, 상기 세그먼트 컨트롤러를 상이한 사건 추적을 포함하도록 수정하여 다른 소프트웨어 시스템에서 상기 세그먼트들이 재사용될 수 있는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  7. 제6항에 있어서, 상기 코어 객체들은 동일한 세그먼트 내의 다른 코어 객체들로부터 필요한 데이터를 상기 세그먼트 컨트롤러로부터 독립하여 상기 다른 코어 객체들과의 직접적인 상호 작용을 통해 획득하는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  8. 제1항에 있어서,
    상기 각 코어 객체에 대한 뷰 매니저 객체들을 생성하는 단계를 더 포함하며,
    상기 각 뷰 매니저 객체는 그의 관련 코어 객체로부터 하나 또는 그 이상의 다른 코어 객체들로 데이터를 전달하는 통신 인터페이스로서 동작하는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  9. 제8항에 있어서, 상기 각 뷰 매니저 객체는 객체 지향 프로그래밍(OOP) 기술로 생성되는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  10. 제8항에 있어서, 데이터는 상기 관련 코어 객체가 상태 변화를 겪을 때 상기 관련 코어 객체로부터 상기 다른 코어 객체들로 자동적으로 전달되는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  11. 제8항에 있어서,
    코어 객체를 복수의 서브코어 객체들로 분할하는 단계로서, 상기 분할된 코어 객체는 상기 복수의 서브코어 객체들의 부모 객체인 것인 단계와,
    부모 객체가 호출될 때 요구되는 상기 서브코어 객체들간의 사건 추적 관련제어 흐름을 정의하는 단계와,
    상기 정의된 사건 추적 관련 제어 흐름에 따라 상기 서브코어 객체들의 동작을 호출하는 제어 객체를 생성하는 단계로서, 상기 제어 객체는 코어 객체 컨트롤러이며, 상기 코어 객체 컨트롤러를 상이한 사건 추적을 포함하도록 수정함으로써, 상기 서브코어 객체들이 다른 소프트웨어 시스템에서 재사용될 수도 있는 것인 단계와,
    뷰 매니저 객체를 복수의 서브뷰 매니저 객체들로 분할하는 단계를 더 포함하며,
    상기 각 서브뷰 매니저 객체는 상기 서브코어 객체들 중 각각 하나로부터 데이터를 전달하는 통신 인터페이스로서 동작하는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  12. 제1항에 있어서,
    코어 객체를 복수의 서브코어 객체들로 분할하는 단계로서, 상기 분할된 코어 객체는 상기 복수의 서브코어 객체들의 부모 객체인 것인 단계와,
    부모 객체가 호출될 때 요구되는 상기 서브코어 객체들간의 사건 추적 관련 제어 흐름을 정의하는 단계와,
    상기 정의된 사건 추적 관련 제어 흐름에 따라 상기 서브코어 객체들의 동작을 호출하는 제어 객체를 생성하는 단계를 더 포함하며,
    상기 제어 객체는 코어 객체 컨트롤러이며, 상기 코어 객체 컨트롤러를 상이한 사건 추적을 포함하도록 수정함으로써, 상기 서브코어 객체들이 다른 소프트웨어 시스템에서 재사용될 수도 있는 것인 시스템-독립 소프트웨어 구성 요소 생성 방법.
  13. 레거시 소프트웨어 시스템을 시스템-독립 소프트웨어 구성 요소를 사용하는 새로운 소프트웨어 시스템으로 재설계하는 방법에 있어서,
    상기 레거시 소프트웨어 시스템에 의해 요구되는 시스템 사건 추적을 식별하는 단계와,
    상기 레거시 소프트웨어 시스템의 핵심 기능들을 식별하는 단계와,
    상기 핵심 기능들을 구현하는 시스템-독립 코어 객체들을 생성하는 단계와,
    상기 식별된 상기 사건 추적에 따라 상기 코어 객체들의 동작을 호출하는 제어 객체들을 생성하는 단계를 포함하며,
    상기 코어 객체들과 상기 제어 객체들은 시스템-독립 소프트웨어 구성 요소를 사용하는 새로운 소프트웨어 시스템을 형성하고,
    상기 핵심 기능들과 상기 사건 추적을 각각 상기 코어 객체들과 상기 제어 객체들로 분리함으로써, 상이한 사건 추적을 갖는 다른 소프트웨어 시스템에서 상기 코어 객체들이 재사용될 수 있는 것인 레거시 소프트웨어 시스템 재설계 방법.
  14. 제13항에 있어서,
    상기 시스템 사건 추적과 상기 핵심 기능들을 식별하기 위하여 상기 레거시소프트웨어 시스템의 행동을 분석하는 단계를 더 포함하는 레거시 소프트웨어 시스템 재설계 방법.
  15. 제13항에 있어서, 상기 코어 객체들 및 상기 제어 객체들은 객체 지향 프로그래밍(OOP) 기술로 생성되는 것인 레거시 소프트웨어 시스템 재설계 방법.
  16. 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법에 있어서,
    시스템의 기능들을 각각의 세그먼트들로 분할하는 단계와,
    상기 각 세그먼트에 대한 사용 케이스 및 사건 응답 목록을 개발하는 단계와,
    관련 세그먼트의 기능들을 구현하기 위한 상기 각 세그먼트에 대한 시스템-독립 코어 객체들을 정의하는 단계와,
    세그먼트 내의 코어 객체들간의 상호 작용을 기술하는 각 세그먼트에 대한 사건 추적 관련 제어 흐름을 정의하는 단계와,
    상기 사건 추적 관련 제어 흐름에 기초하여 상기 각 세그먼트에 대한 세그먼트 컨트롤러를 생성하는 단계로서, 상기 세그먼트 컨트롤러는 관련 세그먼트 내의 코어 객체들간의 제어 흐름을 관리하기 위해 배치되는 것인 단계와,
    상기 각 코어 객체에 대한 각각의 뷰 매니저 객체를 생성하는 단계로서, 상기 각 뷰 매니저 객체는 그의 관련 코어 객체로부터 하나 또는 그 이상의 다른 코어 객체들로 데이터를 전달하는 통신 인터페이스로서 동작하는 것인 단계를 포함하며,
    시스템-독립 코어 객체들, 상기 뷰 매니저 객체들 및 상기 세그먼트 컨트롤러들을 사용함으로써, 상이한 사건 추적을 갖는 다른 시스템에서 상기 코어 객체들이 재사용될 수 있는 것인 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  17. 제16항에 있어서,
    상기 시스템의 기능들을 결정하기 위하여 상기 시스템에 대한 사용 케이스 및 사건 응답 목록을 개발하는 단계를 더 포함하는 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  18. 제16항에 있어서,
    상기 각 세그먼트 컨트롤러에 대한 공공 동작을 정의하는 단계를 더 포함하며,
    상기 공공 동작은 각각의 세그먼트에 대한 애플리케이션 프로그램 인터페이스(API)로서의 역할을 하는 것인 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  19. 제16항에 있어서,
    상기 각 코어 객체에 대한 공공 동작을 정의하는 단계를 더 포함하는 것인 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  20. 제16항에 있어서,
    코어 객체를 서브코어 객체들의 어셈블리로 분할하고, 상기 각 분할된 코어 객체에 대한 코어 객체 컨트롤러를 생성하는 단계를 더 포함하며,
    상기 각 코어 객체 컨트롤러는 각각의 코어 객체의 서브코어 객체들간의 제어 흐름을 관리하는 것인 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  21. 제20항에 있어서,
    뷰 매니저 객체를 서브뷰 매니저 객체들의 어셈블리로 분할하는 단계를 더 포함하며,
    상기 각 서브뷰 매니저 객체는 상기 서브코어 객체들 중 각각의 하나로부터 데이터를 전달하는 통신 인터페이스로서 동작하는 것인 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  22. 제16항에 있어서,
    상기 코어 객체들을 코드화하고, 테스트하여, 아카이브하는 단계를 더 포함하는 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  23. 제16항에 있어서,
    상기 세그먼트 컨트롤러들을 코드화하고, 테스트하는 단계를 더 포함하는 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
  24. 제16항에 있어서,
    상기 코어 객체들과 상기 세그먼트 컨트롤러들을 통합 세그먼트들로 통합하고, 상기 통합 세그먼트들을 테스트하여, 상기 통합 세그먼트들을 아카이브하는 단계를 더 포함하는 시스템-독립 소프트웨어 구성 요소를 생성하여 특정 소프트웨어 시스템에서 사용하는 방법.
KR1020017007970A 1998-12-22 1999-12-22 시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법 KR100664478B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/219,571 US6332210B1 (en) 1998-12-22 1998-12-22 Method of creating and using system-independent software components
US09/219,571 1998-12-22

Publications (2)

Publication Number Publication Date
KR20010103718A true KR20010103718A (ko) 2001-11-23
KR100664478B1 KR100664478B1 (ko) 2007-01-04

Family

ID=22819821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017007970A KR100664478B1 (ko) 1998-12-22 1999-12-22 시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법

Country Status (6)

Country Link
US (1) US6332210B1 (ko)
EP (1) EP1141824A4 (ko)
JP (1) JP2002533806A (ko)
KR (1) KR100664478B1 (ko)
AU (1) AU757126B2 (ko)
WO (1) WO2000038056A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714219B2 (en) * 1998-12-31 2004-03-30 Microsoft Corporation Drag and drop creation and editing of a page incorporating scripts
US6556220B1 (en) * 1999-10-21 2003-04-29 International Business Machines Corporation Method and system to display, modify or substitute the contents of self-describing objects
WO2003005160A2 (en) * 2001-07-03 2003-01-16 Great Northern Enterprises Llc Cross vertical application software development system and method
US6839662B2 (en) * 2001-08-17 2005-01-04 Lockheed Martin Corporation Command and control system architecture for convenient upgrading
KR20030025031A (ko) * 2001-09-19 2003-03-28 한국전자통신연구원 1급 메소드를 이용한 소프트웨어 커넥터 구현 방법
US7076766B2 (en) 2002-06-03 2006-07-11 Steve Wirts Software application development methods and framework
US8032657B2 (en) * 2005-09-12 2011-10-04 Microsoft Corporation Preservation of type information between a client and a server
US7594140B2 (en) * 2006-08-02 2009-09-22 International Business Machines Corporation Task based debugger (transaction-event-job-trigger)
US7823017B2 (en) 2006-08-02 2010-10-26 International Business Machines Corporation Structure for task based debugger (transaction-event-job-trigger)
CN100410877C (zh) * 2006-08-25 2008-08-13 华为技术有限公司 定义面向对象模型的操作接口的方法
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
EP2556451A4 (en) * 2010-04-06 2016-09-07 Webtrends Inc METHOD AND SYSTEM FOR DEFINING AND LOADING SEGMENTS

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724589A (en) * 1995-10-13 1998-03-03 Borland International, Inc. Development system with a property-method-event programming model for developing context-free reusable software components
GB2308468A (en) * 1995-12-20 1997-06-25 Ibm Data processing systems and methods providing interoperability between data processing resources
US5936860A (en) * 1997-03-28 1999-08-10 International Business Machines Corporation Object oriented technology framework for warehouse control
US6016495A (en) * 1997-09-19 2000-01-18 International Business Machines Corporation Object-oriented framework mechanism for providing persistent storage

Also Published As

Publication number Publication date
EP1141824A4 (en) 2006-12-06
AU2380900A (en) 2000-07-12
WO2000038056A1 (en) 2000-06-29
EP1141824A1 (en) 2001-10-10
JP2002533806A (ja) 2002-10-08
US6332210B1 (en) 2001-12-18
AU757126B2 (en) 2003-02-06
KR100664478B1 (ko) 2007-01-04

Similar Documents

Publication Publication Date Title
Sharp Reducing avionics software cost through component based product line development
JP7268077B2 (ja) 自動運転のテストデータ記憶方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
US5893106A (en) Object oriented server process framework with interdependent-object creation
KR100664478B1 (ko) 시스템-독립 소프트웨어 구성 요소 생성 및 사용 방법
CN111507020B (zh) 面向多电飞机机电系统分布式仿真结果的图形化显示方法
US9442822B2 (en) Providing a visual representation of a sub-set of a visual program
Paunicka et al. The OCP-an open middleware solution for embedded systems
CN110991040A (zh) 一种复杂产品协同仿真环境构建方法
JPH08263309A (ja) ソフトウェア・アプリケーション・プログラム・オブジェクト間のイベント通知方法及び装置
van der Aalst et al. Ex Spect 6.4 An Executable Specification Tool for Hierarchical Colored Petri Nets
CN114218783B (zh) 一种基于使用场景的飞控系统安全性需求分析方法
Yang et al. Research on visual simulation for complex weapon equipment interoperability based on MBSE
Sangwan Software and systems architecture in action
Butler et al. Architectural design of a common operating environment
Kim et al. Developing a common operating environment for military application
CN111580812A (zh) 数据可视化组件通信方法、系统、电子设备及存储介质
Gorton et al. Reliable parallel software construction using PARSE
DuBois et al. The feasibility of applying object-oriented technologies to operational flight software
Chen et al. Configuration-level programming of distributed applications using implicit invocation
Pilloud et al. SimWorx: an Ada 95 distributed simulation application framework supporting HLA and DIS
Schagaev et al. Active System Control: Language Implementation Aspects
Oswald Towards a conceptual framework-based architecture for unmanned systems
Pritchett Rapidly Re-Configurable Flight Simulator Tools for Crew Vehicle Integration Research and Design
Bartolotta et al. Object-oriented representation of manufacturing systems: State of the art and perspectives
Sharp Component based product line development of avionics software

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101221

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee