KR20100124726A - 애플리케이션들에 기초한 운영 체제 이미지들의 구축 - Google Patents

애플리케이션들에 기초한 운영 체제 이미지들의 구축 Download PDF

Info

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
Application number
KR1020107018555A
Other languages
English (en)
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 KR20100124726A publication Critical patent/KR20100124726A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/46Multiprogramming 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

애플리케이션들에 기초한 운영 체제 이미지들의 구축{BUILDING OPERATING SYSTEM IMAGES BASED ON APPLICATIONS}
전형적으로, 내장된 장치(embedded device)들은 단일 애플리케이션 장치이다. 애플리케이션이 내장된 장치에서 적절하게 작동하도록 하기 위해서는, 내장된 장치의 운영 체제가 반드시 애플리케이션의 모든 특징(feature)들을 지원해야 한다. 애플리케이션이 내장된 장치를 위한 운영 체제 이미지에 통합되는 많은 경우들에서, 운영 체제 이미지에서 지원되지 않는 종속성(dependency)들이 애플리케이션 내에 존재한다. 예를 들어, 애플리케이션은 비디오를 렌더링할 필요가 있고, 따라서 그렇게 하기 위해 비디오 플레이어와 같은 시스템 컴포넌트를 필요로 할 수 있다.
전형적으로, 그러한 종속성들을 만족시키기 위한 시도로서, 시스템 컴포넌트들이 운영 체제 이미지에 추가된다. 필요한 시스템 컴포넌트들을 운영 체제 이미지에 추가하고, 종속성들이 만족되는지를 확인하기 위해 구축된 이미지를 테스트하는 프로세스는, 전형적으로 구축 프로세스를 길고 지루하게 할 수 있는 시행착오 방식이다.
<발명의 요약>
일 실시예에 따르면, 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 시스템은, 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈(operating system base module), 내장된 장치에서 실행되도록 프로그래밍된 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈, 및 하나 이상의 소프트웨어 애플리케이션들에서의 종속성들을 식별하도록 프로그래밍된 분석 프로그램 모듈을 포함한다. 또한, 시스템은 운영 체제 베이스에 추가되는 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈, 및 종속성들을 컴포넌트 모듈로부터의 하나 이상의 컴포넌트들에 맵핑하도록 프로그래밍된 맵핑 모듈을 포함한다.
다른 실시예에 따르면, 내장된 장치를 위한 운영 체제 이미지를 생성하기 위한 통합 개발 시스템은, 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈, 및 하나 이상의 포맷들로 제공되는 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈을 포함한다. 또한, 시스템은 소프트웨어 애플리케이션들을 분석하여 소프트웨어 애플리케이션들에서의 운영 체제 종속성들을 결정하도록 프로그래밍된 하나 이상의 분석 프로그램들을 포함하는 분석 프로그램 모듈, 운영 체제에 추가되도록 프로그래밍된 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈, 포맷들 및 컴포넌트들의 선택을 허용하는 사용자 인터페이스 모듈, 및 소프트웨어 애플리케이션들을 분석하고, 종속성들을 사용자 인터페이스에 디스플레이된 컴포넌트들에 맵핑하기 위해 분석 프로그램들을 실행하는 종속성 처리 모듈을 포함한다.
또 다른 실시예에 따르면, 통합 개발 시스템을 이용하여 내장된 장치에 대한 운영 체제 이미지를 생성하기 위한 방법은, 운영 체제 베이스 상에서 실행될 소프트웨어 애플리케이션을 식별하는 단계; 통합 개발 시스템의 사용자 인터페이스로부터 소프트웨어 애플리케이션을 위한 포맷을 선택하는 단계; 통합 개발 시스템에 포함된 하나 이상의 분석 프로그램들을 이용하여 소프트웨어 애플리케이션에 대한 종속성 분석을 수행하는 단계; 종속성 분석으로부터 운영 체제 종속성들을 결정하는 단계; 종속성들을 운영 체제 베이스에 추가될 하나 이상의 컴포넌트들에 맵핑하는 단계; 사용자 인터페이스에 하나 이상의 컴포넌트들을 디스플레이하는 단계; 선택된 컴포넌트들을 운영 체제 베이스에 추가하는 단계; 및 소프트웨어 애플리케이션을 상기 운영 체제 베이스에 추가하는 단계를 포함한다.
본 요약은 아래의 상세한 설명에서 더 설명되는 개념들 중 선택된 것을 간략한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구되는 발명의 주제의 핵심적인 특징 또는 본질적인 특징을 식별하도록 의도된 것이 아니며, 또한 청구되는 발명의 주제의 범위를 제한하도록 의도된 것도 아니다.
본 명세서에 포함되어 그 일부를 형성하는 첨부 도면들은 본 개시의 몇몇 양태들을 도시하며, 상세한 설명과 함께 본 개시의 원리를 설명하는 기능을 한다.
도 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)

  1. 내장된 장치(embedded device)를 위한 운영 체제 이미지(114)를 생성하기 위한 시스템(100)으로서,
    상기 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈(102);
    상기 내장된 장치에서 실행되도록 프로그래밍된 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈(104);
    상기 하나 이상의 소프트웨어 애플리케이션들에서의 종속성들을 식별하도록 프로그래밍된 분석 프로그램 모듈(106);
    상기 운영 체제 베이스에 추가되는 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈(108); 및
    상기 종속성들을 상기 컴포넌트 모듈(108)로부터의 하나 이상의 컴포넌트들에 맵핑하도록 프로그래밍된 맵핑 모듈(110)
    을 포함하는 시스템.
  2. 제1항에 있어서, 상기 컴포넌트들은 미디어 플레이어, 웹 브라우저 및 방화벽을 포함하는 그룹으로부터 선택되는 시스템.
  3. 제1항에 있어서, 상기 맵핑 모듈은 해시 테이블을 이용하여 상기 종속성들을 맵핑하도록 더 프로그래밍되는 시스템.
  4. 제1항에 있어서, 상기 소프트웨어 애플리케이션의 포맷을 선택하기 위한 제1 섹션 및 상기 컴포넌트들을 선택하기 위한 제2 섹션을 포함하도록 프로그래밍된 사용자 인터페이스를 더 포함하는 시스템.
  5. 제1항에 있어서, 운영 체제 이미지를 구축하는 구축 모듈을 더 포함하는 시스템.
  6. 내장된 장치를 위한 운영 체제 이미지(114)를 생성하기 위한 통합 개발 시스템(100)으로서,
    상기 내장된 장치를 위한 운영 체제를 포함하는 운영 체제 베이스 모듈(102);
    하나 이상의 포맷들로 제공되는 하나 이상의 소프트웨어 애플리케이션들을 포함하는 소프트웨어 애플리케이션 모듈(104);
    상기 소프트웨어 애플리케이션들을 분석하여 상기 소프트웨어 애플리케이션들에서의 운영 체제 종속성들을 결정하도록 프로그래밍된 하나 이상의 분석 프로그램들을 포함하는 분석 프로그램 모듈(106);
    상기 운영 체제에 추가되도록 프로그래밍된 하나 이상의 컴포넌트들을 포함하는 컴포넌트 모듈(108);
    상기 포맷들 및 상기 컴포넌트들의 선택을 허용하는 사용자 인터페이스 모듈(210); 및
    상기 소프트웨어 애플리케이션들을 분석하고, 상기 종속성들을 사용자 인터페이스(300)에 디스플레이된 상기 컴포넌트들에 맵핑하기 위해 상기 분석 프로그램들을 실행하는 종속성 처리 모듈(212)
    을 포함하는 통합 개발 시스템.
  7. 제6항에 있어서, 상기 컴포넌트들은 미디어 플레이어, 웹 브라우저 및 방화벽을 포함하는 그룹으로부터 선택되는 통합 개발 시스템.
  8. 제6항에 있어서, 운영 체제 이미지를 구축하는 구축 모듈을 더 포함하는 통합 개발 시스템.
  9. 제8항에 있어서, 상기 운영 체제를 테스트하고, 상기 운영 체제 내의 추가의 종속성들을 결정하고, 상기 추가의 종속성들을 해결(resolve)하기 위해 컴포넌트들을 선택하는 테스트 및 설계 모듈(a test and design module)을 더 포함하는 통합 개발 시스템.
  10. 제6항에 있어서, 해시 테이블을 이용하여 상기 종속성들을 맵핑하도록 프로그래밍된 맵핑 모듈을 더 포함하는 통합 개발 시스템.
  11. 통합 개발 시스템(100)을 이용하여 내장된 장치에 대한 운영 체제 이미지(114)를 생성하기 위한 방법으로서,
    운영 체제 베이스 상에서 실행될 소프트웨어 애플리케이션을 식별하는 단계;
    상기 통합 개발 시스템(100)의 사용자 인터페이스(300)로부터 상기 소프트웨어 애플리케이션을 위한 포맷을 선택하는 단계;
    상기 통합 개발 시스템(100)에 포함된 하나 이상의 분석 프로그램들을 이용하여 상기 소프트웨어 애플리케이션에 대한 종속성 분석을 수행하는 단계;
    상기 종속성 분석으로부터 운영 체제 종속성들을 결정하는 단계;
    상기 종속성들을 상기 운영 체제 베이스에 추가될 하나 이상의 컴포넌트들에 맵핑하는 단계;
    상기 사용자 인터페이스(300)에 상기 하나 이상의 컴포넌트들을 디스플레이하는 단계;
    상기 선택된 컴포넌트들을 상기 운영 체제 베이스에 추가하는 단계; 및
    상기 소프트웨어 애플리케이션을 상기 운영 체제 베이스에 추가하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 종속성들을 맵핑하는 단계는 해시 테이블을 이용하여 상기 종속성들을 맵핑하는 단계를 더 포함하는 방법.
  13. 제11항에 있어서, 상기 컴포넌트들은 미디어 플레이어, 웹 브라우저 및 방화벽을 포함하는 그룹으로부터 선택되는 방법.
  14. 제11항에 있어서, 사용자가 맵핑된 컴포넌트들을 수동으로 선택해제하고 추가의 컴포넌트들을 선택할 수 있게 해 주는 단계를 더 포함하는 방법.
  15. 제11항에 있어서, 상기 운영 체제 베이스로부터 운영 체제 이미지를 구축하는 단계를 더 포함하는 방법.
  16. 제11항에 있어서, 임의의 추가의 종속성들이 존재하는지를 결정하기 위해 상기 운영 체제 베이스를 테스트하는 단계를 더 포함하는 방법.
  17. 제16항에 있어서, 상기 종속성들을 해결하기 위해 상기 운영 체제 베이스에 추가의 컴포넌트들을 추가하는 단계를 더 포함하는 방법.
  18. 제17항에 있어서, 상기 종속성들을 맵핑하는 단계는 해시 테이블을 이용하여 상기 종속성들을 맵핑하는 단계를 더 포함하는 방법.
KR1020107018555A 2008-02-26 2009-01-21 애플리케이션들에 기초한 운영 체제 이미지들의 구축 KR20100124726A (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012121541A2 (ko) * 2011-03-10 2012-09-13 애니포인트 미디어 그룹 서비스 컴포넌트를 사용한 애플리케이션 개발 및 등록 시스템

Families Citing this family (6)

* Cited by examiner, † Cited by third party
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 财团法人工业技术研究院 产生虚拟机消息队列应用程序的相关关系的方法与系统
JP6412276B2 (ja) * 2016-04-25 2018-10-24 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. 仮想マシン作成方法及び装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
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
US7133874B2 (en) * 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a 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
US7836404B2 (en) * 2001-12-13 2010-11-16 International Business Machines Corporation Streaming internet media record and playback 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
KR100772999B1 (ko) * 2002-06-25 2007-11-05 인터내셔널 비지네스 머신즈 코포레이션 분산 환경에서 어플리케이션의 성능을 모니터링하는 방법및 시스템
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

Cited By (2)

* Cited by examiner, † Cited by third party
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
WO2009108416A2 (en) 2009-09-03
US20090217259A1 (en) 2009-08-27
EP2263148A2 (en) 2010-12-22
CN101960419A (zh) 2011-01-26
CN101960419B (zh) 2014-01-29
WO2009108416A3 (en) 2009-10-22
EP2263148A4 (en) 2012-10-31
TW200937287A (en) 2009-09-01
JP2011513833A (ja) 2011-04-28

Similar Documents

Publication Publication Date Title
US9898280B2 (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
KR20100124726A (ko) 애플리케이션들에 기초한 운영 체제 이미지들의 구축
EP2124150A2 (en) Apparatus, method, and system of assisting software development
CN105446874B (zh) 一种资源配置文件的检测方法和装置
US7536678B2 (en) System and method for determining the possibility of adverse effect arising from a code change in a computer program
US7895575B2 (en) Apparatus and method for generating test driver
US20080276221A1 (en) Method and apparatus for relations planning and validation
US11544176B1 (en) Systems and methods for automatically assessing and conforming software development modules to accessibility guidelines in real-time
US8676627B2 (en) Vertical process merging by reconstruction of equivalent models and hierarchical process merging
US20120185669A1 (en) Program inspection method and non-transitory, computer readable storage medium storing inspection program
CN113704110A (zh) 用户界面的自动化测试方法及装置
US11422917B2 (en) Deriving software application dependency trees for white-box testing
KR102021383B1 (ko) 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
KR102603330B1 (ko) 테스트 커버리지 표시 장치 및 표시 방법
US11947441B2 (en) Visual testing of implemented product code from a codified user experience design
CN113051262B (zh) 一种数据质检方法、装置、设备及存储介质
JP2014059805A (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JP2016126700A (ja) プログラム検証装置、プログラム検証方法及びプログラム検証プログラム
JP2020067859A (ja) テストデータ生成装置、テストデータ生成方法及びプログラム
JP4536576B2 (ja) ソフトウェアカバレッジ測定装置及び方法
JP2010002977A (ja) 業務システムプログラムの作成システム
JP2007200125A (ja) コーディング規約選択プログラム
JP2009181180A (ja) プログラム生成ツールの検査プログラムおよびプログラム生成ツールの検査方法ならびにプログラム生成ツールの検査装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal