JP6603746B2 - 仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム - Google Patents

仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム Download PDF

Info

Publication number
JP6603746B2
JP6603746B2 JP2018066786A JP2018066786A JP6603746B2 JP 6603746 B2 JP6603746 B2 JP 6603746B2 JP 2018066786 A JP2018066786 A JP 2018066786A JP 2018066786 A JP2018066786 A JP 2018066786A JP 6603746 B2 JP6603746 B2 JP 6603746B2
Authority
JP
Japan
Prior art keywords
source code
software
processor
virtual
user interface
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2018066786A
Other languages
English (en)
Other versions
JP2019114223A (ja
Inventor
チェ,スンヨブ
チョー,ウォンジュン
ヒュン キム,カプ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Popcornsar Co Ltd
Original Assignee
Popcornsar Co Ltd
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 Popcornsar Co Ltd filed Critical Popcornsar Co Ltd
Publication of JP2019114223A publication Critical patent/JP2019114223A/ja
Application granted granted Critical
Publication of JP6603746B2 publication Critical patent/JP6603746B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Debugging And Monitoring (AREA)

Description

本発明は組み込みソフトウェア及び組み込みシステムに関するもので、より詳しくは仮想化されたシステム上で組み込みソフトウェア(組み込みシステムで実行されるソフトウェア)を自動で生成することができるワークフロー及びそのワークフローが実行されて組み込みソフトウェアを自動で生成するコンピューティングシステムに関するものである。
組み込みシステムはマイクロプロセッサ又はマイクロコントローラーを組み込んで(embedded)元の製作者が指定した機能のみを行う装置を意味し、一般的により大きなシステムの一部として特別な業務を遂行するためのハードウェアとソフトウェアを含んでいる特定の応用システムを言う。
このような組み込みシステムは多様な応用分野、例えば工場自動化、家庭自動化、ロボット制御、工程制御を含む制御分野、携帯電話、PDA、スマートフォン、LBSなどを含む端末器機分野、プリンター、インターネット冷蔵庫、ゲーム機、HDTVなどを含む情報家電器機分野、交換器、ルーター、ホームサーバー、ホームゲートウェイなどを含むネットワーク器機分野、自動車のECU、カーナビゲーション、車両部品などの動作の制御を含む自動車分野などに多様に適用されている。
前述したような組み込みシステムは、先端技術の発展につれてハードウェアの仕様が高性能化している。
一方、市場競争力の確保のために、組み込みシステム製品は使用者の要求を反映して製作されなければならないうえに、早い時間内に発売されなければならないので、製品の迅速な開発のために、組み込みシステム開発者は設計及びテストツールを使う。
しかし、このようなツールはハードウェア部品の開発速度に追いつかない状況だった。このような速度差を埋めるために、ターゲットシステムのシミュレーションツールを使う。ターゲットプラットホームのシミュレーション、すなわち仮想プラットホームは組み込みソフトウェア開発者が実物ハードウェアの開発が完了することを待つ必要なしに仮想プラットホーム上で彼らのソフトウェアを分析して試してみることができるようになる。このような従来のシミュレーションシステムとしては、SimOS、SkyEye、QEMU、SIDなどがある。
一方、このような従来の組み込みシステム及び組み込みシステムで実行される組み込みソフトウェアを開発する過程は、図1のように、仮想開発環境を構築したコンピューティングシステム上で行うことができる。他の従来技術の組み込みソフトウェア開発過程は、図2に示すように、ソフトウェア開発のためのツールの集合であるTool−chainをターゲットボードで実行するのに(S230)適した形態にシミュレーションして(S210)ターゲットボードで実行可能なソースコードでビルドする過程(S220)を含む。しかし、このようなソースコードのビルド過程(S220)はTool−chainの変更(S210)ごとに又はターゲットボードごとに毎度新しく実行しなければならなかったし、この過程で生成されるビルドのアウトプットはデータのサイズが膨大であり、ソースコードのビルド過程に長時間がかかるため、デバッギング又は修正の際に迅速な対処がなされにくい問題点があった。
大韓民国公開特許第10−2011−0037140号の“組み込みソフトウェア仮想開発環境を提供するシステム”(公開日2011年4月13日)
従来の開発環境において開発環境ツールチェーン(Tool−chain)を構築するためには、開発者が自ら構築のためのノウハウを確保しなければならない問題点があり、ターゲットボード別に組み込みソフトウェア(バイナリーイメージ)を生成するためのビルドに平均的に数時間以上の長時間がかかった。
また、従来の開発環境では、それぞれのターゲットボードに対して組み込みソフトウェアを生成するために数十ギガバイト以上のハードディスク容量が必要であった。
従来の開発環境では、チームワーク(Team work)によって組み込みソフトウェアを開発する場合、チームメンバー間のビルドファイル共有のために時間的及び物理的リソースを必要とした。各チームメンバーのコンピューティングシステムに開発環境の構築が必要であり、ターゲットボード別にビルドファイルを共有する必要があった。ビルドファイルを共有する過程、すなわちコピーのみを行うのにも多くの時間及び容量が必要であった。ビルドファイルを共有したとしても各コンピューティングシステムの環境によって正常に作動しない可能性が存在した。すなわち、意図せぬエラーによるデバッギングに時間が消費された。
本発明は前記の従来技術の問題点を解決するためになされたもので、開発過程で開発者のコンピューティングシステムのリソース(ハードディスク、及びメモリ)のサイズ、及び性能に対する依存度を減少させ、ターゲットボード当たりの最終アウトプットである組み込みソフトウェアのビルド時間を大幅に減縮することを目的とする。
また、本発明はクラウドに基づく統合開発環境を提供し、ブラウザーなどのウェブを介した使用者インターフェースで開発することができるように実装される開発システムを提供することを他の目的とする。
また、本発明はターゲットボード別のアウトプットであるバイナリーイメージを生成し、クラウドに基づく統合開発環境でこれを保存し、必要時に開発者がバイナリーイメージをダウンロードすることができるクラウドシステムを提供することをさらに他の目的とする。
本発明は前記の目的を達成するためになされたもので、本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステムは少なくとも一つ以上のプロセッサを含む。前記少なくとも一つ以上のプロセッサは、単独で又は集合的に使用者がソースコードを編集することができる使用者インターフェース用ツールを提供し、第1仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックし、ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム上で提供し、前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリー結果物を生成する。
ここで、第1仮想システムは使用者がソースコードをシミュレーションすることができるように実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味し得る。例えば、QEMU IDEコンテナーの形態を取ることができる。
第2仮想システムはそれぞれのターゲットボードのためのプリビルドソフトウェアを生成するために実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味し得る。
組み込みソフトウェアはターゲットボードに実行するための最終的なバイナリーファイルのアウトプットを意味し、組み込みソフトウェアがターゲットボードで実行されることによって組み込みシステムが実装されることができる。
本発明のコンピューティングシステムのプロセッサは前記第1仮想システムと前記第2仮想システムを同じホストオペレーティングシステム階層上で実行することができる。
本発明のコンピューティングシステムのプロセッサは前記第2仮想システム上で前記プリビルドソフトウェアを生成する過程で活用(利用)された開発環境情報を前記第1仮想システム上で実行されるシミュレーション過程に共有することができる。
本発明のコンピューティングシステムのプロセッサは前記第1仮想システム上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードに対する活用情報(利用情報)を前記第2仮想システム上で前記プリビルドソフトウェアを生成する過程に共有することができる。
本発明のコンピューティングシステムのプロセッサはウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツールを提供することができる。
本発明のコンピューティングシステムのプロセッサは前記ソースコードに対するファイルシステムを生成し、前記クラウド開発環境上に前記ソースコードに対するファイルシステムを保存することができる。
本発明のコンピューティングシステムのプロセッサは前記バイナリー結果物に対するファイルシステムを生成し、前記クラウド開発環境上に前記バイナリーアウトプットに対するファイルシステムを保存することができる。
本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法は、ウェブを介して接続可能なクラウド開発環境上で使用者がソースコードを編集することができる使用者インターフェース用ツールを提供する段階;第1仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックする段階;ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム上で提供する段階;及び前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを第2仮想システム上で生成する段階を含む。本発明の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法は、前記コンピューティングシステムの前記少なくとも一つ以上のプロセッサの単独で又は前記少なくとも一つ以上のプロセッサの集合となるクラウドコンピューティング技法によって実行することができる。
本発明によれば、開発過程で開発者のコンピューティングシステムのリソース(ハードディスク、及びメモリ)のサイズ、及び性能に対する依存度を減少させ、ターゲットボード当たりの最終アウトプットである組み込みソフトウェアのビルド時間を大幅に減縮することができる。
本発明によれば、クラウドに基づく統合開発環境を提供し、ブラウザーなどのウェブに基づく使用者インターフェースで開発することができるように実装される開発システムを提供することができる。
本発明によれば、ターゲットボード別のアウトプットであるバイナリーイメージを生成し、クラウドに基づく統合開発環境でこれを保存し、必要時に開発者がバイナリーイメージをダウンロードすることができるクラウドシステムを提供することができる。
従来技術の組み込みソフトウェア開発システムの概要を示す図である。 従来技術の組み込みソフトウェア開発システムの概要を示す図である。 本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを示す図である。 本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを用いたソフトウェア開発プロセスの全般を示す図である。 本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。 本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。
前記目的、そして本発明の他の目的及び特徴は添付図面に基づく実施例の説明から明らかになるであろう。
本発明の好適な実施例を添付図面に基づいて詳細に説明する。本発明の説明において、関連の公知の構成又は機能についての具体的な説明が本発明の要旨をあいまいにすることができると判断される場合にはその詳細な説明は省略する。
一般的に使われる“ソースコード”は最終アウトプットであるバイナリーアウトプットを生成するためのコンパイル過程を経る前のコードセットを意味し、疑似コード(pseudo−code)からコンパイル直前段階のプログラムコードまで非常に広い範囲を意味する。本明細書で言及する“ソースコード”は特定の意味に制限されず、コンパイル直前段階のプログラムコードのみを意味するのにとどまらず、特に目標機能と仕様に対するチェックポイントのみを含む場合、すなわち開発者の立場で最終アウトプットを生成するための“ソース”に近いコードの場合までを含む概念として使われるであろう。
以下で説明する図3及び図4のクラウドサービスシステムは、少なくとも一つ以上のサーバーコンピューティングシステムを含んでなることができる。少なくとも一つ以上のサーバーコンピューティングシステムはそれぞれ少なくとも一つ以上のプロセッサを含むことができ、少なくとも一つ以上のプロセッサは単独で又は集合的に本発明の特徴である第1仮想システムと第2仮想システムを生成し、使用者インターフェース用ツール、プリビルドソフトウェア、及び組み込みソフトウェアを生成及び提供することができる。
ここで、第1仮想システムは使用者がソースコードをシミュレーションすることができるように実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味することができ、例えばQEMU IDEコンテナーの形態を取ることができる。第1仮想システムはクラウドサービスシステム又はクラウドコンピューティングシステム内で実行されるシミュレーターであってもよく、シミュレーターはターゲットボードでの動作を前もってシミュレーションすることができる、ターゲットボードを仮想化したソフトウェアを意味する。
第2仮想システムはそれぞれのターゲットボードのためのプリビルドソフトウェアを生成するために実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味し得る。
組み込みソフトウェアはターゲットボードに実行するための最終的なバイナリーファイルのアウトプットを意味し、組み込みソフトウェアがターゲットボードで実行されることによって組み込みシステムが実装されることができる。
図3は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを示す図である。
図3のシステム300はクラウドサービスシステム又はクラウドコンピューティングシステムと理解することができる。システム300は少なくとも一つ以上のプロセッサ(図示せず)を含む。少なくとも一つ以上のプロセッサは単独で又は集合的にシステム300内で以下の動作を行う主体になることができる。
システム300は使用者がソースコードを編集することができるように使用者インターフェース用ツール340を提供し、第1仮想システム331上で前記使用者インターフェース用ツール340を用いて編集された前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックすることができる。
システム300は第1ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成した第1プリビルドソフトウェアを第2仮想システム332上で提供し、第2ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成した第2プリビルドソフトウェアを第3仮想システム333上で提供することができる。
システム300は前記ソースコードを前記第1ターゲットボードに対して前もって生成した前記第1プリビルドソフトウェアと結合して前記第1ターゲットボードで実行することができる第1バイナリーアウトプットを前記第2仮想システム332上で生成することができ、前記ソースコードを前記第2ターゲットボードに対して前もって生成した前記第2プリビルドソフトウェアと結合して前記第2ターゲットボードで実行することができる第2バイナリーアウトプットを前記第3仮想システム333上で生成することができる。
使用者は使用者インターフェース用ツール340を用いてソースコードを作成してアプリケーションを開発することができる(S311)。このために、システム300は使用者インターフェース用ツール340をもう一つの仮想システムとして実装して使用者に提供することができる。使用者インターフェース用ツール340は使用者のコンピューティングシステムに表示されて使用者に提供され、使用者インターフェース用ツール340で行われる演算及び情報処理はシステム300で実行される。もちろん、実施例によっては、使用者がシステム300を直接使ってアプリケーションを開発することもできる(S311)。この場合には、使用者のコンピューティングシステムが直ちにシステム300と一致する。
使用者インターフェース用ツール340を介して入力された使用者の伝送命令に従い、システム300は使用者によって使用者インターフェース用ツール340を用いて開発されたアプリケーション(ソースコード)をターゲットボード用にプリビルドされたプリビルドソフトウェアを提供することができる仮想システム332、333に伝送及び共有することができる(S313)。
第2仮想システム332は第1ターゲットボード用の第1組み込みソフトウェアの最終アウトプットを生成し(S314)、第1組み込みソフトウェアの最終アウトプットである第1バイナリーアウトプット(第1バイナリーイメージ)をシステム300内の第2ファイルシステム342に伝送することができる(S315)。同様に、第3仮想システム333は第2ターゲットボード用の第2組み込みソフトウェアの最終アウトプットを生成し(S314)、第2組み込みソフトウェアの最終アウトプットである第2バイナリーアウトプット(第2バイナリーイメージ)をシステム300内の第2ファイルシステム342に伝送することができる(S315)。第2ファイルシステム342は複数のターゲットボードに対応する組み込みソフトウェアの最終アウトプットである第1バイナリーアウトプット及び/又は第2バイナリーアウトプットを保存することができる。
一方、システム300上の第1ファイルシステム341は使用者インターフェース用ツール340内でビルドされたアプリケーション開発のためのソースコードアプリ(App1、App2、...、ApppN)を保存することができる。ここで、図3に示されてはいないが、使用者インターフェース用ツール340で開発されたソースコードが第2仮想システム332及び第3仮想システム333に伝送される前、第2仮想システム332及び第3仮想システム333のそれぞれで第1プリビルドソフトウェア及び第2プリビルドソフトウェアがプリビルドされることができる。ここで、プリビルドソフトウェアはターゲットボードで動作するアプリケーションを除き、ターゲットボードに関連したオペレーティングシステムなどの情報を含んで前もって生成される疑似バイナリーイメージ形態の情報を意味し得る。
ここで、第1プリビルドソフトウェアは第2仮想システム332上でソースコードと結合する前にプリビルドされれば十分であるので、第1プリビルドソフトウェアのプリビルド過程は使用者が使用者インターフェース用ツール340を用いてアプリケーションを開発するうちに(S311)バックグラウンドで並列に実行されることもでき、使用者がアプリケーションを開発する前に実行されることもできる。
本発明によれば、例えば第1ターゲットボードのための第1プリビルドソフトウェアと第2ターゲットボードのための第2プリビルドソフトウェアが既に生成されているので、使用者は第1ターゲットボード及び第2ターゲットボードに共通して適用されるアプリケーションを開発する(S311)過程に数秒乃至数分程度の時間がかかったとすると、第2仮想システム332と第3仮想システム333のそれぞれでアプリケーションソースコードを第1プリビルドソフトウェア及び第2プリビルドソフトウェアのそれぞれと結合してコンパイルすることによって最終的に第1バイナリーアウトプットと第2バイナリーアウトプットを得るまでにかかる時間はコンパイルにかかる数秒乃至数分程度の時間であれば十分である。その後、それぞれのターゲットボードで実行する目標機能を修正することにしてアプリケーションを修正する場合にも、アプリケーションの開発にかかる時間及び最終結果物のコンパイル時間のみで修正された目標機能を満たす修正された最終アウトプットを得ることができる。
従来には、このような目標機能の修正時ごとに、目標機能の修正後に新たにターゲットボードのそれぞれに対する最終アウトプットをビルドするのに平均的に数時間以上の長時間がかかったので、本発明によれば多数のターゲットボードに対して同時にアプリケーションを開発して適用する場合にも組み込みソフトウェアの開発時間を画期的に縮めることができる。また、本発明によれば、多数のターゲットボードのそれぞれに対する組み込みソフトウェアのそれぞれの生成過程が並列に行われることもできるので、開発者は自分のアプリケーション開発過程で導出された最終アウトプットをターゲットボードで速かに確認してみることができ、デバッギング時間と全体開発プロセスを極めて画期的な短縮を可能にする効果がある。
システム300はウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツール340を提供することができる。
システム300はソースコードに対する第1ファイルシステム341を生成し、前記クラウド開発環境上にソースコードに対する第1ファイルシステム341を保存することができる。
システム300はバイナリーアウトプットに対する第2ファイルシステム342を生成し、前記クラウド開発環境上にバイナリーアウトプットに対する第2ファイルシステム342を保存することができる。
図3にプリビルドソフトウェアを生成する二つの仮想システム332、333が示されているが、プリビルドソフトウェアを生成する仮想システムはターゲットボードごとに提供されることができるので、仮想システムの数はターゲットボードの数によって変わることができる。図3の実施例によって本発明の思想が限定的に解釈されてはいけない。
システム300内の第1ファイルシステム341及び第2ファイルシステム342はホストのファイルシステムを意味し得る。全てのコンテナー(仮想システム)が同じファイルシステム空間を共有することもでき、他の空間に分離してソースコード及びアウトプットを伝送することもできる。図3にはアプリケーション開発のためのソースコードを保存する第1ファイルシステム341と最終バイナリーアウトプット(バイナリーイメージ)を保存する第2ファイルシステム342が区分されるものとして示され、仮想システム上で生成されたバイナリーアウトプットが第2ファイルシステム342に伝送されるものとして示されている。このような伝送は論理的に設定された仮想のシステム上から同様の論理的に設定されたファイルシステム上への伝送であるだけ、必ずしも物理的に情報を伝送して受信する過程を伴うものではないのは当業者であれば明らかに理解可能であろう。
システム300内の第1仮想システム331は使用者インターフェース用ツール340と連動して使用者の開発過程で必要なソースコードのシミュレーションを実行する。第1仮想システム331は使用者アプリコンテナー、又は使用者インターフェース用ツール340が実行されるコンテナーであり得る。ここで、第1仮想システム331と第2仮想システム332は同じホストオペレーティングシステム360の階層上で実行される。同様に、第1仮想システム331と第3仮想システム333も同じホストオペレーティングシステム360の階層上で実行される。ホストオペレーティングシステム360は複数の仮想システムを生成して管理するためにコンテナーエンジン350を生成し、コンテナーエンジン350上で複数の仮想システムを生成及び管理することができる。
第1仮想システム331が提供する開発環境と第2仮想システム332(プリビルドソフトウェアが提供され、プリビルドとソースコードが結合されるコンテナー)が同じホストオペレーティングシステム360上で実行されるため、第1仮想システム331と第2仮想システム332が提供する開発環境が相当部分で共有するので、使用者がソースコードを修正しても第2仮想システム332でプリビルドソフトウェアとコードセットの修正なしに直ぐコンパイルすることができる。
システム300は第2仮想システム332上で第1プリビルドソフトウェアを生成する過程で活用された開発環境情報を第1仮想システム331上で実行されるシミュレーション過程に共有することができる。
第2仮想システム332上で第1プリビルドソフトウェアを生成する過程で活用(利用)された情報が第1仮想システム331上でシミュレーション過程でそのまま活用及び/又は共有されるので、シミュレーション過程を経たソースコードと第1プリビルドソフトウェアの結合過程が容易であり、ソースコードと第1プリビルドソフトウェア間の結合時に簡単なコンパイル過程のみでも最終的な第1バイナリーアウトプット(第1組み込みソフトウェア)を生成することができる。
したがって、本発明は、従来技術に比べ、組み込みソフトウェアの開発及び生成に必要な時間を縮めることができる。従来技術でソースコードをターゲットボードで実行するための最終バイナリーファイルにビルドするのに長時間がかかった理由は毎度ツールチェーン(カスタム化された機能と目標仕様などを記述するディスクリプション)とターゲットボードの環境情報、オペレーティングシステム情報などを結合してソースコードそのものを新しくビルドしなければならなかったからである。一方でツールチェーンはターゲットボード用イメージをビルドするための開発ツール及びソフトウェアの集合を意味し得る。本発明はターゲットボードに適用される開発環境、オペレーティングシステムについての主要情報が含まれたコードセットをプリビルドすることによってプリビルドソフトウェアと名付けられた形態として提供し、プリビルドソフトウェアを生成する時に使用された開発環境及びオペレーティングシステムについての情報をソースコードのシミュレーション上で活用する。ソースコードのシミュレーションはソースコードの機能が使用者の目標仕様に見合うかをチェックする過程で、ターゲットボードに全く従属しなくて論理に基づくシミュレーションであるので、早く実行及び検証されることができる。すなわち、プリビルドソフトウェアをプリビルド/生成する過程で使用された情報を同じオペレーティングシステム上の第1仮想システム331(使用者アプリコンテナー)でシミュレーションするときに前もってチェックして見ることができるので、ソースコードとプリビルドソフトウェア間の結合が容易である。また、ソースコードのシミュレーション時に負担となる要素は選択的に排除されるので、ソースコードのシミュレーション時間/費用がターゲットボードとの適合性検証によって増加することを防止することができる。
これにより、シミュレーション及びフィードバックによる検証を経たソースコードがプリビルドソフトウェアと結合されれば、簡単なコンパイル過程によってバイナリーアウトプット(組み込みソフトウェア)を得ることができる。
システム300は第1仮想システム331上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードについての活用情報を第2仮想システム332上で第1プリビルドソフトウェアを生成する過程で共有することができる。
クラウドサービスシステムと連動する開発環境を提供する場合、クラウドシステム内のプリビルドソフトウェアのファイルシステム(例えば、バイナリーイメージのような形態に実装できる)とバイナリーアウトプットのファイルシステムが変更されれば、クラウドの全体で共有することができるようにアップデートされることができる。この時、クラウドシステム内に分散して保存されたファイルシステム間の不一致がチェックされ、同じソフトウェアコンテンツに対する全てのファイルシステムが同期化することができる。
同じソフトウェアコンテンツに対する全てのファイルシステムの同期化とは別個に、プリビルドドソフトウェアのコンテンツがアップデートされることができる。一般に、上位階層のアプリケーションソフトウェア及びソースコードが変動すると言ってもアプライアンスと類似した役目を有するプリビルドソフトウェアが必ずしも再びビルドされなければならないのではない。本発明のプリビルドソフトウェアはソースコードの変動にもかかわらず、ソースコードと容易に結合して組み込みソフトウェアを生成することを要件とする。一方、実施例によってはターゲットボード及びターゲットボードで実行されなければならないオペレーティングシステムに基づいてプリビルドソフトウェアがアップデートされるとか再びプリビルドされることができる。この時、プリビルドソフトウェアは、ソースコードとターゲットボード間の関連性、ターゲットボードでソースコードの活用情報、ターゲットボードで活用されるソースコードの主要機能などについての情報に基づいて効率的にソースコードと結合することができるように前もって生成されるとか前もってアップデートされることができる。
ここで、第1仮想システム331上でソースコードに対する前記シミュレーション過程で得られるソースコードについての活用情報が第2仮想システム332上で前記プリビルドソフトウェアを生成する過程で共有されることにより、第2仮想システム332で次バージョンのプリビルドソフトウェアを生成するとき、使用者の目標機能にもっと見合うことができるプリビルドソフトウェアが生成されることができる。このような共有も第1仮想システム331と第2仮想システム332が同じホストオペレーティングシステム上で実行されるため可能である。第1仮想システム331で使用者がソースコードをシミュレーションして検証するのに用いられた情報、すなわち目的機能に対する要求、ソースコードの検証パターン、ソースコードを活用しようとする目的などの活用情報は累積してプリビルドソフトウェアの改善に用いられることができる。
以上では第1ターゲットボードのための第1組み込みソフトウェアを生成する過程について主に説明したが、他のターゲットボード、例えば第2ターゲットボードのための第2組み込みソフトウェアを生成する過程に対しても共通して適用可能である。すなわち、第1仮想システム331と第3仮想システム333が同じホストオペレーティングシステム360上で実行されるので、第1仮想システム331と第3仮想システム333の開発過程で情報共有が可能であり、よって第2プリビルドソフトウェアのプリビルド過程及び第2ターゲットボードに対するソースコードのアプリケーションシミュレーション過程が改善されることができる。
図4は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを用いたソフトウェア開発プロセスの全般を示す図である。
図4のシステム400は図3のシステム300と同様にクラウドサービスシステム又はクラウドコンピューティングシステムであってもよく、少なくとも一つ以上のプロセッサを含むことができる。以下のシステム400の動作はシステム400内の少なくとも一つ以上のプロセッサの単独又は集合的動作によって実行されることができる。
図3及び図4に共通した構成要素についての重複説明は省略する。例えば、図4の第1ファイルシステム441及び第2ファイルシステム442は図3の第1ファイルシステム341及び第2ファイルシステム342と同一であり、図4の使用者インターフェース用ツール440は図3の使用者インターフェース用ツール340と同一である。図4の第1仮想システム431、第2仮想システム432、第3仮想システム433、コンテナーエンジン450及びホストオペレーティングシステム460は図3の第1仮想システム331、第2仮想システム332、第3仮想システム333、コンテナーエンジン350及びホストオペレーティングシステム360と同一である。
使用者はウェブブラウザーを介してシステム400に接続することができる(S410)。この時、使用者に実際にシミュレーション環境を提供するものは第1仮想システム431である。第1仮想システム431は、例えばIDEコンテナーの形態に実装されることができる。ここで、第1仮想システム431の実装のためにIDEコンテナーの形態を取ることができるだけ、従来のIDEコンテナーで提供しない第2仮想システム432との情報共有及び環境共有などは本発明の固有した特徴であることが当業者に明らかに理解可能であろう。
また、図4の第1仮想システム431が支援するシミュレーターは公知のQEMUシミュレーターの形態として提供されることができる。ただ、QEMUシミュレーターは使用者とのインターフェースとシミュレーションのための基本的な設定に対する構成要素で、本発明の構成の一部として含まれるだけ、本発明の第1仮想システム431が有する固有した特徴、例えば第2仮想システム432との情報共有及び環境共有によるプリビルドソフトウェアの性能改善及びソースコードのシミュレーション過程の改善は公知のQEMUシミュレーターのみを用いて達成することができる特徴ではないのは当業者に明らかに理解可能であろう。
また、QEMUシミュレーターはIDEコンテナーという手段を活用して提供することができる。QEMUシミュレーターはIDEコンテナーと必ずしも一緒に含まれなければならないものではなく、QEMUシミュレーターとIDEコンテナーが論理的に分離された状態に実装されることもできるのもやはり当業者に明らかに理解可能であろう。このような実施例によって本発明の思想が限定的に理解されてはいけない。
使用者は前記接続(S410)の後に使用者インターフェース用ツール440を用いてソースコードを作成してアプリケーションを開発することができる(S411)。この時、システム400は使用者インターフェース用ツール440及び第1仮想システム431を生成して使用者に提供することで使用者のアプリケーション開発過程(S411)を支援する。
システム400は開発されたアプリケーション(ソースコード)をターゲットボード用にプリビルドされたプリビルドソフトウェアを提供することができるコンテナー432、433に伝送(共有)することができる(S413a、S413b)。すなわち、同じソースコードを第1ターゲットボードのための第2仮想システム432に伝送することができ(S413a)、第2ターゲットボードのための第3仮想システム433に伝送することができる(S413b)。第1ターゲットボードはA社の製品、第2ターゲットボードはB社の製品であれば、同じソースコードと言ってもターゲットボードのオペレーティングシステムによってバイナリーアウトプットは変わることができるのは当業者に明らかに理解可能であろう。
システム400は第1ターゲットボードのための第1バイナリーアウトプットを第2仮想システム432上で生成し、第2ファイルシステム442に第1バイナリーアウトプットを伝送することができる(S415a)。同様に、システム400は第2ターゲットボードのための第2バイナリーアウトプットを第3仮想システム433上で生成し、第2ファイルシステム442に第2バイナリーアウトプットを伝送することができる(S415b)。
使用者は最終的にビルドの完了したバイナリーアウトプットをそれぞれダウンロードしてそれぞれのターゲットボードで実行することができる(S416a、S416b)。この時、システム400は第1バイナリーアウトプットを第1ターゲットボードで実行することができるように伝送することができ(S416a)、第2バイナリーアウトプットを第2ターゲットボードで実行することができるように伝送することができる(S416b)。図4では段階S416aとS416bを“伝送”という用語で表現したが、これは一実施例に過ぎないもので、本発明の思想がこれに限られて理解されてはいけない。図4で、段階S416aとS416bで例示しようとする事項は次の技術思想の一部を反映して表現される。クラウド又はスタンドアローンシステムで本発明の動作が実行される場合、バイナリーアウトプットは使用者が接続した(S410)コンピューティングシステムを介してダウンロードされなければならず、実行のために使用者が接続した(S410)コンピューティングシステムを介して又は他の記録媒体(例えば、USBメモリ、ポータブルハードディスク、SSDドライブなど)を介してターゲットボードにイメージライトされる過程を必要とする。
本発明によれば、ターゲットボードのそれぞれで実行のための組み込みソフトウェアの最終アウトプットをビルドするのに必要な時間を縮めることができるので、使用者は使用者インターフェース用ツール440及び第1仮想システム431内のシミュレーターで多様なツールチェーンを試して見ることができ、よってツールチェーンを簡便に構築することができる。
本発明によれば、使用者はクラウド開発環境を用いる場合、使用者のコンピューティングシステムのリソースを不必要に使わなくても便利にアプリケーションを開発することができる。
本発明によれば、使用者がチームワークによって組み込みソフトウェアを開発する場合にも、チームメンバー間のビルドファイルを互いに共有する過程でファイル複製ではないリンク共有によって時間及びリソースを節減することができる。
本発明によれば、多数のチームメンバーが同じクラウド開発環境内で開発を進行する場合、全てのチームメンバーの開発環境の構成が同一であるので、他のチームメンバーの全てのビルドファイルが相互間のシミュレーターでシミュレーションすることができ、相互間の環境で実行可能である。また、チームメンバーAによるシミュレーション及び実行の結果とチームメンバーBによるシミュレーション及び実行の結果が同一であるので、エラー発生の確率を減少させ、デバッギングにかかる時間とリソースを節減することができる。
図5は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。図5の方法はシステム300、400内の少なくとも一つ以上のプロセッサによって単独で又は集合的に実行されることができる。
システム300、400はウェブを介して接続可能なクラウド開発環境上で使用者がソースコードを編集することができる使用者インターフェース用ツール340、440を提供する(S510)。
システム300、400は第1仮想システム331、431上で前記使用者インターフェース用ツール340、440を用いて編集された前記ソースコードに対するシミュレーションを実行し(S520)、システム300、400は前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツール340、440を用いて前記使用者にフィードバックする(S530)。
システム300、400はターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム332、432又は第3仮想システム333、433上で提供することができる(S540)。
システム300、400は前記ソースコードを前記ターゲットボードに対して前もって生成したプリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリープリビルドを第2仮想システム332、432又は第3仮想システム333、433上で生成することができる(S550)。
図6は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。図6の方法はシステム300、400内の少なくとも一つ以上のプロセッサによって単独で又は集合的に実行されることができる。
図6に示した段階のうち、段階(S610、S620、S630、S640、及びS650)は図5に示された段階(S510、S520、S530、S540、及びS550)と類似しているので、重複説明は省略する。
システム300、400はターゲットボードのためのプリビルドソフトウェアを第2仮想システム332、432又は第3仮想システム333、433上で生成することができる(S612)。この時、使用者インターフェース用ツール340、440で開発されたソースコードが第2仮想システム332、432及び第3仮想システム333、433に伝送される前、第2仮想システム332、432及び第3仮想システム333、433のそれぞれで第1プリビルドソフトウェア及び第2プリビルドソフトウェアがプリビルドされることができる。この時、プリビルドソフトウェアはターゲットボードで動作するアプリケーションを除き、ターゲットボードと連関したオペレーティングシステムなどの情報を含んで前もって生成される疑似バイナリーイメージ形態の情報を意味し得ることは前述したようである。
段階(S610)はシステム300、400によってウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツール340、440を提供する方式で実装されることもできる。
システム300、400はソースコードに対する第1ファイルシステム341、441を生成し、前記クラウド開発環境上に前記ソースコードに対する第1ファイルシステム341、441を保存することができる(S660)。
システム300、400は少なくとも一つ以上のバイナリーアウトプットに対する第2ファイルシステム342、442を生成し、前記クラウド開発環境上に前記少なくとも一つ以上のバイナリーアウトプットに対する第2ファイルシステム342、442を保存することができる(S670)。
図6には段階(S660)が各ソースコードに対するバイナリーアウトプットが生成される段階(S650)以後に実行されるものとして示されている。ここで、ソースコードが第1ファイルシステム341、441の形態として保存されることは使用者の開発シーケンスがある程度進行して最終アウトプットが得られた場合である。この時には、段階(S660)及び段階(S670)が実質的に同時又は順次実行されることができる。
図6には示されていない本発明の他の実施例によれば、ソースコードに対する第1ファイルシステム341、441の保存はソースコードに対するシミュレーション実行(S620)及びシミュレーション結果を使用者にフィードバックした(S630)直後に行われることもできる。すなわち、シミュレーション過程の中間精算及び検討時点ごとにソースコードに対するバックアップが行われることもできる。
本発明の仮想化されたシステム上で組み込みソフトウェアを自動で生成する技法はクラウドサービスシステム300、400上で実装されることを前提として説明したが、本発明の思想はこれに局限されない。実施例によっては、スタンドアローン(stand−alone)状態のコンピューティングシステムとそのプロセッサによっても仮想化されたシステムを実装し、プリビルドソフトウェア及び組み込みソフトウェアを生成することができる。
本発明の一実施例による組み込みソフトウェアを自動で生成する方法は多様なコンピュータ手段を介して実行可能なプログラム命令の形態に実装されてコンピュータ可読媒体に記録されることができる。前記コンピュータ可読媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記媒体に記録されるプログラム命令は本発明のために特別に設計及び構成されたものであるかコンピュータソフトウェア当業者に知られて使用可能なものであり得る。コンピュータ可読記録媒体の例としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気光媒体(magneto−optical media)、及びROM(Read Only Memory)、RAM、フラッシュメモリなどのような、プログラム命令を保存して実行することができるように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって作られるもののような機械語コードだけではなく、インタープリターなどを介してコンピュータによって実行可能な高級言語コードを含む。前記のようなハードウェア装置は本発明の動作を遂行するために一つ以上のソフトウェアモジュールとして作動するように構成されることができ、その逆もまた同様である。
しかし、本発明が実施例によって制限されるとか限定されるものではない。各図に提示した同じ参照符号は同じ部材を示す。本発明の実施例と図面に例示した長さ、高さ、サイズ、幅などは理解を深めるために誇張して示したものもあり得る。
以上のように、本発明では具体的な構成要素などの特定事項と特定の実施例及び図面に基づいて説明したが、これは本発明のより全般的な理解を深めるために提供したものであるだけ、本発明は前記実施例に限定されるものではなく、本発明が属する分野で通常の知識を有する者であればこのような記載から多様な修正及び変形が可能である。
したがって、本発明の思想は前述した実施例に限られて決定されてはいけなく、後述する特許請求範囲だけではなくこの特許請求範囲と均等乃至等価の変形の全ては本発明の思想範疇に属すると言える。
300、400 クラウドサービスシステム又はクラウドコンピューティングシステム
331、431 第1仮想システム
332、432 第2仮想システム
333、433 第3仮想システム
340、440 使用者インターフェース用ツール
341、441 第1ファイルシステム
342、442 第2ファイルシステム
350、450 コンテナーエンジン
360、460 ホストオペレーティングシステム

Claims (10)

  1. 少なくとも一つのプロセッサを含むコンピューティングシステムによって実行される、仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法であって、
    前記少なくとも一つのプロセッサが、使用者がソースコードを編集することができる使用者インターフェース用ツールを提供する段階;
    前記少なくとも一つのプロセッサが、第1仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックする段階;
    前記少なくとも一つのプロセッサが、ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム上で提供する段階;及び
    前記少なくとも一つのプロセッサが、前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを生成する段階;
    を含み、
    前記第1仮想システムと前記第2仮想システムは同一のホストオペレーティングシステム階層上で実行され、
    前記第1仮想システム上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードに対する活用情報が前記第2仮想システム上で前記プリビルドソフトウェアを生成する過程に共有される、仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
  2. 少なくとも一つのプロセッサを含むコンピューティングシステムによって実行される、仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法であって、
    前記少なくとも一つのプロセッサが、使用者がソースコードを編集することができる使用者インターフェース用ツールを提供する段階;
    前記少なくとも一つのプロセッサが、第1仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックする段階;
    前記少なくとも一つのプロセッサが、ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム上で提供する段階;及び
    前記少なくとも一つのプロセッサが、前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを生成する段階;
    を含み、
    前記第1仮想システムと前記第2仮想システムは同一のホストオペレーティングシステム階層上で実行され、
    前記第2仮想システム上で前記プリビルドソフトウェアを生成する過程で活用された開発環境情報が前記第1仮想システム上で実行されるシミュレーション過程に共有される、仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
  3. 前記使用者インターフェース用ツールを提供する段階は、
    前記少なくとも一つのプロセッサが、ウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツールを提供する、請求項1に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
  4. 前記少なくとも一つのプロセッサが、前記ソースコードに対するファイルシステムを生成し、前記クラウド開発環境上に前記ソースコードに対するファイルシステムを保存する段階をさらに含む、請求項に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
  5. 前記少なくとも一つのプロセッサが、前記バイナリーアウトプットに対するファイルシステムを生成し、前記クラウド開発環境上に前記バイナリーアウトプットに対するファイルシステムを保存する段階をさらに含む、請求項に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
  6. プロセッサを含むコンピューティングシステムであって、
    前記プロセッサは、
    使用者がソースコードを編集することができる使用者インターフェース用ツールを提供し、
    第1仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックし、
    ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム上で提供し、
    前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを生成しており、
    前記プロセッサは前記第1仮想システムと前記第2仮想システムを同じホストオペレーティングシステム階層上で実行し、
    前記プロセッサは前記第1仮想システム上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードに対する活用情報を前記第2仮想システム上で前記プリビルドソフトウェアを生成する過程に共有する、仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
  7. プロセッサを含むコンピューティングシステムであって、
    前記プロセッサは、
    使用者がソースコードを編集することができる使用者インターフェース用ツールを提供し、
    第1仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックし、
    ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第2仮想システム上で提供し、
    前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを生成しており、
    前記プロセッサは前記第1仮想システムと前記第2仮想システムを同じホストオペレーティングシステム階層上で実行し、
    前記プロセッサは前記第2仮想システム上で前記プリビルドソフトウェアを生成する過程で活用された開発環境情報を前記第1仮想システム上で実行されるシミュレーション過程に共有する、仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
  8. 前記プロセッサはウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツールを提供する、請求項に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
  9. 前記プロセッサは前記ソースコードに対するファイルシステムを生成し、前記クラウド開発環境上に前記ソースコードに対するファイルシステムを保存する、請求項に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
  10. 前記プロセッサは前記バイナリーアウトプットに対するファイルシステムを生成し、前記クラウド開発環境上に前記バイナリーアウトプットに対するファイルシステムを保存する、請求項に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
JP2018066786A 2017-12-21 2018-03-30 仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム Active JP6603746B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170177147A KR102054980B1 (ko) 2017-12-21 2017-12-21 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템
KR10-2017-0177147 2017-12-21

Publications (2)

Publication Number Publication Date
JP2019114223A JP2019114223A (ja) 2019-07-11
JP6603746B2 true JP6603746B2 (ja) 2019-11-06

Family

ID=67222709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018066786A Active JP6603746B2 (ja) 2017-12-21 2018-03-30 仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム

Country Status (2)

Country Link
JP (1) JP6603746B2 (ja)
KR (1) KR102054980B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102237877B1 (ko) 2019-12-06 2021-04-09 주식회사 오픈드래프트 실시간 협업지원 지능형 소프트웨어 자동 개발 시스템 및 그 방법
CN112905185B (zh) * 2021-01-25 2023-10-31 浙江大学 一种基于QEMU的嵌入式Linux内核动态分析平台

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110037140A (ko) 2009-10-06 2011-04-13 선문대학교 산학협력단 임베디드 소프트웨어 가상 개발 환경을 제공하는 시스템
KR102335715B1 (ko) * 2015-12-04 2021-12-06 한국전자기술연구원 가상화 기반의 임베디드 하드웨어 개발 및 검증 프레임워크 구조

Also Published As

Publication number Publication date
KR20190075508A (ko) 2019-07-01
JP2019114223A (ja) 2019-07-11
KR102054980B1 (ko) 2019-12-12

Similar Documents

Publication Publication Date Title
EP3518098B1 (en) Cross platform content management and distribution system
JP6217277B2 (ja) ソフトウェア開発方法及びそのためのシステム
WO2007011942A1 (en) System and method for automatic or semi-automatic software integration
Mubeen et al. Provisioning of predictable embedded software in the vehicle industry: The rubus approach
CN100492387C (zh) 基于Keil C51的软件保护开发的方法和系统
CN105100127A (zh) 用于验证在云计算环境中的应用部署拓扑的设备和方法
JP6603746B2 (ja) 仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法及びコンピューティングシステム
CN113946323A (zh) 基于微服务体系的在线开发方法、装置、设备及存储介质
CN109413189B (zh) 一种基于底层转译的电子交易系统
US20170322792A1 (en) Updating of operating system images
Junghanns et al. Building virtual ECUs quickly and economically
JP2004118842A (ja) オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法
KR102007257B1 (ko) 플랫폼 최적화 가이드 정보 제공 시스템 및 그 가이드 제공 방법
US11573787B1 (en) Hot reloading a running application with an unsaved source code change
CN113157329A (zh) 启动应用的方法、系统、服务器和存储介质
US20210141710A1 (en) Development support device
JP2011048605A (ja) プログラム実行装置及びアプリケーションプログラムの実行方法
Lukavsky Building Big Data Pipelines with Apache Beam: Use a single programming model for both batch and stream data processing
Reznikov Creating tailored OS images for embedded systems using Buildroot
Behere et al. Educating embedded systems hackers: a practitioner's perspective
US9830174B2 (en) Dynamic host code generation from architecture description for fast simulation
Starkman The Robot Operating System in Transition: Experiments and Tutorials
KR101127469B1 (ko) 네트워크 기반 로봇의 소프트웨어 개발 시스템 및 방법
Jobanputra Cloud Interface for LiveHD
Wang et al. Synthesizing Device Drivers with Ghost Writer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191011

R150 Certificate of patent or registration of utility model

Ref document number: 6603746

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250