KR20100124726A - 애플리케이션들에 기초한 운영 체제 이미지들의 구축 - Google Patents
애플리케이션들에 기초한 운영 체제 이미지들의 구축 Download PDFInfo
- Publication number
- KR20100124726A KR20100124726A KR1020107018555A KR20107018555A KR20100124726A KR 20100124726 A KR20100124726 A KR 20100124726A KR 1020107018555 A KR1020107018555 A KR 1020107018555A KR 20107018555 A KR20107018555 A KR 20107018555A KR 20100124726 A KR20100124726 A KR 20100124726A
- Authority
- KR
- South Korea
- Prior art keywords
- operating system
- module
- dependencies
- components
- integrated development
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 시스템 및 방법이 개시된다. 일례에서, 시스템은 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈, 내장된 장치에서 실행되도록 프로그래밍된 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈, 및 하나 이상의 소프트웨어 애플리케이션들에서의 종속성들을 식별하도록 프로그래밍된 분석 프로그램 모듈을 포함한다. 또한, 시스템은 운영 체제 베이스에 추가되는 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈, 및 종속성들을 컴포넌트 모듈로부터의 하나 이상의 컴포넌트들에 맵핑하도록 프로그래밍된 맵핑 모듈을 포함한다. 통합 개발 시스템을 이용하여 내장된 장치에 대한 운영 체제 이미지를 생성하기 위한 방법도 기술된다.
Description
전형적으로, 내장된 장치(embedded device)들은 단일 애플리케이션 장치이다. 애플리케이션이 내장된 장치에서 적절하게 작동하도록 하기 위해서는, 내장된 장치의 운영 체제가 반드시 애플리케이션의 모든 특징(feature)들을 지원해야 한다. 애플리케이션이 내장된 장치를 위한 운영 체제 이미지에 통합되는 많은 경우들에서, 운영 체제 이미지에서 지원되지 않는 종속성(dependency)들이 애플리케이션 내에 존재한다. 예를 들어, 애플리케이션은 비디오를 렌더링할 필요가 있고, 따라서 그렇게 하기 위해 비디오 플레이어와 같은 시스템 컴포넌트를 필요로 할 수 있다.
전형적으로, 그러한 종속성들을 만족시키기 위한 시도로서, 시스템 컴포넌트들이 운영 체제 이미지에 추가된다. 필요한 시스템 컴포넌트들을 운영 체제 이미지에 추가하고, 종속성들이 만족되는지를 확인하기 위해 구축된 이미지를 테스트하는 프로세스는, 전형적으로 구축 프로세스를 길고 지루하게 할 수 있는 시행착오 방식이다.
<발명의 요약>
일 실시예에 따르면, 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 시스템은, 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈(operating system base module), 내장된 장치에서 실행되도록 프로그래밍된 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈, 및 하나 이상의 소프트웨어 애플리케이션들에서의 종속성들을 식별하도록 프로그래밍된 분석 프로그램 모듈을 포함한다. 또한, 시스템은 운영 체제 베이스에 추가되는 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈, 및 종속성들을 컴포넌트 모듈로부터의 하나 이상의 컴포넌트들에 맵핑하도록 프로그래밍된 맵핑 모듈을 포함한다.
다른 실시예에 따르면, 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 통합 개발 시스템은, 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈, 및 하나 이상의 포맷들로 제공되는 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈을 포함한다. 또한, 시스템은 소프트웨어 애플리케이션들을 분석하여 소프트웨어 애플리케이션들에서의 운영 체제 종속성들을 결정하도록 프로그래밍된 하나 이상의 분석 프로그램들을 포함하는 분석 프로그램 모듈, 운영 체제에 추가되도록 프로그래밍된 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈, 포맷들 및 컴포넌트들의 선택을 허용하는 사용자 인터페이스 모듈, 및 소프트웨어 애플리케이션들을 분석하고, 종속성들을 사용자 인터페이스에 디스플레이된 컴포넌트들에 맵핑하기 위해 분석 프로그램들을 실행하는 종속성 처리 모듈을 포함한다.
또 다른 실시예에 따르면, 통합 개발 시스템을 이용하여 내장된 장치에 대한 운영 체제 이미지를 생성하기 위한 방법은, 운영 체제 베이스 상에서 실행될 소프트웨어 애플리케이션을 식별하는 단계; 통합 개발 시스템의 사용자 인터페이스로부터 소프트웨어 애플리케이션을 위한 포맷을 선택하는 단계; 통합 개발 시스템에 포함된 하나 이상의 분석 프로그램들을 이용하여 소프트웨어 애플리케이션에 대한 종속성 분석을 수행하는 단계; 종속성 분석으로부터 운영 체제 종속성들을 결정하는 단계; 종속성들을 운영 체제 베이스에 추가될 하나 이상의 컴포넌트들에 맵핑하는 단계; 사용자 인터페이스에 하나 이상의 컴포넌트들을 디스플레이하는 단계; 선택된 컴포넌트들을 운영 체제 베이스에 추가하는 단계; 및 소프트웨어 애플리케이션을 상기 운영 체제 베이스에 추가하는 단계를 포함한다.
본 요약은 아래의 상세한 설명에서 더 설명되는 개념들 중 선택된 것을 간략한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구되는 발명의 주제의 핵심적인 특징 또는 본질적인 특징을 식별하도록 의도된 것이 아니며, 또한 청구되는 발명의 주제의 범위를 제한하도록 의도된 것도 아니다.
본 명세서에 포함되어 그 일부를 형성하는 첨부 도면들은 본 개시의 몇몇 양태들을 도시하며, 상세한 설명과 함께 본 개시의 원리를 설명하는 기능을 한다.
도 1은 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 시스템을 도시한다.
도 2는 통합 개발 시스템을 이용하여 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 시스템을 도시한다.
도 3은 통합 개발 시스템을 이용하여 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 시스템을 위한 예시적인 사용자 인터페이스를 도시한다.
도 4는 통합 개발 시스템을 이용하여 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 방법의 흐름도이다.
도 1은 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 시스템을 도시한다.
도 2는 통합 개발 시스템을 이용하여 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 시스템을 도시한다.
도 3은 통합 개발 시스템을 이용하여 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 시스템을 위한 예시적인 사용자 인터페이스를 도시한다.
도 4는 통합 개발 시스템을 이용하여 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 예시적인 방법의 흐름도이다.
본 출원은 내장된 장치를 위한 운영 체제 이미지를 구축하기 위한 시스템들 및 방법들에 관한 것이다. 여기에 설명된 예들에서, 시스템들 및 방법들은 내장된 장치에서 실행되는 하나 이상의 소프트웨어 애플리케이션들에 대한 운영 체제 종속성들을 결정하기 위해 종속성 분석 프로그램들을 사용한다. 이러한 종속성들을 해결(resolve)하기 위해 운영 체제 이미지에 추가될 수 있는 운영 체제 컴포넌트들이 식별된다. 분석 프로그램들은 단독으로 실행되거나, 통합 개발 시스템의 일부로서 실행될 수 있다.
도 1은 내장된 장치 상에 맞춤화된(customized) 운영 체제 이미지를 구축하기 위해 사용되는 예시적인 시스템(100)을 도시한다. 예시적인 시스템(100)은 운영 체제 베이스 모듈(102), 소프트웨어 애플리케이션 모듈(104), 분석 프로그램 모듈(106), 컴포넌트 모듈(108), 맵핑 모듈(110), 및 구축 모듈(112)을 포함한다. 구축의 최종 결과는 맞춤화된 운영 체제 이미지(114)이다.
예시적인 운영 체제 베이스 모듈(102)은 예를 들어, 워싱턴주 레드몬드의 마이크로소프트사에 의해 제공되는 WINDOWS® Embedded CE 또는 XP Embedded 운영 체제와 같은, 내장된 시스템들을 위해 사용되는 운영 체제 베이스를 포함한다. 다른 운영 체제들도 사용될 수 있다. 운영 체제 베이스는 커널, 파일 시스템, 코어 컴포넌트들 등과 같은 기본 기능들을 포함하는 전체 운영 체제의 쉘이다.
소프트웨어 애플리케이션 모듈(104)은 예를 들어, POS(point-of-sale) 장치에서 실행되는 POS 애플리케이션과 같이, 내장된 운영 체제에서 샐행되는 하나 이상의 소프트웨어 애플리케이션들을 포함한다. 소프트웨어 애플리케이션 모듈(104)은 하나 이상의 시스템 컴포넌트들로부터 운영 체제 내에서의 지원을 요구할 수 있다. 그러한 요구는 종속성이라고 불리운다. 예를 들어, 소프트웨어 애플리케이션 모듈(104)은 오디오 기능을 필요로 할 수 있고, 이는 또 미디어 컴포넌트가 운영 체제 베이스 모듈(102)에 추가될 것을 요구한다. 이하에 더 설명되는 바와 같이, 소정의 다른 예시적인 종속성들은 하이퍼텍스트 마크업 언어 포맷으로 포맷팅된 문서들을 렌더링하는 데에 사용되는 웹 브라우저, 및 내장된 장치로의 접속들과 내장된 장치로부터의 접속들을 제한하는 데에 사용되는 방화벽을 포함하지만, 이에 제한되지는 않는다.
종속성들을 결정하기 위해, 분석 프로그램 모듈(106)은 소프트웨어 애플리케이션 모듈(104)에 관련된 종속성들을 분석하고 식별하도록 프로그래밍된다. 그러한 분석 프로그램의 일례는 소프트웨어 애플리케이션 모듈(104)에 관련된 종속성들을 식별하는 데에 사용될 수 있는 커맨드-라인 도구인 Dumpbin.exe이다. Dumpbin.exe는 다이내믹 링크 라이브러리들 및 바이너리 파일들의 구조를 분석한다. 다른 예에서는, 소프트웨어 애플리케이션 모듈(104)을 스캔하고 소프트웨어 애플리케이션이 적절하게 동작하는 것을 방해할 그에 관련된 임의의 종속성들을 결정하도록 프로그래밍된 Depends.exe와 같은 분석 프로그램이 있다. 전형적으로, 그러한 분석 프로그램들은 단독으로 실행되거나, 마이크로소프트사에 의해 제공되는 VISUAL STUDIO® 개발 시스템과 같은 통합 개발 시스템의 컨텍스트에서 실행될 수 있는 정적(static) 프로그램이다.
분석 프로그램 모듈(106)에 의해 발견된 소프트웨어 애플리케이션 내의 종속성들은 그 종속성들을 해결하는 데에 사용되는 운영 체제 컴포넌트들에 맵핑된다. 컴포넌트들은 예시적인 컴포넌트 모듈(108)에 포함된다. 맵핑은 맵핑 프로그램 모듈(110)에 의해 수행된다. 운영 체제 컴포넌트들의 몇몇 예는, 마이크로소프트사에 의해 제공되는 INTERNET EXPLORER® 인터넷 브라우저와 같은 웹 브라우저; WINDOWS MEDIA® 플레이어와 같은 미디어 컴포넌트; 및 Windows firewall과 같은 방화벽 컴포넌트를 포함한다. 컴포넌트의 다른 예들도 가능하다.
맵핑 프로그램 모듈(110)은 종속성들을 컴포넌트들에 맵핑하도록 프로그래밍될 수 있는데, 이는 다양한 기법들을 이용하여 달성될 수 있다. 몇몇 예들에서, 종속성들은 리스트, 테이블, 데이터베이스 또는 임의의 다른 데이터 구조를 이용하여 맵핑된다. 제시된 비제한적인 예에서, 종속성들을 맵핑하기 위해 테이블이 사용된다. 사용될 수 있는 한 예시적인 테이블은 키들을 값들과 연관시키는 데이터 구조를 포함하는 해시 테이블이다. 해시 테이블은 가능한 종속성들의 리스트를 포함하고, 종속성들을 그 종속성들을 만족시키는 하나 이상의 시스템 컴포넌트들에 맵핑한다. 다른 구성들도 가능하다.
구축 모듈(112)은 식별된 운영 체제 컴포넌트들을 이용하여 운영 체제 이미지를 구축하기 위해 이용된다. 이러한 프로세스의 최종 결과는 소프트웨어 애플리케이션 모듈(104)에서의 종속성들을 만족시키는 운영 체제 이미지(114)이다. 맞춤화된 운영 체제 이미지(114)는 POS 장치와 같은 내장된 장치에, 그 장치를 원하는 환경에서 동작시키기 위해 내장될 수 있다.
도 2는 내장된 장치를 위한 운영 체제 이미지를 구축하기 위해 이용되는 예시적인 통합 개발 시스템(200)을 도시한다. 그러한 예시적인 통한된 개발 시스템의 일례는 VISUAL STUDIO® 개발 시스템이다. 다른 도구들도 사용될 수 있다. 예를 들어, 다른 예에서, 개발 시스템(200)은 이하에 더 설명되는 바와 같이, 종속성들을 식별하고, 종속성들을 시스템 컴포넌트들에 맵핑하고, 및/또는 맞춤화된 운영 체제 이미지를 생성하기 위해 사용되는 독립형 도구이다.
통합 개발 시스템(200)은 운영 체제 베이스 모듈(102), 소프트웨어 애플리케이션 모듈(104), 분석 프로그램 모듈(106), 컴포넌트 모듈(108) 및 구축 모듈(112)을 포함한다. 예시적인 통합 개발 시스템(200)은 사용자 인터페이스 모듈(210), 종속성 처리 모듈(212), 구축 모듈(214), 및 테스트 및 설계 모듈(216)도 포함한다.
일반적으로, 예시적인 사용자 인터페이스 모듈(210)은 사용자가 종속성들의 식별, 종속성들을 시스템 컴포넌트들에 맵핑하는 것, 및 맞춤화된 운영 체제 이미지를 생성하는 것을 제어할 수 있게 해 준다. 예를 들어, 사용자 인터페이스 모듈(210)은 사용자가 소프트웨어 애플리케이션 모듈(104)을 위한 포맷을 선택할 수 있게 해 준다. 바이너리 파일, 소스 코드 파일 및 설치 파일을 포함하는 수개의 포맷들 중 하나가 선택될 수 있다. 예시적인 사용자 인터페이스 모듈(212)은 또한 운영 체제 베이스 모듈(102)에 추가될 수 있는 컴포넌트들의 디스플레이를 제공한다.
예시적인 종속성 처리 모듈(212)은 소프트웨어 애플리케이션 상에서 하나 이상의 분석 프로그램들을 실행하고, 소프트웨어 애플리케이션에서 운영 체제 종속성들을 식별하고, 종속성들을 그러한 종속성들을 해결하는 운영 체제 컴포넌트들에 맵핑한다. 일부 실시예들에서, 종속성 처리 모듈(212)은 식별된 운영 체제 컴포넌트들을 운영 체제 컴포넌트들의 리스트에 자동으로 추가하고, 그러한 컴포넌트들에 기초하여 새로운 운영 체제 시스템 이미지를 구축한다. 다른 실시예들에서, 식별된 컴포넌트들은 사용자 인터페이스 모듈(210)을 통해 사용자에게 표시되고, 사용자는 추가될 컴포넌트들을 선택한다.
사용자가 운영 체제 베이스 모듈(102)에 추가될 컴포넌트들을 선택하고 나면, 운영 체제 이미지를 구축하기 위해 구축 모듈(214)이 사용된다. 그 다음, 구축된 운영 체제 이미지는, 그 운영 체제 내에 임의의 추가의 종속성들이 존재하는지를 결정하기 위해 테스트 및 설계 모듈(216)에 의해 테스트된다. 테스트 및 설계 모듈(216)은 구축 모듈(112)에 의해 생성되는 운영 체제 이미지를 분석하는 분석 프로그램들을 포함한다. 운영 체제 이미지는 소프트웨어 종속성 및 하드웨어 종속성 둘다를 포함할 수 있기 때문에, 테스트 및 설계 모듈(216)은 종속성 처리 모듈(212)이 놓쳤을 수 있는 새로운 종속성들을 찾도록 프로그래밍될 수 있다.
예시적인 테스트 및 설계 모듈(216)은 임의의 새로운 운영 체제 종속성들을 식별하고, 또한 그러한 종속성들을 해결할 수 있는 운영 체제 컴포넌트들을 식별한다. 일부 실시예들에서, 테스트 및 설계 모듈(216)은 식별된 운영 체제 컴포넌트들을 운영 체제 컴포넌트들의 리스트에 자동으로 추가하고, 이러한 컴포넌트들에 기초하여 새로운 운영 체제 이미지를 구축한다. 다른 실시예들에서, 식별된 컴포넌트들은 사용자 인터페이스 모듈(210)을 통해 사용자에게 제시되고, 사용자는 추가될 컴포넌트들을 선택한다.
사용자 인터페이스 모듈(210)에 의해 생성되는 예시적인 사용자 인터페이스(300)가 도 3에 도시되어 있다. 예시적인 사용자 인터페이스(300)는 소프트웨어 애플리케이션의 포맷을 선택하기 위한 섹션(302), 및 컴포넌트들을 선택하기 위한 섹션(304)을 포함한다.
예시적인 섹션(302)은 소프트웨어 애플리케이션의 파일 포맷을 선택하기 위한 체크박스들을 포함한다. 바이너리 파일 포맷을 위한 체크박스(306), 소스 파일 포맷을 위한 체크박스(308), 및 설치 파일 포맷을 위한 체크박스(310)가 포함된다.
예시적인 컴포넌트 섹션(304)은 종속성들을 만족시키기 위해 시스템 컴포넌트들을 선택하기 위한 체크박스들을 포함한다. 도시된 예에서, 컴포넌트 섹션(304)은 예를 들어 마이크로소프트사에 의해 제공되는 WINDOWS® XP 운영 체제 인터페이스와 같은 사유(proprietary) 사용자 인터페이스(312); 미디어 플레이어를 위한 체크박스(314); 웹 브라우저를 위한 체크박스(316); 방화벽을 위한 체크박스(318); 및 예를 들어 마이크로소프트사에 의해 제공되는 .Net 프레임워크와 같은 네트워크 프레임워크를 위한 체크박스(320)와 같은 컴포넌트들을 나열한다. 다른 컴포넌트들도 가능하다.
예시적인 실시예들에서, 섹션(304) 내의 하나 이상의 체크박스들은 소프트웨어 애플리케이션 내의 종속성들을 해결하기 위해 종속성 처리 모듈(212)에 의해 식별된 컴포넌트들을 선택하기 위해 통합 개발 시스템(200)에 의해 자동으로 체크될 수 있다. 자동 체크에 더하여, 사용자가 섹션(304) 내의 체크박스들 중 하나 이상을 수동으로 체크함으로써 추가의 컴포넌트들을 선택할 수 있다.
예시적인 실시예들에서, 시스템들(100, 200) 및 사용자 인터페이스(300)는 하나 이상의 컴퓨터 시스템 상에서 구현된다. 예시적인 실시예들에서, 시스템들(100, 200)은 처리 장치 및 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 (RAM과 같은) 휘발성, (ROM, 플래시 메모리 등과 같은) 비휘발성, 또는 그들의 소정의 조합과 같은 메모리를 포함할 수 있다. 시스템들(100, 200)은 자기 또는 광 디스크 또는 테입과 같은 대용량 저장장치(이동식 및/또는 비이동식)를 포함할 수 있다. 운영 체제 및 하나 이상의 애플리케이션 프로그램들은 시스템들(100, 200) 상에 저장될 수 있다. 다른 구성들도 가능하다.
도 4는 통합 개발 시스템을 이용하여 내장된 시스템을 위한 운영 체제 이미지를 생성하기 위한 예시적인 방법(400)을 설명하는 흐름도이다. 위에서 설명된 바와 같이, 통합 개발 시스템은 일반적으로 특정한 내장된 운영 체제 플랫폼을 위한 운영 체제 이미지들을 구축하기 위해 이용된다.
처음에, 방법(400)의 동작(402)에서, 운영 체제 플랫폼에 추가하기 위해 소프트웨어 애플리케이션이 식별된다. 이것은 예를 들어, 예시적인 통합 개발 시스템 내에서 프로젝트 파일을 열고, 소프트웨어 애플리케이션을 선택함으로써 행해질 수 있다. 동작(404)에서, 예를 들어, 바이너리 파일, 소스 코드 파일 또는 설치 파일과 같이, 소프트웨어 애플리케이션을 위한 파일 유형이 선택된다. 통합 개발 시스템의 사용자 인터페이스에서, 적합한 파일 유형에 대응하는 체크박스를 선택함으로써 선택이 이루어질 수 있다. 예를 들어, 통합 개발 시스템 내의 프로젝트 파일을 이용하는 것에 의한 것과 같은 대안적인 선택 방법들도 가능하다.
다른 예들에서, 사용자는 다른 매개변수들도 선택할 수 있다. 예를 들어, 일부 실시예들에서, 통합 개발 시스템은 WINDOWS® Embedded CE 또는 XP Embedded 운영 체제와 같은 복수의 유형의 운영 체제들을 다루도록 프로그래밍된다. 그러한 예에서, 사용자는 소프트웨어 애플리케이션의 분석 이전에, 어느 운영 체제를 원하는지를 선택할 수 있다.
동작(406)에서, 소프트웨어 애플리케이션 내의 임의의 운영 체제 종속성들이 존재하는지를 결정하기 위해, 통합 개발 시스템 내에 포함된 하나 이상의 분석 프로그램들이 소프트웨어 애플리케이션에 대하여 실행된다. 동작(408)에서, 식별된 종속성들은 그 종속성들을 해결하기 위해 이용되는 운영 체제 컴포넌트들에 맵핑된다.
그 다음, 동작(410)에서, 식별된 운영 체제 컴포넌트들이 통합 개발 시스템의 사용자 인터페이스에 디스플레이된다. 통합 개발 시스템은 예를 들어 사용자 인터페이스 상의 컴포넌트를 위한 체크박스를 체크함으로써, 식별된 컴포넌트들을 디스플레이할 수 있다. 동작(412)에서, 사용자는 식별된 컴포넌트들을 받아들이거나, 컴포넌트를 선택해제하거나, 또는 추가의 컴포넌트들을 수동으로 선택하기를 선택할 수 있다. 사용자가 선택에 만족하고 나면, 동작(414)에서 소프트웨어 애플리케이션이 운영 체제 베이스에 추가되고, 동작(416)에서 운영 체제 이미지가 구축된다.
동작(418)에서, 추가의 종속성들이 존재하는지를 결정하기 위해, 구축된 이미지가 테스트된다. 예를 들어, 통합 개발 시스템은 구축된 운영 체제 이미지를 운영 체제 하드웨어의 관점에서 테스트하는 추가의 테스트 및 분석 프로그램들을 포함할 수 있다. 테스트 및 분석 프로그램들은 운영 체제 이미지를 더 조정하기 위해 추가될 수 있는 추가의 컴포넌트들을 식별할 수 있다. 동작(420)에서, 이러한 추가의 컴포넌트들이 운영 체제 이미지에 추가될 수 있다. 이러한 컴포넌트들의 추가는 통합 개발 시스템에 의해 자동으로 수행될 수 있거나, 사용자에 의해 수동으로 추가될 수 있다. 마지막으로, 동작(422)에서, 추가의 컴포넌트들이 추가된 경우, 통합 개발 시스템에서 운영 체제 이미지가 재구축된다.
발명의 주제가 구조적인 특징들 및/또는 방법론적인 단계들에 특정한 언어로 설명되었지만, 첨부된 특허청구범위에 정의된 발명의 주제는 위에서 설명된 구체적인 특징들 또는 단계들에 반드시 한정되는 것은 아니라는 점을 이해해야 한다. 오히려, 위에서 설명된 특정한 특징들 및 단계들은 청구항들을 구현하는 예시적인 형태들로서 개시된 것이다.
Claims (18)
- 내장된 장치(embedded device)를 위한 운영 체제 이미지(114)를 생성하기 위한 시스템(100)으로서,
상기 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈(102);
상기 내장된 장치에서 실행되도록 프로그래밍된 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈(104);
상기 하나 이상의 소프트웨어 애플리케이션들에서의 종속성들을 식별하도록 프로그래밍된 분석 프로그램 모듈(106);
상기 운영 체제 베이스에 추가되는 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈(108); 및
상기 종속성들을 상기 컴포넌트 모듈(108)로부터의 하나 이상의 컴포넌트들에 맵핑하도록 프로그래밍된 맵핑 모듈(110)
을 포함하는 시스템. - 제1항에 있어서, 상기 컴포넌트들은 미디어 플레이어, 웹 브라우저 및 방화벽을 포함하는 그룹으로부터 선택되는 시스템.
- 제1항에 있어서, 상기 맵핑 모듈은 해시 테이블을 이용하여 상기 종속성들을 맵핑하도록 더 프로그래밍되는 시스템.
- 제1항에 있어서, 상기 소프트웨어 애플리케이션의 포맷을 선택하기 위한 제1 섹션 및 상기 컴포넌트들을 선택하기 위한 제2 섹션을 포함하도록 프로그래밍된 사용자 인터페이스를 더 포함하는 시스템.
- 제1항에 있어서, 운영 체제 이미지를 구축하는 구축 모듈을 더 포함하는 시스템.
- 내장된 장치를 위한 운영 체제 이미지(114)를 생성하기 위한 통합 개발 시스템(100)으로서,
상기 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈(102);
하나 이상의 포맷들로 제공되는 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈(104);
상기 소프트웨어 애플리케이션들을 분석하여 상기 소프트웨어 애플리케이션들에서의 운영 체제 종속성들을 결정하도록 프로그래밍된 하나 이상의 분석 프로그램들을 포함하는 분석 프로그램 모듈(106);
상기 운영 체제에 추가되도록 프로그래밍된 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈(108);
상기 포맷들 및 상기 컴포넌트들의 선택을 허용하는 사용자 인터페이스 모듈(210); 및
상기 소프트웨어 애플리케이션들을 분석하고, 상기 종속성들을 사용자 인터페이스(300)에 디스플레이된 상기 컴포넌트들에 맵핑하기 위해 상기 분석 프로그램들을 실행하는 종속성 처리 모듈(212)
을 포함하는 통합 개발 시스템. - 제6항에 있어서, 상기 컴포넌트들은 미디어 플레이어, 웹 브라우저 및 방화벽을 포함하는 그룹으로부터 선택되는 통합 개발 시스템.
- 제6항에 있어서, 운영 체제 이미지를 구축하는 구축 모듈을 더 포함하는 통합 개발 시스템.
- 제8항에 있어서, 상기 운영 체제를 테스트하고, 상기 운영 체제 내의 추가의 종속성들을 결정하고, 상기 추가의 종속성들을 해결(resolve)하기 위해 컴포넌트들을 선택하는 테스트 및 설계 모듈(a test and design module)을 더 포함하는 통합 개발 시스템.
- 제6항에 있어서, 해시 테이블을 이용하여 상기 종속성들을 맵핑하도록 프로그래밍된 맵핑 모듈을 더 포함하는 통합 개발 시스템.
- 통합 개발 시스템(100)을 이용하여 내장된 장치에 대한 운영 체제 이미지(114)를 생성하기 위한 방법으로서,
운영 체제 베이스 상에서 실행될 소프트웨어 애플리케이션을 식별하는 단계;
상기 통합 개발 시스템(100)의 사용자 인터페이스(300)로부터 상기 소프트웨어 애플리케이션을 위한 포맷을 선택하는 단계;
상기 통합 개발 시스템(100)에 포함된 하나 이상의 분석 프로그램들을 이용하여 상기 소프트웨어 애플리케이션에 대한 종속성 분석을 수행하는 단계;
상기 종속성 분석으로부터 운영 체제 종속성들을 결정하는 단계;
상기 종속성들을 상기 운영 체제 베이스에 추가될 하나 이상의 컴포넌트들에 맵핑하는 단계;
상기 사용자 인터페이스(300)에 상기 하나 이상의 컴포넌트들을 디스플레이하는 단계;
상기 선택된 컴포넌트들을 상기 운영 체제 베이스에 추가하는 단계; 및
상기 소프트웨어 애플리케이션을 상기 운영 체제 베이스에 추가하는 단계
를 포함하는 방법. - 제11항에 있어서, 상기 종속성들을 맵핑하는 단계는 해시 테이블을 이용하여 상기 종속성들을 맵핑하는 단계를 더 포함하는 방법.
- 제11항에 있어서, 상기 컴포넌트들은 미디어 플레이어, 웹 브라우저 및 방화벽을 포함하는 그룹으로부터 선택되는 방법.
- 제11항에 있어서, 사용자가 맵핑된 컴포넌트들을 수동으로 선택해제하고 추가의 컴포넌트들을 선택할 수 있게 해 주는 단계를 더 포함하는 방법.
- 제11항에 있어서, 상기 운영 체제 베이스로부터 운영 체제 이미지를 구축하는 단계를 더 포함하는 방법.
- 제11항에 있어서, 임의의 추가의 종속성들이 존재하는지를 결정하기 위해 상기 운영 체제 베이스를 테스트하는 단계를 더 포함하는 방법.
- 제16항에 있어서, 상기 종속성들을 해결하기 위해 상기 운영 체제 베이스에 추가의 컴포넌트들을 추가하는 단계를 더 포함하는 방법.
- 제17항에 있어서, 상기 종속성들을 맵핑하는 단계는 해시 테이블을 이용하여 상기 종속성들을 맵핑하는 단계를 더 포함하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/037,635 | 2008-02-26 | ||
US12/037,635 US20090217259A1 (en) | 2008-02-26 | 2008-02-26 | Building Operating System Images Based on Applications |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100124726A true KR20100124726A (ko) | 2010-11-29 |
Family
ID=40999634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107018555A KR20100124726A (ko) | 2008-02-26 | 2009-01-21 | 애플리케이션들에 기초한 운영 체제 이미지들의 구축 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20090217259A1 (ko) |
EP (1) | EP2263148A4 (ko) |
JP (1) | JP2011513833A (ko) |
KR (1) | KR20100124726A (ko) |
CN (1) | CN101960419B (ko) |
TW (1) | TW200937287A (ko) |
WO (1) | WO2009108416A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012121541A2 (ko) * | 2011-03-10 | 2012-09-13 | 애니포인트 미디어 그룹 | 서비스 컴포넌트를 사용한 애플리케이션 개발 및 등록 시스템 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477497B2 (en) * | 2008-09-26 | 2016-10-25 | Juniper Networks, Inc. | Methods for determining resource dependency and systems thereof |
US8694968B2 (en) * | 2009-12-30 | 2014-04-08 | Foneclay, Inc. | System for creating personalized and customized mobile devices |
CN102799451B (zh) * | 2012-06-29 | 2015-11-11 | 深圳市安普尔科技有限公司 | Wince系统镜像构建方法和系统、wince系统镜像 |
CN104834530A (zh) * | 2015-05-27 | 2015-08-12 | 百富计算机技术(深圳)有限公司 | 一种pos应用程序的开发方法及云端服务器 |
CN106909436B (zh) | 2015-12-23 | 2020-07-21 | 财团法人工业技术研究院 | 产生虚拟机消息队列应用程序的相关关系的方法与系统 |
CN107077379B (zh) * | 2016-04-25 | 2019-03-15 | 深圳前海达闼云端智能科技有限公司 | 一种虚拟机创建方法和装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7289635B2 (en) * | 2001-07-20 | 2007-10-30 | Edag Ag | Structural noise source predictor |
US6993642B2 (en) * | 2001-07-24 | 2006-01-31 | Microsoft Corporation | Method and system for creating and employing an operating system having selected functionality |
US7836404B2 (en) * | 2001-12-13 | 2010-11-16 | International Business Machines Corporation | Streaming internet media record and playback software program |
US20030121024A1 (en) * | 2001-12-13 | 2003-06-26 | Microsoft Corporation | System and method for building a runtime image from components of a software program |
US7133874B2 (en) * | 2001-12-13 | 2006-11-07 | Microsoft Corporation | Prototyping model for components of a software program |
US7379982B2 (en) * | 2002-04-15 | 2008-05-27 | Bassam Tabbara | System and method for custom installation of an operating system on a remote client |
US6993746B2 (en) * | 2002-04-19 | 2006-01-31 | Wind River Systems, Inc. | Configuration tool for building a user application for multiple operating systems |
US6938250B2 (en) * | 2002-06-12 | 2005-08-30 | Microsoft Corporation | Image-based software installation |
JP4528116B2 (ja) * | 2002-06-25 | 2010-08-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 分散環境中でアプリケーションの性能を監視するための方法およびシステム |
CA2391719A1 (en) * | 2002-06-26 | 2003-12-26 | Ibm Canada Limited-Ibm Canada Limitee | Editing files of remote systems using an integrated development environment |
US20040122791A1 (en) * | 2002-12-19 | 2004-06-24 | Sea Brian S | Method and system for automated source code formatting |
US7444621B2 (en) * | 2004-02-20 | 2008-10-28 | Microsoft Corporation | Method and system for providing a common operating system |
US20050198628A1 (en) * | 2004-03-04 | 2005-09-08 | Graham Christoph J. | Creating a platform specific software image |
US7765541B1 (en) * | 2004-05-26 | 2010-07-27 | Oracle America, Inc. | Minimization methodology |
US20060080683A1 (en) * | 2004-10-12 | 2006-04-13 | Majid Anwar | Mechanism to circumvent restrictions of pre-written code components |
US20070006205A1 (en) * | 2005-05-18 | 2007-01-04 | Michael Kennedy | System for virtual image migration |
US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US7853945B2 (en) * | 2006-02-22 | 2010-12-14 | Michael Kramer | Integrated computer server imaging |
US7647331B2 (en) * | 2006-03-28 | 2010-01-12 | Microsoft Corporation | Detecting duplicate images using hash code grouping |
US8291402B2 (en) * | 2007-11-29 | 2012-10-16 | Red Hat, Inc. | Using system fingerprints to accelerate package dependency resolution |
-
2008
- 2008-02-26 US US12/037,635 patent/US20090217259A1/en not_active Abandoned
-
2009
- 2009-01-07 TW TW098100399A patent/TW200937287A/zh unknown
- 2009-01-21 KR KR1020107018555A patent/KR20100124726A/ko not_active Application Discontinuation
- 2009-01-21 JP JP2010548756A patent/JP2011513833A/ja active Pending
- 2009-01-21 CN CN200980106990.4A patent/CN101960419B/zh not_active Expired - Fee Related
- 2009-01-21 EP EP09715834A patent/EP2263148A4/en not_active Withdrawn
- 2009-01-21 WO PCT/US2009/031469 patent/WO2009108416A2/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012121541A2 (ko) * | 2011-03-10 | 2012-09-13 | 애니포인트 미디어 그룹 | 서비스 컴포넌트를 사용한 애플리케이션 개발 및 등록 시스템 |
WO2012121541A3 (ko) * | 2011-03-10 | 2012-12-20 | 애니포인트 미디어 그룹 | 서비스 컴포넌트를 사용한 애플리케이션 개발 및 등록 시스템 |
Also Published As
Publication number | Publication date |
---|---|
TW200937287A (en) | 2009-09-01 |
US20090217259A1 (en) | 2009-08-27 |
WO2009108416A3 (en) | 2009-10-22 |
WO2009108416A2 (en) | 2009-09-03 |
EP2263148A4 (en) | 2012-10-31 |
JP2011513833A (ja) | 2011-04-28 |
EP2263148A2 (en) | 2010-12-22 |
CN101960419B (zh) | 2014-01-29 |
CN101960419A (zh) | 2011-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9201646B2 (en) | Automatic code review and code reviewer recommendation | |
US8074204B2 (en) | Test automation for business applications | |
US8875105B2 (en) | Efficiently developing software using test cases to check the conformity of the software to the requirements | |
US20190324890A1 (en) | System and Method for Testing Electronic Visual User Interface Outputs | |
KR20100124726A (ko) | 애플리케이션들에 기초한 운영 체제 이미지들의 구축 | |
EP2124150A2 (en) | Apparatus, method, and system of assisting software development | |
US11544176B1 (en) | Systems and methods for automatically assessing and conforming software development modules to accessibility guidelines in real-time | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
EP1861776A2 (en) | Apparatus for analysing and organizing artifacts in a software application | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
US8676627B2 (en) | Vertical process merging by reconstruction of equivalent models and hierarchical process merging | |
JP6440895B2 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
US20120185669A1 (en) | Program inspection method and non-transitory, computer readable storage medium storing inspection program | |
CN113051262B (zh) | 一种数据质检方法、装置、设备及存储介质 | |
KR102021383B1 (ko) | 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 | |
KR102603330B1 (ko) | 테스트 커버리지 표시 장치 및 표시 방법 | |
WO2020230241A1 (ja) | テスト装置、テスト方法及びプログラム | |
JP4929121B2 (ja) | ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム | |
US11947441B2 (en) | Visual testing of implemented product code from a codified user experience design | |
JP5811978B2 (ja) | モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法 | |
JP2016126700A (ja) | プログラム検証装置、プログラム検証方法及びプログラム検証プログラム | |
JP4536576B2 (ja) | ソフトウェアカバレッジ測定装置及び方法 | |
JP2011113298A (ja) | 流用ソースコード解析システム及びプログラム並びに記録媒体 | |
JP2010002977A (ja) | 業務システムプログラムの作成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal |