KR102021915B1 - 프로그래밍 속성의 그래픽 표현 - Google Patents

프로그래밍 속성의 그래픽 표현 Download PDF

Info

Publication number
KR102021915B1
KR102021915B1 KR1020157008604A KR20157008604A KR102021915B1 KR 102021915 B1 KR102021915 B1 KR 102021915B1 KR 1020157008604 A KR1020157008604 A KR 1020157008604A KR 20157008604 A KR20157008604 A KR 20157008604A KR 102021915 B1 KR102021915 B1 KR 102021915B1
Authority
KR
South Korea
Prior art keywords
data structure
file
graphical representation
graphical
representation
Prior art date
Application number
KR1020157008604A
Other languages
English (en)
Other versions
KR20150063409A (ko
Inventor
다로 이카이
아를렌 앤더슨
Original Assignee
아브 이니티오 테크놀로지 엘엘시
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아브 이니티오 테크놀로지 엘엘시 filed Critical 아브 이니티오 테크놀로지 엘엘시
Publication of KR20150063409A publication Critical patent/KR20150063409A/ko
Application granted granted Critical
Publication of KR102021915B1 publication Critical patent/KR102021915B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Abstract

정보를 표현하기 위한 컴퓨팅 시스템으로서, 정보를 처리하도록 구성되는 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템이 제시된다. 이러한 처리는, 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 데이터 구조를 정의하는 것을 포함한다. 데이터 구조는 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 파일에 저장된다. 처리는, 데이터 구조의 그래픽 표현 및 데이터 구조를 저장하는 파일의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 것을 포함한다. 시각적 다이어그램은 또한, 데이터 구조와 또 다른 데이터 구조 간의 관계의 그래픽 표현, 및 데이터 구조를 저장하는 파일과 다른 데이터 구조를 저장하는 또 다른 파일 간의 관계의 그래픽 표현을 포함한다. 컴퓨팅 시스템은 또한 데이터 구조와 파일의 그래픽 표현 및 데이터 구조의 관계와 파일의 관계의 그래픽 표현을 포함하는 시각적 다이어그램을 표시하기 위한 출력 디바이스를 포함한다.

Description

프로그래밍 속성의 그래픽 표현{GRAPHICALLY REPRESENTING PROGRAMMING ATTRIBUTES}
본 출원은 2012년 9월 28일 출원된 미국 특허 출원 제61/707,343호에 대해 우선권을 주장하며, 이의 전체 내용은 원용에 의해 본원에 포함된다.
본 설명은 프로그래밍 속성을 표현하는 그래프 기반 접근법에 관한 것이다.
복잡한 연산은 종종 지향형 그래프("데이터 흐름 그래프"라 지칭됨)를 통해 데이터 흐름으로 표현될 수 있고, 이러한 연산의 컴포넌트는 그래프의 정점(vertex)과 연관되며 컴포넌트들 간의 데이터 흐름은 그래프의 링크(아크, 에지)에 대응한다. 컴포넌트는 하나 이상의 입력 포트에서 데이터를 수신하고, 이러한 데이터를 처리하며, 하나 이상의 출력 포트로부터 데이터를 제공하는 데이터 처리 컴포넌트, 및 데이터 흐름의 소스 또는 싱크로서 기능하는 데이터세트 컴포넌트를 포함할 수 있다. 이러한 그래프 기반 연산을 구현하는 시스템은 미국 특허 제5,966,072호, 'EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS'에 기술되어 있다. 다양한 타입의 데이터가 그래프의 컴포넌트에 의해 수신, 처리 및 출력될 수 있다. 유사한 처리 기능으로 인하여, 동등한 타입의 데이터가 상이한 애플리케이션을 위해 사용 및 재사용될 수 있다.
일 양상으로서, 정보를 표현하기 위한 방법은, 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 데이터 구조를 정의하는 단계를 포함한다. 데이터 구조는 상기 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 파일에 저장된다. 이러한 방법은 또한, 데이터 구조의 그래픽 표현 및 상기 데이터 구조를 저장하는 상기 파일의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 단계를 포함한다. 시각적 다이어그램은 또한, 상기 데이터 구조와 또 다른 데이터 구조 간의 관계의 그래픽 표현, 및 상기 데이터 구조를 저장하는 상기 파일과 상기 다른 데이터 구조를 저장하는 또 다른 파일 간의 관계의 그래픽 표현을 포함한다.
일 실시예에 따르면 정보를 표현하기 위한 방법이 제시되는데 이러한 방법은, 컴퓨팅 시스템의 프로세서에 의해, 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 제1 데이터 구조를 정의하는 단계 ― 제1 데이터 구조는 제1 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 제1 파일에 저장되고, 제1 데이터 구조는 제2 파일에 저장되는 제2 데이터 구조에 대한 정의에 기초하여 정의됨 ―; 프로세서에 의해, 제1 데이터 구조, 제2 데이터 구조, 제1 파일, 및 제2 파일의 각각의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 단계 ― 각 데이터 구조의 그래픽 표현은 데이터 구조의 식별자의 표현 및 데이터 구조의 하나 이상의 필드 각각의 표현을 포함하며, 각 파일의 그래픽 표현은 파일의 식별자의 표현을 포함하고, 시각적 다이어그램은 또한, 제1 데이터 구조의 그래픽 표현과 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징; 및 제1 파일의 그래픽 표현과 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하고, 제1 그래픽 특징은 제1 데이터 구조가 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며, 제2 그래픽 특징은 제1 파일에 저장된 제1 데이터 구조가 제2 파일에 저장된 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며, 시각적 다이어그램에서, 제1 데이터 구조의 그래픽 표현은 제1 파일의 그래픽 표현의 외부 경계 내에 포함된 시각적 다이어그램의 영역 내에 위치하며, 제2 데이터 구조의 그래픽 표현은 제2 파일의 그래픽 표현의 외부 경계 내에 포함되는 시각적 다이어그램의 영역 내에 위치함 ―; 및 프로세서에 의해, 사용자 인터페이스 상에 시각적 다이어그램을 디스플레이 하게 하는 단계를 포함한다.
일 구현예로서, 제1 파일의 그래픽 표현은 제1 폴리곤(polygon)을 포함하고, 제2 파일의 그래픽 표현은 제2 폴리곤을 포함할 수 있다. 부가적으로, 제1 데이터 구조의 그래픽 표현은 제1 폴리곤 내부 내에 포함되고, 제2 데이터 구조의 그래픽 표현은 제2 폴리곤 내부 내에 포함되는 것이 바람직하다.
다른 양상으로서, 컴퓨터 판독가능 저장 매체는 정보를 표현하기 위한 컴퓨터 프로그램을 저장한다. 컴퓨터 프로그램은 컴퓨팅 시스템으로 하여금 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 데이터 구조를 정의하도록 하기 위한 명령을 포함한다. 데이터 구조는 상기 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 파일에 저장된다. 명령은 또한 컴퓨팅 시스템으로 하여금 데이터 구조의 그래픽 표현 및 상기 데이터 구조를 저장하는 상기 파일의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하도록 한다. 시각적 다이어그램은 또한, 상기 데이터 구조와 또 다른 데이터 구조 간의 관계의 그래픽 표현, 및 상기 데이터 구조를 저장하는 상기 파일과 상기 다른 데이터 구조를 저장하는 또 다른 파일 간의 관계의 그래픽 표현을 포함한다.
또 다른 양상으로, 정보를 표현하기 위한 컴퓨팅 시스템은 정보를 처리하도록 구성되는 적어도 하나의 프로세서를 포함한다. 이러한 처리는 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 데이터 구조를 정의하는 것을 포함한다. 데이터 구조는 상기 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 파일에 저장된다. 처리는 또한, 데이터 구조의 그래픽 표현 및 상기 데이터 구조를 저장하는 상기 파일의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 것을 포함한다. 시각적 다이어그램은 또한, 상기 데이터 구조와 또 다른 데이터 구조 간의 관계의 그래픽 표현, 및 상기 데이터 구조를 저장하는 상기 파일과 상기 다른 데이터 구조를 저장하는 또 다른 파일 간의 관계의 그래픽 표현을 포함한다. 컴퓨터 시스템은 또한, 데이터 구조와 파일의 그래픽 표현 및 상기 데이터 구조의 관계와 상기 파일의 관계의 그래픽 표현을 포함하는 상기 시각적 다이어그램을 표시하기 위한 출력 디바이스를 포함한다.
또 다른 양상으로서, 정보를 표현하기 위한 컴퓨팅 시스템은 처리하기 위한 수단을 포함하며, 이러한 처리는 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 데이터 구조를 정의하는 것을 포함한다. 데이터 구조는 상기 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 파일에 저장된다. 처리는 데이터 구조의 그래픽 표현 및 상기 데이터 구조를 저장하는 상기 파일의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 것을 포함한다. 시각적 다이어그램은 또한, 상기 데이터 구조와 또 다른 데이터 구조 간의 관계의 그래픽 표현, 및 상기 데이터 구조를 저장하는 상기 파일과 상기 다른 데이터 구조를 저장하는 또 다른 파일 간의 관계의 그래픽 표현을 포함한다. 컴퓨팅 시스템은 또한, 상기 데이터 구조와 파일의 그래픽 표현 및 상기 데이터 구조의 관계와 상기 파일의 관계의 그래픽 표현을 포함하는 상기 시각적 다이어그램을 표시하기 위한 수단을 포함한다.
구현예는 다음의 특징 중 임의의 특징 또는 모든 특징을 포함할 수 있다. 파일의 그래픽 표현은, 하나 이상의 데이터 구조 그룹을 정의하고 상기 하나 이상의 데이터 구조 그룹을 저장하기 위한 하나 이상의 새로운 파일을 생성하기 위해 상기 데이터 구조의 그래픽 표현의 조작(manipulating)을 허용하도록 제거가능할 수 있다. 상기 정의된 데이터 구조는 적어도 하나의 프로그래밍 속성을 조정하도록 조작될 수 있다. 상기 정의된 데이터 구조는 적어도 하나의 프로그래밍 속성을 파일에 삽입하기 위해 조작될 수 있다. 적어도 하나의 프로그래밍 속성과 함께 구문(statement)이 상기 파일에 삽입될 수 있다. 데이터 구조를 조작하는 단계는 드래그 앤 드롭 동작을 포함할 수 있다. 상기 정의된 데이터 구조를 조작하는 단계는, 상기 프로그래밍 속성의 계층구조의 내용물을 추가, 삭제 및 편집하는 것 중에서 적어도 하나를 포함할 수 있다. 상기 프로그래밍 속성은 명명된(named) 데이터 타입, 함수 등일 수 있다. 상기 데이터 구조와 상기 다른 데이터 구조 간의 관계는 상기 프로그래밍 속성의 계통(lineage)을 표현할 수 있다.
양상은 다음의 장점 중 하나 이상을 포함할 수 있다.
프로그래밍 속성(예를 들면, 필드, 명명된 데이터 타입, 함수 등)의 그래픽 표현에 의해, 개발자는 속성 세부사항(예컨대, 이용 중인 데이터 타입), 속성 간의 관계(예를 들어, 이전에 정의된 필드를 이용하는 명명된 데이터 타입 구조), 및 속성을 저장하는데 이용되는 파일을 비교적 신속하게 확인할 수 있게 된다. 그래픽 형태로 표시되는 경우, 속성 및 속성을 저장하는 파일 등은, 예를 들어 명명된 데이터 타입 구조를 편집하기 위해 효율적으로 조작될 수 있어, 필요에 따라 변경이 전파될 수 있게 된다.
본 발명의 기타 다른 특징 및 장점은 다음의 설명과 청구 범위로부터 명백해질 것이다.
도 1은 그래프 기반 연산을 실행하기 위한 시스템의 블록도이다.
도 2 내지 6은 데이터 타입 정보를 표시하는 사용자 인터페이스이다.
도 7 내지 12는 데이터 타입 정보에 대한 그래픽 표현을 표시하는 사용자 인터페이스이다.
도 13은 예시적인 프로그래밍 속성 표시 절차의 흐름도이다.
도 1에는 예시적인 데이터 처리 시스템(100)이 도시되어 있으며, 이러한 시스템에서는 데이터 타입, 실행가능한 함수 등과 같은 프로그래밍 속성이 그래픽 방식으로 표시될 수 있어, 예를 들면 평상시의 뷰어가 속성의 내용, 계층구조 및 계통을 효율적으로 결정할 수 있게 된다. 일반적으로 이러한 기능을 제공하기 위해서 시스템(100)은 데이터 소스(102)를 포함하고, 이러한 데이터 소스(102)는 예컨대 저장 디바이스 또는 온라인 데이터 스트림에 대한 연결 등의 데이터의 하나 이상의 소스를 포함할 수 있고, 이러한 소스 각각은 임의의 다양한 저장 포맷(예를 들면, 데이터베이스 테이블, 스프레드시트 파일, 플랫 텍스트 파일, 또는 메인프레임에 의해 이용되는 네이티브 포맷)으로 데이터를 저장할 수 있다. 이러한 예에서는, 실행 환경(104)이 전처리 모듈(106) 및 실행 모듈(112)을 포함한다. 실행 환경(104)은 UNIX 운영 체제 등의 적합한 운영 체제의 제어 하에 하나 이상의 범용 컴퓨터 상에서 호스팅될 수 있다. 예를 들면 실행 환경(104)은, 로컬(예컨대, SMP 컴퓨터 등의 멀티프로세서 시스템), 또는 로컬 분산(예컨대, 클러스터 또는 MPP로 연결되는 다수의 프로세서), 또는 원격, 또는 원격 분산(예컨대, 로컬 영역 네트워크(LAN) 및/또는 광역 네트워크(WAN)를 통해 연결되는 다수의 프로세서), 또는 이들의 임의의 조합인 다수의 중앙 처리 장치(CPU)를 이용하는 컴퓨터 시스템의 구성을 포함하는 다중 노드 병렬 컴퓨팅 환경을 포함할 수 있다.
전처리 모듈(106)은, 예를 들면 다른 모듈에 의한 추가적인 진행을 예상하여, 데이터 소스(102)로부터 데이터를 판독하고 대응되는 처리 동작을 수행한다. 데이터 소스(102)를 제공하는 저장 디바이스는, 실행 환경(104)에 로컬일 수 있고, 예를 들어 실행 환경(104)을 운영하는 컴퓨터에 연결되는 저장 매체(예컨대, 하드 드라이브(108)) 상에 저장될 수 있거나, 또는 실행 환경(104)에 대해 원격일 수 있고, 예를 들면 원격 연결을 통해서 실행 환경(104)을 운영하는 컴퓨터와 통신하는 원격 시스템(예컨대, 메인프레임(110)) 상에서 호스팅될 수 있다.
실행 모듈(112)은, 예를 들어 실행 환경(104)에서 액세스 가능한 데이터 저장 시스템(116)에 저장된 데이터(114)(예컨대, 엔터프라이즈 데이터, 회사 레코드 등)를 처리하기 위해서, 전처리 모듈(106)에 의해 생성되는 처리된 데이터를 이용한다. 데이터 저장 시스템(116)은 또한, 개발자(120)가 데이터 저장 시스템(116)에 저장된 정보를 검토, 편집 등을 할 수 있는 개발 환경(118)에서도 액세스 가능하다. 일부 구성에서는, 필요한 동작을 수행하도록 실행 환경(104)을 준비시키고 조정하는데 개발 환경(118)이 활용될 수 있다. 예를 들어, 개발 환경(118)은 정점들 사이에서 지향된 링크(작업 요소의 흐름을 표현)에 의해 연결되는 정점(컴포넌트 또는 데이터세트를 표현)을 포함하는 데이터 흐름 그래프로서 애플리케이션을 개발하기 위한 시스템일 수 있다. 예를 들면 이러한 환경은 미국 공개 특허 제2007/0011668호, "Managing Parameters for Graph-Based Applications"에 보다 상세하게 기술되어 있으며, 이의 내용은 원용에 의해 본원에 포함된다. 이러한 그래프 기반 연산을 실행하기 위한 시스템은 미국 특허 제5,566,072호, "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS"에 기술되어 있으며, 이의 내용은 원용에 의해 본원에 포함된다. 이러한 시스템에 따라 만들어지는 데이터 흐름 그래프는, 프로세스들 간에 정보를 이동시키기 위해, 그리고 이러한 프로세스들에 대한 실행 순서를 정의하기 위해서, 그래프 컴포넌트에 의해 표현되는 개별 프로세스에 정보를 제공하고 이러한 개별 프로세스로부터 정보를 얻기 위한 방법을 제공한다. 이러한 시스템은 프로세스간 통신 방법을 선정하는 알고리즘을 포함한다(예컨대, 그래프의 링크에 따른 통신 경로는 TCP/IP 또는 UNIX 도메인 소켓을 이용하거나 프로세스들 사이에서 데이터를 전달하기 위해 공유 메모리를 이용할 수 있다).
전처리 모듈(106)은 상이한 형태의 데이터베이스 시스템을 포함하는 다양한 타입의 시스템으로부터 데이터를 수신할 수 있다. 데이터는 가능하게는 널 값을 포함하여 ("속성" 또는 "컬럼"으로도 지칭되는) 각 필드에 대한 값을 갖는 레코드로서 조직화될 수 있다. 먼저 데이터 소스로부터 데이터를 판독할 때, 전처리 모듈(106)은 통상적으로 이러한 데이터 소스에서 레코드에 관한 특정한 초기 포맷 정보로부터 시작한다. 일부 경우에서는, 이러한 데이터 소스의 레코드 구조가 처음에는 알려져 있지 않을 수 있고, 그 대신 데이터 소스의 분석 후에 결정될 수 있다. 레코드에 관한 초기 정보는, 별개 값을 표현하는 비트의 수, 레코드 내에서 필드의 순서, 및 비트로 표현되는 데이터의 타입(예컨대, 스트링, 부호 있는/부호 없는 정수)을 포함할 수 있다.
레코드에서 이용되는 것과 마찬가지로, 실행 환경(104), 개발 환경(118) 등에 의해 수행되는 데이터(예컨대, 레코드) 처리를 위해서 상이한 데이터 타입(예를 들어, 스트링, 정수, 부동 소수 값)이 이용될 수 있다. 예를 들어, 레코드(예컨대, 직원 레코드, 학생 레코드 등)를 처리하기 위해 다양한 유형의 데이터 타입이 정의되고 이용될 수 있다. 이러한 레코드를 처리하기 위해서, 개별 원시 데이터 타입(예컨대, 스트링, 날짜, 일시, 정수, 소수 등)이 함께 이용되어 데이터 타입 구조라 지칭되는 데이터 타입의 조직을 정의하게 될 수 있다. 예를 들어, 다음의 레코드는 한 사람의 속성을 표현하기 위해 4개의 원시 타입을 그룹화한다:
Figure 112015032800924-pct00001
이러한 레코드는 다수의 필드를 포함하고(예컨대, 개인의 이름과 성이 생년월일, 성별 및 사회 보장 번호와 함께 표현됨), 각각의 필드는 명칭과 데이터 타입으로 이루어진다. 도 2를 참조하면, 이러한 레코드는 에디터에 의해 정의될 수 있다. 이러한 예에서, 사용자 인터페이스(200)는 입력 파일로부터 판독되는 데이터의 포맷을 정의하기 위한 에디터를 표시한다. 판독되는 데이터(예컨대, 성, 생년월일, 성별)를 정의하는 것과 함께, 개개의 데이터 타입(예를 들어, 스트링, 날짜, 정수) 및 각 필드의 제한이 정의된다. 이러한 예에서는 레코드 타입이 정보의 5개의 별개 엔트리를 포함하는 것으로 표시되지만, 레코드 타입은 확장 또는 수축될 수 있다. 예를 들어, 보다 많은 데이터가 현재의 데이터와 첨부, 삭제, 조합될 수 있다. 앞선 명령으로부터 계속하여, 레코드 타입은 예를 들어 사업체 및 대응하는 직원의 목록을 나타내도록 내포(nest)될 수 있다:
Figure 112015032800924-pct00002
데이터 타입 구조의 생성 및 명명을 통해서, 둘 이상의 애플리케이션에 대해 동등한 필드 등이 이용될 수 있다(예컨대, 학생 정보, 다수의 회사의 직원에 대한 정렬 정보 등을 표현하기 위해). 도 3을 참조하면, 사용자 인터페이스(300)는 내포형 데이터 타입 정보를 포함하는 데이터 타입 구조를 표시하도록 구현될 수 있다. 이러한 구성에서, 회사와 연관되는 필드가 상부에 정의되고(괄호 302로 표현됨), 직원 정보에 대한 필드는 하부에 정의된다(괄호 304로 표현됨). 예상할 수 있는 바와 같이, 데이터 타입 구조는 매우 다양한 애플리케이션에 대해 정의될 수 있고, 많은 유사한 필드가 사용 및 재사용될 수 있다(예컨대, 학생 정보에 대한 레코드, 직원 정보에 대한 레코드 등을 정의하기 위해서).
도 4를 참조하면, 예를 들어 애플리케이션 개발에 이용되는 데이터 타입 구조를 형성하기 위해 개발자가 적절히 필드를 정의하고 이러한 필드를 그룹화하는 것을 돕기 위해 하나 이상의 기술이 구현될 수 있다. 예를 들어, 사용자 인터페이스(400)와 상호작용함으로써(예컨대, 포인팅 디바이스를 이용하여 필드를 선택), 드롭다운 메뉴(402)가 나타나 애플리케이션에 이용되도록 (개발자에 의해) 잠재적으로 선택될 수 있는 명명된 데이터 타입 구조의 목록을 표시할 수 있다. 드롭다운 메뉴(402)에 표현된 바와 같이, 더 많은 명명된 데이터 타입 구조가 정의됨에 따라, 표시된 목록은 번거로울 정도로 커지고 사용자가 관심 있는 명명된 데이터 타입 구조를 식별하기 위한 탐색이 어려워질 수 있다. 예를 들어, 자주 선택된 명명된 데이터 타입 구조와 함께, 목록은 특정 애플리케이션에 고유한, 많은 수의 덜 자주 이용되는 명명된 데이터 타입 구조를 포함하도록 시간에 걸쳐 늘어날 수 있다. 도면에 예시된 바와 같이, 메뉴(402) 내의 엔트리의 순전한 수에 의해 개발자의 효율성은 대폭 영향을 받게 될 수 있고, 사용자 인터페이스(400)의 이용을 단념하게 될 수도 있다. 나아가, 단지 명칭만이 할당되고 임의의 여타 정보가 부족한 경우(메뉴(402)의 엔트리에 도시된 바와 같이), 많은 명명된 데이터 타입 구조는 중복성(redundant)일 수 있고, (만약 있다면) 다른 명명된 데이터 타입 구조들 사이의 관계에 관해 어떠한 정보도 제공하지 못할 수도 있다.
데이터 타입 구조의 더 많은 관리가능한 표현을 제공하기 위해 하나 이상의 기술 및 방법이 구현될 수 있다. 일례로서, 다수의 상이한 애플리케이션에서 이용되는 데이터 타입 구조는 공통으로 정의될 수 있다. 상기 예로부터, 각 학생에 대한 데이터 타입 구조는 각 비즈니스 직원의 데이터 타입 구조에 상응하고 다음과 같이 공통으로 정의될 수 있다:
Figure 112015032800924-pct00003
이러한 공통된 데이터 타입 구조를 명명함으로써(예컨대, "person_t"), 이렇게 명명된 데이터 타입 구조가 학생 및 직원 애플리케이션 용도의 정보를 수집하는 등의 유사한 목적을 위해 애플리케이션에서 호출(call out)되고 이용될 수 있다. 예를 들어, 명명된 데이터 타입 구조("person_t")는 다음과 같이 정의될 수 있다:
Figure 112015032800924-pct00004
일단 정의되면, 명명된 데이터 타입 구조("person_t")는 각각 비즈니스 직원 및 교실 학생 애플리케이션을 위해 데이터 타입 구조를 정의하는데 이용될 수 있다:
Figure 112015032800924-pct00005
마찬가지로, 새로운 데이터 타입 구조가 다수의 애플리케이션에서 이용되도록 명명될 수 있다. 예를 들어, 명명된 데이터 타입 구조 "person_t"를 이용하는 명명된 데이터 타입 구조(명칭이 "business_t")가 비즈니스 정보를 저장하기 위해 정의될 수 있다:
Figure 112015032800924-pct00006
마찬가지로, 명명된 데이터 타입 구조 "person_t"를 이용하는 명명된 데이터 타입 구조("class_t"라 명명)가 클래스 정보를 저장하기 위해 정의될 수 있다:
Figure 112015032800924-pct00007
다수의 다른 데이터 타입 구조를 정의하는데 공통의 데이터 타입 구조를 이용하는 것으로부터 다양한 이점이 제공될 수 있다. 예를 들어, (포함된 데이터 타입 구조를 조정하기 위해) 2개의 데이터 타입 구조를 개별적으로 조정해야 하는 것보다는, 공통으로 이용되는 명명된 데이터 타입 구조가 한 번 재정의될 수 있다. 이에 따라, 명명된 데이터 타입 구조를 조정함으로써, 데이터 타입 구조들 양자 모두에(그리고 명명된 데이터 타입 구조를 이용하는 임의의 여타 데이터 타입 구조에) 임의의 변경이 반영될 것이다. 이에 의해, 개발자들이 다수의 데이터 구조에 이용되는 명명된 데이터 타입 구조의 단일 인스턴스를 조정하는 것이 가능해져 효율성이 개선될 수 있다. 그러나, 개발자들은 이렇게 전파되는 조정에 계속 주의를 기울여야 한다(예를 들면 개발자가, 포함된 데이터 타입 구조를 이용하는 모든 데이터 타입 구조들보다는 적은 데이터 타입 구조들에서만 이러한 포함된 데이터 타입 구조를 조정하는 것에 관심 있는 경우).
도 5를 참조할 때, 일단 정의되면, 명명된 데이터 타입 구조를 저장하고, 이러한 구조를 이용하고자 검색하기 위해 하나 이상의 기술 또는 방법이 구현될 수 있다. 예를 들어, 명명된 데이터 타입 구조는 데이터 조작 언어(DML) 등의 언어로 표현될 수 있고, (DML 파일로 지칭되는) 텍스트 파일로 저장될 수 있다. 위에서 정의된 명명된 데이터 타입 구조(예컨대, "person_t")를 이용하여, "project.dml"이란 명칭의 DML 파일이 저장 장치에 저장될 수 있고, 정의된 데이터 타입 구조를 이용하고자 검색될 수 있다. DML 파일로 저장되는 명명된 데이터 타입 구조에 액세스하고 이를 이용하기 위해 다양한 기술이 구현될 수 있다. 예를 들어, 파일(예컨대, 또 다른 DML 파일)이 하나 이상의 명령(예컨대, "include" 구문, "package" 구문 등)을 포함할 수 있고, 이러한 명령에 의해 하나 이상의 다른 DML 파일(및 이러한 파일 내에서 정의되는 명명된 데이터 타입 구조)이 액세스되고 이용될 수 있다. 예를 들어, DML 파일의 내용은 다음의 언어를 포함할 수 있다:
Figure 112015032800924-pct00008
"include" 구문의 이용을 통해 DML 파일("project.dml")에 액세스함으로써, DML 파일에서 정의되는 명명된 데이터 타입 구조(예컨대, "business_t")가 검색되어, 이러한 파일 내에서 정의되는 데이터 타입 구조(예컨대, "sales_prospects_t")를 정의하는데 이용될 수 있다. 이러한 능력은 상충되는 데이터 타입 구조(예컨대, 동일한 명칭을 갖지만 상이한 타입 정의를 갖는 데이터 타입 구조)의 가능성과 함께 데이터 타입 정의의 중복을 줄이게 된다.
도면에 도시된 바와 같이, 일단 정의되고 저장되면, 명명된 데이터 타입 구조는 개발자에 의한 선택과 이용을 위해 표시될 수 있다. 예를 들어, 사용자 인터페이스(500)는 애플리케이션 빌딩(building)을 위한 프로그래밍 속성(예컨대, 글로벌 속성(502), 함수(504), 사용자 정의 타입(506) 등)을 포함할 수 있다. 사용자 인터페이스(500)에 표시되는 경우, 3개의 명명된 데이터 타입 구조(예컨대, "person_t", "business_t" 및 "class_t")는 사용자 정의 타입(506)에 포함되고, 개발자에 의한 이용을 위해 선택될 수 있다. 그러나, 도 3에 표시된 드롭다운 메뉴(402)와 마찬가지로, 데이터 타입 구조의 목록이 다양한 애플리케이션에 대해 늘어남에 따라, 중복되는 엔트리가 걷잡을 수 없게 되면서 사용자 정의 타입(506)에 포함된 엔트리는 다루기가 곤란해질 수 있다. 자주 이용되는 명명된 데이터 타입 구조와 덜 자주 이용되는 명명된 데이터 타입 구조가 증가함에 따라, 어떠한 특정 데이터 타입 구조가 이용가능한 것인지 식별하는데 문제가 발생할 수 있다. 중복 또한 이슈가 될 수 있는데, 이전에 정의된 데이터 타입 구조의 식별이 곤란해지고 개발자에게 과도한 시간 소모를 요하게 될 수 있기 때문이다. 사용자 인터페이스(500)의 표시는 각각의 명명된 데이터 타입 구조의 목록을 제공하지만, 부가적인 정보는 거의 제공되지 않는다. 예를 들어, 데이터 타입 구조들 간의 종속성의 계통, 관련된 데이터 타입이 어떻게 그룹화될 수 있는지 등은 일반적으로 사용자 인터페이스(500)에 나타나지 않는다. 나아가, 데이터 타입 구조의 명칭은 제공되지만, 각 데이터 타입 구조의 명칭으로부터 어렴풋이 드러날 수 있는 것만을 제외하고는 데이터 타입 구조의 내용에 관해 어떠한 정보도 인터페이스에서 제공되지 않는다.
도 6을 참조하면, 명명된 데이터 타입 구조 및 이러한 구조를 정의하는 필드의 집합을 표현하는 그래픽 표현(600)이 예시되어 있다. 부가적으로, 그래픽 표현(600)은 데이터 타입 구조가 정의 및 저장되는 DML 파일(602)(예컨대, "project.dml")을 식별한다. 그래픽 표현(600)의 일부는 파일에 대한 선택적인 명칭(604)(예컨대, DML 파일들)을 제공하고, 이는 "package"라 지칭되며, 파일의 외부에서 호출되는 경우 파일에서 정의된 속성의 명칭에 대한 접두부(prefix)를 제공한다. 이러한 특정 예에서는, 패키지 명칭이 공백 상태로 남겨져 있다.
이러한 예에서, 그래픽 표현(600)은 다음과 같이 정의되는 명명된 데이터 타입 구조 "person_t"를 표시한다:
Figure 112015032800924-pct00009
이러한 예에서, 그래픽 표현(600)은 뷰어의 좌측으로부터 우측으로 판독되도록 배향되고, 처음에는 뷰어의 좌측에 명명된 데이터 타입 구조 명칭(606)(예컨대, "person_t")을 표시한다. 위에서 정의된 구조로부터, 데이터 타입 구조 "person_t"에 내포된 개별적인 필드(예컨대, 성(608), 이름(610), 생년월일(612), 성별(614) 및 사회 보장 번호(616))가 일련의 직사각형으로 표시된다. 그래픽 표현(600)은 명명된 데이터 타입 구조 및 그 내용의 계층적 레이아웃을 전달한다. 그래픽 표현(600)의 가장 좌측에 위치하는 명칭(606)은 전체 구조를 식별하는 한편, 개별적인 필드(608, 610, 612, 614, 616)는 보다 우측에 위치하여 데이터 타입 구조의 계층구조에서 그들의 위치가 보다 하위 레벨에 있음을 나타낸다. 이러한 표현으로부터, 명명된 데이터 타입 구조와 연관된 정보에 대해 판독이 용이한 그래픽 레이아웃을 뷰어에게 제공하게 된다. 본 예시에서는 정보를 표시하기 위해 직사각형 형상이 이용되지만, 다른 형상 및/또는 상이한 형상의 집합이 표시를 위해 이용될 수 있다. 뷰어가 명명된 데이터 타입 구조 정보를 효율적으로 확인하는데 도움을 주기 위해 기타 다른 그래픽 특징이 또한 통합될 수 있다. 예컨대 잠재적인 이슈(예를 들어, 명명된 데이터 타입 구조 내에서 반복되거나 상충되는 필드가 정의되고 있음)에 대하여 뷰어에게 신속히 경고하기 위해, 예를 들어 상이한 색상들이 구현될 수 있다. 본 예시에서는 정보를 표시하기 위해 정적인 그래픽이 이용되지만, 예를 들어 신속하게 사용자의 주의를 끌기 위해서 시간 경과에 따라 변화하는 그래픽(애니메이션, 동영상 등) 또한 이용될 수 있다. 예를 들어 좌측에서 우측으로 판독되는 배향을 이용하기보다는 기타 다른 그래픽 표현 또한 이용될 수 있고, 하나 이상의 명명된 데이터 구조를 표시하기 위해 기타 다른 레이아웃 및 배향이 구현될 수 있다.
도 7을 참조하면, 그래픽 표현(700)은 3개의 명명된 데이터 타입 구조가 정의되는 DML 파일(예컨대, 명칭이 "project.dml")을 나타낸다. 특히, 이전에 정의된 명명된 데이터 타입 구조 "person_t"의 그래픽 표현(600)과 함께(도 6에 도시), 이러한 DML 파일에는 2개의 부가적인 명명된 데이터 타입 구조(명칭이 "business_t" 및 "class_t")가 그래픽으로 표현된다:
Figure 112015032800924-pct00010
그리고,
Figure 112015032800924-pct00011
"business_t"라 명명된 데이터 타입 구조와 "class_t"라 명명된 데이터 타입 구조 모두는 대응하는 그래픽 표현(702, 704)으로 예시되어 있는데, 명명된 데이터 타입 구조 "person_t"에 의해 정의되는 필드(예컨대, "business_t"라 명명된 데이터 타입 구조에 포함된 "employee" 필드, 및 "class_t"의 데이터 타입 구조에 포함된 "student" 필드)를 포함한다. "business_t" 및 "person_t"라 명명된 데이터 타입 구조에 의한 "person_t"라 명명된 데이터 타입 구조의 이용을 그래픽으로 예시하기 위해서, 대응하는 화살표 선(706, 708)이 명명된 데이터 타입 구조의 쌍들 간의 관계를 나타낸다. 이렇게 그래픽으로 표현된 관계로부터, 뷰어(예컨대, 개발자)는 명명된 데이터 타입 구조들 간의 관계, 예를 들어 데이터 타입 구조들 간에 공유되는 정보, 이전에 정의된 명명된 데이터 타입 구조(예컨대, "person_t")의 이용의 계통 등을 비교적 신속하게 식별할 수 있다. 명명된 데이터 타입 구조의 관계의 레이아웃을 제공하는 것과 함께, 그래픽 표현(700)은 잠재적인 조정 이슈에 대해 뷰어에게 시각적으로 경고한다. 예를 들어, 2개의 화살표 선(706, 708)으로 나타낸 것처럼, "person_t"라 명명된 데이터 타입 구조에 변경이 생긴 경우, "business_t" 및 "person_t" 양자 모두의 명명된 데이터 타입 구조가 이러한 변경에 의해 영향을 받게 될 것이다(예를 들어, "business_t"라 명명된 데이터 타입 구조의 "employees" 필드와 "class_t"라 명명된 데이터 타입 구조의 "students" 필드가 "person_t"라 명명된 데이터 타입 구조에 대한 임의의 변경을 겪게 될 것이다). 데이터 타입 구조들 간의 관계를 표시하는 것과 마찬가지로, 파일들 간의 관계 등의 기타 다른 유형의 관계가 그래픽으로 표시될 수 있다.
도 8을 참조하면, 2개의 DML 파일이 이들의 관계와 함께 그래픽으로 표현되어 있다. "project.dml" 파일의 그래픽 표현(700)(도 7에 도시)은 DML 파일에 의해 정의되는 3개의 명명된 데이터 구조(예컨대, "class_t"라 명명된 데이터 구조(702), "business_t"라 명명된 데이터 구조(704), 및 "person_t"라 명명된 데이터 구조(600))와 함께 표시된다. 부가적으로, 명칭이 "CRM.dml"인 또 다른 DML 파일이 그래픽 표현(800)과 함께 예시되어 있고, 그 안에 명명된 데이터 타입 구조(명칭이 "sales_prospects_t")가 표현되어 있다. 이러한 예에서는, 2개의 명명된 데이터 타입 구조가 "CRM.dml" 파일에 의해 정의되며(예컨대, 명칭이 "educational" 및 "commercial"), 이러한 2개의 명명된 데이터 타입 구조 각각은 "project.dml"에 의해 제공되는 명명된 데이터 타입 구조를 통해 정의된다. 특히, "educational"라 명명된 데이터 타입 구조는 "class_t"라 명명된 데이터 타입 구조로부터 정의되고, "commercial"라 명명된 데이터 타입 구조는 "business_t"라 명명된 데이터 타입 구조에 의해 정의된다. "CRM.dml" 파일과 "project.dml" 파일 간의 이러한 두 가지 관계를 표현하기 위해, 2개의 화살표 선(802, 804)이 파일의 2개의 그래픽 표현을 링크하는 것으로 도시되어 있다. 파일 내에서 링크되는 명명된 데이터 타입 구조의 표현과 마찬가지로, 예를 들어 2개 이상의 파일들 사이에, 명명된 타입 정의 및 필드의 링크를 통하여 유사한 관계가 형성될 수 있다. 예를 들어, "project.dml" 파일에서 "class_t"라 명명된 데이터 타입 구조(702) 또는 "business_t"라 명명된 데이터 타입 구조(704)의 정의에 대해 이루어진 조정은(예를 들어, "person_t"라 명명된 데이터 구조(600)를 변경함으로써 이루어진 조정은), 링크된 "CRM.dml" 파일에서 필드(예컨대, "educational" 및 "commercial") 및 명명된 데이터 타입 구조(예컨대, "sales_prospect_t"라 명명된 데이터 타입 구조)에 영향을 미칠 수 있다.
다수의 파일들의 필드들과 명명된 데이터 타입 구조들 간의 관계에 대한 그래픽 표현을 표시하는 것과 함께, 이러한 파일들 간의 관계가 뷰어에게 그래픽으로 표현될 수 있다. 예를 들어, 파일 레벨 동작이 표현될 수 있다. 이러한 예에서는, CRM.dml 파일의 필드(예컨대, "educational" 및 "commercial")가 "project.dml" 파일 내의 명명된 데이터 타입 구조에 대한 액세스를 획득하기 위해서, "project.dml" 파일이 "CRM.dml" 파일에 의해 식별될 필요가 있다. 예를 들어, "project.dml" 파일에 대한 액세스를 획득하기 위해서 "CRM.dml" 파일에 "include" 구문이 입력될 수 있다. 이러한 식별을 그래픽으로 표현하기 위해, 그래픽 표현(800)에서 자신의 파일 명칭(806)을 나열하는 것과 함께, 하나 이상의 필요한 파일(예컨대, "project.dml")이 필요한 패키지(808)로 표현될 수도 있다. 나아가 이러한 예에서는, 화살표 점선(810)에 의해, "project.dml" 파일의 내용에 대한 액세스를 획득하기 위해 "include" 구문을 이용하는 "CRM.dml" 파일의 파일 레벨 동작이 그래픽으로 표현된다.
도 9a를 참조하면, 파일들, 필드들 및 명명된 데이터 타입 구조들 간의 관계를 나타내기 위해 다양한 유형의 그래픽 표현이 이용될 수 있다. 예를 들어, 그래픽 표현의 시각적인 복잡성을 줄이기 위해, 다양한 양의 세부사항을 줄이거나 제거할 수 있다. 도시된 예에서는, 개별적인 필드 정보가 2개의 DML 파일의 그래픽 표현(900, 902)으로부터 제거된다. 이러한 정보를 제거하는 것에 의해, 데이터 타입 구조의 그래픽 표현(904, 906, 908, 910)은, 각각의 명명된 데이터 타입 구조(예컨대, "person_t", "business_t", "class_t" 및 "sales_prospects_t")의 명칭을 단순하게 표현함으로써 컴팩트화된다. 그래픽 표현의 시각적 비즈니스의 양을 줄이는 것과 함께, 기타 다른 정보를 위해 공간 자원(real estate)이 절감되며, 예를 들면 한 파일 내에서 명명된 데이터 타입 구조들 간의 관계를 표현하는 화살표 선(912, 914), 및 상이한 파일들에 존재하는 명명된 데이터 타입 구조들 간의 관계를 나타내는 화살표 선(916, 918) 등이다. 마찬가지로, 이렇게 절감된 공간 자원으로 인하여, 기타 다른 관계, 예를 들어 파일 액세스를 제공하기 위한 "include" 구문의 이용을 나타내는 화살표 점선(920)을 이용하여 다른 파일들을 식별하는 파일들을 뷰어가 신속하게 인식할 수 있게 된다. 뷰어(예컨대, 개발자)에게 명명된 데이터 타입 구조와 이들의 관계에 대한 컴팩트화된 화면을 제공할 뿐만 아니라, 그래픽 표현에 의해 기타 다른 기능이 제공될 수 있다. 예를 들어, 필드, 명명된 데이터 타입 구조 및 관련 정보의 조작은 그래픽 표현을 이용함으로써 보다 효율적으로 실행될 수 있다.
도 9b를 참조하면, 그래픽 표현은 파일 데이터 타입 구조, 파일 등을 효율적으로 구성, 재구성 등을 하기 위해 조정 및 조작될 수 있다. 예를 들어, 데이터 구조의 표현은 새로운 파일을 정의하도록 상이하게 그룹화될 수 있다. 도시된 바와 같이, 파일의 그래픽 표현(예컨대, DML 파일 표현(900 및 902))이 제거되어 개발자가 데이터 타입 구조(904, 906, 908, 910)의 그래픽 표현의 그룹화를 조정할 수 있게 된다. 데이터 타입 구조가 동일하거나 상이한 파일 또는 파일들에 저장되도록 재조직화될 수 있게 함과 동시에, 이러한 조작은 파일들 간의 관계를 개선하고 불필요한 "include" 구문의 생성을 줄일 수 있다. 단지 도시된 예로 입증하기 위하여, (데이터 타입 구조 "business_t"에 대한) 그래픽 표현(906)은 보다 효율적인 동작을 위해 (데이터 타입 구조 "sales_prospects_t"에 대한) 그래픽 표현(910)과 그룹화될 수 있다. 일단 그룹화되면, 그래픽 표현은 새로이 그룹화된 데이터 타입 구조를 저장하기 위해 파일 생성을 개시할 수 있다. 데이터 타입 구조를 그룹화하고 조작하기 위해 이러한 동작을 이용하는 것과 함께, 파일 레벨 동작 또한 수행될 수 있다. 예를 들어, 파일의 그래픽 표현(예컨대, 표현(900, 902))은 파일의 내용(예컨대, 데이터 타입 구조)의 조합, 제거, 첨부 등을 위해 조작될 수 있다.
도 10을 참조하면, 필드, 명명된 데이터 타입 구조, 및 다른 유형의 프로그래밍 속성의 그래픽 표현을 조작하기 위해 에디터(1002)를 제공하는 사용자 인터페이스(1000)가 도시되어 있다. 에디터(1002)는 필드, 명명된 데이터 타입 구조 및 관련 정보(예컨대, 데이터 타입 관계를 표현하는 화살표 선)의 그래픽 표현을 표시하는 윈도우(1004)를 포함한다. 에디터(1002)는 또한 팔레트(1006)를 포함하며, 이를 통해 사용자(예컨대, 개발자)는 개발 중인 애플리케이션에 포함시키기 위해 다양한 필드, 명명된 데이터 타입 구조 등으로부터 선택할 수 있게 된다. 예를 들어, 굵은 화살표 선(1008)으로 도면에 표현된 바와 같이, 프로젝트 개발을 위해 명명된 데이터 타입 구조를 선택하고 윈도우(1004)에 이를 삽입(예컨대, 드래그 앤 드롭)하기 위해 포인팅 장치가 이용될 수 있다. 마찬가지로 선택 및 삽입 동작이 뒤바뀌어, 명명된 데이터 타입 구조가 (개발 중인 이후에) 윈도우(1004)로부터 선택되고 팔레트(1006)에 삽입될 수 있다. 선택 및 삽입 동작은 또한, 윈도우(1004) 또는 팔레트(1006) 내에서 단독으로 실행될 수 있다. 예를 들어, 하나 이상의 필드, 명명된 데이터 타입 구조 등의 생성, 편집 등을 위해서 동작(예컨대, 드래그 앤 드롭 동작)이 팔레트(1006)에서 실행될 수 있다. 마찬가지로, 필드, 명명된 데이터 타입 구조 등의 조정을 위해 윈도우(1004)에서 사용자에 의해 동작(예컨대, 선택, 삽입, 삭제, 첨부 등)이 개시될 수 있다. 다른 유형의 조작 동작 또한 실행될 수 있고, 예를 들면 필드들, 명명된 데이터 타입 구조들, 파일들(예컨대, DML 파일들) 간의 관계 등이 그래픽으로 조작될 수 있다.
도 11을 참조하면, 필드, 명명된 데이터 타입 구조, 파일 등과 관계의 조작을 위한 동작이 사용자(예컨대, 개발자)에 의해 그래픽으로 개시될 수 있다. 예를 들면, 필드들 및 명명된 데이터 타입 구조들 간의 관계를 조정하기 위해 화살표 선이 조작(예를 들어, 삭제, 추가, 이동 등)될 수 있다. 이러한 도시된 예에서는, 2개의 선(1100 및 1102)이 삭제된다(사용자의 포인팅 장치를 통해 각각의 선 상에 각각 위치하는 그래픽 심볼 "x"로 표현됨). 이러한 선들의 삭제로 인하여 "project.dml" 파일과 "CRM.dml" 파일 간에 단절되는 관계에 기초하여, "CRM.dml"은 더 이상 "project.dml" 파일의 내용에 대한 액세스를 요하지 않는다. 이에 따라, "project.dml"에 액세스하기 위한 "CRM.dml" 파일 내의 명령(예컨대, "include 'project.dml'")이 "CRM.dml" 파일로부터 제거된다(점선 박스(1004)로 표현됨). 이에 대응하여, "CRM.dml" 파일과 "project.dml" 파일 간의 이러한 관계를 표현하는 점선(1106)도 마찬가지로 파일의 그래픽 표현으로부터 제거될 수 있다. 대안으로서, 파일들 간의 이러한 관계가 구축 또는 재구축되는 경우(예를 들면, 선(1100 및 1102)으로 2개의 파일을 연결함으로써), 적절한 파일(예컨대, "CRM.dml")에 명령(예컨대, "include 'project.dml'")이 삽입 또는 재삽입될 수 있고, 이러한 관계를 나타내기 위해 그래픽 표현(예컨대, 점선(1106))이 다시 표시될 수 있다.
도 12를 참조하면, 명명된 필드, 명명된 데이터 타입 구조, 파일 등의 양이 늘어남에 따라, 사용자(예컨대, 개발자)가 애플리케이션 개발 중에 이용을 위해 선택될 수 있는 잠재적인 필드, 명명된 데이터 타입 구조, 파일 등을 탐색하는데 도움이 되도록 하나 이상의 기술이 구현될 수 있다. 예를 들어 하나 이상의 그래픽 표현이, 이용가능한 필드 및 명명된 데이터 타입 구조를 포함하는 파일들의 선택가능한 목록을 표시할 수 있다. 일부 구성에서는, 사용자가 파일, 명명된 데이터 타입 구조 등을 탐색하는데 도움이 되도록 계층적 목록화가 이용될 수 있다. 도면에 도시된 바와 같이, 창(1200)이 사용자 인터페이스(1202)에 포함되어 사용자가 상이한 패키지들(예컨대, XML 처리 데이터 타입, 룩업 데이터 타입, 메타 프로그래밍 데이터 타입, 날짜/시간 데이터 타입, 메타데이터 타입 등)의 목록을 탐색할 수 있게 된다. 한 가지 구성으로, 일단 선택이 이루어지면, 선택된 패키지에서 정의된 아티팩트(artifact), 예컨대 명명된 데이터 타입 구조 및 함수가 사용자 인터페이스(1202)의 우측 편에 위치하는 그래픽 표현에 표시될 수 있고, 필요에 따라 조작(예컨대, 선택, 탐색, 창(1200)으로 드래그 앤 드롭)될 수 있다.
애플리케이션 개발을 위한 필드, 명명된 데이터 타입 구조, 파일의 조직화, 조작 등과 마찬가지로, 개발자를 보조하기 위해 기타 다른 유형의 프로그래밍 속성이 그래픽으로 표현될 수 있다. 더욱더 많은 이러한 프로그래밍 속성이 이후의 검색 및 재사용을 위해 라이브러리에 생성되고 저장됨에 따라, 예를 들어 애플리케이션에 의해 이용되는 함수, 변수 등이 마찬가지로 다루기 곤란해질 수 있다. 개발자가 적절한 프로그래밍 속성을 식별하고 선택하는 것을 돕기 위해 기타 다른 기술이 구현될 수도 있다. 예를 들어, 파일들 사이에서 프로그래밍 속성을 논리적으로 분산시키기 위한 알고리즘(클러스터링 알고리즘이라 지칭됨)이, 예를 들어 필드, 명명된 데이터 타입 구조, 함수 등을 조직화하기 위해 이용될 수 있다. 이러한 조직화 기술을 통하여, 명명된 데이터 타입 구조의 중복되는 이용과 함께 명령(예컨대, "include" 구문)의 양이 줄어들 수 있다.
도 13을 참조하면, 흐름도(1300)는 애플리케이션 개발에 이용되는 명명된 데이터 타입 구조 등의 프로그래밍 속성을 그래픽 표현하기 위한 절차의 동작들을 표현하고 있다. 이러한 동작들은 통상적으로 단일 컴퓨팅 장치(예를 들어, 개발 환경을 제공하는)에 의해 실행되지만, 다수의 컴퓨팅 장치에 의해 실행될 수도 있다. 단일한 사이트에서 실행되는 것뿐만 아니라, 동작 실행은 둘 이상의 장소 간에 분산될 수도 있다.
동작은 애플리케이션 개발을 위해 하나 이상의 프로그래밍 속성의 계층구조를 표현하는 데이터 구조를 정의하는 단계(1302)를 포함할 수 있다. 파일의 그래픽 표현은, 하나 이상의 데이터 구조 그룹을 정의하고 이러한 하나 이상의 데이터 구조 그룹을 저장하기 위해 하나 이상의 새로운 파일을 생성하기 위하여 데이터 구조의 그래픽 표현의 조작이 가능하도록 제거될 수 있다. 예를 들어, 데이터 구조를 정의하기 위해 서브레코드, 레코드, 필드, 명명된 데이터 타입 구조 등의 계층구조가 이용될 수 있다. 데이터 구조는 (저장을 위해) 단일 파일에 포함되도록 정의되지만, 일부 구성에서는 데이터 구조가 (예를 들어, 저장 및 이후의 검색을 위해) 다수의 파일에 포함될 수도 있다. 동작은 또한, 데이터 구조의 그래픽 표현 및 데이터 구조를 저장하는 파일의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 단계(1304)를 포함한다. 이러한 시각적 다이어그램은 또한, 데이터 구조와 다른 데이터 구조 간의 관계의 그래픽 표현, 및 데이터 구조를 저장하는 파일과 상기 다른 데이터 구조를 저장하는 다른 파일 간의 관계의 그래픽 표현을 포함한다. 예를 들어 도 7에 도시된 바와 같이, 파일 "project.dml"에 포함되는 명명된 데이터 타입 구조를 표현하는 시각적 다이어그램에는 2개의 명명된 데이터 타입 구조(예컨대, "business_t" 및 "class_t")가 그래픽으로 표현된다. 세 번째 데이터 타입 구조(예컨대, "person_t") 또한 표시되며, 이는 시각적 다이어그램에도 표현되는 그래픽 라인(706, 708)으로 표시된 바와 같이 다른 명명된 데이터 타입 구조(예컨대, "business_t" 및 "class_t") 양자 모두에 의해 이용되는 필드의 계층구조를 포함한다. 각각의 데이터 구조의 내용을 나타낼 뿐만 아니라, 뷰어(예컨대, 개발자)가 필드, 명명된 데이터 타입 구조 등의 계통과 이들의 관계를 비교적 신속하게 확인할 수 있게 하기 위해 데이터 구조들 간의 관계가 그래픽으로 표현된다.
위에서 설명한 연산 아티팩트를 그래픽으로 표현하기 위한 접근법은 컴퓨터 상에서 실행되기 위한 소프트웨어를 이용하여 구현될 수 있다. 예를 들어, 소프트웨어는 하나 이상의 프로세서, 하나 이상의 데이터 저장 시스템(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함), 하나 이상의 입력 장치 또는 포트, 및 하나 이상의 출력 장치 또는 포트를 각각 포함하는 하나 이상의 프로그램된 또는 프로그램가능한 컴퓨터 시스템(분산형, 클라이언트/서버형, 또는 그리드형의 여러 구조가 될 수 있음) 상에서 실행되는 하나 이상의 컴퓨터 프로그램 내의 프로시저를 형성한다. 소프트웨어는 예를 들어, 데이터 흐름 그래프의 설계 및 구성에 관련된 다른 서비스를 제공하는 더 큰 프로그램의 하나 이상의 모듈을 형성할 수 있다. 그래프의 노드 및 요소는 컴퓨터로 판독가능한 매체에 저장된 데이터 구조 또는 데이터 리포지토리에 저장된 데이터 모델에 부합하는 다른 조직화된 데이터로서 구현될 수 있다.
소프트웨어는 범용 또는 전용의 프로그램가능 컴퓨터에 의해 판독가능한 CD-ROM과 같은 저장 매체 상에 제공되거나, 그 소프트웨어가 실행되는 컴퓨터의 저장 매체에 네트워크의 통신매체를 통해 전달(전파되는 신호로 부호화되어)될 수도 있다. 모든 기능은 전용 컴퓨터상에서, 또는 코프로세서와 같은 전용 하드웨어를 이용하여 수행될 수도 있다. 소프트웨어에 의해 특정된 연산의 여러 다른 부분이 여러 다른 컴퓨터에 의해 수행되는 분산형 방법으로 소프트웨어를 구현할 수도 있다. 컴퓨터 시스템에 의해 저장 매체 또는 저장 장치가 판독되어 위에 설명한 과정이 수행될 때 그 컴퓨터를 구성하여 동작시키기 위해서, 이러한 컴퓨터 프로그램 각각은 범용 또는 전용 프로그램가능 컴퓨터에 의해 판독가능한 저장 매체 또는 저장 장치(예를 들면 솔리드 스테이트 메모리, 또는 솔리드 스테이트 매체, 또는 자기 매체 또는 광학 매체)에 저장되거나 다운로드되는 것이 바람직하다. 본 발명의 시스템은 또한 컴퓨터 프로그램으로 구성되는 컴퓨터 판독가능 저장 매체로서 구현될 수도 있으며, 이 경우, 이와 같이 구성된 저장 매체는 컴퓨터 시스템으로 하여금 특정의 미리 규정된 방법으로 동작하여 본 명세서에서 설명하는 기능을 수행하도록 한다.
이상에서는 본 발명의 여러 실시예에 관해 설명하였다. 그러나, 본 발명의 사상 및 그 범위를 일탈하지 않고도 다양한 변형이 가능함을 알 수 있다. 예를 들면, 상기 설명한 단계들 중 일부는 순서와 무관한 것일 수도 있으며, 이에 따라서 상기 설명한 것과는 다른 순서로 수행될 수도 있다.
상기 설명한 내용은 예시를 위한 것으로서 본 발명의 범위를 한정하기 위한 것이 아니며, 그 범위는 다음의 특허청구범위에 의해 규정된다. 예를 들면, 상기 설명한 여러 기능 단계는 전체 프로세스에 실질적인 영향을 주지 않고 다른 순서로 수행될 수도 있다. 기타 다른 실시예도 이하의 청구범위 내에 포함된다.

Claims (33)

  1. 정보를 표현하기 위한 방법으로서,
    컴퓨팅 시스템의 프로세서에 의해, 애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 제1 데이터 구조를 정의하는 단계로서, 상기 제1 데이터 구조는 상기 제1 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 제1 파일에 저장되고, 상기 제1 데이터 구조는 제2 파일에 저장되는 제2 데이터 구조에 대한 정의에 기초하여 정의되는, 데이터 구조 정의 단계;
    상기 프로세서에 의해, 상기 제1 데이터 구조, 상기 제2 데이터 구조, 상기 제1 파일, 및 상기 제2 파일의 각각의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하는 단계로서, 각 데이터 구조의 그래픽 표현은 상기 데이터 구조의 식별자의 표현 및 상기 데이터 구조의 하나 이상의 필드 각각의 표현을 포함하며, 각 파일의 그래픽 표현은 상기 파일의 식별자의 표현을 포함하고,
    상기 시각적 다이어그램은 또한,
    상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징; 및
    상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하고,
    상기 제1 그래픽 특징은 상기 제1 데이터 구조가 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 제2 그래픽 특징은 상기 제1 파일에 저장된 상기 제1 데이터 구조가 상기 제2 파일에 저장된 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 시각적 다이어그램에서, 상기 제1 데이터 구조의 그래픽 표현은 상기 제1 파일의 그래픽 표현의 외부 경계 내에 포함된 상기 시각적 다이어그램의 영역 내에 위치하며, 상기 제2 데이터 구조의 그래픽 표현은 상기 제2 파일의 그래픽 표현의 외부 경계 내에 포함되는 상기 시각적 다이어그램의 영역 내에 위치하는, 시각적 다이어그램을 생성하는 단계; 및
    상기 프로세서에 의해, 사용자 인터페이스 상에 시각적 다이어그램을 디스플레이 하게 하는 단계를 포함하는, 정보를 표현하기 위한 방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 파일의 그래픽 표현은, 하나 이상의 데이터 구조 그룹을 정의하고 상기 하나 이상의 데이터 구조 그룹을 저장하기 위한 하나 이상의 새로운 파일을 생성하기 위해 상기 제1 및 제2 데이터 구조의 그래픽 표현의 조작(manipulating)을 허용하도록 제거가능한, 정보를 표현하기 위한 방법.
  3. 제1항에 있어서,
    상기 프로세서에 의해, 상기 적어도 하나의 프로그래밍 속성을 조정하도록 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 단계를 더 포함하는, 정보를 표현하기 위한 방법.
  4. 제1항에 있어서,
    상기 프로세서에 의해, 상기 적어도 하나의 프로그래밍 속성을 파일에 삽입하기 위해 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 단계를 더 포함하는, 정보를 표현하기 위한 방법.
  5. 제4항에 있어서,
    상기 적어도 하나의 프로그래밍 속성과 함께 구문(statement)이 상기 파일에 삽입되는, 정보를 표현하기 위한 방법.
  6. 제4항에 있어서,
    상기 데이터 구조의 조작은 드래그 앤 드롭 동작을 포함하는, 정보를 표현하기 위한 방법.
  7. 제3항에 있어서,
    상기 정의된 데이터 구조의 조작은, 상기 프로그래밍 속성의 계층구조의 내용물을 추가, 삭제 및 편집하는 것 중에서 적어도 하나를 포함하는, 정보를 표현하기 위한 방법.
  8. 제1항에 있어서,
    상기 프로그래밍 속성은 명명된(named) 데이터 타입인, 정보를 표현하기 위한 방법.
  9. 제1항에 있어서,
    상기 프로그래밍 속성은 함수인, 정보를 표현하기 위한 방법.
  10. 제1항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 간의 관계는 상기 프로그래밍 속성의 계통(lineage)을 표현하는, 정보를 표현하기 위한 방법.
  11. 정보를 표현하기 위한 컴퓨터 프로그램이 저장된 비일시적인(non-transitory) 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 시스템으로 하여금:
    애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 제1 데이터 구조를 정의하되, 상기 제1 데이터 구조는 상기 제1 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 제1 파일에 저장되고, 상기 제1 데이터 구조는 제2 파일에 저장된 제2 데이터 구조에 대한 정의에 기초하여 정의되는, 데이터 구조를 정의하고;
    상기 제1 데이터 구조, 상기 제2 데이터 구조, 상기 제1 파일, 및 상기 제2 파일의 각각의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하되, 각 데이터 구조의 그래픽 표현은 상기 데이터 구조의 식별자의 표현 및 상기 데이터 구조의 하나 이상의 필드 각각의 표현을 포함하며, 각 파일의 그래픽 표현은 상기 파일의 식별자의 표현을 포함하고,
    상기 시각적 다이어그램은 또한,
    상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징; 및
    상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하고,
    상기 제1 그래픽 특징은 상기 제1 데이터 구조가 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 제2 그래픽 특징은 상기 제1 파일에 저장된 상기 제1 데이터 구조가 상기 제2 파일에 저장된 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 시각적 다이어그램에서, 상기 제1 데이터 구조의 그래픽 표현은 상기 제1 파일의 그래픽 표현의 외부 경계 내에 포함된 상기 시각적 다이어그램의 영역 내에 위치하며, 상기 제2 데이터 구조의 그래픽 표현은 상기 제2 파일의 그래픽 표현의 외부 경계 내에 포함되는 상기 시각적 다이어그램의 영역 내에 위치하는, 시각적 다이어그램을 생성하고;
    사용자 인터페이스 상에 시각적 다이어그램을 디스플레이 하게 하는 명령어를 포함하는,
    정보를 표현하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체.
  12. 정보를 표현하기 위한 컴퓨팅 시스템으로서,
    상기 컴퓨팅 시스템은 정보를 처리하도록 구성되는 적어도 하나의 프로세서 및 출력 디바이스를 포함하고,
    상기 처리는:
    애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 제1 데이터 구조를 정의하되, 상기 제1 데이터 구조는 상기 제1 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 제1 파일에 저장되고, 상기 제1 데이터 구조는 제2 파일에 저장되는 제2 데이터 구조에 대한 정의에 기초하여 정의되는, 데이터 구조를 정의하는 것;
    상기 제1 데이터 구조, 상기 제2 데이터 구조, 상기 제1 파일, 및 상기 제2 파일의 각각의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하되, 각 데이터 구조의 그래픽 표현은 상기 데이터 구조의 식별자의 표현 및 상기 데이터 구조의 하나 이상의 필드 각각의 표현을 포함하며, 각 파일의 그래픽 표현은 상기 파일의 식별자의 표현을 포함하는, 시각적 다이어그램을 생성하는 것을 포함하며,
    상기 시각적 다이어그램은 또한,
    상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징; 및
    상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하고,
    상기 제1 그래픽 특징은 상기 제1 데이터 구조가 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 제2 그래픽 특징은 상기 제1 파일에 저장된 상기 제1 데이터 구조가 상기 제2 파일에 저장된 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 시각적 다이어그램에서, 제1 데이터 구조의 그래픽 표현은 상기 제1 파일의 그래픽 표현의 외부 경계 내에 포함된 상기 시각적 다이어그램의 영역 내에 위치하며, 상기 제2 데이터 구조의 그래픽 표현은 상기 제2 파일의 그래픽 표현의 외부 경계 내에 포함되는 상기 시각적 다이어그램의 영역 내에 위치하고,
    상기 출력 디바이스는, 사용자 인터페이스 상에서 상기 시각적 다이어그램을 표시하기 위한 것으로서, 상기 시각적 다이어그램은 상기 제1 데이터 구조, 상기 제2 데이터 구조, 상기 제1 파일, 및 상기 제2 파일의 각각의 그래픽 표현, 상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징, 및 상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  13. 정보를 표현하기 위한 컴퓨팅 시스템으로서,
    처리하기 위한 수단과 표시하기 위한 수단을 포함하고,
    상기 처리는:
    애플리케이션을 개발하기 위해 적어도 하나의 프로그래밍 속성의 계층구조를 표현하는 제1 데이터 구조를 정의하되, 상기 제1 데이터 구조는 상기 제1 데이터 구조가 다른 파일에 저장되는 다른 데이터 구조에 의해 이용될 수 있도록 제1 파일에 저장되고, 상기 제1 데이터 구조는 제2 파일에 저장되는 제2 데이터 구조에 대한 정의에 기초하여 정의되는, 데이터 구조를 정의하는 것;
    상기 제1 데이터 구조, 상기 제2 데이터 구조, 상기 제1 파일, 및 상기 제2 파일의 각각의 그래픽 표현을 포함하는 시각적 다이어그램을 생성하되, 각 데이터 구조의 그래픽 표현은 상기 데이터 구조의 식별자의 표현 및 상기 데이터 구조의 하나 이상의 필드 각각의 표현을 포함하며, 각 파일의 그래픽 표현은 상기 파일의 식별자의 표현을 포함하는, 시각적 다이어그램을 생성하는 것을 포함하고,
    상기 시각적 다이어그램은 또한,
    상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징; 및
    상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하고,
    상기 제1 그래픽 특징은 상기 제1 데이터 구조가 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 제2 그래픽 특징은 상기 제1 파일에 저장된 상기 제1 데이터 구조가 상기 제2 파일에 저장된 상기 제2 데이터 구조에 대한 정의에 기초하여 정의됨을 표시하며,
    상기 시각적 다이어그램에서, 제1 데이터 구조의 그래픽 표현은 상기 제1 파일의 그래픽 표현의 외부 경계 내에 포함된 상기 시각적 다이어그램의 영역 내에 위치하며, 상기 제2 데이터 구조의 그래픽 표현은 상기 제2 파일의 그래픽 표현의 외부 경계 내에 포함되는 상기 시각적 다이어그램의 영역 내에 위치하고,
    상기 표시하기 위한 수단은, 사용자 인터페이스 상에서 상기 시각적 다이어그램을 표시하기 위한 것으로서, 상기 시각적 다이어그램은 상기 제1 데이터 구조, 상기 제2 데이터 구조, 상기 제1 파일, 및 상기 제2 파일의 각각의 그래픽 표현, 상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징, 및 상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  14. 제11항에 있어서,
    상기 제1 및 상기 제2 파일의 그래픽 표현은, 하나 이상의 데이터 구조 그룹을 정의하고 상기 하나 이상의 데이터 구조 그룹을 저장하기 위한 하나 이상의 새로운 파일을 생성하기 위해 상기 제1 및 상기 제2 데이터 구조의 그래픽 표현의 조작을 허용하도록 제거 가능한,
    정보를 표현하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체.
  15. 제11항에 있어서,
    상기 컴퓨터 프로그램은 상기 컴퓨팅 시스템으로 하여금 상기 적어도 하나의 프로그래밍 속성을 조정하도록 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 명령을 포함하는,
    정보를 표현하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체.
  16. 제11항에 있어서,
    상기 컴퓨터 프로그램은 상기 컴퓨팅 시스템으로 하여금 상기 적어도 하나의 프로그래밍 속성을 파일에 삽입하기 위해 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 명령을 포함하는,
    정보를 표현하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체.
  17. 제11항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 간의 관계는 상기 프로그래밍 속성의 계통(lineage)을 표현하는,
    정보를 표현하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체.
  18. 제11항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 사이의 관계를 나타내는 제1 그래픽 특징은 상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징을 포함하고,
    상기 제1 파일과 상기 제2 파일 사이의 관계를 나타내는 상기 제2 그래픽 특징은 상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하는,
    정보를 표현하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체.
  19. 제12항에 있어서,
    상기 제1 및 제2 파일의 그래픽 표현은, 하나 이상의 데이터 구조 그룹을 정의하고 상기 하나 이상의 데이터 구조 그룹을 저장하기 위한 하나 이상의 새로운 파일을 생성하기 위해 상기 제1 및 상기 제2 데이터 구조의 그래픽 표현의 조작을 허용하도록 제거 가능한, 정보를 표현하기 위한 컴퓨팅 시스템.
  20. 제12항에 있어서,
    상기 처리는, 상기 적어도 하나의 프로그래밍 속성을 조정하도록 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 것을 더 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  21. 제12항에 있어서,
    상기 처리는, 상기 적어도 하나의 프로그래밍 속성을 파일에 삽입하기 위해 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 것을 더 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  22. 제12항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 간의 관계는 상기 프로그래밍 속성의 계통을 표현하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  23. 제12항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 사이의 관계를 나타내는 제1 그래픽 특징은 상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징을 포함하고,
    상기 제1 파일과 상기 제2 파일 사이의 관계를 나타내는 상기 제2 그래픽 특징은 상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  24. 제13항에 있어서,
    상기 제1 및 제2 파일의 그래픽 표현은, 하나 이상의 데이터 구조 그룹을 정의하고 상기 하나 이상의 데이터 구조 그룹을 저장하기 위한 하나 이상의 새로운 파일을 생성하기 위해 상기 제1 및 상기 제2 데이터 구조의 그래픽 표현의 조작을 허용하도록 제거 가능한,
    정보를 표현하기 위한 컴퓨팅 시스템.
  25. 제13항에 있어서,
    상기 적어도 하나의 프로그래밍 속성을 조정하도록 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 수단을 더 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  26. 제13항에 있어서,
    상기 적어도 하나의 프로그래밍 속성을 파일에 삽입하기 위해 상기 정의된 제1 데이터 구조의 조작을 가능하게 하는 수단을 더 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  27. 제13항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 간의 관계는 상기 프로그래밍 속성의 계통을 표현하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  28. 제13항에 있어서,
    상기 제1 데이터 구조와 상기 제2 데이터 구조 사이의 관계를 나타내는 제1 그래픽 특징은 상기 제1 데이터 구조의 그래픽 표현과 상기 제2 데이터 구조의 그래픽 표현을 연결하는 제1 그래픽 특징을 포함하고,
    상기 제1 파일과 상기 제2 파일 사이의 관계를 나타내는 상기 제2 그래픽 특징은 상기 제1 파일의 그래픽 표현과 상기 제2 파일의 그래픽 표현을 연결하는 제2 그래픽 특징을 포함하는,
    정보를 표현하기 위한 컴퓨팅 시스템.
  29. 제1항에 있어서,
    각 데이터 구조의 그래픽 표현은 테이블(table)을 포함하고,
    상기 데이터 구조의 하나 이상의 필드 각각의 표현은 상기 테이블에 포함되는, 정보를 표현하기 위한 방법.
  30. 제1항에 있어서,
    각 데이터 구조의 그래픽 표현은 상기 데이터 구조의 필드 각각에 대한 데이터 유형의 표현을 포함하는,
    정보를 표현하기 위한 방법.
  31. 제1항에 있어서,
    상기 제1 그래픽 특징은 상기 제1 데이터 구조의 그래픽 표현으로부터 상기 제2 데이터 구조의 그래픽 표현으로의 화살표(arrow)를 포함하는,
    정보를 표현하기 위한 방법.
  32. 제1항에 있어서,
    상기 제1 파일의 그래픽 표현은 제1 폴리곤(polygon)을 포함하고, 상기 제2 파일의 그래픽 표현은 제2 폴리곤을 포함하는,
    정보를 표현하기 위한 방법.
  33. 제32항에 있어서,
    상기 제1 데이터 구조의 그래픽 표현은 상기 제1 폴리곤 내부 내에 포함되고, 상기 제2 데이터 구조의 그래픽 표현은 상기 제2 폴리곤 내부 내에 포함되는,
    정보를 표현하기 위한 방법.

KR1020157008604A 2012-09-28 2013-09-27 프로그래밍 속성의 그래픽 표현 KR102021915B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261707343P 2012-09-28 2012-09-28
US61/707,343 2012-09-28
PCT/US2013/062369 WO2014052873A1 (en) 2012-09-28 2013-09-27 Graphically representing programming attributes

Publications (2)

Publication Number Publication Date
KR20150063409A KR20150063409A (ko) 2015-06-09
KR102021915B1 true KR102021915B1 (ko) 2019-09-17

Family

ID=49448262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157008604A KR102021915B1 (ko) 2012-09-28 2013-09-27 프로그래밍 속성의 그래픽 표현

Country Status (9)

Country Link
US (1) US9852153B2 (ko)
EP (1) EP2901272B1 (ko)
JP (1) JP6557603B2 (ko)
KR (1) KR102021915B1 (ko)
CN (1) CN104685467B (ko)
AU (1) AU2013323260B2 (ko)
CA (1) CA2884365C (ko)
HK (1) HK1208544A1 (ko)
WO (1) WO2014052873A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210105669A (ko) * 2020-02-19 2021-08-27 (주)파모즈 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010065623A1 (en) 2008-12-02 2010-06-10 Ab Initio Software Llc Visualizing relationships between data elements and graphical representations of data element attributes
US10924467B2 (en) * 2016-11-04 2021-02-16 Microsoft Technology Licensing, Llc Delegated authorization for isolated collections
US10514854B2 (en) 2016-11-04 2019-12-24 Microsoft Technology Licensing, Llc Conditional authorization for isolated collections
KR101971900B1 (ko) * 2018-04-23 2019-04-24 한다시스템 주식회사 Gui 기반의 프로그램 개발 환경 제공 방법 및 이를 위한 컴퓨터 프로그램
CN110244978A (zh) * 2019-06-14 2019-09-17 上海英方软件股份有限公司 一种图形化显示数据结构的方法及装置
US10795796B1 (en) 2020-01-24 2020-10-06 Qumulo, Inc. Predictive performance analysis for file systems
US11775481B2 (en) 2020-09-30 2023-10-03 Qumulo, Inc. User interfaces for managing distributed file systems
US11567660B2 (en) 2021-03-16 2023-01-31 Qumulo, Inc. Managing cloud storage for distributed file systems
US11669255B2 (en) 2021-06-30 2023-06-06 Qumulo, Inc. Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations
US11599508B1 (en) * 2022-01-31 2023-03-07 Qumulo, Inc. Integrating distributed file systems with object stores
US11722150B1 (en) 2022-09-28 2023-08-08 Qumulo, Inc. Error resistant write-ahead log
US11729269B1 (en) 2022-10-26 2023-08-15 Qumulo, Inc. Bandwidth management in distributed file systems
US11921677B1 (en) 2023-11-07 2024-03-05 Qumulo, Inc. Sharing namespaces across file system clusters
US11934660B1 (en) 2023-11-07 2024-03-19 Qumulo, Inc. Tiered data storage with ephemeral and persistent tiers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082068A1 (en) 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for identifying dependencies between object-oriented elements
WO2001082072A1 (en) 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for generating source code for object-oriented elements
US20060190844A1 (en) 2005-02-22 2006-08-24 Binder Claudia P Configuring data structures
US20100138431A1 (en) 2008-12-02 2010-06-03 Ab Initio Software Llc Visualizing relationships between data elements and graphical representations of data element attributes

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04267434A (ja) * 1991-02-22 1992-09-24 Hitachi Ltd データ管理方式
JP3079881B2 (ja) 1993-08-10 2000-08-21 三菱自動車工業株式会社 道路交通状況推定方法および車両運転特性制御方法
JPH07319676A (ja) * 1994-05-20 1995-12-08 Hitachi Ltd メッセージフロー図生成方式
JP3239170B2 (ja) 1994-07-25 2001-12-17 アタカ工業株式会社 攪拌曝気装置における軸流インペラ
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6003040A (en) 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US7725433B1 (en) 1998-01-26 2010-05-25 International Business Machines Corporation Data navigation system and method employing data transformation lineage model
JPH11307412A (ja) 1998-04-20 1999-11-05 Matsushita Electron Corp 半導体製造データ処理方法
US6742003B2 (en) 2001-04-30 2004-05-25 Microsoft Corporation Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
US6725227B1 (en) 1998-10-02 2004-04-20 Nec Corporation Advanced web bookmark database system
US7117219B1 (en) 2000-05-05 2006-10-03 Group 1 Software, Inc. Method and apparatus for creating a lineage of a data field in a data flow system
US6859217B2 (en) * 2000-07-19 2005-02-22 Microsoft Corporation System and method to display and manage data within hierarchies and polyarchies of information
JP2002288403A (ja) 2001-03-27 2002-10-04 Ntt Comware Corp プロジェクト管理システム、プロジェクト管理方法、及びプロジェクト管理プログラム
EP1258814A1 (en) 2001-05-17 2002-11-20 Requisite Technology Inc. Method and apparatus for analyzing the quality of the content of a database
US7970240B1 (en) 2001-12-17 2011-06-28 Google Inc. Method and apparatus for archiving and visualizing digital images
US7401064B1 (en) 2002-11-07 2008-07-15 Data Advantage Group, Inc. Method and apparatus for obtaining metadata from multiple information sources within an organization in real time
US7546226B1 (en) 2003-03-12 2009-06-09 Microsoft Corporation Architecture for automating analytical view of business applications
US7120619B2 (en) 2003-04-22 2006-10-10 Microsoft Corporation Relationship view
US20040255239A1 (en) 2003-06-13 2004-12-16 Ankur Bhatt Generating electronic reports of data displayed in a computer user interface list view
EP1510938B1 (en) 2003-08-29 2014-06-18 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
EP1510937A1 (en) 2003-08-29 2005-03-02 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
US7698348B2 (en) 2003-12-19 2010-04-13 Kinaxis Holdings Inc. Extended database engine providing versioning and embedded analytics
US7197502B2 (en) 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US7594227B2 (en) 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
US7496583B2 (en) 2004-04-30 2009-02-24 Microsoft Corporation Property tree for metadata navigation and assignment
WO2005107405A2 (en) 2004-05-04 2005-11-17 Boston Consulting Group, Inc. Method and apparatus for selecting, analyzing and visualizing related database records as a network
US7177883B2 (en) 2004-07-15 2007-02-13 Hitachi, Ltd. Method and apparatus for hierarchical storage management based on data value and user interest
US7456840B2 (en) 2004-08-31 2008-11-25 Oracle International Corporation Displaying information using nodes in a graph
US7844582B1 (en) 2004-10-28 2010-11-30 Stored IQ System and method for involving users in object management
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US8176002B2 (en) 2005-03-24 2012-05-08 Microsoft Corporation Method and system for user alteration of the configuration of a data warehouse
US7734619B2 (en) 2005-05-27 2010-06-08 International Business Machines Corporation Method of presenting lineage diagrams representing query plans
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070061287A1 (en) 2005-09-09 2007-03-15 Jian Le Method, apparatus and program storage device for optimizing a data warehouse model and operation
US7493570B2 (en) 2005-09-12 2009-02-17 International Business Machines Corporation User interface options of a data lineage tool
US8577852B2 (en) 2006-03-23 2013-11-05 Infaxiom Group, Llc Automated records inventory and retention schedule generation system
WO2007127956A2 (en) 2006-04-28 2007-11-08 Business Objects, S.A. Apparatus and method for merging metadata within a repository
GB0608926D0 (en) 2006-05-05 2006-06-14 Ibm An assessment method and apparatus for matching vendor offerings to service provider requirements
US8654125B2 (en) 2006-06-22 2014-02-18 International Business Machines Corporation System and method of chart data layout
JP2008134705A (ja) 2006-11-27 2008-06-12 Hitachi Ltd データ処理方法及びデータ分析装置
US7590672B2 (en) 2006-12-11 2009-09-15 Bycast Inc. Identification of fixed content objects in a distributed fixed content storage system
US8640086B2 (en) 2006-12-29 2014-01-28 Sap Ag Graphical user interface system and method for presenting objects
US20080172629A1 (en) 2007-01-17 2008-07-17 Microsoft Corporation Geometric Performance Metric Data Rendering
US7849050B2 (en) 2007-01-29 2010-12-07 Business Objects Data Integration, Inc. Apparatus and method for analyzing impact and lineage of multiple source data objects
CA2593233A1 (en) 2007-07-06 2009-01-06 Cognos Incorporated System and method for federated member-based data integration and reporting
US8266122B1 (en) 2007-12-19 2012-09-11 Amazon Technologies, Inc. System and method for versioning data in a distributed data store
US8332782B1 (en) 2008-02-22 2012-12-11 Adobe Systems Incorporated Network visualization and navigation
JP5643654B2 (ja) * 2008-02-26 2014-12-17 アビニシオ テクノロジー エルエルシー データ関連性のグラフ表現
US8819010B2 (en) 2010-06-28 2014-08-26 International Business Machines Corporation Efficient representation of data lineage information
WO2012031301A1 (en) * 2010-09-03 2012-03-08 Jackson Robert Lewis Jr Sparse dynamic selection trees
US9256350B2 (en) 2011-03-30 2016-02-09 Nexsan Technologies Incorporated System for displaying hierarchical information
US20120310875A1 (en) 2011-06-03 2012-12-06 Prashanth Prahlad Method and system of generating a data lineage repository with lineage visibility, snapshot comparison and version control in a cloud-computing platform
US9659042B2 (en) 2012-06-12 2017-05-23 Accenture Global Services Limited Data lineage tracking
US10089335B2 (en) 2012-07-10 2018-10-02 Microsoft Technology Licensing, Llc Data lineage across multiple marketplaces
US20160063106A1 (en) * 2012-08-08 2016-03-03 Google Inc. Related Entity Search
US9063998B2 (en) 2012-10-18 2015-06-23 Oracle International Corporation Associated information propagation system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082068A1 (en) 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for identifying dependencies between object-oriented elements
WO2001082072A1 (en) 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for generating source code for object-oriented elements
US20060190844A1 (en) 2005-02-22 2006-08-24 Binder Claudia P Configuring data structures
US20100138431A1 (en) 2008-12-02 2010-06-03 Ab Initio Software Llc Visualizing relationships between data elements and graphical representations of data element attributes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210105669A (ko) * 2020-02-19 2021-08-27 (주)파모즈 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체
KR102364893B1 (ko) * 2020-02-19 2022-02-18 (주)파모즈 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체

Also Published As

Publication number Publication date
JP2015535370A (ja) 2015-12-10
CN104685467B (zh) 2018-06-29
KR20150063409A (ko) 2015-06-09
AU2013323260A1 (en) 2015-03-19
WO2014052873A1 (en) 2014-04-03
EP2901272B1 (en) 2021-01-06
US9852153B2 (en) 2017-12-26
CN104685467A (zh) 2015-06-03
HK1208544A1 (en) 2016-03-04
CA2884365A1 (en) 2014-04-03
JP6557603B2 (ja) 2019-08-07
AU2013323260B2 (en) 2018-08-09
CA2884365C (en) 2020-09-08
US20140095560A1 (en) 2014-04-03
EP2901272A1 (en) 2015-08-05

Similar Documents

Publication Publication Date Title
KR102021915B1 (ko) 프로그래밍 속성의 그래픽 표현
AU2018213989B2 (en) Visualizing relationships between data elements and graphical representations of data element attributes
US11086751B2 (en) Intelligent metadata management and data lineage tracing
JP6594950B2 (ja) データ系統の要約
CA2814835C (en) Managing data set objects in a dataflow graph that represents a computer program
US20210357503A1 (en) Systems and Methods for Detecting Data Alteration from Source to Target
BRPI0609335A2 (pt) aplicações modulares para sistema móvel de dados
Psallidas et al. Provenance for interactive visualizations
KR101902191B1 (ko) 질의 기반 소프트웨어 논리의 동적 변경 및 실행을 위한 멀티테넌트 지원 장치 및 방법
Silva et al. DBSnap++: creating data-driven programs by snapping blocks
US20240078244A1 (en) Methods and Systems for Tracking Data Lineage from Source to Target
US20140068425A1 (en) System and method of modifying order and structure of a template tree of a document type by splitting component of the template tree
Paplanus et al. EMDS 5.0 and Beyond

Legal Events

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