KR100291012B1 - 시스템구성방법및구성장치 - Google Patents

시스템구성방법및구성장치 Download PDF

Info

Publication number
KR100291012B1
KR100291012B1 KR1019950704193A KR19950704193A KR100291012B1 KR 100291012 B1 KR100291012 B1 KR 100291012B1 KR 1019950704193 A KR1019950704193 A KR 1019950704193A KR 19950704193 A KR19950704193 A KR 19950704193A KR 100291012 B1 KR100291012 B1 KR 100291012B1
Authority
KR
South Korea
Prior art keywords
instance
constraint
component
configuration
model
Prior art date
Application number
KR1019950704193A
Other languages
English (en)
Other versions
KR960701406A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=21908252&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100291012(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 트리로지 디벨롭먼트 그룹, 인코포레이티드 filed Critical 트리로지 디벨롭먼트 그룹, 인코포레이티드
Publication of KR960701406A publication Critical patent/KR960701406A/ko
Application granted granted Critical
Publication of KR100291012B1 publication Critical patent/KR100291012B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Electrotherapy Devices (AREA)
  • Transmitters (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)

Abstract

본 발명은, 시스템이 구성요소 또는 자원 요청(60)에 기초하여 구성되거나 필요의 형식으로 입력될 수 있도록, 시스템(10)을 구성하는 생성적인 방법을 채용한다. 본 발명은 구조적인 모델(12) 계층을 사용하는, 제약 조건에 기초하는 구성 시스템을 제공한다. 모델의 구조적인 양상은 모델 요소를 또다른 모델 요소 내에 또는 또다른 모델 요소에 의해 포함하는 것으로 한정할 수 있는 능력을 제공한다. 그 위에, 구조적인 모델은 요소간의 논리적인 데이터 형태 및 물리적 상호 연결관계를 식별하고 요소간의 연결을 설정할 수 있는 능력을 제공한다. 시스템을 구성하기 위해, 본 발명은 데스크톱 컴퓨터를 캐드 환경에 사용하기 위한 필요의 표현으로서 요청 (예를 들어, 구성요소 또는 자원) 또는 필요의 형식으로 이루어진 입력을 허용한다.

Description

시스템 구성방법 및 구성장치
제1도는 구성 시스템의 블록도.
제2도는 기능 계층의 예시도.
제3도는 5개의 기준 클래스, 파생 클래스 및 구성요소 형태로 구성되는 기능적 구조 계층의 예시도.
제4도는 컴퓨터 시스템을 구성하기 위한 모델의 기능적 구조 계층의 예시도.
제5도는 다수의 중재 구성요소 및 데이터 형태의 구성요소 상호 연결의 예시도.
제6도는 구성 엔진 처리의 흐름도.
제7도는 SatisfyResourceRequest 처리의 흐름도.
제8도는 SatisfyContainerConstraint 및 SatisfyComponentConstraint 처리의 흐름도.
제9A도는 SatisfyConnectionConstraint 처리의 흐름도.
제9B도는 CandidatePorts 처리의 흐름도.
제10도는 EstablishSetCover 처리의 흐름도.
제11도는 데스크톱 컴퓨터 시스템 구성을 위한 시스템 창의 예시도.
제12도는 구성 시스템의 기능적인 동작을 예시한 흐름도.
본 발명은 컴퓨터에 기반을 둔 시스템 구성분야에 관한 것이다.
시스템 구성방법이란, 구성요소를 선택하고 연결하여 특정 필요 또는 요청을 충족시키는 방법을 말한다. 시스템이 제한된 수의 구성요소에 기초하는 경우, 시스템 구성방법은 비교적 수월하게 행해질 수 있다. 예를 들어, 자동차를 판매하는 경우, 판매원은 고객의 요청을 충족시키기 위해 시스템(자동차 및 선택사양)을 구성할 필요가 있다. 다수의 모델로부터 특정 모델을 선택한 후에, 판매자는 선택사양을 선택하여 자동차를 구성하고 값을 매김으로써 매매를 완료한다. 그러한 단순한 시스템의 구성은 종이와 연필로 이루어질 수 있다.
시스템 사양이 더욱 더 주문에 의해 만들어지고 여러 가지로 변경이 됨에 따라, 구성의 대안이 증가하게 되고 시스템을 구성하는 과제가 더욱 복잡하게 된다. 이렇게 복잡성이 증가하게 되면, 컴퓨터에 기반을 두고 시스템을 구성하여야 할 필요성이 야기된다. 초기의 컴퓨터에 기반을 둔 시스템은 시스템의 독립적으로 발생된 구성 순서를 제조 순서로 확대한다. 이들 시스템에 있어서는, 순서의 확대에 앞서 컴퓨터에 기반을 둔 도구의 실제적인 필요서이 제기되지 않는다. 즉, 필요 및/또는 요청 입력에 기초하여 시스템 구성의 실제적인 발생에 대한 처리는 이루어지지 않는다.
복잡한 시스템의 일례는 데스크톱 컴퓨터 시스템이다. 컴퓨터 시스템의 유효한 구성 대안은, 마이크로프로세서, 주기판, 모니터, 비디오 제어기, 메모리 칩, 전원, 보조 기억장치, 보조 기억장치 제어기, 모뎀 및 소프트웨어를 선택할 때 유효한 대안을 포함하여, 수없이 많으며 여러 가지로 변경된다.
데스크톱 컴퓨터 시스템을 구성할 경우, 선택된 구성요소가 구성된 시스템 내의 다른 구성요소와 호환성이 있어야 한다. 예를 들어, 전원은 시스템의 구성요소 전체에 전력을 공급하기에 충분하여야 한다. 그 위에, 모니터는 비디오 제어기와 호환성이 있어야 하며, 보조 기억장치는 그 제어기(예를 들어, SCSI 인터페이스)와 호환성이 있어야 한다. 주기판은 시스템내에 설치된 모든 기판을 처리하기에 충분한 슬롯을 가져야 한다.
시스템의 구성요소를 수용하는 캐비넷의 물리적인 제약 조건 또한 고려된다. 캐비넷은 보조 기억장치 (예를 들어, 플로피 디스크 드라이브, 하드 디스크 드라이브 또는 테이프 백업장치)에 유효한 고정된 수의 베이를 갖는다. 이들 베이는 사용을 또한 한정하는 별도의 속성을 갖는다. 예를 들어, 베이는 캐비넷의 전면에 위치할 수도 있으며, 캐비넷의 전면으로부터 접근 할 수도 있다. 또다른 베이는 전면에서 접근할 수 있는 베이 뒤에 위치할 수도 있으며, 접근되어야 할 필요성이 없는 장치 (예를 들어, 하드 디스크 드라이브)로 제한될 수도 있다. 베이는 완전한 높이이거나 절반의 높이일 수도 있다. 보조 기억장치를 구성에 추가하기 전에, 구성 시스템은 보조 기억장치가 수용되는 베이를 식별하여야 한다. 이 경우, 적어도 보조 기억장치의 접근성 및 높이가 조사되어 유효한 캐비넷 베이와 호환성이 있는지를 결정할 필요가 있다.
보조 기억장치와 제어기간의 연결은 각각의 위치에 기초하여 결정되어야 한다. 보조 기억장치와 제어기를 연결하는 케이블은 호환성이 있는 물리적 인터페이스 (예를 들어, 수컷형 24 핀 및 암컷형 24 핀)을 제공하여야 한다.
컴퓨터 시스템내의 통신 경로를 설정하는 방법으로 데이지 체인(daisy chain) 방식이 공지되어 있다. 데이지 체인 방식은, 신호가 하나의 구성요소를 통해 다음의 구성요소로 전송될 수 있도록, 구성요소를 상호 연결할 수 있는 능력을 제공한다. 데이지 체인이 설정되었는지의 여부를 결정할 경우, 데이지 체인내의 모든 요소의 유효한 논리적인 인터페이스 (예를 들어, IDE 또는 SCSI) 및 물리적 인터페이스 (예를 들어, 24 핀)가 알려져 있어야 한다. 그 위에, 소오스 데이터 형태에서 목적 데이터 형태로의 변환이 허용되는지의 여부를 아는 것이 중요하다. 데이지 체인 방식 후보가 시스템에 추가될 때, 기존 구성요소의 상호 연결 및 구성요소간의 변환이 검사되어 새로운 구성요소가 데이지 체인의 요소가 될 수 있는지를 결정할 수도 있다.
전원 및 보조 기억장치 구성요소 예는 구성요소간의 구조적인 상호 관계 (즉, 물리적 및 공간적 관계)를 한정할 필요가 있음을 보여준다. 이러한 개념을 더욱 예시하기 위해, 컴퓨터, 원격통신, 의료용 또는 소비용 전자 부품 따위의 전력을 필요로 하는 구성요소를 두 개의 캐비넷 안에 위치시키는 것이 고려된다. 또한, 캐비넷은 전력을 조합된 캐비넷 안쪽의 구성요소에 공급하는 전원을 각각 가지고 있다. 전력 소비 및 전원이 과부하에 걸리지 않는 요건을 설명하기 위해, 모델은 각각의 구성요소가 놓이는 특정 캐비넷을 포함하고, 각각의 캐비넷에 대해 소비된 전력을 갱신할 수 있어야 한다. 두 캐비넷에서 유효한 총전력이 모든 구성요소를 캐비넷 양쪽에 둘수 있을 정도로 충분한 경우, 구성요소를 포함시켰을 때 캐비넷의 전원이 과부하에 걸린다면, 그 구성요소가 캐비넷 내에 포함될 수 없다. 따라서, 구성요소의 후속하는 배치가 유효한지의 여부를 결정하기 위해서는, 캐비넷 내의 구성요소의 물리적인 배치를 알고 있어야 한다. 이와 유사하게, 구성요소간의 물리적인 연결도 고려되어야 한다. 구조 계층 내의 각각의 구성요소의 위치는 연결되는 구성요소의 최소 또는 최적의 길이를 결정하는데 사용된다.
초기의 컴퓨터에 기반을 둔 구성 시스템은 규칙에 기초한 방법으로 불리우는 방법을 채용하였다. 규칙에 기초한 구성 시스템은, 구성 대안의 선택을 유효하게 하기 위한 규칙 (즉, "A이면, B이다")을 한정한다. R1/XCON 으로 불리는 디지탈 이큅먼트 코포레이션의 시스템 (존 맥더모트 기고 "규칙에 기초한 컴퓨터 시스템 구성기", 인공지능 19 (1982) 39 - 88 쪽 참조)은 규칙에 기초한 구성 시스템의 일례이다. R1/XCON 은 기존의 독립적으로 발생된 시스템 순서를 평가하고, 시스템에 대해 필요한 변경을 식별하여 모델의 구성 규칙을 충족시킨다. 구성 및 유효성 처리르 수행하는데 사용되는 규칙은 수없이 많고, 짜넣어지며, 상호 의존한다. 이들 규칙에 대한 변경을 행하기 전에, 이들 규칙에 의해 생성된 거미줄 웨브가 이해되어야 한다. 이들 규칙에 대한 변경은, 변경이 규칙 전체에 미치는 영향에 대해 경험과 지식을 갖춘 개인에 의해 수행되어야 한다. 따라서, 이들 규칙을 유지하는 것은 어렵고 시간 소모적이다.
규칙에 기초하는 시스템에 관련된 문제점의 해결책은 제약 조건에 기초하는 시스템이다. 제약 조건에 기초하는 시스템은 구성된 구성요소의 사용에 대해 제약을 두는 것이다. 예를 들어, 하드 디스크 드라이브는, 호환성이 있는 보조 기억장치 제어기가 요청 보조 기억장치에 의해 사용하기에 유효하지 않는 한, 구성에 추가될 수 없다. 제어기의 요건은 하드 디스크 드라이브에 대한 제약 조건이다.
기존의 계약 조건에 기초하는 시스템이 규칙에 기초하는 시스템의 결점 일부를 다루는 한, 시스템은 완전한 구성 도구를 제공하지 않는다. 순수한 제약 조건 해결 시스템은 구성에 대한 생성적인 접근방법을 채용하지 않는다 (즉, 이들 시스템은 필요, 구성요소 요청 및/또는 자원 요청에 기초하여 시스템 구성을 발생시키지 않는다). 기존의 제약 조건에 기초하는 시스템은 구성 내의 구성요소의 물리적인 배치 (예를 들어, 주기판 또는 메모리 확장 기판 위의 메모리 칩, 캐비넷 베이 내의 보조 기억장치 또는 주기판 슬롯내의 제어기) 와 연관된 구조적인 양상을 처리하지 않는 기능 계층을 사용한다.
베네트(Bennett) 등에 허여된 미국 특허 제 4,591,983 호에는, 생성적인 접근방법 대신 시스템 구성에 대한 인식 또는 검증방법을 채용한 제약 조건에 기초한 시스템의 일례가 개시되어 있다. 즉, 이 특허에서는 독립적으로 구성된 시스템을 단지 유효하게 한다. 본질적으로, 순서는 판매자 등의 독립적인 소오스에 의해 발생되며, 상기 특허는 순서에 포함된 시스템이 제약 조건을 위반하는지를 검증하는데 사용된다. 상기 미국 특허는 필요 또는 구성요소 요청 (즉, 생성적 접근방법)에 기초하여 시스템 구성을 발생시키지 않는다. 따라서, 상기 특허는 구성요소를 대화식으로 선택함으로써 시스템을 대화식으로 구성하는 능력을 제공하지 않는다.
모델은 구성된 시스템에 포함될 수도 있는 모든 요소로 구성된다. 상기 미국 특허에 있어서, 모델 요소는 집합체 계층으로 무리지워진다. 집합체 계층은 요소의그룹을 나타내는 계층 레벨을 생성한다. 현재의 레벨에서의 하나의 에트리의 가지는 엔트리를 확대하며, 엔트리는 저레벨 가지내의 요소들로 구성된다. 예를 들어, 데스크톱 컴퓨터 시스템은 키보드, 모니터 및 시스템 박스로 구성된다. 시스템 박스는 전원, 주기판, 카드 및 보조 기억장치로 구성된다. 구성 관계는 단순히 또다른 요소를 구성하는 요소를 설명한다. 그러나, 구성 관계는 모델 요소들간의 구조적인 관계를 한정하지는 않는다. 구성 관계는 "--의 내부에 물리적으로 포함된다", "물리적으로 --에 조속되는 부분이다" 및 "--에 물리적으로 연결된다" 따위의 요소간의 물리적, 구조적인 관계를 설명하지 않는다. 앞서 언급한 데스크톱 컴퓨터를 사용하여, 모니터가 데스크톱 컴퓨터 내부에 물리적으로 포함되는지의 여부를 결정할 수는 없다. 시스템 박스는 보조 기억장치로 구성되지만, 하나 또는 다수의 보조 기억장치가 시스템 박스 내부에 물리적으로 포함되는지의 여부는 결정될 수 없다.
기능 계층은 모델 내의 구성요소에 의해 수행되는 목적 또는 기능에 기초하여 모델의 구성요소를 조직한다. 계층 내의 각각의 엔트리는 더욱 특정한 기능적인 엔트리로 분할될 수 있다. 따라서, 엔트리의 혈통은 그 기능성을 한정하며, 하나의 레벨에서 다음 레벨로의 진행은 계층 엔트리의 기능성을 특화한다.
현재의 구성 시스템 내에서 사용될 때, 기능 계층은 요소의 구조적인 상호 관계 또는 요소간의 물리적 그리고 공간적 상호 연결을 한정하지 않는다. 기능 계층은 캐비넷 베이 내에 보조 기억장치를, 주기판상의 특정 슬롯내에 제어기 카드를, 또는 메모리 확장 기판상의 슬롯 내에 메모리 칩을 위치시킬 수 없다.
제2도는 기능 계층의 일례를 예시한 것이다. 하드웨어 구성요소(30)는 계층의 기본 요소이다. 하드웨어 구성요소(30)의 다음 레벨 (즉, 두 번째 레벨 (49))은 모델 내의 일반적인 기능을 식별한다. 예를 들어, 롬(ROM)(31), 처리기 유니트(31), 처리기(32), 메모리(34), 케이지(35), 기판(36), 코넥터(37), 보조 기억장치(38) 모두는 그들 자신의 특화된 기능 이외에 하드웨어 구성요소(30)의 기능을 수행한다. 처리기(33)는 특수 목적용(40) 또는 범용(41)의 기능으로 특화될 수 있다. 특수 목적용(40)은 산술 처리기(51)로 특화될 수 있다.
제2도에 도시된 바와 같이, 기능 계층은 시스템의 구조적인 양상을 한정할 수 있는 능력을 제공하지 않는다. 예를 들어, 케이지(35)의 내용을 결정할 수 있는 능력은 제공되지 않는다. 코넥터(37)에서 내려온 슬롯(46)에서 내려오는 주기판 슬롯(54)의 물리적 그리고 공간적 위치는 기능 계층으로부터 결정될 수 없다. 주기판 슬롯(54)이 주기판에 의해 포함되는 것을 결정하는 방법은 없다. 기능 계층으로부터 산술 처리기(51)가 주기판(44) 또는 또다른 모델 요소 위에 위치하는지의 여부를 한정하는 것은 명확하지 않다. 메모리 칩(42) 및 롬(31)이 주기판(44), 메모리 기판(52) 또는 또다른 모델 요소 위에 위치하는지의 여부는 결정될 수 없다.
기능 계층은 구성된 실례 또는 데이터 전송간의 실제적인 상호 연결을 한정할 수 있는 능력을 제공하지 않는다. 즉, 하나의 구성요소가 호환성이 있는 논리적 데이터 형태 (예를 들어, 직렬 인터페이스) 및 호환성이 있는 물리적 데이터 형태 (예를 들어, 24 핀)를 갖는 또다른 구성요소에 연결되는지의 여부를 결정할 수는 없다. 기능 계층은 단지 구성요소가 수행하는 기능만을 한정한다.
구성을 위해 선택된 구성요소간의 실제적인 연결을 한정하지 않기 때문에, 구성된 구성요소간에 데이지 체인을 설정할 수 없다. 제2도에 있어서, 기능 계층은 코넥터(37), 보조 기억장치 제어기(53), 플로피 드라이브(48), 하드 드라이브(49)를 구성요소 형태로서 한정한다. 자원을 유지하기 위하여, 사용자는, 플로피 드라이브(48)의 발생이 하드 드라이브(49)를 통해 보조 기억장치 제어기(53)에 데이지 체인 방식으로 연결될 수 있도록, 시스템을 구성하기를 원할 수도 있다. 그러나, 기능 계층은 단지 구성된 시스템이 보조 기억장치 제어기(53), 하드 드라이브(49) 및 플로피 드라이브(48)에 의해 제공된 기능성을 포함하는 사실만을 반영한다. 기능 계층은 플로피 드라이브(48)의 발생이 하드 드라이브(49)의 발생을 통해 보조 기억장치 제어기(53)의 발생에 연결될 수 있는 사실을 반영할 수 없다.
그러므로, 기능 계층은 구성된 실례 사이의 구조적인 상호 관계를 식별하기 위하여 연결 경로를 통과할 수는 없다. 따라서, 기능 계층은 데이지 체인을 설정할 수 없다. 그러므로, 기능 계층은 구성요소를 데이지 체인 방식으로 연결할 수 있는 능력을 제공할 수 없다.
기능 계층을 사용하는, 제약 조건에 기초하는 시스템의 또다른 예는, 9 번째 IJCAI (IJCAI-89)의 처리, 1395-1401 페이지에서 미탈(Mittal) 및 프레이먼(Frayman)이 기고한 "구성 과제의 일반적인 모델을 향하여"라는 기고문 및 스리램 및 애디, 엔지니어링에서의 지식에 기초하는 전문가 시스템 : 계획 및 설계, 1987년 9월 143 - 166 페이지에서 미탈(Mittal) 및 프레이먼(Frayman)이 기고한 "COSSACK : 구성 과제를 위한 제약 조건에 기초하는 전문가 시스템"이라는 기고문에 개시되어 있다.
COSSACK 시스템은 기능 계층에 기초하는 구성 시스템을 채용한다. COSSACK에 따르면, 기능 계층을 사용하는 시스템은 구성된 시스템의 요구되는 기능을 식별하여야 한다. 요구되는 기능이 식별되면, COSSACK은 특정 구성요소 또는 이들 요구되는 기능을 실현하는데 결정적인 역할을 하는 구성요소를 식별하여야 한다. COSSACK 표시에 의해서는 구조가 명백해지지 않는다. 또한, COSSACK 은 구조적인 정보에 대해 증명할 수 있는 기구를 제공하지 않는다. 따라서, COSSACK 은 구조에 기초하여 어떠한 단정을 내릴 수 없다. 예를 들어, 구성요소 내의 내부 데이터 전송 경로는 표시되지 않는다. 따라서, 구성요소 내에서 데이터 전송을 추적할 수 있는 능력이 없으며, 또다른 요소와의 데이터 연결을 설정할 수 있는 능력이 없다.
컴퓨터 시스템 또는 다른 시스템을 구성하는데 사용되는 구성 시스템은, 대화식으로 모델을 한정하고 유지.보수하며, 구성된 시스템을 한정하고 유지.보수 (즉, 업그레이드)하며, 판매용 묶음을 발생시키고, 구성된 시스템의 구성요소의 물리적 그리고 공간적 위치를 그래픽으로 나타내고, 그래픽 표현를 사용하여 구성된 시스템을 변경 또는 업그레이드시키고, 구성 보고(예를 들어, 실패된 요청, 견적 및 재료 목록)을 발생시키는 도구를 제공하여야 한다. 그러한 시스템은 시스템의 구성요소, 구성요소간의 구조적인 관계, 구성요소의 실제적인 물리적 그리고 공간적 상호 연결 및 각각의 구성요소에 의해 부과되는 제약 조건을 한정하여야 한다.
본 발명은, 시스템이 구성요소 또는 자원 요청에 기초하여 구성되거나 필요의 형식으로 입력될 수 있도록, 시스템을 구성하기 위한 생성적인 접근 방법을 채용한다. 본 발명은 계층적 또는 비계층적 구조를 포함하는 기능계층 및 구조적인 관계에 대해 추론하고 구조적인 관계를 발생시킬 수 있는 관련 제약 조건을 사용하는, 제약 조건에 기초하는 구성 시스템을 제공한다. 모델의 구조적인 양상은 모델 요소를 또다른 모델 요소내에 또는 그에 의해 포함되는 것으로서 한정할 수 있는 능력을 제공한다. 그 위에, 구조적인 모델은 요소간의 논리적인 데이터 형태와 물리적인 상호 연결을 식별하고 요소간의 연결을 설정할 수 있는 능력을 제공한다.
시스템을 구성하기 위하여, 본 발명은 데스크톱 컴퓨터 시스템을 캐드(CAD : 컴퓨터 보조 설계) 환경에 사용하기 위한 필요의 표현으로서 요청 (예를 들어, 구성요소 또는 자원) 또는 필요의 형식으로 이루어진 입력을 허용한다. 이 정보를 사용하여, 본 발명은 자원 및 구성요소 필요, 식별된 자원 또는 구성요소에 또는 그에 의해 부과된 제약 조건 및 시스템의 구조적인 양상을 식별함으로써 시스템을 구성한다.
시스템 구성은 시스템 (즉, 캐드 환경에서 운영하기 위한 데스크톱 컴퓨터 시스템)의 일반적인 정의에 기초하거나 증가된 특성 (예를 들어, 제조자 또는 모델 번호에 의한 디스크 드라이브)의 레벨에서 수행될 수 있다. 시스템 구성은 특정 구성요소 요청 (예를 들어, 레이저 프린터)에 기초하거나 필요 (예를 들어, 프린트 능력)에 의해 수행될 수 있다. 시스템이 구성되면, 구성된 시스템은 제품으로 묶이고, 견적이 발생될 수 있다. 묶음 처리는 제품 대 구성요소의 매핑을 제어하기 위한 발견적 방법의 사양을 포함할 수도 있다. 예를 들어, 가장 많은 수의 구성요소를 커버하는 제품은 가장 적은 양의 구성요소를 커버하는 다른 제품 선택을 넘어서 선택될 수 있다.
본 발명의 기능적 구조 계층은 구성 모델의 구조 및 모델로부터 구성된 시스템의 구조를 한정할 수 있는 능력을 제공한다. 구조 계층은 컨테이너 계층을 포함한다. 컨테이너는 하나의 구성요소가 또다른 구성요소에 의해 또는 그 안에 포함되는 것을 지정할 수 있는 능력을 제공한다. 따라서, 예를 들어, 요청된 구성요소를 포함할 수 있도록 지정된 캐비넷 내에 비어 있는 캐비넷 베이가 없기 때문에, 디스크 드라이브에 대한 구성요소 요청이 충족될 수 없음을 식별할 수 있다.
구조 계층 개념은 자원을 모을 수 있는 능력을 제공한다. 구조, 특히 계층 구조의 명료성 표시는 물려받은 자원을 한정하고 그에 접근할 수 있는 능력을 제공한다. 예를 들어, 컴퓨터, 원격 통신, 의료용 또는 소비용 전자부품은 이들 구성요소에 전력을 공급하는 캐비넷 내에 놓일 수 있다. 이들 개개의 구성요소는 구조적인 상위요소 (즉, 모델 계층내의 구성요소의 하나 또는 다수의 레벨 위에 존재하는 계층 엔트리)로부터 전력 자원을 물려받을 수 있다. 또한, 구조적인 상위요소는 자원을 모으고, 그 구조적인 하위요소 (즉, 모델 계층 내의 구조적인 상위요소의 하나 또는 다수의 레벨 아래에 존재하는 계층 엔트리)에 동질의 자원을 제공할 수 있다. 예를 들어, 캐비넷은 하나 이상의 전력 소오스를 제공할 수도 있으나, 자원은 단일의 자원 풀로서 구조적으로 하위요소인 구성요소에 제공된다. 따라서, 구성요소가 특정 자원을 필요로 하는 경우, 이 자원은 자원 풀에 의해 공급될 수 있다. 예를 들어, 데스크톱 컴퓨터 시스템의 캐비넷이 다수의 전원을 포함하는 경우, 디스크 드라이브 구성요소는, 자원 필요가 다수의 전력 소오스에 의해 충족되었음을 인지함이 없이 자원 풀로부터 끌어내어질 수도 있다.
그 위에, 구조적인 사양은 구성된 시스템의 구성요소간의 연결을 지정할 수 있는 능력을 제공한다. 구성요소가 구성에 추가될 때, 시스템 구성요소를 조립하는데 필요한 물리적 그리고 논리적 상호 연결은 검증될 수도 있다. 예를 들어, 직렬의 논리적 연결 및 24 핀의 물리적인 연결을 갖는 프린터를 추가하기 전에, 직렬 포트가 구성된 시스템 내에서 유효하여야 한다. 그 위에, 물리적인 연결이 프린터와 직렬 포트간에 이루어져야 한다. 직렬 포트가 9 핀 암컷형의 물리적인 연결이고 프린터가 24 핀 암컷형 연결을 갖는 경우, 케이블은 프린터와 직렬 포트를 물리적으로 연결시킬 수 있어야 한다. 그 위에, 실제의 연결은 구성 내에서 생성되며, 후속하는 연결 처리에서 검사될 수 있다. 연결 처리는 연결 요청을 충족시키기 위한 연결 처리에서 검사될 수 있다. 연결 처리는 연결 요청을 충족시키기 위한 기준을 식별할 수 있는 능력을 제공한다. 예를 들어, 연결 기준은 가장 싸고, 가장 길거나 최적의 처리량 연결을 포함할 수도 있다.
연결 처리는 구성된 시스템의 자원의 사용을 최적화하는데 또한 사용될 수도 있다. 예를 들어, 제어기의 자원은 다른 구성요소를 데이지 체인 방식으로 함께 연결함으로써 최적화될 수 있다. 다수의 중재 구성요소를 통해 하나의 구성요소를 또다른 구성요소에 연결함으로써, 다수의 구성요소는 단일의 포트 또는 연결을 통해 단일의 구성요소에 연결될 수도 있다.
본 발명에 있어서, 모델링 언어는 모델 계층을 한정하는데 사용된다. 모델 계층은 구조적이고 기능적이다. 모델링 언어는 프로덕트 라인으로 무리지워질 수도 있는 프로덕트 베이스를 한정할 수 있는 능력을 제공한다. 구조 계층 모델은 구성요소, 조합체, 컨테이너, 포트 및 코넥터 기준 클래스를 포함한다. 이들 기준 클래스는 파생 클래스 (즉, 시스템 지정 클래스)로 분기될 수도 있고, 잎 노드 자손에서 종료된다. 잎 노드 자손은 기능적 구조 계층 모델 내의 구성요소의 형태를 한정한다. 속성, 데이터 형태, 자원 및 제약 조건 또한 모델을 한정한다.
모델 언어는 요소, 요소에 대한 제약 조건 및 모델의 구조를 한정하기 위한 포맷을 제공한다. 모델 언어는 직접적으로 사용되거나, 모델의 생성 및 유지.보수를 촉진하는데 사용되는 대화식 모델 유지.보수 시스템으로부터의 입력에 기초하여 발생될 수도 있다.
유지.보수 시스템은 모델을 그래픽으로 표시하고, 갱신될 모델 요소의 선택을 위한 인터페이스를 제공한다. 소정의 갱신이 행해지면, 우지.보수 시스템은 새로운 모델을 검사하고, 새로운 모델이 성공적으로 컴파일되었는지를 검증할 수 있는 능력을 제공한다.
모델이 성공적으로 한정되면, 본 발명은 기능적 구조 계층 모델을 사용하여 시스템을 구성할 수 있는 능력을 제공한다. 대화식 인터페이스는 모델 요소 (즉, 구성요소) 요청, 자원 요청 및/또는 필요 (즉, 요건) 요청의 항목으로 구성을 표현할 수 있는 능력을 제공한다. 이들 요청을 충족시키기 위해, 구성 엔진이 불러내어진다.
구성 엔진은 프로덕트 베이스에 접근하여, 한정된 우선순위에 따라 요청을 충족시킨다. 요청은, 구성요소를 구성에 추가하거나 요청을 충족시킬 수 있는 기존의 구성요소를 식별함으로써 처리된다. 또한, 상호 연결, 데이터 전송 경로 및 동적으로 결정되는 구조적인 관계가 한정된다. 요청이 성공적으로 처리되었을 때, 구성 변경이 보내어진다. 실패된 요청은 보고된다.
그래픽 표시는 구성된 시스템 및 그 구조적인 특성을 보여준다. 구성된 시의 요소들은 다른 요소들에 대한 물리적 그리고 공간적 위치의 항목으로 예시된다. 요소들은 다른 요소들 안에 포함되고, 다른 요소들로 구성되거나 상호 연결된다. 이 그래픽 표시는 구성된 시스템의 요소들을 변경하고 유지.보수하기 위한 인터페이스를 또한 제공한다.
구성된 시스템의 요소들은 시스템 견적 및 제조용으로 유효한 판매용 및 제조용 패키지로 묶여진다. 묶음 처리는 제품 정의에 기초하여 제품-구성요소 매핑을 수행한다.
시스템 구성방법 및 구성장치에 대해 설명하기로 한다. 이하에서는, 다수의 특정 실시예를 통해 본 발명이 더욱 상세히 설명된다. 그러나, 본 발명이 속하는 기술분야의 당업자에게는 명백한 바이지만, 이들 특정 실시예가 아니더라도 본 발명을 실시할 수 있다. 그밖에, 본 발명이 모호해지는 것을 막기 위해, 공지된 특징에 대해서는 상세한 설명을 피하였다.
본 발명은, 컴퓨터 하드웨어, 컴퓨터 소프트웨어, 컴퓨터 네트워크, 원격통신 시스템 (예를 들어, PBX 및 음성 우편), 복사기, 의료 영상 시스템, 차량 (예를 들어, 소방차 및 건설 장비), 전자 제어 시스템, 빌딩, 모듈형 가구, 제조 장비, 제조 시스템, 소비형 전자 장비 및 전자 시스템을 포함하는 폭넓은 영역에 적용되는 시스템 구성을 위한 도구를 제공한다.
제1도는 본 발명의 구성 시스템의 블록도이다. 구성 시스템(10)은 모델 유지.보수 부시스템(12), 구성 발생 및 보고 부시스템(14), 묶음/견적 부시스템(16), 통신 버스(18), 입력/출력(20), 메모리(22), 중앙처리장치(24) 및 보조 기억장치(26)로 구성되어 있다.
제12도는 구성 시스템의 기능적인 동작을 예시한 흐름도이다. 블록(600)에서, 모델 베이스가 판독된다. 구성 시스템은 시스템을 구성하는데 유효한 모든 요소 (예를 들어, 구성요소 및 자원)에 대한 정보를 포함하는 모델 베이스를 사용한다. 이 모델 베이스는 프로덕트 베이스로서 언급된다.
모델 언어는 프로덕트 베이스를 생성하는데 사용된다. 모델 언어는, 모델 요소, 모델 요소의 제약 조건 및 모델의 구조를 한정하는데 사용되는, 구문 또는 문장을 제공한다. 처리 블록(604)에서, 모델 정의는 모델 언어을 사용하여 입력될 수 있으며, 모델의 한정 절차는 블록(606)에서 종료된다.
모델 유지.보수 - 모델의 한정 절차는, 모델 유지.보수 부시스템이 결정 블록(602)(즉, "모델 유지.보수 부시스템을 사용하는가 ?")에서 선택되는 경우에, 촉진될 수 있다. 블록(608)에서, 새로운 또는 기존의 모델이 표시된다. 블록(610)에서, 모델이 편집될 수 있다. 모델 유지.보수 부시스템(12)은 결정 블록(612)(즉, "기록 보전성, 프로덕트 베이스 보전성 또는 오류수정기 ?")에서 변경된 모델의 유효성을 검사하고 오류를 수정할 수 있는 능력을 제공한다. "기록 보전성"이 선택되면, 변경에 더하여, 구문 해석 파일(즉, 프로덕트 베이스의 부분 집합)의 보전성이 결정된다. "프로덕트 베이스 보전성"이 선택되면, 변경에 더하여, 프로덕트 베이스의 보전성이 결정된다.
"오류수정기"가 선택되면, 벤치 마크 시스템 구성 요청이 블록(618)에서 파일로부터 판독된다. 블록(14)에서, 변경된 모델 및 벤치 마크 구성 요청을 사용하여 시스템을 구성하기 위해, 구성 발생 및 보고 시스템(14)이 불러내어진다. 구성 발생 및 보고 시스템(14)에 의한 이들 요청의 처리는, 구성 절차를 검사하기 위해, 기록된다.
결정 블록(622)(즉, "모델을 변경시키는가 ?")에서 모델에 대한 별도의 변경이 있는 경우, 모델의 그래픽 표현이 블록(608)에서 표시되며, 변경 절차는 블록(610)에서 계속된다. 다른 변경이 없는 경우, 모델 정의가 블록(624)에서 발생되며, 모델 유지.보수 부시스템은 블록(606)에서 종료된다.
구성 및 보고 시스템 - 구성 및 보고 시스템(14)은 모델 정의를 사용하여 사용자 지정 요청 및 필요에 따라 구성된 시스템을 발생시킨다. 결과적으로 얻어지는 구성은 그래픽으로 표시된다. 구성에 관한 정보를 제공하기 위해 보고가 발생된다. 결정 블록(630)(즉, "기존의 시스템을 업그레이드 하는가 ?")에서 기존의 구성이 업그레이드되는 것으로 결정되는 경우, 기존의 시스템이 판독되고, 블록(632)내에 존재하는 바와 같이 그 요소가 표시된다. 새로운 시스템이 구성되는 경우, 비어 있는 시스템의실례가 블록(634)에서 생성된다. 요소의 요청 또는 필요를 입력하는데 사용되는 형태가 블록(636)에서 표시된다. 결정 블록(638)(즉, "요청이 완료되었나 ?")에서 입력이 완료되지 않았으면, 블록(636)에서 처리가 계속된다.
구성 엔진 - 요청 및 필요의 입력이 모두 완료되면, 블록(640)에서의 입력에 기초하여 구성된 시스템을 발생시키기 위하여, 구성 엔진이 불러내어진다. 구성의 그래픽 표현이 블록(642)에서 표시된다. 구성은 변경될 수도 있고, 보고가 발생될 수도 있거나, 구성요소가 묶여질 수도 있고 견적이 발생될 수도 있다. 결정 블록(644)(즉, "구성 변경 ?")에서 변경이 의도되는 경우, 결정 블록(652)(즉, "모델을 필터링하는가 ?")에서 처리가 계속된다. 필터링된 모델이 결정 블록(652)에서 선택되면, 모델의 부분 집합이 블록(654)에서 발생된다. 모델의 부분 집합은, 현재의 구성에서 선택될 수 있는 모델 요소를 포함한다. 처리는 블록(636)에서 계속되어, 입력 형태를 표시한다. 필터링된 모델이 사용되지 않는 경우, 처리는 블록(636)에서 계속된다.
시스템이 구성된 후에, 제품의 제조 및 판매를 위해, 구성요소는 묶여질 수 있다. 묶음기(660)는 구성요소를 제품에 대응시킨다. 인컨테이너(662)는 구성된 시스템의 비용 견적을 발생시킨다. 블록(664)에서, 견적이 표시된다. 결정 블록(666)(즉, "구성 변경 ?")에서 구성의 변경이 없으면, 블록(606)에서 처리가 종료된다. 구성에 대한 변경이 있는 경우, 구성 발생 및 보고 부시스템(14)이 블록(668)에서 불러내어진다.
구조 계층
본 발명의 구성 시스템은 기능적 구조 계층을 사용하는, 제약 조건에 기초하는 구조이다. 제3도는 기능적 구조 계층 및 5개의 고유한 기준 클래스를 예시하고 있다. 기능적 구조 계층은, 기준 형태의 모델 객체를 한정하는 5개의 고유한 기준 클래스(70)로 구성된 클래스 계층을 포함하고 있다. 이들 5개의 기준 클래스는, 구성요소(60), 조합체(62), 코넥터(64), 컨테이너(66) 및 포트(68)이다. 구성요소(62)는 다른 모든 클래스와 구성요소의 형태가 파생되는 기준 클래스이다. 구성요소(62)에서, 계층 트리의 가지는 각각 고유의 기준 클래스에서 시작되어 파생 클래스(88)로 불리우는 시스템 지정 클래스로 분기된다. 파생 클래스(88)는 보조 기억장치, 전원 및 주변 카드 등의 폭넓은 구성요소 범주의 정의이다. 파생 클의 다중 발생은 기준 클래스에서 전해내려 올 수 있다. 각각의 가지는 "잎 노드의 자손" 또는 구성요소 형태(90)로 종료된다. 구성요소 형태(90)는 실증되고 구성될 수 있는 실제의 구성요소를 나타낸다.
조합체 클래스(62)는 정적 구조 (즉, 하위 구조를 갖는 요소)이다. 이 클래스내의 요소는 조합체의 부요소를 갖거나 부요소 자체이다. 코넥터 클래스(64)는 조합체 클래스(62)에서 분기된다. 이 클래스는 요소를 연결하는 모델 요소를 한정한다. 코넥터 클래스(66)내의 요소는, 요소가 다른 요소들을 포함할 수 있음을 나타낸다. 포토 클래스(68)내의 요소는 포트 선택을 제공하며, 포트의 데이터 형태를 한정한다. 포트 클래스(68)에서 파생된 요소는 포트 클래스(68)에서 파생된 다른 구성요소와 물리적으로 연결될 수 있다.
본 발명은, 구조 계층내에서, 특정 시스템의 구성요소가 어떻게 공간적으로 그리고 물리적으로 존재할 수 있는지를 나타낼 수 있는 능력을 제공한다. 구조 계층내에는, 세가지 형태의 하위 구조, 즉 조합체 계층, 컨테이너 계층 및 포트 관계가 존재한다. 예를 들어, 섀시는 8개의 카드 슬롯을 갖는다. 컨테이너 계층은 다른 구성요소내에 포함되는 구성요소를 식별한다. 컨테이너 계층은, 구성이 발생될 때 구조가 동적으로 생성되는, 동적 구조이다. 예를 들어, 중앙처리장치 카드는 섀시의 슬롯 0 내에 위치한다. 포트 관계는 다른 구성요소에 연결되는 구성요소를 식별한다. 구성이 발생 될 때, 연결 또는 포트 관계는 동적으로 생성된다. 이들 하위 구조내의 발생간의 관계는 "--의 자식임(childOf)", "--에 의해 포함됨(containedBy)" 및 "--와 여결됨(connectsWith)" 등의 키워드에 의해 표현된다.
"--의 자식임" 키워드는, 구성요소가 조합체 클래스에서 내려오는 구성요소의 일부임을 나타내다. "--에 의해 포함됨" 키워드는, 구성요소가 컨테이너 기준 클래스에서 내려오는 구성요소내에 포함됨을 나타낸다. "--와 연결됨" 키워드는 구성요소가 포토 클래스에서 내려오는 구성요소에 연결됨을 나타낸다.
컨테이너 계층은 전형적으로 조합체 계층과의 교호하는 관게를 나타낸다. 즉, 컨테이너 종종 조합체 구성요소의 자식이며, 조합체 구성요소는 다른 컨테이너에 의해 포함된다. 각각의 하위 구조 형태는 또한 동일한 이름의 기준 클래스(즉, 조합체, 컨테이너 또는 포트)의 자손인 루트 멤버를 갖는다. 하위 구조의 멤버는 클래스 계층내에서 한정되는 클래스일 수 있다. 예를 들어, 컨테이너 클래스에서 내려오는 클래스 베이의 구성요소는 (구성요소 클래스에서 내려오는) 클래스 보조 기억장치의 구성요소 또는 (컨테이너 클래스에서 내려오는) 클래스 카드 섀시의 구성요소를 포함할 수도 있다.
제4도는 5개의 기준 클래스, 파생 클래스, 잎 노드 자손 및 하위 구조 관계를 갖는 구조 계층을 예시한 것이다. 구조 계층은 모델의 구조적인 양상을 또한 한정한다. 예를 들어, 슬롯(114)은 캐비넷(110)의 자식이다. 따라서, 슬롯(110)은 조합체 구성요소인 캐비넷(110)의 부요소이다. 또한, 캐비넷(110)은 시스템(116)의 자식이다. 카드(즉, 118A) 및 슬롯(즉, 114A)의 두번째 발생은 카드와 슬롯간의 하위 구조적인 관계를 예시한다. 카드(118A)는 슬롯(114A)에 의해 포함된다. 이와 유사하게, 보조 기억장치(120A)는 베이(122A)에 의해 포함되며, DB25 수컷형 장치 출력(124A)은 DB25 암컷형 장치 출력(126)과 연결된다.
본 발명의 모델의 구조적인 양상은 자원을 넘기고 모으는 능력을 제공한다. 예를 들어, 컨테이너 구성요소인, 캐비넷은 섀시와 두 개의 100 와트 전원(A,B)으로 구성될 수도 있다. 섀시 컨테이너 내의 요소는 각각 약간의 전력을 소비하거나 필요로 한다. 섀시 구성요소가, 110 와트를 소비하는 (각각 55 와트를 소비하는) 두 개의 중앙처리장치와, 70 와트를 소비하는 램(RAM)과, 총 20 와트를 소비하는 다수의 카드 (예를 들어, 제어기)를 포함하는 경우, 전원이 다른 전원과는 독립적으로는 섀시와 그 요소에 충분한 전력을 공급하지 못한다.
그러나, 두 개의 전원이 캐비넷 컨테이너 내에 포함되고, 그의 일부이기 때문에, 두 개의 전원은 합쳐져서 캐비넷 내의 요소에 전력을 공급할 수 있게 된다. 따라서, 이 예에서 요소에 대해 자원의 요구가 처리될 때, 하나 또는 다른 하나가 사용되어 요청을 충족시킬 수 있다. 그 위에, 전원 둘다를 사용하여 요소중 어느 하나에 대한 자원의 요구를 충족시키는 것이 가능하다. 예를 들어, 하나의 중앙처리장치의 자원의 요구가 55 와트의 전원(A)의 사용에 의해 먼저 처리되고, 다음에 램에 대한 자원의 처리가 이루어질 경우, 램의 자원 요구는 전원(A) 만으로도 충족될 수 있다. 그러나, 전원(A)에서 45 와트를 사용하고 전원(B)에서 25 와트를 사용하여 램의 자원의 요구를 충족시킬 수 있다. 자원을 모을 수 있는 능력을 사용할 수 있는 또다른 자원은 열 소산 자원이다.
컨테이너
구조 계층은, 하나의 모델 요소 또는 일군의 모델 요소가 또다른 요소에 의해 포함될 수 있도록 모델을 구성할 수 있는 능력을 제공한다. 구성내에 포함된 모델 요소의 사용은 구성 내의 컨테이너 모델 요소의 유효성에 의해 제약된다.
제8도는 SatisfyContainerConstraint 및 SatisfyComponentConstraint 처리의 흐름도를 예시한 것이다. 결정 블록(500)(즉, "요구된 실례가 이미 구성 내에서 유효한가?")에서, 요구된 실례가 존재하고 제약 조건을 충족하는데 유효할 경우, 제약 조건은 이 유효한 실례에 의해 충족되며, 처리는 블록(526)에서 복귀된다. 그렇지 않으면, 요구된 실례는 실증되고, 처리 블록(502)에서 변경 목록이 갱신된다. 결정 블록(504)(즉, '처리되어야 할 제약 조건이 있는가?")에서, 새로운 실례에 대한 제약 조건이 없는 경우, 새로운 실례에 의해 제약 조건이 충족되며, 처리는 블록(526)에서 복귀된다.
처리되어야 할 제약 조건이 있는 경우, 다음의 제약 조건이 블록(508)에서 식별된다. 결정 블록(510)(즉, "컨테이너를 필요로 하느가?")에서 컨테이너를 필요로 하는 제약 조건인 것으로 결정되는 경우, 처리는 처리 블록(512)(즉, "컨테이너의 제약 조건을 충족시킨다")에서 계속되어 컨테이너를 필요로 하는 제약 조건을 충족시키며, 처리는 결정 블록(522)(즉, "제약 조건이 충족되었는가?")에서 계속된다.
결정 블록(510)에서 컨테이너를 필요로 하는 제약 조건이 아닌 것으로 결정되지만, 결정 블록(514)(즉, "연결이 필요한가?")에서 연결을 필요로 하는 제약 조건인 것으로 결정되는 경우, 처리는 처리 블록(516)(즉, "연결의 제약 조건을 충족시킨다")에서 계속되어 연결을 필요로 하는 제약 조건을 충족시키며, 처리는 결정 블록(522)(즉, "제약 조건이 충족되었는가 ?")에서 계속된다.
결정 블록(510)에서 컨테이너를 필요로 하는 제약 조건이 아니고, 결정블록(514)(즉, '연결을 필요로 하는가?")에서 연결을 필요로 하는 제약 조건이 아닌 경우, 처리는 결정 블록(518)(즉, "구성요소를 필요로 하는가 ?")에서 계속된다. 결정 블록(518)(즉, "구성요소를 필요로 하는가?")에서 구성요소를 필요로 하는 제약 조건인 것으로 결정되는 경우, 처리는 처리 블록(520)(즉, "구성요소의 제약 조건을 충족시킨다")에서 계속되어 구성요소를 필요로 하는 제약 조건을 충족시키고, 처리는 결정 블록(522)(즉, "제약조건이 충족되었는가?")에서 계속된다. 결정 블록(522)(즉, "제약 조건이 충족되었는가?")에서, 제약 조건이 충족된 경우, 처리는 결정 블록(504)(즉, "처리되어야 할 제약 조건이 있는가?")에서 계속된다. 제약 조건이 충족되지 않은 경우, 제약 조건은 기존의 실례 또는 새로운 실례에 의해 충족되지 않은 것으로 표시되고, 새로운 실례는 처리 블록(524)에서 변경 목록으로부터 제거된다. 처리는 블록(526)에서 복귀된다.
연결 처리
구성 내의 모델 요소의 사용은 또다른 모델 요소로의 연결을 설정하는 능력에 의해 또한 제약된다. 연결을 필요로 하는 제약 조건은, 물리적 연결이 두 구성요소 사이에 존재하는 것을 필요로 한다. 제9A도는 연결을 필요로 하는 제약 조건을 충족시키기 위한 흐름도를 예시한 것이다. 처리 블록(280)에서, 목표 구성요소가 선택되고, 포트의 목록이 생성된다. 처리 블록(282)에서, 요청된 자원이 할당된다. 처리 블록(284)에서, 목표 구성요소로부터 접근가능한, 연결되지 않은 포트를 식별하기 위해, CandidatePorts(list)가 불러내어진다. 처리 블록(286)에서, 후보 지역 포트(즉, 연결되어 있지 않고, 적절한 데이터 형태를 갖춘 포트)가 식별된다. 처리 블록(288)에서, 후보 코넥터가 식별된다.
결정 블록(290)(즉, "모든 코넥터가 검사되었는가?")에서, 코넥터가 모두 검사된 경우, 요청은 실패된 것으로 표시되고, 처리는 블록(306)(즉, "복귀")에서 계속된다. 그렇지 않으면, 다음의 코넥터가 블록(294)에서 선택된다. 선택 블록(296)(즉, "물리적인 형태의 코넥터의 포트 1이 물리적인 형태의 목표 포트에 연결될 수 있는가?")에서, 코넥터의 포트 1이 목표 포트의 물리적 형태와 동일한 물리적인 형태가 아닌 경우, 처리는 결정 블록(290)(즉, "모든 코넥터가 검사되었는가?")에서 계속된다.
그렇지 않으면, 결정 블록(298)에서 처리가 계속된다. 결정 블록(298)(즉, "물리적인 형태의 코넥터의 포트 2가 물리적인 형태의 지역 포트에 연결될 수 있는가?")에서, 코넥터의 포트 2가 지역 포트의 물리적 형태와 동일한 물리적 형태)(즉, 25 핀)가 아닌 경우, 처리는 결정 블록(290)(즉, "모든 코넥터가 검사되었는가?")에서 계속된다. 그렇지 않으면, 처리는 결정 블록(300)에서 계속된다. 결정 블록(300)(즉, "전송 경로가 포트 1 및 포트 2 사이에 존재하는가?")에서, 전송 경로가 포트 1 및 포트 2 사이에 존재하지 않는 경우, 처리는 결정 블록(290)(즉, "모든 코넥터가 검사되었는가?")에서 계속된다. 그렇지 않으면, 요청된 자원은 블록(302)에서 할당된다. 처리 블록(304)에서, 목표 포트는 코넥터의 포트 2에 연결되며, 지역 포트는 코넥터의 포트 1에 연결된다. 처리는 블록(306)에서 종료된다.
연결을 필요로 하는 제약 조건을 충족시키기 위하여, 후보 포트가 식별되어야 하다. 제9B도는 CandidatePorts(list) 처리의 흐름도를 예시한 것이다. CandidatePorts(list)의 처리 브록(310)은 목록 내의 다음 포트로 thePort 변수를 설정한다. 결정 블록(312)(즉, "포트가 연결되었는가?")에서, 포트가 연결된 경우, 처리는 처리 블록(316)에서 계속된다. 그렇지 않으면, 결정 블록(314)(즉, "thePort가 올바른 데이터 형태인가 또는 변환이 허용되는가?")에서 데이터 형태가 호환성이 있는지의 여부가 결정된다. 그렇지 않으면, 처리가 블록(310)에서 계속되고, 다음 포트가 발견된다.
데이터 형태가 호환성이 있는 경우, thePort는 포트 목록에 추가되고, 처리는 블록(310)에서 계속된다. thePort가 이미 결정 블록(312)에서 연결된 것으로 결정된 경우, 처리는 처리 블록(316)에서 계속되며, newPort는 thePort가 여결되는 포트로 설정된다. 블록(320)에서, 새로운 포트 목록은 newPort가 전송하는 모든 포트에 대해 생성된다. 결정 블록(322)(즉, "newList가 요청하는 구성요소의 포트를 포함하는가?")에서, newList가 요청하는 구성요소의 포트중 어느 하나의 포트를 포함하는 경우, 연결은 블록(326)에 이미 존재하는 것으로 표시되고, 처리는 블록(328)에서 복귀된다. 그렇지 않을 경우, CandidatePorts(list)는 newList용으로 불러내어진다.
구성 엔진
사용자가 모델로 구성될 시스템의 구성요소를 선택하였을 때, 사용자는 구성 엔진의 불러내기를 요청한다. 구성기는 프로덕트 베이스에 접근하여 객체 클래스를 식별한다. 특정 유효성 검사가 성공적으로 수행된 후에, 구성기는 객체 실례로 불리우는 클래스의 맴버를 실증(즉, 생성)한다. 구성기는 단지 요청된 시스템을 구성하는데 필요한 객체를 실증한다.
구성 엔진은 지정된 순서에 따라 구성요소 및 자원 요청을 처리한다. 각각의 요청이 처리됨에 따라, 기존 구성은, (1) 요청된 구성요소 및 요청된 구성요소를 지원하기 위해 필요한 다른 구성요소를 더하거나 (2) 기존의 구성요소 및 요청된 자원을 제공하는데 필요한 새로운 구성요소를 식별함으로써, 변경된다. 요청이 성공적으로 처리되었을 때, 구성의 변경은 넘겨지고, 이 구성은 다음 요청을 처리할 때 입력 구성이 된다.
제6도는 구성 엔진 처리의 흐름도를 예시한 것이다. 처리 블록(202)은 요청의 우선 순위 목록을 생성한다. 모든 요청이 결정 블록(204)(즉, '모든 요청이 처리되었는가?")에서 처리된 것으로 결정된 경우, 처리는 블록(206)에서 종료된다. 그렇지 않으면, 처리 블록(208)에서 다음 요청이 선택된다.
요청의 형태는 결정 블록(210)(즉, "요청의 형태?")에서 결정된다. 요청이 구성요소 요청인 경우, 처리는 처리 블록(212)에서 계속된다. 블록(212)에서, 요청된 구성요소는 실증되어 변경 목록으로 보내어지고, 처리는 결정 블록(216)에서 계속된다. 요청이 자원 요청인 경우, 이 자원을 공급할 수 있는 구성요소가 처리 블록(214)(즉, "SatisfyResourceRequest")에서 식별되고, 처리는 결정 블록(216)에서계속된다. 결정 블록(216)(즉, "실증 또는 할당이 성공적인가?")에서, 구성요소 실증 또는 자원의 할당이 성공적으로 이루어진 경우, 처리는 결정 블록(224)(즉, "처리되어야 할 제약 조건이 있는가?")에서 계속된다. 구성요소의 실증 또는 자원의 할당이 성공적이지 않은 경우, 처리는 결정 블록(218)(즉, "이 요청을 충족시키기 위한 다른 대안이 존재하는가?")에서 계속된다.
결정 블록(218)(즉, "이 요청을 충족시키기 위한 다른 대안이 존재하는 가?")에서 요청을 충족시키기 위한 다른 대안이 존재하는 않는 것으로 결정되면, 요청은 실패된 요청으로서 식별되며, 처리는 결정 블록(204)(즉, "모든 요청이 처리되었는가?")에서 계속된다. 다른 대안이 있는 경우, 실패된 대안의 변경이 블록(220)에서 변경 목록으로부터 제거되며, 다음의 대안이 목록(222)에서 변경 목록으로 보내어지며, 처리는 결정 블록(224)(즉, "처리되어야 할 제약 조건이 있는가?")에서 계속된다.
결정 블록(224)(즉, "처리되어야 할 제약 조건이 있는가?")에서, 처리되어야 할 제약 조건이 없는 경우, 변경이 처리 블록(244)에서 구성으로넘겨지며, 처리는 결정 블록(204)(즉, "모든 요청이 처리되었는가?")에서 계속 된다. 처리되어야 할 제약 조건이 있는 경우, 다음의 제약 조건이 블록(226)에서 식별된다. 결정 블록(228)(즉, "컨테이너를 필요로 하는가?")에서 컨테이너를 필요로 하는 제약 조건인 것으로 결정되는 경우, 처리는 처리 블록(230)(즉, "컨테이너 제약 조건을 충족시킨다")에서 계속되어 컨테이너를 필요로 하는 제약 조건을 충족시키며, 처리는 결정 블록(240)(즉, "제약 조건이 충족되었는가?")에서 계속된다. 결정 블록(228)에서 컨테이너를 필요로 하는 제약 조건이 아닌 것으로 결정되지만, 결정 블록(236)(즉, "연결을 필요로 하는가?")에서 연결을 필요로 하는 제약 조건인 것으로 결정되면, 처리는 처리 블록(232)(즉, "연결의 제약 조건을 충족시킨다")에서 계속되어 연결을 필요로 하는 제약 조건을 충족시키며, 처리는 결정 블록(240)(즉, "제약 조건이 충족되었는가?")에서 계속된다.
결정 블록(228)에서 컨테이너를 필요로 하는 제약 조건이 아니고, 결정 블록(236)(즉, "연결을 필요로 하는가?")에서 연결을 필요로 하는 제약 조건이 아닌 경우, 처리는 결정 블록(238)(즉, "구성요소를 필요로 하는가?")에서 계속된다. 결정 블록(238)(즉, "구성요소를 필요로 하는가?")에서 구성요소를 필요로 하는 제약 조건인 것으로 결정되는 경우, 처리는 처리 블록(234)(즉, "구성요소의 제약 조건을 충족시킨다")에서 계속되어 구성요소를 필요로 하는 제약 조건을 충족시키며, 처리는 결정 블록(240)(즉, "제약 조건이 충족되었는가?")에서, 제약 조건이 충족된 경우, 처리는 결정 블록(224)(즉, "처리되어야 할 제약 조건이 있는가?")에서 계속된다. 제약 조건이 충족되지 않은 경우, 처리는 결정 블록(218)(즉, "요청을 충족시키기 위한 다른 대안이 존재하는가?")에서 계속된다.
자원이 개개의 구성요소 실례에 의해 제공되고, 전체 시스템 실체로서 표시되지 않는 사실을 통해, 대안의 조사가 용이하게 이루어진다. 제7도는 자원 요청을 충족시키기 위한 처리의 흐름도를 예시한 것이다. 처리 블록(250)에서, 요청된 자원을 제공하는 새로운 구성요소가 발견된다. 결정 블록(252)(즉, "발견된 구성요소의 실례가 있는가?")에서 구성요소가 자원을 제공하지 않는 것으로 결정되면, 처리 블록(262)에서 처리가 계속된다.
구성요소가 발견되면, 결정 블록(254)(즉, "이 자원이 소비되었는가?")에서 처리가 계속된다. 자원이 소비되었으면, 처리 블록(250)(즉, "요구된 자원을 제공하는 다음의 구성요소를 찾는다")에서 처리가 계속된다. 자원이 소비되지 않은 경우, 클래스 요구 및 선택적 요구가 결정 블록(256)에서 유효한지의 여부를 결정하기 위한 검사가 행해진다. 모든 검사가 유효하면, 처리 블록(258)에서 현재의 자원 실례가 선택되며, 처리 블록(264)에서 처리가 계속된다. 검사중 하나만 유효한 경우, 결정 블록(260)(즉, "모든 자원 실례가 검사되었는가?")에서 처리가 계속된다. 모든 자원 실례가 검사되지 않은 경우, 블록(250)에서 처리가 계속되며, 여기서 자원을 제공하는 다음의 구성요소가 발견된다.
이 자원을 제공하는 모든 구성요소가 검사되면, 또는 기존의 구성요소가 이 자원을 제공하지 않는 것으로 결정되면, 블록(262)에서 처리가 계속되며, 자원을 제공하는 새로운 구성요소 실례가 생성되고, 구성 변경은 변경 목록으로 보내어지고, 블록(264)에서 처리가 계속된다. 블록(264)에서, 요청된 구성요소의 형태의 실례가 요청 구성요소의 복귀된 실례의 변수에 할당된다. 결정 블록(266)(즉, "현재의 실례가 조회 및 검사 조건을 충족시키는가?")에서 처리가 계속되어, 모든 조회 및 검사 기능이 충족되는지의 여부를 결정한다. 그렇지 않으면, 처리 블록(250)에서 처리가 계속된다. 충족되는 경우, 처리는 블록(268)에서 종료된다.
모델 언어
모델 언어는 모델 (예를 들어, 모델 요소, 모델 제약 조건 및 모델 구조)을 한정할 수 있는 능력을 제공한다. 모델 언어의 구문을 사용하여, 문장을 입력함으로써 모델 베이스 또는 프로덕트 베이스를 한정할 수도 있다. 프로덕트 베이스는 모델에 대한 모든 정보를 포함한다. 프로덕트 베이스는 시스템을 구성하는데 사용되는 정보를 포함한다.
프로덕트 베이스는 계층 프로덕트 라인을 또한 포함할 수도 있다. 프로덕트 라인에 의해 프로덕트 베이스는 그룹으로 분할될 수 있다. 그러한 그룹으로 분할하는 일례는 데스크톱 시스템 따위의 분야를 시장에 내놓는 것이다. 데스크톱 시스템은 운영체제 소프트웨어, 모뎀 카드, 마이크로프로세서 칩 등의 데스크톱 컴퓨터 시스템의 부품으로서 통상적으로 판매되는 모든 구성요소를 포함할 수도 있다. 단지 동일한 프로덕트 라인의 일부인 구성요소만이 함께 구성될 수 있다. 그러나, 각각의 구성요소 형태는 여러 가지 프로덕트 라인의 일부일 수 있다. 프로덕트 라인 계층이 또한 선언될 수도 있다. 프로덕트 라인 계층의 자식은 부모로부터 계승하며, 부모의 모든 구성요소는 자식에게 상속된다. 프로덕트 라인 선언의 포맷은 다음과 같다(주: 예약어는 진하게 표시되어 있고, 밑줄은 반복되는 부분을 나타내고, "<< >>"내의 부분은 입력을 필요로 하는 것이다):
productLine <<ProductLineName>>;
또는, 프로덕트 라인 계층을 선언하기 위해:
productLine <<ProductLineName1>>; <<ProductLineName2>>;
시스템 모델은 구문 해석 파일로 불리우는 파일내에 저장된다. 집합적으로, 구문 해석 파일은 프로덕트 베이스로서 알려져 있다. 구문 해석 파일은 시스템 모델 내의 일반적인 범주에 대한 정보를 포함한다. 개개의 시스템 부분의 데이터 표현은 객체로서 알려져 있다. 캐비넷, 보조 기억장치 및 주변 카드는 컴퓨터 시스템을 구성하는데 사용되는 프로덕트 베이스내의 객체의 예이다. 특성은 객체의 속성을 제공한다. 예를 들어, 컴퓨터 시스템의 프로덕트 베이스에서, 용량, 전원 요건 및 연결 인터페이스는 보조 기억장치 객체의 특성이다. 또한, 특성은 객체를 분류한다. 즉, 유사한 특성을 가진 객체는 동일한 클래스의 객체로서 불리워진다. 객체는 다른 객체에서 특성을 물려받을 수 있다. 즉, 한 클래스의 객체는 다른 클래스의 부모로서 작용할 수 있으며, 자식 클래스는 자신의 특성 외에 부모 클래스의 모든 특성을 나타낸다.
속성은 구성요소를 성공적으로 구성할 때 고려되어야 할 구성요소의 양상을 한정한다. 전원의 속성의 예는 전원 및 전력소모 구성요소가 구성에 추가된 후에 유효한 나머지 전력에 필요한 캐비넷 공간이다. 속성은 클래스 레벨에서 할당될 수 있으며, 그 클래스의 자손은 클래스 속성을 물려 받는다. 그외에, 속성은 특정 구성요소 형태와 결합될 수 있다. 구성요소 또는 클래스에 할당될 수 있는 속성의 수는 제한되지 않는다.
속성 값은 부동 소수점, 부울, 문자열, 데이터 형태, 구성요소 및 자원의 형태일 수 있다. 속성은 다수의 값을 가질 수도 있다. 즉, 다수의 값을 갖는 속성은 하나 이상의 값을 가질 수 있다. 예를 들어, 완전한 높이의 내부 베이 또는 전방에서 접근할 수 있는 베이를 사용할 수 있는 구성요소의 경우, 속성 "attribute_Bay_type_required"은 양쪽 값을 유지할 수 있다. 속성은 문장에 의해 선언된다 (주: "|"는 선택을 가리킨다):
AttributeType <<Attribute Name>>; |
Multivalued AttributeType <<AttributeName>>;
속성 선언의 예는 다음과 같다:
Float Position
Float throughput_available
Float load_consumed
resource space_type_required
자원은 구성요소의 형태와 결합되는 시스템 필수품이다. 자원은 다수의 구성요소 형태에 할당될 수도 있다. 다수의 자원은 구성요소에 할당될 수도 있다. 구성요소가 실증될 때, 이 구성요소 형태에 할당된 자원은 구성에 유효하게 된다. 구성요소의 자원이 소비되면, 단지 결합된 구성요소에 의해 공급된 자원만이 유효하지 않게 된다. 두 번째 구성요소에 의해 제공된 동일한 형태의 자원의 유효성은 첫 번째 구성요소의 자원의 소비에 의해 영향을 받지 않는다. 따라서, 동일한 자원 형태가 두 번째 구성요소로부터 유효하다면, 첫 번째 구성요소의 자원의 소비는 설계된 시스템내의 모든 자원형태를 소비하지 않는다.
자원의 형태가 구성요소 형태에 할당되거나 구성요소 실례에 의해 사용될 수 있기 전에, 자원의 형태는 선언되어야 한다. 자원의 선언은 다음의 포맷을 갖는다:
resource <<ResourceName>>;
자원 선언의 일례는 다음과 같다:
resource static_RAM_resources;
데이터 형태의 선언은 설계된 시스템내의 연결에 유효한 인터페이스 및 데이터 전송 프로토콜의 형태를 한정한다. SCSI 및 IDB는 데이터 형태의 예이다. 데이터 형태는 다음과 같이 선언된다:
dataType <<DataTypeName>>;
파생 클래스는 다음 문장에 의해 한정된다 (주: "¿" 기호가 있는 부분은 선택사항이다):
Class <<ClassName>>; <<BaseClassName | SuperClassName>>
{
displayStatus: <<HIDDEN | LISTED | DRAWN>>
¿attributes:
<<AttributeName = AttributeValue>>¿
¿dimensions [Xsize,Ysize];¿
¿connectionOrigin <<TRUE | FALSE>>;¿
}
displayStatus는 HIDDEN, LISTED 및 DRAWN을 포함한다. DRAWN에 의해, 클래스 멤버는 구성의 그래픽 표현으로서 표시될 수 있다. LISTED에 의해, 클래스 멤버는 별도의 구성요소 목록에 기입될 수 있다. HIDDEN은 숨겨진 (즉, DRAWN되지 않은) 그러나 DRAWN된 자식을 갖는 멤버에 대해 사용된다. attributes 값은 선언시에 하당될 수는 있지만, 필요한 것은 아니다. connectionOrigin은 이 클래스의 실례가 보고 발생을 전송하기 위한 시작점으로서 사용되어야 하는지의 여부를 식별한다. 파생 클래스 선언의 일례는 다음과 같다:
class Bay: Container
{
displayStatus: DRAWN;
attributes:
front_accessible;
height;
half_height_compatible;
position;
}
이 예에서는, 파생 클래스인 베이가 생성되었다. 그것은 컨테이너 베이스 클래스의 멤버이다. 따라서, 그것은 다른 요소를 포하할 수도 있다. 그 속성은 그 높이, 1/2 높이의 호환성, 전방으로의 접근성 (즉, 이 베이에 설치된 구성요소가 시스템 캐비넷의 전방으로부터 접근할 수 있는가?), 높이 및 위치를 한정한다. 이들 속성은 이 파생 클래스의 각각의 자손에 의해 계승된다.
시스템 구성요소 또는 구성요소의 형태는 다음의 선언에 의해 한정된다.
component <<ComponentTypeName>>: <<DerivedClassName>>
{
¿productLines: <<ProductLineName;>>¿
¿label: <<"LabelName";>>¿
¿description: <<"DescriptionString";>>¿
¿resource: <<ResourceName ¿, IntegerValue ¿;>>¿
¿dataType: <<DataTypeName;>>¿
¿partNum: <<"PartNumString";>>¿
¿subComponents: <<SubcomponentName;>> V
<<SubcomponentName(Integer);>>¿
¿transfers:<<SubcomponentName[0] <-> SubcomponentName[1];>>¿
¿dimensions: [<<Xsize, Ysize>>];¿
¿values: <<AttributeName = AttributeValue;;>> V
<<AttributeName = {AttributeValue,...};>>¿
¿fillDirection: [<<TB | BT | LR | RL>>];¿
}
label 필드는 이 구성요소의 그래픽 표현에 주어진 레이블을 한정한다. description 필드는 표시되거나 보고된 설명을 한정한다. 구성요소의 형태가 포트에서 내려가는 경우, dataType 필드가 사용되어 이 구성요소의 형태에서 전송될 수도 있는 데이터의 형태를 한정한다. subComponents 필드는 조합체 구성요소 형태의 구조적인 자식을 한정한다. tansfers 필드는 조합체 구성요소를 통해 데이터가 전송될 수 있는 경로를 한정한다. 전송은 조합체 구성요소 내의 내부 데이터 경로를 표현하는 기구이다. 예를 들어, 케이블은 두 포트를 갖춘 구성요소로서 표시되며, 케이블은 하나의 포트에서 또다른 포트로 데이터를 전송하는데 사용된다. values 필드는 구성요소의 속성 또는 특성을 설정할 수 있는 능력을 제공한다. fillDirection은 단일 컨테이너 내의 다수의 구성요소가 끌어내어지는 순서를 설명한다.
다음은 구성요소 정의의 일례이다:
Component Cabinet1 : Cabinet
{
partNum: "001-001";
Children: Slot1_1;
Slot1_2;
Slot1_3;
.
.
.
Slot1_9;
Slot1_10;
CabinetBay {4};
Values:
position = 1;
resources_provided = {10_Slot_Resource, CPU_Slot_Resource,
MCU_Slot_Resource, Mem_Slot_Resource, Bay_Resource};
}
이 예는 캐비넷 및 조합체 클래스내의 구성요소의 형태인 캐비넷1을 한정한다. 제4도는 컴퓨터 시스템을 구성하는데 사용되는 모델의 구조 계층을 예시한 것이다. 케비넷(108)은 조합체(112)의 자손인 캐비넷(110)에서 내려온다. 따라서, 캐비넷(108)은 조합체 구성요소 형태이다. 그것은 부요소 또는 자식인 슬롯1_1 내지 슬롯1_10 및 캐비넷 베이{4}를 갖는다. 정수 "4"는 캐비넷1 내에 4개의 캐비넷 베이 구성요소 형태가 있음을 나타낸다.
다음은 코넥터에서 내려오는 조합체 구성요소 형태의 일례이다:
Component SCSIChainCable: Cable
{
description: "SCSI Chain Cable";
partNum: "003-002"
subComponents:
SCSICablePort_3;
SCSICablePort_4;
values:
length = 2;
transfers:
SCSICablePort_3 <-> SCSICablePort_4;
}
다음은 자원을 제공하는 구성요소의 형태 정의의 일례이다:
Component 16mbMemCard : Card
{
description: "16mb Memory Card";
partNum: "004-016";
resource: Memory_resource, 16;
values:
slot_resource_required = Mem_Slot_resource;
}
제약 조건은 구성요소가 구성된 시스템에 추가되어야 하는지의 여부를 결정하는데 사용되는 충돌 해상도 정보를 제공한다. 제약 조건은 공간 할당, 공간 폐색 및 별도의 구성요소 요건 따위를 제어할 수 있다. 제약 조건은 구성요소 한정어 및 구성요소 종속어로서 표현된다. 제약 조거은 구성요소의 속성 및 계통을 검사하며, 구성요소의 성공적인 실증에 필요한 구성요소를 식별한다.
<<?ConnectorInstance.AttributeName>>)¿
¿, Longest¿¿, Consumed¿¿, Existing¿¿, New¿¿, Conversion¿);
}
제약 조건의 이름과 제약 조건이 적용되는 클래스는 선언의 첫 번째 라인에서 식별된다. requiresComponent, requiresContainer 및 requires Connection 표현은 제약된 구성요소를 구성하는데 필요한 별도의 항목(즉, 구성요소, 컨테이너 또는 연결)을 식별한다. 필요한 별도의 항목은 파생 클래스 및 자원의 조합, 파생 클래스의 이름 또는 구성요소 형태의 이름에 의해 식별될 수도 있다. 구성중에 요청이 충족되는 경우, 구성 엔진은 발견된, 요청된 구성요소 형태의 실례를 돌려 보낸다. ?ReturnedInstance 변수는 구성 엔진에 의해 발견된, 요청된 구성요소 형태의 실례에 결합되는 변수를 식별한다. 구성 엔진이 속성 최대화에 기초하여 선택을 하였는지를 또한 요청할 수도 있다. 즉, 주어진 속성을 최대화하는 선택이 행해진다. 따라서, ?ReturnedInstance.AttributeName 선언은 가장 많은 양의 AttributeName을 갖는 요청된 항목을 복귀시킨다. 속성 최대화 선택은 현재의 제약 조건을 갖는 앞서의 구성요소 요청에 의해 생성된 다른 복귀된 실례를 언급하고 그들과 함께 동작을 수행하는 표현일 수 있다. 구성요소의 실례는, 제약 조건을 충족시키기에 유효하지 않을 때, 소비된다. 소비된 키워드는 유효하지 않은 요청에 의해 복귀된 실례를 표시하는데 사용될 수 있다. 실례가 소비되면, 구성 엔진은 또다른 요청을 충족시키기 위한 후속하는 검색에서 이 실례를 배제한다. 기존의 키워드는 기존의 실례에 대한 검색을 제한한다. 새로운 키워드는 새로운 실례가 생성되어 제약 조건을 충족시킬 것을 요청한다.
requiresConnection 제약 조건은 여러 가지 다른 구성요소를 포함할 수 있는 전체 연결 경로의 요건을 서술하는 별도의 논증을 갖는다. requiresConnection 제약 조건은 requiresComponent 및 requiresContainer 제약 조건에 추가되고 그와는 다른 한가지 요건을 갖는다. 다른 두가지 제약 조건과 같이, requiresConnection은 요청이 충족될 것을 요구한다. 그외에, requiresConnection 제약 조건은 제약된 실례가 충족하는 실례에 연결될 것을 요구한다.
StartingComponentName 필드 또는 변수는 여결된 시작 구성요소 (즉, 연결이 시작되는 장소)를 가리킨다. 이 변수가 설정되지 않으면, 시작 구성 요소는 제약된 실례인 것으로 추정된다. 다음의 라인 (즉, "<<ClassName, ResourceName | ClassName | ComponentName>>")은 연결 구성요소를 식별한다.
연결이 전하는 데이터의 형태는 dataType 필드에 의해 지정된다. dataType 필드는 요청된 실례의 포트의 데이터 형태 요건을 지정한다. 또한, dataType 필드는 제약된 실례의 포트의 데이터 형태 요건을 지정한다. dataType 필드는 단지 제약된 실례의 포트 및 요청된 실례의 포트가 dataType의 데이터 형태일 것을 필요로 하기 때문에, 연결 제약 조건은 다중 단계 연결에 의해 충족될 수 있다. 예를 들어, 중재 구성요소를 통해 SCSI 장치를 SCSI 카드에 연결하는 것이 가능하다.
제5도는 다수의 중재 구성요소 및 데이터 형태의 구성요소의 상호 연결을 예시한 것이다. 제약된 실례(161)는 포토(160)와 포트(162)를 갖추고 있다. 포트(162)는 포트(163)에서 코넥터(179)에 연결되어 있다. 코넥터 블록(179)의 포트(164)는 첫 번째 중재 구성요소(166)의 포트(165)에 연결되어 있다. 첫 번째 중재 구성요소의 포트(167)는 코넥터(180)의 포트(168)에 연결되어 있다. 다수의 중재 구성요소(183)는 첫 번째 중재 구성요소(166) 및 N번째 중재 구성요소(173) 사이에 놓일 수 있는 몇몇 중재 구성요소를 나타낸다. 코넥터(180) 및 코넥터(181)는 다수의 중재 구성요소(183)의 양쪽에 위치한다. 코넥터(181)의 포트(171)는 N번째 중재 구성요소(173)의 포트(172)에 연결되어 있다. 포트(174)는 코넥터(182)의 포트(175)에 연결되어 있다. 코넥터(182)의 포트(176)는 디스크드라이브 제어기(178)의 포트(177)에 연결되어 있다. 체인(184)은 제약된 실례(161) 및 디스크 드라이브 제어기(178) 사이의 매여진 통신 또는 연결 경로를 나타낸다.
?ReturnedInstance 및 ?ReturnedInstance.AttributeName 필드는 requiresComponent 및 requiresContainer 제약 조건에서와 동일한 기능성을 갖는다. %path 변수는 연결을 행하는데 사용되는 모든 실례에 구속된다. 즉, 연결에 포함된는 모든 실례는 연결 경로로서 언급된다.
?ReturnedInstance.AttributeName 및 ?ReturnedInstance 실례 변수에 있어서, 최대화 선택권은 requiresComponent 및 requiresContainer 제약 조건의 경우와 동일하다. 경로 실례 변수에 대한 최대화 선택권은 두가지이다. 첫 번째 선택권은 코넥터 선택권이다. ClassName 필드는 경로를 구성하는데 사용되는 코넥터 실례의 소정의 클래스를 지정한다. ?ConnectorInstance 필드는 복귀된 코넥터 실례에 구속되며, AttributeName은 최대화될 코넥터 실례 속성이다. ?ConnectorInstance 의 요청은 requiresComponent 및 requiresContainer에 있어서의 복귀된 실례와 동일한 방식으로 최대화된다.
requireConnection에 의해 제공되는 두 번째 최대화 선택권은 경로 길이 선택권이다. 이 선택권은 요청된 구성요소에서 요청하는 구성요소까지의 경로 가운데에서 선택의 우선순위를 정할 수 있는 능력을 제공한다. 경로의 길이는, 클래스 코넥터의 실례를 포함하여, 경로내의 구성요소 실례의 수로서 한정된다. 길이가 가장 긴 경로는 제약 조건 선언의 "Longest"키워드를 사용하여 지정될 수도 있다. 길이가 가장 긴 경로 선택권이 선택되지 않은 경우, 구성 엔진은 길이가 가장 짧은 경로를 선택한다.
requiresConnection 제약 조건의 소비된, 기존의 그리고 새로운 사양은, requiresComponent 및 requiresContainer 제약 조건 선언에서와 동일한 기능성을 갖는다. 변환 선택권은, 요청된 실레가 제약된 실례와 유사하지 않은 데이터 형태를 가질 수 있는 것을 지정할 수 있는 능력을 제공한다. 즉, 이 선택권이 선택되면, 요청된 쪽의 포트는 dataType의 데이터 형태의 데이터를 전송할 것을 요청받지 않게 된다. 단지 그 요건은, dataType 변수에 의해 지정된 데이터 형태가 요청된 쪽의 포트에서 유효한가의 여부이다. 이 선택권은, 요청된 실례와 동일한 데이터 형태를 갖춘 터미널 구성요소를 선택할 필요는 없기 때문에, 구성 엔진이 연결 요청을 충족시키는데 있어서 고려되는 대안의 폭을 넓힌다. 따라서, 연결의 제약 조건이 변환을 허용하면, SCSI 연결이 필요하다는 요청이 충족될 경우, SCSI 데이터가 요청 실례로 전달된다.
다음은 제약 조건 정의의 일레이다:
constraint Storage_device_constraint on StorageDevice
{
requiresConnection (SCSICard, SCSIDatatype, ?card, %path,
Connector (Cable, ?c, -?c.length, Longest));
requiresContainer (Bay, Bay_Resource, ?bay.Consumed);
*
*
*
}
requiresContainer 제약 조건은 StorageDevice 구성요소 형태가 컨테이너 (즉, 베이)를 필요로 하는 것을 나타낸다. 그외에, 이 제약 조건 정의는 모델 계층의 StorageDevice 클래스 및 그의 모든 자손에 대해 제약 조건을 과한다. 그것은 SCSICard 구성요소 형태에 대한 길이가 가장 긴 케이블 구성요소 형태의 연결을 필요로 한다. 이 연결에 의해 전송되어질 데이터 형태는 SCSIDatatype 의 데이터 형태이다. 제약된 실례의 포트는 또한 이 데이터 형태로 구성되어야 한다. 데이터 형태 제약 조건은 다중 단계 연결로 달성될 수도 있다. 따라서, SCSI StorageDevice는 중재 구성요소를 통해 SCSICard에 연결될 수도 있다. 변수 ?card 는 사용된 SCSICard 실례를 식별한다. %path 변수는 연결을 행하는 사용된 실례에 대한 정보를 포함한다.
모델 언어는, 구성 엔진이 사용가능한 실례 또는 실례 세트를 복귀시킬 수 있도록, 추가적인 검사 및 조회를 수행할 수 있는 능력을 제공한다. 제약 조건이 구성요소 요청을 포함하는 경우, 이들 조회 및 검사는 그 요청 뒤에 놓인다. 조회 및 검사가 충족되지 않으면, 구성 엔진은 요청을 충족시키기 위해 또다른 대안을 계속적으로 검색한다. 다음은 모델 언어에 제공되는 검사의 예이다:
수학적 연산자:
+ (더하기)
- (빼기)
* (곱하기)
/ (나누기)
ABS (절대값)
SQRT (제곱근)
관계 연산자:
> (--보다 큼)
< (--보다 작음)
== (--와 같음)
>= (--보다 크거나 같음)
<= (--보다 작거나 같음)
!= (--와 같지 않음)
논리 연산자:
OR (논리합)
AND (논리곱)
NOT (부정)
할당 연산자:
:= (--이 됨, --의 값을 취함)
예를 들어, 컴퓨터 시스템을 구성하는데 있어서, 컴퓨터 시의 플로피 디스크 드라이브를 구성할 때, 검사가 행해질 수도 있다. 플로피 디스크 드라이브는 시스템 캐비넷 내에 하나의 베이 또는 슬롯을 필요로 한다. 그러한 제약 조건은 requiresContainer 구성요소 요청으로서 표현된다. 이 요청에 의해, 구성 엔진은 이 요청을 충족시키기 위하여, 후보 실례를 검색하게 된다. 엔진이 후보 실례 (즉, ?bay)를 복귀시키면, 드라이브가 복귀된 실례에 끼워맞춤되는지의 여부를 결정하기 위해 추가로 검사가 수행될 수 있다. 이는 후보 실례 (즉, ?bay)의 높이 속성 값과 다음과 같은 제약된 실례(즉, ?this)를 비교함으로써 검사될 수 있다:
?bay.height >= ?this.height
고유의 기능은 검사 및 조회를 수행할 수 있는 별도의 능력을 제공한다. 고유의 기능은 조회 기능 및 술어 기능으로 묶어질 수 있다. 다음의 조회 기능의 예이다:
ceil float 형태의 속성 또는 부동 소수점의 값보다
크거나 같은 가장 작은 정수값에 대해서
부동 소수점 값에 대해 평가된 표현을 조회한다.
정수를 복귀시킨다.
구문: ceil (<<Expresion>>)
ClassName 지정된 클래스에 속하는 세트 내의 모든 실례의
세트 변수를 조회한다.
구문: ClassName (<<%InstanceSet>>)
ComponentName 지정된 구성요소 형태 (즉, 잎 노드 클래스0에
속하는 세트 내의 모든 실례의 세트 변수를
조회한다.
구문: ComponentName (<<%ReturnedInstance>>)
Component 클래스 코넥터에서 내려오지 않은 모든 실례의
세트 변수를 조회한다.
구문: Component (<<%InstanceSet>>)
component 내려온 구성요소 형태 (즉, 클래스 계층 잎
노드 클래스)의 실례를 조회한다. 부모 구성요
소 형태를 복귀시킨다.
구문: component (<<%ReturnedInstance>>)
COUNT 지정된 클래스에 속하는 세트 내의 모든 실례의
세트 변수를 조회한다.
구문: COUNT (<<ClassName | ComponentTypeName>>
<<%InstanceSet>>)
다음은 조회 및 술어의 기능성을 사용하는 제약 조건 정의의 예이다:
constraint Storage_device_constraint on Storage_Device
{
requiresConnection (SCSICard, SCSIDatatype, ?card, %path,
Connector (Cable, ?c, -?c.length, Longest);
reqiresContainer (Bay, Bay_Resource, ?bay, Consumed);
ancestor (?bay, Cabinet) == ancestor (?card, Cabinet);
FORALL (?inst1, Storage_Device (CONNECTS(FIRST(%path))));
ancestor (?inst1, Cabinet) == ancestor (?this, Cabinet));
}
이 예에서, Storage_Device는 SCSICard 형태의 구성요소에의 연결을 필요로 한다. 연결은 SCSIDatatype 의 데이터 형태이어야 한다. SCSICard 형태의 구성요소의 실례는 실례 변수 ?card 에 구속되며, 연결 경로내의 구성요소는 (세트로서) 세트 변수 %path 에 구속된다. 연결을 완성하기 위해 사용되는 코넥터 구성요소 Cable 형태이어야 하며, 실례 변수 ?c에 구속된다. 후보 케이블은 가장 짧은 것부터 가장 긴 것으로 그 순서가 정해지며, SCSICard 실례로부터의 또다른 경로가 존재하는 경우, (구성요소의 수에 있어서) 길이가 가장 긴 경로가 채택된다.
이 예는 Storage_Device가 Bay 형태의 컨테이너 구 내에 위치하여야 함을 또한 나타낸다. Bay 형태의 이 실례는 Bay_Resource을 공급하여야 한다. Bay의 실례는 실례 변수 ?bay에 구속되며, 실례는 소비된 것으로 표시된다 (즉, Bay 형태의 구성요소의 후속하는 요청에 있어서 유효하지 않다.)
이 예에서, 구 "ancestor (?bay, Cabinet) == (ancestor (?card, Cabinet)"는 ?bay 에 의해 식별된 실례의 (Cabinet 형태의) 구조적 조상이 ?card에 의해 식별된 실례의 (Cabinet 형태의) 구조적 조상과 동일한 실례이어야 하는 것을 필요로 한다. 부연하면, 카드와 베이는 동일한 캐비넷 내에 있어야 한다.
앞의 예에서 사용된 "Forall" 구는, %path 내의 첫 번째 케이블에 연결된 Storage_Device 형태의 모든 구성요소 실례가 Storage_Device 의 제약된 실례와 동일한 캐비넷 내에 있어야 한다는 것을 나타낸다.
제약 관계는 구성요소 레벨 또는 클래스 레벨에서 설정될 수도 있다. 구성요소 레벨에서, 제약 관계는 어떤 구성요소 형태가 어떤 제약 조건에 의해 제약되는지를 지정한다. 제약 관계내에서 지적된 구성요소는 구성요소 형태 선언에 의해 한정된 구성요소 형태일 수 있다. 제약 조건은 제약 조건 선언에 의해 서언된 제약 조건일 수도 있다. 다음은 구성요소 레벨 제약 조건을 지정하기 위한 구문이다:
<<ComponentTypeName>> constrainedBy <<ConstraintName1>>
¿<<OR | AND>> <<ConstraintName2>>¿
¿, <<OR | AND>> <<ConstraintNameN>>¿;
제약 조건은 클래스 레벨에서 또한 표현될 수도 있다. 클래스-레벨 제약 조건은 제약된 클래스에서 파생된 모든 구성요소 형태의 구성요소-레벨 제약 조건 표현에 결합된 것으로 평가된다. 구성요소-레벨 제약 조건 표현이 평가될 때, 클래스-레벨 제약 조건은 제약 조건 표현의 시작에 추가되며, 그 제약 조건의 요청 및 술어 기능 표현으로 종료된다. 구성요소가 클래스 계층내의 여러 가지 레벨로부터 클래스 레벨 제약 조건을 물려받을 경우, 제약 조건은 가장 원시적인 클래스 (즉, 루트 클래스 구성요소)에서 최상의 시스템 지정 클래스 (즉, 사용자 정의 구성요소 형태)로 그 순서가 정해진다. 클래스-레벨 제약 관계 선언을 위한 구문은 다음과 같다:
constrain class <<ClassName>> with <<ConstraintName>>
본 발명은, 구조 계층 내에서, 세가지 형태의 하위 구조, 즉 조합체 계층, 컨테이너 계층 및 연결 관계를 사용하여, 특정 시스템의 구성요소가 어떻게 공간적으로 그리고 물리적으로 존재하는지 나타낼 수 있는 능력을 제공한다. 조합체 계층은 다른 구성요소의 일부로서 구성요소를 식별한다. 컨테이너 계층은 다른 구성요소 내에 포함하는 것으로서 구성요소를 식별한다. 연결 관계는 다른 구성요소에 연결되는 구성요소를 식별한다. 구조 계층 내의 발생간의 관계는 키워드 "childOf", "containedBy" 및 "connectsWith"에 의해 표현된다. 구조적인 관계는 다음과 같이 선언된다:
<<ClassName>> childOf <<ClassName>>
<<ClassName>> containedBy <<ClassName>>
<<ClassName>> connectsWith <<ClassName>>
모델 유지.보수
모델은 상기에서 설명한 모델 언어에 구문적으로 부합되는 문장을 제공함으로써 한정될 수 있다. 그 위에, 대화형 설비인, 모델 유지.보수 부시스템은, 그래픽 사용자 인터페이스를 사용하여, 모델을 한정하고 유지.보수할 수 있는 능력을 제공한다. 모델 유지.보수 부시스템은, 그래픽 사용자 인터페이스를 사용하여, 대화식으로 프로덕트 베이스를 한정할 수 있는 능력을 제공한다. 모델의 의미의 표시, 클래스 계층 및 구조 계층은, 그래픽 사용자 인터페이스를 사용하여, 대화식으로 관측 (즉, 목록 검사) 및 변경 (즉, 편집)될 수도 있다. 또한, 제약 조건의 입력은 검증된다. 검사 및 오류수정 능력이 제공되어, 모델 내의 문제점을 식별하고, 변경된 모델의 성능을 검사하여 최적화한다. 예를 들어, 모델 정의 구문은 분석되고 검증되며, 동일한 요청이 실행될 수도 있다. 변경된 모델로 구성 요청의 성능을 관측하기 위해, 진단 기능이 불러내어질 수도 있다.
유지.보수 시스템의목록 검사 능력은 모델 계층의 클래스 및 구조적인 구성요소의 그래픽 표현을 관측할 수 있는 능력을 제공한다. 클래스 트리는 모델 계층 (즉, 객체 클래스 계층) 내에서 기준 클래스에서 내려오는 객체를 나타내는데 사용된다. 객체 클래스 계층은 각각의 기준 클래스에 대해 하나씩 제공되는 5개의 분리된 트리에 의해 표현된다.
구성요소 트리는 조합체, 코넥터 및 컨테이너 구성요소 하위 구조 상호 관계를 설명하는데 사용된다. 조합체 트리는 코넥터 및 컨테이너 트리에 앞서 먼저 목록에 올려진다.
계층 멤버는 계층 멤버를 포함하는 박스 위를 두 번 클릭함으로써 변경을 위해 선택될 수도 있다. 선택된 계층 멤버를 위한 편집기 창이 표시된다. 목록 메뉴는 편집될 멤버를 선택하는데 또한 사용될 수도 있다. 바람직한 실시예에 있어서, 목록 메뉴는 유지.보수 창의 메뉴 바에서 선택될 수도 있는 일련의 풀다운 메뉴이다. 초기 메뉴 바는 프로덕트 베이스 모델의 각각의 일반적인 요소 (즉, 클래스, 구성요소 형태, 제약 조건 등)의 선택을 포함한다. 일반적인 요소가 선택되면, 일반적인 형태 선택의 모델 멤버를 목록에 올리는 새로운 창이 표시된다. 모델 멤버는 동작 (즉, 설명문, 보기, 신규 또는 편집)과 함께 선택될 수도 있다. 설명문 동작은 선택된 멤버 뒤에 프로덕트 베이스에 대한 설명문을 추가할 수 있는 능력을 제공한다. 보기 동작은 선택된 모델 요소의 설정을 볼 수 있는 능력을 제공한다. 모델 멤버는 신규 또는 편집 동작을 선택함으로써 변경될 수도 있다.
예를 들어, 바람직한 실시예에서 모델 멤버의 속성을 변경하기 위해, 속성 형태가 목록 메뉴에서 선택된다. 속성이 표시되면, 신규 또는 편집 동작이 선택되어, 새로운 속성을 추가하거나, 기존의 속성을 변경시킨다. 편집동작이 선택되면, 속성 선택이 또한 행해져야 한다. 이들 선택이 행해진 후에, 속성 편집기 창이 표시된다. 창의 필드 (즉, 이름, 속성 형태 및 다중치)가 신규 동작을 위한 블랭크 또는 기본 설정으로 초기화되거나, 편집 동작을 위한 현재의 속성 설정으로 초기화된다. 속성 이름 필드는 선택되고 변경될 수도 있다. 형태 필드는, 유효한 속성 형태의 목록으로부터 선택됨으로써, 변경될 수도 있다. 다중치 필드는 토글 온되거나 토글 오프될 수도 있다. 변경이 행해진 후에, 변경은 저장되거나 취소될 수도 있다.
자원 및 데이터 형태는 속성을 추가하거나 변경하는 방법과 유사한 방식으로 추가되거나 변경될 수도 있다. 관계 정의를 필요로 하는 모델 요소는 별도의 지정을 필요로 한다. 이들의 예는 파생 클래스, 프로덕트 라인 (즉, 부모 프로덕트 라인), 제약 조건 (즉, 제약된 클래스) 및 구성요소 형태이다.
바람직한 실시예에 있어서, 파생 클래스를 추가하기 위해서는, 모델 계층 내에서 새로운 파생 클래스의 위치를 한정하는 별도의 초기 단계가 필요하다. 이 점에서, 신규 및 편집 동작은, 저장 또는 취소할 수 있는 능력을 포함하여, 동일한 동작 특성을 갖는다. 즉, 파생 클래스 필드의 값 (기존, 기본 또는 블랭크)은 편집기 창에 표시된다. 그 위에, 속성은 파생 클래스의 모든 멤버 및 그 구성요소 형태에 추가될 수도 있고, 제약 조건은 파생 클래스의 클래스 레벨에서 지정될 수도 있고, 파생 클래스의 구조 계층 관계가 한정될 수도 있고, 시스템 창 표시 상태가 한정될 수도 있고, 파생 클래스가 연결 기점 (즉, 케이블링 보고의 시작점)으로서 선택될 수도 있으며, 구성요소 거리 (즉, 파생 클래스에서 동일한 조합체의 일부인 다른 객체까지의 평균 거리 및 파생 클래스의 멤버에서 조합체 위의 외부 포트까지의 거리)가 연결에 포함하는 조합체 객체의 자식에 대해 한정될 수도 있다.
새로운 구성요소를 모델에 추가하기 위해, 새로운 클래스가 내려오는 클래스가 선택되어야 한다. 부구성요소 필드는 조합체 구성요소의 구조 계층 (즉, 구조적인 자식)을 지정하는 능력을 제공한다. 신규 또는 편집 동작은 전송 (즉, 조합체 구성요소를 통해 데이터가 이동할 수 있는 경로), 데이터 형태, 연결 기점 등의 연결성 필드를 지정할 수 있는 능력을 또한 제공한다. 그 위에, 구성요소 형태 이름, 연합 속성, 프로덕트 라인 (즉, 이 구성요소를 포함하는 프로덕트 라인), 잎 노드-레벨 제약 조건, 자원, 설명, 레이블, 부품 번호, 채움 방향 및 표시 상태의 필드 정보가 지정될 수도 있다.
유지.보수 시스템은 변경된 모델을 검사할 수 있는 능력을 또한 제공한다. 기록 보전성 선택은 구문 분석 파일이 분석될 수 있는지 그리고 변경된 구문 분석 파일이 기록될 수 있는지의 여부를 결정한다. 프로덕트 베이스 보전성 선택은 구문 분석 파일이 분석될 수 있는지 그리고 변경된 구문 분석 파일이 기록될 수 있는지의 여부를 결정한다. 그렇지 않으면, 구문 오류 메시지가 표시된다. 오류수정기 (즉, 구성) 선택은 요청 파일로부터 구성요소의 요청을 판독하며, 현재의 구문 분석 파일내에서 선택된 제약 조건을 사용하여 이들 구성요소를 구성하려고 한다. 요류수정기는 제약 조건의 추적을 제공할 수 있는 추적기 능력을 제공한다. 깊은 추적은 추적된 제약 조건 및 그것이 생성한 모든 제약 조건의추적 출력을 발생시킨다. 얕은 추적은 추적된 제약 조건의 추적 출력을 발생시킨다.
필요 분석
고객의요구를 특정 구성요소 및 구성으로 바꾸는 절차는 "필요 분석"으로 일컬어진다. 모델 언어는 고객의 필요 및 요구에 따라 모델을 표현할 수 있는 능력을 제공한다.
모델링에 대해 필요 분석을 행할 경우, 구성은 능력 (예를 들어, 최소 요구 응답시간) 또는 처리량으로 또한 표현될 수도 있다. 필요 분석 구성은 음성 메시지 전송 시스템 모델에 의해 예시될 수도 있다. 구성된 음성 메시지 전송 시스템은, 음성 데이터의 특정 시간수를 기록하고, 저장된 메시지에 접근하기 위한 5초 이하의 응답시간을 제공하기 위해, 요구될 수도 있다. 추가적인 예시를 위해, 원격 통신 구성이 지원된 교통 부하 및 접근가능한 초대 실패 실시간 관리 (예를 들어, 중단된 호출)의 항목으로 지정될 수도 있거나, 컴퓨터 시스템 구성이 특정 처리 부하, 데이터 저장 요건 및 응답시간을 지원하기 위해 요청될 수도 있다.
모델 언어는, (1) 고객의 요구량 (예를 들어, 음성 메시지 저장용량)을 해석하고, (2) 여관된 양의 구성 요소 및 자원을 식별함으로써, 구성 모델링 언어내에 필요 분석 모델을 표현할 수 있는 능력을 제공한다. 이것은 구성요소 요청 외에, 필요의 항목으로 요청을 모델링할 수 있는 능력을 제공한다. 구성요소는 요구또는 필요를 충족시키는 것으로서 식별될 수 있다. 즉, 구성요소는 자원의 양 (예를 들어, 메가바이트의 저장용량)을 공급하는 것으로서 식별될 수도 있다. 사용자가 필요 또는 요구의 항목으로 시스템 또는 시스템의 일부를 표현할 때, 필요를 충족시키는 하나 또는 다수의 구성요소가 프로덕트 베이스에서 선택될 수도 있다.
입력 형식
입력 형식은 사용자로부터 구성요소 요청을 받아들일 수 있는 능력을 제공한다. 입력 형식은 사용자가 구성되어야 할 시스템 내의 구성요소의 형태와 양을 지정할 수 있게 한다. 입력 형식은 목록 박스 및 누름 단추 따위의 표준 창 포맷으로 구성된다. 세 번째 형태의 입력 형식은 주어진 구성요소의 양을 지정할 수 있는 능력을 제공한다 (주: 서류에는 이것은 특이한 것이다 . . . 이 응용 프로그램의 특징에 대한 상세한 정보가 필요한가? 라는 내용이 쓰여져 있다). 입력 혀식에 대한 사용자의 선택은 호출된 구성요소 요청이다. 입력 형식은 구성요소 요청의 기본 우선순위를 결합하는 능력을 제공한다. 기본 우선순위는 우선순위 요청에 의해 무시될 수도 있다. 이들 우선순위는 구성요소 요청이 구성 엔진에 의해 충족되는 순서를 지정할 수 있는 능력을 제공한다.
제품-구성요소 매핑
제품-구성요소 매핑은 판매 재고목록 내의 부품 및 제품으로서의 분리되고 조합된 구성요소를 한정하고 이들 부품 및 제품 (즉, 묶음)을 구성된 시스템 내의 한 세트의 모든 구성요소 실례에 매핑한다. 제품-구성요소 맵은 요구되는 그리고 선택적 성분 구성요소의 항목으로 각각의 부품 및 제품을 한정하는 표시를 포함한다. 이들 표시는 제품이 견적기에 의해 어떻게 표시되는지를 또한 지정한다. 표시는 다음의 부문, 즉 제품 헤더, 선택적 장비 목록 및 선택권 제한 목록으로 구성된다.
제품 헤더 부문은 프로덕트 베이스내에 나타날 때, 제품 이름을 제공한다. 이것은 묶음기가 구성된 시스템 내의 구성요소를 제품과 부합시키고 세트 커버를 식별할 수 있게 한다. 이 부문은 다음과 같은 별도의 정보, 즉 본 발명의 다른 부분 (예를 들어, 견적기)에 의해 사용될 수 있는 제품을 설명하는 제품 설명 문자열, 제품 번호 문자열, 가격 (즉, 제품의 가격), 제품이 멤버인 프로덕트 라인을 식별하고 세트 커버링 검색의 폭을 좁히는데 사용되는 프로덕트 라인 문자열, 및 (부품 번호에 의해) 구성요소를 식별하고 (제품 번호에 의해) 이 제품에 의해 요구되는 제품을 식별하는 요구된 구성요소 목록을 포함한다.
선택적 장비 목록은 기준 패키지 내에 포함될 수 있는 별도의 제품 패키지 (즉, 제품 헤더 내에서 설명되는 제품)의 목록이다. 선택적 장비 목록 엔트리는, 엔트리를 독특하게 식별하기 위한 선택권 유일 ID, 엔트리를 설명하는 선택권 설명, 이 엔트리와 연관된 별도의 비용을 식별하는 별도의 비용, 및 번호에 의해 엔트리를 구성하는 이들 제품 또는 구성요소를 식별하는 성분 제품 번호 목록을 포함한다.
선택권 제한 목록은 상호 의존하는 또는 특정 기준에 따라 선택되어야 하는 선택권 그룹의 목록이다. 선택권 제한 목록내의 각각의 엔트리는, 엔트리를 독특하게 식별하는 그룹 유일 ID, 양 지정자, 선택권 유일 ID 목록을 포함한다. 양 지정자 필드는 선택될 수도 있거나 선택되어야 하는 선택권 그룹의 멤버의 수를 지정한다. 양 지정자 필드는 범위 또는 적어도 하나(atLeastOne), 많아야 하나(atMostOne) 또는 정확히 하나(exactlyOne)의 키워드로 구성될 수도 있다. 범위는 하한 및 상한을 표현하는 (괄호로 둘러쌓이거나 콤마로 분리된) 두 개의 정수이다. 적어도 하나의 키워드는 선택권 그룹의 하나의 멤버가 선택되어야 함을 나타낸다. 많아야 하나의 키워드는 선택권 그룹의 단지 하나의 멤버가 선택될 수도 있고, 멤버가 반드시 선택되어야 하는 것은 아님을 나타낸다. 정확히 하나의 키워드는 선택권 그룹의 적어도 하나의 멤버가 선택되어야 하고 하나 이상은 선택되지 않음을 나타낸다. 선택권 유일 ID 목록은 선택권 유일 ID의 공간적으로 분리된 목록이다.
모델 구성 컴퓨터 시스템의 제품-구성요소 맵 내의 엔트리의 일례는 다음과 같다:
product base_system
{
description: "Base System";
productNumber: "001-001";
cost: 10000;
values:
category1 = "System";
category2 = "XXX";
productLines: Tower;
required: ("001-001" reference) "002-001" "002-002";
options:
COM1 "Comm Option 1" 1 "002-005";
COM2 "Comm Option 2" 1 "002-006";
optionGroups:
g1 atMostOne Com1 Com2;
}
묶음기
묶음기는 구성요소를 제품 (즉, 판매용) 패키지로 묶는다. 묶음기는 제품-구성요소 맵을 사용하여 구성된 시스템의 세트 커버를 설정한다. 세트 커버는, 각각의 구성요소 실례가 하나의 제품 패키지에 매핑되는 제품 패키지에 구성된 시스템내의 구성요소 실례를 다수 대 1로 매핑하는 매핑 세트이다.
세트 커버링은 한 세트의 커버 (예를 들어, 제품)으로 한 세트의 객체(예를 들어, 구성 내의 구성요소 실례)를 커버링하는 방법이다. 이 방법은 현재의 구성에 대해 생성된 구성요소를 몇몇 그루핑 또는 커버 (예를 들어, 제품)과 결합시키는데 사용된다. 세트 커버링 방법에서 야기되는 통상적인 문제점은 객체 및 대체가능한 세트 커버의 수가 증가함에 따라, 대체가능한 세트 커버링의 수가 지수적으로 증가한다는 것이다. 대체가능한 세트 커버링의 수를 제한하기 위해, 발견적 방법이 사용되어 최소 세트의 커버를 식별할 수도 있다. 가장 낮은 비용 커버가 발견적 방법의 일례이다. 이 발견적 방법을 사용하여, 커버리이 최대화되고 비용은 최소화된다. 즉, 최소의 비용으로 최대의 커버를 제공하는 제품이 선택된다.
또다른 발견적 방법은 대안의 구조적인 문맥에 기초한다. 즉, 몇몇 실례에 있어서, 제품은 구조를 가지며, 그 구조는 구성요소의 물리적인 유니트 또는 그루핑을 한정한다. 이것은, 예를 들어, 구성요소가 유니트로서 제조되었을 때 제조비용이 감소된 경우에 발생할 수도 있다.이러한 절감은, 비용이 절감된 유니트를 실제로 구매하는 시스템의 구매자에게 전달된다. 따라서, 구조 문맥을 결정하기 위해, 구성된 구성요소를 검사하고, 이들 속성을 제품의 구조 문맥과 부합시킬 필요가 있다. 이것의 일례는 컴퓨터 구성 모델내의 디스크 어레이이다. 디스크 어레이는, 섀시, 전원, 제어기 및 다섯개의 디스크 드라이브를 구비하여, 물리적으로 구성 또는 제조된다. 따라서, 디스크 드라이브 구성요소 요청의 구조 문맥을 검사할 필요가 있다. 디스크 어레이 제품에 의해 커버되는 것으로 실례를 선택하는 절차는 커버된 실례가 섀시의 안쪽에 있도록 구성되거나 디스크 어레이 유니트로서 구성된 것임을 결정하는 단계를 포함하여야 한다.
제10도는 EstablishSetCover 처리의 흐름도를 예시한 것이다. 처리 블록(450)에서, 현재의 구성내의 구성요소 실례의 일부 또는 전체를 커버할 수 있는 제품이 식별된다. 결정 블록(452) (즉, "식별된 제품이 있는가?") 에서, 식별된 제품이 없는 경우, 처리는 블록(454)에서 종료된다. 제품이 식별된 경우, 제품은 처리 블록(456)에서 제품에 의해 커버될 수 있는 실례의 수에 기초하여 우선순위가 정해진다. 결정 블록(458) (즉, "커버되지 않은 실례가 있는가 ?")에서, 모든 실례가 현재의 우선순위가 정해진 제품 목록에 대해 매핑된 경우, 블록(474)에서 현재의 구성내의 제품을 커버하는 새로운 제품 목록이 생성되며, 처리는 결정 블록(452) (즉, "식별된 제품이 있는가?")에서 계속된다.
그렇지 않은 경우, 블록(460)에서 다음의 제품이 목록으로부터 선택된다. 결정 블록(462) (즉, "요구된 모든 요소가 존재하는가?")에서, 제품의 모든 요소가 구성된 시스템 내에 존재하지 않는 경우, 처리는 처리 블록(460)에서 계속된다. 존재하는 경우, 처리 블록(464)에서 앞서 매핑되지 않았고 현재의 제품에 의해 커버될 수 있는 실례가 식별된다. 결정 블록(466) (즉, "식별된 실례가 있는가?")에서, 어떠한 실례도 제품에 의해 커버될 수 없는 경우, 처리는 결정 블록(458) (즉, "커버되지 않은 실례가 있는가?")에서 계속된다.
몇몇 실례가 식별된 경우, 결정 블록(468) (즉, "충족되지 않는 제품 선택권 제한이 있는가?")에서, 제품 선택권 제한이 충족될 수 없는지의 여부가 결정된다. 충족되지 않은 제품 선택권 제한이 있는 경우, 처리는 결정 블록(458) (즉, "커버되지 않은 실례가 있는가?")에서 계속된다. 그렇지 않은 경우, 처리는 결정 블록(470) (즉, "모든 구조적인 문맥이 충족되었는가?")에서 계속된다. 충족되지 않은 경우, 처리는 블록(460)에서 계속되고 다음의 제품이 획득된다. 충족된 경우에는, 블록(472)에서 매핑된 구성요소 실례가 현재의 제품에 의해 커버된 것으로 표시되며, 처리는 결정 블록(458) (즉, "커버되지 않은 실례가 있는가?")에서 계속된다.
모델링된 시스템의 표시
행해진 요청에 기초하여 시이 구성되면, 여러 가지 보고 도구가 채용되어 구성된 시스템에 대한 정보를 제공한다. 바람직한 실시예에 있어서, 이들 도구는 시스템의 일반적인 배치, 재료의 목록, 예비부품 및 충족될 수 없는 구성요소 요청의 목록을 그래픽으로 보여준다.
본 발명은 구조적인 용어로 모델을 표현할 수 있는 능력을 제공한다. 즉, 구성요소는 구조적 부모 (즉, 컨테이너), 상호 연결 및 합성의 항목으로 한정된다. 따라서, 본 발명은 구조적인 특성과 함께 구성된 시스템을 그래픽으로 표시할 수 있는 능력을 갖는다.
구성된 시스템 및 시스템 창으로 불리우는 그 구조적인 특성의 그래픽 표시는 구성된 시스템의 일반적인 배치를 보여준다. 바람직한 실시예에 있어서, 컴퓨터 시스템을 구성하는 모델의 시스템 창은 시스템 내에서 사용된 모든 캐비넷의 내부 및 전면을 보여주며, 카드, 전원 및 보조 기억장치의 배치상태를 보여준다. 제11도는 데스크톱 컴퓨터 시스템 구성을 위한 시스템 창을 예시한 것이다. 시스템 창(540)은 구성된 시스템의 구성요소와 시스템 내의 상대적인 위치를 예시하고 있다. 섀시(550)는 시스템 기판(552), 드라이브 케이지(554) 및 전원(556)을 포함하고 있다. 주기판(552A)은 시스템 기판(552)을 상세히 보여주고 있다.
주기판(552A)은 시스템 기판 위의 다른 구성요소들의 물리적인 배치 및 그들의 상대 위치를 예시하고 있다. 예를 들어, EVGA 비디오 기판(558)은 중앙처리장치 기판(560) 아래에 배치되어 있다. 또한, 슬롯 내의 네트워크 카드(562) 및 고속 SCSI(564)의 중앙처리장치 기판(560)에 대한 상대적인 배치는 시스템 창(540)으로부터 결정될 수 있다. 비어있는 슬롯(566)은 개방된 것으로 그리고 중앙처리장치 기판(560)에 가장 가까운 슬롯으로서 관측될 수 있다. 메모리 확장 기판(568A)은 메모리 확장 카드(568)를 상세히 보여주고 있다. 1M SIMM 칩(57)은 메모리 확장 기판(568A) 위에 위치하고 있다. 8개의 메모리 뱅크(572)는 사용되지 않는 상태로 남아있다. 드라이브 케이지(측면도)(554A)는 드라이브 케이지(554)를 상세히 보여주고 있다. 535MB 하드 드라이브(SCSI)(574), 3.5 인치 1.44MB 플로피 드라이브(576) 및 525MB 테이프 백업장치(SCSI)(578)는 드라이브 케이지(554) 안에 포함되어 있다. 전면(580)은 드라이브 케이지(측면도)(554A)의 앞쪽의 위치를 나타내는 것이다. 따라서, 3.5 인치 1.44MB 플로피 드라이브(576) 및 525MB 테이프 백업장치(578)는 앞에서 접근할 수 있는 구성요소로 구성되어 있다. 베이(582)는 장치를 포함하고 있지 않은 앞에서 접근가능한 베이이다. 베이(584)는 드라이브 케이지(554)의 뒤에 위치하는 비어있는 베이이다.
시스템 창은 그래픽으로 표시된 구조를 대화식으로 편집할 수 있는 능력을 또한 제공한다. 본 발명은, 구성된 구조내에서 구성요소를 추가, 제거 또는 교체함으로써, 구성된 시스템의 구조적인 양상을 변경할 수 있는 능력을 제공한다. 본 발명은, 구조적인 상호 연결관계 및 조합을 변경함으로써 구성된 구조를 변경할 수 있는 능력을 또한 제공한다.
그래픽으로 표시하고 편집하는 이러한 능력은 새로 구성된 시스템, 기존의 구성 또는 시스템에 사용될 수 있다. 즉, 기존에 구성된 시스템의 업그레이드는 그래픽 상태로 수행될 수도 있다. "동결 및 채움" 능력에 의해, 사용자는 기존의 시스템의 일부를 동결하고 동결되지 않은 부분을 채우거나 변경할 수 있게 된다. 이 "동결 및 채움" 능력은 원래의 구성에 추가된 구성요소만을 나타내고 제거되거나 교체된 구성요소의 크레디트를 통합시키는 새로운 구성을 위한 견적을 발생시킬 수 있는 능력을 또한 제공한다.
바람직한 실시예에 있어서, 재료 목록(BOM) 으로 불리우는 재료의 목록은, 시을 구성하기 위한 마지막 요청이 있은 후에, 시스템 내에서 사용되는 구성된 요소 및 예비 부품 전체의 목록을 제공한다. 각각의 구성요소 및 예비 부품의 부품 번호 및 설명이 제공된다.
바람직한 실시예에 있어서, 부품 목록은 별도의 구성요소 (즉, 예비 부품), 전체 자원, 실패된 요청 및 실패된 선택적 요청에 대한 정보를 제공한다. 전체 자원은 사용자로부터 직접 요청된 모든 구성요소 및 자원 전체를 제공한다. 실패된 요청 및 실패된 선택적 요청은 공간의 부족, 코넥터 유효성의 부족 등으로 인해 충족될 수 없었던 구성요소 요청이다.
견적기
견적기는 개별적인 제품 패키지의 비용을 계산하고, 시스템을 완전히 구성하는데 필요한 모든 제품 패키지의 비용을 확저한다. 견적기는 여러 가지 방법으로 견적을 표시할 수 있는 능력을 제공한다. 예를 들어, 견적은 제품 정보를 넓히거나 줄일 수 있는 능력을 가진 제품에 의해 표시됨으로써, 개별적인 제품 부품의 가격 또는 전체 패키지의 가격을 나타낼 수도 있다. 제품이 표시되고 가격이 계산되는 방식은 주문에 의해 만들어질 수도 있다.

Claims (15)

  1. 컴퓨터 시스템을 이요하여 시스템을 구성하는 방법에 있어서,
    상기 컴퓨터 시스템 내에서, 상기 시스템을 구성하는데 사용되는 요소들로 이루어진 요소 모델과 상기 모델 내의 요소들간의 구조적인 관계를 한정하는 단계,
    상기 컴퓨터 시스템으로, 구성 요청 및 상기 모델에 기초하여 시스템 구성을 발생시키는 단계 및,
    상기 컴퓨터 시스템으로, 상기 구성의 그래픽 표현 및 상기 시스템 구성의 상기 요소들간의 구조적인 관계를 표시하는 단계를 포함하는 것을 특징으로 하는 시스템 구성방법.
  2. 제1항에 있어서,
    상기 구성 요청은 요소 요청, 자원 요청 및 필요 식별인 것을 특징으로 하는 시스템 구성방법.
  3. 제1항에 있어서,
    상기 컴퓨터 시스템으로, 부품 번호와 상기 시스템 구성의 각각의 구성요소 및 예비 부품의 설명을 포함하는 재료 목록, 전체 자원, 실패된 요청 및 실패된 선택적 요청을 발생시키는 단계를 포함하는 것을 특징으로 하는 시스템 구성방법.
  4. 제1항에 있어서,
    상기 컴퓨터 시스템으로, 상기 시스템 구성의 요소들을 제품군으로 묶는 단계, 및 상기 시스템 구성을 위한 가격 견적을 발생시키는 단계를 추가로 포함하는 것을 특징으로 하는 시스템 구성방법.
  5. 컴퓨터 시스템 내의 구조적인 모델 계층을 한정하는 방법에 있어서, 구성요소, 조합체, 컨테이너, 포트 및 코넥터 기준 클래스를 한정하는 단계,
    상기 기준 클래스에서 파생된 파생 클래스를 한정하는 단계,
    상기 기준 클래스 및 파생 클래스에서 내려오는 잎 노드 자손을 한정하는 단계,
    상기 조합체 기준 클래스에서 내려오는 두 번째 모델 요소의 일부인 첫 번째 모델 요소가 상기 두 번째 모델 요소의 자식이 되도록, 조합체 계층 하위 구조를 한정하는 단계,
    상기 컨테이너 기준 클래스에서 내려오는 두 번째 모델 요소내에 포함된 첫 번째 모델 요소가 상기 두 번째 모델 요소에 의해 포함되도록, 컨테이너 계층 하위 구조를 한정하는 단계, 및
    상기 포트 기준 클래스에서 내려오는 두 번째 모델 요소에 연결되는 첫 번째 모델 요소가 상기 두 번째 연결 요소와 연결되도록, 포트 관계 하위 구조를 한정하는 단계를 포함하는 것을 특징으로 하는 구조적인 모델 계층 한정방법.
  6. 컴퓨터 시스템 내의 시스템 구성방법에 있어서,
    조합체 및 컨테이너 계층과 포트 관계 하위 구조로 구성된 구조적인 모델 계층을 제공하는 단계,
    상기 컴퓨터 시스템 내에 구성 실례를 제공하는 단계,
    (a) 요청에 기초하여 하나 또는 다수의 모델 요소의 실례를 상기 구성 실례 내에 생성하고, 상기 요청에 응답하여 상기 구성요소 실례를 변경하는 단계,
    (b) 상기 변경을 변경 목록에 저장하는 단계,
    (c) 상기 실례를 검사하여 제약 조건이 존재하는지의 여부를 결정하는 단계,
    (d) 상기 제약 조건이 존재할 때, 상기 컴퓨터 내에서 상기 제약 조건을 충족시키는 단계,
    (c) 상기 변경을 상기 구성요소 실례에 넘기고, 제약 조건이 존재하지 않았을 때 그리고 상기 제약 조건이 충족되었을 때, 상기 변경 목록으로부터 상기 변경을 제거하는 단계, 및
    (f) 상기 제약 조건이 충족되지 않았을 때, 상기 구성 실례 및 상기 변경 목록으로부터 상기 변경을 제거하는 단계를 포함하는 것을 특징으로 하는 시스템 구성방법.
  7. 제6항에 있어서,
    상기 구성 실례는, 새로운 구성이 한정될 때 비어 있고, 상기 구성 실례는 기존의 시스템이 갱신되었을 때 기존의 구성을 포함하는 것을 특징으로 하는 시스템 구성방법.
  8. 제6항에 있어서,
    상기 구성 내의 상기 실례는 하나 또는 다수의 상기 조합체 및 컨테이너 계층과 포트 관계에 의해 제약되는 것을 특징으로 하는 시스템 구성방법.
  9. 제6항에 있어서,
    상기 컴퓨터 내에서, 상기 실례가 상기 구성요소 제약 조건에 의해 제약될 때 상기 구성요소 계층의 구성요소 제약 조건을 충족시키는 단계,
    상기 컴퓨터 내에서, 상기 실례가 상기 컨테이너 제약 조건에 의해 제약될 때 상기 컨테이너 계층의 컨테이너 제약 조건을 충족시키는 단계, 및
    상기 컴퓨터 내에서, 상기 실례가 상기 연결 제약 조건에 의해 제약될 때 상기 포트 관계의 연결 제약 조건을 충족시키는 단계를 추가로 포함하는 것을 특징으로 하는 시스템 구성방법.
  10. 제6항에 있어서,
    하나 또는 다수의 모델 요소의 상기 실례가 상기 요청을 충족시키지 못할 때 그리고 하나 또는 다수의 모델 요소의 상기 실례가 상기 제약 조건을 충족시키지 못할 때 상기 요청을 충족시키기 위한 대안을 식별하는 단계, 및
    상기 대안에 대해 상기 단계 (a) - (f)를 반복하는 단계를 추가로 포함하는 것을 특징으로 하는 시스템 구성방법.
  11. 제6항에 있어서,
    하나 또는 다수의 모델 요소의 상기 실례가 상기 요청을 충족시키지 못할 때 그리고 하나 또는 다수의 모델 요소의 상기 실례가 상기 제약 조건을 충족시키지 못하고 상기 요청을 충족시키기 위한 대안이 식별될 수 없을 때 상기 요청이 실패된 것임을 나타내는 단계를 추가로 포함하는 것을 특징으로 하는 시스템 구성방법.
  12. 시스템을 구성하기 위해 컴퓨터 시스템 내의 자원 요청을 충족시키는 방법에 있어서,
    구조적 모델 계층 및 상기 구조적 모델 계층 내의 요소에 의해 제공된 다수의 자원을 제공하는 단계,
    상기 컴퓨터 시스템 내에 구성 실례를 제공하는 단계,
    (a) 상기 자원에 대한 요청에 응답하여 자원을 제공하는 요소의 상기 구성 실례를 검사하는 단계,
    (b) 상기 자원이 이미 소비되었을 때, 상기 요소로부터 상기 자원을 선택하는 단계,
    (c) 기존의 요소가 상기 자원 요청을 충족시키지 못하는 경우, 상기 자원을 제공하는 새로이 생성된 요소 실례를 선택하는 단계, 및
    (d) 상기 요소 선택이 조회 및 검사 조건을 충족시키지 못할 때 단계 (a) - (d)를 반복하는 단계를 포함하는 것을 특징으로 하는 자원 요청 충족방법.
  13. 시스템을 구성하기 위해 컴퓨터 시스템 내의 컨테이너 제약 조건을 충족시키는 방법에 있어서,
    조합체 및 컨테이너 계층과 포트 관계 하위 구조로 구성된 구조적 모델 계층을 제공하는 단계,
    상기 컴퓨터 시스템 내에 구성 실례를 제공하는 단계,
    상기 컴퓨터 내에서, 상기 컨테이너 제약 조건이 존재할 때,
    (a) 상기 구성요소 실례를 검사하여, 컨테이너 실례가 상기 컨테이너 제약 조건을 충족시키는데 유효한지의 여부를 결정하고,
    (b) 상기 컨테이너 제약 조건이 상기 구성 실례내의 컨테이너 실례에 의해 충족될 수 없을 때 새로운 컨테이너 실례를 생성함으로써 상기 구성 실례를 변경하고,
    (c) 상기 컨테이너 제약 조건이 상기 구성 실례 내의 컨테이너 실례에 의해 충족될 수 없을 때 상기 변경을 변경 목록에 저장하고,
    (e) 상기 새로운 컨테이너 실례를 검사하여, 제약 조건이 존재하는 지의 여부를 결정하고,
    (f) 상기 새로운 컨테이너 실례에 대한 상기 제약 조건이 존재할 때, 상기 컴 내에서 상기 제약 조건을 충족시키고,
    (g) 상기 변경을 상기 구성 실례로 보내고, 제약 조거이 존재하지 않을 때 그리고 상기 제약 조건이 충족되었을 때 상기 변경을 상기 변경 목록으로부터 제거하고,
    (h) 상기 제약 조건이 충족되지 않았을 때 상기 구성 실례 및 상기 변경 목록으로부터 상기 변경을 제거함으로써,
    상기 컨테이너 제약 조건을 충족시키는 단계를 포함하는 것을 특징으로 하는 컨테이너 제약 조건 충족방법.
  14. 시스템을 구성하기 위해 컴퓨터 시스템 내의 구성요소 제약 조건을 충족시키는 방법에 있어서,
    조합체 및 컨테이너 계층과 포트 관계 하위 구조로 구성된 구조적 모델 계층을 제공하는 단계,
    상기 컴퓨터 시스템 내에 구성 실례를 제공하는 단계,
    상기 컴퓨터 내에서, 상기 구성요소 제약 조건이 존재할 때,
    (a) 상기 구성요소 실례를 검사하여, 구성요소 실례가 상기 구성요소 제약 조건을 충족시키는데 유효한지의 여부를 결정하고,
    (b) 상기 구성요소 제약 조건이 상기 구성 실례내의 구성요소 실례에 의해 충족될 수 없을 때 새로운 구성요소 실례를 생성함으로써 상기 구성 실례를 변경하고,
    (c) 상기 구성요소 제약 조건이 상기 구성 실례 내의 구성요소 실례에 의해 충족될 수 없을 때 상기 변경을 변경 목록에 저장하고,
    (e) 상기 새로운 구성요소 실례를 검사하여, 제약 조건이 존재하는 지의 여부를 결정하고,
    (f) 상기 제약 조건이 존재할 때, 상기 컴퓨터 내에서 상기 새로운 구성요소 실례에 대한 제약 조건을 충족시키고,
    (g) 상기 변경을 상기 구성 실례로 보내고, 상기 새로운 구 실례에 대한 제약 조건이 존재하지 않을 때 그리고 상기 제약 조건이 충족되었을 때 상기 변경을 상기 변경 목록으로부터 제거하고,
    (h) 상기 새로운 구성요소 실례에 대한 제약 조건이 충족되지 않았을 때 상기 구성 실례 및 상기 변경 목록으로부터 상기 변경을 제거함으로써,
    상기 구성요소 제약 조건을 충족시키는 단계를 포함하는 것을 특징으로 하는 구성요소 제약 조건 충족방법.
  15. 시스템을 구성하기 위해 컴퓨터 시스템 내의 연결 제약 조건을 충족시키는 방법에 있어서,
    조합체 및 컨테이너 계층과 포트 관계 하위 구조로 구성된 구조적 모델 계층을 제공하는 단계,
    상기 컴퓨터 시스템 내에 구성 실례를 제공하는 단계,
    상기 구성 실례내의 목표 요소가 상기 구성요소 실례의 목적 요소로의 연결이 필요하도록 연결 제약 조건을 발생시키는 단계,
    (a) 목적 요소의 목록을 발생시키는 단계,
    (b) 상기 목적 요소의 목록으로부터 하나의 목적 요소를 선택하는 단계,
    (c) 상기 목표 요소로부터 접근가능한 상기 목적 요소의 연결되지 않은 포트를 식별하는 단계,
    (d) 상기 목표 요소의 유효한 포트를 식별하는 단계,
    (e) 상기 목적 요소의 연결되지 않은 포트중 어느 하나의 포트에서 첫 번째 포트를 선택하는 단계,
    (f) 상기 목표 요소의 유효한 포트중 어느 하나의 포트에서 두 번째 포트를 선택하는 단계,
    (g) 상기 첫 번째 포트의 물리적인 형태 및 논리적인 형태를 상기 두 번째 포트의 물리적인 형태 및 논리적인 형태와 비교하는 단계,
    (h) 상기 첫 번째 포트 및 두 번째 포트 사이의 전송 경로를 검사하는 단계,
    (i) 상기 물리적인 형태 및 논리적인 형태가 호환성이 있을 때 그리고 상기 전송 경로가 상기 첫 번째 포트 및 두 번째 포트 사이에 존재할 때, 상기 첫 번째 포트를 상기 두 번째 포트에 연결하는 단계, 및
    (j) 상기 물리적인 형태 및 논리적인 형태가 호환성이 없을 때 그리고 상기 전송 경로가 상기 첫 번째 포트 및 두 번째 포트 사이에 존재하지 않을 때, 단계 (b) - (j)를 반복하는 단계를 포함하는 것을 특징으로 하는 연결 제약 조건 충족방법.
KR1019950704193A 1993-03-29 1994-03-21 시스템구성방법및구성장치 KR100291012B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/039949 1993-03-29
US08/039,949 US5515524A (en) 1993-03-29 1993-03-29 Method and apparatus for configuring systems
US08/039,949 1993-03-29
PCT/US1994/003445 WO1994023372A1 (en) 1993-03-29 1994-03-21 Method and apparatus for configuring systems

Publications (2)

Publication Number Publication Date
KR960701406A KR960701406A (ko) 1996-02-24
KR100291012B1 true KR100291012B1 (ko) 2001-09-17

Family

ID=21908252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950704193A KR100291012B1 (ko) 1993-03-29 1994-03-21 시스템구성방법및구성장치

Country Status (10)

Country Link
US (2) US5515524A (ko)
EP (1) EP0719432B1 (ko)
JP (1) JPH08509309A (ko)
KR (1) KR100291012B1 (ko)
AT (1) ATE363100T1 (ko)
AU (1) AU685451B2 (ko)
BR (1) BR9406179A (ko)
CA (1) CA2158153C (ko)
DE (1) DE69434975T2 (ko)
WO (1) WO1994023372A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100870291B1 (ko) 2004-06-30 2008-11-25 인텔 코오퍼레이션 구성 가능한 사양 선택 메커니즘

Families Citing this family (285)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115547A (en) 1993-03-29 2000-09-05 Trilogy Development Group, Inc. Flash configuration cache
US7043407B2 (en) * 1997-03-10 2006-05-09 Trilogy Development Group, Inc. Method and apparatus for configuring systems
US5668995A (en) * 1994-04-22 1997-09-16 Ncr Corporation Method and apparatus for capacity planning for multiprocessor computer systems in client/server environments
US5500802A (en) * 1994-05-31 1996-03-19 Morris; James M. System and method for creating configurators using templates
JP3434038B2 (ja) * 1994-09-22 2003-08-04 株式会社日立製作所 ネットワ−ク構築支援システム
US5758351A (en) * 1995-03-01 1998-05-26 Sterling Software, Inc. System and method for the creation and use of surrogate information system objects
GB2301206A (en) * 1995-05-23 1996-11-27 Compaq Computer Corp A system for facilitating creation of a computer
EP0747847A3 (en) * 1995-06-07 1998-10-14 International Business Machines Corporation Method and apparatus for representing knowledge about entities
US5713009A (en) * 1995-09-08 1998-01-27 Digital Equipment Corporation Method and apparatus for configuring a computer system
US5748943A (en) * 1995-10-04 1998-05-05 Ford Global Technologies, Inc. Intelligent CAD process
US5745765A (en) * 1995-10-23 1998-04-28 Calico Technology, Inc. Method and apparatus for automatic and interactive configuration of custom products
US6067525A (en) 1995-10-30 2000-05-23 Clear With Computers Integrated computerized sales force automation system
US5819042A (en) * 1996-02-20 1998-10-06 Compaq Computer Corporation Method and apparatus for guided configuration of unconfigured network and internetwork devices
DE19614789C1 (de) * 1996-04-06 1997-09-25 Daimler Benz Ag Verfahren zur automatischen Konfigurierung eines technischen Systems unter Berücksichtigung unterschiedlicher Qualitäten von Komponenten-Außenwirkungen
US6427063B1 (en) 1997-05-22 2002-07-30 Finali Corporation Agent based instruction system and method
US5878400A (en) * 1996-06-17 1999-03-02 Trilogy Development Group, Inc. Method and apparatus for pricing products in multi-level product and organizational groups
US20030217252A1 (en) 1998-10-03 2003-11-20 Neeraj Gupta Method and apparatus for maintaining and configuring systems
US5825651A (en) 1996-09-03 1998-10-20 Trilogy Development Group, Inc. Method and apparatus for maintaining and configuring systems
US5999180A (en) * 1996-09-04 1999-12-07 Ncr Corporation Method and system for generating a configuration file using an X-windows server configuration tool
US5844554A (en) * 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US6098050A (en) * 1997-03-25 2000-08-01 Mciworldcom, Inc. System and method for recording, maintaining and viewing configuration and placement of equipment in field sites
US6169987B1 (en) 1997-03-25 2001-01-02 Mci Communications Corporation System and method to automate equipment placement at remote sites
US5991759A (en) * 1997-03-25 1999-11-23 Mci Communications Corporation Method and system for defining equipment in a telecommunication network down to the rackface level
US6952705B2 (en) 1997-03-25 2005-10-04 Mci, Inc. Method, system and program product that utilize a hierarchical conceptual framework to model an environment containing a collection of items
US6023699A (en) * 1997-03-25 2000-02-08 Mci Communications Corporation Method for organizing a relational database used for storing data related to the configuration and placement of equipment in field sites
US6529877B1 (en) * 1997-03-27 2003-03-04 British Telecommunications Public Limited Company Equipment allocation system
US6223343B1 (en) * 1997-04-04 2001-04-24 State Farm Mutual Automobile Insurance Co. Computer system and method to track and control element changes throughout application development
US6442584B1 (en) 1997-05-16 2002-08-27 Sybase, Inc. Methods for resource consolidation in a computing environment
US6052669A (en) * 1997-06-06 2000-04-18 Haworth, Inc. Graphical user interface supporting method and system for remote order generation of furniture products
US7519549B1 (en) * 1997-06-19 2009-04-14 Presentation Specialist Technologies, Llc Inventory sales system and method
US5899995A (en) * 1997-06-30 1999-05-04 Intel Corporation Method and apparatus for automatically organizing information
US6223170B1 (en) * 1997-09-09 2001-04-24 Baan Development B.V. Method and apparatus for inference of partial knowledge in interactive configuration
US6272390B1 (en) 1997-09-09 2001-08-07 Beologic A/S Method for interactive configuration and computer readable medium encoded with a program for performing said method
US6192355B1 (en) 1997-09-09 2001-02-20 Baan Development B.V. Method of configuring a set of objects in a computer
US5987473A (en) * 1997-09-09 1999-11-16 Beologic A/S Interactive configuration via network
US6141658A (en) * 1997-09-10 2000-10-31 Clear With Computers, Inc. Computer system and method for managing sales information
US6009466A (en) * 1997-10-31 1999-12-28 International Business Machines Corporation Network management system for enabling a user to configure a network of storage devices via a graphical user interface
US6212650B1 (en) * 1997-11-24 2001-04-03 Xilinx, Inc. Interactive dubug tool for programmable circuits
FR2775806B1 (fr) * 1998-03-04 2001-11-23 Valeo Electronique Outil informatique pour l'etude d'architectures electriques destinees a etre disposees a l'interieur d'un vehicule automobile
NZ507462A (en) 1998-03-16 2002-11-26 Array Technology Aps A database useful for configuring and/or optimizing a system and a method for generating the database
FR2776404B1 (fr) * 1998-03-18 2001-10-26 Spot Inf Procede de fabrication d'un ordinateur et moyens pour la mise en oeuvre du procede
US5963953A (en) * 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
US6226627B1 (en) * 1998-04-17 2001-05-01 Fuji Xerox Co., Ltd. Method and system for constructing adaptive and resilient software
US6847384B1 (en) * 1998-05-14 2005-01-25 Autodesk, Inc. Translating objects between software applications which employ different data formats
US6219659B1 (en) * 1998-07-08 2001-04-17 Electronics For Imaging, Inc. Configuration description language system
US6353884B1 (en) * 1998-07-29 2002-03-05 Compaq Computer Corporation System for describing and storing descriptions of hierachical structures using hardware definition files to specify performance, characteristics, part number and name of hardware components
US6192470B1 (en) * 1998-07-29 2001-02-20 Compaq Computer Corporation Configuration sizer for selecting system of computer components based on price/performance normalization
US6253318B1 (en) 1998-07-29 2001-06-26 Compaq Computer Corporation Method of developing physical requirements for computer configuration
US6263382B1 (en) 1998-07-29 2001-07-17 Compaq Computer Corporation Sizer for interactive computer system configuration
US6223094B1 (en) * 1998-08-21 2001-04-24 Sap Aktiengesellschaft Multi-tiered structure for storing and displaying product and process variants
WO2000014667A1 (en) * 1998-09-08 2000-03-16 Isogon Corporation Hardware/software management, purchasing and optimization system
US7225137B1 (en) 1998-09-08 2007-05-29 Isogon Corporation Hardware/software management, purchasing and optimization system
GB9819851D0 (en) * 1998-09-12 1998-11-04 Rolls Royce Plc Data processing method and system
US6167383A (en) * 1998-09-22 2000-12-26 Dell Usa, Lp Method and apparatus for providing customer configured machines at an internet site
US6518975B1 (en) * 1998-10-02 2003-02-11 Canon Kabushiki Kaisha Modularized architecture for color and image management system
US7236983B1 (en) * 1998-11-09 2007-06-26 Chrome Data Corporation Hierarchical data structure for vehicle identification and configuration data including protected customer data
JP2000148839A (ja) * 1998-11-13 2000-05-30 Nippon Steel Corp 分析設計支援システム、分析設計方法および記録媒体
US6549908B1 (en) 1998-11-18 2003-04-15 Siebel Systems, Inc. Methods and apparatus for interpreting user selections in the context of a relation distributed as a set of orthogonalized sub-relations
US6728960B1 (en) 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
DE19854754A1 (de) * 1998-11-27 2000-06-08 Alcatel Sa Verfahren, Editor, Rechner, Steuermodul und Speichermittel zum Editieren von Konfigurationsdaten für Telekommunikationssysteme
WO2000052559A1 (en) * 1999-03-05 2000-09-08 Isogon Corporation Method and process for displaying software product inventory and usage information correlated with license agreement information
US7006985B1 (en) * 1999-03-31 2006-02-28 International Business Machines Corporation Configuration of computer systems based upon purchasers component needs as determined from purchaser data entries correlated with a set of seller business rules to optimize quantities of each component sold
US7016864B1 (en) * 1999-04-09 2006-03-21 Dell Usa, L.P. Interactive upsell advisor method and apparatus for internet applications
WO2000072174A2 (de) * 1999-05-20 2000-11-30 Siemens Aktiengesellschaft Verfahren und anordnung zur modellierung eines technischen systems durch einen rechner
WO2001009778A1 (fr) * 1999-08-03 2001-02-08 Kenichi Ninomiya Aide a la conception: systeme, procede et programme de stockage de donnees
EP1216439A1 (en) * 1999-09-02 2002-06-26 Isogon Corporation Method and apparatus for correlating license agreement information with hardware and software configurations
US6938027B1 (en) 1999-09-02 2005-08-30 Isogon Corporation Hardware/software management, purchasing and optimization system
US7949691B1 (en) 1999-09-02 2011-05-24 Cbs Interactive Inc. Methods of catalog data maintenance, storage, and distribution
IT1314048B1 (it) * 1999-10-15 2002-12-03 Abb Ricerca Spa Metodo per eseguire la progettazione di base,la preventivazione e laprogettazione esecutiva di una rete elettrica e/o fluidodinamica
US6560699B1 (en) * 1999-10-20 2003-05-06 Cisco Technology, Inc. Constraint-based language configuration files for updating and verifying system constraints
US6230199B1 (en) * 1999-10-29 2001-05-08 Mcafee.Com, Inc. Active marketing based on client computer configurations
US7072728B2 (en) * 1999-11-19 2006-07-04 Dell Products L.P. Method for assembling hardware components in a computer system
US6725257B1 (en) 1999-11-30 2004-04-20 Chrome Data Corporation Computationally efficient process and apparatus for configuring a product over a computer network
US20020010598A1 (en) * 1999-12-18 2002-01-24 Johnson Jerome Dale System and method for providing configuration and sales information to assist in the development of insurance plans
US7424444B1 (en) 1999-12-20 2008-09-09 Dell Usa, L.P. Apparatus and method for configuring computers
US6981207B1 (en) 2000-01-11 2005-12-27 Ecora Software Corporation Automatic documentation of configurable systems by outputting explanatory information of configuration parameters in a narrative format and configuration parameters differences
US9959115B2 (en) * 2000-01-11 2018-05-01 Ecora.Com Corp. Method and system for automatic documentation of configurable systems
US7130821B1 (en) * 2000-01-14 2006-10-31 Trilogy Development Group, Inc. Method and apparatus for product comparison
US10055772B1 (en) 2000-01-14 2018-08-21 Versata Development Group, Inc. Method and apparatus for product comparison
US7206756B1 (en) 2000-01-14 2007-04-17 Trilogy Development Group, Inc. System and method for facilitating commercial transactions over a data network
US7426481B1 (en) 2000-01-14 2008-09-16 Versata Development Group, Inc. Method and apparatus for sorting products by features
US7113919B1 (en) * 2000-02-29 2006-09-26 Chemdomain, Inc. System and method for configuring products over a communications network
US7069235B1 (en) 2000-03-03 2006-06-27 Pcorder.Com, Inc. System and method for multi-source transaction processing
US7505921B1 (en) 2000-03-03 2009-03-17 Finali Corporation System and method for optimizing a product configuration
US20010034726A1 (en) * 2000-03-31 2001-10-25 Mcmahon Terry L. Method and system for automating quote generation
US20010039518A1 (en) * 2000-04-07 2001-11-08 Hiroshi Ishizuka Commodity retrieval method
US8412547B1 (en) 2000-04-24 2013-04-02 Trilogy Development Group, Inc. Commerce server architecture and method for using same
US7908200B2 (en) * 2000-05-16 2011-03-15 Versata Development Group, Inc. Method and apparatus for efficiently generating electronic requests for quote
JP3491684B2 (ja) * 2000-06-01 2004-01-26 株式会社ジェイ・エム・エス 医療用血液回路の構成決定方法及び構成決定システム
US20010051904A1 (en) * 2000-06-09 2001-12-13 Tomoki Nishimura Method and system for displaying custom-made product specification information, server and terminal for the system, and method of selecting custom-made product specifications
SE520367C2 (sv) * 2000-06-21 2003-07-01 Safelogic Ab Metod och anordning för interaktiv konfigurering
US7043457B1 (en) 2000-06-28 2006-05-09 Probuild, Inc. System and method for managing and evaluating network commodities purchasing
US7082521B1 (en) 2000-08-24 2006-07-25 Veritas Operating Corporation User interface for dynamic computing environment using allocateable resources
US7278142B2 (en) 2000-08-24 2007-10-02 Veritas Operating Corporation Dynamic computing environment using remotely allocable resources
US7065637B1 (en) 2000-08-24 2006-06-20 Veritas Operating Corporating System for configuration of dynamic computing environments using a visual interface
US6829703B1 (en) * 2000-08-31 2004-12-07 International Business Machines Corporation Method for validating system configuration in a mass customized environment
US6915253B1 (en) 2000-09-13 2005-07-05 Fujitsu Limited Method for facilitating product configuration using components from a set
US7043724B2 (en) * 2000-09-14 2006-05-09 Veritas Operating Corporation System and services for handling computing environments as documents
US6907604B1 (en) * 2000-09-22 2005-06-14 Dell Products L.P. Instant integration model
US7716567B1 (en) 2000-09-28 2010-05-11 Rockwell Automation Technologies, Inc. Multilinguistic industrial control and monitoring system
US7359870B1 (en) * 2000-09-28 2008-04-15 Rockwell Automation Technologies, Inc. System design, proposal and programming method and apparatus
US6816817B1 (en) 2000-09-28 2004-11-09 Rockwell Automation Technologies, Inc. Networked control system with real time monitoring
US6901316B1 (en) 2000-09-28 2005-05-31 Rockwell Automation Technologies, Inc. Electrical control system configuration method and apparatus
US6832118B1 (en) 2000-09-29 2004-12-14 Rockwell Automation Technologies, Inc. Programmable network control component and system of components
US7190382B1 (en) 2000-09-29 2007-03-13 Rockwell Automation Technologies, Inc. Real time system view method and apparatus
US6825860B1 (en) 2000-09-29 2004-11-30 Rockwell Automation Technologies, Inc. Autoscaling/autosizing user interface window
US8463682B1 (en) 2000-10-02 2013-06-11 Versata Development Group, Inc. Finance and configuration method and apparatus
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US7337179B1 (en) * 2000-11-01 2008-02-26 Versata Development Group, Inc. Context subsystems for system configurations
US8631103B1 (en) 2000-11-10 2014-01-14 Symantec Operating Corporation Web-based administration of remote computing environments via signals sent via the internet
US7027412B2 (en) * 2000-11-10 2006-04-11 Veritas Operating Corporation System for dynamic provisioning of secure, scalable, and extensible networked computer environments
US20020059377A1 (en) * 2000-11-14 2002-05-16 Jagadish Bandhole Collaborative computing systems using dynamic computing environments
EP1211594A3 (en) * 2000-11-30 2006-05-24 Canon Kabushiki Kaisha Apparatus and method for controlling user interface
CA2431209A1 (en) * 2000-12-08 2002-06-13 Configit Software A/S A method of configuring a product using a directed acyclic graph
JP2002189900A (ja) * 2000-12-22 2002-07-05 Myotoku Ltd 構成品選定方法、構成品選定装置及び記録媒体
US20020087423A1 (en) * 2001-01-02 2002-07-04 Carbrey Palango Joan L. System builder for building electronics systems
US7093113B2 (en) * 2001-01-09 2006-08-15 Veritas Operating Corporation Application model for dynamic computing environments in software sales cycle
US7213231B1 (en) 2001-01-11 2007-05-01 Cisco Technology, Inc. Cross-spectrum application model for dynamic computing environments in software lifecycle
US20020107749A1 (en) * 2001-02-05 2002-08-08 David Leslie Networked based paralleling switchgear equipment configuration process
WO2002065661A1 (en) * 2001-02-12 2002-08-22 Maple Optical Systems, Inc. System and method for fast-rerouting of data in a data communication network
WO2002067151A1 (de) * 2001-02-16 2002-08-29 Va Tech Elin Ebg Elektronik Gmbh & Co Konfigurator
US7958024B2 (en) * 2001-03-15 2011-06-07 Versata Development Group, Inc. Method and apparatus for processing sales transaction data
US7925513B2 (en) * 2001-03-15 2011-04-12 Versata Development Group, Inc. Framework for processing sales transaction data
US8239312B2 (en) * 2001-03-15 2012-08-07 Versata Development Group, Inc. Method and apparatus for net-pay and debt consolidation
US7908304B2 (en) * 2001-03-15 2011-03-15 Versata Development Group, Inc. Method and system for managing distributor information
US20030018481A1 (en) * 2001-03-15 2003-01-23 Cheng Zhou Method and apparatus for generating configurable documents
US20020177981A1 (en) * 2001-03-27 2002-11-28 Fleming Mark Joseph System and method for switchboard feeder design
US6980967B1 (en) * 2001-03-28 2005-12-27 Oracle International Corporation Bounceback detection in online product configuration
US7614014B2 (en) * 2001-04-05 2009-11-03 Daniel Keele Burgin System and method for automated end-user support
US20020147848A1 (en) * 2001-04-05 2002-10-10 Burgin Daniel Keele System and method for enabling communication between browser frames
US8096809B2 (en) 2001-04-05 2012-01-17 Convergys Cmg Utah, Inc. System and method for automated end-user support
JP2002312648A (ja) * 2001-04-17 2002-10-25 Nec Corp 注文生産システム及び方法並びに注文生産用プログラム
US7480860B2 (en) 2001-04-23 2009-01-20 Versata Computer Industry Solutions, Inc. Data document generator to generate multiple documents from a common document using multiple transforms
US7218976B2 (en) * 2001-04-27 2007-05-15 Canon Kabushiki Kaisha User interface control apparatus and method
US7036006B2 (en) 2001-05-17 2006-04-25 Veritas Operating Corporation System to provide computing as a product using dynamic computing environments
US7269788B2 (en) * 2001-06-29 2007-09-11 Versata Development Group, Inc. Extensibility and usability of document and data representation languages
US7904326B2 (en) * 2001-06-29 2011-03-08 Versata Development Group, Inc. Method and apparatus for performing collective validation of credential information
US7200609B2 (en) * 2001-07-19 2007-04-03 Emc Corporation Attribute based resource allocation
GB2380004A (en) * 2001-07-27 2003-03-26 Virtual Access Ireland Ltd A configuration and management development system for a netwok of devices
US8306795B2 (en) * 2001-09-25 2012-11-06 Numatics, Incorporated Product configuration method and system
US7873503B2 (en) * 2001-09-28 2011-01-18 Siebel Systems, Inc. Method, system, and product for performing sub-configuration of entities
US7343584B1 (en) * 2001-10-16 2008-03-11 Versata Development Group, Inc. Automated configuration of systems comprising product components of heterogeneous contexts
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US6785881B1 (en) * 2001-11-19 2004-08-31 Cypress Semiconductor Corporation Data driven method and system for monitoring hardware resource usage for programming an electronic device
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
IL162627A0 (en) * 2001-12-21 2005-11-20 3Dfacto Aps A method, a computer system, and a computer program product for configuring a virtual representationof an assembly of a plurality
US7188335B1 (en) * 2001-12-28 2007-03-06 Trilogy Development Group, Inc. Product configuration using configuration patterns
US7584155B1 (en) * 2002-02-01 2009-09-01 Trilogy Development Group, Inc. Method and apparatus for efficient delta pricing
US20050144175A1 (en) * 2002-02-18 2005-06-30 Siemens Aktiengesellschaft Method and system for administrating use of a service
US20030172003A1 (en) * 2002-03-06 2003-09-11 Holbrook Richard M. Method and system for designing configurable furniture product
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US20050188351A1 (en) * 2002-04-02 2005-08-25 Siemens Aktiengesellschaft Device and method for automatically generating automation software
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US20030208361A1 (en) * 2002-05-02 2003-11-06 Belinne Daryl Jarvis Configuration of systems with services
US20030212769A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Technical solution architect power distribution tool
US7756759B1 (en) 2002-05-15 2010-07-13 Versata Development Group, Inc. Method and apparatus for inventory searching
US20030225631A1 (en) * 2002-05-30 2003-12-04 Howell James A. System and method for pre-configuration using after point of sale information
US7003360B1 (en) 2002-06-12 2006-02-21 Trilogy Development Group, Inc. System and method for product configuration using numerical clauses and inference procedures
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7069428B2 (en) * 2002-09-10 2006-06-27 Veritas Operating Corporation System for managing boot-up of target computers
US7953779B1 (en) 2002-10-08 2011-05-31 Trilogy Development Group, Inc. Configuration representation and modeling using configuration spaces
DE10247748A1 (de) * 2002-10-12 2004-04-22 Metzger, Uwe Werteberechnung mittels hierarchischer Netze
US8798964B2 (en) * 2002-11-06 2014-08-05 Hewlett-Packard Development Company, L. P. Methods and apparatus for designing the racking and wiring configurations for pieces of hardware
US7647254B2 (en) * 2002-11-20 2010-01-12 Acer Incorporated Method and system for providing customized computer solutions
US8683016B1 (en) 2002-12-20 2014-03-25 Versata Development Group, Inc. Data recording components and processes for acquiring selected web site data
US7596473B2 (en) * 2003-05-20 2009-09-29 Interlego Ag Method of constructing a virtual construction model
US20050015312A1 (en) * 2003-06-24 2005-01-20 Hoffman Ramona K. Method of selecting and purchasing office furniture
EP1652043B1 (en) * 2003-07-11 2017-01-25 CA, Inc. System and method for common storage object model
US20050049932A1 (en) * 2003-09-03 2005-03-03 Howell James A. Process for managing subscription service purchases
US20050071270A1 (en) * 2003-09-26 2005-03-31 Ramirez Christopher W. Process for remote recovery and creation of machine specific authentication keys for systems
US7533173B2 (en) * 2003-09-30 2009-05-12 International Business Machines Corporation Policy driven automation - specifying equivalent resources
US7451201B2 (en) * 2003-09-30 2008-11-11 International Business Machines Corporation Policy driven autonomic computing-specifying relationships
US8892702B2 (en) 2003-09-30 2014-11-18 International Business Machines Corporation Policy driven autonomic computing-programmatic policy definitions
US20050079508A1 (en) * 2003-10-10 2005-04-14 Judy Dering Constraints-based analysis of gene expression data
US9652584B2 (en) * 2003-10-31 2017-05-16 The Boeing Company Aircraft design systems and methods
US20050096952A1 (en) * 2003-10-31 2005-05-05 Hansen Allan M. Methods and systems for option-based product definition
US7761794B1 (en) 2004-01-22 2010-07-20 Cisco Technology, Inc. Integrated audit and configuration techniques
US7471989B2 (en) * 2004-02-26 2008-12-30 The Boeing Company Identification of engineering intent requirements in an electronic environment
US7725299B2 (en) * 2004-03-01 2010-05-25 Purdue Research Foundation Multi-tier and multi-domain distributed rapid product configuration and design system
US7313552B2 (en) * 2004-03-19 2007-12-25 Sybase, Inc. Boolean network rule engine
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US20050216109A1 (en) * 2004-03-29 2005-09-29 Radigan Thomas J Integrated precision machine design system and method
US7995735B2 (en) 2004-04-15 2011-08-09 Chad Vos Method and apparatus for managing customer data
US7739080B1 (en) 2004-04-19 2010-06-15 Versata Development Group, Inc. Consolidation of product data models
US7110842B2 (en) * 2004-05-18 2006-09-19 Paccar Inc. Modular design method
US8260893B1 (en) 2004-07-06 2012-09-04 Symantec Operating Corporation Method and system for automated management of information technology
US7567922B1 (en) 2004-08-12 2009-07-28 Versata Development Group, Inc. Method and system for generating a normalized configuration model
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) * 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US7882057B1 (en) 2004-10-04 2011-02-01 Trilogy Development Group, Inc. Complex configuration processing using configuration sub-models
US7242995B1 (en) * 2004-10-25 2007-07-10 Rockwell Automation Technologies, Inc. E-manufacturing in semiconductor and microelectronics processes
DE102004053230B4 (de) * 2004-11-04 2006-07-20 Daimlerchrysler Ag Vorrichtung und Verfahren zum Konfigurieren eines Produkts
JPWO2006051606A1 (ja) * 2004-11-12 2008-05-29 富士通株式会社 システム構成管理装置
US20060122894A1 (en) * 2004-12-03 2006-06-08 Mcgary Jon User configured order status updates
US8805825B1 (en) 2005-01-12 2014-08-12 Versata Development Group, Inc. Attribute prioritized configuration using a combined configuration-attribute data model
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US8590011B1 (en) * 2005-02-24 2013-11-19 Versata Development Group, Inc. Variable domain resource data security for data processing systems
US20060193462A1 (en) * 2005-02-28 2006-08-31 Gregg Hansen System for optimizing configurable information handling systems
US20090039407A1 (en) * 2005-03-17 2009-02-12 Vora Madhukar B Vertically integrated flash EPROM for greater density and lower cost
US20060246788A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method for representing connections for validation during an automated configuration of a product
US7360071B2 (en) * 2005-04-28 2008-04-15 International Business Machines Corporation Method to establish contexts for use during automated product configuration
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US9824183B1 (en) 2005-05-12 2017-11-21 Versata Development Group, Inc. Augmentation and processing of digital information sets using proxy data
US20060291645A1 (en) * 2005-06-08 2006-12-28 Vasu Mekala Needs based offer
US8089461B2 (en) * 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US7623684B2 (en) * 2005-07-19 2009-11-24 Dell Products, L.P. System and method for information handling system software registration code management
US7457789B2 (en) * 2005-08-17 2008-11-25 Tacton Systems Ab Configuration assistance for complex products
US7966227B2 (en) * 2005-11-21 2011-06-21 Ge Healthcare Bio-Sciences Ab System for configuring a chemical separation system
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
WO2007072310A1 (en) 2005-12-22 2007-06-28 Shapiro Alan J System and method for software delivery
US8321859B2 (en) * 2005-12-22 2012-11-27 Alan Joshua Shapiro Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets
US20070174781A1 (en) * 2006-01-25 2007-07-26 Catalog Data Solutions Parameter visualization
WO2007098866A2 (en) * 2006-03-01 2007-09-07 Pilepro Llc Method for planning sheet pile wall sections
DE202006021152U1 (de) * 2006-03-01 2013-04-22 Pilepro Llc Computersystem
US7987149B2 (en) 2006-03-10 2011-07-26 Trilogy Intellectual Property Holdings, Inc. Configuration mapping using a multi-dimensional rule space and rule consolidation
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US20080097800A1 (en) * 2006-10-23 2008-04-24 Kutlev Krassimir G System and method for marketing and developing a custom substation
US8762214B1 (en) * 2006-11-14 2014-06-24 Nvidia Corporation Configuration based hierarchical product selection and product e-commerce agent management
US8595171B2 (en) * 2007-03-23 2013-11-26 Siemens Product Lifecycle Management Software Inc. System and method for rule set validation
US7805635B2 (en) * 2007-04-09 2010-09-28 International Business Machines Corporation Constraint programming for reduction of system test-configuration-matrix complexity
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8130025B2 (en) * 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8224628B2 (en) * 2007-05-01 2012-07-17 M.E.P. Cad, Inc. Methods and apparatuses for placing a flexible drop in a CAD drawing
US8441502B2 (en) * 2007-05-01 2013-05-14 M.E.P. Cad, Inc. Methods and apparatuses for resolving a CAD drawing conflict with an arm around
US20090273598A1 (en) * 2008-05-01 2009-11-05 M.E.P. Cad, Inc. Methods and apparatuses for automatically converting objects in CAD drawing from two-dimensions to three-dimensions
US8600706B2 (en) * 2007-05-01 2013-12-03 Auto Prep, Llc Systems and methods for identifying crash sources in a CAD environment
US8554520B2 (en) 2007-05-01 2013-10-08 Auto Prep, Llc Systems and methods for differentiating and associating multiple drawings in a CAD environment
US8773425B2 (en) * 2007-05-01 2014-07-08 M.E.P. CAD Inc. Methods and apparatuses for proposing resolutions to conflicts in a CAD drawing with reflections
AU2008248197B2 (en) * 2007-05-01 2011-12-01 M.E.P. Cad, Inc. Methods and apparatuses for handling a conflict in a CAD drawing
US8150660B2 (en) * 2007-05-01 2012-04-03 M.E.P. Cad, Inc. Methods and apparatuses for automatically selecting a pipe in a CAD drawing
US20100121614A1 (en) * 2007-05-01 2010-05-13 M.E.P. Cad, Inc. Methods and Apparatuses for Preprocessing a CAD Drawing
US7660539B2 (en) * 2007-07-11 2010-02-09 Dell Products, L.P. Printer consumable ordering direct from printer
US9043233B2 (en) * 2007-08-03 2015-05-26 International Business Machines Corporation Component configuration utilizing vague specifications
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US8938666B2 (en) * 2007-11-14 2015-01-20 International Business Machines Corporation Support selective graphical display of system configurations using view filters
US9087164B2 (en) * 2008-01-26 2015-07-21 National Semiconductor Corporation Visualization of tradeoffs between circuit designs
US7966588B1 (en) 2008-01-26 2011-06-21 National Semiconductor Corporation Optimization of electrical circuits
US8280696B1 (en) * 2008-02-20 2012-10-02 Ultra Deep, LLC Method for computer aided design of conduit
US20110190914A1 (en) * 2008-03-12 2011-08-04 Iklax Media Method for managing digital audio flows
US8135664B2 (en) * 2008-05-30 2012-03-13 International Business Machines Corporation Change management using collective data
US7984200B1 (en) 2008-09-23 2011-07-19 Western Digital Technologies, Inc. Configuring a data storage device with a configuration data record set in response to a configuration code
US9009358B1 (en) * 2008-09-23 2015-04-14 Western Digital Technologies, Inc. Configuring a data storage device with a parameter file interlocked with configuration code
US8078562B2 (en) * 2008-11-19 2011-12-13 Tacton Systems Ab Decomposing configuration problems
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
DE102009021255A1 (de) * 2009-05-14 2010-11-18 Fresenius Medical Care Deutschland Gmbh Verfahren und Vorrichtung zur Optimierung einer extrakorporalen Blutbehandlung
US8489841B1 (en) 2009-12-10 2013-07-16 Western Digital Technologies, Inc. Manufacturing station dynamically configuring a data storage device with a validated configuration data record
US8712741B2 (en) 2010-06-28 2014-04-29 National Semiconductor Corporation Power supply architecture system designer
US9141936B2 (en) * 2010-08-04 2015-09-22 Sas Institute Inc. Systems and methods for simulating a resource constrained process
US9358411B2 (en) 2011-05-27 2016-06-07 Victaulic Company Flexible dry sprinkler
US8812375B2 (en) 2011-10-07 2014-08-19 Ford Global Technologies, Llc Method and system for product configuration validation
US11676090B2 (en) 2011-11-29 2023-06-13 Model N, Inc. Enhanced multi-component object-based design, computation, and evaluation
US20140122160A1 (en) * 2012-10-26 2014-05-01 International Business Machines Corporation Optimized License Procurement
US9466026B2 (en) 2012-12-21 2016-10-11 Model N, Inc. Rule assignments and templating
US10373066B2 (en) 2012-12-21 2019-08-06 Model N. Inc. Simplified product configuration using table-based rules, rule conflict resolution through voting, and efficient model compilation
US11074643B1 (en) 2012-12-21 2021-07-27 Model N, Inc. Method and systems for efficient product navigation and product configuration
EP2759964A1 (de) * 2013-01-29 2014-07-30 dSPACE digital signal processing and control engineering GmbH Computerimplementiertes Verfahren zur Datenverwaltung von Produktvarianten in der Steuergeräteentwicklung
US9852429B2 (en) 2013-03-15 2017-12-26 Ford Global Technologies, Llc Method and system for generating a global representation of a product definition
US20140372083A1 (en) * 2013-06-13 2014-12-18 International Business Machines Corporation Derived restrictions in a combinatorial model
US20150026077A1 (en) * 2013-07-18 2015-01-22 Netapp, Inc. Centralized Method for Customer Assistance and System Verification
US20150026076A1 (en) * 2013-07-18 2015-01-22 Netapp, Inc. System and Method for Providing Customer Guidance in Deploying a Computing System
US10318703B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Maximally standard automatic completion using a multi-valued decision diagram
WO2018086761A1 (en) 2016-11-10 2018-05-17 Rowanalytics Ltd Control apparatus and method for processing data inputs in computing devices therefore
EP3355205B1 (en) * 2017-01-26 2019-01-23 Sap Se Method and system for customization of computer systems
US10812338B2 (en) 2017-01-26 2020-10-20 Sap Se Method and system for customization of computer systems
US10757169B2 (en) 2018-05-25 2020-08-25 Model N, Inc. Selective master data transport
US11531555B2 (en) 2021-03-26 2022-12-20 International Business Machines Corporation Selective pruning of a system configuration model for system reconfigurations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
US4591983A (en) * 1984-07-09 1986-05-27 Teknowledge, Inc. Hierarchical knowledge system
US4649479A (en) * 1985-02-28 1987-03-10 International Business Machines Corp. Device driver and adapter binding technique
US4870591A (en) * 1987-08-24 1989-09-26 International Business Machines Corp. System for ensuring device compatibility
US5257387A (en) * 1988-09-09 1993-10-26 Compaq Computer Corporation Computer implemented method and apparatus for dynamic and automatic configuration of a computer system and circuit boards including computer resource allocation conflict resolution
US5283857A (en) * 1988-11-14 1994-02-01 Digital Equipment Corporation Expert system including arrangement for acquiring redesign knowledge
US5226160A (en) * 1989-07-18 1993-07-06 Visage Method of and system for interactive video-audio-computer open architecture operation
US5265238A (en) * 1991-01-25 1993-11-23 International Business Machines Corporation Automatic device configuration for dockable portable computers
US5220654A (en) * 1991-03-28 1993-06-15 International Business Machines Corp. Method and system for managing an operating system definition of a dynamically modifiable i/o configuration
US5293479A (en) * 1991-07-08 1994-03-08 Quintero Smith Incorporated Design tool and method for preparing parametric assemblies

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100870291B1 (ko) 2004-06-30 2008-11-25 인텔 코오퍼레이션 구성 가능한 사양 선택 메커니즘

Also Published As

Publication number Publication date
BR9406179A (pt) 1996-02-06
WO1994023372A1 (en) 1994-10-13
ATE363100T1 (de) 2007-06-15
CA2158153A1 (en) 1994-10-13
AU685451B2 (en) 1998-01-22
DE69434975T2 (de) 2008-01-24
DE69434975D1 (de) 2007-07-05
JPH08509309A (ja) 1996-10-01
AU6494794A (en) 1994-10-24
CA2158153C (en) 2001-07-24
US5708798A (en) 1998-01-13
KR960701406A (ko) 1996-02-24
EP0719432A1 (en) 1996-07-03
US5515524A (en) 1996-05-07
EP0719432B1 (en) 2007-05-23
EP0719432A4 (en) 1996-05-08

Similar Documents

Publication Publication Date Title
KR100291012B1 (ko) 시스템구성방법및구성장치
US7043407B2 (en) Method and apparatus for configuring systems
US6002854A (en) Method and apparatus for configuring systems
US6115547A (en) Flash configuration cache
CN102902839B (zh) 管理集成电路设计的装置和方法
Bell et al. Computer Engineering: A DEC View of Hardware Systems Design
US7103434B2 (en) PLM-supportive CAD-CAM tool for interoperative electrical and mechanical design for hardware electrical systems
US7085776B2 (en) Logical hierarchical data model for sharing product information across product families
US6292894B1 (en) System, method, and medium for retrieving, organizing, and utilizing networked data
US5664180A (en) Design tool for complex objects which links object structures of a design object in multiple design domains
US20020087557A1 (en) Method and apparatus for providing access control for a decentralized or emergent model on a computer network
US20090070368A1 (en) Methods and apparatus for creating and utilizing templates in connection with information modeling
JP2003535389A (ja) 回路およびチップ設計で使用される電子コンポーネントの選択および取得のための自動化方法およびシステム
US9858121B1 (en) Context subsystems for system configurations
US20090083711A1 (en) Method and apparatus for enabling collaborative product development processes
US20070033204A1 (en) Methods and apparatus for information modeling
AU715256B2 (en) Method and apparatus for configuring systems
AU2891300A (en) Method and apparatus for configuring system
EP0747847A2 (en) Method and apparatus for representing knowledge about entities
ter Hofstede et al. Integrated specification of method and graphic knowledge
Tooley Software Engineer's Pocket Book
Hogg Applying a hierarchical multiprocessing architecture to computer integrated manufacturing
Musto et al. Architectural Design
JPH10149288A (ja) エンティティに関する知識を表現するための方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee