KR20060088011A - 디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템 - Google Patents

디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20060088011A
KR20060088011A KR1020050121723A KR20050121723A KR20060088011A KR 20060088011 A KR20060088011 A KR 20060088011A KR 1020050121723 A KR1020050121723 A KR 1020050121723A KR 20050121723 A KR20050121723 A KR 20050121723A KR 20060088011 A KR20060088011 A KR 20060088011A
Authority
KR
South Korea
Prior art keywords
target device
application control
operating system
menu
editor
Prior art date
Application number
KR1020050121723A
Other languages
English (en)
Other versions
KR101153057B1 (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 KR20060088011A publication Critical patent/KR20060088011A/ko
Application granted granted Critical
Publication of KR101153057B1 publication Critical patent/KR101153057B1/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/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

개발 환경에서 핸드헬드 디지털 디바이스에 대한 메뉴를 생성하는 방법은, 상기 개발 환경에 이용가능한 관련 오퍼레이팅 시스템을 갖는 타겟 디바이스를 선택하는 단계를 포함한다. 편집기는 메뉴의 생성을 위해 호출된다. 편집기는 관련 타겟 디바이스 오퍼레이팅 시스템의 제약들을 사용하여 개발이 될 때 타겟 디바이스의 실제 거동이 보여질 수 있도록 한다. 개발자는 메뉴에 대한 기능을 정의하고 그 동작을 검증할 수 있다. 메뉴 편집기는 새로운 오퍼레이팅 시스템을 갖는 새로운 디지털 디바이스들에 대해 맞추어질 수 있다. 개발 프로세스를 완성하고 설계를 절약하는 결과로서 코드가 생성될 수 있다. 결과의 코드는 타겟 디바이스 오퍼레이팅 시스템 상에서 적절히 운영되도록 보장된다.
타겟 디바이스, 개발 환경, 편집기,메뉴, 디지털 디바이스

Description

디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템{METHOD AND SYSTEM FOR A DIGITAL DEVICE MENU EDITOR}
도 1은 본 발명의 양태들을 나타내는 개발 시스템의 예시적인 스크린 샷(screen shot)을 도시하는 도면.
도 2는 본 발명의 양태들을 나타내는 다른 예시적인 스크린 샷을 도시하는 도면.
도 3은 본 발명의 양태들을 나타내는 또 다른 예시적인 스크린 샷을 도시하는 도면.
도 4는 기능 블럭도를 도시하는 도면.
도 5는 예시적인 계층 구성도를 도시하는 도면.
도 6은 발명의 예시적인 방법에 대한 흐름도.
도 7은 발명의 특징들이 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 블럭도.
<도면의 주요 부분에 대한 간단한 설명>
120 : 메인 메뉴바
105 : 핸드헬드 디바이스 스크린
110 : 타겟 디바이스 GUI
525 : 메뉴 설계자 계층
121 : 추가 메뉴 아이템 스페이스
본 출원은 "Form Skin And Design Time WYSIWYG For .Net Compact Framework"라는 제목으로 2004년 8월 20일자로 출원된 공동 소유의 미국 특허 출원 제10/922,580호와 일부 주제를 공유하고 있으며, 참조로서 전체가 본원에 포함되어 있다.
본 발명은 컴퓨터 프로그래밍 분야에 관한 것이다. 특히, 본 발명은 타겟 디지털 디바이스에서 실행되도록 설계된 소프트웨어를 생성하기 위한 비주얼 프로그래밍 환경에 관한 것이다.
다수의 휴대용 컴퓨터 디바이스들은 시장에서 입수가능하다. 이러한 디바이스들은 핸드헬드 또는 포켓 사이즈의 컴퓨터들, 각종 형태 요소들 및 성능들의 전화기 및 PDA를 포함한다. 핸드헬드 디바이스들의 컴퓨팅 능력 및 메모리 성능들이 증가함에 따라, 사용자들은 보다 강력한 소프트웨어 애플리케이션들에 대한 액세스를 요구하고 있다.
핸드핼드 디바이스들 사이에서의 인터페이스, 스크린 크기, 및 해상도들이 크게 변화되면, 프로그래머들은 핸드 헬드의 특별히 선택된 GUI(graphical user interface)가 다수의 디바이스들 상에 나타나고 정확하게 작동할 것을 보장하기가 매우 어려울 수 있다. 예를 들어, 타겟 핸드헬드 디바이스의 디스플레이 및 기능은 종종 개발 시스템의 성능에 잘 반영되지 않는다.
전형적으로, 핸드헬드 디바이스들의 프로그래머들은, 핸드헬드 GUI가 예상대로 동작하는지를 알아보기 위해, 데스크탑 개발 시스템에서 우선 프로그래밍한 후 핸드헬드 디바이스, 즉 실제 디바이스의 에뮬레이터에서 새롭게 개발된 소프트웨어를 실행하는 것을 번갈아 한다. 이것은, 특히 프로그래머가 각종 휴대용 디바이스들에 애플리케이션을 포트(port)하기를 바란다면, 시간이 많이 들고 비효율적일 수 있다. 프로그래밍의 일 양태에서, 전형적인 개발 환경은 핸드헬드 디바이스 프로그래머들로 하여금 타겟 핸드헬드 디바이스에서 제어가능한 방식으로 실현될 수 없는 핸드헬드 메뉴 등의 기능을 생성하게 할 수 있다.
따라서, 타겟 핸드헬드 디바이스의 소프트웨어 룩 앤드 필(look and feel)이단일 개발 시스템 상에서 에뮬레이션될 수 있도록 타겟 핸드헬드 디바이스를 적절하게 에뮬레이션하는 핸드헬드 디바이스에 대한 WYSIWYG(what you see is what you get) 개발 시스템에 대한 필요성이 존재한다. 또한, 장래의 디바이스들과 함께 작동할 수 있도록 개발 시스템이 확장가능하다면 바람직할 것이다. 본 발명은 상기한 필요성을 다루고 있으며 본원에 명시된 추가의 이점들로 그것을 해결한다.
메뉴 편집기는 타겟 디지털 디바이스의 애플리케이션 개발자들에게 중요한 요소이다. 메뉴 편집기의 하나의 바람직한 양태는, 메뉴가 타겟 디바이스 상에 보여질 때 메뉴의 런타임 룩 앤드 필을 정확하게 나타내는 것을 포함한다. 메뉴 편 집기의 다른 바람직한 양태는, 개발 시스템에 의해 생성된 코드가 타겟 디바이스와 충분히 호환가능해야 한다는 것이다. 메뉴 편집기의 또 다른 특징은, 타겟 디바이스에서 사용되는 오퍼레이팅 시스템에 관계없이 장래의 디바이스들에 대해서 확장가능해야 한다는 것이다.
본 발명의 일 양태에서, 메뉴 편집기는 타겟 디바이스의 특정 오퍼레이팅 시스템과 충분히 호환가능한, 개발된 특징에 대한 객체 코드가 생성되는 것을 보장한다. 최종 코드는 새로은 특징이 개발 시스템 상에서 디스플레이된 것과 동일한 방식으로 타겟 디바이스 상에서 실행된다. 발명의 또다른 양태에서는, 메뉴 등의 개발된 특징이 하나의 타겟 디바이스를 어드레싱하는 것으로 정의된 후 또 다른 핸드헬드 디바이스를 수용하도록 변경될 수 있기 때문에, 특징 설계 재사용을 가능하게 한다. 발명의 또다른 양태에서, 메뉴 편집기는 새로운 디지털 디바이스의 장래 세대들을 위한 메뉴 아이템들의 개발을 포함하도록 확장가능하다.
예시적인 실시예들의 이하 상세한 설명뿐만 아니라 상기 요약은 첨부 도면과 관련하여 읽는다면 보다 잘 이해될 것이다. 발명의 실시예들을 설명하기 위해, 발명의 예시적인 구성들을 도면에 도시하였지만, 발명은 개시된 특정 방법 및 수단에 한정되지 않는다.
본 발명의 일 실시예에서는, 개발 시스템 상에서 유틸리티를 발견하는 소프트웨어 애플리케이션인 핸드헬드 디지털 디바이스에 대한 메뉴 편집기가 실현된다. 개발 시스템은 핸드헬드 디지털 디바이스들에 대한 새로운 애플리케이션들의 생성 을 위해 핸드헬드 디바이스 개발자들에 의해 사용된다. 이들 개발자들은 핸드헬드 디바이스에 대한 맞춤형 오퍼레이팅 시스템을 사용하거나 기존의 오퍼레이팅 시스템들을 사용하거나 핸드헬드 디바이스의 그래픽 사용자 인터페이스를 사용하여 새로운 애플리케이션들을 수정 또는 작성할 수 있다.
본 발명의 하나의 이점은, 사용자/개발자가 새로운 메뉴 기능을 생성할 때 전체 핸드헬드 디바이스 및 핸드헬드 디바이스의 응답을 검토하는 능력이다. 타겟 디바이스 오퍼레이팅 시스템을 사용하여, 개발자는 새로운 메뉴들을 개발할 때 타겟 오퍼레이팅 시스템이 새로운 메뉴들에 응답하는 방식을 즉시 볼 수 있다. 이것은 총 개발 및 디버그 시간을 단축시킨다. 본 메뉴 편집기 시스템의 또 다른 이점은 그것의 장래의 디바이스들을 포함하는 상이한 디바이스들에 대해 맞춤화될 수 있고 확장가능하다는 것이다. 본원에 포함된 타겟 디지털 디바이스들의 예들은 핸드헬드 디지털 디바이스들을 포함하지만, 본 발명은 메뉴 아이템을 갖는 임의의 매립형 디바이스 애플리케이션에 적합하다. 이러한 매립형 디바이스 애플리케이션들의 예들은, 에어라인 키오스크(airline kiosk), 가스 펌프(gas pump), 캐시 레지스터(cash register), 전화기 또는 기타 통신 시스템 디스플레이 등의 비-핸드헬드 디바이스들을 포함하나, 이에 한정되지 않는다.
본 발명의 예시적인 실시예들
도 1은 발명의 양태들을 도시하는 소프트웨어 개발 시스템 부분 스크린 샷(100)을 나타내고 있다. 이러한 실시예에서, 핸드헬드 타겟 디바이스(110)의 GUI의 대표적인 형태가 개발 시스템의 모니터 상에 표시된다. 따라서 개발자는 디바 이스에 대한 새로운 메뉴 특징들을 생성할 때 타겟 디바이스의 GUI를 볼 기회를 갖는다. 핸드헬드 디바이스는 휴대용 전화기, PDA, 휴대용 컴퓨터, GPS 수신기 프로세서, 진보적인 트래킹 디바이스, 휴대가능 POS(point of sale) 디바이스 또는 GUI를 갖는 임의의 다른 핸드헬드 디바이스 중 어느 하나일 수 있다.
도 1의 실시예에서는, 메인 메뉴바(120)가 핸드헬드 디바이스 스크린(105)의 하부에 배치되어 있다. 이 타겟 디바이스 GUI(110)에 대한 현재 개발 단계에서, 메인 메뉴(120)는 2개의 설정된 메인 메뉴 아이템들 또는 소프트키들: 상위 메뉴 1 및 상위 메뉴 2가 있다는 것을 나타낸다. 본 발명의 양태로서, 타겟 핸드헬드 디바이스의 오퍼레이팅 시스템이 메인 메뉴(120) 소프트키들의 확장을 지원할 수 있으면, 소프트키를 식별하고 소프트키의 작동시 수행되는 하나 이상의 기능들을 정의하기 위해 개발자들이 라벨을 타이핑하는 추가 메뉴 아이템 스페이스(121)가 제공된다.
도 1의 실시예는 핸드헬드 디바이스 GUI 상의 다수의 메뉴 아이템들에 걸쳐 개발자가 항해하고 있는 것을 나타낸다. 개발자는 메인 메뉴 바(120)의 상위 메뉴 1을 선택했다. 상위 메뉴 1 소프트키의 선택의 결과적인 기능은 메뉴 아이템 드롭 다운 리스트(130)의 디스플레이이다. 메뉴 아이템 리스트는 메뉴 아이템 1 내지 3과 서브메뉴 1 및 2를 포함한다. 도 1의 실시예에서, 메뉴 아이템 1-3 및 서브 메뉴 1 및 2는 이미 개발자에 의해 라벨링되어 있고 그들과 관련된 기능들을 가지거나 아직 갖지 않을 수 있다. 발명의 일 양태에서는, 개발자에 의해 추가 메뉴 아이템(131)이 라벨링될 수 있고, 새롭게 정의된 메뉴 아이템은 원하는 기능에 따라 정의될 수 있다. 발명의 일 실시예에서, 메뉴 아이템 리스트(130)의 아이템(131) 등의 새로운 메뉴 아이템들의 총수는 선형 디스플레이의 크기로 제한된다. 이러한 제한은 개발자가 소프트웨어를 개발하고 있을 때 핸드헬드 디바이스 GUI의 실제 제한을 경험할 수 있도록 디폴트로서 개발 시스템에 제시된다.
도 1의 실시예에서, 개발자는 서브메뉴 아이템들 1 및 2를 도시하는 하단 메뉴 스택(140)을 표시하는 서브메뉴 1을 선택했다. 스택(130) 내의 모든 메뉴 아이템들이 하단 서브메뉴 아이템들을 갖는 것은 아님을 주의하라. 예를 들어, 스택(130)의 메뉴 아이템 1은 붙이기(paste) 기능을 수행할 수 있는 반면 서브메뉴 1은 가져오기(import)의 소스가 스택(140)에 도시된 다수의 서브메뉴 아이템들 1 및 2로서 선택가능한 가져오기 기능일 수 있다. 발명의 일 양태에서, 핸드헬드 디바이스 오퍼레이팅 시스템은 하단 스택(140)의 확장을 가능하게 하여 보다 많은 서브메뉴 아이템들을 포함하게 하면 개발 시스템은 다음 이용가능한 메뉴 아이템(141)의 위치를 표시함으로써 그 능력을 나타낼 수 있다. 도 1의 실시예에서, 메뉴 아이템의 수를 확장하는 능력은 소프트키(121), 및 메뉴 아이템(131, 141) 등의 모든 현재 표시된 메뉴 아이템에 도시된다. 도 1의 실시예는 하나의 다음에 이용가능한 키에 대한 위치를 표시함으로써 프로그래머에게 그러한 확장 성능을 보여준다. 그러나, 메뉴 확장이 가능하다는 것을 개발자에게 나타내는 메뉴 또는 서브메뉴 아이템들 상에 확장 마커 또는 색을 두는 등의 다른 방법들이 사용될 수 있다.
도 1에 도시된 기능은 도 2의 예로 도시된다. 도 2는 개발 시스템 스크린 샷(210)에 도시된 포켓 퍼스널 컴퓨터(PC)를 도시한다. 포켓 PC 본체(220)는 개발 자가 개발중인 핸드헬드 디바이스의 룩 앤드 필을 보다 잘 이해할 수 있도록 표시된다. 이러한 실시예에서, 메인 메뉴 바(230)는 포켓 PC 디바이스(220)의 GUI 인터페이스(205)의 하부에 배치된다. 메뉴 바는 3개의 소프트키가 이미 파일(file), 편집(edit) 및 도움말(help)로 정의되어 있다는 것을 나타낸다. 제4 소프트키(231)는 이용가능한 것으로 도시된다. 새로운 소프트키(231)의 이용능력은 포켓 PC 오퍼레이팅 시스템이 추가 소프트키를 지원하는 능력을 나타낸다.
도 2의 예에서, 개발자는 메인 메뉴 바(230)의 편집 소프트키를 선택했고 서브 메뉴 아이템 스택(240)이 도시되어 있다. 서브메뉴 아이템 스택(240)은 6개의 서브메뉴 기능들이 프로그래머에 의해 다음과 같이 정의되었다는 표시를 디스플레이한다: 복사하기(copy), 붙이기(paste), 오려두기(cut), 100%, 200% 및 폰트. 서브메튜 아이템 스택(240)의 잠재적인 확장은 서브메뉴의 새로운 메뉴 아이템(241)의 표시에 의해 가능하다. 프로그래머는 새로운 응용 능력을 개발하는데 있어서 메인 메뉴 소프트키(231) 또는 서브메뉴 아이템(241)을 이용할 수 있다.
도 3은 발명의 양태들에 따라 개발된 상이한 디바이스의 예이다. 도 3은 개발 시스템 스크린 디스플레이(310)에 나타나는 스마트폰 본체(320)를 도시한다. GUI 디스플레이(305)는 완료(done) 및 옵션(options)이라고 라벨링된 2개의 소프트키들을 나타내는 메뉴 바(330)를 갖는다. 본 예에서, 스마트폰의 오퍼레이팅 시스템은 또 다른 소프트키의 추가를 허용하지 않는다. 따라서, 개발자에게는 어떠한 선택적인 새로운 키도 이용가능하지 않다. 이러한 제약은 스마트폰 핸드헬드 디바이스(320)의 오퍼레이팅 시스템의 한계들을 반영한다.
디스플레이(310)는 개발자가 옵션 메뉴 소프트키를 활성화했고 서브메뉴 스택(340)이 표시되어 있는 것을 나타낸다. 본 예에서, 오퍼레이팅 시스템은 서브메뉴 스택(340) 내의 메뉴 아이템들의 확장에 대한 제한을 갖지 않는다. 따라서, 새로운 서브메뉴 아이템(341)은 스마트폰 디바이스 개발자에게 이용가능하다.
도 4는 발명의 양태들을 사용하는 개발 시스템의 소프트웨어 요소들의 기능도(400)이다. 개발 시스템(410)에 대한 사용자 인터페이스는 메뉴 개발 편집기(480)와 상호작용할 수 있다. 개발자는 핸드헬드 디바이스에 대한 개발 세션을 요청하기 위해 사용자 인터페이스(410)를 사용할 수 있다. 메뉴 편집기(480)는 선택된 메뉴 설계자들을 액세스함으로써 선택된 사용자 인터페이스를 인스턴스화할 수 있다. 도 4는 상이한 메뉴 설계자들; 포켓 PC 메뉴 설계자(470), 스마트폰 메뉴 설계자(460), 마그네토 메뉴 설계자(450) 및 맞춤 메뉴 설계자(440)를 도시한다. 선택된 메뉴 설계자는 타겟 핸드헬드 디바이스의 사용자 선택에 의존한다.
선택된 특정 메뉴 설계자는 디바이스의 현실적인 모습이 개발되게 하기 위해 대응하는 오퍼레이팅 시스템 제약들에 따라 상호작용하는 대응하는 디바이스 본체 및 메뉴 설계자를 제공한다. 실시예의 일 양태에서, 데이터 스토어(430)는 선택된 디바이스 오퍼레이팅 시스템을 포함하고 메뉴 편집기(480)에 의해 액세스될 수 있다. 따라서, 데이터 스토어는 개발될 대응하는 복수의 핸드헬드 디바에스들에 대한 복수의 오퍼레이팅 시스템을 가질 수 있다.
개발 편집기(480)는 메뉴들의 개발에 공통인 메뉴 개발을 위한 메소드들을 포함한다. 그것은 타겟 디바이스의 메뉴들의 기능 및 인터페이스를 맞춤화하는데 사용되는, 특정 핸드헬드 디바이스들에 타겟팅되는 특정 메뉴 설계자들(440, 450, 460 및 470)이다. 각종 설계자들은 본질적으로 선택된 타겟 디바이스에 대한 메뉴 편집기의 맞춤화를 가능하게 한다. 이 맞춤화는 선택된 디바이스의 성능 한계 내에서 기능할 수 있는 메뉴 요소 생성을 가능하게 하기 위해 대응하는 디바이스 오퍼레이팅 시스템의 관련 부분의 실행에 따라 발생한다.
따라서, 본 발명은, 선택된 핸드헬드 다비이스에 대한 임의의 새로운 오퍼레이팅 시스템이 메뉴 편집기(480)와 함께 사용되어, 그 디바이스에 대한 오퍼레이팅 시스템의 새로운 버전이 사용 중이더라도 디바이스에 대해 새로운 애플리케이션들이 생성될 수 있도록 확장가능하다. 따라서, 애플리케이션 개발자들이 본 발명을 사용할 수 있을 뿐만 아니라, 보다 정교한 개발자들도 본 발명을 사용하여 계속 개발중일 수 있는 새로운 오퍼레이팅 시스템에서 새로운 애플리케이션들을 개발 및 시험할 수 있다.
메뉴 편집기가 데이터 스토어(430) 내의 관련 핸드헬드 디바이스 오퍼레이팅 시스템 및 관련 디바이스 설계자 모두에 액세스한 후, 사용자 인터페이스(410)를 통해 사용자와 상호작용함으로써 사용자는 타겟 핸드헬드 디바이스에 대한 메뉴들을 맞춤화할 수 있다. 메뉴들이 생성되면, 개발 시스템은 선택된 디바이스의 오퍼레이팅 시스템이 디바이스 GUI 상에 무엇을 도시해야 하는지 및 생성되거나 수정되는 소프트키들의 프로그래밍된 기능을 디스플레이가 나타내게 한다. 개발자가 이러한 개발의 한 부분에 만족하면, 개발자는 새롭게 생성되거나 수정된 디바이스 메뉴를 저장할 수 있고 오브젝트 코드가 생성되어 출력 코드 파일(420)에 저장된다. 이때, 사용가능한 타겟 오퍼레이팅 시스템 오브젝트 코드가 타겟 디바이스에 대해 특별히 생성된다. 이 코드는 종래의 개발 시스템들보다 더 사용가능한데 그 이유는 코드가 개발 동작시 개발된 메뉴의 룩 앤드 필과, 기능을 디스플레이하기 위해 타겟 핸드헬드 디바이스의 오퍼레이팅 시스템을 사용하여 개발되었기 때문이다.
본 발명의 추가 양태는, 하나의 디바이스로부터 다음 디바이스로의 메뉴 아이템들의 "빠른(on the fly)" 변경을 가능하게 한다. 예를 들어, 메뉴 편집기(480)가 개발자에 의해 제1 디바이스 유형으로 사용되었다면, 사용자는 새로운 디바이스에 대한 새로운 메뉴의 정의 및 기능 개발을 완전히 재시작할 필요가 없다. 개발자는 제1 디바이스의 기존 설계로부터 원하는 메뉴 개발을 가져오고, 타겟 디바이스의 정의를 변경할 수 있고, 메뉴 편집기(480)는 제2 타겟 디바이스에 메뉴 설계를 모프(morph)할 수 있다. 당연히, 새로운 타겟 디바이스에서의 새로운 메뉴는 제2 타겟 디바이스에서 성능이 충분히 기능하도록 호환가능해야 한다. 하나의 디바이스 유형으로부터 다른 디바이스 유형으로의 이러한 메뉴 설계 포팅(porting)은 개발 정의 시간을 절약하고 디바이스들의 군에 걸쳐 메뉴들을 표준화할 수 있다.
도 5는 메뉴 편집기(480)의 소프트웨어 컴포넌트 계층들을 도시한다. 메뉴 편집기 서비스(510)는 메뉴 편집기와 그 환경 사이의 다리로서 작용한다. 하나의 메뉴 편집기 서비스(510) 인스턴스는 매 루트 컴포넌트마다 존재한다. 관리된 메뉴(520)는 메뉴 오브젝트들에 대한 설계 시간 개발 사용자 인터페이스를 나타낸다. 관리된 메뉴 계층(520)은 전반적인 메뉴 편집기 거동을 제어하고 단일 메뉴 편집기 의 사용자 인터페이스를 관리한다. 핸드헬드 디바이스 형태가 X개의 메뉴를 가지면, X개의 관리된 메뉴(520) 오브젝트들을 가질 것이다. 메뉴 편집기 서비스(510)는 어떤 관리된 메뉴들(520)이 사용자에게 보이는지를 제어한다. 관리된 메뉴 계층(520)은 메뉴 설계자 계층(525)에 액세스하고 메뉴들에 대한 설계 시간 지원을 제공한다.
관리된 메뉴(520)의 모든 인스턴스는 상위 레벨 메뉴 아이템 리스트(530)를 가지는데, 이것은 상위 레벨 메뉴 바 사용자 인터페이스를 나타낸다. 이것은 도 1의 아이템(120)에 대한 상위 레벨 제어에 대응한다. 상위 레벨 리스트는 상위 레벨 메뉴 아이템 리스트(530)를 다루고 메뉴 아이템 셀(540)을 포함하는데, 메뉴 아이템 셀(540)은 도 1의 아이템(130)의 메뉴 아이템의 사용자 인터페이스를 나타낸다. 메뉴 아이템 셀(540)은 메뉴 아이템의 사용자 인터페이스를 나타낸다. 그것은 하위 레벨 메뉴 아이템 리스트 및 상위 레벨 메뉴 아이템 리스트에 의해 관리된다.
메뉴 아이템 셀 계층(540)은 메뉴 아이템 설계자 계층(545)을 액세스하고 메뉴 아이템들에 대한 설계 시간 지원을 제공한다. 메뉴 아이템 셀 계층(540)은 그것의 메뉴 아이템 속성이 서브메뉴들을 포함하고 있으면 하위 레벨 메뉴 아이템 리스트(550)를 가질 수 있다. 서브-리스트는 아이템(140)으로서 도 1에 도시된다. 이 경우, 서브-리스트는 메뉴 아이템 리스트에 의해 표시된다. 하위 레벨 메뉴 아이템 리스트(550) 및 상위 레벨 메뉴 아이템 리스트(530)는 서브-리스트 선택 및 메뉴 아이템들의 추가/제거를 다룬다.
메뉴 편집기 서비스 계층(510)은 메뉴 편집기 서비스 인터페이스(515) 및 OLE 커맨드 타겟 인터페이스(517)를 구현한다. 메뉴 편집기 서비스 인터페이스(515)는 메뉴 편집기를 개시, 디스플레이 및 숨길 때 제어하기 위해 사용된다. OLE 커맨드 타겟 인터페이스(517)는 복사(copy)/붙이기(paste)/오려내기(cut)/삭제(delete) 등의 Visual StudioTM 셸 커맨드 동작들과 통신하기 위해 사용된다. Visual StudioTM는 워싱턴, 레이몬드의 마이크로소프트사로부터 입수가능하다.
도 6은 본 발명의 양태들을 사용하는 방법예의 흐름도를 나타낸다. 방법(600)은 디지털 디바이스들에 대한 메뉴들의 개발을 위해 사용되는 개발 시스템에서 타겟 핸드헬드 디바이스를 선택함으로써(단계 610) 시작될 수 있다. 시스템은 컴팩트 PC, 스마트폰, PDA, 디지털 플래너 또는 작동을 위해 디스플레이를 사용하는 다른 유형의 핸드헬드 디바이스 등의 선택될 수 있는 복수의 타겟 디바이스들을 가지는 것이 바람직하다.
타겟팅된 디바이스가 선택되면, 개발 시스템은 선택된 디바이스에 대한 메뉴 편집기를 액세스할 수 있다. 본 발명의 양태에 따르면, 메뉴 편집기는 타겟팅된 디바이스의 오퍼레이팅 시스템에 액세스한다. 이 오퍼레이팅 시스템은 개발자가 생성하고 있는 애플리케이션 또는 새로운 메뉴 프로그램에 응답하여 타겟 디바이스를 에뮬레이션하는데 유용하다. 디바이스 그래픽 디스플레이가 도시된 타겟 디바이스를 나타내는 이미지 형태의 디스플레이가 개발 시스템에 의해 수행된다(단계 625). 이러한 이미지 형태 디스플레이는 개발자가 타겟 디바이스의 룩 앤드 필과, 디바이스 사용자와의 상호작용을 인식하도록 돕는다. 개발자는 새로운 메뉴 및 해당 기능을 정의하기 위해 메뉴 편집기를 사용할 수 있다(단계 630). 일 실시에에서, 새로운 메뉴는 소프트키일 수 있다. 본 발명의 양태에 따르면, 메뉴 편집기에 의해 개발자는 새로운 메뉴가 타겟 디바이스에서 보고 동작하는 방식을 알 수 있는데, 이는 오퍼레이팅 시스템이 타겟 디바이스 오퍼레이팅 시스템의 실제 제약들을 에뮬레이션하는데 유용하기 때문이다.
메뉴 동작이, 가능하다면 소프트키 또는 메뉴 아이템으로서 정의된 후, 개발자는 타겟 디바이스 코드가 생성되는 것을 요구할 수 있다(단계 640). 이것은 개발 시스템 소프트웨어에 의해 자동적으로 수행될 수 있거나 세이브 기능을 작동시킴으로써 초기화에 의해 개발자에 의해 요구될 수 있다. 새롭게 개발된 메뉴 기능을 나타내는 코드는 타겟팅된 핸드헬드 디지털 디바이스의 특정 오퍼레이팅 시스템과 충분히 호환가능하도록 직렬화되거나 발생될 수 있다. 특정 타겟 오퍼레이팅 시스템은 개발 프로세스 동안 사용되었기 때문에, 예상밖의 코드 거동은 기대되지 않는다.
본 발명의 일 양태에서, 하나의 디바이스에 타겟팅된 새로운 메뉴 기능은 또 다른 디바이스에서 사용될 수 있다. 옵션 단계(650)는 특정 디바이스에 대한 메뉴 함수의 정의 후에 취해질 수 있다. 개발자는 새로운 메뉴 기능이 메뉴 정의의 손실 없이 정의된 후에 타겟 핸드헬드 디바이스를 변경할 수 있다. 방법(600)은 특정 타겟 디바이스 편집기에 대한 액세스가 변경되는 동안 새로운 메뉴 정의가 보존되게 할 것이다. 보존된 메뉴는 새롭게 재정의된 타겟 디바이스에서 사용될 수 있 고 새로운 소프트키들과 메뉴 아이템들이 개발될 수 있다.
예시적인 컴퓨팅 디바이스
도 7 및 이하의 설명은 본 발명의 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경의 간략한 일반적인 설명을 제공하도록 의도된다. 범용 컴퓨터가 이하에 기재되지만, 이것은 하나의 단일 프로세서 예이고, 다수의 프로세서들을 갖는 본 발명의 실시예들은 네트워크/버스 상호동작성 및 상호작용을 갖는 클라이언트 등의 다른 컴퓨팅 디바이스들과 함께 구현될 수 있다. 따라서, 본 발명의 실시예들은 아주 적거나 최소의 클라이언트 리소스들이 포함되는 네트워크 호스팅된 서비스들의 환경, 예를 들어, 클라이언트 디바이스가 단지, 장치에 배치된 오브젝트, 또는 기타 컴퓨팅 디바이스 및 오브젝트들과 같은 네트워크/버스에 대한 인터페이스로서 역할하는 네트워크 환경으로 구현될 수 있다. 본질적으로, 데이터가 저장될 수 있거나 데이터가 검색될 수 있는 곳은 어디나 동작에 바람직하거나 적합한 환경이다.
요구되지는 않지만, 본 발명의 실시예들은 디바이스 또는 오브젝트에 대한 서비스들의 개발자가 사용하기 위한 오퍼레이팅 시스템을 통해 구현될 수 있고, 및/또는 응용 소프트웨어 내에 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션들, 서버들 또는 기타 디바이스들 등의 하나 이상의 컴퓨터들에 의해 실행되는, 프로그램 모듈 등의 컴퓨터-실행가능 명령어들의 일반적인 문맥으로 기술될 수 있다. 일반적으로, 프로그램 모듈들은 특정 태스크를 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 전형적으로, 프로그램 모듈들의 기능은 각종 실시예들에서 원 하는대로 조합되거나 분배될 수 있다. 또한, 본 기술 분야의 당업자들은 발명의 각종 실시예들이 다른 컴퓨터 구성들과 함께 실시될 수 있다는 것을 이해할 것이다. 사용에 적합할 수 있는 다른 공지된 컴퓨팅 시스템들, 환경들, 및/또는 구성들은 퍼스널 컴퓨터(PC), 자동 텔러 머신, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스들, 멀티 프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그램가능 소비자 전자기기, 네트워크 PC, 가전기기, 광, 환경 제어 소자들, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하나 이에 제한되지 않는다. 본 발명의 실시예들은 통신 네트워크/버스 또는 기타 데이터 전송 매체를 통해 링크되는 원격 프로세싱 디바이스들에 의해 태스크가 수행되는 분산 컴퓨팅 환경들에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 저장 디바이스들을 포함하는 로컬 및 원격 컴퓨터 저장 매체 모두에 배치될 수 있고 클라이언트 노드들은 서버 노드로서 행동할 수 있다.
도 7은 본 발명의 실시예들이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(700)의 예를 나타내고, 비록 위에서 명백하게 되었지만, 컴퓨팅 시스템 환경(700)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 실시예의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(700)은 예시적인 오퍼레이팅 환경(700)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
도 7을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터 시스 템(710)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터 시스템(710)의 컴포넌트들로는, 프로세싱 유닛(720), 시스템 메모리(730), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(720)에 연결시키는 시스템 버스(721)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(721)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터 시스템(710)은 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(710)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 불휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 불휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, CDRW(compact disc-rewritable), DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 시스템(710)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변경된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(730)는 ROM(731) 및 RAM(732) 등의 휘발성 및/또는 불휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터 시스템(710) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(733; BIOS)은 일반적으로 ROM(731)에 저장된다. RAM(732)은 일반적으로 프로세싱 유닛(720)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(720)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 7은 오퍼레이팅 시스템(734), 애플리케이션 프로그램(735), 기타 프로그램 모듈(736), 및 프로그램 데이터(737)를 도시한다.
컴퓨터(710)는 또한 다른 분리형/비분리형, 휘발성/불휘발성 컴퓨터 저장 매 체를 포함할 수 있다. 단지 예로서, 도 7에는 비분리형 불휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(741), 분리형 불휘발성 자기 디스크(752)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(751), 및 CD-ROM, CDRW, DVD, 또는 기타 광학 매체 등의 분리형 불휘발성 광학 디스크(756)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(755)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/불휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(741)는 일반적으로 인터페이스(740)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(721)에 접속되고, 자기 디스크 드라이브(751) 및 광학 디스크 드라이브(755)는 일반적으로 인터페이스(750)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 7에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터 시스템(710)을 위한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 7에서, 예를 들어, 하드 디스크 드라이브(741)는 오퍼레이팅 시스템(744), 애플리케이션 프로그램(745), 기타 프로그램 모듈(746), 및 프로그램 데이터(747)를 저장하는 것으로 도시된다. 이들 컴포넌트는 오퍼레이팅 시스템(734), 애플리케이션 프로그램(735), 기타 프로그램 모듈(736), 및 프로그램 데이터(737)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템 (744), 애플리케이션 프로그램(745), 다른 프로그램 모듈(746), 및 프로그램 데이터(747)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(761) 및 키보드(762)와 같은 입력 장치를 통해 컴퓨터 시스템(710)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스(721)에 연결된 사용자 입력 인터페이스(760)를 통해 종종 프로세싱 유닛(720)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(791) 또는 다른 유형의 디스플레이 장치는 또한 비디오 메모리(도시하지 않음)와 통신할 수 있는 비디오 인터페이스(790) 등의 인터페이스를 통해 시스템 버스(721)에 접속된다. 모니터(791) 외에도, 컴퓨터는 또한 출력 주변 인터페이스(795)를 통해 접속될 수 있는 스피커(797) 및 프린터(796) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터 시스템(710)은 원격 컴퓨터(780)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 또는 분산 환경에서 동작할 수 있다. 원격 컴퓨터(780)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 7에는 메모리 저장 장치(781)만이 도시되어 있지만, 컴퓨터 시스템(710)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함한다. 도 7에 도시된 논리적 접속은 근거리 통신망 (LAN; 771) 및 원거리 통신망(WAN; 773)을 포함하지만, 그 외의 네트워크/버스를 포함할 수도 있다. 이러한 네트워크 환경은 가정, 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터 시스템(710)은 네트워크 인터페이스 또는 어댑터(770)를 통해 LAN(771)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터 시스템(710)은 일반적으로 인터넷 등의 WAN(773)을 통해 통신을 구축하기 위한 모뎀(772) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(772)은 사용자 입력 인터페이스(760) 또는 기타 적절한 메카니즘을 통해 시스템 버스(721)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터 시스템(710)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 7은 메모리 장치(781)에 상주하는 원격 애플리케이션 프로그램(785)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
다양한 분산형 컴퓨팅 프레임워크는 퍼스널 컴퓨팅 및 인터넷을 중심으로 개발되어 왔으며 개발 중에 있다. 개인 및 비즈니스 사용자를 막론하고, 컴퓨팅 활동을 점점 웹 브라우저 지향적 또는 네트워크 지향적으로 만드는 애플리케이션 및 컴퓨팅 장치에 대하여 이음새없이 상호 동작이 가능하고 웹 사용가능한 인터페이스(seamlessly interoperable and web-enabled interface)가 제공된다.
예를 들어, 마이크로소프트사로부터 입수가능한 MICROSOFT
Figure 112005072496052-PAT00001
의 .NETTM 플랫폼은 서버, 웹-기반 데이터 저장과 같은 빌딩-블록 서비스, 및 다운로드 가능한 장치 소프트웨어를 포함한다. 본원에 예시된 실시예는 컴퓨팅 장치 상에 상주하는 소프트웨어와 관련하여 기재되지만, 본 발명의 하나 이상의 부분은, 동작이 모든 .NETTM의 언어 및 서비스에 의해 수행될 수 있거나, 지원될 수 있거나, 이를 통해 액세스될 수 있도록, 모든 오퍼레이팅 시스템, 애플리케이션 프로그래밍 인터페이스(API), 또는 코프로세서(coprocessor), 디스플레이 장치 및 요구 오브젝트의 어느 것 사이의 "미들 맨(middle man)" 오브젝트를 통해 구현될 수 있을 뿐 아니라, 기타 분산형 컴퓨팅 프레임워크에서 구현될 수도 있다.
상기한 바와 같이, 본 발명의 예시적인 실시예들이 각종 컴퓨팅 디바이스들 및 네트워크 아키텍쳐들과 관련하여 설명되었지만, 기초를 이루는 개념들은 디지털 디바이스용 편집기를 구현하기에 바람직한 임의의 컴퓨팅 디바이스 또는 시스템에 적용될 수 있다. 따라서, 본 발명의 실시예들과 관련하여 설명된 방법들 및 시스템들은 각종 애플리케이션 및 디바이스에 적용될 수 있다. 예시적인 프로그래밍 언어들, 명칭들 및 예들이 각종 선택을 대표하여 본원에서 선택되었지만, 이러한 언어들, 명칭들 및 예들은 제한되도록 의도되지 않는다. 본 기술 분야의 당업자들은, 본 발명의 실시예들에 의해 달성되는 동일한, 유사한 또는 등가의 시스템들 및 방법들을 실현하는 오브젝트 코드를 제공하는 여러가지 방식들이 존재한다는 것을 이해할 것이다.
본원에 설명된 다양항 기술들은 하드웨어 또는 소프트웨어, 또는 적절하다면 양자의 조합과 함께 구현될 수 있다. 따라서, 본 발명의 방법들 및 장치들, 또는 그것의 특정 양태들 또는 그 일부들은 플로피 디스켓, CD-ROM, 하드 드라이브 등의 실체적인 매체, 또는 임의의 기타 기계-판독가능 매체로 구현되는 프로그램 코드(명렁어들)의 형태를 취할 수 있으며, 여기서, 프로그램 코드가 컴퓨터 등의 기계로 로딩되거나 그에 의해 실행될 때, 기계는 발명을 실시하기 위한 장치가 된다. 프로그램가능 컴퓨터들에서의 프로그램 코드 실행의 경우, 컴퓨팅 디바이스는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 불휘발성 메모리 및/또는 저장 요소를 포함), 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함할 것이다. 예를 들어 데이터 처리 API 등의 사용을 통해, 본 발명의 실시예의 신호 처리 서비스들을 이용할 수 있는 하나 이상의 프로그램들은 컴퓨터와 통신하기 위한 고급 절차 또는 객체 지향 프로그래밍 언어들로 구현되는 것이 바람직하다. 그러나, 프로그램(들)은 원한다면, 어셈블리 또는 기계 언어로 구현될 수 있다. 임의의 경우, 언어는 컴파일되거나 해석된 언어일 수 있고, 하드웨어 구현과 조합될 수 있다.
본 발명의 양태들은 각종 도면들의 바람직한 실시예들과 함께 설명되었지만, 다른 유사한 실시예들이 사용될 수 있고, 이로부터 벗어나지 않고 본 발명의 동일한 기능을 수행하기 위한 상기 실시예들에 수정 및 추가가 이루어질 수 있다는 것을 이해해야 한다. 또한, 특히 무선 네트워크 디바이스들의 수가 계속 연장함에 따라 핸드헬드 디바이스 오퍼레이팅 시스템들 및 기타 애플리케이션 특정 오퍼레이 팅 시스템들을 포함하는 다양한 컴퓨터 플랫폼들이 고려된다는 것이 강조되어야 한다. 따라서, 본 발명은 임의의 하나의 실시예에 한정되어서는 안되고 첨부된 특허청구범위에 따른 폭과 범위에서 해석되어야 한다.
본 발명에 따르면, 타겟 핸드헬드 디바이스의 소프트웨어 룩 앤드 필(look and feel)이단일 개발 시스템 상에서 에뮬레이션될 수 있도록 타겟 핸드헬드 디바이스를 적절하게 에뮬레이션하는 핸드헬드 디바이스에 대한 WYSIWYG(what you see is what you get) 개발 시스템이 제공된다.

Claims (15)

  1. 개발 환경에서 디지털 디바이스에 대한 애플리케이션 제어를 생성하는 방법으로서,
    제1 타겟 디바이스를 선택하는 단계 - 상기 선택된 타겟 디바이스는 상기 개발 환경에 이용가능한 관련 오퍼레이팅 시스템을 가짐 - ;
    상기 애플리케이션 제어의 생성을 위한 편집기에 액세스하는 단계 - 상기 편집기는 상기 관련 오퍼레이팅 시스템의 제약들을 사용함 - ;
    상기 선택된 타겟 디바이스의 그래픽 인터페이스의 표시가 상기 애플리케이션 제어를 디스플레이하도록 상기 선택된 타겟 디바이스의 이미지 형태를 디스플레이하는 단계;
    상기 그래픽 인터페이스 상에 표시되는 상기 애플리케이션 제어에 대한 기능을 정의하는 단계; 및
    상기 애플리케이션 제어를 나타내는 오브젝트 코드를 발생하는 단계
    를 포함하고,
    상기 오브젝트 코드는 상기 관련 오퍼레이팅 시스템의 상기 제약들에 따르는 방법.
  2. 제1항에 있어서,
    제1 타겟 디바이스를 선택하는 단계는 복수의 상이한 타겟 디바이스로부터 제1 타겟 디바이스를 선택하는 단계를 포함하고, 상기 복수의 상이한 타겟 디바이스의 각각은 관련 오퍼레이팅 시스템을 갖는 방법.
  3. 제1항에 있어서,
    상기 제1 타겟 디바이스는 맞춤형 오퍼레이팅 시스템을 갖는 디지털 디바이스인 방법.
  4. 제1항에 있어서,
    상기 애플리케이션 제어에 대한 기능을 정의한 후 그리고 오브젝트 코드를 생성하기 전에 제2 타겟 디바이스를 선택하는 단계를 더 포함하고,
    상기 생성된 오브젝트 코드는 상기 제1 타겟 디바이스 대신 상기 제2 타겟 디바이스의 상기 애플리케이션 제어를 나타내는 방법.
  5. 제1항에 있어서,
    상기 애플리케이션 제어의 생성을 위한 편집기에 액세스하는 단계는, 상기 제1 타겟 디바이스의 메뉴 기능의 생성을 위해 사용자 인터페이스를 인스턴스화하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 제1 타겟 디바이스는 휴대용 퍼스널 컴퓨터, 스마트폰 및 PDA 중 하나 인 방법.
  7. 디지털 디바이스에 대한 애플리케이션 제어의 개발을 위한 컴퓨터 시스템으로서,
    타겟 디바이스 애플리케이션 제어를 보기 위한 디스플레이;
    적어도 하나의 타겟 디바이스 오퍼레이팅 시스템을 갖는 메모리 스토어; 및
    명령어들을 갖는 컴퓨터 메모리에 액세스하는 프로세서
    를 포함하고, 상기 명령어들은 실행될 때,
    제1 타겟 디바이스를 선택하는 단계 - 상기 선택된 타겟 디바이스는 관련 타겟 디바이스 오퍼레이팅 시스템을 가짐 - ;
    상기 애플리케이션 제어의 생성을 위한 편집기에 액세스하는 단계 - 상기 편집기는 상기 관련 타겟 디바이스 오퍼레이팅 시스템의 제약들을 사용함 - ;
    상기 선택된 타겟 디바이스의 그래픽 인터페이스의 표시가 상기 애플리케이션 제어를 디스플레이하도록 상기 선택된 타겟 디바이스의 이미지 형태를 디스플레이하는 단계;
    상기 애플리케이션 제어에 대한 기능을 정의하는 단계; 및
    상기 애플리케이션 제어를 나타내는 오브젝트 코드를 발생하는 단계 - 상기 오브젝트 코드는 상기 관련 오퍼레이팅 시스템의 상기 제약들에 따름 -
    를 포함하는 방법을 수행하는 컴퓨터 시스템.
  8. 제7항에 있어서,
    상기 디스플레이는 상기 제1 타겟 디바이스의 사용자에 의해 보여지는 상기 애플리케이션 제어 및 상기 선택된 제1 타겟 디바이스를 도시하게 하는 시스템.
  9. 제7항에 있어서,
    상기 메모리 스토어는 맞춤형 디지털 디바이스 타겟 오퍼레이팅 시스템 및 디지털 디바이스들에 대한 다수의 타겟 오퍼레이팅 시스템 중 하나 이상을 포함하는 시스템
  10. 제7항에 있어서,
    상기 관련 오퍼레이팅 시스템은 상기 개발 오퍼레이팅 시스템과 상이한 시스템.
  11. 개발 환경에서 디지털 디바이스에 대한 애플리케이션 제어를 생성하는 방법을 수행하기 위한 컴퓨터 판독가능 명령어들을 갖는 컴퓨터-판독가능 매체로서, 상기 방법은,
    제1 타겟 디바이스를 선택하는 단계 - 상기 선택된 타겟 디바이스는 상기 개발 환경에 이용가능한 관련 오퍼레이팅 시스템을 가짐 - ;
    상기 애플리케이션 제어의 생성을 위한 편집기에 액세스하는 단계 - 상기 편집기는 상기 관련 오퍼레이팅 시스템의 제약들을 사용함 - ;
    상기 선택된 타겟 디바이스의 그래픽 인터페이스의 표시가 상기 애플리케이션 제어를 디스플레이하도록 상기 선택된 타겟 디바이스의 이미지 형태를 디스플레이하는 단계;
    상기 애플리케이션 제어에 대한 기능을 정의하는 단계; 및
    상기 애플리케이션 제어를 나타내는 오브젝트 코드를 발생하는 단계 - 상기 오브젝트 코드는 상기 관련 오퍼레이팅 시스템의 상기 제약들에 따름 -
    를 포함하는 컴퓨터-판독가능 매체.
  12. 제11항에 있어서,
    제1 타겟 디바이스를 선택하는 단계는 복수의 상이한 타겟 디바이스 중 하나로부터 타겟 디바이스를 선택하는 단계를 포함하고, 상기 복수의 상이한 타겟 디바이스의 각각은 관련 오퍼레이팅 시스템을 갖는 컴퓨터-판독가능 매체.
  13. 제11항에 있어서,
    상기 애플리케이션 제어에 대한 기능을 정의한 후 그리고 오브젝트 코드를 생성하기 전에 제2 타겟 디바이스를 선택하는 단계를 더 포함하고,
    상기 생성된 오브젝트 코드는 상기 제1 타겟 디바이스 대신 상기 제2 타겟 디바이스의 상기 애플리케이션 제어를 나타내는 컴퓨터 -판독가능 매체.
  14. 제11항에 있어서,
    상기 애플리케이션 제어의 생성을 위한 편집기에 액세스하는 단계는, 상기 제1 타겟 디바이스의 메뉴 기능의 생성을 위해 사용자 인터페이스를 인스턴스화하는 단계를 포함하는 컴퓨터-판독가능 매체.
  15. 제14항에 있어서,
    상기 제1 타겟 디바이스는 휴대용 퍼스널 컴퓨터, 스마트폰 및 PDA 중 하나인 컴퓨터-판독가능 매체.
KR1020050121723A 2005-01-31 2005-12-12 디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템 KR101153057B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/047,235 US7398474B2 (en) 2005-01-31 2005-01-31 Method and system for a digital device menu editor
US11/047,235 2005-01-31

Publications (2)

Publication Number Publication Date
KR20060088011A true KR20060088011A (ko) 2006-08-03
KR101153057B1 KR101153057B1 (ko) 2012-06-04

Family

ID=35852122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050121723A KR101153057B1 (ko) 2005-01-31 2005-12-12 디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US7398474B2 (ko)
EP (1) EP1686462A3 (ko)
JP (1) JP5021211B2 (ko)
KR (1) KR101153057B1 (ko)
CN (1) CN1815440B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843078B1 (ko) * 2006-09-19 2008-07-03 삼성전자주식회사 유저인터페이스 흐름을 시뮬레이션 하는 장치 및 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60023662T2 (de) * 1999-02-12 2006-08-10 Pierre Bonnat Verfahren und vorrichtung zur steuerung eines elektronischen systems oder eines informationssystems durch einen flüssigkeitsstrom
US8701015B2 (en) * 2008-03-26 2014-04-15 Pierre Bonnat Method and system for providing a user interface that enables control of a device via respiratory and/or tactual input
US9116544B2 (en) * 2008-03-26 2015-08-25 Pierre Bonnat Method and system for interfacing with an electronic device via respiratory and/or tactual input
EP1804153A1 (en) * 2005-12-27 2007-07-04 Amadeus s.a.s User customizable drop-down control list for GUI software applications
US20080127037A1 (en) * 2006-10-16 2008-05-29 Prashanth Kadur System and method for detecting software on a computing device
US20080127036A1 (en) * 2006-10-16 2008-05-29 Prashanth Kadur Application development tool and related methods
US8718714B2 (en) * 2006-10-25 2014-05-06 Samsung Electronics Co., Ltd. Settings system and method for mobile device
CN103092631B (zh) * 2007-04-06 2019-02-19 西安万年科技实业有限公司 一种数据库应用系统开发平台及开发方法
JP5147667B2 (ja) * 2008-12-11 2013-02-20 三菱電機株式会社 画像表示装置
EP2385467A4 (en) 2009-01-30 2012-10-24 Mitsubishi Electric Corp STATUS DISPLAY DEVICE
CN101741954B (zh) * 2009-12-18 2012-07-18 中兴通讯股份有限公司 一种移动终端以及动态调整菜单栏软键显示的方法
JP5436506B2 (ja) * 2010-08-31 2014-03-05 株式会社ベリサーブ 設計検証装置、設計検証方法、及び設計検証プログラム
CN102253834A (zh) * 2011-07-05 2011-11-23 广东星海数字家庭产业技术研究院有限公司 一种基于数字电视的Linux硬件设备驱动系统
CN103135968A (zh) * 2011-11-24 2013-06-05 上海华建电力设备股份有限公司 一种智能显示终端系统
CN102662649A (zh) * 2012-03-06 2012-09-12 惠州Tcl移动通信有限公司 应用程序功能菜单的定制方法及装置
US11210076B2 (en) 2013-01-28 2021-12-28 Samsung Electronics Co., Ltd. Downloading and launching an app on a second device from a first device
US9883231B2 (en) * 2013-09-03 2018-01-30 Samsung Electronics Co., Ltd. Content control using an auxiliary device
US10225611B2 (en) 2013-09-03 2019-03-05 Samsung Electronics Co., Ltd. Point-to-point content navigation using an auxiliary device
CN103604197B (zh) * 2013-11-29 2016-03-02 广东美的制冷设备有限公司 空调器触摸控制界面的显示方法和系统
KR102607564B1 (ko) * 2016-09-13 2023-11-30 삼성전자주식회사 소프트 키를 표시하는 방법 및 그 전자 장치
US20200097138A1 (en) * 2018-09-24 2020-03-26 Salesforce.Com, Inc. Application builder
CN114860223B (zh) * 2022-07-06 2022-09-30 绍兴圆方半导体有限公司 交互编辑框架、交互对象的生成方法和电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485615A (en) * 1992-06-10 1996-01-16 Telefonaktiebolaget L M Ericsson System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language
JP2998652B2 (ja) * 1996-09-20 2000-01-11 日本電気株式会社 Gui画面レイアウト設計方式
WO1999004349A1 (en) * 1997-07-15 1999-01-28 Koninklijke Philips Electronics N.V. A method and system for designing a graphical user interface for an electronic consumer product
JP2001134424A (ja) * 1999-11-04 2001-05-18 Hitachi Ltd システムパラメタ作成方法、システムパラメタ作成装置、システムパラメタ作成プログラムを記録したコンピュータ読み取り可能な記録媒体及びシステムパラメタ作成データを格納したコンピュータ読み取り可能な記録媒体
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
AU2001294555A1 (en) * 2000-09-14 2002-03-26 Bea Systems Inc. Xml-based graphical user interface application development toolkit
JP3881179B2 (ja) * 2001-02-14 2007-02-14 三菱電機株式会社 ユーザインタフェース設計装置
JP2002297382A (ja) * 2001-03-30 2002-10-11 Digital Electronics Corp エディタ装置、そのプログラム、および、それが記録された記録媒体
CN1402124A (zh) * 2001-08-22 2003-03-12 英业达股份有限公司 通过菜单启动多个个人数字助理操作系统的方法及系统
US20030156131A1 (en) * 2002-02-21 2003-08-21 Samir Khazaka Method and apparatus for emulating a mobile device
CN1200348C (zh) * 2002-03-07 2005-05-04 联想(北京)有限公司 一种实现手机和掌上电脑结合的方法
US20040027377A1 (en) 2002-08-06 2004-02-12 Grace Hays User interface design and validation including dynamic data
US8544084B2 (en) * 2002-08-19 2013-09-24 Blackberry Limited System and method for secure control of resources of wireless mobile communication devices
KR100374296B1 (en) 2002-09-11 2003-03-03 Itgen Co Ltd System for developing application program for mobile terminal and mobile terminal including application program developed by the same
US20050097462A1 (en) * 2003-10-31 2005-05-05 Spx Corporation System and method for information creation, management and publication of documentation from a single source
JP2005189908A (ja) 2003-12-24 2005-07-14 Toshiba Corp シミュレーションシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843078B1 (ko) * 2006-09-19 2008-07-03 삼성전자주식회사 유저인터페이스 흐름을 시뮬레이션 하는 장치 및 방법

