KR20060080528A - 객체 모델 설계를 용이하게 하는 방법 및 시스템 - Google Patents

객체 모델 설계를 용이하게 하는 방법 및 시스템 Download PDF

Info

Publication number
KR20060080528A
KR20060080528A KR1020050111366A KR20050111366A KR20060080528A KR 20060080528 A KR20060080528 A KR 20060080528A KR 1020050111366 A KR1020050111366 A KR 1020050111366A KR 20050111366 A KR20050111366 A KR 20050111366A KR 20060080528 A KR20060080528 A KR 20060080528A
Authority
KR
South Korea
Prior art keywords
class
tree structure
tree
objects
relationships
Prior art date
Application number
KR1020050111366A
Other languages
English (en)
Other versions
KR101169171B1 (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 KR20060080528A publication Critical patent/KR20060080528A/ko
Application granted granted Critical
Publication of KR101169171B1 publication Critical patent/KR101169171B1/ko

Links

Images

Classifications

    • 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/10Requirements analysis; Specification techniques

Landscapes

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

Abstract

객체 모델의 설계를 용이하게 하는 디자이너 도구. 이 도구는 객체들의 그래프에 대한 컴퓨터 판독가능 표현을 입력으로서 가지며, 객체들의 관계 및 속성을 도시하는 편집가능한 트리들로서 이런 클래스들을 표기하는 하나 이상의 다이어그램을 자동으로 생성한다. 이런 그래프들은 본질적으로 트리형 구조를 가지며, 본 접근방법은 이런 구조를 이용한다. 디자인 도구 시스템은 하나 이상의 그래프들을 입력으로서 수신하고, 그 하나 이상의 그래프들을 편집가능한 트리형 구조로 변환하는 레이아웃 컴포넌트를 포함한다. 이 시스템은 또한 편집가능한 트리형 구조를 트리형 구조 다이어그램으로서 제공하고, 이것과 함께 사용자의 대화를 용이하게 하는 프리젠테이션 컴포넌트를 포함한다. 이 도구는 기존의 객체 모델 파일들을 열고, 편집하고, 저장하는데, 또는 새로운 파일들을 생성하는데 사용될 수 있다.
객체 모델, 트리형, 다이어그램

Description

객체 모델 설계를 용이하게 하는 방법 및 시스템{OBJECT MODEL TREE DIAGRAM}
도 1은 본 발명에 따라 객체 모델의 설계를 용이하게 하는 설계 도구 시스템을 예시.
도 2는 본 발명에 따라 객체 모델 설계를 용이하게 하는 방법론을 예시.
도 3은 본 발명의 디자이너 도구의 특성을 예시.
도 4는 본 발명의 디자이너 도구를 사용하여 수행될 수 있는 연산을 예시.
도 5는 본 발명에 따라 조직 도표의 언어의 추상화 구문(abstract syntax)을 구성하는 클래스들의 예시적인 트리형 구조의 레이아웃을 예시.
도 6은 본 발명에 따라 트리형 구조 다이어그램의 디자이너 스크린샷을 예시.
도 7은 본 발명에 따라 트리형 구조의 표현을 다중 다이어그램으로 예시.
도 8은 본 발명의 방법론의 하나 이상의 학습된 특징의 자동화를 용이하게 하는 인공 지능 컴포넌트를 이용하는 디자이너 도구 시스템을 예시.
도 9는 개시된 아키텍처를 실행할 수 있도록 동작가능한 컴퓨터의 블록도.
도 10은 본 발명에 따르는 예시적인 컴퓨팅 환경의 개략적인 블록도.
<도면의 주요 부분에 대한 부호의 설명>
100: 디자이너 도구
102: 레이아웃 컴포넌트
104: 편집가능한 트리형 구조
108: 트리형 구조 다이어그램
본 발명은 다이어그램의 프리젠테이션에 관한 것이며, 보다 구체적으로는 소프트웨어 관련 도구에서의 클래스 다이어그램의 프리젠테이션에 관한 것이다.
여러 회사의 경우 소프트웨어의 전략적 가치가 증가하면서, 소프트웨어 벤더는 소프트웨어의 제작을 자동화하고, 품질을 개선하며, 비용 및 시장 진입 시간(time-to-market)을 줄이는 새로운 기술들을 계속해서 찾는다. 이런 기술들은 컴포넌트 기술, 비주얼 프로그래밍, 패턴 및 프레임워크를 포함한다. 소프트웨어 시스템의 복잡도가 범위와 크기에 있어 증가하면서, 회사들은 물리적인 분배, 장애 허용성(fault tolerance), 복제, 보안, 병행성, 및 부하 균형 등의 구조적인(architectural) 문제들을 재발시키는 이런 복잡도를 관리하고 해결하기 위한 기술을 찾게 된다. 또한, 인터넷의 발전은 일부 통신 교환을 보다 단순하게 만든 반면에 이런 구조적인 문제들은 악화시키고 있다.
UML(Unified Modeling Language)라 불리는 한 가지 종래 기술은 이런 요구들에 응하여 설계되었다. UML은 소프트웨어 시스템의 산물을 명시하고, 가시화하고, 구성하고, 문서화하는 표준 언어일 뿐만 아니라, 비즈니스 모델링 및 기타 비소프트웨어 시스템을 위한 표준 언어이다. UML 도구는 객체-지향의 소프트웨어와 소프트웨어 개발 프로세스를 개발하는데 사용되고, 소프트웨어 프로젝트의 설계를 표현하기 위해 그래픽 표시(notations)를 사용한다.
한 가지 유용한 소프트웨어의 구조적인 표현은 클래스 다이어그램이다. 클래스 다이어그램은 시스템의 기호들의 정적 구조를 기술하는 그래픽 프리젠테이션을 제공하고, 클래스, 타입, 및 그들의 내용 및 관계 등의 선언적인(정적인) 모델 구성요소의 집합(collection)을 도시한다. 클래스는 공통의 구조 및 거동을 공유하는 계층구조로 배치되며, 기타 클래스들과 연관된다. 클래스 다이어그램은 클래스, 패키지, 및 객체 등의 설계 구성요소를 사용하여 클래스 구조 및 내용을 모델링하고, 또한 봉쇄(containment), 상속, 연합 등의 관계를 디스플레이한다. 객체-지향의 프로그래밍이란 특수 용어에 있어서 클래스는 객체 지향의 프로그램에서 일련의 객체의 구조 및 거동을 정의하는 구성요소이다. 객체 지향의 애플리케이션에서, 클래스는 특성(attributes)(멤버 변수), 연산(operations)(멤버 함수), 및 다른 클래스와의 관계(relationships)를 가진다.
클래스 다이어그램을 표기하기 위해 UML을 사용하는 것은 몇 가지 제한사항을 가지며, 이는 다음과 같이, UML 클래스 다이어그램을 자동으로 배치하는 것은 어려운 알고리즘적 문제여서 아주 만족스러운 결과를 거의 제공하지 못한다는 점이고, UML 클래스 다이어그램을 수동으로 배치하는 것은 특별히 라인 교차에 관련하여, 의미론적으로 중요한 장식들을 그들의 의미가 쉽사리 드러나도록 배치함에 있 어서 시간 소모적이다라는 점이고, 일련의 클래스의 UML 다이어그램은 이런 클래스들이 본질적으로 트리 구조로 조성될 수 있다는 사실에 관하여 거의 비용을 지불하지 않는다는 점이고, 마지막으로 UML 다이어그램의 영역을 확장 및 축소하는 체계적인 방법이 존재하지 않는다는 점이다.
문법을 정의하는 다른 보편적인 접근방법은 BNF(Backus-Naur Form)이다. BNF와 그 확장판인 EBNF(Extended BNF)는 프로그래밍 언어의 공식화에 있어 널리 사용되는 문법 정의에 관한 문자적 접근방법이다. 그러나, 예컨대, UML, BNF, 및 EBNF 등의 이런 종래의 개발 도구들은 개발 도구의 분야에서 채워지지 않은 실질적인 요구를 만족시키지 못하게 하는 제한사항들을 내포하고 있다.
이하에 본 발명의 일부 양상에 대한 기본적인 이해를 제공하기 위해 본 발명의 간략화된 요약을 제공한다. 이 요약은 본 발명의 포괄적인 개요는 아니다. 이는 본 발명의 중요/결정적인 구성요소를 식별하거나, 본 발명의 범위를 기술하기 위한 것으로 의도되지는 않는다. 그 유일한 목적은 나중에 제공될 보다 상세한 설명에 대한 도입부로서 본 발명의 일부 개념을 간략화된 형태로 제공하기 위함이다.
일 양상에 있어서 본원에 개시되고 주장된 발명은 객체들(예컨대, 클래스들)의 그래프의 컴퓨터 판독가능 표현을 입력으로서 가지는 아키텍처를 포함하고, 이런 클래스를 그들의 관계 및 속성(properties)을 도시하는 편집가능한 트리들로서 표기하는 하나 이상의 다이어그램 자동으로 생성한다. 이 접근방법은 특히 도메인-특정 언어를 정의하는 개념을 나타내는 클래스들의 그래프를 정의하기 위한 것으로 의도된다. 이런 그래프는 종종 객체 모델, 도메인 모델, 메타 모델, 추상화 구문 또는 문법이라 불린다. 이런 그래프는 본질적으로 트리형 구조를 가지고, 이 구조는 이 접근방법에 의해 사용된다. 이 접근방법은 또한 지시된 관계가 중요한 일종의 객체 모델에 적용될 수 있다. 또한, 여기에서 예컨대, 삽입(embedding), 참조, 상속, 및 종속 등의 여러 가지 종류의 지시된 관계들을 실질적으로 동시에 처리하는 능력이 제공된다.
본 발명은 문법을 공식화하는 프로세스를 돕기 위해 현대 컴퓨터 시스템의 대화 능력을 고려한다. 이런 대화 능력은 광범위하게 3가지 영역, 즉 원하는 부분을 보기 위해 다이어그램을 재구성하기(예컨대, 확장/축소하기, 객체들을 이동하기, 및 도구 팁을 도시하기), 검색하기, 및 인쇄된 매체에 있기 어려운 큐(cues)(예컨대, 컬러) 사용하기로 분류된다. 이 접근방법은 적어도 하기의 이점들, 즉 다이어그램이 수동보다는 자동으로 배치된다는 점, 다이어그램이 디스플레이 부동산(real-estate)의 사용에 있어서 간편하고(compact) 효율적인 점, 라인 교차가 회피된다는 점, 다이어그램의 섹션들이 확장 및 축소될 수 있다는 점, 라인 장식의 단정하고 판독가능 배치가 자동화된다는 점, 다이어그램이 기본 그래프의 본래의 트리형 구조를 예시한다는 점, 편집하기가 간단하다는 점 중 하나를 제공한다.
이것의 지원으로, 본 발명에 따르는 객체 모델의 설계를 용이하게 하는 설계 도구 시스템이 제공된다. 지시된 관계를 포함하는 객체들(예컨대, 클래스들)의 하나 이상의 그래픽의 컴퓨터 판독가능 표현이 주어지면, 이 시스템은 이런 객체 다이어그램을 객체 관계 및 속성을 도시하는 편집가능한 트리형 구조로서 표기하는 하나 이상의 객체 다이어그램(예컨대, 클래스 다이어그램)을 자동으로 생성한다. 이 시스템은 하나 이상의 그래프를 입력으로서 수신하고, 그 하나 이상의 그래프를 편집가능한 트리형 구조로 변환하는 레이아웃 컴포넌트를 더 포함할 수 있다. 그 편집가능한 트리형 구조를 트리형 구조 다이어그램으로서 제공하고, 그것과 함께 사용자 대화를 용이하게 하는 프리젠테이션 컴포넌트가 이용될 수 있다. 이 도구는 기존의 객체 모델 파일을 열고, 편집하고, 저장하는데, 또는 새로운 파일을 생성하는데 사용될 수 있다.
다른 양상에서, 사용자가 자동으로 수행되길 원하는 동작을 예측하거나(prognose) 추론하기 위해 확률적 및/또는 통계적 기반의 분석을 수행하는 인공 지능 컴포넌트를 이용할 수 있다.
상기 및 관련된 목적을 달성하기 위해, 본 발명의 소정의 예시적인 양상이 하기의 상세한 설명과 첨부된 도면에 관련되어 본원에서 기술된다. 이런 양상은 본 발명의 원리가 이용될 수 있는 다양한 방법들 중 일부만을 나타내고 있으나, 본 발명은 모든 이런 양상과 이와 동등한 것을 포함하는 것으로 의도된다. 본 발명의 기타 장점 및 새로운 특징은 도면에 함께 고려할 때 하기의 본 발명의 상세한 설명으로부터 명확해질 것이다.
현재 본 발명은 같은 부호가 도면 전체에 걸쳐 같은 구성요소를 지칭하는데 사용되는 도면들을 참조하여 기술된다. 하기의 상세한 설명에서, 설명하기 위한 목적으로, 수많은 특정한 세부사항이 본 발명에 대한 전반적 이해를 제공하기 위해 기술된다. 그러나, 본 발명이 이런 특정한 세부사항 없이도 실시될 수 있음은 분명할 것이다. 다른 예에서, 공지된 구조 및 장치들이 본 발명의 기술을 용이하게 하기 위해 블록도 형태로 도시된다.
본 명세서에서 사용된, 용어 "컴포넌트"와 "시스템"은 컴퓨터 관련된 개체인 하드웨어, 하드웨어와 소프트웨어의 결합, 소프트웨어, 또는 실행중인 소프트웨어를 지칭하는 것으로 의도된다. 예를 들면, 컴포넌트는 프로세서상에서 실행되는 프로세스, 프로세서, 객체, 실행가능물(executable), 실행중인 스레드, 프로그램, 및/또는 컴퓨터일 수 있으나, 이에만 한정되지는 않는다. 예로서, 서버상에서 실행되는 애플리케이션, 및/또는 서버도 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 실행중인 프로세스 및/또는 스레드 내에 존재할 수 있고, 컴포넌트는 하나의 컴퓨터상에서 지역화되고/거나 2개 이상의 컴퓨터 간에 분산될 수 있다.
본원에서 사용된, 용어 "추론하기" 또는 "추론"은 일반적으로 이벤트 및/또는 데이터를 통해 캡쳐된 일련의 관찰로부터 시스템, 환경, 및/또는 사용자의 상태에 관해 논리적으로 생각하거나, 그 상태를 추론하는 프로세스를 지칭한다. 추론은 특정한 문맥 또는 동작을 식별하는데 이용될 수 있거나, 예컨대, 상태들에 대한 확률 분포를 생성할 수 있다. 추론은 즉 확률적인 것, 즉 데이터 및 이벤트의 고려에 기초하여 관심 있는 상태들에 대한 확률 분포의 계산일 수 있다. 추론은 또한 일련의 이벤트 및/또는 데이터로부터 고수준 이벤트를 구성하는 경우 이용되는 기술을 지칭할 수 있다. 이런 추론에 의해 일련의 관찰된 이벤트 및/또는 저장된 이벤트 데이터로부터 새로운 이벤트 또는 동작을 구성하게 되며, 그 이벤트들이 밀 접한 시간 근접성(close temporal proximity)으로 상관되거나 아니 되거나, 그 이벤트 및 데이터가 여러 이벤트 및 데이터 소스로부터 나오든 하나로부터 나오든지 간에 그러하다.
정보를 사용자에게 디스플레이하는 소정의 방식이 소정의 도면에 관련되어 도시되고 기술되나, 당업자는 다양한 다른 대안들이 이용될 수 있음을 인식할 것이다. 용어 "스크린", "웹 페이지", 및 "페이지"는 일반적으로 본원에서 혼용하여 사용된다. 페이지 또는 스크린은 디스플레이 기술(description)로서, 그래픽 사용자 인터페이스로서, 정보를 스크린(예컨대, 개인용 컴퓨터, PDA, 이동 전화기, 또는 기타 적절한 장치) 상에 표기하는 기타 방법에 의해 저장되고/거나 전송되며, 그 페이지 상에 디스플레이되는 레이아웃, 및 정보 또는 내용은 메모리, 데이터베이스, 또는 다른 저장 장비에 저장된다.
우선, 도면을 참조하면, 도 1은 본 발명에 따라 객체 모델의 설계를 용이하게 하는 디자이너 도구 시스템(100)을 예시한다. 지시된 관계를 포함하는 객체들(예컨대, 클래스들)의 하나 이상의 그래프의 컴퓨터 판독가능 표현이 주어지면, 시스템(100)은 이런 객체 다이어그램을 객체 관계 및 속성을 도시하는 편집가능한 트리형 구조로서 표기하는 하나 이상의 객체 다이어그램(예컨대, 클래스 다이어그램)을 자동으로 생성한다. 이것의 지원으로, 시스템(100)은 하나 이상의 그래프를 입력으로서 수신하고, 그 하나 이상의 그래프를 편집가능한 트리형 구조(104)로 변환하는 레이아웃 컴포넌트(102)를 더 포함한다. 시스템(100)은 편집가능한 트리형 구조(104)를 트리형 구조 다이어그램(108)으로서 제공하고, 그것과 함께 사용자 대 화를 용이하게 하는 프리젠테이션 컴포넌트(106)를 더 포함한다. 도구는 기존의 객체 모델 파일을 열고, 편집하고, 저장하고, 또는 새로운 파일을 생성하는데 사용될 수 있다.
새로운 접근방법이 도메인 특정 언어를 정의하는 개념을 나타내는 클래스의 그래프를 정의하는 경우 특히 유용하다. 이런 그래프는 종종 객체 모델, 메타 모델, 도메인 모델, 추상화 구문 또는 문법이라 불린다. 이런 그래프는 본질적으로 트리형 구조를 가지며, 그 구조가 이용된다. 당업자는 개시된 새로운 접근방법이 지시된 관계가 중요한 경우의 일종의 객체 모델에 적용될 수 있음을 인식할 것이다.
도 2는 본 발명에 따라 객체 모델 설계를 용이하게 하는 방법론을 예시한다. 간략히 설명하기 위해, 본원에 도시된 하나 이상의 방법론이 예컨대, 흐름도 형태로 도시되고, 일련의 동작들로서 기술되지만, 본 발명이 일부 동작이 본 발명에 따라 본원에 도시되고 기술된 것과는 다른 순서로 및/또는 이와는 다른 동작들과 동시에 발생할 수 있을 경우, 그 동작 순서에 의해 한정되지 않음을 이해하고 인식할 것이다. 예를 들면, 당업자는 대안으로서 임의 방법론이 일련의 상호관련된 상태들 또는 이벤트로서 상태 다이어그램 등에 나타날 수 있음을 이해하고 인식할 것이다. 또한, 모든 예시된 동작들이 본 발명에 따라 방법론을 구현하는데 요구되지않을 수 있다.
단계(200)에서, 디자이너 도구 시스템은 객체 모델의 컴퓨터 판독가능 표현을 하나 이상의 여러 가지 종류의 지시된 관계를 포함하는 그래프의 형태로 수신한 다. 단계(202)에서, 디자이너 도구는 그래프의 기본 트리 구조를 이용하고, 그래프 및 관계를 객체들(예컨대, 클래스 객체들)의 단일한 편집가능한 트리형 구조로 처리한다. 단계(204)에서, 구조는 객체들의 관계 및 속성을 표기한다. 단계(206)에서, 객체들의 트리형 구조는 사용자에게 단일 객체 다이어그램으로서 렌더링 될 수 있거나, 사용자에 의해 액세스되는 다수의 다이어그램에 걸쳐 사용자에게 부분적으로 렌더링 될 수 있다.
예를 들면, 구조는 분리된 다이어그램들, 참조 및 삽입의 다이어그램, 및 또 다른 상속의 다이어그램으로 구문분석될 수 있다. 대안으로서, 단일 구조는 대응하는 다이어그램 상에 제공되는 2개의 부분구조로 구문분석될 수 있다. 단계(208)에서, 트리형 구조는 사용자가 수많은 다른 연산들을 수행할 수 있도록 대화형으로 작성된다. 연산은 객체들(예컨대, 클래스들)을 첨부 및 삭제하기, 객체들의 상속 관계 및 이진 처리하기, 관계 계층구조를 확장 및 축소(또는 감축)하기, 속성과 대화하기, 객체 및 객체 속성을 재배치하기, 및 객체들 사이에서 검색 및 탐색하기를 포함한다.
이제 도 3을 참조하면, 본 발명의 디자이너 도구의 특성이 예시되어 있다. 이런 특성들 각각은 도 5에 관련하여 이후에 부가적으로 기술될 것이다. 단계(300)에서, 다이어그램이 종래의 시스템에서와 같이 수동보다는 자동으로 배치된다. 사용자의 주요 작업은 객체들과 그 관계가 어떠한지를 입력하는 것이며, 이 도구는 이에 따라 구조를 배치한다. 그럼에도, 일부 레이아웃 재배치(rearrangements)는 사용자에 의해 행해질 수 있다. 예를 들면, 사용자는 어떤 객 체를 그 구조의 좌측에 디스플레이할 것인지, 어떤 순서로 부차적인 노드를 나타낼지를 지시할 수 있다. 간격두기(spacing), 레벨의 위치선정, 객체들의 크기 및 구조, 및 라인들의 형태 등 모든 것이 자동으로 결정된다. 조직은 본질적으로 루트 노드(또는 객체)로부터 트리형 구조의 좌측 상단 모서리에서부터 내려간다. 이렇게 행함으로써, 구조는 한 객체가 다른 객체들을 포함할 수 있음을 지시한다. 트리형 구조의 좌측에서 우측으로의 흐름은 삽입, 참조, 또는 상속 관계 등의 방향성 관계에 의해 구동된다. 많은 이런 트리들이 전체적인 표기상에 존재한다. 언어 정의는 특히 이런 종류의 구조를 가진다. 그러므로, 개시된 디자이너 도구는 이런 언어 개발을 지원한다.
이 도구와 종래의 UML(Unified Modeling Language) 도구를 비교해 보면, UML은 트리형 구조의 개념을 가지지 않고, 단순하게 객체 및 객체 간 관계에 관한 것이다. UML은 동일 노드, 및 노드 간 라인들을 제공한다. 그러나, 최상단 좌측 모서리에 있는 루트 노드로부터, 수동으로 입력되어야 하는 기본 노드들의 라인들의 방사(splay)가 사용자에 의해 수동으로 정의되는 순서대로 방출된다.
단계(302)에서, 또 다른 도구 특성은 구조 다이어그램이 간편하고 효율적인 방식으로 프리젠테이션 부동산에 따라 제공된다는 점이다. 이것이 자동으로 달성될 수 있는 한 가지 이유는 다양한 노드 간의 라인들이 연결되기 때문이다. 이는 라벨 및 기타 장식을 라인 종단 혹은 그 근처보다는 라인의 중간에 배치함으로써 가능해진다. 예를 들면, 루트 노드는 트리형 구조의 기타 노드들인 기타 노드들과 단일 지점에서 연결된다. 또한, 라벨들(라인 장식)은 다이어그램의 간편화를 더 용이하게 하기 위해 라인 상에 배치된다.
단계(304)에서, 서로 교차하지 않도록 노드들(또는 객체들)을 라인들에 상호연결한다. 이는 어떤 장소를 객체가 정의되는 구조에 제공한 다음에, 해당 노드를 다른 구조 위치에 복제함으로써 달성된다. 그러면, 이런 다른 위치는 객체 정의 위치를 참조한다. 임의 노드로부터 단일 노드로 되돌아가며 라인을 그리는 것 대신에, 단일한 참조 노드가 각각의 노드에 제공되어 통상적으로 UML에 연관된 라인 혼잡(confusion)을 감소시킨다. 종래의 도구에서 인식된, 다중 라인이 노드의 다수의 지점에서 시작되거나 종료되는 경우, 라인 교차의 가능성이 상당히 증가한다.
디자이너 도구의 또 다른 특성은 대화형 특징의 일부분으로 단계(306)에서 지시된 바와 같이 그 구조의 섹션이 확장 또는 축소될 수 있다는 점이다. 이로써 사용자는 예컨대, 다른 섹션보다 한 섹션에 초점을 맞추는 경우 여러 가지 방식으로 구조를 볼 수 있게 된다. 노드 중 하나로부터 순서가 정해진 라인들 중 일부는 그래픽 기호(이하에서 트위키(twicky)로서 지칭됨)로부터 방출된다. 사용자는 기본 서브트리 섹션을 확장 또는 축소하기 위해 단지 트위키만 선택하면 된다.
단계(308)에서, 도구는 라인 장식의 단정하고 판독가능한 배치를 용이하게 한다. 예를 들면, 피고용인(Employees), 지도자(Leaders), 및 팀(Teams) 등의 라인 라벨들이 대응하는 라인 근처에 자동으로 위치된다. 또한, 역할 관계 기호("다이오드형" 기호)가 종료되는 라인 종단으로부터 멀리 이동된다. 종래의 도구는 각각의 종료되는 라인의 경우 그 기호를 종료되는 노드 근처로 밀어 넣는다. 그러므로, 종래에는 종료되는 노드가 라인 장식과 섞이게 되어 보기가 매우 힘들었다. 본원에서 장식은 연결되는 라인의 중심 근방에서 그룹화되어, 보다 많은 정보가 장식에 포함되도록 한다.
한 가지 구현에서, 사용자는 라인 장식의 위치선정을 조정하도록 허용되지 않는다. 다른 구현에서, 도구가 다이어그램 부동산에 기초하여 장식들을 최상의 위치로 자동으로 조정하는 것을 고려한다. 또 다른 실시예에서는, 사용자가 장식을 선택하고 (그룹으로 또는 개별적으로) 관련된 라인을 따라 원하는 위치로 드래그하는 것이 허용된다는 점을 고려한다.
디자이너 도구에 의해 제공된 다이어그램은 단계(310)에서 지시된 특성, 및 기본 그래프의 자연스런 트리형을 예시한다. 다이어그램은 예컨대, 문법, 객체 모델, 도메인 모델, 메타-모델, 또는 스키마를 표기할 수 있다. 인스턴스 다이어그램으로 지칭되는 전체적인 트리형 구조 또는 그 서브트리들을 포함하는 여러 가지 다이어그램들이 그려질 수 있다. 전제적인 트리형 구조는 인스턴스 다이어그램이 가질 형태(shape)를 구술한다. UML은 인스턴스의 구조처럼 보이지 않는 박스 및 라인의 전체적인 임시 렌더링을 제공한다. 그러므로, 본 발명의 디자이너 도구는 언어 디자이너가 다이어그램이 지시하고 있는 것을 더 잘 이해하도록 돕는다.
디자이너 도구의 또 다른 특성은 단계(312)에서 지시된 대로, 편집하기가 직접적이다란 점이다. 디자이너는 다이어그램의 레이아웃을 편집하는데 시간을 낭비할 필요가 없다. 이에 반해서, 종래의 도구는 사용자가 다른 노드들에 관련하여 노드 및 라인들을 배치하는 것 등의 노드들을 어떻게 연결할지를 결정하도록 요구할 수 있다.
단계(314)에서, 도구는 확장가능하여서, 대부분 경우에 단일 다이어그램에서 넓은 객체 모델이 단일 숲(트리들의 집합)으로 제공될 수 있다. 디자이너 도구는 기호 및 노드의 반복시에 경제적이다. 노드들이 기존의 트리 가지에 첨부 또는 첨가될 수 있으며, 본질적으로 복잡함을 부가하지 않으면서 트리의 아래쪽 및 이것에 걸쳐있는 새로운 노드들을 밀어버린다. 종래에는, 많은 라인과 노드가 첨부될 경우 비구조형 그래프가 무질서한 방식으로 확장된다. 본 방법의 도구는 GUI 특징을 이용하며, 이런 다이어그램들을 효율적인 방식으로 확장한다. 도구는 예컨대, 사용자 대화를 보다 효율적이고 생산적으로 만드는 스크롤바, 윈도우 리사이징, 및 프린팅을 위한 페이지 매기기(pagination)를 제공한다.
또 다른 특성은 디자이너 도구가 단계(316)에서 지시된 대로, 기본 상속 및 관계 그래프 양자의 트리 구조를 캡처하는 일관성 있는 구조를 제공한다는 점이다.
도 4는 본 발명의 디자이너 도구를 사용하여 수행될 수 있는 연산을 예시한다. 단계(400)에서, 객체들(예컨대, 클래스들)은 첨부 또는 삭제될 수 있다. 상세한 설명이 클래스 객체를 지칭하고 있으나, 이런 연산들이 임의 타입의 객체 상에서 수행될 수 있음을 인식할 것이다. 새로운 클래스가 기존의 클래스 중 임의의 것 아래에 있는 구조의 좌측에 첨부될 것이다. 삭제될 경우, 클래스와 그 연관된 관계 모두가 그 구조로부터 삭제된다.
단계(402)에서, 도구는 클래스의 이진 관계에 관한 연산을 처리할 수 있다. 이진 관계는 기존의 클래스 간에 첨부될 수 있다. 관계는 방향성이 있다. 그 관계는 소스 노드(또는 클래스)로부터 대상 노드(또는 클래스)까지 "L" 형태의 라인 을 사용하여 소스 클래스 아래에 그려진다. 그 라인은 소스 클래스로부터 임의 다른 관계 라인들과 연결된다. 대상 클래스의 삽입은 관계의 다른 한 종단에 디스플레이된다. 이진 관계는 또한 기존의 클래스와 구조 백그라운드 사이에 첨부될 수 있다. 새로운 대상 클래스가 생성되며, 새로운 관계가 소스 및 대상 클래스 간에 생성된다.
관계가 삭제될 경우, 이것은 구조로부터 제거된다. 모든 다른 구조 구성요소는 제자리에 남아있는다. 그러나, 단정화 연산(tidying operation)이 트리를 보다 효율적인 표기로 재구성할 수 있는 리레이아웃 연산(relayout operation)을 개시하기 위해 수행될 수 있다.
관계 연산은 또한 다중도(multiplicity)에 관한 제한사항에 따라 삽입 관계를 참조 관계로 전환하는 것과, 참조 관계를 삽입 관계로 역전환하는 것을 포함한다. 삽입 부모는 그것에 대한 최대 다중도를 지닌다. 이는 사용자 대화를 구동할 수 있어 비유효한 다이어그램의 생성을 방지하게 하거나, 후속하는 검증 단계에 의해 검출될 수 있다. 또한, 정의 및 삽입 관계는 동일한 클래스의 경우 교환될(swapped) 수 있다.
단계(404)에서, 클래스의 상속 관계가 처리될 수 있다. 상속 관계는 기존의 클래스 간에 첨부될 수 있다. 상속 관계는 비순환적인 것으로서 편집하는 동안 혹은 후속해서 제한받는다 점을 인식해야 한다. 자식 클래스의 사용법(usage)은 부모 클래스 바로 아래의 상속 화살촉에 도시된다. 상속 관계는 기존의 클래스 및 다이어그램 백그라운드 사이에 첨부될 수 있다. 새로운 자식 클래스는 상속 관계 와 함께 생성된다. 상속 관계는 또한 삭제될 수 있으며, 한번 수행되면, 그 관계는 구조에서 제거된다. 모든 다른 구조 관계들은 유지된다.
infra로 지시된 바와 같은, 구조의 리레이아웃 연산은 단계(406)에서 지시된 대로 수행될 수 있으며, 이 연산은 모든 정의들이 현재 옵션에 따라 최적화된 장소로 이동되게 하고, 클래스의 모든 기타 표기들이 이에 따라 조성되게 한다.
단계(408)에서, 상속 계층구조가 제1 트위키에 있는 마이너스 "-" 부호에 의해 지시된 대로 현재 확장되는 경우, 상속 계층구조는 제1 트위키를 선택함으로써 축소될 수 있다. 클래스 아래의 완전한 상속 계층구조가 축소되고, 트위키의 "+" 부호에 의해 교체된다. 그러면 축소된 상속 계층구조는 제1 트위키를 선택함으로써 확장될 수 있다.
이전에 확장된 경우, 마이너스 "-" 부호를 가진 제2 트위키로부터 지시된 바대로, 상속 계층구조는 제2 트위키를 클릭함으로써 축소될 수 있다. 해당 관계를 통해 도달되는 완전한 계층구조가 축소되고, 제2 트위키는 "+" 부호로 교체된다. 플러스 "+" 부호를 도시하는 경우에 관계 계층구조는 제2 트위키를 선택함으로써 확장될 수 있다.
단계(410)에서, 객체 속성들을 또한 처리할 수 있다. 클래스의 속성들은 그 트위키가 마이너스 부호를 지시하는 경우 제3 트위키를 선택함으로써 첨부된 "플랩(flap)"에 노출될 수 있다. 속성 플랩이 열려 있는 경우, 속성의 타입 및 이름이 플랩에 도시된다. 속성 플랩이 다시 선택되면 사라지고, 제3 트위키가 "+" 부호를 도시한다. 또한, 마우스 포인터가 클래스 객체의 위, 예컨대 속성 플랩이 노출되 어 있는 장소 바로 위의 영역에 놓이면(hovered), 속성 플랩은 임시적으로 열린다. 속성은 또한 플랩이 열릴 경우 나타나거나 나타나지 않도록 클래스에 첨부되거나 클래스로부터 삭제될 수 있다.
단계(412)에서, 클래스 및 속성들은 재배치될 수 있다. 다이어그램의 좌측에 인접한 클래스는 수직으로 선택 및 재배치될 수 있다. 이는 객체를 그 구조의 상단에서 하단으로의(top-to-bottom) 순서에 따라 새로운 위치로 이동시킨다. 또한, 삽입 또는 참조 관계의 대상 노드로서 나타나는 클래스 객체는 소스 클래스의 일련의 관계 내의 노드를 드래그함으로써 수직으로 재배치될 수 있다. 또한 기타 방법은 예컨대, 나중에 이동시키기, 일찍 이동시키기, 먼저 이동시키기, 마지막에 이동시키기, 여기로 이동시키기 등을 가능하게 한다. 상속 관계의 자식으로서 나타나는 클래스 노드는 소스 클래스의 일련의 자식을 내의 노드를 드래그함으로써 수직으로 재배치될 수 있다. 또한 기타 방법은 예컨대, 나중에 이동시키기, 일찍 이동시키기, 먼저 이동시키기, 마지막에 이동시키기, 여기로 이동시키기 등을 가능하게 한다. 또 다른 연산에서, 속성 플랩 내의 속성은 해당 클래스 객체의 목록화된 속성 내에서 선택된 속성을 드래그함으로써, 선택되고 수직으로 재배치될 수 있다. 또한 기타 방법은 예컨대, 나중에 이동시키기, 일찍 이동시키기, 먼저 이동시키기, 마지막에 이동시키기, 여기로 이동시키기 등을 가능하게 한다.
단계(414)에서, 도구는 검색 연산을 용이하게 한다. 클래스의 사용들 중 하나가 주어진 경우, 클래스의 정의 또는 사용이 적어도 2가지 방법에 의해 검색될 수 있다. 먼저, 클래스의 임의 표기를 선택하고, 필요하다면 그 정의를 하이라이 트하고 프리젠테이션을 스크롤링하는 연산을 호출하라. 두 번째로, 선택된 클래스 객체 또는 클래스 객체들의 정의를 각각의 사용자들에 링크시키는 다이어그램의 우측에 있는 라인들의 그룹은 "사이드 링크(side link)"를 도시한다. 사이드 링크는 사용자가 마우스 포인터를 임의의 사용 위에 놓으면, 다이어그램의 우측면에 임시적으로 나타나고, 사용자에게 정의에 대한 참조를 지시한다. 이는 트리 구조형 레이아웃의 장점과, 도구의 대화 능력의 장점을 모두 이용한다.
도 5는 본 발명에 따라 조직 도표의 언어의 추상화 구문을 구성하는 클래스들의 예시적인 트리형 구조(500)의 레이아웃을 예시한다. 클래스 객체 Organization, Employee, Team에 대한 초기 사용자 입력이 주어지는, 여기서 Employee는 여러 가지 타입, 즉 Consultant, Manager, Executive 및 VacantPosition인 경우가 있다. 도구는 정해진 관계에 따라 서로 상호연결한 라인들을 자동으로 도시하여, 자동으로 생성된 구조(500)를 생성한다.
구조(500)는 좌측 상단의 루트 클래스 객체 "Organization"으로부터 시작한다. 이런 구현에서, 각각의 노드는 바닥 에지를 따라서 줄줄이 놓인 3개의 작은 트위키 기호(502)를 포함하며, 이 부호는 연관된 노드에 관한 확장/축소 연산의 수행을 용이하게 한다. 이런 경우에, 최대 좌측의 제1 트위키([-]와 유사한 기호에 의해 표시됨)는 상속 계층구조의 확장 및 축소를 허용하고, 제2(또는 중간) 트위키는 관계들의 확장 및 축소를 허용하며, 제3(또는 최대 우측) 트위키는 속성 플랩의 확장 및 축소를 허용한다. 이런 트위키 연산의 수많은 다른 표현이 각각의 노드에 이용될 수 있음을 인식할 것이다. 예를 들면, (원형 구조의) 제4 트위키가 노드에 연관된 사용자 코멘트 또는 노드가 최종 수정되었던 시점 등의 메타데이터를 드러내는데 제공될 수 있다. 대안으로서, 적은 개수이지만 키스트로크(keystroke) 조합에 있어 다기능인 트위키 부호가 마우스 포인터가 우측 클릭에 연관되어, 예컨대 동일한 트위키로부터 여러 가지 연산을 호출하도록 제공될 수 있다.
이런 예에서, 관계 계층구조는 확장되는데, 제2 트위키가 확장을 위해 선택되었기 때문이다. Employee와 Team 노드들은 루트 노드로부터 방출되고, 기본 관계 및 상속 그래프에 대응하는 관계 및 상속을 정의하기 위해 라인 연결 기술을 사용하여 Organization 루트 노드에 연결된다.
Organization 클래스 노드는 본 발명의 라인 연결 능력을 이용하여 단일 지점에서 연결되며, 이는 UML 등의 종래의 도구에 대비되는 점이다. 또한, Employees, Leaders, 및 Teams의 라인 장식 라벨은 종래에 라인 종단에 제공되어서, 그 라인들을 가진 대상 노드에 터칭(touching)함으로써 대상 노드의 다른 지점들에서 해당 노드에서의 텍스트 및 객체의 잠재적으로 혼란스러운 번역(rendition)을 생성하도록 해야 한다.
다이어그램 상에 다수의 노드 버블 라벨링된 Employee가 존재한다. 루트 노드로부터 Employees, Leaders, 및 Teams 가지들(branches)이 각각 Employee 노드를 가진다. 본 발명의 설계 도구는 Employee 노드를 정의적인 Employee 클래스가 정의되는 장소(즉, Employee 노드가 굵게 된 경우(504))에 자동으로 배치한다. 라인 교차를 제거하는 것을 지지하는, 구조(500)의 기타 노드들은 정의적인 Employee 클래스(504)만을 지칭하고 굵지 않은(unbolded)(또는 회색빛의) 노드 또는 그래프인, 예컨대, Employee 노드(506) 등으로 지시된다. 본원에 사용된 바와 같은, 정의적인 및 비정의적인이란 용어는 노드에 적용되고, 삽입 및 참조란 용어는 아크에 적용된다. 또한 도구에 의해 제공된 연산들이, 즉 임의 위치로부터 비정의적인 노드로의 정의를 가져오기 위한 연산, 및 루트 노드를 정의적인 노드가 이동되는 장소에 생성하기 위한 연산이 존재한다. 이런 특징은 부가적인 작업을 행하지 않고 레이아웃을 통해 더 많은 제어를 제공한다.
주요 정의적인 Employee 노드(504) 아래의, 속성 플랩(508)이 String Title 및 String Name이라 불리는 특성 속성을 드러내도록 표기되어 있음에 유의해야 한다. 이런 예에서, 정의적인 Employee 노드(504)는 이런 2가지 속성에 연관되어 정의된다. 보다 많은 혹은 보다 적은 수의 속성들이 속성 플랩(508)에 이용되어 이곳에 드러날 수 있다. 이는 단순히 각각의 피고용인(employee)이 제목(title) 및 이름(name)을 가지는 것을 의미한다. 디폴트로, 사용자가 문법의 전체적인 구조를 보기로 선택할 경우, 속성 플랩은 드러나지 않는다. 그러므로, 한 가지 구현에서, 사용자는 연관된 속성을 드러내기 위해서 제3(또는 오른쪽) 트위키를 선택해야만 한다. 다른 구현에서, 사용자는 마우스 포인터를 제3 트위키 기호 위에 놓을 경우, 속성 플랩이 속성들을 드러내기 위해 임시적으로 나타난다. 그러면 이 속성들은 제3 트위키를 선택함으로써 영구적으로 나타날 수 있게 된다. 그러므로, 디자이너 도구는 언어 및 트리형 구조를 정의할 경우 사용자에게 중요하게 될 양상들에 초점을 맞추는 것을 용이하게 한다.
디자이너 도구는 관계의 역할의 명확한 표현을 제공하는 역할 기호(510)("다 이오드" 기호와 유사함)를 이용한다. 이곳은 부가적인 의미를 관계에 제공하는 기호 장식을 위한 본래의 위치이다. 예를 들면, 루트 Organization 노드 및 비정의적인 Employee 노드(512) 간의 관계는 Employees라 불리는 역할(510)을 가진다. 이 역할(510)은 플러스 부호 "+"로 표시되어 있고, 조직이 Employee라 불리는 역할을 하는 하나 이상의 Employee 인스턴스를 가진다는 것을 지시한다. 반대의 역할은 "1"로 표시되어 있고, 각각의 Employee가 정확히 하나의 조직에 의해 이용되고 있음을 지시한다.
도구는 또한 클래스의 정의, 삽입 또는 상속 관계에 있어서의 클래스의 사용, 및 참조하는 관계에 있어서의 클래스의 사용 간에 구별하기 위해 도표로 나타낸 규약(예컨대, 컬러 농도 및/또는 대시선 또는 점선들)을 이용한다. 예를 들면, Employee 클래스(512)는 상호연결된 대시선에 의해 지시된 대로, 참조하는 관계를 통해 루트 클래스 Organization(502)에 연결된다. 대안으로서, Employee 클래스(504)는 삽입 관계를 통해 루트 클래스 Organization(502)에 연결되며, 상호연결된 실선에 의해 지시된 바와 같다.
예시적인 다이어그램에서, 비정의적인(또는 사용법) 클래스 표기는 밝은 회색으로 제공되고, 반면에 정의적인 클래스들은 보다 강조되어(예컨대, 어두운 파랑으로) 제공된다. 정의적인 및 비정의적인 클래스 표기들은, 정의적인 클래스가 트위키를 포함하고 비정의적인 클래스는 트위키들을 포함하지 않도록, 트위키의 존재 또는 부재에 의해 정의적으로 명확히 구별될 수 있다. 라인의 농도는 한 관계가 삽입이고, 다른 관계가 참조임을 지시할 수 있다. 여러 가지 종류의 관계에 있어 서 차이점은 이런 예에서 예컨대, 참조 관계의 경우 점선을 사용하여 표시될 수 있다. 이런 표현은 컬러, 라인 타입 및 굵기, 및 기타 그래픽 표시 등의 여러 다르게 정의된 규약에 따라 행해질 수 있음을 인식할 것이다.
역할 기호가 채워지거나 채워지지 않는다. 이런 다이어그램으로부터 (예컨대, C#에서) 코드를 생성할 경우, 역할 기호가 채워지면, 속성은 클래스 상에서 생성되고, 그 역할에 대응하는 방법이 생성된다. 디자이너 도구는 라인이 예를 들면, 루트 노드 Organization(502) 및 참조 노드 Emloyee(512) 간을 나타내도록 단지 관계의 중요한 속성만을 도시하는 것을 용이하게 한다. 그러므로, 기호(예컨대, 역할 기호)에 연관된 라인 종단의 표기에 의해 사용자는 부가적인 속성을 제공하게 된다. 또한, 이런 장식들(라벨 Employee 및 역할 부호(510))이 라인의 가운데 근처에 배치된다는 사실은 역할 그 자체의 다수의 속성들을 나타내기 위해 장식들의 컬러 및 형태의 변경을 용이하게 하는데, 왜냐하면 장식들 주변에 많은 공간이 있기 때문이다.
관리자는 그 또는 그녀에게 보고하는 많은 피고용인을 가질 수 있다. 라벨 IndirectReports의 경우에, 피고용인은 역할 기호(514)의 우측에 있는 굵지 않은 박스 안의 별표(asterisk)에 의해 지시된 대로, 많은 관리자에게로의 간접적인 보고를 가질 수 있다. 바로 아래에 Reports 라벨과, "0"을 가진 굵게 된 박스가 있다. 이것은 피고용인이 직접 관리자에게 보고할 수도 있고, 직접하지 않을 수도 있음을 의미한다. 그래서, 이런 경우에, 4개의 기호가 사용되는데, "0"은 할 수 있다/하지 않을 수 있다(might/might not)를 위한 것이고, "1"은 항상 이런 관계를 가지는 것을 의미하고, 별표 "*"는 임의 개수를 가질 수 있음을 의미하고, 플러스 부호 "+"는 적어도 하나를 의미하지만 그 이상을 가질 수 있음을 의미한다.
정의적인 Employee 노드(504)는 제1 및 제3 트위키가 선택되게 하며, 제3 트위키는 이와 연관된 속성을 드러냄에 유의해야 한다. 제1 트위키는 속성 관계를 정의적인 Consultant 노드, 정의적인 Manager 노드, 및 정의적인 VacantPosition 노드로 확장한다. 이런 것들은 굵은 연결선(516)에 의해 지시된 바와 같이, 부모 Employee 노드(504)에 대한 자식 정의적인 노드들이다. 화살표의 종단은 부모 Employee 노드(504)를 가리키고 있다. 유사하게, 부모 정의적인 Manager 노드의 제1 트위키에 의해 확장되는 바와 같은 상속 관계는 굵은 상호연결된 라인(518)에 의해 지시된 바와 같은 정의적인 Executive 노드를 드러낸다.
지금 도 6을 참조하면, 본 발명에 따라 트리형 구조 다이어그램(602)의 디자이너 스크린샷(600)이 예시되어 있다. 디자이너의 중심 영역 또는 작업공간(604)이 편집될 트리형 구조 다이어그램(602)을 제공한다. 작업공간(604)의 좌측에는 작업공간(604)으로 드래그되어(dragged) 적절한 장소에 드롭될(dropped) 수 있는 일련의 구성요소들을 제공하는 툴박스(606)가 있다. 작업공간(604)의 우측에는 모델(602) 보기를 위한 다른 방법을 제공하는 탐색기(608), 및 선택된 구성요소의 상세한 속성을 도시하는 속성 그리드(610)가 있다.
표시의 연산을 더 잘 이해하기 위해서, 이후의 정의가 클래스들의 이후 표기들을 구별하는데 제공되는데, 정의하기(Definition)는 클래스의 완전한 정의이며 오직 하나 존재하는 표기이며, 사용법(Usage)은 임의 비정의적인 사용 예컨대, 클 래스를 삽입, 상속 또는 참조에 관련되어 또 다른 클래스의 자식으로서 나타내는 표기이며, 다이어그램의 정해진 클래스의 경우에 이런 많은 표기가 존재할 수 있다.
다이어그램을 배치할 때, 도구는 정의적인 클래스의 최적화 위치를 자동으로 판정한다. 이를 위한 다수의 옵션이 여러 가지 목적에 따라 적절하게 존재한다. 종종 이런 옵션들 중 몇 가지가 동시에 적용될 수 있는데, 어떻게 우선순위를 정해서 선택할지는 도구 사용자에게 달려있다. 옵션 또는 규칙은 정의를 다이어그램의 좌측 최상위 레벨에 도시하기, 클래스가 단지 한 부모에서 삽입될 경우 부모에 삽입된 정의를 도시하기, 클래스가 중요한 부모에게 삽입될 경우 해당 부모에 삽입된 정의를 도시하기, 클래스가 슈퍼클래스를 가질 경우 정의를 슈퍼클래스로부터 상속하기로서 도시하기, 클래스가 중요한 서브클래스를 가질 때 정의를 중요한 서브클래스의 슈퍼클래스로서 도시하기 등이며, 클래스는 이것을 중요하다고 마킹함으로써 "중요하다"고 판정될 수 있다.
그룹 내의 수직 순서는 사용자에 의해 명확하게 변경될 수 있다. 그러나, 한 가지 규칙이 초기에 존재할 수 있으며, 이것은 알파벳 순서 또는 사용자에 의해 선택된 다른 계산으로부터 유래된다.
비정의적인 클래스에서 그것의 정의 클래스로 쉽게 탐색하는 능력이 또한 제공된다. 이는 정의적인 클래스에 연관된 모든 클래스의 진한 마킹(예컨대, 하이라이팅)에 의해 달성될 수 있다. 예를 들면, 사용자가 비정의적인 클래스를 선택할 경우, 도구는 자동으로 정의적인 클래스, 기타 비정의적인 클래스 또는 양자 모두 에 태그를 붙이거나 하이라이트한다. 또 다른 예는, 예컨대, Employee 등의 회색빛 사용 노드와의 대화를 포함한다. 사용자가 대응하는 정의적인 Employee 노드로 취해지길 원한다면, 한 가지 방법은 마우스 포인터를 그 위에 놓고, 옵션을 선택하고, 원하는 지점에 도착하는 것이다.
또 다른 방법은 사용자가 사용법 위를 움직일 경우 사이드 링크를 제공하여 이 사이트 링크가 사용자의 눈을 정의적인 객체로 안내하는 것이다. 일 일시예에서, 사용자는 회색 비정의적인 노드들을 사용자를 정의적인 객체로 데려가는 실제 링크들과 교체할 수 있다. 다른 구현에서, 회색빛 비정의적인 노드는 3 내지 5 초간 예컨대 정의적인 노드를 찾는데 있어서 사용자를 돕기 위해서 임시적으로 인에이블될 수 있다.
하이라이팅 또는 기타 그래픽 지시는 또한 단지 한 예시로서, 삭제 정보의 전파를 지시하기 위해 이용될 수 있다. 예를 들어, 사용자가 삭제하기 위해 노드를 선택했을 때, 하이라이팅이 선택된 노드와, 모든 연관된 노드들, 라인들, 및 기타 관련된 객체들 및 기호들에 부과될 수 있어서, 선택된 노드 또는 객체를 삭제한 효과에 대해 사용자에게 피드백을 제공하게 된다. 다른 예에서, 기술이 애니메니션된 도면의 전체-부분(whole-part) 구조를 표기하는데 사용되는 경우를 가정한다. 그러면, 이동의 전파가 중요한 역할을 한다. 자동차 설계를 표기하는 다른 예에서, 컬러의 전파가 중요한 특징이 된다. 일반적으로, 다양한 종류의 정보가 아크를 따라 전파될 수 있다.
도 7은 본 발명에 따라 트리형 구조의 프리젠테이션을 다중 다이어그램들로 서 예시한다. 이 도구(100)는 다중 다이어그램을 사용할 경우 보다 편리한 프리젠테이션이 되도록 대규모 구조의 처리를 용이하게 한다. 레이아웃 컴포넌트(102)는 이전처럼 입력을 처리하고, 구조를 프리젠테이션 컴포넌트(104)로 출력한다. 그 후, 프리젠테이션 컴포넌트(104)는 수신된 구조를 처리하고, 어떻게 구조를 도구에 있는 다이어그램으로 제공할지를 결정한다. 이런 시나리오에서, 구조는 다중 다이어그램(DIAGRAM1,DIAGRAM2,...,DIAGRAMN)으로서 제공된다. 구조는 2개의 구분된 다이어그램, 예컨대, 제1 다이어그램(700), 및 제2 다이어그램(700)으로 제공된다.
프리젠테이션 옵션 또는 규칙은 예컨대, 상속 및 관계 계층구조가 여러 가지 다이어그램 상에, 또는 다이어그램들의 여러 가지 영역들 상에 분리되어 도시될 수 있는 것을 포함하나 이에만 한정되지 않는다. 또한 서브옵션은 모든 클래스 정의가 관계 계층구조상에 나타나고 단지 상속 계층구조가 클래스의 사용법을 포함하는 것, 관계 계층구조 내의 관련된 이른 옵션들이 적용되는 것, 및 모든 클래스 정의가 속성 계층구조상에 나타나고 단지 관계 계층구조가 사용법과 참조를 포함하는 것 등을 포함할 수 있다.
더욱 강인한 구현으로, 프리젠테이션 컴포넌트(104)는 레이아웃 컴포넌트(102)에 의한 트리형 구조의 구조화를 분석하고 조정하기 위해 레이아웃 컴포넌트(102)와 통신한다. 예를 들면, 레이아웃 컴포넌트(102)에 의한 준비과정 동안에 구조의 예비적인 "스크린샷"이 프리젠테이션 컴포넌트(104)로 전송되고, 프리젠테이션 컴포넌트(104)는 스크린샷을 처리하고, 예비적인 레이아웃이 5개의 분리된 다 이어그램을 요구할 것인지 평가하는 경우, 이런 정보는 프리젠테이션을 위한 요구된 다이어그램 수를 줄이도록 트리를 재구성하기 위해 레이아웃 컴포넌트(102)로 피드백될 수 있다. 또한, 이런 특성에 관련된 최적화는 인공 지능(AI:artificail intelligence) 컴포넌트의 구현에 관련해서 infra로 기술될 것이다.
디자이너 도구는 또한 특정 다이어그램 상에 또는 다이어그램의 영역 상에 특정 클래스가 관심의 초점(focus)이 되도록 지정하는 것을 지원한다. 이는 초점 클래스 및 관련된 클래스를 중요한 것으로 마킹하거나 태그를 붙이고, 선택된 우선순위대로 상기 옵션을 적용시킴으로써 달성된다.
도 8은 본 발명의 방법론의 하나 이상의 학습된 특징들의 자동화를 용이하게 하는 AI 컴포넌트(802)를 이용하는 디자이너 도구 시스템(800)을 예시한다. 본 발명(예컨대, 선택된 것에 연관됨)은 본 발명의 다양한 양상을 실행하는 다양한 AI-기반의 방법을 이용할 수 있다. 예를 들면, 정해진 사용자가 다이어그램에 의해 제공된 트리형 구조를 가지길 얼마나 원하는지를 판정하는 프로세스가 자동화 분류기 시스템 및 프로세스를 통해 용이하게 될 수 있다.
분류기는 입력 특성 벡터 x = (x1, x2, x3, x4, xn)를 그 입력이 클래스에 속하게 될 신임도에 매핑하는 함수이고, 즉, f(x) = confidence ( class )이다. 이런 분류법은 사용자가 자동으로 수행되길 원하는 동작을 예측하거나 추론하기 위해 확률적 및/또는 통계적 기반의 분석(예컨대, 분석 장비 및 비용을 고려함)을 이용할 수 있다.
SVM(a support vector machine)은 이용될 수 있는 분류기의 예이다. SVM은 가능한 입력 공간에서 초곡면(hypersurface)을 찾음으로써 동작하며, 초곡면은 비트리거링(non-triggering) 이벤트로부터 트리거링 기준을 분리하려고 시도한다. 직관적으로, 이는 분류를 훈련 데이터는 아니나 그 근방의 데이터를 테스트를 위한 올바른 것이 되게 한다. 기타 지시된 및 비지시된 모델 분류 접근방법은 예컨대,
Figure 112005066913059-PAT00001
Bayes, Bayesian 네트워크, 판정 트리(decision trees), 신경 네트워크(neural networks), 퍼지 논리 모델(fuzzy logic models)을 포함하고, 여러 가지 패턴의 독립성을 제공하는 확률적 분류 모델이 이용될 수 있다. 본원에 이용된 바와 같은 분류법은 또한 우선순위 모델을 개발하는데 이용되는 통계적 회귀(regression)를 포함하고 있다.
본 명세서로부터 쉽사리 인식할 수 있는 바와 같이, 본 발명은 (예컨대, 일반적인 훈련 데이터를 통해) 명확하게 훈련된 분류기뿐만 아니라 (예컨대, 사용자 거동을 관찰하고, 외부 정보를 수신하는 것을 통해) 암시적으로 훈련된 분류기도 이용할 수 있다. 예를 들면, SVM은 분류기 컨스트럭터(constructor) 및 특징 선택 모듈 내의 학습하는 또는 훈련하는 단계를 통해 구성된다. 그러므로, 분류기(들)은 수많은 함수를 자동으로 학습하고 실행하는데 사용될 수 있으며, 하기의 것을 포함하는 것에만 한정되지 않는다.
한 가지 구현에서, AI 컴포넌트(802)는 예정된 기준에 따라 프리젠테이션을 위해 구조를 얼마나 많은 다이어그램으로 나눌 것인지 결정한다. 이는 구조에 이용된 데이터의 타입에 기초할 수 있다. 예를 들면, 다수의 개발자는 각각 여러 가지 양상에 초점을 맞추어 같은 파일에 작업을 행하는 공유된 환경의 경우에, 및 트 리형 구조가 다양한 팀과 기능의 대규모로 조직화된 도표를 이용하는 경우, 최종 다이어그램은 개발자의 정해진 초점에 기초하여 판정될 수 있다. 제1 개발자의 초점이 재무에 관한 것이면, 제1 개발자 로그인 정보 또는 재무팀의 도구로의 입력은 도구가 프리젠테이션 다이어그램을 생성할 때 이 구조의 재정적인 양상을 강조하기 위해 트리를 자동으로 재구성(예컨대, 확장 또는 감축)하게 할 것이다.
자동화란 동일한 선상에서, 트리는 로그인 정보 또는 기타 입력 용어에 관련된 특정 클래스 객체에 초점이 맞추어진 프리젠테이션을 위해 재구성될 수 있다. 제2 개발자가 관리에 연관된 클래스 객체에 작업하는 경우, 클래스 객체로 태그 붙여진 메타데이터가 모델 파일을 기준 입력 데이터에 기초하여 해당 제2 개발자의 해당 위치에서 자동으로 열기 위해 사용될 수 있다.
AI 컴포넌트(802)는, 예컨대, 도구가 시간에 따라 사용자가 작성하는 레이아웃 선택을 관찰하고 그 사용자에 의한 나중 대화 동안에 유사한 리레이아웃 알고리즘을 적용함으로써 사용자 환경설정을 학습할 수 있도록, 적절하게 설계된다. 다른 사용자들은 레이아웃 규칙에 대해 다른 환경설정을 가질 수 있다.
또한, 다양한 자동화 리레이아웃 또는 단정화 알고리즘이 학습될 수 있다. 사용자가 최초로 다이어그램을 배치할 경우, 이는 디폴트에 의해 자동화될 수 있다. 그 후, 단정화 옵션이 구조의 최종 단장(tidying-up)을 위해 선택될 수 있다. 또한, 이런 단장을 가능케 하는데 이용되는 규칙들이 존재할 수 있다. 한 사용자는 다른 일련의 규칙들 중 하나의 일련의 규칙을 선호할 수 있다. 또한, 이는 부동산에서 다이어그램을 더욱 간편하게 하기 위해 다이어그램 레벨에서 부과될 수 있다. 예를 들면, 도구는 AI 컴포넌트(802)에 의한 지원으로 예컨대, 이전 사용자의 이동에 따라, 혹은 객체 이동 비용 대 프리젠테이션의 비용의 균형을 유지하는 비용 분석 판정에 따라 객체들을 백색 공간으로 이동시키기를 학습할 수 있다.
도 9를 참조하면, 개시된 아키텍처를 수행하도록 동작할 수 있는 컴퓨터의 블록도가 예시되어 있다. 본 발명의 다양한 양상에 대한 부가적인 내용을 제공하기 위해서, 도 9와 하기의 설명은 본 발명의 다양한 양상이 구현될 수 있는 적합한 컴퓨팅 환경(900)에 대한 간략하고, 일반적인 기술을 제공하는 것으로 의도된다. 본 발명은 하나 이상의 컴퓨터상에서 실행될 수 있는 컴퓨터 판독가능 명령어의 관점에서 상기에 기술되었지만, 당업자는 본 발명이 또한 기타 프로그램 모듈들의 결합, 및/또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있음을 인식할 것이다.
일반적으로, 프로그램 모듈은 특정 태스크들 또는 특정 추상화 데이터 타입을 실행하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자는 혁신적인 방법들이 단일 프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터뿐 아니라 개인용 컴퓨터, 휴대형 컴퓨팅 장치, 마이크로프로세서 기반 또는 프로그램가능한 소비자 전자기기 등, 각각이 하나 이상의 연관된 장치들에 동작할 수 있게 결합될 수 있는 것 등을 포함하여 기타 컴퓨터 시스템 구성으로 실행될 수 있음을 인식할 것이다.
본 발명의 예시적인 양상은 또한 소정의 태스크가 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 실행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위 치될 수 있다.
컴퓨터는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의 이용가능한 매체일 수 있으며, 휘발성 혹은 비휘발성 매체, 분리형 혹은 비분리형 매체 모두를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함하며, 이에만 한정되지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 기타 데이터와 같은 정보를 저장하기 위한 임의의 방법 및 기술로 구현되는 휘발성 혹은 비휘발성, 분리형 혹은 비분리형 매체 모두를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD, 또는 기타 광디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치, 또는 기타 자기 저장장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는데 사용될 수 있는 기타 다른 매체들을 포함하나, 이에만 한정되지 않는다.
통신 매체는 전형적으로 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 기타 데이터를 반송파 또는 기타 전송 메커니즘 등의 변조된 데이터 신호에 구현한 것이며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"란 용어는 신호의 하나 이상의 특성을 그 신호에 실린 정보를 부호화하는 방식으로 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 유선에 의한 직접 연결과 같은 유선 매체와, 음향, RF, 적외선, 및 기타 무선 매체 등의 무선 매체를 포함하나, 이에만 한정되지는 않는다. 상기 것들의 임의 조합도 역시 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
도 9를 다시 참조하면, 프로세싱 유닛(904), 시스템 메모리(906), 및 시스템 버스(908)를 포함하는 컴퓨터(902)를 포함하여, 본 발명의 다양한 양상을 구현하는 예시적인 환경(900)이 도시되어 있다. 시스템 버스(908)는 시스템 메모리(906)를 포함하여 시스템 컴포넌트들을 프로세싱 유닛(904)에 결합시킨다. 프로세싱 유닛(904)은 다양한 상업적으로 이용가능한 프로세서 중 하나일 수 있다. 이중 마이크로프로세서(Dual microprocessors) 및 기타 멀티프로세서 아키텍처가 또한 프로세싱 유닛(904)으로서 이용될 수 있다.
시스템 버스(908)는 다양한 상업적으로 이용가능한 버스 아키텍처 중 하나를 사용하는 메모리 버스(메모리 컨트롤러를 갖거나 갖지 않음), 주변기기 버스, 및 로컬 버스로 더 상호연결될 수 있는 여러 타입의 버스 구조들 중 임의의 것일 수 있다. 시스템 메모리(906)는 판독 전용 메모리(ROM:910) 및 임의 접근 메모리(RAM:912)를 포함한다. 시작할 때 등에 컴퓨터(902) 내의 구성 요소들 사이의 정보 전달을 돕는 기본적인 루틴들을 포함하는 기본 입력/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(910)에 저장된다. RAM(912)은 또한 데이터를 캐싱하기 위한 SRAM(static RAM) 등의 고속 RAM을 포함한다.
컴퓨터(902)는 내장 하드 디스크 드라이브(914:HDD)(예컨대, EIDE, SATA), 자기 플로피 디스크 드라이브(916:FDD)(예컨대, 분리형 디스켓(918)으로부터 판독하거나 이에 기입함), 및 광디스크 드라이브(920)(예컨대, CD-ROM 디스크(922)로부터 판독하거나, DVD 등의 고용량 광매체로터 판독하거나 이에 기입함)를 더 포함하 며, 내장 하드 디스크 드라이브(914)는 또한 외부 사용을 위해 적절한 새시(chassis)(도시 생략)에 구성될 수 있다. 하드 디스크 드라이브(914), 자기 디스크 드라이브(916) 및 광디스크 드라이브(920)는 하드 디스크 드라이브 인터페이스(924), 자기 디스크 드라이브 인터페이스(926), 및 광 드라이브 인터페이스(928)에 의해 시스템 버스(908)로 각각 연결될 수 있다. 외장 드라이브 구현을 위한 인터페이스(924)는 예컨대, USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 혹은 모두를 포함한다. 기타 외장 드라이브 연결 기술은 본 발명의 의도 내에 있다.
드라이브들 및 그 관련 컴퓨터 판독가능 매체는 데이터, 데이터 구조들, 컴퓨터 판독가능 명령어들 등의 비휘발성 저장소를 제공한다. 컴퓨터(902)를 위한 드라이브들 및 매체는 적절한 디지털 포맷으로 임의 데이터를 저장한다. 컴퓨터 판독가능 매체에 관한 설명이 상기에서 HDD, 분리형 자기 디스켓, 및 CD 혹은 DVD 등의 분리형 광 매체를 지칭하고 있으나, 당업자는 집 드라이브(zip drives), 자기 카세트, 플래시 메모리 카드, 카트리지 등의 컴퓨터에 의해 판독가능한 기타 유형의 매체도 예시적인 동작 환경에 사용될 수 있다는 것과, 또한 임의의 이런 매체가 본 발명의 방법을 수행하는 컴퓨터 실행가능 명령어를 포함할 수 있음을 인식할 것이다.
수많은 프로그램 모듈은 운영 체제(930), 하나 이상의 애플리케이션 프로그램(932), 기타 프로그램 모듈들(934), 및 프로그램 데이터(936)를 포함하는 드라이브들 및 RAM(912)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈들, 및/또는 데이터의 일부 또는 전부가 또한 RAM(912)에 캐싱될 수 있다. 본 발명이 다양한 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합과 함께 구현될 수 있음을 알 수 있다.
사용자는 예컨대, 키보드(938), 및 마우스 등의 포인팅 장치처럼 하나 이상의 유선/무선 입력 장치를 통해 명령들 및 정보를 컴퓨터(902)에 입력할 수 있다. 기타 입력 장치(도시 생략)로서 마이크로폰, IR 원격 제어, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린 등을 포함할 수 있다. 이러한 장치들과 기타 입력 장치들은 종종 시스템 버스(908)에 결합된 입력 장치 인터페이스(942)를 통해 프로세싱 유닛(904)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등의 기타 인터페이스에 의해 연결될 수도 있다.
모니터(944) 또는 다른 유형의 디스플레이 장치도 비디오 어댑터(946) 등의 인터페이스를 통해 시스템 버스(908)에 연결될 수 있다. 모니터(944) 이외에, 컴퓨터는 전형적으로 스피커와 프린터 등의 기타 주변 출력 장치들도(도시 생략) 포함한다.
컴퓨터(902)는 원격 컴퓨터(들)(948) 등의 하나 이상의 원격 컴퓨터들로의 유선 및/또는 무선 통신을 통한 논리적 연결을 사용하여, 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(948)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대형 컴퓨터, 마이크로프로세서 기반의 오락기, 피어 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 간략화를 위해 메모리 저장장치(950)만이 도 1에 예시되어 있지만 컴퓨터(902)에 관련하여 상기에 기술된 구성요소들 중 다 수 혹은 모두를 전형적으로 포함한다. 도시된 논리적 연결들은 근거리 통신망(LAN:952)으로의, 및/또는 광역 통신망(WAN:954)과 같은 대규모 네트워크로의 유선/무선 연결을 포함한다. 이런 LAN 및 WAN 네트워킹 환경은 사무실과 기업 내에서 흔한 것이며, 인트라넷 등의 엔터프라이즈 급 컴퓨터 네트워크들 모두가 인트라넷은 인터넷 등의 전세계 통신 네트워크로 연결될 수 있도록 조장한다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(902)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(956)를 통해 LAN(952)으로 연결된다. 어댑터(952)는 LAN(952)으로의 유선 또는 무선 통신을 용이하게 할 수 있으며, 무선 어댑터(956)와 통신하기 위해 LAN 상에 배치된 무선 액세스 포인트를 또한 포함할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(902)는 모뎀(958)을 포함할 수 있거나, WAN(954) 상의 통신 서버에 연결될 수 있거나, 인터넷 등을 통해 WAN(954)에 걸쳐 통신을 설정하기 위한 기타 수단을 가질 수 있다. 내장 또는 외장 될 수 있는 모뎀(958)은 직렬 포트 인터페이스(942)를 통해 시스템 버스(908)에 연결된다. 네트워크화된 환경에서, 컴퓨터(902)에 관련되어 도시된 프로그램 모듈 혹은 그의 일부는 원격 메모리/저장 장치(950)에 저장될 수 있다. 도시된 네트워크 연결들은 예시적이며, 컴퓨터들 사이에 통신 링크를 설정하기 위한 기타 수단들이 사용될 수 있다는 것을 인식할 것이다.
컴퓨터(902)는 또한 예컨대, 프린터, 스캐너, 데스크톱, 및/또는 휴대형 컴퓨터, PDA(Portable data assistant), 통신 위성, 무선으로 검출가능한 태그에 연 관된 임의 개수의 장비 또는 위치(예컨대, 매점(kiosk), 가판대(news stand), 휴게실), 및 전화기 등의 무선 통신으로 동작가능하게 배치된 임의 무선 장치 또는 개체와 통신하는데 사용될 수 있다. 이는 적어도 Wi-Fi 와 BluetoothTM 무선 기술을 포함한다. 그러므로, 그 통신은 종래의 네트워크에서처럼 예정된 구조 또는 적어도 두 장치들 간의 단순한 ad hoc 통신일 수 있다.
Wi-Fi(Wireless Fidelity)는 가정의 소파, 호텔 객실의 침대, 또는 일터의 회의실에서 무선으로 인터넷에 접속할 수 있게 해준다. Wi-Fi는 예컨대, 컴퓨터 등의 장치가 실내외의, 기지국 범위 내의 어느 곳에서라도, 데이터를 송신하고 수신할 수 있게 하는 셀룰러 폰에 사용된 기술과 유사한 무선 기술이다. Wi-Fi 네트워크는 보안성 있는, 신뢰성 있는, 고속 무선 접속을 제공하기 위해 소위 IEEE 802.11이란 무선 기술을 사용한다. Wi-Fi 네트워크는 컴퓨터들을 서로 연결하는데, 이들을 인터넷 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결하는데 사용될 수 있다. Wi-Fi 네트워크는 예컨대, 비인가된 2.4G 내지 5GHz 무선 대역에서, 11Mbps(802.11a) 또는 54Mbps(802.11b) 데이터 전송속도로 동작하거나, 양 대역(이중 대역)을 포함하는 제품과 함께 동작하므로, 그 네트워크는 여러 사무실에서 사용되는 10BaseT 유선 이더넷 네트워크와 비슷한 실제 성능을 제공할 수가 있다.
지금 도 10을 참조하면, 본 발명에 따라 예시적인 컴퓨팅 환경(1000)의 개략적인 블록도가 예시된다. 시스템(1000)은 하나 이상의 클라이언트(들)(1002)을 포 함한다. 클라이언트(들)(1002)은 하드웨어 및/또는 소프트웨어(예컨대, 스레드들, 프로세스들, 컴퓨팅 장치들)일 수 있다. 클라이언트(들)(1002)은 예컨대, 쿠키(들) 및/또는 본 발명을 이용함으로써 연관된 문맥적인 정보를 수용할 수 있다.
시스템(1000)은 또한 하나 이상의 서버(들)(1004)를 포함한다. 서버(들)(1004)은 또한 하드웨어 및/또는 소프트웨어(예컨대, 스레드들, 프로세스들, 컴퓨팅 장치들)일 수 있다. 서버(1004)는 예컨대, 본 발명을 이용함으로써 변환을 수행하는 스레드를 수용할 수 있다. 클라이언트(1002)와 서버(1004) 간의 한 가지 가능한 통신은 2개 이상의 컴퓨터 프로세스 간에 전송되도록 적응된 데이터 패킷의 형태로 행해질 수 있다. 데이터 패킷은 예컨대, 쿠키 및/또는 연관된 문맥적인 정보를 포함할 수 있다. 시스템(1000)은 클라이언트(들)(1002)과 서버(들)(1004) 간의 통신을 용이하게 하는데 이용될 수 있는 통신 프레임워크(1006)(예컨대, 인터넷 등의 전세계 통신 네트워크)를 포함한다.
통신은 유선(광섬유를 포함함) 및/또는 무선 기술을 통해 용이하게 될 수 있다. 클라이언트(들)(1002)은 클라이언트(들)(1002)에 지역적인 정보(예컨대, 쿠기(들) 및/또는 연관된 문맥적인 정보)를 저장하는데 이용될 수 있는 하나 이상의 클라이언트 데이터 저장소(들)(1008)에 동작할 수 있게 연결된다. 유사하게, 서버(들)(1004)은 서버(1004)에게 지역적인 지역 정보를 저장하는데 이용될 수 있는 하나 이상의 서버 데이터 저장소(들)(1010)에 동작할 수 있게 연결된다.
상기 기술된 것은 본 발명의 예를 포함한다. 물론, 본 발명을 기술하기 위한 목적으로, 모든 생각할 수 있는 컴포넌트들의 결합 또는 방법론들을 기술하는 것은 불가능하지만, 당업자는 본 발명의 많은 상세 결합 및 변경이 가능하다는 것을 인식할 것이다. 따라서, 본 발명은 첨부된 청구항의 정신과 범위 내에 속하는 모든 이런 변경, 수정, 및 변형을 포함하는 것으로 의도된다. 또한, "포함한다(includes)"란 용어가 상세한 설명 또는 청구항 중 하나에 사용되는 정도까지, 이런 용어는 청구항에서 다른 용어로서 이용될 경우 "포괄한다(comprising)"로서 해석되는 용어 "포괄한다(comprising)"와 유사한 방식으로 포함하는 것으로서 의도된다.
객체 모델의 설계를 용이하게 하는 디자이너 도구를 제공하는 효과가 있다.

Claims (20)

  1. 객체 모델 설계를 용이하게 하는 시스템으로서,
    하나 이상의 여러 가지 종류의 지시된 관계를 가지는 객체들의 하나 이상의 그래프를 입력으로서 수신하고, 상기 하나 이상의 그래프를 편집가능한 트리형 구조로 변환하는 레이아웃 컴포넌트, 및
    상기 편집가능한 트리형 구조를 제공하고, 그것과 함께 사용자 대화를 용이하게 하는 프리젠테이션 컴포넌트
    를 포함하는 시스템.
  2. 제1 항에 있어서,
    상기 레이아웃 컴포넌트는 상기 트리형 구조의 그래픽 기호에 연관된 특징을 자동으로 조절하고, 상기 특징은 간격두기(spacing), 위치선정(position), 크기, 및 형태 중 적어도 하나를 포함하는 시스템.
  3. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 프레젠테이션 부동산(real estate)을 자동으로 평가하고, 보기(viwing)를 위해 상기 트리형 구조를 조절하는 시스템.
  4. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 어떤 것도 서로 교차하지 않도록 라인들의 입력을 용이하게 하는 시스템.
  5. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 상기 트리형 구조의 전부 또는 일부에 대한 확장 및 축소를 용이하게 하는 시스템.
  6. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 장식(adornment)인 그래픽 표시(indicia)의 배치를 용이하게 하며, 상기 배치는 상기 트리형 구조의 기타 그래픽 표시에 대해 공간적으로 구분되는 시스템.
  7. 제1항에 있어서,
    상기 트리형 구조는 클래스 객체들을 포함하는 시스템.
  8. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 적어도 하나의 클래스 객체의 정의하기(definition), 삽입 또는 상속 관계에서의 클래스 객체의 사용법(usage), 및 참조 관계에서의 클래스 객체의 사용법을 구별하기 위해 도표로 나타낸 규약(conventions)의 사용을 용이하게 하는 시스템.
  9. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 상기 트리형 구조의 정해진 객체의 모든 표기(depictions)의 하이라이팅과, 아크(arc)를 따라 정보의 전파를 지시하는 하이라이팅을 용이하게 하는 시스템.
  10. 제1항에 있어서,
    상기 레이아웃 컴포넌트는 클래스 객체의 비정의적인 기호와 연관된 정의적인 기호 간의 탐색을 용이하게 하는 시스템.
  11. 제1항의 시스템을 수행하는 컴퓨터 실행가능 명령어들을 저장하고 있는 컴퓨터 판독가능 매체.
  12. 객체 모델을 처리하는 방법에 관한 컴퓨터 실행가능 명령어들을 가진 컴퓨터 판독가능 매체로서, 상기 방법은
    클래스 객체들의 지시된 관계를 수신하는 단계,
    상기 지시된 관계를 상기 클래스 객체들의 적어도 관계 및 속성을 표기하는 트리 구조로 처리하는 단계, 및
    상기 트리 구조를 대화형 다이어그램으로 제공하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    상기 클래스 개체들을 연관된 기호와 함께 표기하는 단계를 더 포함하여서,
    상기 트리 구조의 상속 계층구조를 확장 및 축소하는 것과,
    상기 트리 구조의 관계들을 확장 및 축소하는 것과,
    상기 클래스 객체들의 속성 정보를 드러내거나 은폐하는 것
    을 용이하게 하는 컴퓨터 판독가능 매체.
  14. 제12항에 있어서,
    도표로 나타낸 규약을 제공하는 단계를 더 포함하여,
    특정 클래스 객체를 정의적인 클래스로서 구별하고
    상기 특정 클래스 객체의 사용법을 삽입 관계 및 상속 관계 중 적어도 하나에 있어서 구별하고,
    상기 특정 클래스 객체의 속성을 드러내거나 은폐하는
    컴퓨터 판독가능 매체.
  15. 제12항에 있어서,
    다중 라인들을 상기 특정 클래스 객체로 연결되는 트리형 구조의 단일 라인으로 단일 지점에서 연결하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  16. 제12항에 있어서,
    명시적인 대표적인 기호를 역할 관계의 트리 구조에 제공하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  17. 제12항에 있어서,
    비정의적인 클래스 객체와 정의적인 클래스 객체 간에 탐색하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  18. 제12항에 있어서,
    동일한 클래스를 나타내는 모든 노드들을 하이라이팅하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  19. 제12항에 있어서,
    관계에 걸쳐 속성의 전파를 지시하는 상기 트리 구조의 일부분을 하이라이팅하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  20. 클래스 다이어그램의 개발을 용이하게 하는 시스템으로서,
    하나 이상의 지시된 관계들을 가진 객체들을 포함하는 그래프를 수신하는 수단,
    상기 그래프를 객체 관계 및 객체 속성을 표기하는 디폴트 트리 구조로 처리 하는 수단,
    상기 디폴트 트리 구조를 사용자 편집을 용이하게 하는 대화형 다이어그램으로 제공하는 수단,
    하나 이상의 객체들을 이동시킴으로써 상기 디폴트 트리 구조를 새로운 트리 구조로 재정렬하는 수단,
    상기 새로운 트리 구조의 프리젠테이션을 정의적인 객체의 위치에 기초하여 최적화하는 수단, 및
    상기 최적화된 프리젠테이션을 하나 이상의 대화형 다이어그램으로 렌더링하는 수단
    을 포함하는 시스템.
KR1020050111366A 2005-01-05 2005-11-21 객체 모델 설계를 용이하게 하는 방법 및 시스템 KR101169171B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/029,852 US7814427B2 (en) 2005-01-05 2005-01-05 Object model tree diagram
US11/029,852 2005-01-05

Publications (2)

Publication Number Publication Date
KR20060080528A true KR20060080528A (ko) 2006-07-10
KR101169171B1 KR101169171B1 (ko) 2012-07-30

Family

ID=35892599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050111366A KR101169171B1 (ko) 2005-01-05 2005-11-21 객체 모델 설계를 용이하게 하는 방법 및 시스템

Country Status (5)

Country Link
US (1) US7814427B2 (ko)
EP (1) EP1679587A1 (ko)
JP (1) JP5063890B2 (ko)
KR (1) KR101169171B1 (ko)
CN (1) CN1801151B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013012160A1 (ko) * 2011-07-19 2013-01-24 (주)마인드메이플코리아 좌표인식기반 마인드맵 사용자 편집 시스템

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US20070005618A1 (en) * 2005-06-07 2007-01-04 Konstantin Ivanov Systems and methods for modeling business processes
US8266579B2 (en) * 2005-10-14 2012-09-11 International Business Machines Corporation System and method for developing and deploying a model-driven editor
US10983695B2 (en) * 2005-10-24 2021-04-20 Kinoma, Inc. Focus management system
WO2007057279A2 (en) * 2005-11-18 2007-05-24 International Business Machines Corporation Object replacement method and system
US7661076B2 (en) * 2006-03-31 2010-02-09 Microsoft Corporation Two dimensional trees to edit graph-like diagrams
US8875113B2 (en) * 2006-05-04 2014-10-28 Oracle International Corporation Managing JAVA class paths
US8010938B2 (en) * 2006-11-27 2011-08-30 International Business Machines Corporation Computer method and system for pattern specification using meta-model of a target domain
US20080162563A1 (en) * 2006-12-29 2008-07-03 Sap Ag Generic graph services utilizing anonymous and identified graph pattern
US8396827B2 (en) * 2006-12-29 2013-03-12 Sap Ag Relation-based hierarchy evaluation of recursive nodes
US8640086B2 (en) * 2006-12-29 2014-01-28 Sap Ag Graphical user interface system and method for presenting objects
US20080162777A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graph abstraction pattern for generic graph evaluation
US20080162616A1 (en) * 2006-12-29 2008-07-03 Sap Ag Skip relation pattern for graph structures
US9165087B2 (en) * 2006-12-29 2015-10-20 Sap Se Validity path node pattern for structure evaluation of time-dependent acyclic graphs
US9311082B2 (en) * 2006-12-29 2016-04-12 Sap Se System and method for processing graph objects
US20080228812A1 (en) * 2007-03-15 2008-09-18 Honeywell International Inc. Method and System for Metamodeling Using Dynamic Ontology Objects
US10068189B2 (en) * 2007-06-01 2018-09-04 International Business Machines Corporation Storing and depicting organizations that are subject to dynamic event driven restructuring
US8046716B2 (en) * 2007-06-15 2011-10-25 Microsoft Corporation Creating, displaying, and editing a sub-process within a process diagram
US9530105B2 (en) * 2007-06-27 2016-12-27 Microsoft Technology Licensing, Llc Managing entity organizational chart
US8629873B2 (en) * 2007-08-10 2014-01-14 Shimadzu Corporation Data analysis system
JP4907482B2 (ja) * 2007-09-27 2012-03-28 株式会社日立製作所 計算機システム及びファイル管理方法
US8095865B2 (en) * 2007-11-21 2012-01-10 Microsoft Corporation Layout manager
CN101499003A (zh) * 2008-01-31 2009-08-05 国际商业机器公司 生成关于模型的约束表达式的方法以及约束语言编辑器
CN101499922B (zh) * 2008-02-02 2012-12-12 华为技术有限公司 数据转换方法、装置、终端以及服务器
US8826174B2 (en) * 2008-06-27 2014-09-02 Microsoft Corporation Using visual landmarks to organize diagrams
US9639331B2 (en) * 2008-07-09 2017-05-02 International Business Machines Corporation Service interface creation and modification for object-oriented services
US8276113B2 (en) * 2008-08-11 2012-09-25 International Business Machines Corporation Dynamic highlighting of related artifacts in a UML diagram
US8711147B2 (en) * 2008-10-01 2014-04-29 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic graph view of multiply connected objects
US8711148B2 (en) * 2008-10-01 2014-04-29 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic selective view of multiply connected objects
US8665274B2 (en) * 2008-10-01 2014-03-04 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic view of bi-directional impact analysis results for multiply connected objects
US8194075B2 (en) * 2008-10-01 2012-06-05 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic list view of multiply connected objects
US8669982B2 (en) * 2008-10-01 2014-03-11 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic culling graph view of multiply connected objects
US20100162208A1 (en) * 2008-12-19 2010-06-24 International Business Machines Corporation Modeling tool builder - graphical editor construction
US20100161524A1 (en) * 2008-12-19 2010-06-24 International Business Machines Corporation Method and system for identifying graphical model semantics
US20100269089A1 (en) * 2009-04-21 2010-10-21 Vinod R Panicker Method and system for generation of reusable design patterns
WO2010144701A1 (en) * 2009-06-11 2010-12-16 Accenture Global Services Limited Assessment system for choosing maintenance approaches for gui-directed test scripts
CA2669603A1 (en) * 2009-06-18 2010-12-18 Ibm Canada Limited - Ibm Canada Limitee Graphical modeling tool
US8190710B2 (en) 2009-06-23 2012-05-29 Oracle International Corporation System and method for providing user context support in a native transaction platform
US8326913B2 (en) * 2009-06-25 2012-12-04 Oracle International Corporation Method and system for service contract discovery
US20110029951A1 (en) * 2009-07-30 2011-02-03 International Business Machines Corporation Visually Presenting Inherited Members in Object-Oriented Languages
US8806379B2 (en) * 2009-09-01 2014-08-12 Oracle International Corporation Method and system for displaying group relationships in a graphical user interface
US8863029B2 (en) * 2009-09-01 2014-10-14 Oracle International Corporation Method and system for providing graphical user interface having filtering capability
US8161413B2 (en) 2009-09-01 2012-04-17 Oracle International Corporation Method and system for providing user interface representing organization hierarchy
CN101789003A (zh) * 2010-01-25 2010-07-28 刘明晶 用可视化图形表现关联信息的方法
WO2011153361A2 (en) * 2010-06-02 2011-12-08 Allen Learning Technologies Device having graphical user interfaces and method for developing multimedia computer applications
US8363054B2 (en) * 2010-06-16 2013-01-29 Microsoft Corporation Localized layout and routing in an interactive diagramming system
US20130096878A1 (en) * 2010-06-24 2013-04-18 Valtion Teknillinen Tutkimuskeskus State inference in a heterogeneous system
US8448093B2 (en) * 2010-07-23 2013-05-21 Oracle International Corporation Hierarchical organization chart for mobile applications
US20120036463A1 (en) * 2010-08-06 2012-02-09 Krakovsky Dmitri I Metric navigator
US8997024B2 (en) * 2010-12-09 2015-03-31 Microsoft Technology Licensing, Llc Navigating between views of a graph using placemarkers
US8572101B2 (en) * 2011-01-10 2013-10-29 International Business Machines Corporation Faceted interaction interface to object relational data
US8924385B2 (en) 2011-04-12 2014-12-30 Microsoft Corporation Query-based diagrammatic presentation of data
US9773327B2 (en) * 2011-10-15 2017-09-26 Hewlett Packard Enterprise Development Lp Modified flow graph depiction
US9104389B2 (en) 2011-10-18 2015-08-11 International Business Machines Corporation Hierarchical functional and variable composition diagramming of a programming class
US8732655B2 (en) * 2011-12-29 2014-05-20 Sap Ag Systems and methods for metamodel transformation
US20130191809A1 (en) * 2012-01-25 2013-07-25 Microsoft Corporation Graphical representation of an order of operations
US10699038B2 (en) 2012-03-30 2020-06-30 Litmus Blue Technology LLC Configurable representation of domain models
US8874553B2 (en) 2012-08-30 2014-10-28 Wal-Mart Stores, Inc. Establishing “is a” relationships for a taxonomy
US9092547B2 (en) 2012-09-19 2015-07-28 Wal-Mart Stores, Inc. Transforming a graph to a tree in accordance with analyst guidance
CN103810548A (zh) * 2012-11-08 2014-05-21 中国船舶工业集团公司七〇八研究所 一种船舶与海洋工程项目管理系统
US8914771B2 (en) 2012-11-13 2014-12-16 International Business Machines Corporation Indicating hierarchy diversion in a class diagram
CN103853760B (zh) * 2012-12-03 2017-05-03 中国移动通信集团公司 一种网页正文内容提取方法和装置
WO2014133533A1 (en) * 2013-02-28 2014-09-04 Hewlett-Packard Development Company, L.P. An interface for creating a plan artifact
US10078411B2 (en) 2014-04-02 2018-09-18 Microsoft Technology Licensing, Llc Organization mode support mechanisms
CN104133900A (zh) * 2014-08-04 2014-11-05 浪潮通用软件有限公司 一种360°树状视图的定义描述方法
US9697469B2 (en) 2014-08-13 2017-07-04 Andrew McMahon Method and system for generating and aggregating models based on disparate data from insurance, financial services, and public industries
US10169355B2 (en) * 2014-10-27 2019-01-01 Tata Consultancy Services Limited Knowledge representation in a multi-layered database
US9760614B2 (en) * 2014-12-16 2017-09-12 General Electric Company Method and tool for browsing semantic data and creating queries using a domain/range representation
US10223474B1 (en) 2015-09-30 2019-03-05 Riivos, Inc. Traversing a cyclic graph using a modified breadth-first search in complex modeling
US9685142B2 (en) * 2015-11-03 2017-06-20 International Business Machines Corporation Obtaining and displaying relationships between elements
US11222074B2 (en) 2015-11-25 2022-01-11 Teamifier, Inc. Methods for the augmentation, exploration, and maintenance of project hierarchies
US10339488B2 (en) * 2015-12-16 2019-07-02 Sap Se Method and system for the definition of a model
US10078634B2 (en) * 2015-12-30 2018-09-18 International Business Machines Corporation Visualizing and exploring natural-language text
US10192018B1 (en) * 2016-03-31 2019-01-29 Cadence Design Systems, Inc. Method and system for implementing efficient trim data representation for an electronic design
US11112927B2 (en) * 2018-04-25 2021-09-07 Adobe Inc. Digital content automated layout system
CN110609873A (zh) * 2018-06-15 2019-12-24 富士施乐株式会社 信息处理装置和非暂时性计算机可读介质
US10936342B2 (en) * 2018-07-17 2021-03-02 Salesforce.Com, Inc. Method and user interface for data mapping
CN110795093B (zh) * 2018-08-01 2024-04-16 北京京东尚科信息技术有限公司 一种交互式视图生成方法和装置
US11256748B2 (en) 2018-11-30 2022-02-22 Riivos, Inc. Complex modeling computational engine optimized to reduce redundant calculations
CN110737380B (zh) * 2019-09-05 2021-09-07 广州视源电子科技股份有限公司 思维导图展示方法、装置、存储介质及电子设备
US11620454B2 (en) 2020-02-05 2023-04-04 Hatha Systems, LLC System and method for determining and representing a lineage of business terms and associated business rules within a software application
US11288043B2 (en) * 2020-02-05 2022-03-29 Hatha Systems, LLC System and method for creating a process flow diagram which incorporates knowledge of the technical implementations of flow nodes
US11836166B2 (en) 2020-02-05 2023-12-05 Hatha Systems, LLC System and method for determining and representing a lineage of business terms across multiple software applications
JP2022012394A (ja) * 2020-07-01 2022-01-17 横河電機株式会社 ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
WO2023119437A1 (ja) * 2021-12-21 2023-06-29 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援装置及びプログラミング支援方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306786A (ja) * 1994-05-12 1995-11-21 Matsushita Electric Ind Co Ltd オブジェクト階層表示装置
US5754179A (en) 1995-06-07 1998-05-19 International Business Machines Corporation Selection facilitation on a graphical interface
US6564368B1 (en) * 1998-10-01 2003-05-13 Call Center Technology, Inc. System and method for visual application development without programming
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
JP2002157120A (ja) * 2000-11-17 2002-05-31 Hitachi Software Eng Co Ltd 設計ドキュメント管理システム
US6804686B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology for providing fixed UML layout for an object oriented class browser
US7167862B2 (en) * 2003-03-10 2007-01-23 Ward Mullins Session bean implementation of a system, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
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
US7318199B2 (en) * 2003-09-11 2008-01-08 Oracle International Corporation Algorithm for automatic layout of objects in a database

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013012160A1 (ko) * 2011-07-19 2013-01-24 (주)마인드메이플코리아 좌표인식기반 마인드맵 사용자 편집 시스템

Also Published As

Publication number Publication date
JP2006190262A (ja) 2006-07-20
US7814427B2 (en) 2010-10-12
US20060150169A1 (en) 2006-07-06
JP5063890B2 (ja) 2012-10-31
CN1801151B (zh) 2011-12-14
EP1679587A1 (en) 2006-07-12
KR101169171B1 (ko) 2012-07-30
CN1801151A (zh) 2006-07-12

Similar Documents

Publication Publication Date Title
KR101169171B1 (ko) 객체 모델 설계를 용이하게 하는 방법 및 시스템
Cicchetti et al. Multi-view approaches for software and system modelling: a systematic literature review
Heer et al. Prefuse: a toolkit for interactive information visualization
US6986120B2 (en) System and apparatus for programming system views in an object oriented environment
US9087296B2 (en) Navigable semantic network that processes a specification to and uses a set of declaritive statements to produce a semantic network model
CN104412227B (zh) 基于查询的软件系统设计表示
US20140258894A1 (en) Visual Timeline Of An Application History
US20150026564A1 (en) Systems and methods for defining a simulated interactive web page
US20140258969A1 (en) Web-Based Integrated Development Environment For Real-Time Collaborative Application Development
US20140258970A1 (en) Collaborative application development environment using a connected device
US20140258968A1 (en) Visual Representation Of Edits For Collaborative Application Development
EP1292887A1 (en) Methods and systems for generating source code for object-oriented elements
KR20060087995A (ko) 작업 흐름을 모델링하는 방법 및 시스템
US7899846B2 (en) Declarative model editor generation
JP7373563B2 (ja) ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法
US20120060141A1 (en) Integrated environment for software design and implementation
US10776351B2 (en) Automatic core data service view generator
Ledur et al. Towards a domain-specific language for geospatial data visualization maps with big data sets
US9250925B2 (en) Adding inheritance support to a computer programming language
AU2002218864B2 (en) Method for Systemic Enterprise Knowledge Management
Lewis et al. Native mobile development: a cross-reference for iOS and Android
US11809844B2 (en) Creating an app method and system
US20120011157A1 (en) Method and system for inferencing taxonomy topic concept objects using a metamodel instance model
KR101396885B1 (ko) 구조 모델링을 위한 ses 기반 블록 다이어그램 편집기 및 그 편집 방법
KR102588597B1 (ko) Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치

Legal Events

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

Payment date: 20160616

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 8