KR100228938B1 - 데이타 프로세싱 시스템 및 프로그램 생성방법 - Google Patents
데이타 프로세싱 시스템 및 프로그램 생성방법 Download PDFInfo
- Publication number
- KR100228938B1 KR100228938B1 KR1019950046451A KR19950046451A KR100228938B1 KR 100228938 B1 KR100228938 B1 KR 100228938B1 KR 1019950046451 A KR1019950046451 A KR 1019950046451A KR 19950046451 A KR19950046451 A KR 19950046451A KR 100228938 B1 KR100228938 B1 KR 100228938B1
- Authority
- KR
- South Korea
- Prior art keywords
- parameter
- displaying
- parameters
- list
- selection
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Abstract
본 발명은 그래픽 사용자 인터페이스를 사용하여 객체 지향 환경에서 프로그램을 효율적으로 생성하는 데이타 프로세싱 시스템 및 프로그램 생성 방법에 관한 것이다. 객체는 그래픽 사용자 인터페이스내에서 그래픽적으로 디스플레이되며, 여기서 객체는 객체 지향 언어로 작성된 방법을 포함한다. 이 방법은 다수의 파라미터를 갖는다. 각각의 파라미터는 GUI 내에서 그래픽적으로 디스플레이된다.
이러한 디스플레이는 그래픽적으로 디스플레이된 객채의 선택에 응답할 수 있다. 각각의 파라미터는 그래픽적으로 디스플레이된 객체와 시각적으로 연관된다. 파라미터 선택에 응답하여 다수의 파라미터에서 하나의 파라미터에 대한 선택 리스트가 디스플레이된다.
사용자에 의해 선택 리스트를 사용한 파라미터의 지정이 허용되며, 여기서 선택 리스트를 사용하여 지정된 파라미터는 객체를 생성하기 위해 사용된 객체 지향 언어로 상기 방법으로 전파된다. 파라미터와 디스플레이된 객체사이의 관계를 디스플레이하기 위해 트리 구조가 사용될 수 있다.
Description
제 1 도는 본 발명이 적용될 수 있는 퍼스널 컴퓨터 데이타 프로세싱 시스템을 도시한 도면
제 2 도는 본 발명에 따른 퍼스널 컴퓨터 시스템의 다양한 구성요소를 나타내는 퍼스널 컴퓨터 시스템의 블럭도
제 3 도는 본 발명의 바람직한 실시예에 따라 도시된 객체 지향 시스템의 블럭도
제 4 도는 본 발명의 바람직한 실시예에 따라 도시된 시각 프로그래밍에 사용되는 시각 프로그래밍 윈도우를 도시한 도면
제 5a - 5j 도는 파라미터와 아이콘으로서 디스플레이되는 객체 사이의 관계를 제공하는데 사용되는 트리 구조를 도시한 도면
제 6a 및 6b 도는 본 발명의 바람직한 실시예에 따라 도시된 시각 프로그래밍 환경에서 메쏘드 파라미터를 지정하는 프로세싱을 흐름도를 도시한 도면
* 도면의 주요부분에 대한 부호의 설명
10 : 퍼스널 컴퓨터 시스템 12 : 시스템 장치
14 : 모니터 16 : 키보드
20 : 프린터 26 : 마이크로프로세서
28 : 캐시 제어기 32 : 버퍼
38 : 버스 제어 타이밍 44 : 마이크로채널 버스
54 : 어드레스 MUX 66 : 디코더
68 : 플레이너 입/출력 버스 78 : 병렬 어댑터
82 : 디스켓 어댑터 86 : ROM
300, 330 : 객체 302 : 객체
320 : 메시지 라우터 404 : 화면 구성 영역
408, 410 : 제어부 414 : 윈도우
본 발명은 전반적으로 데이타 프로세싱 시스템에 관한 것으로, 특히 데이타 프로세싱 시스템내의 시각 프로그래밍(visual programming)을 위한 시스템 및 방법에 관한 것이다. 보다 구체적으로 본 발명은 데이타 프로세싱 시스템에서 사용하기 위한 소프트웨어를 생성하는 시각 프로그래밍을 위한 시스템 및 방법에 관한 것이다.
데이타 프로세싱 시스템을 위한 애플리케이션 및 시스템 소프트웨어의 개발은 통상적으로 시간이 많이 소요되는 작업이었다. 소프트웨어 엔지니어링(software engineering) 분야는 새롭고 더 효율적인 소프트웨어 개발 모델을 제안하므로써 통상적인 기법의 한계를 극복하기 위해 노력을 기울여 왔다. 객체지향 프로그래밍(object oriented programming)이 객체의 신속한 개발(development), 구현(implement) 및 커스텀화(customization) 가능한 유망한 기법으로 부각 되었다. 각각의 새로운 객체는 소정의 데이타 속성 및 이 데이타상에서 동작하는 프로세스 혹은 메쏘드(method)를 갖는다. 데이타는 객체에 의해 "캡슐화(encapsulated)"된다고 일컬어지며, 객체 메쏘드에 의해서만 수정(modify)될 수 있다. 객체 메쏘드는, 이 객체 메쏘드를 식별하고 필요한 인자(arguments)를 제공하는 메시지를 전송하므로써 호출된다.
객체 지향 시스템은 캡슐화에 부가하여 두가지 중요한 특성을 갖는다. "상속(inneritance)"은 기존 객체로 부터 새로운 객체를 유도(derive)하고, 메쏘드 및 데이타 구조를 포함하는 모든 특성을 기존 객체로부터 계승하는 능력이다. 새로운 객체는 기존 객체의 클래스를 오버라이드(override)하거나 혹은 수정하므로써 제공되는 소정의 고유한 특징(certain unique feature)을 가질 수도 있다. 예를들면, 새로운 서브클래스(subclass)는 기존의 보다 일반적인 클래스로부터 이 서브클래스를 구별하는 기능(functions) 및 데이타만을 지정할 필요가 있을 뿐이다.
기존의 메쏘드 기술(method description)을 오버라이드하는 능력은, 객체에 대한 단일 메시지가 객체 자체에 따른 상이한 방식으로 처리되도록 하는 능력인 다형성(polymorphism)을 가능하게 한다.
상속 및 다형성은 새로운 소프트웨어 시스템을 구현하기 위한 강력한 구조를 생성한다. 소프트웨어 개발자는 시스템의 각 부분을 개발할 필요는 없으며, 단지 시스템의 특유한 특징만을 지정할 필요가 있다.
객체 지향 시스템의 성능은 시스템 "프레임워크(frameworks)"의 개발을 통해서 실현된다. 프레임워크는 최종 시스템 제품을 생성하기 위해 시스템 구현자(system implementor)에 의해 사용될 수 있는 베이스 클래스(base classes)의 집합(a collection of base classes)이다. 프레임워크는 시스템으로서 함께 동작하도록 정의되고 개발된다. 개념적으로, 프레임워크는 컴퓨터 하드웨어 제조자에 의해 사용되는 표준 하드웨어 구성요소의 세트(a set of standard hardware components)와 매우 유사하다. 각각의 구성요소는 소정의 정의된 기능을 가지고 있고, 엔지니어는 특정 설계에 따라 이들 구성요소를 조립하여 고유한 하드웨어 시스템을 형성한다.
객체 지향 프로그래밍 시스템의 일 예는 SOM(System Object Model)이다. SOM에 관한 상세한 정보는 IBM 사의 SOMobjects Developer Toolkit User Guide, 버전 2.0을 참조할 수 있다.
시각 프로그래밍 기법은 사용자 및 프로그래머가 통상적인 FORTRAN, C,PASCAL, COBOL 혹은 BASIC 등의 프로그래밍 언어를 사용한 프로그래밍보다 훨씬 신속하게 문제점에 대한 프로그래밍 솔루션(solution)을 생성할 수 있게 해준다. 시각 프로그래밍 환경(visual programming environments)은 사용자와 프로세싱 시스템 사이의 인터페이스로서 GUI(Graphic user Interface:GUI)를 제공한다. GUI내에서, 시각 프로그래밍은 예를 들면 사용자에게 디스플레이된 구성요소의 팔레트(pallet)로 부터 사용자 인터페이스 구성요소를 드래깅 및 드로핑(dragging and dropping)하므로써 수행될 수 있다. 프로그램 로직은 전형적으로, 통상적인 프로그램 언어에 의해 작성하는 방법, REXX와 같은 사용자에게 보다 친숙한 스크립트 언어(scripting language)에 의해 작성하는 방법, 혹은 시각 프로그래밍 환경내에서 시각적으로 구성요소를 접속하는 방법중의 하나에 의해 명시된다.
통상적인 프로그래밍 혹은 스크립트 언어를 사용하여 프로그래밍을 하려는 사용자는 여전히 생소한 이들 언어를 배워야 한다. 비록 스크립트 언어가 통상적인 프로그래밍 언어에 비해서 간단하기는 하지만, 여전히 이들 언어는 비 프로그래머에게는 중요한 장애 요소로 작용하고 있다.
GUI를 사용하여 구성요소를 시각적으로 접속하므로써 프로그램 로직을 명시하는 것이 비 프로그래머에게는 좀 더 효율적일 수 있다. 이러한 시각적 프로그래밍 환경이 몇몇 경우에서는 전문적인 프로그래머에 의한 코딩보다 훨씬 생산적일 수가 있다. 그러나, 현재의 구현에서는 대규모 애플리케이션의 스케일링(sealing)에 문제점이 있다. 시각 프로그래밍 기법은, 통상은 적은 수의 접속(connection)에는 잘 동작하지만, 현실적인 규모의 애플리케이션에는 사용될 수 없게 되는 경항이 있다. 이 스케일링 문제점의 주요 원인에는 메쏘드 호출과 연관된 파라미터의 지정이 포함된다.
비 객체 지향 언어(non-object oriented language)에서의 함수 호출과 같은 메쏘드 호출은 전형적으로 하나 이상의 파라미터를 요구한다. 각각의 파라미터는 다시 동일한 혹은 상이한 객체상의 또다른 메쏘드 호출을 이용하여 제공될 수도 있다. 파라미터 결정 자체가 GUI내에서 객체간의 시각적인 접속을 도시하므로써 지정될 경우, 접속의 수는 급속히 커지게 되어 개개의 접속을 구별할 수 없게 된다. 따라서, 사용자가 시각적으로 파라미터를 지정할 수 있게 해주는 시각 프로그래밍 기법을 제공하는 시스템 및 방법을 사용하는 것이 유리하며, 상기 방법은 현실적인 대규모의 애플리케이션의 생산적인 개발을 지원할 수 있어야 한다.
따라서 본 발명의 목적은 개선된 데이타 프로세싱 시스템을 제공하는 데 있다.
본 발명의 다른 목적은 데이타 프로세싱 시스템내에 시각 프로그래밍을 위한 개선된 방법 및 시스템을 제공하는 데 있다.
본 발명의 또다른 목적은 데이타 프로세싱 시스템에서 사용하기 위한 소프트웨어를 생성하는 시각 프로그래밍을 위한 개선된 방법 및 시스템을 제공하는 데 있다.
본 발명은 GUI를 사용하여 객체 지향 환경내에서 프로그램을 효율적으로 생성하는 데이타 프로세싱 시스템 및 그 방법을 제공한다. 객체는 GUI에서 그래픽 방식으로 디스플레이되고, 이 객체는 객체 지향 언어로 작성된 메쏘드를 포함하며, 이 메쏘드는 다수의 파라미터를 구비한다. 각각의 파라미터는 GUI에서 그래픽 방식으로 도시된다. 이러한 디스플레이는 그래픽 방식으로 도시된 객체의 선택에 응답하여 이루어 질 수 있다. 각각의 파라미터는 그래픽 방식으로 디스플레이된 객체와 식각적으로 연관된다. 선택 항목의 리스트(a list of selections)는 파라미터의 선택에 응답하여 다수의 파라미터중의 하나의 파라미터에 대해 디스플레이된다. 사용자는 선택 항목의 리스트를 사용하여 파라미터를 지정할 수 있으며, 선택 항목의 리스트를 사용하여 지정된 파라미터는 객체를 생성하기 위해 사용된 객체 지향 언어로 메쏘드에 전파된다.
객체 및 파라미터는 객체 및 파라미터를 나타내는 아이콘을 사용하여 GUI내에서 그래픽 방식으로 디스플레이될 수 있다. 이들 아이콘의 디스플레이는 확장(expand)될 수도 있고 혹은 붕괴(collapse)될 수도 있는 트리 구조(tree structure)로 이루어 질 수 있다. 메쏘드의 파라미터는 여러가지 방법으로 지정될 수 있다. 파라미터는 부가적인 파라미터를 갖춘 메쏘드를 갖는 또 다른 객체를 사용하여 지정될 수 있다. 이러한 경우, 그 두번째 객체 및 이 객체의 파라미터는 트리 구조내의 "서브트리"로서 디스플레이될 수 있다. 파라미터를 지정하는데 사용되는 이들 선택 항목 혹은 소스는 팝 업 메뉴(pop-up menu)로 사용자에게 디스플레이될 수 있다. 이 팝 업 메뉴는, 사용자가 파라미터에 대한 선택 혹은 소스를 지정할 수 있게 해주는 선택 항목을 포함하여, GUI내에 도시된다.
본 발명의 전술한 목적 및 부가적인 목적, 특징 및 장점들은 첨부 도면을 참조한 이하 개시되는 상세한 설명으로부터 더욱 명확하게 이해될 것이다.
제 1 도를 참조하면, 본 발명이 적용되는 데이타 프로세싱 시스템, 즉 퍼스널 컴퓨터 시스템(10)이 도시되어 있다. 도시된 바와 같이, 퍼스널 컴퓨터 시스템(10)은 상호접속된 다수의 구성요소를 포함한다. 특히, 시스템 유닛(12)은 (통상적인 비디오 디스플레이와 같은) 선택사양인(optional) 모니터(14)와 접속되어 이 모니터를 구동할 수 있다. 시스템 유닛(12)은 또한 PC 키보드(16) 혹은 마우스(18)와 같은 입력장치에 선택에 따라 접속될 수 있다. 마우스(18)는 (도시되지 않지만) 좌 우 버튼을 구비한다. 좌측 버튼은 일반적으로 주 선택 버튼으로 이용되며, 따라서 제 1 마우스 버튼 혹은 마우스 버튼 1 로 칭해진다. 우측 버튼은 전형적으로 이하 개시되는 보조 기능을 선택하는 데 이용된다. 따라서 우측 마우스 버튼은 제 2 마우스 버튼 혹은 마우스 버튼 2 로 칭해진다. 프린터(20)와 같은 선택사양적 출력 장치가 또한 시스템 장치(20)에 접속될 수 있다. 최종적으로, 시스템 장치(12)는 디스켓 장치(22)와 같은 하나 이상의 대용량 저장 장치를 포함할 수 있다.
이하 개시되는 바와 같이, 시스템 유닛(12)은 PC 키보드(16), 마우스(18) 혹은 지역 네트워크 인터페이스와 같은 입력 장치에 응답한다. 부가적으로, 플로피디스크 드라이브(22), 디스플레이(14), 프린터(20) 및 지역 통신 시스템과 같은 입력/출력(I/O) 장치 및 지역 통신 시스템이 잘 알려진 방법으로 시스템 유닛(12)에 접속된다. 물론, 당업자라면, 다른 통상적인 구성요소들이 또한 시스템 유닛(12)에 접속되어 상호작용할 수 있다는 것을 잘 이해할 것이다. 본 발명에 따르면, 퍼스널 컴퓨터 시스템(10)은 랜덤 액세스 메모리(random access memory:RAM), 판독 전용 메모리(read only memory:ROM), 및 다수의 입/출력 장치에 상호접속되는 시스템프로세서를 포함한다.
통상의 사용에서, 퍼스널 컴퓨터 시스템(10)은 서버로서 소규모 집단의 사용자들에게 혹은 단일의 사용자에게 독립적인 계산 능력을 제공하도록 설계될 수 있으며, 개인이나 혹은 소규모 사업주가 구입할 수 있도록 저가로 책정될 수 있다. 동작시, 시스템 프로세서는 IBM 사의 OS/2 운영 체제 혹은 DOS와 같은 운영 체제하에서 수행된다. OS/2 는 IBM 사의 등록 상표이다. 이러한 유형의 운영체제는 I/O 장치 및 운영 체제 사이에 BIOS(Basic Input/Output)를 포함한다. 마더보드(motherboard) 혹은 플레이너(planar)상의 ROM에 저장될 수 있는 BIOS는 POST(power on self test)로 칭해지는 진단 루틴(disgnostic routines)을 포함한다.
전술한 구조를 본 발명에 연계시키기 전에, 퍼스널 컴퓨터 시스템(10)의 일반적인 동작을 검토해 보는 것이 도움이 될 것이다. 제 2 도를 참조하면, 본 발명에 따른 퍼스널 컴퓨터 시스템(10)의 각종 구성요소를 나타내는 퍼스널 컴퓨터 시스템(10)의 블럭도가 도시되어 있다. 제 2 도에는 또한 플레이너(11)의 구성요소, I/O 슬롯(46a-46d) 및 퍼스널 컴퓨터 시스템(10)의 다른 하드웨어에 대한 플레이너(11)의 접속이 도시되어 있다. 마이크로프로세서로 구성된 시스템 중앙 처리장치(system central processing unit:CPU)도 플레이너에 접속된다. 이 CPU는 고속 CPU 지역 버스(24)에 의해 버스 제어 타이밍 장치(38)를 통해서 메모리 제어 장치(50)로 접속되며, 이 메모리 제어 장치는 휘발성 랜덤 액세스 메모리(RAM)(58)로 접속된다. 임의의 적절한 마이크로프로세서가 CPU(26)용으로 사용될 수 있지만, 하나의 적절한 예로서 인텔(Intel)사의 펜티엄 마이크로프로세서를 들 수 있다. "펜티엄(Pentium)"은 인텔 사의 등록 상표이다.
이하 개시되는 본 발명은 제 2 도에 도시된 특정한 시스템 블럭도를 참조하여 개시되지만, 본 발명에 따른 장치 및 방법이 플레이너 보드의 다른 하드웨어 구조를 이용하여 구현될 수 있다는 사실을 이해하여야 한다. 예를 들면, 시스템 프로세서는 인텔 사의, 80286, 80386 마이크로프로세서를 사용할 수도 있다. 이들 특정한 마이크로프로세서는 실 어드레싱 모드(real addressing mode) 혹은 보호 어드레싱 모드(protected addressing mode)에서 동작할 수 있다. 각 모드는 마이크로프로세서 메모리의 상이한 영역을 액세스하기 위한 어드레스 방안을 제공한다.
이제 제 2 도를 참조하면, (데이타 버스, 어드레스 버스 및 제어 버스를 포함하는)CPU 지역 버스(24)는 선택사양인 수치 코프로세서(27), 캐시 제어기(28) 및 캐시 메모리(30)를 CPU(26)와 접속시킨다. 또한 버퍼(32)가 지역 버스(24)에 접속된다. 버퍼(32)는 (CPU 지역 버스와 비교했을 때) 저속인 시스템 버스(34)에 접속되며, 이 시스템 버스는 또한 어드레스 버스, 데이타 버스 및 제어 버스를 포함한다. 시스템 버스(34)는 버퍼(32) 및 또 다른 버퍼(36) 사이에 연장되어 있다. 시스템 버스(34)는 또한 버스 제어 및 타이밍 장치(38)와 직접 메모리 액세스 장치(Direct Memory Access)(40)에 접속된다. DMA 장치(40)는 중앙 중재 장치(central arbitration unit)(48) 및 DMA 제어기(41)를 포함한다. 버퍼(36)는 시스템 버스와 마이크로 채널 버스(44)와 같은 선택사양인 특정 버스 사이에 인터페이스를 제공한다. "마이크로 채널(Micro Channel)"은 IBM 사의 등록 상표이다. 마이크로 채널 어댑터 카드를 수용하기 위한 다수의 입/출력 슬롯(46a-46d)이 버스(44)에 접속되며, 이들 카드에는 입/출력 장치 혹은 메모리가 더 접속될 수도 있다. 도시된 예에서, 입/출력 슬롯(46a)은 자신에 접속된 하드 디스크 드라이브를 가지며, 입/출력 슬롯(46b)는 자신에 접속된 CD-ROM 드라이브를 가지고, 입/출력 슬롯(46c)은 자신에 접속된 어댑터 카드상의 ROM를 갖는다. 모뎀과 같은 또다른 장치가 I/O 슬롯에 접속될 수도 있다. 중재 제어 버스(42)는 DMA 제어기(41)와 중앙 중재 장치(48)를 입/출력 슬롯(46) 및 디스켓 어댑터(82)에 접속한다. 메모리 제어장치(50)가 또한 시스템 버스(34)에 접속되며, 이 메모리 제어 장치는 메모리 제어기(52), 어드레스 멀티플렉서(54) 및 데이타 버퍼(56)를 포함한다. 메모리 제어 장치(50)는 또한 RAM 모듈(58)로서 표시된 랜덤 액세스 메모리에 접속된다. 메모리 제어기(52)는 CPU(26)로 또한 CPU(26)로 부터 RAM(58)의 특정 지역으로 어드레스를 매핑하는 로직을 포함한다. 본 발명의 컴퓨터 시스템은 기본 1 메가바이트 RAM 모듈을 가지고 도시되지만, 제 2 도에 도시된 바와 같이 선택사양인 메모리 모듈(60-64)과 같은 부가적인 메모리가 상호접속될 수도 있다.
또 다른 버퍼(68)가 시스템 버스(34)와 플레이너 I/O 버스(68) 사이에 접속된다. 플레이너 I/O 버스(68)는 어드레스 버스, 데이타 버스 및 제어 버스를 포함한다. 플레이너 I/O 버스(68)에는 또한, 다양한 I/O 어댑터 및 (선택사양인 디스플레이(14)를 구동하는데 사용되는)디스플레이 어댑터(70), 클럭(72), 비휘발성(nonvolatile) RAM(74)(이후 "NVRAM"으로 칭해짐), RS232 어댑터, 병렬 어댑터(78), 다수의 타이머(80), 디스켓 어댑터(82), PC 키보드/마우스 제어기(84) 및 판독 전용 메모리(ROM)(86)와 같은 다른 주변장치 구성요소가 접속된다. ROM(86)은 다수의 장치 사이에 사용자 투명 통신(user transparent communication)을 제공하는 BIOS를 포함한다.
시간 계산을 위해 클럭(72)이 사용되며, 시스템 구성 데이타(system configuration data)를 저장하기 위해 NVRAM(74)이 사용된다. 즉, NVRAM은 시스템의 현재 구성을 나타내는 값을 보유할 것이다. 예를 들면, NVRAM(74)은 고정 디스크 혹은 디스켓의 용량, 디스플레이의 유형, 메모리 량 등을 나타내는 정보를 보유한다. 특히 중요하게, NVRAM(74)은 시스템 콘솔 구성을 나타내는데 사용되는 데이타, 즉 PC 키보드가 키보드/마우스 제어기(84)에 접속되었는지의 여부 및 디스플레이 제어기가 사용가능한지 혹은 ASCII 터미날이 RS232 어댑터(76)에 접속되었는지를 나타내는 데이타를 보유한다. 또한, 이들 데이타는 특수한 구성 프로그램(special configuration program)이 수행될 때마다 NVRAM(74)에 저장된다. 구성 프로그램의 목적은 전력이 시스템으로 부터 제거될 때 이 시스템의 구성을 특징지우는 값을 NVRAM(76)으로 저장하는데 있다.
포트 A 및 포트 B 가 키보드/마우스 제어기(84)에 접속된다. 이들 포트는 PC키보드 및 마우스를 PC 시스템에 접속하는데 사용된다. RS232 커넥터가 RS232 어댑터 장치(76)에 접속된다. 선택사양인 ASCII 터미날이 이 커넥터를 통해 시스템에 접속될 수 있다.
퍼스널 컴퓨터(10)는 IBM PS/2 컴퓨터 혹은 IBM RISC SYSTEM/6000 컴퓨터와 같은 임의의 적당한 컴퓨터를 활용하여 구현될 수 있다. 상기 두 컴퓨터는 IBM사의 제품이다. "RISC SYSTEM/6000" 및 "PS/2"는 IBM사의 등록 상표이다.
제 3 도를 참조하면, 본 발명의 바람직한 실시예에 따른 객체 지향 시스템의 객체 블럭도가 도시되어 있다. 객체는 데이타 및 이 데이타상에서 동작하는데 필요한 메쏘드를 캡슐화한다. 객체는 제 3 도에 도시된 바와 같이 "도너츠 다이아그램(doughnut diagram)"으로 도시될 수 있다. 객체 데이타는 적용가능한 메쏘드들(304 내지 314)에 의해 둘러싸인 중심부(302)에 위치한다. 데이타(302)는 그 객체의 메쏘드에 의해서만 수정될 수 있다. 메쏘드(301-314)은 다른 객체로 부터 메시지를 수신하므로써 호출된다. 전형적인 객체 지향 시스템은 객체 사이의 메시지를 라우트하는 메시지 라우터(320)를 가질 것이다. 따라서, 객체(330)는 메시지 라우트하는 메시지 라우터(320)로 전송하여 이 메시지(32)가 객체(300)의 메쏘드 C(308)로 전송되도록 하므로써 메쏘드 C9308)를 호출한다.
객체 프레임워크는 애플리케이션 및 시스템 개발자가 주문받은 시스템(delivered system)을 구성하는데 사용할 수 있는 객체 세트(a set of objects)를 제공하기 위해 구성된다. 예를 들면, IBM SOM 프레임워크는 시스템 개발에 사용하기 위한 언어 독립 객체 세트(a language independent set of objects)를 제공한다.
객체는 관련된 클래스로 그루핑(grouping)된다. 클래스 기술(class description)은 각 객체에 의해 유지되는 인스탄스 변수(instance variables) 및 사용가능한 객체 메쏘드의 기술을 포함하여, 클래스내의 모든 객체에 관한 정보를 포함한다. 객체 인스탄스(object instance)는 상기 정보에 기초하여 생성(혹은 "인스탄스화")되며, 객체 클래스에서 정의된 특성을 갖는다. 예를 들면, 객체 클래스 "DOG"는 인스탄스 변수 "dog_type" 및 "dog_name"과 짓기 메시지에 대한 응답을 구현하는 "bark" 메쏘드를 포함한다. 개의 인스탄스, 예를 들면, ROVER는 인스탄스 변수의 유형 및 명칭을 유지할 것이며, 짓기 메시지에 응답할 것이다.
추상적 객체(abstract object)는 메쏘드를 구현함에 있어 세부사항(details)을 제공함이 없이 클래스에 의해 사용되리라 예상되는 인터페이스 및 메쏘드를 기술하는데 사용된다. 추상적 객체는 세부 내용을 구현(implementation detail)을 구현자에게 맡기는 프레임워크에서 유용한다. 구체적 클래스(concrete classes)는 추상적 클래스의 서브클래스로써 생성되어 이들 클래스를 구현한다.
본 발명은 메뉴 구동 방식(menu-driven approach)을 사용하여 메쏘드 호출을 위한 파라미터를 지정하는 트리 다이아그램을 생성한다. "메쏘드(method)"란 용어는 객체 지향 프로그래밍에서 객체 값을 설정하거나, 자신을 디스플레이하거나, 객체 값을 소거하는 등의 객체가 수행할 수 있는 특정 함수를 식별하는데 사용된다. 이 용어는 통상적인 프로그래밍에서 함수 호출, 프로시져 혹은 서브 루틴의 그것과 유사하다.
제 4 도 및 제 5a-5j 도를 참조하면, 시각 프로그래밍 환경에서 메쏘드 파라미터의 지정을 나타낸 도면이 본 발명의 바람직한 실시예에 따라 도시되어 있다. 먼저 제 4 도를 참조하면, 시각 프로그래밍에서 사용되는 각각 프로그래밍 윈도우인 윈도우(400)가 본 발명의 바람직한 실시예에 따라 도시되어 있다. 본 발명이 구현될 수 있는 시각 프로그래밍 환경의 일 예로 IBM 사의 VisualAge를 들 수 있다. 본 발명이 구현될 수 있는 또 다른 예로는, 미합중국, 캘리포니아 90045-5409, 로스앤젤레스, 9841 에어포트 Blvd 에 위치한 DigTalk 사의 Part Workbench를 들 수 있다. "PARTS Workbench"는 DigTalk 사의 등록 상표이다. 윈도우(400)내에는 GUI 제어부를 보유하는 팔레트(402)가 이 윈도우의 좌측편을 따라 도시되어 있다. 이들 제어부는, 상수 텍스트(constant text), 엔트리 필드(entry field), 메뉴(menus), 메뉴 바(menu bars), 푸시 버튼(push button), 다이알(dials), 슬라이더(sliders), 데이타베이스(databases), 코멘트(comments), 링크(links), 리스트(list), 다이알로그(dialogues), 체크 박스(check boxes), 라디오 버튼(radio buttons) 및 GUI 용 프로그램을 생성하는데 일반적으로 사용되는 또 다른 표준 사용자 인터페이스를 포함할 수 있다. 이들 다양한 제어부에 대한 더 상세한 정보는 IBM 사의 System Application Architecture Common User Access Guide Advance Interface Design Reference에서 찾아볼 수 있다. 이들 제어부는 시각 프로그래밍 환경에서의 사용에 관한 정보는 DigTalk 사가 1992년 6월에 발행한 PARTS Workbench User Guide에서 찾아 볼 수 있다.
사용자는 포인터(406)를 사용하여 제어부를 팔레트(402)로부터 구성 영역(build area)(404)로 드래깅 및 드로핑하므로써 프로그램을 제작할 수 있다. "마우스"란 용어는, 본 명세서에서 사용될 때, 운영 체제가 지원하는 유형의 그래픽 포인팅 장치(graphic pointing device)를 나타내며, 마우스, 트랙 볼(track ball), 라이트 펜(light pen), 터치 스크린(touch screen) 등을 포함하나 이에 한정되는 것은 아니다. 포인팅 장치는 전형적으로 데이타 프로세싱 시스템의 사용자가 데이타 프로세싱 시스템의 GUI와 상호작용하는데 사용된다. "포인터"는 마우스 및 다른 유사 장치에 의해 제어되는 아이콘 이미지(iconic image)를 나타내며, 데이타 프로세싱 시스템의 비디오 디스플레이상에 디스플레이되어 선택되거나 조절될 수 있는 아이콘, 메뉴 등을 시각적으로 가리킨다.
제어부는 제 4 도 및 제 5a-5j 도에 도시된 화살표와 같이, 링크를 사용하여 접속될 수 있다. 소스 혹은 목표 객체를 조작할 때 선택할 수 있는 제어부는 GUI내에서 사용자에게 디스플레이된다. 각 링크는 화살표의 꼬리부분에 위치하는 소스 객체와 화살표의 머리 부분에 위치하는 목표 객체 사이의 관계를 나타낸다. 전형적인 관계는 이벤트-동작 관계이다. 즉, 결과적인 프로그램이 실행되고, 사용자가 포인팅 장치를 이용하여 객체상에서 클릭하는 등의 소정의 이벤트가 소스객체상에 발생할 때, 엔트리 필드와 같은 목표 객체에 의한 동작이 수행된다.
도시된 실시예에서, 프로그램을 구성하는 사용자는 제어부(408, 410)를 구성영역(404)에서 드로깅 및 드로핑했다. "Dolt" 로 표시된 제어부(408)는 소스 객체이며, "TotalField"로 표기된 제어부(410)는 목표 객체이다. 이들 두 객체는 링크(412)를 통해 접속되어 있다. 특히, 제어부(408)는 제어부(410)상의 동작을 트리거(trigger)하기 위해 사용되는 푸시 버튼이며, 본 발명의 바람직한 실시예에 따른 엔트리 필드이다. 제 5a-5j 에 도시된 특정 실시예에서는 제어부(408)상의 어느 이벤트가 제어부(410)상의 어느 동작을 트리거하는데 사용되는지를 지정하는 메쏘드 및 이 동작을 위한 지정 파라미터가 본 발명의 바람직한 실시예에 따라 도시되어 있다. 사용자가 링크(412)를 이용하여 제어부(408,410)사이의 접속을 생성한 후, 사용자에게 윈도우(414)가 제시되며, 이 윈도우는 본 발명의 바람직한 실시예에 따라 동작, 이벤트 및 파라미터를 지정하는데 사용되는 "트리 윈도우"이다.
윈도우(414)는 본 발명의 바람직한 실시예에 따라 객체 및 파라미터를 나타내기 위해 제어 아이콘을 디스플레이한다. 트리 구조는 제 5a-5i도를 참조하면 알 수 있는 바와 같이 아이콘에 의해 디스플레이되는 파리미터와 객체 사이의 연관을 제공한다. 이 트리 구조에서는 제어 아이콘으로 디스플레이된 다수의 노드가 제공되며, 여기서 하나의 노드는 루트 노드(root node)이고 나머지 노드는 서브트리(subtree)라 일컬어지는 분리된 세트(disjoint set)로 분할되며, 이들 서브트리는 자체로 하나의 트리를 형성한다. 서브 트리는 본 발명의 바람직한 실시예에 따라 확장(expand)될 수도 있고 트리의 상부 노드로 부터 붕괴(collapse)될 수도 있다.
제 5a 도를 참조하면, 제어 아이콘(408)(Dolt 버튼), 제어 아이콘(410)(TotalField) 및 링크(412)가 윈도우(414)내에 도시되어 있다. 또한, 제어 아이콘(410)은 자신과 연관된 제 2 제어 아이콘 (416)을 포함한다. 도시된 실시예에서, 윈도우(414)는 윈도우(400)(도시되지 않음)를 겹쳐서 상단 부분에 나타나며, 윈도우(400)에서의 접속은 제 4 도에서 이루어졌다. 초기에, 윈도우(414)는 제어 아이콘(408)명칭 DoltButton 이 제어 아이콘(408)과 연관도니 디폴트 이벤트(413)(제 5 도에서는 "clicked")를 나타내며, 이 디폴트 이벤트에 대해 동작이 정의되게 된다. 또한, 윈도우(414)는 요구되는 동작을 수행할 제어 아이콘(410)의 명칭 즉 TotalField와 제어 아이콘(416)과 연관된 디폴트 동작(415)의 명칭 "clear"를 포함한다.
윈도우(414)에는 또한 링크(412)가 도시되며, 이 링크는 제어 아이콘(408,410)을 접속하여 소스 객체와 목표 객체 사이의 관계를 나타내게 된다. 본 발명의 바람직한 실시예에 따르면, 링크는 사용자의 편이를 위해 제어 아이콘에 의해 도시된 두 객체 사이의 관계를 강화하는데 사용되며, 본 발명에 있어서 반드시 필요한 것은 아니다.
제 5b 도를 참조하면, 사용자는 포인터(406)을 사용하여 디폴트 이벤트(413)를 선택하였는데, 이는 동작이 정의되고 있는 이벤트를 변경하고자 함을 나타낸다. 팝 업 메뉴(418)가 사용자에게 디스플레이되어 제어 아이콘(408)에 의해 도시된 소스 객체가 반응할 수 있는 가능한 이벤트를 리스트해준다. 팝 업 메뉴(418)는 "clicked", "pressed", "released" 및 "new event"를 포함한다. 사용자는 팝 업 메뉴로 부터 제 5B 도에 도시된 "pressed"등을 선택할 수 있다.
다음, 제 5c 도를 참조하면, 사용자는 목표 객체와 연관된 디폴트 객체 메쏘드(415)를 선택하였는데, 이에 의해 팝 업 메뉴(420)가 사용자에게 디스플레이된다. 팝 업 메뉴(420)는 "clear" getValue", "setArea" 및 "setValue" 와 같은 객체 TotalField에 대한 또 다른 동작들의 리스트를 포함하다. 이 시점에서, 사용자는 특정 동작을 선택하는 대신 객체 TotalField상에서 트리거될 수 있는 이벤트를 조사하기로 결정한다. 즉, 사용자가 객체에 대해 요구할 수 있는 하나의 동작은 특정 이벤트가 이 객체상에서 발생한 것을 시뮬레이트(simulate)하는 것이다.
제 5d 도를 참조하면, 사용자는 제어 아이콘(416)을 선택하였으며, 그 결과 팝 업 메뉴(422)가 사용자에게 디스플레이된다. 이 팝 업 메뉴는 다음의 리스트가 목표 객체가 수행할 수 있는 동작의 리스트(팝 업 메뉴(420))일 것인지 혹은 목표 객체가 응답할 수 있는 이벤트 리스트(제 5E 도에 도시된 팝 업 메뉴(424)일 것인지를 사용자가 지정할 수 있도록 해준다. 제 5E 도를 참조하면, 사용자는 제 5D 도의 팝 업 메뉴(422)에서 이벤트 메뉴를 선택하였으며 이에 따라, 팝 업 메뉴(424)가 도시되어 객체 TotalField가 응답할 수 있는 이벤트의 리스트가 디스플레이된다. 이 리스트는 "cleared", "entered" 및 "tabbed" 이벤트를 포함한다.
제 5f 도를 참조하면, 사용자는 이벤트를 사용하지 않기로 선택하였고 대신 전 단계로 복귀하여 팝 업 메뉴(422)로 부터 동작 메뉴를 선택하였다. 따라서, 제 5c 도의 팝 업 메뉴(420)가 디스플레이된다. 동작 "setArea"가 선택되어 그 결과 제 5f 도의 디폴트 메쏘드(415)내에 setArea 명칭이 디스플레이된다. 또한, setArea 동작에 필요한 파라미터의 리스팅이 제어 아이콘(426, 428, 430 및 434)과 함께 디스플레이 된다. 제어 아이콘(426)은 파라미터 x와 연관되어, 제어 아이콘(428)은 파리미터 y와 연관되고, 제어 아이콘(430)은 파라미터 w와 연관되고, 제어 아이콘(432)은 파리미터 h와 연관되며, 제어 아이콘(434)은 setArea 영역의 제어 아이콘(432)은 파라미터 h와 연관되며, 제어 아이콘(434)은 setArea 영역의 색상과 연관된다. 또한, 엔트리 필드(436, 438, 440, 442 및 444)도 디스플레이된다. 도시된 실시예에서, 요구되는 파라미터는 위치(x 및 y), 크기(w 및 h) 및 색상을 포함한다.
이들 파라미터 각각은 사용자에 의해(1) 엔트리 필드(436)에 의해 디스플레이되는 상수 "10"와 같은 특정한 값을 입력한다든지; (2) 특정한 값을 복귀시키는 함수(function)혹은 서브루틴(subroutine)의 명칭을 지정한다든지; (3) 특정한 값을 복귀시키는 동작을 제공하는 객체의 명칭을 사용자가 지정한다든지 ; (4) 특정한 값을 복귀시키는 사용자 작성 스크립트(user-written script)를 지정하는 등의 다수의 방법에 제공될 수 있다. 제 5f 도의 도시된 실시예에서는, 각 파라미터에 대한 디폴트 값은 상수인 것으로 도시되어 있다.
특정한 값을 복귀시키기 위해 또 다른 다양한 방법이 사용될 수도 있음을 이해해야 한다.
제 5g 도를 참조하면, 사용자는 또 다른 객체를 사용하여 제어 아이콘(430)과 연관된 폭 파라미터 w 를 지정하기로 결정하였다. 사용자는 제어 아이콘(430)을 선택하였으며, 이에 따라 팝 업 메뉴(446)가 사용자에게 디스플레이된다. 이 팝 업 메뉴는 본 발명의 바람직한 실시예에 따라 w에 대한 파라미터를 지정하는 여러 다른 방법(alternative methods)들을 디스플레이한다.
다음 제 5h 도를 참조하면, 사용자는 동작 팝 업 메뉴(446)로 부터 동작을 선택하였고, 이에 따라 엔트리 필드(440)내의 상수 "10"은 이 객체의 디폴트 객체이름과 디폴트 동작 이름으로 대치되었다. 이들 명칭 각각은 팝 업 리스트의 구성요소로서 사용자가 이 명칭을 선택할 때 노출된다. 본 발명의 바람직한 실시예에 따르면, 폭 파라미터 w 에 적절한 값을 복귀시키는 여러 다른 객체 및 동작만으로 구성된 리스트가 디스플레이될 수도 있다. 제 5i 도를 참조하면, 디폴트는 Dolt 버튼 객체 및 GetWidth 동작으로서 설정되었다. 제 5i 도에서는, Dolt 버튼을 하나의 선택으로서 포함하는 팝 업 메뉴(440)가 디스플레이된다. 팝 업 메뉴(440)에서는 단지 두 객체의 명칭만이 나타나는데, 그 이유는 윈도우(400)에서의 시각 프로그래밍 시스템에서 이제까지 단지 두 객체만이 정의되었기 때문이다.
사용자가 더 이상 변경을 가하지 않는다면, 결과적인 실행 시간 동작은 아래와 같이 정의된다.
Dolt 버튼이 눌러지면, TotalField는 그의 x 및 y 값이 모두 "10"이 될 것이고, 그 폭은 Dolt 버튼의 폭과 같이 설정될 것이며, 높이는 "100"으로 설정되고, 색상은 "청색"으로 설정될 것이다.
전체적인 효과는, Dolt 버튼의 폭이 시간에 따라 가변적이라면, 버튼이 눌려질 때 마다 TotalField 는 버튼과 동일한 폭이 될 것이다. 그 결과, 사용자는 임의의 통상적인 언어 지향 프로그래밍 방식을 사용하지 않고도 "프로그램"을 생성한 것이된다.
다음 제 5j 도를 참조하면, 제어부(443)는 NowButton과 연관된다. 이 도면은 서브트리를 허용하는 본 발명의 재귀적인 속성(recursive nature)를 나타낸다. NowButton 객체는 트라이앵글(triangle)이라 불리는 동작과 연관된 제어부(447)를 포함한다. 이 동작은 연관된 두 파라미터 h 및 I를 갖는다. 제어부(448, 450)는 이들 파라미터와 연관되어 디스플레이되며, 제어부(443)에 접속된다.
제 6a 도 및 6b 도를 참조하면, 시각 프로그래밍 환경에서 메쏘드 파라미터를 지정하는 프로세스의 흐름도가 본 발명의 바람직한 실시예에 따라 도시되어 있다.
이 프로세서는 메쏘드 파라미터 지정을 위해 사용자에게 트리 윈도우를 디스플레이하므로써 시작된다(단계 600). 이후, 프로세스는 사용자 선택을 획득하게 된다(단계 602). 이후, 프로세스는 소스 객체가 선택되었는지를 판정한다(단계 604). 소스 객체가 선택되었다면, 소스 이벤트 리스트가 디스플레이된다(단계 606). 이후, 프로세스는 사용자가 새로운 소스 이벤트를 선택할 수 있게 해준다(단계 608). 프로세스는 이후 단계(602)로 복귀되어 다른 사용자 선택을 수행하게 된다.
단계(604)를 다시 참조하면, 소스 객체가 선택되지 않았다면, 프로세스는 목표 이벤트가 설정되었는지를 판정한다(단계 610). 목표 이벤트가 사용자에 의해 선택되었다면, 목표 이벤트 리스트가 사용자에게 디스플레이된다(단계 612). 프로세스는 이후 사용자가 새로운 목표 이벤트를 선택할 수 있게 해준다(단계 614). 프로세스는 이후 추가적인 사용자 선택을 위해 단계(602)로 복귀하게 된다.
단계(610)를 다시 참조하면, 목표 이벤트가 선택되지 않았다면, 프로세스는 목표 메쏘드가 선택되었는지를 판정한다(단계 616). 목표 메쏘드가 설정되지 않았다면, 동작/이벤트(action/event:AE) 버튼이 선택되었는지를 판정한다(단계 618). 동작/이벤트 버튼이 선택되었다면, 프로세스는 동작과 이벤트 사이에서 목표 리스트를 토글(toggle)시킨다(단계 620). 프로세스는 이후 단계(604)로 복귀한다. 단계(618)를 다시 참조하면, 동작/이벤트 버튼이 선택되지 않았다면, 프로세스는 붕괴/확장(CE) 버튼이 선택되었는지에 대한 판정을 수행하게 된다(단계 622). CE 버튼이 선택되었다면, 프로세스는 선택된 부분 아래의 트리를 붕괴시키거나 혹은 확장시킬 것이며(단계 624) , 프로세스는 사용자 선택을 획득하기 위해 단계(602)로 복귀할 것이다. 단계(622)를 다시 참조하면, CE 버튼이 선택되지 않았다면, 프로세스는 선택이 이루어지지 않았음을 나타내고, 다음 사용자 이벤트를 획득하며(단계 626), 이후 프로세스는 종결된다.
단계(616)를 참조하면, 목표 메쏘드가 선택되었다면, 프로세스는 메쏘드 리스트를 디스플레이할 것이다(단계 628). 이후, 프로세스는 사용자가 새로운 메쏘드를 선택할 수 있게 해주며(단계 630), 이 메쏘드 및 사용자게 의해 선택된 이 새로운 메쏘드와 연관된 파라미터를 디스플레이한다(단계 632). 프로세스는 이후 디스플레이된 메쏘드 및 파라미터와 연관된 사용자 선택을 획득한다(단계 634). 옵션 버튼이 선택되었는지에 대한 판정이 이루어진다(단계 636). 옵션 버튼이 선택되었다면, 옵션 리스트가 사용자에게 디스플레이된다(단계 638). 프로세스는 이후 이 옵션 리스트로 부터 사용자 선택을 획득한다(단계 640).
이후, 프로세스는 옵션 "동작(action)"이 선택되었는지를 판정한다(단계 642). 이 판정 결과가 "예"이면, 프로세스는 디폴트 객체 및 메쏘드를 디스플레이한다(단계 644). 다음, 프로세스는 사용자가 디폴트 객체를 선택하였는지를 판정한다(단계 646). 사용자가 디폴트 객체를 선택하였다면, 프로세스는 사용자가 다른 객체를 선택하도록 허용하며(단계 648), 프로세스는 단계(634)로 복귀하여 또다른 사용자 선택을 획득한다. 사용자가 디폴트 객체를 선택하지 않았다면, 프로세스는 디폴트 메쏘드가 선택되었는지를 판정한다(단계 650). 사용자가 디폴트 메쏘드를 선택하였다면, 프로세스는 사용자가 다른 메쏘드를 선택할 수 있게 해주며(단계 652), 프로세스는 또 다른 사용자 선택을 획득하기 위해 단계(634)로 복귀한다.
다시 단계(642)를 참조하면, 사용자가 동작 옵션(action option)을 선택하지 않았다면, 프로세스는 사용자가 상수 옵션(constant option)을 선택하였는지를 판정한다. 사용자가 상수 옵션을 선택하였다면, 프로세스는 사용자가 새로운 상수를 입력할 수 있게 해주며(단계 656), 프로세스는 이후 단계(602)로 복귀된다. 단계(654)를 다시 참조하면, 사용자가 상수 옵션을 선택하지 않았다면, 프로세스는 스크립트 옵션이 선택되었다고 가정하며, 사용자가 함수 혹은 스크립트 명칭을 입력하도록 허용하고, 프로세스는 단계(602)로 복귀한다.
단계(636)를 다시 참조하면, 옵션 아이콘이 사용자에 의해 선택되지 않았다면, 프로세스는 파라미터 값이 선택되었는지를 판정한다. 파라미터 값이 선택되지 않았다면, 프로세스는 단계(634)로 복귀하여 사용자 선택을 획득한다. 파라미터 값이 선택되었을 경우, 프로세스는 사용자에 의해 선택된 파라미터 유형을 판정한다(단계 662). 사용자는 파라미터 유형으로서 메쏘드, 상수 또는 함수 혹은 스크립트를 선택할 수 있다. 상수가 파라미터 유형으로 선택되었다면, 프로세스는 사용자가 새로운 상수를 입력할 수 있게 해주며, 이후 단계(602)로 복귀한다. 파라미터 유형으로서 함수 혹은 스크립트를 선택하면 프로세스는 사용자가 함수 혹은 스크립트 명칭을 입력할 수 있게 해주며(단계 658), 프로세스는 이후 단계(602)로 복귀한다. 파라미터 유형으로서의 메쏘드 선택의 결과 프로세스는 단계(628)로 복귀하며, 이전에 도시된 바와 같이 메쏘드 리스트를 디스플레이 한다.
시각 프로그래밍 시스템에서 메쏘드 파라미터를 지정하기 위한 의사 코드(Pseudo code)가 별첨부에 예시되어 있다. 제 4, 5a-5i 및 6a-6b 도는 제 1 도 및 제 2 도에 도시된 데이타 프로세싱 시스템 분야의 당업자에 의해 구현될 수 있다. 본 발명의 프로세스는 또한 데이타 프로세싱 시스템에 의해 판독가능한 프로그램 저장 장치(program storage device)내에서 구현될 수 있다. 프로그램 저장장치는 하드 디스크 드라이브, 플로피 디스크, 광 디스크(optical disk), ROM 및 EPROM 과 같은 여러 유형을 취할 수 있으며, 이들 장치는 당업자에게는 잘 알려져 있다. 프로그램 저장 장치상에 저장된 프로세스는 데이타 프로세싱 시스템에 의해 프로그램 저장 장치가 사용되어 활성화되기 전까지는 휴면상태(dormant)로 존재하게 된다. 예를 들면, 본 발명의 데이타 프로세싱 시스템 실행가능 인스트럭션을 보유하는 하드 드라이브가 데이타 프로세싱 시스템에 접속될 수 있거나 본 발명의 데이타 프로세싱 시스템 실행가능 인스트럭션을 보유하는 플로피 디스크가 데이타 프로세싱 시스템내의 플로피 디스크내에 삽입될수 있거나; 혹은 본 발명의 데이타 프로세싱 시스템 실행가능 인스트럭션을 포함하는 ROM이 I/O 슬롯에 접속된 카드 혹은 어댑터를 거쳐서 데이타 프로세싱 시스템에 접속될 수 있다.
이상 본 발명이 바람직한 실시예에 따라 구체적으로 설명되었지만, 본 발명은 상기 실시에에 한정되는 것은 아니며, 그 사상 및 범주를 이탈하지 않는 범위내에서 여러 가지로 변경 가능함은 물론이다.
Claims (21)
- 데이타 프로세싱 시스템(a data processing system)에서, 그래픽 사용자 인터페이스(a graphic user interface)를 사용하여 객체 지향 환경(an object oriented environment)에서 프로그램(a program)을 효율적으로 생성하기 위한 방법에 있어서,객체(an object)를 그래픽 방식으로 디스플레이하는 단계 - 상기 객체는 객체 지향 언어(an object-oriented language)로 작성된 메쏘드를 포함하며 상기 메쏘드는 다수의 파라미터(a plurality of parameters)를 가짐 - 와,상기 그래픽 방식으로 디스플레이된 객체의 선택에 응답하여 상기 다수의 파라미터내의 각각의 파라미터를 디스플레이하는 단계 - 각각의 파라미터는 상기 그래픽 방식으로 디스플레이된 객체와 시각적으로 연관됨 - 와,파라미터에 대한 디스플레이된 아이콘(an icon)의 선택에 응답하여, 상기 다수의 파라미터내의 하나의 파라미터에 대한 선택 항목의 리스트(a list of selections)를 디스플레이하는 단계와,상기 선택 항목의 리스트를 사용하여 상기 파라미터의 지정을 허용하는 단계 - 상기 선택 항목의 리스트를 사용하여 지정된 상기 파라미터는 상기 객체에 대한 상기 언어로 상기 메쏘드에 전파됨 - 를 포함하는프로그램 생성 방법.
- 제 1 항에 있어서,객체를 그래픽 방식으로 디스플레이하는 상기 단계는 상기 객체를 나타내기 위해 상기 그래픽 사용자 인터페이스내에 아이콘을 디스플레이하는 단계를 포함하는프로그램 생성 방법.
- 제 2 항에 있어서,각 파라미터를 그래픽 방식으로 디스플레이하는 상기 단계는 상기 다수의 파라미터내의 각 파라미터에 대한 아이콘을 디스플레이하는 단계를 포함하되, 각각의 아이콘은 상기 다수의 파라미터중의 하나를 나타내는프로그램 생성 방법.
- 제 3 항에 있어서,각 파라미터를 그래픽 방식으로 디스플레이하는 상기 단계는 상기 다수의 파라미터에 대한 각각의 아이콘을 트리 구조(a tree structure)로 디스플레이하는 단계를 더 포함하되, 상기 트리 구조내의 각각의 아이콘은 상기 객체를 나타내는 상기 아이콘에 대한 그래픽 접속(a graphical connection)을 갖는프로그램 생성 방법.
- 제 4 항에 있어서,파라미터에 대한 선택 항목의 리스트를 디스플레이하는 상기 단계는 상기 그래픽 사용자 인터페이스내에 팝 업 메뉴(a pop-up menu)를 디스플레이하는 단계를 포함하되, 상기 팝 업 메뉴는 사용자에 의한 선택을 위해 상기 선택 항목의 리스트를 디스플레이하는프로그램 생성 방법.
- 제 4 항에 있어서,파라미터에 대한 선택 항목의 리스트를 디스플레이하는 상기 단계는 상기 선택 항목의 리스트내에 상기 파라미터에 대한 선택 항목으로서 객체 명칭(a name of an object)를 디스플레이하는 단계를 포함하는프로그램 생성 방법.
- 제 4 항에 있어서,파라미터에 대한 선택 항목을 리스트를 디스플레이하는 상기 단게는 상기 선택 항목의 리스트내에 상기 파라미터에 대한 선택 항목으로서 변수(a variable)를 디스플레이하는 단계를 포함하는프로그램 생성 방법.
- 제 4 항에 있어서,파라미터에 대한 선택 항목의 리스트를 디스플레이하는 상기 단계는 상기 선택 항목의 리스트내에 상기 파라미터에 대한 선택 항목으로서 상수(a constant)를 디스플레이하는 단계를 포함하되, 사용자에 의한 상기 상수의 선택은 상기 사용자가 상기 파라미터에 대한 수를 입력하는 것을 허용하는프로그램 생성 방법.
- 그래픽 사용자 인터페이스를 사용하여 객체 지향 환경에서 프로그램을 효율적으로 생성하기 위한 데이타 프로세싱 시스템에 있어서,객체를 디스플레이하는 제 1 디스플레이 수단 - 상기 객체는 객체 지향 언어로 작성된 메쏘드를 포함하며 상기 메쏘드는 다수의 파라미터를 가짐 - 과,상기 그래픽 방식으로 디스플레이된 객체의 선택에 응답하여 상기 다수의 파라미터내의 각 파라미터를 그래픽 방식으로 디스플레이하는 제 2 디스플레이 수단 - 상기 각 파라미터는 상기 그래픽 방식으로 디스플레이된 객체와 시각적으로 연관됨 - 과,파라미터에 대해 디스플레이된 아이콘의 선택에 응답하여, 상기 다수의 파라미터내의 하나의 파라미터에 대한 선택 항목의 리스트를 디스플레이하는 제 3 디스플레이 수단과,상기 선택 항목의 리스트를 사용하여 상기 파라미터의 지정을 허용하는 수단 - 상기 선택 항목의 리스트를 사용하여 지정되는 상기 파라미터는 상기 객체에 대한 상기 언어로 상기 메쏘드에 전파됨 - 을 포함하는데이타 프로세싱 시스템.
- 제 9 항에 있어서,상기 제 1 디스플레이 수단은 상기 객체를 나타내기 위해 상기 그래픽 사용자 인터페이스내에 아이콘을 디스플레이하는 수단을 포함하는데이타 프로세싱 시스템.
- 제 10항에 있어서,상기 제 2 디스플레이 수단은 상기 다수의 파라미터내에 각 파라미터에 대한 아이콘을 디스플레이하는 수단을 포함하되, 각각의 아이콘은 상기 다수의 파라미터 중의 하나를 나타내는데이타 프로세싱 시스템.
- 제 11 항에 있어서,상기 제 3 디스플레이 수단은 상기 다수의 파라미터에 대한 각 아이콘을 트리 구조로 디스플레이하는 수단을 포함하되, 상기 트리 구조내의 각각의 아이콘은 상기 객체를 나타내는 상기 아이콘에 대한 그래픽 접속을 갖는데이타 프로세싱 시스템.
- 제 12 항에 있어서,상기 제 3 디스플레이 수단은 상기 그래픽 사용자 인터페이스내에 팝 업 메뉴를 디스플레이하는 수단을 포함하되, 상기 팝 업 메뉴는 사용자 선택을 위한 상기 선택 항목의 리스트를 디스플레이하는데이타 프로세싱 시스템.
- 제 12 항에 있어서,상기 제 3 디스플레이 수단은 상기 선택 항목의 리스트내에 상기 파라미터에 대한 선택 항목으로서 객체 명칭을 디스플레이하는 수단을 포함하는데이타 프로세싱 시스템.
- 제 12 항에 있어서,상기 제 3 디스플레이 수단은 상기 선택 항목의 리스트내에 상기 파라미터에 대한 선택 항목으로서 변수를 디스플레이하는 수단을 포함하는데이타 프로세싱 시스템.
- 제 12 항에 있어서,상기 제 3 디스플레이 수단은 상기 선택 항목의 리스트내에 상기 파라미터에 대한 선택 항목으로서 상수를 디스플레이하는 수단을 포함하되, 사용자에 의한 상기 상수의 선택은 상기 사용자가 상기 파라미터에 대한 수를 입력하는 것을 허용하는데이타 프로세싱 시스템.
- 데이타 프로세싱 시스템에서, 그래픽 사용자 인터페이스를 사용하여 객체 지향 환경에서 프로그램을 효율적으로 생성하는 방법에 있어서,다수의 객체를 그래픽 방식으로 디스플레이하는 단계 - 상기 객체중 적어도 하나의 객체는 다수의 파라미터를 갖는 메쏘드(a method having a plurality of parameters)을 포함함 - 와,상기 적어도 하나의 객체와 연관하여 상기 적어도 하나의 객체에 대한 상기 다수의 파라미터내의 각각의 파라미터를 선택적으로 디스플레이하는 단계 - 상기 다수의 파라미터는 트리 구조를 사용하여 디스플레이됨 - 와,상기 다수의 파라미터내의 하나의 파라미터의 선택에 응답하여 상기 하나의 파라미터에 대한 소스 리스트(a list of sources)를 디스플레이하는 단계와,상기 소스 리스트를 사용하여 상기 파라미터의 지정을 허용하는 단계 - 상기 파라미터 리스트를 사용하여 지정된 상기 파라미터는 상기 객체에 대한 상기 언어로 상기 메쏘드에 전파됨 - 을 포함하는프로그램 생성 방법.
- 제 17 항에 있어서,다수의 객체를 그래픽 방식으로 디스플레이하는 상기 단계는 각 객체를 나타내기 위해 상기 그래픽 사용자 인터페이스내에 아이콘을 디스플레이하는 단계를 포함하는 프로그램 생성 방법.
- 제 18 항에 있어서,각 파라미터를 선택적으로 디스플레이하는 상기 단계는 상기 트리 구조내에 상기 다수의 파라미터내의 각 파라미터에 대한 아이콘을 디스플레이하는 단계를 포함하되, 각각의 아이콘은 상기 다수의 파라미터중의 하나를 나타내는프로그램 생성 방법.
- 제 19 항에 있어서,파라미터에 대한 소스 리스트를 디스플레이하는 상기 단계는 상기 그래픽 사용자 인터페이스내에 팝 업 메뉴를 디스플레이하는 단계를 포함하되, 상기 팝 업 메뉴는 사용자에 의한 선택을 위해 상기 소스 리스트를 디스플레이하는프로그램 생성 방법.
- 그래픽 사용자 인터페이스를 사용하여 객체 지향 환경에서 프로그램을 효율적으로 생성하는 데이타 프로세싱 시스템에 있어서,다수의 객체를 그래픽 방식으로 디스플레이하는 제 1 디스플레이 수단 - 상기 다수의 객체중 적어도 하나의 객체는 다수의 파라미터를 갖는 메쏘드를 포함함 - 과,상기 적어도 하나의 객체와 연관하여 상기 적어도 하나의 객체에 대한 상기 다수의 파라미터내의 각각의 파라미터를 선택적으로 디스플레이하는 제 2 디스플레이 수단 - 상기 다수의 파라미터는 트리 구조를 사용하여 디스플레이됨 - 과,상기 다수의 파라미터내의 하나의 파라미터의 선택에 응답하여 상기 하나의 파라미터의 소스 리스트를 디스플레이하는 제 3 디스플레이 수단과,상기 소스 리스트를 사용하여 상기 파라미터의 지정을 허용하는 지정 수단 - 상기 파라미터 리스트를 사용하여 지정된 상기 파라미터는 상기 객체에 대한 상기 언어로 상기 메쏘드에 전파됨 - 을 포함하는데이타 프로세싱 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/349,284 | 1994-12-05 | ||
US08/349,284 US5537630A (en) | 1994-12-05 | 1994-12-05 | Method and system for specifying method parameters in a visual programming system |
US08/349,284 | 1994-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960025208A KR960025208A (ko) | 1996-07-20 |
KR100228938B1 true KR100228938B1 (ko) | 1999-11-01 |
Family
ID=23371694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950046451A KR100228938B1 (ko) | 1994-12-05 | 1995-12-04 | 데이타 프로세싱 시스템 및 프로그램 생성방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5537630A (ko) |
JP (1) | JP3256426B2 (ko) |
KR (1) | KR100228938B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100663655B1 (ko) | 1998-07-31 | 2007-01-03 | 소니 유나이티드 킹덤 리미티드 | 데이터 처리 방법 및 데이터 처리 장치 |
KR100694381B1 (ko) | 2004-02-26 | 2007-03-12 | 미츠비시덴키 가부시키가이샤 | 그래피컬 프로그래밍 장치 및 프로그래머블 표시기 |
Families Citing this family (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2692782B2 (ja) | 1993-12-13 | 1997-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オブジェクトをリンクする方法 |
US6014138A (en) * | 1994-01-21 | 2000-01-11 | Inprise Corporation | Development system with methods for improved visual programming with hierarchical object explorer |
US5642511A (en) * | 1994-12-16 | 1997-06-24 | International Business Machines Corporation | System and method for providing a visual application builder framework |
US5668998A (en) * | 1995-04-26 | 1997-09-16 | Eastman Kodak Company | Application framework of objects for the provision of DICOM services |
US5721853A (en) * | 1995-04-28 | 1998-02-24 | Ast Research, Inc. | Spot graphic display element with open locking and periodic animation |
US6678880B1 (en) | 1995-05-08 | 2004-01-13 | Apple Computer, Inc. | System for iteratively designing an object heterarchy in an object-oriented computing environment |
US6266808B1 (en) * | 1995-06-05 | 2001-07-24 | International Business Machines Corporation | Computer program product for enabling the construction of dialogs for commands and templates |
US6543046B1 (en) * | 1995-07-20 | 2003-04-01 | Accenture Llp | Apparatus and method for navigating objects within a computer-implemented object environment |
US6272672B1 (en) * | 1995-09-06 | 2001-08-07 | Melvin E. Conway | Dataflow processing with events |
US5726883A (en) * | 1995-10-10 | 1998-03-10 | Xerox Corporation | Method of customizing control interfaces for devices on a network |
US5822587A (en) * | 1995-10-20 | 1998-10-13 | Design Intelligence, Inc. | Method and system for implementing software objects |
US5764226A (en) * | 1995-12-29 | 1998-06-09 | International Business Machine Corp. | Reusable and modifiable data entry interface part |
US5802334A (en) * | 1996-01-05 | 1998-09-01 | International Business Machines Corporation | Method for displaying object oriented class information and content information |
US6185728B1 (en) * | 1996-01-31 | 2001-02-06 | Inprise Corporation | Development system with methods for type-safe delegation of object events to event handlers of other objects |
US5946485A (en) * | 1996-02-09 | 1999-08-31 | Intervoice Limited Partnership | Enhanced graphical development environment for controlling program flow |
US6091895A (en) * | 1996-03-27 | 2000-07-18 | International Business Machines Corporation | Object oriented central maintenance for programs and scripts |
US6113649A (en) * | 1996-03-27 | 2000-09-05 | International Business Machines Corporation | Object representation of program and script components |
US7987427B1 (en) * | 1996-05-10 | 2011-07-26 | Apple Inc. | Graphical editor for program files |
JP3427918B2 (ja) * | 1996-07-02 | 2003-07-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム開発支援システム及び支援方法 |
JP3441309B2 (ja) * | 1996-09-13 | 2003-09-02 | 株式会社山武 | 図的プログラミングにおける機能オブジェクトの表示方法 |
US5907706A (en) * | 1996-11-12 | 1999-05-25 | International Business Machines Corporation | Interactive modeling agent for an object-oriented system |
US5917498A (en) * | 1996-11-12 | 1999-06-29 | International Business Machines Corporation | Multi-object views in an object modeling tool |
US6011559A (en) * | 1996-11-12 | 2000-01-04 | International Business Machines Corporation | Layout method for arc-dominated labelled graphs |
US5983016A (en) * | 1996-11-12 | 1999-11-09 | International Business Machines Corporation | Execution engine in an object modeling tool |
US5893913A (en) * | 1996-11-12 | 1999-04-13 | International Business Machines Corporation | Method for synchronizing classes, objects, attributes and object properties across an object-oriented system |
US6243763B1 (en) | 1996-11-12 | 2001-06-05 | International Business Machines Corporation | Method for sending a message to a group and the group broadcasts the message to its members or references within an object-oriented system |
US5991536A (en) * | 1996-11-12 | 1999-11-23 | International Business Machines Corporation | Object-oriented tool for registering objects for observation and causing notifications to be made in the event changes are made to an object which is being observed |
US6263486B1 (en) * | 1996-11-22 | 2001-07-17 | International Business Machines Corp. | Method and system for dynamic connections with intelligent default events and actions in an application development environment |
US6104802A (en) | 1997-02-10 | 2000-08-15 | Genesys Telecommunications Laboratories, Inc. | In-band signaling for routing |
US7031442B1 (en) | 1997-02-10 | 2006-04-18 | Genesys Telecommunications Laboratories, Inc. | Methods and apparatus for personal routing in computer-simulated telephony |
US6480600B1 (en) | 1997-02-10 | 2002-11-12 | Genesys Telecommunications Laboratories, Inc. | Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality |
US5913063A (en) * | 1997-02-26 | 1999-06-15 | Oracle Corporation | Drag and drop object subclassing |
US6212672B1 (en) * | 1997-03-07 | 2001-04-03 | Dynamics Research Corporation | Software development system with an executable working model in an interpretable intermediate modeling language |
CN1219252A (zh) | 1997-03-11 | 1999-06-09 | 三菱电机株式会社 | 直观编程方法及其系统 |
US6026233A (en) * | 1997-05-27 | 2000-02-15 | Microsoft Corporation | Method and apparatus for presenting and selecting options to modify a programming language statement |
US6195794B1 (en) | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a component system |
US6182279B1 (en) | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
US6093215A (en) * | 1997-08-12 | 2000-07-25 | International Business Machines Corporation | Method and apparatus for building templates in a component system |
US6331864B1 (en) * | 1997-09-23 | 2001-12-18 | Onadime, Inc. | Real-time multimedia visual programming system |
US6711611B2 (en) | 1998-09-11 | 2004-03-23 | Genesis Telecommunications Laboratories, Inc. | Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure |
US6985943B2 (en) | 1998-09-11 | 2006-01-10 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center |
US6898782B1 (en) | 1997-10-14 | 2005-05-24 | International Business Machines Corporation | Reference-based associations using reference attributes in an object modeling system |
US6097887A (en) | 1997-10-27 | 2000-08-01 | Kla-Tencor Corporation | Software system and method for graphically building customized recipe flowcharts |
US5999730A (en) * | 1997-10-27 | 1999-12-07 | Phoenix Technologies Limited | Generation of firmware code using a graphic representation |
USRE46528E1 (en) | 1997-11-14 | 2017-08-29 | Genesys Telecommunications Laboratories, Inc. | Implementation of call-center outbound dialing capability at a telephony network level |
US5943048A (en) * | 1997-11-19 | 1999-08-24 | Microsoft Corporation | Method and apparatus for testing a graphic control area |
US6256772B1 (en) * | 1997-11-24 | 2001-07-03 | International Business Machines Corporation | Multilingual hierarchial scripting environment |
JP2000020424A (ja) * | 1998-06-26 | 2000-01-21 | Class Technology:Kk | アプリケーション間通信システム、アプリケーション間通信方法、及びアプリケーション間通信方法を記録したコンピュータ読み取り可能な記録媒体 |
US7907598B2 (en) | 1998-02-17 | 2011-03-15 | Genesys Telecommunication Laboratories, Inc. | Method for implementing and executing communication center routing strategies represented in extensible markup language |
US6332154B2 (en) | 1998-09-11 | 2001-12-18 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface |
USRE46153E1 (en) | 1998-09-11 | 2016-09-20 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment |
US6407761B1 (en) | 1999-05-10 | 2002-06-18 | Sap Aktiengesellschaft | System and method for the visual customization of business object interfaces |
US6931625B1 (en) * | 1999-10-05 | 2005-08-16 | Borland Software Corporation | Method and system for collapsing a graphical representation of related elements |
US6624829B1 (en) * | 1999-10-29 | 2003-09-23 | Agilent Technologies, Inc. | System and method for specifying trigger conditions of a signal measurement system using hierarchical structures on a graphical user interface |
US7929978B2 (en) | 1999-12-01 | 2011-04-19 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network |
AU2001239976A1 (en) * | 2000-03-02 | 2001-09-12 | Wind River Systems, Inc. | System and method for common code generation |
US7009626B2 (en) * | 2000-04-14 | 2006-03-07 | Picsel Technologies Limited | Systems and methods for generating visual representations of graphical data and digital document processing |
WO2001086592A2 (en) * | 2000-05-09 | 2001-11-15 | Hnc Software Inc. | Approach for generating rules |
US7127704B2 (en) * | 2000-06-02 | 2006-10-24 | Sun Microsystems, Inc. | Interactive software engineering tool with support for embedded lexical contexts |
US6782528B1 (en) | 2000-06-16 | 2004-08-24 | International Business Machines Corporation | Method and system for visual programming using a relational diagram |
AU2002238152A1 (en) * | 2000-09-02 | 2002-03-22 | Emageon, Inc. | Methods and apparatus for streaming dicom images through data element sources and sinks |
US7150007B2 (en) * | 2000-09-11 | 2006-12-12 | Microsoft Corporation | Universal routine for reviewing and exercising software objects |
US6751787B1 (en) * | 2000-10-13 | 2004-06-15 | Intervoice Limited Partnership | Graphical programming language for representations of concurrent operations |
US20020057269A1 (en) * | 2000-11-15 | 2002-05-16 | Barber Glenn A. | Method and apparatus for identifying the selection and exclusion of elements of complex sets |
US6772408B1 (en) * | 2000-11-22 | 2004-08-03 | Hyperion Solutions Corporation | Event model using fixed-format text strings to express event actions |
US7000199B2 (en) * | 2001-05-09 | 2006-02-14 | Fairisaac And Company Inc. | Methodology for viewing large strategies via a computer workstation |
AUPR605901A0 (en) * | 2001-07-03 | 2001-07-26 | Choo, Yun Peng | Grouped assembler for machine code |
US7337430B2 (en) * | 2001-07-20 | 2008-02-26 | The Mathworks, Inc. | Optimized look-up table calculations in block diagram software |
US7117479B2 (en) * | 2001-10-01 | 2006-10-03 | Sun Microsystems, Inc. | Language-sensitive whitespace adjustment in a software engineering tool |
EP1343079A1 (de) * | 2002-03-07 | 2003-09-10 | Infix Software-Systeme GmbH | Verfahren, Software-Produkt und System zur universellen computergestützen Informationsverarbeitung |
US20040003374A1 (en) * | 2002-06-28 | 2004-01-01 | Van De Vanter Michael L. | Efficient computation of character offsets for token-oriented representation of program code |
US7386834B2 (en) * | 2002-06-28 | 2008-06-10 | Sun Microsystems, Inc. | Undo/redo technique for token-oriented representation of program code |
US20040003373A1 (en) * | 2002-06-28 | 2004-01-01 | Van De Vanter Michael L. | Token-oriented representation of program code with support for textual editing thereof |
EP1391815A1 (en) * | 2002-08-22 | 2004-02-25 | Abb Research Ltd. | Method and system for filtering aspects in structures of a software system |
US7272818B2 (en) | 2003-04-10 | 2007-09-18 | Microsoft Corporation | Creation of an object within an object hierarchy structure |
WO2004097627A2 (en) * | 2003-05-01 | 2004-11-11 | Maz Laboratory | A method of representing data flow between programming objects in a hierarchical display |
US20040225998A1 (en) * | 2003-05-06 | 2004-11-11 | Sun Microsystems, Inc. | Undo/Redo technique with computed of line information in a token-oriented representation of program code |
US20040225997A1 (en) * | 2003-05-06 | 2004-11-11 | Sun Microsystems, Inc. | Efficient computation of line information in a token-oriented representation of program code |
US7681112B1 (en) | 2003-05-30 | 2010-03-16 | Adobe Systems Incorporated | Embedded reuse meta information |
US7165238B2 (en) | 2003-06-06 | 2007-01-16 | Intentional Software Corporation | Method and system for organizing and manipulating nodes by category in a program tree |
US20050044527A1 (en) * | 2003-08-22 | 2005-02-24 | Gerardo Recinto | Code Units based Framework for domain- independent Visual Design and Development |
US20050096950A1 (en) * | 2003-10-29 | 2005-05-05 | Caplan Scott M. | Method and apparatus for creating and evaluating strategies |
US20050114832A1 (en) * | 2003-11-24 | 2005-05-26 | Microsoft Corporation | Automatically generating program code from a functional model of software |
US8291375B2 (en) * | 2004-03-29 | 2012-10-16 | Sybase, Inc. | Attribute-based component programming system and methodology for object-oriented languages |
US20050251796A1 (en) * | 2004-05-07 | 2005-11-10 | International Business Machines Corporation | Automatic identification and reuse of software libraries |
EP1610219A1 (de) * | 2004-06-23 | 2005-12-28 | Renner, Peter | Programmiersystem |
US8068103B2 (en) * | 2004-06-24 | 2011-11-29 | Apple Inc. | User-interface design |
US8130237B2 (en) * | 2004-06-24 | 2012-03-06 | Apple Inc. | Resolution independent user interface design |
US8566732B2 (en) | 2004-06-25 | 2013-10-22 | Apple Inc. | Synchronization of widgets and dashboards |
US8453065B2 (en) | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US8239749B2 (en) | 2004-06-25 | 2012-08-07 | Apple Inc. | Procedurally expressing graphic objects for web pages |
US7546543B2 (en) | 2004-06-25 | 2009-06-09 | Apple Inc. | Widget authoring and editing environment |
US7761800B2 (en) | 2004-06-25 | 2010-07-20 | Apple Inc. | Unified interest layer for user interface |
US7490295B2 (en) | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US20060149301A1 (en) * | 2005-01-05 | 2006-07-06 | Claus Michael J | Phacoemulsification system utilizing graphical user interfaces for adjusting pulse parameters |
US8140975B2 (en) | 2005-01-07 | 2012-03-20 | Apple Inc. | Slide show navigation |
US7471646B2 (en) | 2005-01-10 | 2008-12-30 | Microsoft Corporation | System and methods for inline property editing in tree view based editors |
US8543931B2 (en) | 2005-06-07 | 2013-09-24 | Apple Inc. | Preview including theme based installation of user interface elements in a display environment |
CN101203862B (zh) * | 2005-06-28 | 2011-03-23 | 埃克森美孚上游研究公司 | 用于油井管理编程的高级图形编程语言和工具 |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US7954064B2 (en) | 2005-10-27 | 2011-05-31 | Apple Inc. | Multiple dashboards |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US7707514B2 (en) | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
US9008075B2 (en) | 2005-12-22 | 2015-04-14 | Genesys Telecommunications Laboratories, Inc. | System and methods for improving interaction routing performance |
US7605815B1 (en) | 2006-01-03 | 2009-10-20 | Emc Corporation | Selection representation methods applied to logical groupings |
US7526495B2 (en) * | 2006-01-03 | 2009-04-28 | Emc Corporation | Real-time construction of a selection representation for items in tree structures |
US7620646B1 (en) | 2006-01-03 | 2009-11-17 | Emc Corporation | Real-time construction of a selection representation for items in tree structures |
US7574445B2 (en) * | 2006-01-03 | 2009-08-11 | Emc Corporation | Generating a selection representation for items in tree structures |
US20070186183A1 (en) * | 2006-02-06 | 2007-08-09 | International Business Machines Corporation | User interface for presenting a palette of items |
US8155682B2 (en) * | 2006-05-05 | 2012-04-10 | Research In Motion Limited | Handheld electronic device including automatic mobile phone number management, and associated method |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US20080052623A1 (en) * | 2006-08-22 | 2008-02-28 | Michael Gutfleisch | Accessing data objects based on attribute data |
US7831526B1 (en) | 2006-08-25 | 2010-11-09 | Fair Isaac Corporation | Article and method for finding a compact representation to visualize complex decision trees |
US20080168367A1 (en) * | 2007-01-07 | 2008-07-10 | Chaudhri Imran A | Dashboards, Widgets and Devices |
US9411903B2 (en) * | 2007-03-05 | 2016-08-09 | Oracle International Corporation | Generalized faceted browser decision support tool |
US20080222237A1 (en) * | 2007-03-06 | 2008-09-11 | Microsoft Corporation | Web services mashup component wrappers |
US20080222599A1 (en) * | 2007-03-07 | 2008-09-11 | Microsoft Corporation | Web services mashup designer |
EP2012227A1 (de) * | 2007-07-03 | 2009-01-07 | Peter Renner | Programmieroberfläche zum Programmieren von Computern |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
US8667415B2 (en) | 2007-08-06 | 2014-03-04 | Apple Inc. | Web widgets |
US8156467B2 (en) * | 2007-08-27 | 2012-04-10 | Adobe Systems Incorporated | Reusing components in a running application |
US8312389B2 (en) | 2007-08-31 | 2012-11-13 | Fair Isaac Corporation | Visualization of decision logic |
US8200609B2 (en) * | 2007-08-31 | 2012-06-12 | Fair Isaac Corporation | Construction of decision logic with graphs |
US8266090B2 (en) | 2007-08-31 | 2012-09-11 | Fair Isaac Corporation | Color-coded visual comparison of decision logic |
US8176466B2 (en) | 2007-10-01 | 2012-05-08 | Adobe Systems Incorporated | System and method for generating an application fragment |
EP2085879A1 (de) * | 2008-02-04 | 2009-08-05 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Programmiergerätes, Computerprogramm zur Implementierung des Verfahrens und nach dem Verfahren arbeitendes Programmiergerät oder Programmiergeräte mit einem solchen Computerprogramm |
US9619304B2 (en) | 2008-02-05 | 2017-04-11 | Adobe Systems Incorporated | Automatic connections between application components |
US20110302514A1 (en) * | 2008-03-11 | 2011-12-08 | Creative Information Technology | Method for designing a graphical interface program |
US8656293B1 (en) | 2008-07-29 | 2014-02-18 | Adobe Systems Incorporated | Configuring mobile devices |
US8237716B2 (en) * | 2008-09-08 | 2012-08-07 | Fair Isaac Corporation | Algorithm for drawing directed acyclic graphs |
US8280836B2 (en) | 2008-09-08 | 2012-10-02 | Fair Isaac Corporation | Converting unordered graphs to oblivious read once ordered graph representation |
US8730241B2 (en) * | 2008-09-08 | 2014-05-20 | Fair Isaac Corporation | Techniques for drawing curved edges in graphs |
US8230357B2 (en) * | 2008-12-18 | 2012-07-24 | Microsoft Corporation | Visually processing instance data |
JP2013003596A (ja) * | 2011-06-10 | 2013-01-07 | Sony Corp | 情報処理装置、プログラム及び情報処理方法 |
US9575639B2 (en) * | 2014-02-27 | 2017-02-21 | Ab Initio Technology Llc | Compound controls |
US10073680B2 (en) * | 2014-06-25 | 2018-09-11 | Rakuten, Inc. | Information processing device, information processing method, program, and storage medium |
US10163170B2 (en) * | 2015-08-19 | 2018-12-25 | Sap Se | Method and system for designing a product configuration |
US10025689B2 (en) * | 2016-01-22 | 2018-07-17 | International Business Machines Corporation | Enhanced policy editor with completion support and on demand validation |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4829423A (en) * | 1983-01-28 | 1989-05-09 | Texas Instruments Incorporated | Menu-based natural language understanding system |
US5261042A (en) * | 1986-03-27 | 1993-11-09 | Wang Laboratories, Inc. | Menu management system |
US4914568A (en) * | 1986-10-24 | 1990-04-03 | National Instruments, Inc. | Graphical system for modelling a process and associated method |
US4831524A (en) * | 1986-06-24 | 1989-05-16 | Westinghouse Electric Corp. | Logic diagram compiler/executor |
US5206950A (en) * | 1988-09-23 | 1993-04-27 | Gupta Technologies, Inc. | Software development system and method using expanding outline interface |
US5070534A (en) * | 1988-10-17 | 1991-12-03 | International Business Machines Corporation | Simplified cad parametric macroinstruction capability including variational geometrics feature |
US5237654A (en) * | 1990-04-17 | 1993-08-17 | International Business Machines Corporation | Hierarchical inter-panel process flow control |
US5208910A (en) * | 1990-04-19 | 1993-05-04 | International Business Machines | Menu driven and method system for informing which past selections have caused disabled actions |
US5313574A (en) * | 1990-06-13 | 1994-05-17 | Hewlett-Packard Company | Method for starting processing of an iconic programming system |
US5237691A (en) * | 1990-08-01 | 1993-08-17 | At&T Bell Laboratories | Method and apparatus for automatically generating parallel programs from user-specified block diagrams |
US5327529A (en) * | 1990-09-24 | 1994-07-05 | Geoworks | Process of designing user's interfaces for application programs |
US5377318A (en) * | 1991-02-28 | 1994-12-27 | Hewlett-Packard Company | Line probe diagnostic display in an iconic programming system |
US5293476A (en) * | 1991-03-12 | 1994-03-08 | Hewlett-Packard Co. | System for entering and modifying variable names for terminals of icons in an iconic programming system |
US5339433A (en) * | 1992-11-19 | 1994-08-16 | Borland International, Inc. | Symbol browsing in an object-oriented development system |
US5450540A (en) * | 1992-12-16 | 1995-09-12 | Apple Computer, Inc. | Graphical interface for interacting constrained actors |
-
1994
- 1994-12-05 US US08/349,284 patent/US5537630A/en not_active Expired - Fee Related
-
1995
- 1995-11-28 JP JP30904695A patent/JP3256426B2/ja not_active Expired - Fee Related
- 1995-12-04 KR KR1019950046451A patent/KR100228938B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100663655B1 (ko) | 1998-07-31 | 2007-01-03 | 소니 유나이티드 킹덤 리미티드 | 데이터 처리 방법 및 데이터 처리 장치 |
KR100694381B1 (ko) | 2004-02-26 | 2007-03-12 | 미츠비시덴키 가부시키가이샤 | 그래피컬 프로그래밍 장치 및 프로그래머블 표시기 |
Also Published As
Publication number | Publication date |
---|---|
JP3256426B2 (ja) | 2002-02-12 |
JPH08292880A (ja) | 1996-11-05 |
KR960025208A (ko) | 1996-07-20 |
US5537630A (en) | 1996-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100228938B1 (ko) | 데이타 프로세싱 시스템 및 프로그램 생성방법 | |
US5590330A (en) | Method and system for providing a testing facility in a program development tool | |
US6185728B1 (en) | Development system with methods for type-safe delegation of object events to event handlers of other objects | |
US6804686B1 (en) | System and methodology for providing fixed UML layout for an object oriented class browser | |
CA2149463C (en) | Class library for use in graphics programming | |
US5432903A (en) | Object browsing and a filter interface using a displayed dip switch in an object-oriented development sytem | |
US6968536B2 (en) | Frame component container | |
US7240328B2 (en) | System and method for visual application development without programming | |
US5850548A (en) | System and methods for visual programming based on a high-level hierarchical data flow model | |
US6131185A (en) | Method and system for visually debugging on object in an object oriented system | |
US8856667B2 (en) | Graphical state machine based programming for a graphical user interface | |
US20040031019A1 (en) | Debugger for a graphical programming environment | |
JPH08137646A (ja) | ダイアログ・ボックスの表示方法及びシステム | |
US20050060685A1 (en) | Program generator | |
EP0602845A2 (en) | Message dispatching in an event driven architecture | |
Wielemaker et al. | Programming in XPCE/Prolog | |
JP4339376B2 (ja) | オブジェクト指向カーソル・ツール | |
CA2144878A1 (en) | Dynamic browser system | |
CN112199097B (zh) | 安装包生成方法、装置、计算机设备和存储介质 | |
Myers et al. | The Amulet reference manuals | |
EP0721161A2 (en) | Managing dynamic state variables of reactive objects | |
Ushakov et al. | Visual programming in R-technology: Concepts, systems and perspectives | |
Myers et al. | Debugging Interactive Applications | |
Kacsuk et al. | Enhancing GRADE towards a professional parallel programming environment | |
Chan | Porting an application framework to the X Window System using the X Library |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20020608 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |