KR20110063320A - 사용 패턴 기반의 자동화된 폼 레이아웃 - Google Patents

사용 패턴 기반의 자동화된 폼 레이아웃 Download PDF

Info

Publication number
KR20110063320A
KR20110063320A KR1020100119586A KR20100119586A KR20110063320A KR 20110063320 A KR20110063320 A KR 20110063320A KR 1020100119586 A KR1020100119586 A KR 1020100119586A KR 20100119586 A KR20100119586 A KR 20100119586A KR 20110063320 A KR20110063320 A KR 20110063320A
Authority
KR
South Korea
Prior art keywords
fields
gui
usage
gui form
identified
Prior art date
Application number
KR1020100119586A
Other languages
English (en)
Other versions
KR101643003B1 (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 KR20110063320A publication Critical patent/KR20110063320A/ko
Application granted granted Critical
Publication of KR101643003B1 publication Critical patent/KR101643003B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
    • G06F3/04895Guidance during keyboard input operation, e.g. prompting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

그래픽 사용자 인터페이스(GUI) 폼과 연관된 일군의 필드에 대한 과거의 폼 사용 정보가 컴퓨터 프로세서를 사용하여 분석된다. 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 일군의 필드 각각에 대한 사용 특성이 식별된다. 일군의 필드 각각에 대한 식별된 사용 특성에 기초하여 GUI 폼이 자동으로 변경된다. 변경된 GUI 폼이 컴퓨팅 장치의 디스플레이 상에 디스플레이된다.

Description

사용 패턴 기반의 자동화된 폼 레이아웃{AUTOMATED FORM LAYOUT BASED UPON USAGE PATTERNS}
본 발명은 그래픽 사용자 인터페이스 폼의 개발에 관한 것이다. 보다 상세하게는, 본 발명은 사용 패턴 기반의 자동화된 폼 레이아웃에 관한 것이다.
그래픽 사용자 인터페이스(GUI) 폼은 컴퓨팅 응용 프로그램에 입력 기능 및 출력 기능을 제공한다. 입력 기능은 텍스트 입력 필드, 드롭다운 목록, 라디오 단추, 체크 박스, 및 기타 입력 필드와 같은 폼 필드(form field)를 포함한다. 사용자는 GUI 폼과 상호작용하며, 다양한 입력 필드와 연관된 선택 또는 입력이 감지된다. 출력은 컴퓨팅 장치에 의해 발생된다. 출력은 동일한 GUI 폼을 통해 또는 다른 GUI 폼을 통해 디스플레이될 수 있다.
본 발명은 그래픽 사용자 인터페이스 폼을 개발하고 더 구체적으로는 사용 패턴 기반의 자동화된 폼 레이아웃의 개발을 통해 종래기술에 비해 더 진일보하기 위함이다.
본 발명에 따른 방법은, 컴퓨터 프로세서를 이용하여, 그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석하는 단계, 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성을 식별하는 단계, 복수의 필드 각각에 대한 식별된 사용 특성에 기초하여 GUI 폼을 자동으로 변경하는 단계, 및 컴퓨팅 장치의 디스플레이 상에 변경된 GUI 폼을 디스플레이하는 단계를 포함한다.
본 발명에 따른 시스템은 디스플레이, 및 프로세서를 포함하고, 프로세서는, 그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석하고, 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성을 식별하며, 복수의 필드 각각에 대한 식별된 사용 특성에 기초하여 GUI 폼을 자동으로 변경하고, 디스플레이 상에 변경된 GUI 폼을 디스플레이하도록 프로그램되어 있다.
본 발명에 따른 컴퓨터 프로그램 제품은 컴퓨터 판독가능 프로그램 코드가 구현되어 있는 컴퓨터 판독가능 저장 매체를 포함하고, 컴퓨터 판독가능 프로그램 코드는, 그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석하고, 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성을 식별하며, 복수의 필드 각각에 대한 식별된 사용 특성에 기초하여 GUI 폼을 자동으로 변경하고, 컴퓨팅 장치의 디스플레이 상에 변경된 GUI 폼을 디스플레이하도록 구성되어 있는 컴퓨터 판독가능 프로그램 코드를 포함한다.
본 발명 대상은 폼 개발자들이, 예를 들면, 자동화된 코드 생성에 앞서 자동 변경의 확인 또는 자동 변경을 사실상 보다 영구적으로 만드는 기타 변경의 확인을 위해, 컴퓨팅 장치에 의해 감지되는 개발자 상호작용에 따라 폼 레이아웃을 개선하는 데 이용될 수 있다. 본 발명 대상은, 폼 내에서의 필드 위치 변경을 위한 코드 변경 및 변경된 코드의 컴파일 또는 해석을 지원하는 것을 비롯하여, 폼 또는 일련의 폼에 대한 대화형 사용 세션 동안에 응용 프로그램이 자동으로 폼 레이아웃을 변경하도록 런타임 중에 이용될 수 있다.
과거의 폼 사용 정보의 분석 및 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성 및/또는 경향의 식별과 관련하여, 과거의 폼 사용 정보로부터 사용 패턴이 추출될 수 있다. 과거의 폼 사용 정보의 추출은 개발자에게 개선된 폼 디자인 및 레이아웃을 추천하기 위해, 현재의 데이터 모델과 폼 레이아웃으로부터의 정보를 이용하여, 폼 사용에 관한 통계를 추출하는 것을 포함할 수 있다. 그에 부가하여 주어진 사용자 또는 주어진 사용자 그룹에 대한 폼을 변경하도록 변경이 완전 자동화될 수 있다.
도 1은 본 발명 대상의 일 실시예에 따른, 사용 패턴 기반의 자동화된 폼 레이아웃 시스템의 구현의 일례의 블록도.
도 2는 본 발명 대상의 일 실시예에 따른, 사용 패턴 기반의 자동화된 폼 레이아웃을 수행할 수 있는 컴퓨팅 장치의 구현의 일례의 블록도.
도 3은 본 발명 대상의 일 실시예에 따른, 사용 패턴 기반의 자동화된 폼 레이아웃 분석에 기초한 한가지 가능한 형태의 강조(highlighting)를 예시하는 그래픽 사용자 인터페이스(GUI)의 구현의 일례를 나타낸 도면.
도 4는 본 발명 대상의 일 실시예에 따른, 사용 패턴 기반의 자동화된 폼 레이아웃 분석에 기초한 도 3의 GUI의 한가지 가능한 재구성(reorganization)을 예시하는 GUI의 구현의 일례를 나타낸 도면.
도 5는 본 발명 대상의 일 실시예에 따른, 사용 패턴 기반의 자동화된 폼 레이아웃 프로세스의 구현의 일례의 흐름도.
도 6은 본 발명 대상의 일 실시예에 따른, 사용 패턴 기반의 자동화된 폼 레이아웃에 기초하여 폼 필드에 우선순위를 부여하고 GUI 폼을 수정하는 프로세스의 구현의 일례의 흐름도.
이하에서 기술되는 일례들은 당업자들이 발명을 실시할 수 있도록 해주는 데 필요한 정보를 제공하며 발명을 실시하는 최상의 방식을 설명한다. 첨부 도면을 고려하여 이하의 설명을 읽어보면, 당업자라면 발명의 개념을 이해하게 될 것이며 본 명세서에 상세히 언급되지 않은 이러한 개념의 응용들을 알게 될 것이다. 이 개념들과 응용들이 본 개시 내용 및 첨부한 특허청구범위의 범위 내에 속한다는 것을 잘 알 것이다.
본 명세서에 기술된 발명 대상은 사용 패턴 기반의 자동화된 폼 레이아웃을 제공한다. 컴퓨팅 장치는 텍스트 입력 필드와 같은, 그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석한다. 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성 및/또는 경향이 식별된다. 복수의 필드 각각에 대한 식별된 사용 특성 및/또는 경향에 기초하여 GUI 폼의 디스플레이되는 버전이 자동으로 변경된다. 변경된 GUI 폼이 컴퓨팅 장치의 디스플레이 상에 디스플레이된다.
본 발명 대상은 폼 개발자들이, 예를 들면, 자동화된 코드 생성에 앞서 자동 변경(automated change)의 확인 또는 자동 변경을 사실상 보다 영구적으로 만드는 기타 변경의 확인을 위해, 컴퓨팅 장치에 의해 감지되는 개발자 상호작용에 따라 폼 레이아웃을 개선하는 데 이용될 수 있다. 그에 부가하여, 본 발명 대상은, 폼 내에서의 필드 위치 변경을 위한 코드 변경 및 변경된 코드의 컴파일 또는 해석(interpretation)을 지원하는 것을 비롯하여, 폼 또는 일련의 폼에 대한 대화형 사용 세션 동안에 응용 프로그램이 자동으로 폼 레이아웃을 변경하도록 런타임 중에 이용될 수 있다.
과거의 폼 사용 정보의 분석 및 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성 및/또는 경향의 식별과 관련하여, 과거의 폼 사용 정보로부터 사용 패턴이 추출될 수 있다. 과거의 폼 사용 정보의 추출은 개발자에게 개선된 폼 디자인 및 레이아웃을 추천하기 위해, 현재의 데이터 모델과 폼 레이아웃으로부터의 정보를 이용하여, 폼 사용에 관한 통계를 추출하는 것을 포함할 수 있다. 그에 부가하여, 이상에서 설명한 바와 같이, 주어진 사용자 또는 주어진 사용자 그룹에 대한 폼을 변경하도록 변경이 완전 자동화될 수 있다.
실세계 사용 데이터와 폼 메타데이터를 이용하여 폼 디자인 피드백이 개발자에게 제공될 수 있다. 사용된 (예를 들어, 사용자가 입력한 텍스트를 갖는) 필드들이 식별될 수 있고, 보다 자주 이용되는 폼 필드를 식별하기 위해 그 사용 정보가 파악될 수 있다. 그에 부가하여, 사용되지 않았거나 거의 사용되지 않은 필드들이 식별될 수 있고, 사용빈도가 적은(lesser-used) 폼 필드를 식별하기 위해 그 사용 정보가 파악될 수 있다. 사용 정보의 파악은 날짜 및/또는 시간 스탬프에 기초할 수 있고, 사용 정보 파악 시의 연관된 폼 입력 기록의 상태에 기초할 수도 있다. 사용 정보는 메모리 또는 데이터베이스에 저장될 수 있고, 본 명세서에 기술되는 사용 패턴 기반의 자동화된 폼 레이아웃에 사용하기 위해 컴파일될 수도 있다
각각의 폼 또는 다수의 폼에 대한 하나의 기록이 하나의 사용 기록과 연관될 수 있기 때문에, 폼 사용 기록들이 저장되어 처리될 수 있다. 기록은 상태 저장(stateful)일 수 있으며, 본 명세서에 기술된 처리는 본 발명 대상의 범위를 벗어나지 않고 상태 기계를 통하여 구현될 수 있다.
본 발명 대상의 사용의 부가의 일례로서, 폼 개발자는, 이하에서 보다 상세히 기술되는 바와 같이, 식별된 사용 특성 및/또는 경향의 시각적 표현을 보여주기 위해, 특정 필드와 연관될 수 있는 시각적 신호(visual cue)를 비롯한, 컴퓨팅 장치에 의해 감지되는 개발자 상호작용을 통하여 폼 레이아웃을 개선할 수 있다. 비주얼 폼 개발 환경 내에서 이동, 재구성 또는 다른 방법으로 변경될 폼 필드를 식별하기 위해 추가적인 개발자 상호작용이 감지될 수 있다.
비주얼 폼 개발환경 내에서의 개발 상호작용 동안이든 런타임 자동 처리 동안이든 간에, 특성 및/또는 경향 데이터의 시각화(visualization)는 다양한 방식으로 수행될 수 있다. 예를 들어, 필드 라벨에 그레잉 효과(graying effect)를 부가한 다음에 사용자가 폼 필드를 재구성할 수 있게 해주거나 일정 기간의 디앰퍼시스(de-emphasis) 후에 폼 필드를 자동으로 재구성함으로써, 기존의 폼에 있는 폼 필드의 점진적인 디앰퍼시스(de-emphasis)가 이용될 수 있다. 그에 부가하여, 그 필드들 주위에 둘러싸는 상자 또는 컬러 상자를 자동으로 드로잉한 다음에 사용자가 폼 필드를 재구성할 수 있게 해주거나 일정 기간의 강조 후에 폼 필드를 자동으로 재구성함으로써, 사용빈도가 높은 필드를 강조하는 것이 이용될 수 있다. 폼 사용 특성 및/또는 경향을 강조하는 많은 다른 예들이 있을 수 있으며, 그 모두가 본 발명 대상의 범위 내에 있는 것으로 간주된다. 본 명세서에 기술된 사용 패턴 기반의 자동화된 폼 레이아웃을 수행하기 위해, 새로운 폼 레이아웃들이 제안될 수 있고 제안된 레이아웃을 수락하거나 거부하는 사용자 입력이 감지되고 처리될 수 있다.
게다가, 폼 필드들의 그룹이 그룹 내에서의 필드들의 순서를 변경하는 동안 유지될 수 있다. 특정 필드 또는 필드들의 그룹이 정적으로(예를 들어, 변하지 않거나 잠금(locked)됨) 지정될 수 있는 반면, 다른 필드 또는 필드들의 그룹은 동적이고 변경가능할 수 있다. 사용빈도가 높은(higher-usage) 필드 또는 사용빈도가 낮은(lower-usage) 필드들의 경우와 같이, 필드들의 그룹이 탭으로 분할될 수 있다. 그에 부가하여, 사용빈도가 높은 필드는 시간이 흐름에 따라 승급(promote)될 수 있고 각자의 필드들에 대한 액세스를 향상시키기 위해 폼의 상단 또는 중앙 쪽으로 더 이동될 수 있는 반면, 사용빈도가 낮은 폼 필드는 폼에서 보다 아래쪽 또는 보다 변두리의 위치로 이동될 수 있다.
폼 사용자는 또한 본 명세서에 기술된 사용 패턴 기반의 자동화된 폼 레이아웃에 대한 어떤 기준(criteria)을 지정할 수 있다. 이 기준은 폼 변경을 위해 자동으로 적용될 폼 변경 규칙(form change rule)에 포함될 수 있다. 기준의 예로는, 예를 들면, 주어진 상태 또는 상태 전환(예를 들어, 주어진 상태에서 폼 입력 프로세스의 다른 상태로)을 위해 입력되는 필드를 포함할 수 있다. 부가의 기준으로는 주어진 타임프레임 동안 입력된 필드(예를 들어, 지난 6개월 사이에 입력된 필드), 특정의 필드 값을 가진 레코드에 대해 입력된 필드(예를 들어, 레코드의 “제품” 필드가 특정 값인 경우), 및 사용자 범위 또는 그룹 별로(예를 들어, 개인 별, 팀 별, 조직 별, 기타) 빈번하게 입력되는 필드를 포함할 수 있다. 많은 다른 기준의 예가 있을 수 있으며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
이상의 설명이 일반적으로 과거의 폼 사용 정보의 분석에 기초하여 본 발명 대상을 사용하는 것에 관한 것인 반면, 본 발명 대상은 이러한 과거의 폼 사용 정보 없이도 사용될 수 있다. 이러한 구현에서, 폼 사용자(예를 들어, 개발자 또는 일반 사용자)는 그들이 예상하기에 어떤 필드가 언제 또 어떤 상태에서 사용될 것인지에 관한 기본값을 컴퓨팅 장치에 제공할 수 있다. 이 예상은 시간이 지나면서 실제의 폼 사용에 기초하여 세분화(refine)될 수 있으며 시간이 지나면서 처리의 개선을 위해 과거의 정보가 정리(assemble)될 수 있다. 그에 따라, 과거의 폼 사용 정보를 생성하기 위해 본 발명 대상이 사용될 수 있다.
그에 부가하여, 사용자와 개발자는 폼을 동적으로 조정하기 위한 입력을 실시간으로 제공할 수 있다. 그에 따라, 사용자가 제공한 값에 기초하여 폼이 수정될 수 있다. 예를 들면, 기업 정보 기술 부서 내에서 폼이 사용되고 심각성이 높은 문제 티켓이 수신된 경우에, 주어진 심각성과 연관된 폼 필드의 순위가 자동으로 더 높아질 수 있고, 연관된 폼 필드의 시인성(visibility)을 강조하거나 다른 방식으로 강화하기 위해, 폼 레이아웃이 자동으로 변경될 수 있다. 이러한 구현에서, 문제 식별자, 담당자, 문제 보고 정보, 및 기타 연관된 필드들과 같은 폼 필드에 우선순위가 부여될 수 있고, 보고된 문제를 처리하도록 배정된 담당자가 신속히 폼 처리를 하도록 연관된 필드 또는 폼의 폼 레이아웃이 자동으로 수정될 수 있다. 동적 폼 레이아웃에 대한 많은 다른 변형들이 있을 수 있으며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
사용 패턴에 기초하여 폼 레이아웃에 대한 즉각적인 변경을 가능하게 해주기 위해, 본 명세서에 기술된 사용 패턴 기반의 자동화된 폼 레이아웃이 실시간으로 수행될 수 있다. 본 설명의 목적상, 실시간이란 기술된 발명 대상의 사용자가 용납할 수 있는 적절한 정보 처리 응답 시간을 제공할 정도로 충분히 짧은 지속기간의 어떤 시간 프레임이라도 포함할 것이다. 그에 부가하여, “실시간”이란 용어는, 기술된 발명 대상의 사용자가 용납할 수 있는 적절한 주문형 정보 처리 응답 시간을 제공할 정도로 충분히 짧은 지속기간의 어떤 시간 프레임을 일반적으로 의미하는, 흔히 “거의 실시간”이라고 불리는 용어를 포함할 것이다(예를 들어, 몇분의 1초 이내 또는 몇 초 이내). 이러한 용어들이, 정확하게 정의하기는 어렵지만, 당업자라면 잘 알 것이다.
도 1은 사용 패턴 기반의 자동화된 폼 레이아웃 시스템(100)의 구현의 일례의 블록도이다. 컴퓨팅 장치(102)는 네트워크(104)를 통하여 서버(106)와 통신한다. 서버(106)와의 통신은, 예를 들어, 서버에 저장된 응용 프로그램과의 사용자 상호작용을 위해 응용 프로그램 폼을 검색하는 것을 포함할 수 있다. 그에 부가하여, 서버(106)와의 통신은 또한, 주어진 구현에 적절한 경우, 폼 사용 데이터베이스(108) 내에 저장된 과거의 폼 사용 정보와 연관된 생성, 액세스 및 검색 활동을 포함할 수 있다.
도 2 내지 도 6과 관련하여 이하에서 보다 상세히 기술될 것인 바와 같이, 컴퓨팅 장치(102)는 처리된 폼의 개발 또는 런타임 동안에 사용 패턴 기반의 자동화된 폼 레이아웃을 제공한다. 사용 패턴 기반의 자동화된 폼 레이아웃은 과거의 폼 사용 정보에 기초하며, 본 명세서에 기술된 자동화된 처리에 응답하여 시간이 지남에 따라 개선된 폼 레이아웃을 제공한다. 사용 패턴 기반의 자동화된 폼 레이아웃은 또한 과거의 폼 사용 정보의 생성 및 보관을 위한 처리를 포함할 수 있다.
주목해야 할 점은, 사용자가 컴퓨팅 장치(102)를 다른 장소로 이동시킬 수 있다는 것 또는 컴퓨팅 장치(102)가 비행기, 기차, 자동차 또는 다른 이동 수단과 같은 휴대용 플랫폼과 연관되어 있다는 것에 의해, 컴퓨팅 장치(102)가 휴대용 컴퓨팅 장치일 수 있다는 것이다. 또한 주목해야 할 점은, 이상에서 기술되고 이하에서 더 상세히 기술되는 바와 같이, 컴퓨팅 장치(102)가 정보를 처리할 수 있는 어떤 컴퓨팅 장치라도 될 수 있다는 것이다. 예를 들면, 컴퓨팅 장치(102)는, 이하에서 더 상세히 기술되는 바와 같이, 개인용 컴퓨터(예를 들어, 데스크톱, 랩톱, 팜, 기타) 또는 핸드헬드 장치[예를 들어, 휴대폰, PDA(personal digital assistant), 이메일 장치, 음악 녹음 또는 재생 장치, 기타], 또는 정보를 처리할 수 있는 다른 어떤 장치라도 포함할 수 있다.
네트워크(104)는 각각 인트라넷 또는 인터넷과 같은 사설 또는 공중 네트워크, 직접적인 모듈간 상호접속, 전화 접속(dial-up), 무선, 또는 각자의 장치를 상호접속시킬 수 있는 임의의 다른 상호접속 메커니즘을 비롯한, 의도한 목적에 적합한 어떤 형태의 상호접속이라도 포함할 수 있다.
도 2는 사용 패턴 기반의 자동화된 폼 레이아웃을 수행할 수 있는 컴퓨팅 장치(102)의 구현의 일례의 블록도이다. 중앙 처리 장치(CPU)(200)는 컴퓨팅 장치(102) 내에서의 컴퓨터 명령 실행, 계산 및 기타 기능들을 제공한다. 디스플레이(202)는 컴퓨팅 장치(102)의 사용자에게 시각적 정보를 제공하고, 입력 장치(204)는 사용자에게 입력 기능을 제공한다.
디스플레이(202)는 CRT(cathode ray tube), LCD(liquid crystal display), LED(light emitting diode), 프로젝션, 터치스크린, 또는 기타 디스플레이 요소 또는 패널과 같은 어떤 디스플레이 장치라도 포함할 수 있다. 입력 장치(204)는 컴퓨터 키보드, 키패드, 마우스, 펜, 조이스틱, 또는 사용자가 디스플레이(202) 상의 정보와 상호작용하고 그 정보에 응답할 수 있는 다른 어떤 종류의 입력 장치라도 포함할 수 있다.
통신 모듈(206)은, 사용 패턴 기반의 자동화된 폼 레이아웃을 수행하기 위해, 컴퓨팅 장치(102)가 시스템(100) 내의 다른 모듈들[서버(106) 등]과 통신할 수 있게 해주는 상호접속 기능을 제공한다. 통신 모듈(206)은 상호접속 기능을 제공하는 데 사용될 수 있는 어떤 전기적, 프로토콜 및 프로토콜 변환 기능이라도 포함할 수 있다. 예시와 설명의 편의상, 통신 모듈(206)이 구성요소-레벨 모듈로서 예시되어 있지만, 이상에서 기술되고 이하에서 더 상세히 기술되는 바와 같이, 통신 모듈(206)이 통신 모듈(206)의 기능을 수행하는 데 사용되는 어떤 하드웨어, 프로그램된 프로세서(들) 및 메모리라도 포함할 수 있다는 것에 주목해야 한다. 예를 들면, 통신 모듈(206)은 통신 모둘(206)과 연관된 통신 및 전기적 제어 활동을 수행하는, ASICs(application specific integrated circuits), 프로세서, 안테나 및/또는 이산 집적 회로와 구성요소 형태의 부가의 제어기 회로를 포함할 수 있다. 그에 부가하여, 통신 모듈(206)은, 적절한 경우, 인터럽트-레벨, 스택-레벨 및 응용 프로그램-레벨 모듈들을 포함할 수 있다. 게다가, 통신 모듈(206)은 통신 모듈(206)과 연관된 처리 활동을 수행하기 위해 저장, 실행 및 데이터 처리에 사용되는 어떤 메모리 구성요소라도 포함할 수 있다. 통신 모듈(206)은 또한, 본 발명 대상의 범위를 벗어나지 않고, 기술된 다른 회로의 일부분을 형성할 수 있다.
메모리(208)는 컴퓨팅 장치(102) 내의, GUI(graphical user interface) 폼과 연관된 필드에 대한 식별된 사용 특성 및/또는 경향과 같은 정보를 저장하는 폼 정보 저장 영역(210)을 포함한다. 이하에서 보다 상세히 기술될 것인 바와 같이, 폼 정보 저장 영역(210) 내에 저장된 폼 정보는, 폼 디자이너에게 피드백을 제공하거나 응용 프로그램의 런타임 처리 동안에 폼을 자동으로 변경하기 위해, 각각의 필드에 대한 식별된 사용 특성 및/또는 경향에 기초하여 GUI 폼의 디스플레이된 버전을 자동으로 변경하는 데 사용된다.
메모리(208)가 의도한 목적에 적합한 휘발성 및 비휘발성 메모리의 임의의 조합(적절한 경우, 분산되거나 로컬화되어 있음)을 포함할 수 있으며, 설명의 편의상, 본 일례에서 예시되지 않은 다른 메모리 세그먼트를 포함할 수 있다는 것을 잘 알 것이다. 예를 들면, 메모리(208)는, 본 발명 대상의 범위를 벗어나지 않고, 코드 저장 영역, 코드 실행 영역 및 데이터 영역을 포함할 수 있다.
사용 분석 모듈(212)과 폼 레이아웃 모듈(214)도 나타내어져 있다. 사용 분석 모듈(212)은, 이상에서 기술되고 이하에서 더 상세히 기술되는 바와 같이, 과거의 폼 사용 정보에 대한 생성 및 처리 기능을 컴퓨팅 장치(102)에 제공한다. 폼 레이아웃 모듈(214)은 컴퓨팅 장치(102)의 사용 패턴 기반의 자동화된 폼 레이아웃을 구현한다.
사용 분석 모듈(212)과 폼 레이아웃 모듈(214)이, 예시 및 설명의 편의상, 구성요소-레벨 모듈로서 예시되어 있지만, 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)이, 이상에서 기술되고 이하에서 더 상세히 기술되는 바와 같이, 이 모듈들의 기능을 수행하는 데 사용되는 어떤 하드웨어, 프로그램된 프로세서(들) 및 메모리라도 포함할 수 있다는 것에 주목해야 한다. 예를 들면, 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)은 각자의 장치들과 연관된 통신 및 전기적 제어 활동을 수행하는, ASIC(application specific integrated circuits), 프로세서 및/또는 이산 집적 회로 및 구성요소 형태의 부가의 제어기 회로를 포함할 수 있다. 그에 부가하여, 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)은 또한, 적절한 경우, 인터럽트-레벨, 스택-레벨 및 응용 프로그램-레벨 모듈들을 포함할 수 있다. 게다가, 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)은 모듈과 연관된 처리 활동을 수행하기 위해 저장, 실행 및 데이터 처리에 사용되는 어떠한 메모리 구성요소라도 포함할 수 있다.
사용 분석 모듈(212)과 폼 레이아웃 모듈(214)이, 본 발명 대상의 범위를 벗어나지 않고, 기술된 다른 회로의 일부분을 형성할 수 있다는 것에 주목해야 한다. 게다가, 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)이 다른 대안으로서 메모리(208) 내에 저장된 응용 프로그램으로서 구현될 수 있다. 이러한 구현에서, 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)은 본 명세서에 기술된 기능을 수행하기 위해 CPU(200)에 의해 실행되는 명령들을 포함할 수 있다. CPU(200)는 이상에서 기술되고 이하에서 보다 상세히 기술되는 처리 기능을 컴퓨팅 장치(102)에 제공하기 위해 이 명령들을 실행할 수 있다. 사용 분석 모듈(212)과 폼 레이아웃 모듈(214)은, 본 발명 대상의 범위를 벗어나지 않고, 인터럽트 서비스 루틴(ISR)의 일부분, 운영 체제의 일부분, 브라우저 응용 프로그램의 일부분, 또는 별도의 응용 프로그램의 일부분을 형성할 수 있다.
타이머/시계 모듈(216)이 예시되어 있고, 이상에서 기술되고 이하에서 보다 상세히 기술되는 바와 같이, 폼 필드가 비교적 높거나 낮은 빈도로 사용되는 기간 또는 시간 프레임과 같은 타이밍 및 날짜 정보를 확인하는 데 사용된다. 따라서, 사용 분석 모듈(212)은 본 명세서에 기술된 사용 패턴 기반의 자동화된 폼 레이아웃과 같은 정보 처리 활동을 위해 타이머/시계 모듈(216)로부터 얻어지는 정보를 이용할 수 있다.
폼 사용 데이터베이스(108)가 컴퓨팅 장치(102)와 관련하여 예시되어 있고, 이상에서 기술되고 이하에 보다 상세히 기술되는 바와 같이, 컴퓨팅 장치(102)의 사용 패턴 기반의 자동화된 폼 레이아웃과 연관된 정보를 저장하는 기능을 제공한다. 따라서, 도 1의 일례가 네트워크(104)를 통해 상호접속된 폼 사용 데이터베이스(108)를 나타내고 있는 반면, 도 2의 일례는, 본 발명 대상의 범위를 벗어나지 않고, 폼 사용 데이터베이스(108)가 로컬 데이터베이스일 수 있다는 것을 나타내고 있다.
CPU(200), 디스플레이(202), 입력 장치(204), 통신 모듈(206), 메모리(208), 사용 분석 모듈(212), 폼 레이아웃 모듈(214), 타이머/시계 모듈(216) 및 폼 사용 데이터베이스(108)는 상호접속부(218)를 통해 상호접속된다. 상호접속부(218)는 시스템 버스, 네트워크, 또는 각자의 구성요소에 각자의 목적에 적당한 상호접속을 제공할 수 있는 다른 어떤 상호접속부라도 포함할 수 있다.
컴퓨팅 장치(102)가 기술된 특정 구성요소들로 예시되고 이들을 포함하지만, 본 발명 대상의 범위를 벗어나지 않고, 기타 모듈 및 구성요소가 컴퓨팅 장치(102)와 연괸될 수 있다. 그에 부가하여, 컴퓨팅 장치(102)가, 설명의 편의상, 단일 장치로서 기술되어 있지만, 컴퓨팅 장치(102) 내의 구성요소는, 본 발명 대상의 범위를 벗어나지 않고, 동일 장소에 위치해 있거나 분산되어 네트워크를 통하여 상호접속될 수 있다는 것에 주목해야 한다. 분산 구성(distributed arrangement)의 경우에, 디스플레이(202)와 입력 장치(204)가 POS(point of sale) 장치, 키오스크 또는 기타 장소에 위치할 수 있는 반면, CPU(200)와 메모리(208)는 로컬 또는 원격 서버에 위치할 수 있다. 컴퓨팅 장치(102)의 구성요소에 대한 많은 다른 가능한 구성이 있을 수 있으며, 그 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다. 또한, 폼 사용 데이터베이스(108)가 별도의 구성요소로서 예시되어 있지만, 본 발명 대상의 범위를 벗어나지 않고, 폼 사용 데이터베이스(108) 내에 저장된 정보가 메모리(208) 내에도 저장될 수 있다는 것을 잘 알 것이다. 따라서, 컴퓨팅 장치(102)는 많은 폼들을 가질 수 있으며 많은 플랫폼들과 연관될 수 있다.
이하에서 기술되는 도 3 및 도 4는, 본 발명 대상과 연관된 사용 패턴 기반의 자동화된 폼 레이아웃을 수행하기 위해, 컴퓨팅 장치(102)와 같은 장치들에 의해 자동으로 수정 및/또는 생성될 수 있는 그래픽 사용자 인터페이스(GUI)의 일례를 나타낸 것이다. 예시적인 GUI에 대한 많은 다른 변형들이 있을 수 있으며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
도 3은 사용 패턴 기반의 자동화된 폼 레이아웃 분석에 기초한 한가지 가능한 형태의 강조(highlighting)를 예시하는 GUI(300)의 구현의 일례를 나타낸 것이다. GUI(300)로부터 알 수 있는 바와 같이, Main 탭(302), Notes 탭(304), Resolution 탭(306), Attachments 탭(308), History 탭(310) 및 Customer 탭(312)이 예시되어 있다. 이들 탭(302 내지 312) 각각이 GUI(300) 내의 서로 다른 폼을 나타낸다는 것을 잘 알 것이다. 또한, 입력 장치(204)를 통하는 등에 의해 이들 탭 각각을 선택하는 것이 연관된 각자의 폼을 디스플레이하기 위해 컴퓨팅 장치(102)에 의해 감지될 수 있다는 것도 잘 알 것이다. 본 일례의 목적상, Main 탭(302)과 연관된 폼(314)만이 GUI(300) 내에 나타내어져 있다.
폼(314) 내에, 몇개의 텍스트 입력 필드들이 나타내어져 있다. ID 필드(316), State 필드(318), Headline 필드(320), Project 필드(322), Keyword 필드(324), Severity 필드(326), Priority 필드(328), Symptoms 필드(330) 및 Description 필드(332)가 나타내어져 있다. 본 발명 대상의 범위를 벗어나지 않고, 이 예시적인 폼(314)이 프로젝트 오류 추적을 위해 또는 다른 목적을 위해 사용자 인터페이스 응용 프로그램과 연관되어 있을 수 있다는 것을 잘 알 것이다.
몇개의 그래픽 별표시들이 나타내어져 있으며, 필드들 중 몇몇에 대한 식별된 사용 특성 및/또는 경향을 표현하고 있다. 폼(314)으로부터 알 수 있는 바와 같이, 별표시(334)에는 폼(314)에서 가장 많이 사용된 필드임을 나타내는 숫자 1(1)이 있다. 별표시(336)에는 폼(314)에서 두 번째로 많이 사용된 필드임을 나타내는 숫자 2(2)가 있다. 마찬가지로, 별표시(338)에는 숫자 3(3), 별표시(340)에는 숫자 4(4), 별표시(342)에는 숫자 5(5)가 있는데, 이는 이들이 폼(314)에서 세 번째, 네 번째, 다섯 번째로 많이 사용된 필드임을 각각 나타낸다. 그에 따라, 나타내어져 있는 별표시들(334 내지 342) 각각이 폼(314)의 각자의 필드들에 대한 과거의 폼 사용 정보의 분석에 기초한 그의 사용 순위와 연관된 숫자를 갖는다.
폼(314)이 부가의 필드들을 갖지만, 본 일례의 목적상, 별표시들(334 내지 342)과 연관된 각자의 필드들이 본 일례를 설명하는 데 충분한 수의 강조된 필드를 제공한다는 것을 잘 알 것이다. 하지만, 부가의 사용 특성 및/또는 경향을 나타내는 부가의 필드들이 강조될 수 있다는 것도 역시 잘 알 것이다. 게다가, 예를 들면, 그 필드 주위에 둘러싸는 상자 또는 컬러 상자를 자동으로 드로잉하는 것과 같이, 강조의 다른 변형들이 사용될 수 있다. 강조의 많은 다른 변형들도 역시 가능하다. 그에 따라, 별표시(334 내지 342)의 사용은 단지 본 강조의 일례에 대한 설명의 편의를 위한 것이며, 본 발명 대상의 범위를 벗어나지 않고, 본 일례에 대한 많은 다른 변형들이 있을 수 있다.
도 4는 사용 패턴 기반의 자동화된 폼 레이아웃 분석에 기초한 도 3의 GUI(300)의 한가지 가능한 재구성을 예시하는 그래픽 사용자 인터페이스(GUI)(400)의 구현의 일례를 예시한 것이다. GUI(400)로부터 알 수 있는 바와 같이, 새로운 Most-Used 탭(402)이 도 3의 GUI(300)에 추가되었다. 새로운 폼(404)이 Most-Used 탭(402)과 연관된다.
일렬의 라디오 단추들(406)은 폼(404)의 다양한 재구성을 선택하기 위한 GUI 요소를 나타낸다. 일렬의 라디오 단추들(406)은 Most-Used By Me 라디오 단추(408), Most-Used By Team 라디오 단추(410) 및 Most-Used by Project 라디오 단추(412)를 포함한다. 그에 따라, 서로 다른 라디오 단추들(408 내지 412)의 선택의 감지에 응답하여, 컴퓨팅 장치(102)는 각자의 사용자 또는 사용자 그룹별로 과거의 사용의 분석에 기초하여 폼(404)을 재구성할 수 있다.
폼(404)으로부터 알 수 있는 바와 같이, 도 3과 관련되어 설명된 가장 많이 사용된 필드들을 나타내는 Project 필드(322), State 필드(318), Headline 필드(320), Keywords 필드(324) 및 Description 필드(332)가 폼(404) 상에 디스플레이된다. 또한, Project 필드(322), State 필드(318), Headline 필드(320), Keywords 필드(324) 및 Description 필드(332)가 본 명세서에 기술된 사용 패턴 기반의 자동화된 폼 레이아웃 분석에 기초하여 그들 각자의 결정된 순위의 순서로 디스플레이된다는 것에 주목해야 한다. 그에 따라, 폼(404)은, 폼 레이아웃을 자동으로 재구성하기 위한 런타임 구성 옵션에 응답하여 또는 입력 장치(204)를 통하는 등에 의해 이러한 재구성을 요청하는 개발자로부터의 입력의 감지에 응답하여, 자동으로 생성되어 도 3의 GUI(300)에 추가된 새로운 폼을 나타낸다.
본 일례가 사용빈도가 높은 폼 필드를 포함하는 자동 생성된 폼의 한가지 가능한 구현을 나타낸다는 것에 주목해야 한다. 게다가, 본 일례가 사용 순위에 기초하여 폼 필드를 순서대로 배열하는 폼 재구성의 한가지 가능한 구현을 나타낸다. 하지만, 이 예들에 대한 많은 변형들이 가능하며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
이하에서 기술되는 도 5 및 도 6은, 본 발명 대상과 연관된 사용 패턴 기반의 자동화된 폼 레이아웃을 수행하기 위해, 컴퓨팅 장치(102)와 같은 장치들에 의해 실행될 수 있는 예시적인 프로세스들을 나타낸 것이다. 예시적인 프로세스들에 대한 많은 다른 변형들이 있을 수 있으며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다. 예시적인 프로세스들은 사용 분석 모듈(212), 폼 레이아웃 모듈(214)과 같은 모듈에 의해 수행되고/되거나 이러한 장치들과 연관된 CPU(200)에 의해 실행될 수 있다. 타임아웃 절차 및 다른 오류 제어 절차들이, 설명의 편의상, 이하에 기술되는 예시적인 프로세스들 내에 예시되어 있지 않다는 것에 주목해야 한다. 하지만, 이러한 절차들 모두가 본 발명 대상의 범위 내에 있는 것으로 간주된다는 것을 잘 알 것이다.
도 5는 사용 패턴 기반의 자동화된 폼 레이아웃 프로세스(500)의 구현의 일례의 흐름도이다. 블록(502)에서, 프로세스(500)는, 컴퓨터 프로세서를 이용하여, 그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석한다. 블록(504)에서, 프로세스(500)는 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 복수의 필드 각각에 대한 사용 특성을 식별한다. 블록(506)에서, 프로세스(500)는 복수의 필드 각각에 대한 식별된 사용 특성에 기초하여 GUI 폼을 자동으로 변경한다. 블록(508)에서, 프로세스(500)는 컴퓨팅 장치의 디스플레이 상에 변경된 GUI 폼을 디스플레이한다.
도 6은 사용 패턴 기반의 자동화된 폼 레이아웃에 기초하여 폼 필드에 우선순위를 부여하고 GUI 폼을 수정하는 프로세스(600)의 구현의 일례의 흐름도이다. 판정 지점(602)에서, 프로세스(600)는 폼 액세스 이벤트가 감지되었는지 여부에 대해 판정을 한다. 폼 액세스 이벤트는, 예를 들어, 폼을 포함하는 응용 프로그램의 열기, 한 응용 프로그램 폼에서 다른 응용 프로그램 폼으로의 변경(예를 들어, 탭을 갖는 GUI 요소 내에서 탭을 선택하는 등에 의함), 개발 목적으로 폼 개발 도구를 통해 폼에 액세스하는 것, 또는 임의의 다른 폼 액세스 이벤트를 포함할 수 있다. 폼 액세스 이벤트가 감지되었다는 판정이 행해지면, 프로세스(600)는, 블록(604)에서, 폼 필드들에 대한 사용 특성(예를 들어, 경향)을 식별하기 위해 분석을 위한 과거의 폼 사용 정보를 수신한다.
블록(606)에서, 프로세스(600)는 과거의 폼 사용 정보 내에서 GUI 폼과 연관된 각각의 폼 필드에 대한 정보 입력 이벤트를 식별하고 합산한다. 블록(608)에서, 프로세스(600)는, 필드들 각각과 연관되어 있는 합산된 정보 입력 이벤트의 양에 기초하여, 순위를 폼 필드들 각각과 연관시킨다.
판정 지점(610)에서, 프로세스(600)는 GUI 폼과 연관된 필드들의 임의의 부분집합이 다른 필드들 또는 필드들의 부분집합보다 더 많이 사용되는지(예를 들어, 보다 많이 사용되는 부분집합인지) 여부에 대해 판정을 한다. 보다 많이 사용되는 부분집합을 나타내는 필드들의 부분집합이 적어도 하나 있다는 판정이 행해지면, 프로세스(600)는, 블록(612)에서, GUI 폼 내에 있는 임의의 식별된 필드들의 부분집합(들)에 우선순위를 부여한다. 우선순위를 부여하는 것은, 예를 들어, 각자의 우선순위를 식별하기 위해 주어진 폼 필드와 연관된 플래그(flag) 또는 다른 표시(indication)를 설정하는 것을 포함할 수 있다.
판정 지점(610)에서 보다 많이 사용되는 부분집합을 나타내는 필드들의 부분집합이 적어도 하나도 있지 않다는 판정이 행해지거나, 블록(612)에서 우선순위 부여가 완료되면, 프로세스(600)는, 판정 지점(614)에서, GUI 폼 내의 임의의 우선순위가 부여된 부분집합(들)과 연관된 폼 사용자 그룹이 식별되었는지 여부에 대해 판정을 한다. 예를 들면, 사용자 그룹은 프로젝트 팀, 친구들의 그룹, 동일한 고용주와 연관된 사람들의 그룹, 또는 기타 식별가능한 그룹일 수 있다. 우선순위가 부여된 필드들의 부분집합과 관련하여 적어도 하나의 사용자 그룹이 식별되었다는 판정이 행해지면, 프로세스(600)는 또한, 블록(616)에서, 식별된 폼 사용자 그룹에 대한 GUI 폼 내의 필드들의 부분집합에 우선순위를 부여한다. 상기한 우선순위 부여에서와 같이, 플래그 또는 다른 표시가 주어진 그룹에 대한 우선순위 부여를 위해 폼 필드들 간의 상대적 우선순위를 표시하는 데 사용될 수 있다. 다수의 그룹이 식별될 수 있고, 각자의 그룹들 각각에 대해 사용자-지정 방식으로 폼 필드들에 우선순위가 부여될 수 있다. 그룹에 대한 폼 필드들의 부분집합에 우선순위를 부여하는 많은 다른 가능한 방법들이 존재한다는 것과 이들 모두가 본 발명 대상의 범위 내에 있는 것으로 간주된다는 것을 잘 알 것이다.
판정 지점(614)에서 우선순위가 부여된 필드들의 부분집합과 관련하여 적어도 하나의 사용자 그룹이 식별되지 않았다는 판정이 행해지거나, 블록(616)에서 추가적인 우선순위 부여가 완료되면, 프로세스(600)는, 판정 지점(618)에서, 식별된 우선순위에 기초하여 폼 변경 규칙이 GUI 폼에 대한 변경을 관리하는 데 사용될 수 있는지 여부에 대해 판정을 행한다. 식별된 우선순위에 기초하여 폼 변경 규칙이 GUI 폼에 대한 변경을 관리하는 데 사용될 수 있다는 판정이 행해지면, 프로세스(600)는, 블록(620)에서, GUI 폼과 연관된 필드들의 부분집합 각각에 대해 식별된 사용 특성 및/또는 경향에 폼 변경 규칙을 적용한다.
예를 들면, 폼 변경 규칙은 우선순위가 부여된 필드들의 부분집합(예를 들어, 하나 이상의 그룹에 대한 우선순위가 부여된 사용빈도가 높은 필드들의 부분집합 및/또는 필드들)을 선택하여 GUI 폼 내에서 복수의 필드의 부분집합(들)에 대한 디스플레이 위치를 재지정하고/하거나 필드들의 부분집합(들) 내의 필드들의 상대적 우선순위에 기초하여 필드들의 부분집합(들) 내의 필드들의 순서를 변경하는 규칙을 포함할 수 있다. 다른 일례로서, 폼 필드들이 재정렬될 수 있다. 폼 변경 규칙의 생성 및 처리에 대한 많은 다른 가능한 방법들이 존재하며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
판정 지점(618)에서 식별된 우선순위에 기초하여 폼 변경 규칙이 GUI 폼에 대한 변경을 관리하는 데 이용될 수 없다는 판정이 판정 지점(618)에서 행해지거나 블록(620)에서 규칙을 적용하는 것이 완료되면, 프로세스(600)는, 판정 지점(622)에서, 할당된 우선순위에 기초하여, 우선순위가 부여된 필드들의 부분집합들 중 임의의 부분집합을 분할할지 여부에 대해 판정을 한다. 예를 들면, 식별된 그룹에 대한 우선순위가 부여된 필드들의 부분집합은, 도 4와 관련하여 상기한 바와 같은 Most-Used 탭(402)을 이용하여 색인된 폼(404)과 같은, 별도의 폼 또는 폼의 별도의 탭 섹션(tabbed section) 내에 필드들의 부분집합을 배치함으로써 분할될 수 있다. 하지만, 우선순위가 부여된 폼 필드들을 분할하는 많은 가능한 방법들이 존재하고 이들 모두가 본 발명 대상의 범위 내에 있는 것으로 간주된다는 것을 잘 알 것이다. 판정 지점(622)에서 우선순위가 부여된 필드들의 부분집합 중 임의의 부분집합을 GUI 폼의 탭 섹션으로 분할하기로 판정이 행해지면, 프로세스(600)는, 블록(624)에서, 필드들의 다른 부분집합에 비해 사용빈도가 높은 특성을 갖는 식별된 필드들의 부분집합을 분할한다.
판정 지점(622)에서 우선순위가 부여된 필드들의 부분집합 중 임의의 부분집합을 GUI 폼의 탭 섹션으로 분할하지 않기로 판정이 행해지거나, 블록(624)에서 사용빈도가 높은 특성을 갖는 식별된 폼 필드들의 부분집합을 분할하는 것이 완료되면, 프로세스(600)는, 판정 지점(626)에서, GUI 폼의 필드들 중 임의의 필드에 주석을 첨부할지(예를 들어, 그 필드를 강조할지) 여부에 대해 판정을 한다. GUI 폼의 필드들 중 임의의 필드에 주석을 첨부하기로(예를 들어, 그 필드를 강조하기로) 판정이 행해지면, 프로세스(600)는, 블록(628)에서, 폼 필드(들)에 주석을 첨부한다(예를 들어, 그 필드를 강조한다). 주석을 첨부하는 것과 강조하는 것은, 예를 들어, 도 3과 관련하여 상기한 별표시들(334 내지 342) 중의 하나를 통해 또는 사용 특성 및/또는 경향에 순위를 매겨 숫자로 식별해주는 것을 비롯한 다른 그래픽 아이콘 또는 표기법을 통하는 것 등에 의해, 폼 필드에 그래픽으로 표시하는 것을 포함할 수 있다. 주석을 첨부하는 것과 강조하는 것은 또한, 예를 들어, GUI 폼 내의 필드들 중의 적어도 하나에 필드들과 연관되어 있는 식별된 사용 특성을 사용하여 그래픽으로 주석을 첨부하는 것과, 서서히 디엠퍼시스(de-emphasizing)하거나 서서히 엠퍼시스(emphasizing)하거나 하나 이상의 필드들 주위에 상자를 배치함으로써 강조(highlighting)하는 것을 포함할 수 있다. 예를 들면, 시간이 지나면서 필드들의 사용이 감소된 것으로 감지되면, 이 필드들을 폼의 아랫쪽 위치로 또는 폼의 별도의 탭 부분(tabbed portion)으로 이동시킴으로써 이 필드들이 디엠퍼시스될 수 있다. 이와 유사하게, 시간이 지나면서 필드들의 사용이 증가된 것으로 감지되면, 이 필드들을 폼의 위쪽 위치로 또는 폼의 우선순위가 부여된 탭 부분으로 이동시킴으로써 이 필드들이 엠퍼시스될 수 있다. 식별된 사용 특성 및/또는 경향에 기초하여 필드들에 주석을 첨부하고 강조하는 많은 다른 가능한 방법들이 존재하며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
판정 지점(626)에서 폼의 필드들 중 임의의 필드에 주석을 첨부하거나 강조하지 않기로 판정이 행해지거나, 블록(628)에서 주석을 첨부하는 것과 강조하는 것이 완료되면, 프로세스(600)는, 판정 지점(630)에서, GUI 폼의 필드들의 레이아웃을 변경할지 여부에 대해 판정을 한다. 예를 들면, 프로세스(600)는 필드들 각각에 대한 우선순위 및/또는 식별된 사용 특성에 기초하여 GUI 폼 내의 필드들의 레이아웃을 변경할 수 있다. 프로세스(600)는 또한 식별된 사용 특성과 연관되어 있는 우선순위가 부여된 순위에 기초하여 GUI 폼의 필드들의 레이아웃을 변경할 수 있다. 레이아웃에 대한 변경은, 식별된 사용 특성에 기초하여 필드들을 엠퍼시스하거나 디엠퍼시스하기 위해, 필드들을 이동시키는 것, 필드들을 재정렬하는 것, 또는 임의의 다른 변경을 포함할 수 있다. 식별된 사용 특성 및/또는 경향에 기초하여 GUI 폼의 필드들의 레이아웃을 변경하는 많은 다른 가능한 방법들이 존재하며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다. GUI 폼의 필드들의 레이아웃을 변경하기로 판정이 행해지면, 프로세스(600)는, 블록(632)에서, 폼 필드들의 레이아웃을 변경한다. 상기한 바와 같이, 특정 필드가 잠금되어 있을 수 있고 재정렬될 수 없다는 것에 주목해야 한다. 게다가, 필드들의 그룹이 주어진 구현에 기초하여 주어진 그룹 내에서 재정렬될 수는 있지만, 그룹으로부터 이동될 수는 없도록 구성될 수 있다. 다시 말하면, 폼 필드를 잠금하고 그룹화하는 많은 가능한 방법들이 존재하며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
판정 지점(630)에서 폼 필드들의 레이아웃을 변경하지 않기로 판정이 행해지거나, 블록(632)에서 폼 필드들의 레이아웃을 변경하면, 프로세스(600)는, 블록(634)에서, 자동으로 변경된 GUI 폼에 기초하여 동작하도록 GUI 폼을 수정한다. 예를 들어, 프로세스(600)는, 본 발명 대상의 범위를 벗어나지 않고, 기존의 폼 실행가능 코드(form executable code)에 의해 이용되는 폼 정의(form definition)를 수정할 수 있다. 이러한 구현에서, 기존의 실행가능 코드는 수정된 폼 정의를 이용하여 각자의 GUI 폼을 렌더링할 수 있다. 다른 대안으로서, 프로세스(600)는 GUI 폼과 연관된 실행가능 코드를 수정할 수 있다. 또한, 실행가능 코드의 수정을 위한 처리가, 주어진 구현에 적절한 경우, 실행 또는 해석(interpretation)을 위해, 컴파일(compilation), 어셈블리(assembly), 빌드(build) 또는 수정된 코드를 다른 방식으로 준비하는 것을 포함할 수 있다는 것을 더욱 잘 알 것이다. 이러한 구현에서, 블록(634)에서의 처리는 또한 GUI 폼과 연관되어 있는 수정된 실행가능 코드를 실행하는 것을 포함할 수 있다. 폼 수정을 위한 처리에 대한 많은 다른 변형들이 있을 수 있으며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다. 프로세스(600)는, 블록(636)에서, 변경된 GUI 폼을 디스플레이하고 다른 폼 액세스 이벤트를 기다리기 위해 판정 지점(602)으로 돌아간다.
그에 따라, 프로세스(600)는 폼과 연관된 필드들에 대한 과거의 폼 사용 정보를 수신하고 분석한다. 프로세스(600)는 또한 과거의 폼 사용 정보 내에서 폼과 연관된 필드들 각각에 대한 사용 특성 및/또는 경향을 식별한다. 프로세스(600)는, 모든 사용자들에 걸쳐 또는 식별된 사용자 그룹들 중에서, 사용에 기초하여 필드들에 우선순위를 부여하고 그룹화하고, 필드들 각각에 대한 식별된 사용 특성에 기초하여 폼의 디스플레이된 버전을 자동으로 변경한다. 자동화된 변경은 필드에 그래픽으로 주석을 첨부하는 것, 필드를 분할하는 것, 폼의 레이아웃을 변경하는 것을 포함하며, 사용 특성 및/또는 경향에 기초하여 폼을 자동으로 수정한다.
도 1 내지 도 6과 관련하여 상기한 바와 같이, 예시적인 시스템 및 프로세스는 사용 패턴 기반의 자동화된 폼 레이아웃을 제공한다. 사용 패턴 기반의 자동화된 폼 레이아웃과 연관된 많은 다른 변형들 및 부가의 활동들이 있을 수 있으며, 이들 모두는 본 발명 대상의 범위 내에 있는 것으로 간주된다.
당업자라면, 이상의 개시 내용을 고려하여, 상기 일례들 중의 일부가 CPU(200)와 같은 프로그램된 프로세서의 사용에 기초하고 있다는 것을 잘 알 것이다. 하지만, 특수 용도의 하드웨어 및/또는 전용 프로세서와 같은 등가의 하드웨어 구성요소를 이용하여 다른 구현들이 구현될 수 있기 때문에, 본 발명이 이러한 예시적인 실시예들로 제한되지 않는다. 마찬가지로, 범용 컴퓨터, 마이크로프로세서-기반 컴퓨터, 마이크로컨트롤러, 광 컴퓨터, 아날로그 컴퓨터, 전용 프로세서, 주문형 반도체(application specific circuits) 및/또는 전용의 하드 와이어드 논리(dedicated hard wired logic)가 대안의 등가 실시예를 구성하는 데 사용될 수 있다.
당업자라면 잘 알 것인 바와 같이, 본 발명의 측면들이 시스템, 방법, 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 발명의 측면들은, 전적으로 하드웨어인 실시예, 전적으로 소프트웨어인 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함), 또는 소프트웨어와 하드웨어 측면들을 겸비한 실시예(이들 모두가 일반적으로 본 명세서에서 “회로”, “모듈” 또는 “시스템”으로서 지칭될 수 있음)의 형태를 취할 수 있다. 게다가, 본 발명의 측면들이 컴퓨터 판독가능 프로그램 코드가 구현되어 있는 하나 이상의 컴퓨터-판독가능 매체(들)에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터-판독가능 매체(들)의 임의의 조합이 이용될 수 있다. 컴퓨터-판독가능 매체는 컴퓨터-판독가능 신호 매체 또는 컴퓨터-판독가능 저장 매체일 수 있다. 컴퓨터-판독가능 저장 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 소자 또는 이들의 임의의 적당한 조합일 수 있지만, 이들로 제한되지 않는다. 보다 구체적인 컴퓨터-판독가능 저장 매체의 일례(비전수적인 목록임)로는, 하나 이상의 전선을 갖는 전기적 연결, 휴대형 컴퓨터 디스켓(portable computer diskette), 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거가능 프로그램가능 판독 전용 메모리(EPROM, 또는 플래쉬 메모리), 휴대형 CD-ROM(compact disc read-only memory), 광 저장 장치, 자기 저장 장치, 또는 이들의 임의의 적당한 조합이 있을 것이다. 본 문서와 관련하여, 컴퓨터-판독가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 그와 관련하여 사용하기 위한 프로그램을 포함하거나 저장할 수 있는 유형의 매체(tangible medium)라면 어느 것이라도 될 수 있다.
컴퓨터-판독가능 신호 매체는 컴퓨터-판독가능 프로그램 코드가 구현되어 있는 전파 데이터 신호(propagated data signal)(예를 들어, 기저대역 내에 있거나 반송파의 일부로서 있음)를 포함할 수 있다. 이러한 전파 신호는 전자기, 광학 또는 이들의 임의의 적합한 조합(이들로 제한되지 않음)을 포함하는 다양한 형태들 중 임의의 형태를 취할 수 있다. 컴퓨터-판독가능 신호 매체는, 컴퓨터-판독가능 저장 매체는 아니지만, 명령 실행 시스템, 장치, 또는 디바이스에 의해 또는 그와 관련하여 사용하기 위한 프로그램을 전달, 전파 또는 전송할 수 있는 임의의 컴퓨터-판독가능 매체일 수 있다.
컴퓨터-판독가능 매체 상에 구현된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF, 기타 또는 이들의 임의의 적합한 조합(이들로 제한되지 않음)을 포함하는 임의의 적합한 매체를 사용하여 전송될 수 있다.
본 발명의 측면들에 대한 동작들을 수행하는 컴퓨터 프로그램 코드는, Java, Smalltalk, C++, 기타 등등과 같은 개체 지향 프로그래밍 언어 및 “C” 프로그램 언어 또는 유사한 프로그램 언어들과 같은 종래의 절차형 프로그래밍 언어들을 포함하는 하나 이상의 프로그램 언어들의 임의의 조합으로 작성될 수 있다.  프로그램 코드는, 전체가 사용자의 컴퓨터에서, 일부가 사용자의 컴퓨터에서, 독립적인 소프트웨어 패키지로서, 일부는 사용자의 컴퓨터에서 일부는 원격 컴퓨터에서, 또는 전체가 원격 컴퓨터 또는 서버에서 실행될 수 있다.   후자의 시나리오에서, 원격 컴퓨터는 LAN(local area network) 또는 WAN(wide area network)을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 그 연결이 (예를 들어, 인터넷 서비스 공급자를 이용하여 인터넷을 통해) 외부 컴퓨터로 이어질 수 있다.
본 발명의 측면들이, 예를 들어, 본 발명의 실시예들에 따른 방법, 장치(시스템), 및 컴퓨터 프로그램 제품의 흐름도 예시 및/또는 블록도를 참조하여 이하에 기술되어 있다.  흐름도 예시 및/또는 블록도의 각각의 블록과, 흐름도 예시 및/또는 블록도의 블록들의 조합이 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 것을 잘 알 것이다.  컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행되는 명령들이 흐름도 및/또는 블록도 블록 또는 블록들에서 명시된 기능들/동작들을 구현하는 수단을 생성하도록 하는 머신(machine)을 생성하기 위해, 이러한 컴퓨터 프로그램 명령들이 범용 컴퓨터, 전용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에게 제공될 수 있다.
컴퓨터-판독가능 저장 매체에 저장된 명령들이 흐름도 및/또는 블록도 블록 또는 블록들에서 명시된 기능/동작을 구현하는 명령들을 포함하는 제조 물품을 생성하도록, 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치에게 특정한 방식으로 기능하도록 지시할 수 있는 이러한 컴퓨터 프로그램 명령들이 또한 컴퓨터-판독가능 저장 매체에 저장될 수 있다.
컴퓨터 또는 기타 프로그램가능 장치 상에서 실행되는 명령들이 흐름도 및/또는 블록도 블록 또는 블록들에 명시된 기능/동작을 구현하는 프로세스를 제공하도록 하는 컴퓨터-구현 프로세스를 생성하기 위해, 컴퓨터 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 장치 또는 기타 디바이스 상에서 일련의 동작 단계들이 수행되게 하기 위해 컴퓨터, 기타 프로그램가능 데이터 처리 장치 또는 기타 디바이스에 로드될 수 있다.
도면에서의 흐름도와 블록도는 본 발명의 다양한 실시예들에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현들의 아키텍처, 기능 및 동작을 예시하고 있다.  이와 관련하여, 흐름도 또는 블록도에서 각각의 블록은 명시된 논리적 기능(들)을 구현하는 하나 이상의 실행가능 명령들을 포함하는 코드 모듈, 코드 세그먼트 또는 코드 부분을 나타낼 수 있다.  또한, 몇몇 대안의 구현들에서, 블록에 표시된 기능들이 도면에서 표시된 순서와 다르게 일어날 수 있음에 주목해야 한다.  예를 들어, 관여된 기능에 따라, 연속하여 도시된 2개의 블록이 실제로는 거의 동시에 실행될 수 있거나, 그 블록들이 때때로 정반대의 순서로 실행될 수 있다.  또한, 유의할 점은, 블록도 및/또는 흐름도 예시의 각각의 블록 및 블록도 및/또는 흐름도 예시에서의 블록들의 조합들이 명시된 기능들 또는 동작들을 수행하는 전용 하드웨어-기반 컴퓨터 시스템들 또는 전용 하드웨어와 컴퓨터 명령들의 조합들에 의해 구현될 수 있다는 것이다.
프로그램 코드를 저장 및/또는 실행하기에 적합한 데이터 처리 시스템은 시스템 버스를 통하여 직접 또는 간접적으로 메모리 요소에 결합되는 적어도 하나의 프로세서를 포함할 것이다. 메모리 요소는 프로그램 코드의 실제 실행 동안에 사용되는 로컬 메모리, 대용량 저장소(bulk storage), 및 실행 동안에 대용량 저장소로부터 코드가 검색되어야만 하는 횟수를 줄이기 위해 최소한 일부 프로그램 코드의 임시 저장을 제공하는 캐시 메모리를 포함할 수 있다.
입/출력(I/O) 장치들(키보드, 디스플레이, 포인팅 장치, 기타 등등을 포함하지만, 이들로 제한되지 않음)은 직접 또는 중간의 I/O 제어기를 통하여 시스템에 결합될 수 있다.
네트워크 어댑터는 또한, 데이터 처리 시스템이 중간의 사설 또는 공중 네트워크를 통하여 다른 데이터 처리 시스템 또는 원격 프린터 또는 저장 장치에 결합될 수 있도록 하기 위해, 시스템에 결합될 수 있다. 모뎀, 케이블 모뎀 및 이더넷 카드는 현재 이용가능한 유형의 네트워크 어댑터들 중 단지 몇개일 뿐이다.
본 명세서에서 사용된 용어들은 단지 특정의 실시예들을 설명하기 위한 것이며 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용되는 바와 같이, 단수 형태 "어떤", "한" 및 "그"는, 문맥이 명확하게 다른 것을 말하지 않는 한, 복수 형태를 포함하는 것으로 보아야 한다. 또한, 용어 "포함한다" 및/또는 "포함하는"이 본 명세서에서 사용될 때 언급한 특징, 정수, 단계, 동작, 요소, 및/또는 구성요소가 존재함을 명시하는 것이고 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다는 것을 잘 알 것이다.
이하의 청구항에 있는 모든 수단 또는 단계+기능(step plus function) 요소들의 대응하는 구조, 재료, 동작 및 등가물은 구체적으로 청구되는 다른 청구된 요소들과 관련하여 기능을 수행하는 모든 구조, 재료, 또는 동작을 포함하는 것으로 보아야 한다. 본 발명의 설명은 예시와 설명을 위해 제공되었으며, 전수적이거나 개시된 형태의 발명으로 제한되는 것으로 보아서는 안된다. 발명의 범위 및 사상을 벗어나지 않고 많은 수정 및 변형이 당업자들에게는 명백할 것이다. 본 발명의 원리들 및 실제 응용들을 가장 잘 설명하여, 당업자가 생각되는 특정의 용도에 적합한 다양한 수정들을 갖는 다양한 실시예들에 대해 본 발명을 이해할 수 있게 해주기 위해 이들 실시예가 선택되어 기술되었다.

Claims (10)

  1. 컴퓨터 프로세서를 이용하여, 그래픽 사용자 인터페이스(GUI) 폼(form)과 연관된 복수의 필드에 대한 과거의 폼 사용 정보(historical form usage information)를 분석하는 단계,
    상기 과거의 폼 사용 정보 내에서 상기 GUI 폼과 연관된 상기 복수의 필드 각각에 대한 사용 특성들(usage characteristics)을 식별하는 단계,
    상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 GUI 폼을 자동으로 변경하는 단계, 및
    컴퓨팅 장치의 디스플레이 상에 상기 변경된 GUI 폼을 디스플레이하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 컴퓨터 프로세서를 이용하여, 상기 GUI 폼과 연관된 상기 복수의 필드에 대한 상기 과거의 폼 사용 정보를 분석하는 단계는,
    상기 과거의 폼 사용 정보 내에서 상기 GUI 폼과 연관된 상기 복수의 필드 각각과 연관된 정보 입력 이벤트들(information entry events)을 식별하는 단계, 및
    상기 복수의 필드 각각에 대해, 해당 필드와 연관되어 있는 상기 식별된 정보 입력 이벤트들을 합산하는 단계
    를 포함하고,
    상기 과거의 폼 사용 정보 내에서 상기 GUI 폼과 연관된 상기 복수의 필드 각각에 대한 상기 사용 특성들을 식별하는 단계는 상기 복수의 필드 각각과 연관되어 있는 상기 합산된 정보 입력 이벤트들의 양에 기초하여 순위를 상기 복수의 필드 각각과 연관시키는 단계를 포함하며,
    상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계는 상기 복수의 필드 각각과 연관된 순위에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계는,
    상기 복수의 필드 각각에 대한 상기 식별된 사용 특성에 기초하여 상기 GUI 폼 내의 상기 복수의 필드의 레이아웃을 변경하는 단계, 및
    상기 GUI 폼 내의 상기 복수의 필드 중 적어도 하나의 필드를 상기 복수의 필드 중 적어도 하나의 필드와 연관되어 있는 상기 식별된 사용 특성들을 사용하여 그래픽으로 강조하는 단계
    중 적어도 하나를 포함하는, 방법.
  4. 제1항에 있어서, 상기 과거의 폼 사용 정보 내에서 상기 GUI 폼과 연관된 상기 복수의 필드 각각에 대한 상기 사용 특성들을 식별하는 단계는,
    상기 복수의 필드의 다른 부분집합보다 더 많이 사용되는 상기 GUI 폼과 연관된 상기 복수의 필드의 부분집합을 식별하는 단계,
    상기 GUI 폼 내의 상기 복수의 필드의 부분집합에 우선순위를 부여하는 단계,
    상기 GUI 폼 내의 우선순위가 부여된 상기 복수의 필드의 부분집합에 대한 디스플레이 위치를 재지정하는 단계, 및
    우선순위가 부여된 상기 복수의 필드의 부분집합 내의 필드들의 상대적 우선순위에 기초하여 상기 우선순위가 부여된 복수의 필드의 부분집합 내의 필드들의 순서를 변경하는 단계
    를 포함하는, 방법.
  5. 제4항에 있어서, 상기 GUI 폼과 연관된 상기 복수의 필드의 부분집합과 연관된 폼 사용자 그룹을 식별하는 단계를 더 포함하며,
    상기 GUI 폼 내의 상기 복수의 필드의 부분집합에 우선순위를 부여하는 단계는 상기 식별된 폼 사용자 그룹에 대한 상기 GUI 폼 내의 상기 복수의 필드의 부분집합에 우선순위를 부여하는 단계를 포함하는, 방법.
  6. 제1항에 있어서, 상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계는,
    상기 GUI 폼과 연관된 상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 폼 변경 규칙(form change rule)을 적용하는 단계, 및
    상기 적용된 폼 변경 규칙에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계
    를 포함하는, 방법.
  7. 제1항에 있어서, 상기 자동으로 변경된 GUI 폼에 기초하여 동작하도록 상기 GUI 폼과 연관된 폼 정의(form definition) 및 실행가능 코드(executable code) 중 하나를 수정하는 단계를 더 포함하며,
    상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계는 상기 수정된 정의를 이용하여 상기 GUI 폼을 렌더링하는 단계와 상기 GUI 폼과 연관되어 있는 상기 수정된 실행가능한 코드를 실행하는 단계 중 하나를 포함하는, 방법.
  8. 제1항에 있어서, 상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하는 단계는 상기 복수의 필드의 다른 부분집합에 비해 더 높은 사용 특성들을 갖는 식별된 복수의 필드의 부분집합을 GUI 폼의 탭 부분(tabbed portion)으로 분할하는 단계를 포함하는, 방법.
  9. 시스템으로서,
    디스플레이, 및
    프로세서
    를 포함하고,
    상기 프로세서는,
    그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석하고,
    상기 과거의 폼 사용 정보 내에서 상기 GUI 폼과 연관된 상기 복수의 필드 각각에 대한 사용 특성들을 식별하며,
    상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하고,
    디스플레이 상에 상기 변경된 GUI 폼을 디스플레이하도록 프로그램된, 시스템.
  10. 컴퓨터 프로그램 제품으로서,
    컴퓨터 판독가능 프로그램 코드가 구현되어 있는 컴퓨터 판독가능 저장 매체를 포함하고,
    상기 컴퓨터 판독가능 프로그램 코드는,
    그래픽 사용자 인터페이스(GUI) 폼과 연관된 복수의 필드에 대한 과거의 폼 사용 정보를 분석하고,
    상기 과거의 폼 사용 정보 내에서 상기 GUI 폼과 연관된 상기 복수의 필드 각각에 대한 사용 특성들을 식별하며,
    상기 복수의 필드 각각에 대한 상기 식별된 사용 특성들에 기초하여 상기 GUI 폼을 자동으로 변경하고,
    컴퓨팅 장치의 디스플레이 상에 상기 변경된 GUI 폼을 디스플레이하도록 구성되어 있는 컴퓨터 판독가능 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
KR1020100119586A 2009-12-02 2010-11-29 사용 패턴 기반의 자동화된 폼 레이아웃 KR101643003B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/629,262 US9275029B2 (en) 2009-12-02 2009-12-02 Automated form layout based upon usage patterns
US12/629,262 2009-12-02

Publications (2)

Publication Number Publication Date
KR20110063320A true KR20110063320A (ko) 2011-06-10
KR101643003B1 KR101643003B1 (ko) 2016-07-26

Family

ID=44069769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100119586A KR101643003B1 (ko) 2009-12-02 2010-11-29 사용 패턴 기반의 자동화된 폼 레이아웃

Country Status (3)

Country Link
US (3) US9275029B2 (ko)
JP (1) JP5876648B2 (ko)
KR (1) KR101643003B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210046320A (ko) * 2019-10-18 2021-04-28 한국전력공사 빅데이터 기반의 문서출력 자동 설정장치 및 그 방법

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707158B2 (en) * 2009-08-05 2014-04-22 Microsoft Corporation Customizing a form in a model-based system
US9275029B2 (en) 2009-12-02 2016-03-01 International Business Machines Corporation Automated form layout based upon usage patterns
US9405426B2 (en) * 2010-03-01 2016-08-02 Salesforce.Com, Inc. Method and system for providing an adaptive input user interface for data entry applications
US20110258534A1 (en) * 2010-04-16 2011-10-20 Microsoft Corporation Declarative definition of complex user interface state changes
US8904274B2 (en) * 2010-05-14 2014-12-02 Xerox Corporation In-situ mobile application suggestions and multi-application updates through context specific analytics
JP5892746B2 (ja) * 2010-09-29 2016-03-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 個別化コンテンツ・レイアウトのための方法、システム、およびプログラム(個別化コンテンツ・レイアウトのためのシステムおよび方法)
US20120102412A1 (en) 2010-10-25 2012-04-26 Microsoft Corporation Synchronization of form fields in a client-server environment
US9323418B2 (en) * 2011-04-29 2016-04-26 The United States Of America As Represented By Secretary Of The Navy Method for analyzing GUI design affordances
US9965130B2 (en) * 2012-05-11 2018-05-08 Empire Technology Development Llc Input error remediation
US8823667B1 (en) * 2012-05-23 2014-09-02 Amazon Technologies, Inc. Touch target optimization system
US9342495B2 (en) * 2012-07-18 2016-05-17 Think Research Corporation Methods, software and devices for improving visibility of user-filled data in an electronic form
US9344508B2 (en) 2013-03-13 2016-05-17 International Business Machines Corporation Dynamically launching inter-dependent applications based on user behavior
US20140278757A1 (en) * 2013-03-14 2014-09-18 Baker Charles E Method and apparatus for lead generation
JP5599959B1 (ja) * 2013-05-20 2014-10-01 楽天株式会社 情報処理装置
WO2015149307A1 (en) * 2014-04-02 2015-10-08 Google Inc. Systems and methods for optimizing content layout using behavior metrics
US10275139B2 (en) * 2014-09-18 2019-04-30 Sony Interactive Entertainment LLC System and method for integrated user interface for electronic devices
US10088979B2 (en) * 2014-09-26 2018-10-02 Oracle International Corporation Recasting a form-based user interface into a mobile device user interface using common data
US20160275061A1 (en) * 2015-03-18 2016-09-22 International Business Machines Corporation Managing the display of application forms
US10482169B2 (en) * 2015-04-27 2019-11-19 Adobe Inc. Recommending form fragments
RU2015116133A (ru) * 2015-04-29 2016-11-20 Общество с ограниченной ответственностью "1С" Способ автоматизированного генерирования интерфейса приложения
US10242070B2 (en) 2016-01-29 2019-03-26 Oracle International Corporation System and method for adaptively anticipating next user interactions with a computer application
US10204091B2 (en) 2016-05-18 2019-02-12 International Business Machines Corporation Providing data quality feedback while end users enter data in electronic forms
US11574119B2 (en) * 2016-09-28 2023-02-07 International Business Machines Corporation Efficient starting points in mobile spreadsheets
JP6797636B2 (ja) * 2016-10-28 2020-12-09 キヤノン株式会社 サーバ装置、情報処理方法、及びプログラム
US10599760B2 (en) * 2017-08-31 2020-03-24 Adobe Inc. Intelligent form creation
US20190109807A1 (en) * 2017-10-11 2019-04-11 Granite Apps Sàrl Method and system for presenting interactively editable elements in a message to recipients
US10482170B2 (en) * 2017-10-17 2019-11-19 Hrb Innovations, Inc. User interface for contextual document recognition
US10824800B2 (en) 2017-11-10 2020-11-03 Think Research Corporation System and method for designing and editing computerized electronic data-entry forms
US11182547B2 (en) * 2017-11-17 2021-11-23 Adobe Inc. Automated form generation system
JP7095346B2 (ja) * 2018-03-22 2022-07-05 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US10636181B2 (en) 2018-06-20 2020-04-28 International Business Machines Corporation Generation of graphs based on reading and listening patterns
US20200073679A1 (en) * 2018-08-28 2020-03-05 Ca, Inc. Objectively measuring and changing visual aesthetics of a graphical user interface of an application
US10831646B2 (en) * 2019-01-02 2020-11-10 International Business Machines Corporation Resources usage for fuzz testing applications
US11188837B2 (en) * 2019-02-01 2021-11-30 International Business Machines Corporation Dynamic field entry permutation sequence guidance based on historical data analysis
US20220171920A1 (en) * 2019-06-19 2022-06-02 Motorola Solutions, Inc. Form field highlighting and rearrangement based on incident identification and location
US10685000B1 (en) * 2019-07-22 2020-06-16 Capital One Services, Llc System and method for preparing a data set for searching
JP7354697B2 (ja) * 2019-08-30 2023-10-03 富士フイルムビジネスイノベーション株式会社 情報処理装置、及び情報処理プログラム
US11720375B2 (en) 2019-12-16 2023-08-08 Motorola Solutions, Inc. System and method for intelligently identifying and dynamically presenting incident and unit information to a public safety user based on historical user interface interactions
CN112148941B (zh) * 2020-09-24 2023-07-25 网易(杭州)网络有限公司 信息提示方法、装置和终端设备
US11416675B1 (en) * 2021-05-19 2022-08-16 Amdocs Development Limited System, method, and computer program for electronic form customization
US20230260300A1 (en) * 2022-01-21 2023-08-17 Capital One Services, Llc View augmentation using a data profiler to detect and convert content to and/or from a profile-specific format

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020077921A1 (en) * 2000-12-15 2002-06-20 Paul-David Morrison Method and apparatus for an interactive catalog
US20070136682A1 (en) * 2005-12-14 2007-06-14 Frank Stienhans Selective display of graphical user interface elements

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5704029A (en) * 1994-05-23 1997-12-30 Wright Strategies, Inc. System and method for completing an electronic form
US7216292B1 (en) * 1999-09-01 2007-05-08 Microsoft Corporation System and method for populating forms with previously used data values
EP1222549B1 (en) * 1999-09-28 2013-04-03 Microsoft Corporation Information flow management in real time
US6463578B1 (en) * 1999-11-23 2002-10-08 International Business Machines Corporation Systems, methods and computer program products for debugging java server page files using compiled java class file modifications
US20020099739A1 (en) * 2001-01-03 2002-07-25 Herman Fischer Transformation and processing of Web form documents and data for small footprint devices
CA2344074A1 (en) 2001-04-17 2002-10-17 George Wesley Bradley Method and system for cross-platform form creation and deployment
US6836857B2 (en) * 2001-10-18 2004-12-28 Sun Microsystems, Inc. Mechanism for debugging a computer process
US7665030B2 (en) * 2002-11-05 2010-02-16 Sap Aktiengesellschaft Tabstrip user interface element for formulating boolean statements
US7730410B2 (en) 2003-09-22 2010-06-01 Sap Ag System and method for customizing form elements in a form building application
JP4179553B2 (ja) * 2004-03-15 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
US20060075392A1 (en) 2004-10-05 2006-04-06 International Business Machines Corporation System and method for reverse engineering of pattern string validation scripts
CA2488678A1 (en) * 2004-11-30 2006-05-30 Ibm Canada Limited - Ibm Canada Limitee Visual debugger for dynamic xsl transformation
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
JP2006298838A (ja) 2005-04-21 2006-11-02 Konica Minolta Medical & Graphic Inc リポソーム含有x線造影剤
EP1801689A1 (en) * 2005-12-23 2007-06-27 Sap Ag Methods, systems and software applications including tab panel elements
US7587661B2 (en) 2006-01-19 2009-09-08 Microsoft Corporation Identifying design issues in electronic forms
US7925993B2 (en) * 2006-03-30 2011-04-12 Amazon Technologies, Inc. Method and system for aggregating and presenting user highlighting of content
JP4663568B2 (ja) 2006-03-30 2011-04-06 Sriスポーツ株式会社 ゴルフボール
US20070256005A1 (en) * 2006-04-26 2007-11-01 Allied Strategy, Llc Field-link autofill
JP2008118346A (ja) * 2006-11-02 2008-05-22 Softbank Mobile Corp 移動通信端末および管理サーバ
JP2008298838A (ja) 2007-05-29 2008-12-11 Rohm Co Ltd ディスプレイ
JP5207112B2 (ja) * 2007-10-03 2013-06-12 富士ゼロックス株式会社 情報処理装置、情報処理プログラムおよび画像形成装置
JP5137188B2 (ja) * 2008-02-08 2013-02-06 アルパイン株式会社 情報検索方法及び装置
US9009585B1 (en) * 2008-03-18 2015-04-14 Avaya Technology Llc Software wizard interface
DE102008018536B4 (de) 2008-04-12 2020-08-13 Erich Thallner Vorrichtung und Verfahren zum Aufbringen und/oder Ablösen eines Wafers auf einen/von einem Träger
US8375295B2 (en) * 2009-05-21 2013-02-12 Sony Computer Entertainment Inc. Customization of GUI layout based on history of use
US9275029B2 (en) 2009-12-02 2016-03-01 International Business Machines Corporation Automated form layout based upon usage patterns
US9405426B2 (en) * 2010-03-01 2016-08-02 Salesforce.Com, Inc. Method and system for providing an adaptive input user interface for data entry applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020077921A1 (en) * 2000-12-15 2002-06-20 Paul-David Morrison Method and apparatus for an interactive catalog
US20070136682A1 (en) * 2005-12-14 2007-06-14 Frank Stienhans Selective display of graphical user interface elements

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210046320A (ko) * 2019-10-18 2021-04-28 한국전력공사 빅데이터 기반의 문서출력 자동 설정장치 및 그 방법

Also Published As

Publication number Publication date
JP5876648B2 (ja) 2016-03-02
US10489503B2 (en) 2019-11-26
US20110131479A1 (en) 2011-06-02
US9275029B2 (en) 2016-03-01
US20160077728A1 (en) 2016-03-17
US20180276194A1 (en) 2018-09-27
KR101643003B1 (ko) 2016-07-26
JP2011118902A (ja) 2011-06-16
US10002118B2 (en) 2018-06-19

Similar Documents

Publication Publication Date Title
US10489503B2 (en) Automated form layout based upon usage patterns
US11301812B2 (en) Digital processing systems and methods for data visualization extrapolation engine for widget 360 in collaborative work systems
CN110651251B (zh) 用于自适应用户界面的系统和方法
CN109690481B (zh) 用于动态功能行定制的方法和设备
US20210109722A1 (en) Naming Robotic Process Automation Activities According to Automatically Detected Target Labels
US20170364843A1 (en) Process Visualization Platform
US20140173563A1 (en) Editor visualizations
Elguera Paez et al. Elderly users and their main challenges usability with mobile applications: a systematic review
US9721040B2 (en) Mechanism to input, search and create complex data strings within a single dialog
EP3195115A1 (en) Code development tool with multi-context intelligent assistance
Anam et al. Usability study of smart phone messaging for elderly and low-literate users
Aghaee et al. Live mashup tools: challenges and opportunities
KR101831476B1 (ko) 다이어그램들의 생성, 편집 및 내비게이션 기법
US8869022B1 (en) Visual annotations and spatial maps for facilitating application use
Gault et al. Beginning Oracle Application Express 4.2
Zhou et al. A Survey of Patterns for Adapting Smartphone App UIs to Smart Watches
Amith et al. Optimization of an EHR mobile application using the UFuRT conceptual framework
US20220355473A1 (en) Robotic Process Automation (RPA) Comprising Automatic Document Scrolling
Sun et al. Demystifying the paradox of stability and flexibility in information systems design: An affordance perspective
CN112988139A (zh) 事件处理文件的开发方法与装置
Persson Redesigning a graphical user interface for usage in challenging environments with a user-centered design process
Vossen et al. Guide to mapping requirements to user interface specifications
Cruz Analytics-Customized dashboards representing a descriptive analysis and diagnosis of business and operational information
John et al. Avoiding" we Can't Change That!": Software Architecture & Usability
CN117492862A (zh) 文件选取方法、装置及电子设备

Legal Events

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