Also Published As

Publication number Publication date
US7398474B2 (en) 2008-07-08
CN1815440B (zh) 2010-09-08
JP5021211B2 (ja) 2012-09-05
US20060174215A1 (en) 2006-08-03
JP2006209759A (ja) 2006-08-10
KR101153057B1 (ko) 2012-06-04
EP1686462A3 (en) 2007-11-28
CN1815440A (zh) 2006-08-09
EP1686462A2 (en) 2006-08-02

Similar Documents

Publication Publication Date Title
KR101153057B1 (ko) 디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템
US8762936B2 (en) Dynamic design-time extensions support in an integrated development environment
US9336023B2 (en) Visual generation of mobile applications based on data models
Wasserman Software engineering issues for mobile application development
US10379847B2 (en) Representation of customizable types in a development environment
KR101159359B1 (ko) 다른 해상도를 갖는 디스플레이 상에 타겟 디지털 장치의디스플레이 시뮬레이션을 렌더링하는 방법, 시스템 및 매체
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
RU2398266C2 (ru) Использование механизма привязки данных для выполнения привязки команд
US11366676B2 (en) Embedded user assistance for software applications
US10078501B2 (en) Domain specific language modeling framework in a development environment
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
US10067755B2 (en) Model driven customization framework
Smyth Android Studio 2.2 Development Essentials-Android 7 Edition
JP2006099743A (ja) 再現可能なテストの自動化に関するテストケース実行挙動を選択するシステムおよび方法
Smyth Android Studio 3.2 Development Essentials-Android 9 Edition: Developing Android 9 Apps Using Android Studio 3.2, Java and Android Jetpack
US20140047409A1 (en) Enterprise application development tool
CA2925015A1 (en) System and method for testing data representation for different mobile devices
US8201147B2 (en) Generic XAD processing model
WO2015042551A2 (en) Method and system for selection of user interface rendering artifacts in enterprise web applications using a manifest mechanism
Ostrander Android UI Fundamentals: Develop and Design
US7966562B1 (en) System and method for providing domain-sensitive help
Smyth Android Studio Development Essentials: Android 6 Edition
US20150113499A1 (en) Runtime support for modeled customizations
US20150113498A1 (en) Modeling customizations to a computer system without modifying base elements
Zhou et al. Windows Phone 7 programming for Android and iOS developers

Legal Events

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