IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 北京図森智途科技有限公司の特許一覧

特開2023-178255ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体
<>
  • 特開-ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体 図1
  • 特開-ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体 図2
  • 特開-ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体 図3
  • 特開-ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体 図4
  • 特開-ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023178255
(43)【公開日】2023-12-14
(54)【発明の名称】ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体
(51)【国際特許分類】
   G06F 11/36 20060101AFI20231207BHJP
   B60W 50/00 20060101ALI20231207BHJP
   G06F 8/20 20180101ALI20231207BHJP
   G01M 17/007 20060101ALI20231207BHJP
【FI】
G06F11/36
B60W50/00
G06F8/20
G01M17/007 B
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023090467
(22)【出願日】2023-05-31
(31)【優先権主張番号】202210624499.8
(32)【優先日】2022-06-02
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.WCDMA
(71)【出願人】
【識別番号】521254764
【氏名又は名称】北京図森智途科技有限公司
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】隋清宇
【テーマコード(参考)】
3D241
5B042
5B376
【Fターム(参考)】
3D241BA62
5B042GB08
5B042HH11
5B042HH38
5B376BA03
5B376BC61
(57)【要約】      (修正有)
【課題】試験リソースが限られた場合で自動運転ソフトウェアを効率的に試験できるソフトウェア開発方法、デバイス及び記憶媒体を提供する。
【解決手段】方法は、発行すべきソフトウェアの組み合わせに含まれるソフトウェア識別子を取得することと、各第1サイクルで、機能試験に合格した複数の候補ソフトウェアからそれぞれのソフトウェア識別子に対応する対象ソフトウェアを選択して、コンピュータデバイスで統合試験を実行するための第1ソフトウェア群を生成することと、各第2サイクルで、統合試験に合格した複数の第1ソフトウェア群から少なくとも1つのソフトウェア群を、コンピュータデバイスで次の第2サイクルの統合試験を実行するための第2ソフトウェア群として選択することと、各第2サイクルで、統合試験に合格した第2ソフトウェア群から少なくとも1つのソフトウェア群を発行すべきソフトウェアの組み合わせとして選択することと、を含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
ソフトウェア開発方法であって、
発行すべきソフトウェアの組み合わせに含まれるソフトウェアのソフトウェア識別子を取得することと、
各第1サイクルで、機能試験に合格した複数の候補ソフトウェアからそれぞれの前記ソフトウェア識別子に対応する対象ソフトウェアを選択して、コンピュータデバイスで統合試験を実行するための第1ソフトウェア群を生成することと、
各第2サイクルで、統合試験に合格した複数の第1ソフトウェア群から少なくとも1つのソフトウェア群を、前記コンピュータデバイスで次の第2サイクルの統合試験を実行するための第2ソフトウェア群として選択することと、
各第2サイクルで、統合試験に合格した第2ソフトウェア群から少なくとも1つのソフトウェア群を、前記発行すべきソフトウェアの組み合わせとして選択することとを含む、ソフトウェア開発方法。
【請求項2】
請求項1に記載の方法において、前記機能試験は、ソフトウェアが正常であるか否かを試験するためのものであり、前記統合試験は、ソフトウェア群が正常であるか否かを試験するためのものである、方法。
【請求項3】
請求項2に記載の方法において、各第2サイクルで、統合試験に合格した第2ソフトウェア群から少なくとも1つのソフトウェア群を、前記発行すべきソフトウェアの組み合わせとして選択することは、
各第2サイクルで、統合試験に合格した第2ソフトウェア群を、前記コンピュータデバイスで次の第2サイクルの統合試験を実行するための第3ソフトウェア群とすることと、
複数の第2サイクルで統合試験に合格した複数の第3ソフトウェア群から、統合試験の結果が所定指標を満たすソフトウェア群を、前記発行すべきソフトウェアの組み合わせとして選択することとを含む、方法。
【請求項4】
請求項3に記載の方法において、
第1ソフトウェア群、第2ソフトウェア群、第3ソフトウェア群の少なくとも1つから統合試験に合格しなかった問題ソフトウェア群を特定することと、
各問題ソフトウェア群の問題ソフトウェアと正常ソフトウェアを特定することと、
各問題ソフトウェアのコードを更新することと、
前記問題ソフトウェアが更新された後のコードと前記問題ソフトウェア群の正常ソフトウェアとに基づいて、前記コンピューティングデバイスで統合試験を実行するための第4ソフトウェア群を生成することと、
前記第4ソフトウェア群が前記コンピューティングデバイスで前記統合試験に合格したことに応答して、前記第4ソフトウェア群に基づいて、前記問題ソフトウェア群を更新することと、を更に含む、方法。
【請求項5】
請求項3に記載の方法において、
ソフトウェアの組み合わせの中の試験すべきソフトウェアの何れかを、現サイクルの第3ソフトウェア群に更新して、前記コンピューティングデバイスで統合試験を実行するための第5ソフトウェア群を取得することと、
前記第5ソフトウェア群が前記コンピューティングデバイスで前記統合試験に合格したことに応答して、前記試験すべきソフトウェアが前記機能試験に合格することを確定することと、を更に含む、方法。
【請求項6】
請求項5に記載の方法において、試験すべきソフトウェアを現サイクルの第3ソフトウェア群に更新する方法は、
前記現サイクルの第3ソフトウェア群に前記試験すべきソフトウェアの旧バージョンソフトウェアが含まれないことに応答して、前記第3ソフトウェア群に前記試験すべきソフトウェアを追加することと、
前記現サイクルの第3ソフトウェア群に前記試験すべきソフトウェアの旧バージョンソフトウェアが含まれることに応答して、前記旧バージョンソフトウェアを前記試験すべきソフトウェアに置き換えることから選ばれる少なくとも1つを含む、方法。
【請求項7】
請求項5に記載の方法において、
前記コンピューティングデバイスは複数の車両に設置される複数のコンピューティングデバイスを含み、
各第2サイクルにおける複数の第1~第5ソフトウェア群が試験すべきソフトウェア群とし、それぞれ前記複数の車両の複数のコンピューティングデバイスで実行する、方法。
【請求項8】
請求項7に記載の方法において、前記車両が自動運転車両であり、前記ソフトウェアの組み合わせにおけるソフトウェアが自動運転ソフトウェアであり、前記所定指標が自動運転の安全安定性指標であり、且つ1キロメートル当たりの手動テイクオーバー数、単位時間当たりのシステムエラー数、リソース使用率が高い時間の割合、システム平均リソース使用率から選ばれる少なくとも1つを含む、方法。
【請求項9】
請求項7に記載の方法において、
所定期間内の前記複数の車両の複数の試験プロセスを決定することと、
試験すべきソフトウェア群と前記車両及び前記試験プロセスとを関連付け、各車両の試験プロセスにおいて、関連付けられたソフトウェア群を試験すること、を更に含む、方法。
【請求項10】
請求項9に記載の方法において、前記試験プロセスは往路と復路を含み、前記往路と復路は異なるソフトウェア群を試験するために使われ、又は前記往路と復路は同じソフトウェア群を試験するために使われる、方法。
【請求項11】
請求項10に記載の方法において、各試験すべきソフトウェア群に関連付けられた車両は、前記試験すべきソフトウェア群の試験環境要件を満たすことができる、方法。
【請求項12】
請求項1に記載の方法において、前記ソフトウェアには、コンテナファイル、バイナリソフトウェアパッケージ、及びファイル名付きの圧縮パッケージから選ばれる少なくとも1つが含まれる、方法。
【請求項13】
請求項1に記載の方法において、
前記ソフトウェアには、正式版ソフトウェア及びベータ版ソフトウェアから選ばれる少なくとも1つが含まれ、
前記ソフトウェアに正式版ソフトウェアがある場合、前記ソフトウェアの最新バージョンが前記ソフトウェアの正式版であり、
前記ソフトウェアにベータ版ソフトウェアしかない場合、前記ソフトウェアの最新バージョンが前記ソフトウェアの最新ベータ版である、方法。
【請求項14】
請求項1に記載の方法において、第1ソフトウェア群、第2ソフトウェア群、第3ソフトウェア群の各タイプのソフトウェア群には対応するソフトウェア群ラベルがあり、各ソフトウェア群には対応するソフトウェア群識別子があり、選択されたソフトウェア群には、統合試験に合格し、且つ最新バージョンのソフトウェア群が含まれる、方法。
【請求項15】
請求項14に記載の方法において、前記ソフトウェア群ラベルは、候補バージョン、安定前バージョン、安定バージョン、及び発行前バージョンから選ばれる少なくとも1つを含み、前記第1ソフトウェア群は候補バージョンであり、前記第2ソフトウェア群は安定前バージョンであり、前記第3ソフトウェア群は安定バージョンである、方法。
【請求項16】
コンピューティングデバイスであって、
プロセッサと、メモリと、メモリに記憶されプロセッサで実行可能なコンピュータプログラムとを含み、
そのうち、前記プロセッサが前記コンピュータプログラムを実行すると、請求項1に記載の方法を実行する、
コンピューティングデバイス。
【請求項17】
コンピュータプログラムが記憶されており、前記コンピュータプログラムがプロセッサにより実行されると、請求項1に記載の方法を実現させる、
コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ技術分野に関し、特に、ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体に関する。
【背景技術】
【0002】
自動運転ソフトウェアの試験は、従来のソフトウェアの試験と大きく異なり、自動運転ソフトウェアの有効性を保証するために、長時間の実車の継続試験が必要である。一方、車両、特に自動運転トラックは、高額な製造コスト、安全担当者及び試験者のコスト、並びに法規制などに関する制約のために、サーバクラスタのように容易に利用可能な資源ではない。そのため、試験リソースが非常に限られている状況で、如何に試験リソースを有効に活用して自動運転ソフトウェアの開発と試験を実現するかが非常に重要な課題となっている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本願は、ソフトウェア開発方法、装置、コンピューティングデバイス及び記憶媒体を提供し、試験リソースが限られた場合で自動運転ソフトウェアを効率的に試験できない問題を解決するためのものである。
【課題を解決するための手段】
【0004】
本願の実施例の1つの態様は、ソフトウェア開発方法(つまりソフトウェア発行方法)を提供し、発行すべきソフトウェアの組み合わせに含まれるソフトウェア識別子を取得することと、各第1サイクルで、対応サイクルで機能試験に合格した複数のソフトウェアからそれぞれの上記ソフトウェア識別子に対応する対象ソフトウェアを選択して、コンピュータデバイスで統合試験を実行するための第1ソフトウェア群を生成することと、各第2サイクルで、対応サイクルで統合試験に合格した複数の第1ソフトウェア群から少なくとも1つのソフトウェア群を、上記コンピュータデバイスで次の第2サイクルの統合試験を実行するための第2ソフトウェア群として選択することと、各第2サイクルで、対応サイクルで統合試験に合格した第2ソフトウェア群を前記発行すべきソフトウェアの組み合わせとする、又は統合試験に合格した第2ソフトウェア群から少なくとも1つのソフトウェア群を発行すべきソフトウェアの組み合わせとして選択することとを含む。
【0005】
本願の実施例のもう1つの態様は、1つ又は複数のプロセッサと、1つ又は複数のプログラムが記憶されているメモリであって、上記1つ又は複数のプログラムが上記1つ又は複数のプロセッサにより実行されると、上記1つ又は複数のプロセッサに本願によるソフトウェア開発方法を実現させるメモリと、を含むコンピューティングデバイスを提供する。
【0006】
本願の実施例のもう1つの態様は、プログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、上記プログラムがプロセッサにより実行されると、本願によるソフトウェア開発方法を実現させるコンピュータ読み取り可能な記憶媒体を提供する。
【0007】
本願の技術的解決手段によると、各第1サイクルにおいて機能試験に合格したソフトウェアを確定し、発行すべきソフトウェア群のソフトウェア識別子により第1ソフトウェア群を生成することで、連続する複数の第1サイクルで複数の第1ソフトウェア群を生成することができる。各第1ソフトウェア群はコンピューティングデバイスで統合試験することができるので、各第2サイクルで複数の第1ソフトウェア群が統合試験に参加することがあり、統合試験に合格した特定のソフトウェア群を第2ソフトウェア群として選択し、当該第2ソフトウェア群は、次の第2サイクルで統合試験を行う。各第2サイクルが終了後、統合試験に合格した第2ソフトウェア群を、発行すべきソフトウェア群として選択することができる。これにより、車両など試験リソースが限られた場合でも効率的で高速なソフトウェアバージョンの反復更新を実現できる。
【図面の簡単な説明】
【0008】
本発明の実施例又は従来技術における技術的解決手段をより明らかに説明するために、以下、実施例又は従来技術の記述に使用される図面を簡単に紹介するが、無論、当業者にとっては、創造的な工夫せずに、これらの図面に基づいて他の図面を得ることもできる。
図1】本願の一実施例による車両100の模式図を示す。
図2】本願の一実施例によるソフトウェア開発方法200のフローチャートを示す。
図3】本願の一実施例によるソフトウェア開発方法300のフローチャートを示す。
図4】本願の一実施例によるソフトウェア開発方法の模式図を示す。
図5】本願の一実施例によるコンピューティングデバイス500の構造図を示す。
【発明を実施するための形態】
【0009】
以下、図面を参照して、本願の実施例における技術的解決手段を明確、完全に記述するが、明らかに、記述される実施例は本発明の一部の実施例にすぎず、全ての実施例ではない。本明細書における実施例に基づいて、当業者は、種々の変更及び変形を行うことができ、同等な方法で変形されて得られた全ての技術的解決手段は本発明の保護範囲に属する。
【0010】
本願の実施例の技術的解決手段を明確に記述しやすくするために、本願の実施例において、「第1」、「第2」などの文言を採用して機能又は作用が実質的に同一である同一項目又は類似項目を区別したが、当業者であれば、「第1」、「第2」などの文言は数及び実行順序を限定するものではないことを理解できる。
【0011】
本明細書における「及び/又は」という用語は、関連対象の関連関係を記述するものに過ぎず、3種類の関係が存在し得ることを示し、例えば、A及び/又はBは、Aが単独で存在する場合と、A及びBが同時に存在する場合と、Bが単独で存在する場合との3つの状況を示すことができる。また、本明細書における「/」という文字は、一般的に、前後の関連対象が「又は」の関係であることを示す。
【0012】
図1は、本願の様々な技術を実現可能な車両100の模式図である。車両100は、セダン型自動車、トラック、自動二輪車、バス、船、飛行機、ヘリコプター、芝刈り機、ショベル、スノーモービル、航空機、レクリエーション用車両、遊園地車両、農場装置、建築装置、路面電車、ゴルフカート、列車、トロリーバス、又は他の車両であってよい。車両100は、完全又は部分的に自動運転モードで動作することができる。車両100は、自動運転モードでそれ自体を制御することができ、例えば、車両100は、車両の現在状態及び車両が位置する環境の現在状態を決定し、当該環境における少なくとも1つの他の車両の予測挙動を決定し、当該少なくとも1つの他の車両がこの予測挙動を実行する可能性に対応する信頼レベルを決定し、決定された情報に基づいて車両100自体を制御することができる。自動運転モードにある場合、車両100は、人と対話することなく動作することができる。
【0013】
車両100は、駆動システム142、センサシステム144、制御システム146、ユーザインタフェースシステム148、制御コンピュータシステム150及び通信システム152など、各種の車両システムを含むことができる。車両100は、より多いか又はより少ないシステムを含んでもよく、各システムは、複数のユニットを含むことができる。更に、車両100の各システムとユニットとは、互いに接続することができる。例えば、制御コンピュータシステム150は、システム142~148及び152のうちの1つ又は複数とデータ通信を行うことができる。それにより、車両100の1つ又は複数の記述される機能は、付加的な機能性部材又は実体部材として分けられるか、又は、数がより少ない機能性部材又は実体部材として組み合わせられることが可能である。更なる例において、付加的な機能性部材又は実体部材は、図1に示す例に追加されてもよい。
【0014】
駆動システム142は、車両100に運動エネルギーを提供する複数の操作可能な部材(又はユニット)を含むことができる。一実施例において、駆動システム142は、エンジン又は電動機、車輪、変速機、電子システム及び動力(又は動力源)を含むことができる。エンジン又は電動機は、内燃機関、電気モータ、蒸気機関、燃料電池エンジン、プロパンエンジン又は他の形態のエンジン若しくは電動機の任意の組み合わせであってもよい。いくつかの実施例において、エンジンは、動力源を機械的エネルギーに変換することができる。いくつかの実施例において、駆動システム142は、様々なエンジン又は電動機を含むことができる。例えば、ハイブリッド車両は、ガソリンエンジン及び電動機を含んでもよく、それ以外の場合を含んでもよい。
【0015】
車両100の車輪は、標準車輪であってもよい。車両100の車輪は、一輪、二輪、三輪、又はセダン型自動車やトラックの四輪などの四輪形態を含む様々な形態の車輪であってもよい。六輪又はより多くの車輪など、他の数の車輪であってもよい。車両100の1つ又は複数の車輪は、他の車輪の回転方向と異なるように操作されることができる。車輪は、変速機に固定接続される少なくとも1つ車輪であってもよい。車輪は、金属とゴムの組み合わせ、又は他の物質の組み合わせを含むことができる。変速機は、エンジンの機械的動力を車輪に伝送するように操作可能なユニットを含むことができる。この目的のために、変速機は、歯車箱、クラッチ、差動歯車及び伝動軸を含むことができる。変速機は、他のユニットを含んでもよい。伝動軸は、車輪に適合する1つ又は複数の輪軸を含むことができる。電子システムは、車両100の電子信号を伝送又は制御するためのユニットを含むことができる。これらの電子信号は、車両100における複数のランプ、複数のサーボ機構、複数の電動機及び他の電子駆動又は制御装置を起動するために用いることができる。動力源は、全体的又は部分的にエンジン又は電動機に動力を提供するエネルギー源とすることができる。即ち、エンジン又は電動機は、動力源を機械的エネルギーに変換することができる。例示的に、動力源は、ガソリン、石油、石油系燃料、プロパン、他の圧縮ガス燃料、エタノール、燃料電池、ソーラーパネル、電池及び他の電気エネルギー源を含んでもよい。動力源は、燃料タンク、電池、コンデンサ、又はフライホイールの任意の組み合わせを付加的又は選択的に含むことができる。動力源は、車両100の他のシステムにエネルギーを提供することもできる。
【0016】
センサシステム144は、車両100の環境及び条件の情報を感知するための複数のセンサを含むことができる。例えば、センサシステム144は、慣性測定ユニット(IMU)、全地球測位システム(GPS)トランシーバ、レーダ(RADAR)ユニット、レーザ距離計/LIDARユニット(又は他の距離測定装置)、音響センサ、及びカメラ又は画像取込装置を含んでもよい。センサシステム144は、車両100を監視するための複数のセンサ(例えば、酸素(O)モニタ、燃料計センサ、エンジン油圧センサなど)を含むことができる。センサシステム144には他のセンサを更に配置してもよい。センサシステム144に含まれる1つ又は複数のセンサは、1つ又は複数のセンサの位置、方向、又はその両方を更新するために、単独で駆動されるか又は一括で駆動されることができる。
【0017】
いくつかの実施例において、各センサはハードウェアトリガ又はソフトウェアトリガによってデータを収集し、異なるセンサは異なるトリガ周波数、即ち、異なるデータ収集周波数を有し、それに応じて、異なるデータ収集サイクルを有する。ハードウェアトリガについて、トリガ源はNovatelから送信されたパルス毎秒信号をトリガ源信号とし、異なるセンサに必要なトリガ周波数に基づいて調整し、トリガ信号を生成し対応するセンサに送信して、対応するセンサのデータ収集をトリガする。任意選択的に、カメラのトリガ周波数は20HZであり、LIDARのトリガ周波数は1HZ又は10HZであり、IMUのトリガ周波数は100HZであり、無論、これらに限定されない。
【0018】
IMUは、慣性加速に基づいて車両100の位置変化及び方向変化を感知するために、センサの組み合わせ(例えば、加速器及びジャイロ)を含むことができる。GPSトランシーバは、車両100の地理的位置を推定するための任意のセンサであってもよい。この目的のために、GPSトランシーバは、地球に対する車両100の位置情報を提供するために、受信機/送信機を含むことができる。なお、GPSは、全地球航法衛星システムの一例であるため、いくつかの実施例において、GPSトランシーバは、北斗衛星ナビゲーションシステムトランシーバ又はガリレオ衛星ナビゲーションシステムトランシーバに置き換えられてもよい。レーダユニットは、無線信号を用いて車両100が位置する環境における対象を感知することができる。いくつかの実施例において、レーダユニットは、対象を感知するほか、車両100に接近する物体の速度及び前進方向を感知するために用いることもできる。レーザ距離計又はLIDARユニット(又は他の距離測定装置)は、レーザを用いて車両100が位置する環境における物体を感知する任意のセンサであってもよい。一実施例において、レーザ距離計/LIDARユニットは、レーザ光源、レーザスキャナー及び感知器を含むことができる。レーザ距離計/LIDARユニットは、連続(例えば、ヘテロダイン検出を使用する)又は不連続の検出モードで動作するために用いられる。カメラは、車両100が位置する環境の複数の画像を取込むための装置を含むことができる。カメラは、静止画像カメラ又は動的ビデオカメラであってもよい。
【0019】
制御システム146は、車両100及びその部材(又はユニット)に対する操作を制御するために用いられる。それに応じて、制御システム146は、ステアリングユニット、動力制御ユニット、制動ユニット及びナビゲーションユニットなど、様々なユニットを含むことができる。
【0020】
ステアリングユニットは、車両100の前進方向を調整する機械の組み合わせであってもよい。動力制御ユニット(例えば、アクセルであってもよい)は、例えば、エンジンの運転速度を制御し、更に車両100の速度を制御するために用いることができる。制動ユニットは、車両100を減速させるための機械の組み合わせを含むことができる。制動ユニットは、標準方式で摩擦力を利用して車両を減速させることができる。他の実施例において、制動ユニットは、車輪の運動エネルギーを電流に変換することができる。制動ユニットは、他の形態を採用してもよい。ナビゲーションユニットは、車両100のために運転経路又はルートを決定する任意のシステムであってもよい。ナビゲーションユニットは、車両100の進行中に運転経路を動的に更新することもできる。制御システム146は、示されていないか又は説明されていない他の部材(又はユニット)を付加的又は選択的に含むこともできる。
【0021】
ユーザインタフェースシステム148は、車両100と外部センサ、他の車両、他のコンピュータシステム及び/又は車両100のユーザとの間のインタラクションを可能にするために用いることができる。例えば、ユーザインタフェースシステム148は、標準的な視覚表示装置(例えば、プラズマディスプレイ、液晶ディスプレイ(LCD)、タッチスクリーンディスプレイ、ヘッドマウントディスプレイ、又は他の類似するディスプレイ)、スピーカ又は他のオーディオ出力装置、マイクロフォン又は他のオーディオ入力装置を含んでもよい。例えば、ユーザインタフェースシステム148は、ナビゲーションインタフェース及び車両100の内部環境(例えば、温度、ファンなど)を制御するインタフェースを更に含んでもよい。
【0022】
通信システム152は、車両100のために1つ又は複数の機器又は周辺の他の車両と通信する方式を提供することができる。例示的な一実施例において、通信システム152は、直接、又は通信ネットワークを介して1つ又は複数の機器と通信してもよい。通信システム152は、例えば、無線通信システムであってよい。例えば、通信システムは、3Gセルラ通信(例えば、CDMA、EVDO、GSM/GPRS)又は4Gセルラ通信(例えば、WiMAX又はLTE)を利用してもよく、5Gセルラ通信を利用してもよい。任意選択的に、通信システムは、無線ローカルエリアネットワーク(WLAN)と通信することができる(例えば、WIFI(登録商標)を利用する)。いくつかの実施例において、通信システム152は、例えば、赤外線、ブルートゥース(登録商標)、又はZIGBEEを利用して1つ又は複数の機器又は周辺の他の車両と直接通信することができる。各種の車載通信システムなどの他の無線プロトコルも、本願の開示範囲内にある。例えば、通信システムは、車両及び/又は路側局と公的又は私的データ通信を行う1つ又は複数の専用狭域通信(DSRC)装置、V2V(Vehicle to Vehicle)装置又はV2X(Vehicle to Everything)装置を含んでもよい。
【0023】
制御コンピュータシステム150は車両100の一部又は全部の機能を制御することができる。制御コンピュータシステム150における自動運転制御ユニットは、車両100が位置する環境における潜在的な障害の識別、評価、及び回避又は乗り越えに用いることができる。通常、自動運転制御ユニットは、運転者のない場合に車両100を制御し、又は運転者が車両を制御するために補助を提供するために用いることができる。いくつかの実施例において、自動運転制御ユニットは、GPSトランシーバからのデータ、レーダデータ、LIDARデータ、カメラデータ及び他の車両システムからのデータを組み合わせ、車両100の走行経路又は軌跡を決定するために用いられる。自動運転制御ユニットは、車両100が自動運転モードで運転可能になるようにアクティブにされることができる。
【0024】
制御コンピュータシステム150は、少なくとも1つのプロセッサ(それが少なくとも1つのマイクロプロセッサを含むことができる)を含むことができ、プロセッサは、不揮発性コンピュータ読み取り可能な媒体(例えば、データ記憶装置又はメモリ)に記憶される処理命令(即ち、機械実行可能な命令)を実行する。メモリに少なくとも1つの機械実行可能な命令が記憶されており、プロセッサは、少なくとも1つの機械実行可能な命令を実行することで、地図エンジン、測位モジュール、感知モジュール、ナビゲーション又は経路モジュール及び自動制御モジュールなどの機能を実現する。地図エンジン及び測位モジュールは、地図情報及び測位情報を提供するために用いられる。感知モジュールは、センサシステムにより取得された情報及び地図エンジンにより提供された地図情報に基づいて車両が位置する環境における物事を感知するために用いられる。ナビゲーション又は経路モジュールは、地図エンジン、測位モジュール及び感知モジュールの処理結果に基づいて車両に走行経路を計画するために用いられる。自動制御モジュールは、ナビゲーション又は経路モジュールなどのモジュールからの意思決定情報の入力を解析して車両制御システムに対する制御命令の出力に変換し、且つ車載ネットワーク(例えば、CANバス、ローカル相互接続ネットワーク、メディア指向システム伝送などの方式により実現された車内電子ネットワークシステム)を介して制御命令を車両制御システムにおける対応する部材に送信し、車両に対する自動制御を実現し、自動制御モジュールは、車載ネットワークを介して車両における各部材の情報を取得することもできる。
【0025】
制御コンピュータシステム150は、分散して車両100の部材又はシステムを制御する複数のコンピューティング装置であってもよい。いくつかの実施例において、メモリは、プロセッサによって実行されて車両100の様々な機能を実現させる処理命令(例えば、プログラム論理)を含むことができる。一実施例において、制御コンピュータシステム150は、システム142、144、146、148及び/又は152とデータ通信を行うことができる。制御コンピュータシステムにおけるインタフェースは、制御コンピュータシステム150とシステム142、144、146、148及び152との間のデータ通信を促進するために用いられる。
【0026】
メモリは、データ送信用の命令、データ受信用の命令、インタラクション用の命令、又は駆動システム142、センサシステム144、又は制御システム146若しくはユーザインタフェースシステム148を制御するための命令を含む、他の命令を更に含むことができる。
【0027】
処理命令を記憶するほか、メモリは、画像処理パラメータ、道路地図及び経路情報など、様々な情報又はデータを記憶することができる。車両100が自動方式、半自動方式及び/又は手動モードで動作する期間に、これらの情報は、車両100及び制御コンピュータシステム150に使用されることができる。
【0028】
自動運転制御ユニットがプロセッサ及びメモリから分離して示されているが、いくつかの実施形態において、自動運転制御ユニットの一部又は全部の機能は、1つ又は複数のメモリ(又はデータ記憶装置)に設定されるプログラムコード命令により実現し、1つ又は複数のプロセッサにより実行することができ、また、自動運転制御ユニットは、いくつかの場合に同様のプロセッサ及び/又はメモリ(又はデータ記憶装置)を利用して実現できることを理解されたいであろう。いくつかの実施形態において、自動運転制御ユニットは、様々な特定用途向け回路論理、様々なプロセッサ、様々なフィールドプログラマブルゲートアレイ(FPGA)、様々な特定用途向け集積回路(ASIC)、様々なリアルタイムコントローラ及びハードウェアを少なくとも部分的に使用して実現できる。
【0029】
制御コンピュータシステム150は、様々な車両システム(例えば、駆動システム142、センサシステム144及び制御システム146)から受信した入力、又はユーザインタフェースシステム148から受信した入力に基づいて、車両100の機能を制御することができる。例えば、制御コンピュータシステム150は、センサシステム144により検出された障害物を回避するように、制御システム146からの入力を用いて、ステアリングユニットを制御することができる。一実施例において、制御コンピュータシステム150は、車両100及びそのシステムの複数の面を制御するために用いることができる。
【0030】
図1には車両100に集積された様々な部材(又はユニット)が示されているが、これらの部材(又はユニット)のうちの1つ又は複数は、車両100に搭載されるか又は車両100に単独で関連付けられてもよい。例えば、制御コンピュータシステムは、部分的又は全体的に車両100から独立して存在してもよい。それにより、車両100は、分離又は集積したデバイスユニットの形態で存在することができる。車両105を構成するデバイスユニット同士は、有線通信又は無線通信の方式で相互通信を実現することができる。いくつかの実施例において、付加的な部材又はユニットを各システムに追加するか、又はシステムから1つ以上の部材又はユニット(例えば、図1に示すLiDAR又はレーダ)を取り外すことができる。
【0031】
本願の主な目的の1つは、ソフトウェアの開発と試験を行うことである。さまざまな開発者がさまざまなソフトウェアを開発でき、これらソフトウェアには、コンテナファイル、バイナリソフトウェアパッケージ、ファイル名付きの圧縮パッケージから選ばれる少なくとも1つが含まれる。ビルダー(Builder)が複数のソフトウェアをソフトウェアの組み合わせ(略してソフトウェア群)にパッケージングした後、当該ソフトウェア群について試験を行う。そのうち、ソフトウェアが自動運転ソフトウェアであり得、相応のソフトウェア群が自動運転ソフトウェア群であり得る。理解すべきなのは、自動運転ソフトウェアは従来のPC端末及び携帯端末のソフトウェアとは異なり、自動運転ソフトウェアは、実車操作中に試験する必要がある。自動運転車両の車両リソースが限られ、試験道路区間が制限され、試験走行距離が制限されている場合、効率的な自動運転ソフトウェアの反復更新案が必要である。
【0032】
図2は本願の実施例によるソフトウェア開発方法200のフローチャートである。図2に示すように、当該方法200は、
発行すべきソフトウェアの組み合わせに含まれる各ソフトウェアのソフトウェア識別子を取得するステップS202と、
各第1サイクルで、対応サイクルで機能試験に合格した複数の候補ソフトウェアからそれぞれのソフトウェア識別子に対応する対象ソフトウェアを選択して、コンピュータデバイスで統合試験を実行するための第1ソフトウェア群を生成するステップS204と、
各第2サイクルで、対応サイクルで統合試験に合格した複数の第1ソフトウェア群から少なくとも1つのソフトウェア群を、コンピュータデバイスで次の第2サイクルの統合試験を実行するための第2ソフトウェア群として選択するステップS206と、
各第2サイクルで、対応サイクルで統合試験に合格した第2ソフトウェア群から少なくとも1つのソフトウェア群を、発行すべきソフトウェアの組み合わせとして選択するステップS208とを含む。
【0033】
一実施例によると、ステップS202において、第1試験開発の前、開発者の需要により、最初バージョンの発行すべきソフトウェアの組み合わせに必要とされるソフトウェア識別子を初歩的に決定することができる。その後、ソフトウェアの組み合わせの反復プロセスで、再び開発者の試験需要により、現バージョンのソフトウェアの組み合わせに追加する必要があるソフトウェア及び追加する必要があるソフトウェアのソフトウェア識別子を確定し、これにより次の発行すべきソフトウェアの組み合わせに含まれるソフトウェア識別子を取得する。
【0034】
一実施例によると、ステップS202において、候補ソフトウェアには、ソフトウェアファイルの種類から、コンテナファイル、バイナリソフトウェアパッケージ、ファイル名付きの圧縮パッケージから選ばれる少なくとも1つが含まれ、ソフトウェア属性から、正式版ソフトウェア及びベータ版ソフトウェアから選ばれる少なくとも1つが含まれ、候補ソフトウェアに正式版ソフトウェアがある場合、最新ソフトウェアが候補ソフトウェアの正式版であり、候補ソフトウェアにベータ版ソフトウェアしかない場合、最新ソフトウェアが候補ソフトウェアの最新ベータ版である。各ソフトウェアはバージョン番号を持つことができ、バージョン番号が新しいほど、ソフトウェアは新しいことを示す。ベータ版ソフトウェアと正式版ソフトウェアにはそれぞれ対応するソフトウェアラベルがあり、例えば、ベータ版ソフトウェアのバージョン番号に特殊文字などがあり、それでソフトウェアのバージョン番号により、正式版ソフトウェアと最新のベータ版ソフトウェアを選択できる。車で実行される自動運転ソフトウェアは、1つ又は複数のDockerイメージ、バイナリソフトウェアパッケージ管理ツールの下のソフトウェアパッケージ、ファイル名付きの圧縮パッケージ、又は何れかの類似の発行方法とそれらの任意の組み合わせであり得、何れかの方法で2組の異なる自動運転ソフトウェアを区別できればよい。
【0035】
例えば、試験の需要に応じて、ソフトウェア1、ソフトウェア2、ソフトウェア3、ソフトウェア4に基づいてソフトウェアの組み合わせを生成して試験を行う必要があり、ソフトウェア1とソフトウェア2はコンテナファイルであり得、ソフトウェア3はバイナリソフトウェアパッケージであり得、ソフトウェア4はファイル名付きの圧縮パッケージであり得、任意の同一又は異なる種類の複数のソフトウェアはソフトウェアの組み合わせを生成することができ、各ソフトウェアには、異なるソフトウェアを区別することができる独自のソフトウェア識別子、ソフトウェア名を有すればよい。ソフトウェア1とソフトウェア2が正式版ソフトウェアを既に有している場合、対応する正式版ソフトウェアを選択し、ソフトウェア1とソフトウェア2がそれぞれ複数の正式版を有している場合、それぞれ最新の正式版を選択する。ソフトウェア3とソフトウェア4がベータ版ソフトウェアしかない場合、それぞれ最新のベータ版を選択する。
【0036】
一実施例によると、ソフトウェアの組み合わせを生成するためにソフトウェアを選択するたびに、その前、機能試験に合格したソフトウェアを候補ソフトウェアとして決定し、つまりソフトウェアの組み合わせを生成するために使用されるソフトウェアが全て機能試験に合格している。機能試験は、ソフトウェアが正常であるか否かを試験するために使用され、通常、当該試験すべきソフトウェアを現在の安定バージョンのソフトウェアの組み合わせに更新し、更新後のソフトウェアがコンピューティングデバイスにおける統合試験に合格する限り、当該試験すべきソフトウェアが機能試験に合格したことを示す。統合試験は、ソフトウェアの組み合わせが正常であるか否かを試験するものであり、安定バージョンのソフトウェアの組み合わせとは、そのうちのソフトウェアが正常であり、ソフトウェア間の協調も正常であることを示すので、ソフトウェアの更新前後の試験結果を比較することにより、更新されたソフトウェアが正常であるか否かを判定することができる。
【0037】
機能試験及び統合試験は、走行中の自動運転車両で実行され、すなわち、生成されたソフトウェアの組み合わせを、自動運転車両のコンピューティングデバイスに送信し、当該ソフトウェアの組み合わせが様々な測位アルゴリズムソフトウェア、感知アルゴリズムソフトウェア、意思決定アルゴリズムソフトウェア、制御アルゴリズムソフトウェア、ホストコンピュータソフトウェア、スレーブコンピューターソフトウェア、スイッチソフトウェアなどの様々なタイプのソフトウェアを含むことができる。そして、自動運転車両の走行中に、試験すべきソフトウェアの組み合わせを実行し、所定指標に基づいて試験結果が正常か否かを判定し、試験の合否を判定する。試験合格はソフトウェアの組み合わせが正常であり、ソフトウェアの組み合わせが正常であることは含まれる各ソフトウェアも正常であることを示す。所定指標は、自動運転の安全安定性指標であり、当業者は必要に応じて自ら設定でき、例えば、自動運転車両の1キロメートル当たりのテイクオーバ数、隣接する2回のテイクオーバの平均時間間隔、単位時間(例えば、1時間当たり)のシステムエラー数、リソース使用率が高い時間の割合、システム平均リソース使用率、特定の道路環境での試験指標から選ばれる少なくとも1つである。
【0038】
機能試験及び統合試験は、仮想シミュレーションプラットフォーム上で行うことができ、即ち、試験すべきソフトウェアの組み合わせを仮想シミュレーションプラットフォームに送信し、仮想シミュレーションプラットフォームにおける車両が走行中に、当該ソフトウェアの組み合わせを実行することで、ソフトウェアの組み合わせの試験結果を得ることができる。
【0039】
なお、ソフトウェア識別子に対応する全てのソフトウェアバージョンが機能試験に合格しないことがあり、その場合、対応するソフトウェアの組み合わせを生成するために、当該ソフトウェアを一旦飛ばし、又は、最新バージョン若しくは今まで機能試験の結果が最も良いバージョンのソフトウェアを一時的なソフトウェアとして選択してもよい。当該一時的なソフトウェアは一時的なラベル(例えばソフトウェア名に特殊文字が付いている)を持ち、当該ソフトウェアが未だに機能試験に合格していないことを示す。
【0040】
一実施例によると、各第1サイクルは例えば、半日毎、m時間毎、n日毎などを含む。第2サイクルの期間は、第1サイクルの期間よりも長く、更に、各第2サイクルの何れも、各第1サイクルよりも長く、又は少なくとも1つの第2サイクルは、少なくとも1つの第1サイクルよりも長い。第2サイクルは例えば、p日毎、q週毎など(m、n、p、qは何れも1以上の整数である)であり、もちろんこれらに限定されるものではない。第1サイクル毎に1つの第1ソフトウェア群を生成するのは、各ソフトウェアが反復更新を繰り返す過程で、各ソフトウェアが複数のバージョンを順次経る可能性があるため、各第1サイクル毎に各ソフトウェアの最新バージョンを選択して新たな第1ソフトウェア群を生成するからである。当業者が必要に応じて第1サイクルと第2サイクルの期間を自ら設定することができ、本願は、これに対して限定しない。各第1サイクルとは、各第1サイクル(例えば毎日)であり、各第2サイクルとは、各第2サイクル(例えば2週間毎)である。
【0041】
例えば、第1サイクルを毎日、第2サイクルを2週間毎とすると、毎日1つの第1ソフトウェア群が生成され、毎週7つの第1ソフトウェア群が生成され、発行すべきソフトウェア群が1つ得られる。都度生成する前に、ステップS202で決定されたソフトウェアの組み合わせにあるはずのソフトウェア識別子により、そのソフトウェア識別子に対応する機能試験に合格した最新正式版ソフトウェア又は最新ベータ版ソフトウェアを検索して、第1ソフトウェアの組み合わせを生成する。新たに生成された第1ソフトウェア群は、全て統合試験のために自動運転車両等に送信され、第2サイクル毎に生成された7つの第1ソフトウェア群は、全て統合試験を実行する。第1ソフトウェア群は、試験中に相次いで新たな問題を発見するものであるため、開発者のソフトウェアコードも常に更新され、新たに生成された第1ソフトウェア群も常に更新されている。
【0042】
各第2サイクルで、統合試験に合格する複数(例えば4つ)の第1ソフトウェア群を最初決定し、そして、第2ソフトウェア群として、これら複数の第1ソフトウェア群から少なくとも1つの対象ソフトウェア群(例えば、第1ソフトウェア群7のような対象ソフトウェア群)を選択する。第2ソフトウェア群は、次の第2サイクルで統合試験を行うためのものであり、次のサイクルで当該第2ソフトウェア群が統合試験に合格した場合、当該第2ソフトウェア群を発行すべきソフトウェアとする。もし、次のサイクルで当該第2ソフトウェア群が統合試験に合格していなければ、当該次のサイクルに、発行すべきソフトウェアは一時的に存在せず、依然として前のサイクルで決定された発行すべきソフトウェアを使用する。
【0043】
前述したように、機能試験又は統合試験に合格するかどうかは、所定指標によって判断できるため、ここでは詳しい説明を割愛する。統合試験に合格するソフトウェア群から少なくとも1つの対象ソフトウェア群を選択することは、試験結果が最良なソフトウェア群や、最新版のソフトウェア群、又は試験結果の上位からいくつかのソフトウェア群、又はソフトウェア群のバージョンの上位からいくつかのソフトウェア群を選択することができ、当業者が必要に応じて自ら選択することができ、本開示はこれに対して限定しない。
【0044】
一実施例によると、ステップS208は、
各第2サイクルで、対応サイクルで統合試験に合格した第2ソフトウェア群を、コンピューティングデバイスで次の第2サイクルの統合試験を行うための第3ソフトウェア群とするステップA1と、
複数の第2サイクルで統合試験に合格した複数の第3ソフトウェア群から、統合試験の結果が所定指標を満たすソフトウェア群を、上記発行すべきソフトウェアの組み合わせとして選択するステップA2と、を更に含む。
【0045】
引き続き第2サイクルが1週間である場合を例にすると、毎週、統合試験に合格した第2ソフトウェア群が、次の週に統合試験を行う第3ソフトウェア群に昇格される。当然、第2ソフトウェア群の試験期間を適宜延長又は短縮でき、第2ソフトウェア群を第3ソフトウェア群に昇格させるか否かを判断するために予め定めた基準を設定することもできる。例えば、コードを手動で確認した後、第2ソフトウェア群を第3ソフトウェア群に昇格できる。すなわち、第2ソフトウェア群の試験期間は、第1ソフトウェア群の試験期間と同じであってもよいし、異なっていてもよいが、本開示はこれに対して限定しない。
【0046】
連続する複数の第2サイクルで統合試験が行われた複数の第3ソフトウェア群について、統合試験に合格し、統合試験結果が所定指標を満たす第3ソフトウェア群を発行すべきソフトウェア群として選択する。一実現形態において、本開示は、第1ソフトウェア群から第2ソフトウェア群を選択するか、第3ソフトウェア群から発行すべきソフトウェア群を選択するかに関わらず、選択されたソフトウェア群は何れも、統合試験に合格し、且つ最新バージョンのソフトウェア群、又は、統合試験に合格し、且つ試験結果が最良のソフトウェア群を含むことができるが、ソフトウェアの反復に伴って、最新バージョンのソフトウェア群が、試験結果が最良のソフトウェア群となる可能性も最も高い。
【0047】
各ソフトウェア群を便宜に区別するために、本開示による各タイプのソフトウェア群には対応するソフトウェア群ラベルがあり、各ソフトウェア群には対応するソフトウェア群識別子があり、選択されたソフトウェア群は、統合試験に合格し、且つ最新バージョンのソフトウェア群である。ソフトウェア群ラベルは、候補バージョン、安定前バージョン、安定バージョン、及び発行前バージョンから選ばれる少なくとも1つを含み、そのうち、第1ソフトウェア群は候補バージョンであり、第2ソフトウェア群は安定前バージョンであり、第3ソフトウェア群は安定版バージョンであり、ステップBにおける発行すべきソフトウェア群が発行すべきバージョンである。ソフトウェアのバージョンとソフトウェア識別子によりソフトウェア群を一意に決定でき、例えば、第1ソフトウェア群1は候補バージョン1、第2ソフトウェア群3は安定前バージョン3、第3ソフトウェア群5は安定バージョン5などと名付けることができる。
【0048】
各ソフトウェア群は統合試験中に不合格になることは避けられず、この時、これらソフトウェア群についてホットフィックスすることを理解すべきである。従って、方法200は、以下のステップを更に含む:
ステップB1:第1ソフトウェア群、第2ソフトウェア群、第3ソフトウェア群から選ばれる少なくとも1つから統合試験に合格しなかった問題ソフトウェア群を特定し、各問題ソフトウェア群の問題ソフトウェアと正常ソフトウェア、及び各問題ソフトウェアを更新するコードを特定し、各問題ソフトウェアが更新された後のコードを取得する、
ステップB2:問題ソフトウェアが更新された後のコードと問題ソフトウェア群の正常ソフトウェアとに基づいて、コンピューティングデバイスで統合試験を実行するための第4ソフトウェア群を生成する、
ステップB3:第4ソフトウェア群がコンピューティングデバイスで統合試験に合格したことに応答して、問題ソフトウェア群を第4ソフトウェア群に更新する。
【0049】
そのうち、問題ソフトウェア群はつまり統合試験に不合格のソフトウェア群であり、第1ソフトウェア群、第2ソフトウェア群、第3ソフトウェア群から選ばれる何れか1つであり得る。問題ソフトウェア群の問題ソフトウェアは、開発者によって手動で特定されてもよく、自動分析ツールを用いて、過去の問題シナリオと組み合わせて、問題のある可能性がある問題ソフトウェアを出してもらっても良い。その後、これらの問題ソフトウェアの更新後のコードを取得し、問題ソフトウェア群の既存の正常ソフトウェアと共に第4ソフトウェア群を生成し、第4ソフトウェア群は、ホットフィックスソフトウェア群とも称され得る。第4ソフトウェア群がコンピューティングデバイスで統合試験に合格すれば、当該問題ソフトウェア群を第4ソフトウェア群に更新し、すなわち、問題のある第1、第2又は第3ソフトウェア群を問題のない第4ソフトウェア群に更新する。
【0050】
一実施例によると、1つのソフトウェアの機能試験は以下のステップを含む:
ステップC1:試験すべきソフトウェアの何れかを、現サイクルの第3ソフトウェア群(つまり安定バージョンのソフトウェア群)に更新して、コンピューティングデバイスで統合試験を実行するための第5ソフトウェア群を取得する、
ステップC2:第5ソフトウェア群がコンピューティングデバイスで統合試験に合格したことに応答して、試験すべきソフトウェアが機能試験に合格することを確定する。
【0051】
更に、試験すべき1つ又は複数のソフトウェアについて、これら複数のソフトウェアに矛盾がないと判断できる前提で、これら複数のソフトウェアを現サイクルの安定版のソフトウェア群に更新し、第5ソフトウェア群(機能試験用ソフトウェア群とも称する)を得、第5ソフトウェア群の統合試験結果からこれら複数のソフトウェアが正常か否かを判断してもよい。統合試験の結果が正常であれば、複数のソフトウェアが正常であることを示し、その逆であれば、これら複数のソフトウェアの中の問題ソフトウェアを分析する。
【0052】
従って、本開示は、問題が出て来た第2ソフトウェア群及び第3ソフトウェア群については、直接これらの問題に基づいてホットフィックスを行い、ソフトウェア群に組み込まれるあるソフトウェアについては、単一機能の有効性を検証するために実車試験が必要であるから、そのソフトウェアを現在の安定版のソフトウェア群に組み込んで試験を行う。ソフトウェア群が試験に合格すれば、そのソフトウェアの機能が正常であることを示し、第1ソフトウェア群を生成するために使用することができる。
【0053】
また、ステップC1は以下のステップを更に含む:
ステップC11:現サイクルの第3ソフトウェア群に試験すべきソフトウェアの旧バージョンソフトウェアが含まないことに応答して、第3ソフトウェア群に試験すべきソフトウェアを追加する、
ステップC12:現サイクルの第3ソフトウェア群に試験すべきソフトウェアの旧バージョンソフトウェアが含まれることに応答して、旧バージョンソフトウェアを試験すべき候補ソフトウェアに置き換える。
【0054】
例えば、現在の第3ソフトウェア群が第3ソフトウェア群4であり、試験すべきソフトウェアがソフトウェア2であると仮定すると、当該第3ソフトウェア4にソフトウェア2のソフトウェア識別子を含まない場合、当該試験すべきソフトウェア2を第3ソフトウェア群4に追加する。第3ソフトウェア群4がソフトウェア2のソフトウェア識別子を含む場合、つまり当該ソフトウェア2の旧バージョンのソフトウェアがすでに第3ソフトウェア群に存在する場合、当該旧バージョンのソフトウェアをソフトウェア2に置き換える。
【0055】
前記から分かるように、本開示は、例えば複数の第1ソフトウェア群、第2ソフトウェア群、第3ソフトウェア群、第4ソフトウェア群、及び第5ソフトウェア群など、複数のタイプのソフトウェア群を生成し、各第2サイクルの毎日にも、複数のソフトウェア群が統合試験を必要とする可能性がある。統合試験を行うコンピューティングデバイスは、複数の車両に設置された複数のコンピューティングデバイスを含み、異なるサイクルで生成された複数の第1ソフトウェア群、複数の第2ソフトウェア群、複数の第3ソフトウェア群、第4ソフトウェア群、第5ソフトウェア群は、試験すべきソフトウェア群として、それぞれ上記複数の車両の複数のコンピューティングデバイスで実行する。
【0056】
ただし、車両は自動運転車両を含み、自動運転車両などの試験リソースが限られる前提で、本開示は、複数の自動運転車両おける複数のソフトウェア群の試験期間及び試験車両を前もって計画することができる。例えば、所定サイクルにおける複数の車両の複数の試験プロセスを統計し確定し、試験すべきソフトウェア群と各車両及び各試験プロセスとを関連付け、各車両の試験プロセスにおいて、関連付けられたソフトウェア群を試験する。ただし、試験プロセスは往路と復路を含み、一回の往路と復路は異なるソフトウェア群を試験するために使われ、又は同じソフトウェア群を試験するために使われることができる。本開示は、片道の道路状況及び道路長さに基づいて、往路及び復路が同じソフトウェア群を試験するかどうかを決定することができる。例えば、道路状況が複雑であり、又は、片道が長い、又は、往路と復路が同じ道路である場合、往路と復路は、異なるソフトウェア群を試験することができ;道路の状況が簡単であり、片道が短かい、往路と復路とが異なる道路である場合には、往路と復路とで異なるソフトウェア群を試験することができるが、もちろんこれに限定されない。
【0057】
例えば、ある日、試験すべきソフトウェア群の種類は、第1ソフトウェア群が4つ、第2ソフトウェア群が1つ、第3ソフトウェア群が1つ、第4ソフトウェア群が1つ、第5ソフトウェア群が1つ、合計7つの試験すべきソフトウェア群があるとする。試験に使用できる車両は5台あり、それぞれ3回走行でき、毎回往路と復路とで異なるソフトウェア群を試験する。計算の結果、毎日合計5×3×2=30回の試験を行うができ、試験すべきソフトウェア群の総数に応じて30回の試験を割り当てる。第2~第5ソフトウェア群が全て試験を行うことを前提として、本開示は、第1ソフトウェア群の試験回数を可能な限り増やす。例えば、第2から第5ソフトウェア群がそれぞれ2回試験を行うことを保証し、他の試験は、各第1ソフトウェア群を試験するために使用される。各ソフトウェア群の構築サイクルは、実際の状況に応じて調整でき、且つソフトウェア群が構築されてから、すぐ自動運転車両に送信し試験し、また開発試験設備の統一されたスケジュールで自動運転車両に送信できる。通常、第2ソフトウェア群の問題が適時に発見されるように、第2ソフトウェア群がもはや更新されず、さらなる実車試験が必要なくなるまで、少なくとも1日に1回、最新の第2ソフトウェア群の実車試験を保証する必要がある。もし、第2ソフトウェア群又は第3ソフトウェア群に比較的重大な問題又は欠陥がある場合、修復且つ機能試験を行い、手動コード検査を経て、コードに誤りがなく、且つ過剰な変更が導入されていないことを保証してから、対応する第2ソフトウェア群又は第3ソフトウェア群に組み込む。
【0058】
また、試験すべきソフトウェア群がそれぞれ独自のソフトウェアとハードウェア等の試験環境要件があり、例えばあるソフトウェア群の試験は少なくとも5つのカメラが車両に搭載される必要がある。従って、ソフトウェア群を車両とマッチングするとき、複数のソフトウェア群と複数の車両との最適なマッチングを実現するために、試験すべきソフトウェア群のそれぞれに関連する車両が、試験すべきソフトウェア群の試験環境要件を満たすことを保証する必要がある。更に、試験すべき各ソフトウェア群には、独自の道路や天気環境要件がある場合もあり、例えば、あるソフトウェア群は、暗視機能を試験するために夜間に試験する必要がある。従って、本開示は下表に示されるように、各ソフトウェア群の各試験要件及び車両の構成情報により、各ソフトウェア群と各車両番号、各車両の出発時刻、走行道路、及び往路(例えば出発地Aから目的地Bまでの距離など)と復路(例えば目的地Bから出発地Aまでの距離など)が試験するための最適なマッチング関係であるかを総合的に判断する。
【0059】
【0060】
実際の操作において、毎日又は毎週試験を始める前に、遠隔装置は、各車両の試験計画及び試験すべきソフトウェア群を対応する車両に送信し、対応する車両は、毎回出発前に計画された試験項目に従って、試験のために対応のソフト群をロードする。
【0061】
よって、本開示が提案するソフトウェアバージョン管理及び反復案は、様々なレベルのミラーの試験頻度、組み込み仕様、及び改善規則を設定し、何れの開発者の機能コードも安定度が引き続き高まるプロセスによって段階的に試験されることができ;同時に、新しいコードも、既に一定の安定性に達したコードに基づいて、いつでも新しい実車試験を開始することができ、前の完全な試験サイクルの完了を待つ必要がない。プロセスにおいて実車試験量と安定性との関係及びソフトウェア開発における実車試験頻度に対する要求を同時に考慮した上、コード開発の反復経路の唯一性(ソフトウェア機能試験-候補バージョン統合試験-安定前バージョン統合試験-安定バージョン統合試験)を保証しているから、実車試験の数量、新機能実車試験のスケジューリングの適時性及びコード安定性の間のバランスを実現し、実車試験と機能開発プロセスに対する多方面の要求を同時に満たすことができる。本開示は、ソフトウェア開発の効率を過度に低下させることなく、試験リソースの無駄を可能な限り低減しながら、ソフトウェア反復の速度を可能な限り保証できる。
【0062】
図3は本開示の別の実施例によるソフトウェア開発方法300のフローチャートを示す。図3に示すように、方法300は、
発行すべきソフトウェアの組み合わせに含まれるソフトウェア識別子を取得するステップS302と、
各第1サイクルに現在機能試験に合格した複数の候補ソフトウェアを確定するステップS304と、
各第1サイクルで、当該複数の候補ソフトウェアからそれぞれのソフトウェア識別子に対応する対象ソフトウェアを選択して、コンピュータデバイスで統合試験を実行するための第1ソフトウェア群を生成するステップS306と、
各第2サイクルで、対応サイクルで統合試験に合格した複数の第1ソフトウェア群から少なくとも1つのソフトウェア群を、コンピュータデバイスで次の第2サイクルの統合試験を実行するための第2ソフトウェア群として選択するステップS308と、
各第2サイクルで、対応サイクルで統合試験に合格した第2ソフトウェア群を、コンピューティングデバイスで次の第2サイクルの統合試験を行うための第3ソフトウェア群とするステップS310と、
複数の第2サイクルで統合試験に合格した複数の第3ソフトウェア群から、統合試験の結果が所定指標を満たすソフトウェア群を、発行すべきソフトウェアの組み合わせとして選択するステップS312とを含む。
【0063】
図4のソフトウェア開発図を参照して図3のフローチャートを理解できる。図4は、第1サイクルを1日、第2サイクルを1週間とする例を示し、各週間に機能試験に合格した候補ソフトウェアが候補ソフトウェアセットを構成し、当該候補ソフトウェアセットが常に反復更新し、且つ1つのソフトウェアは、複数のソフトウェアバージョンを有する可能性がある。
【0064】
第1週間に、毎日候補ソフトウェアセットに基づいて第1ソフトウェア群を生成し、1日目は第1ソフトウェア群M1(すなわち、候補バージョン10を生成し、2日目は第1ソフトウェア群M2(すなわち、候補バージョン2)を生成し、3日目は第1ソフトウェア群M3(すなわち、候補バージョン3)を生成し、このように類推する。生成されたソフトウェア群ごとに統合試験を行う。週の営業日にのみソフトウェア群を生成する場合、1週間に5つの第1ソフトウェア群が統合試験を行い、その中から、統合試験に合格し、且つバージョンが最新の第1ソフトウェア群M4を選択し第2ソフトウェア群N1(つまり、安定前バージョン1)に昇格する。
【0065】
第2週間に、また5つの新しい第1ソフトウェア群、つまりM6-M10(つまり候補バージョン6-10)を生成する。これら5つの第1ソフトウェア群が一週間の統合試験を経てから、第1ソフトウェア群M10を選択して第2ソフトウェア群N2(つまり安定前バージョン2)に昇格させる可能性がある。同時に、第1週間に得られた第2ソフトウェア群N1は当該第2週間に統合試験を行い、統合試験に合格できれば、第2ソフトウェア群N1は第3ソフトウェア群P1(つまり安定バージョン1)に昇格される。
【0066】
第3週間に、また5つの新しい第1ソフトウェア群、つまりM11-M15(つまり候補バージョン11-15)を生成する。これら5つの第1ソフトウェア群が一週間の統合試験を経てから、第1ソフトウェア群M15を選択して第3ソフトウェア群N3(つまり安定前バージョン2)に昇格させる可能性がある。同時に、第2週間に得られた第2ソフトウェア群N2は当該第3週間に統合試験を行い、統合試験に合格できれば、第2ソフトウェア群N2は第3ソフトウェア群P2(つまり安定バージョン2)に昇格される。
【0067】
類推するように、第4週間に新しい第1ソフトウェア群M16-M20が生成され、これら5つの第1ソフトウェア群が一週間の統合試験を経てから、第1ソフトウェア群M18が第2ソフトウェア群N4(つまり安定前バージョン4)に昇格される。同時に、第3週間に得られた第2ソフトウェア群N3は第4週間に統合試験に合格してから、第3ソフトウェア群P3(つまり安定バージョン2)に昇格される。
【0068】
連続する複数の週間に、複数の第3ソフトウェア群が統合試験を行うことがあり、統合試験に合格し且つ統合試験結果が所定指標を満たす最新のソフトウェア群を発行すべきソフトウェアの組み合わせとする。ここで、第3ソフトウェア群がすでに安定バージョンのソフトウェアの組み合わせであるため、当該第3ソフトウェア群の統合試験結果が所定指標に満たした場合にのみ、発行すべきソフトウェア群とする。発行すべきソフトウェア群が確定されると、容易に変更することはない。新しい第3ソフトウェア群の試験結果が現在発行すべきソフトウェア群より良い場合、新しい第3ソフトウェア群に更新される。
【0069】
更に、容易に区別するために、本開示の方法200及び300は、第1コンピューティングデバイスで実行され、当該第1コンピューティングデバイスはクラウドデバイス又は開発者のコンピュータであり得、ソフトウェア群の統合試験に使用されるコンピューティングデバイスは、車両に配置され、第2コンピューティングデバイスと呼ばれる。一実現形態において、各車両が走行時、対応するソフトウェア群を実行するために、第1コンピューティングデバイスによって各ソフトウェア群を生成又は決定し、各ソフトウェア群と試験リソース間の関連関係テーブルを生成し、当該関連関係により試験すべきソフトウェア群及び試験計画を対応する車両における第2コンピューティングデバイスに送信することができる。第1コンピューティングデバイスが試験結果が正常かどうか、問題ソフトウェア群に出てくる可能性がある問題ソフトウェア、及び問題ソフトウェアに出てくる可能性がある問題コードなどを分析するように、ソフトウェア群の車両での試験結果は、第1コンピューティングデバイスに直接送信される。
【0070】
本願の技術案によれば、各第2サイクルで、生成され、且つ統合試験を行う複数の候補バージョンのソフトウェア群から1つを選択して安定前ソフトウェア群に昇格し、当該安定前ソフトウェア群は次の第2サイクルで、統合試験に合格してから安定ソフトウェア群に昇格し、安定ソフトウェア群は続く統合試験で所定指標を満たした場合、発行すべきソフトウェア群に昇格することにより、自動運転車両の数、走行回数、走行道路行程などの試験リソースが限られている場合に、試験すべきソフトウェア群と各試験リソースとの最適なマッチング案を合理的に生成する。これにより各車両が走行中にソフトウェア群を試験し、自動運転試験の効率を向上させ、ソフトウェア開発の更新試験要件を満たすことができる。
【0071】
図5は、コンピューティングデバイス500の例示的な形態の機械の図を示し、当該コンピューティングデバイスにおける命令セットが実行されたときに及び/又は処理論理が起動されたときに、本明細書において記述及び/又は要求される方法の何れか1種又は複数種を当該機械に実行させることができる。代替実施例において、機械は、独立したデバイスとして動作するか、又は他の機械に接続(例えばネットワーク接続)することができる。ネットワーク接続配置では、機械はサーバ-クライアントネットワーク環境においてサーバ又はクライアント機械のアイデンティティで動作し、又はピアツーピア(又は分散型)ネットワーク環境でピアツーピア機械として動作することができる。機械は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピューティングシステム、パーソナルデジタルアシスタント(PDA)、セルラ電話、スマートフォン、ネットワークアプリケーション、セットトップボックス(STB)、ネットワークルータ、スイッチ又はブリッジ、又は指定される当該機械が取るべき動作を実行する命令セット(逐次的又はその他の方法で)又は処理論理を起動することができる任意の機械とすることができる。更に、単一の機械だけが図示されているが、「機械」という用語はまた、本明細書において記述及び/又は要求される方法の何れか1種又は複数種を実行するための命令セット(又は複数の命令セット)を個別に又は連携して実行する機械の任意の集合を含むと理解され得る。
【0072】
例示的なコンピューティングデバイス500は、バス506又は他のデータ伝送システムを介して互いに通信可能なデータプロセッサ502(例えばシステムチップ(SoC)、汎用処理コア、グラフィックスコア、及び任意選択的な他の処理論理)及びメモリ504(例えば、メモリ)を含むことができる。コンピューティングデバイス500は、タッチスクリーンディスプレイ、オーディオジャック、音声インタフェース、及び任意選択的なネットワークインタフェース512など、様々な入力/出力(I/O)デバイス及び/又はインタフェース510を含むこともできる。例示的な実施例において、ネットワークインタフェース512は、任意の1つ又は複数の標準無線及び/又はセルラプロトコル又はアクセス技術(例えばセルラシステムの第2世代(2G)、2.5世代、第3世代(3G)、第4世代(4G)及び次世代の無線アクセス、グローバル移動体通信システム(GSM)、汎用パケット無線サービス(GPRS)、拡張データGSM環境(EDGE)、広帯域符号分割多元接続(WCDMA)、LTE、CDMA2000、WLAN、無線ルータ(WR)グリッドなど)と構成された1つ又は複数の無線トランシーバを含み得る。ネットワークインタフェース512は、様々な他の有線及び/又は無線通信プロトコル(TCP/IP、UDP、SIP、SMS、RTP、WAP、CDMA、TDMA、UMTS、UWB、WiFi、WiMax、Bluetooth(登録商標)、IEEE802.11xなどを含む)とともに使用するように構成されてもよい。本質的に、ネットワークインタフェース812は、任意の有線及び/又は無線通信及びデータ処理機構を実質的に含むか又はサポートすることができ、この機構を介して、情報/データはネットワーク514を介してコンピューティングデバイス500と別のコンピューティング又は通信システムとの間を伝播することができる。
【0073】
メモリ504は、機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)を表すことができ、機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)に本明細書において記述及び/又は要求される方法又は機能の何れか1つ又は複数を実施する1つ又は複数の命令セット、ソフトウェア、ファームウェア、又は他の処理論理(例えば論理508)が記憶される。コンピューティングデバイス500によって実行される期間に、論理508又はその一部はプロセッサ502内に完全に又は少なくとも部分的に設けることができる。このように、メモリ504及びプロセッサ502は、機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)を構成することができる。論理508又はその一部はまた、処理論理又は論理として構成されることもでき、当該処理論理又は論理の少なくとも一部は、ハードウェアにおいて部分的に実現される。論理508又はその一部は、ネットワークインタフェース512を介してネットワーク514によって伝送され又は受信され得る。例示的な実施例の機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)は単一の媒体であり得るが、「機械読み取り可能な媒体」(又はコンピュータ読み取り可能な記憶媒体)という用語は1つ又は複数の命令セットを記憶する単一の非一時的媒体又は複数の非一時的媒体(例えば、集中型又は分散型データベース及び/又は関連するキャッシュ及びコンピューティングシステム)を含むと理解すべきである。「機械読み取り可能な媒体」(又はコンピュータ読み取り可能な記憶媒体)という用語はまた、機械が実行し、かつ様々な実施例の方法のうちの何れか1種又は複数種を機械に実行させるために、命令セットを記憶、符号化、又は担持することができるか、又は、そのような命令セットによって利用されるか又は関連付けられるデータ構造を記憶、符号化、又は担持することができる、任意の非一時的媒体を含むと理解され得る。したがって、「機械読み取り可能な媒体」(又はコンピュータ読み取り可能な記憶媒体)という用語は、固体メモリ、光媒体、及び磁気媒体を含むが、これらに限定されないと理解され得る。
【0074】
開示された実施例及び他の実施例、モジュール、及び本明細書に記述された機能的動作は、デジタル電子回路システム、又はコンピュータソフトウェア、ファームウェア、又はハードウェア(本明細書に開示された構造及びその構造的等価物を含む)、又はそれらの1つ又は複数の組み合わせにおいて実現され得る。開示された実施例及び他の実施例は、1つ又は複数のコンピュータプログラム製品、つまり、データ処理装置によって実行される又は当該データ処理装置の動作を制御するようにコンピュータ読み取り可能な媒体に符号化されるコンピュータプログラム命令の1つ又は複数のモジュールとして実現され得る。コンピュータ読み取り可能な媒体は、機械読み取り可能な記憶デバイス、機械読み取り可能な記憶基板、メモリデバイス、機械読み取り可能な伝播信号に影響を及ぼす組成物、又はそれらの1つ又は複数の組み合わせであり得る。「データ処理装置」という用語は、例えば、プログラム可能プロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及び機械をカバーする。ハードウェアに加えて、当該装置は、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ又は複数の組み合わせを構成するコードなど、検討中のコンピュータプログラムに対して実行環境を作成するコードを含むことができる。伝播信号は、例えば機械によって生成される電気信号、光信号、又は電磁信号など、手動で生成される信号であり、当該信号は、適切な受信機装置に伝送される情報を符号化するように生成される。
【0075】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとも呼ばれる)は、任意の形態のプログラミング言語(コンパイラ型又はインタプリタ型言語を含む)で書き込まれ得、かつ当該コンピュータプログラムは、独立したプログラムとして配置されるか、又は、モジュール、部材、サブルーチン、若しくはコンピューティング環境での使用に適した別のユニットとして配置されることを含む、任意の形態で配置され得る。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応する必要はない。プログラムは、他のプログラム又はデータ(例えば、マークアップ言語文書に記憶された1つ又は複数のスクリプト)を保持するファイルの一部に記憶され得、又は検討中のプログラム専用の単一のファイルに記憶され得、又は複数の協調ファイル(例えば、1つ又は複数のモジュール、サブプログラム、又は一部のコードを記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータにおいて実行されるか、又は1つのサイトに位置決めされ、又は複数のサイトに分散され、かつ通信ネットワークを介して相互接続された複数のコンピュータにおいて実行されるように配置され得る。
【0076】
本明細書で記述されるプロセス及び論理フローは、入力データを操作し、出力を生成することによって機能を実行するために、1つ又は複数のコンピュータプログラムを実行する1つ又は複数のプログラム可能プロセッサによって実行され得る。プロセス及び論理フローはまた、専用論理回路システム(例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路))によって実行され得、装置はまた専用論理回路(例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路))として実現され得る。
【0077】
コンピュータプログラムを実行するのに適したプロセッサは、例えば、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、及び任意の種類のデジタルコンピュータの任意の1つ又は複数のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ、又はその両方からの命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、及び命令及びデータを記憶するための1つ又は複数のメモリデバイスである。通常、コンピュータは、データを記憶するための1つ又は複数の大容量記憶デバイス(例えば、磁気ディスク、光磁気ディスク、又は光ディスク)も含み、又はコンピュータは、当該1つ又は複数の大容量記憶デバイスからのデータを受信するか、又はデータを当該1つ又は複数の大容量記憶デバイスに伝送するか、又はその両方を行うように動作可能に接続される。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能な媒体は、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイス、例えば、内蔵ハードディスク又はリムーバブルディスクなどの磁気ディスク、光磁気ディスク、及びCD-ROMディスクやDVD-ROMディスクを含む、全ての形態の不揮発性メモリ、媒体、及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路に補足され得、又は当該専用論理回路システムに組み込まれ得る。
【0078】
本願は多くの詳細を含むが、これらの詳細は、任意の発明又は特許請求される可能な範囲の限定として解釈すべきではなく、むしろ、特定の発明の特定の実施例の特徴に向けられることが可能である記述として解釈すべきである。本願において、別個の実施例の文脈で記述される特定の特徴はまた、単一の実施例において組み合わせて実現され得る。逆に、単一の実施例の文脈で記述された様々な特徴は、複数の実施例において、別々に、又は任意の適切なサブ組み合わせで実現され得る。更に、特徴は、ある組み合わせで機能するものとして上記で説明され、最初に、それらの特徴が同様に特許請求されることさえあるが、特許請求される組み合わせからの1つ又は複数の特徴は、場合によっては、組み合わせから削除され得、特許請求される組み合わせは、サブ組み合わせ又はサブ組み合わせの変形例を対象とし得る。
【0079】
同様に、動作は特定の順序で図面に図示されているが、そのような動作は、図示された特定の順序で、又は連続した順序で実行されること、又は所望の結果を達成するために、図示された全ての動作が実行されることが必要であると理解すべきではない。更に、本願で記述される実施例における様々なシステム構成要素の分離は、全ての実施例においてそのような分離が必要であると理解すべきではない。
【0080】
いくつかの実現及び例だけが記述されており、他の実現、強化、及び変形が、本願において記述及び図示されるものに基づいて行われ得る。
【0081】
本明細書に記載された実施例の説明は、様々な実施例の構造の一般的な理解を提供することを意図しており、本明細書に記載された構造を利用し得る部材及びシステムの全ての要素及び特徴の完全な説明として機能することを意図していない。多くの他の実施例は、本明細書で提供される記述を検討すれば、当業者には容易に理解されるであろう。他の実施例を利用及び取得することができ、それにより、本願の範囲から逸脱することなく、構造的及び論理的な代替及び変更が行われ得る。本明細書の図面は、代表的なものにすぎず、縮尺通りに描かれていない場合がある。ある縮尺は増加され、他の縮尺は最小化され得る。したがって、明細書及び図面は、限定的なものではなく例示的なものとみなされる。
【0082】
いくつかの実施例は、関連する制御信号及びデータ信号がモジュールの間にあり、モジュールによって伝達されるか、又は特定用途向け集積回路の一部とする、2つ以上の特定の相互接続されたハードウェアモジュール又は装置において機能を実現する。したがって、例示的なシステムは、ソフトウェア、ファームウェア、及びハードウェアの実現に適している。
【0083】
図面を参照して本願の例示的な実施例又は例を記述したが、上記の例示的な記述は、網羅的であること、又は、本発明を開示された具体的な形態に制限することを意図しないと理解すべきである。上記の教示された内容に基づいて、多くの修正や変形が可能である。従って、開示された主旨は、本明細書に記載の任意の単一の実施例又は例に限定すべきではなく、添付される特許請求の範囲の幅と範囲に基づいて解釈すべきである。
図1
図2
図3
図4
図5