説明

仕様要求検証装置及び仕様要求検証方法

【課題】検証対象において、仕様として設定した非機能要求が満たされているか否かを検証する技術を提供する。
【解決手段】複数のプロセスを実行する場合の非機能に係る要求を示す情報を入力装置による入力或いは記憶媒体からの読み出しによって取得し、前記複数のプロセスにかかる非機能の値を求め、前記非機能の値が、前記非機能に係る要求を満たしているか否かを評価する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検証対象であるシステムや装置の非機能を検証する技術に関する。
【背景技術】
【0002】
開発段階で要求仕様を検証する方法としては、UML(Unified Modeling Language)
やPromela (Process Meta Language)といったモデリング言語で要求仕様をモデル化し、
このモデルをSPINやSMLといったモデル検査ツールで検査することが知られている。
【0003】
また、このようなモデル検査は、システムの開発段階で用いられており、システムの実用段階で用いられるものではなかった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−075681号公報
【特許文献2】特開2008−305079号公報
【特許文献3】特開2009−129463号公報
【特許文献4】特開2009−116815号公報
【特許文献5】特開2008−112224号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のモデル検査は、機能要求をモデル化し、このモデルについて検査を行うので、このモデルに反映されない非機能要求については、検証することができなかった。
【0006】
そこで、本発明は検証対象において非機能要求が満たされているか否かを検証する技術を提供する。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明では、以下の手段または処理を採用した。
【0008】
即ち、本発明に係る仕様要求検証装置は、
複数のプロセスを実行する場合の非機能に係る要求を示す情報を入力装置による入力或いは記憶媒体からの読み出しによって取得する要求取得手段と、
前記複数のプロセスにかかる非機能の値を求める非機能値取得手段と、
前記非機能の値が、前記非機能に係る要求を満たしているか否かを評価する評価手段と、を備える。
【0009】
前記非機能の値は、少なくとも処理時間、消費電力、費用の何れかを含むものでも良い。
【0010】
前記非機能値取得手段は、前記プロセスの実行結果を実測することにより前記非機能の値を取得しても良い。
【0011】
更に本発明に係る仕様要求検証方法は、
複数のプロセスを実行する場合の非機能に係る要求を示す情報を入力装置による入力或いは記憶媒体からの読み出しによって取得するステップと、
前記複数のプロセスにかかる非機能の値を求めるステップと、
前記非機能の値が、前記非機能に係る要求を満たしているか否かを評価するステップと、をコンピュータが実行する。
【0012】
前記仕様要求検証方法において、前記非機能の値は、少なくとも処理時間、消費電力、費用の何れかを含むものでも良い。
【0013】
前記仕様要求検証方法において、前記プロセスの実行結果を実測することにより前記非機能の値を取得しても良い。
【0014】
なお、本発明は、上記仕様要求検証方法の各ステップをコンピュータに実行させるためのプログラムとして捉えることもできる。また、本発明は、前記プログラムをコンピュータが読み取り可能に記録した記録媒体(記憶媒体)として捉えることもできる。
【0015】
ここで、コンピュータが読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体の内、コンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、DAT、8mmテープ、メモリカード等がある。
【0016】
また、コンピュータに固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。
【0017】
上記手段およびステップの各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0018】
本発明によれば、検証対象において非機能要求が満たされているか否かを検証する技術を提供できる。
【図面の簡単な説明】
【0019】
【図1】仕様要求検証装置のブロック図
【図2】仕様要求検証方法の説明図
【図3】検証対象の装置の説明図
【図4】機能要求の説明図
【図5】機能要求の説明図
【図6】プロセス名とプロセスの結果を対応付けて記憶したテーブルの一例を示す図
【図7】プロセス名と非機能値を対応付けて記憶したテーブルの一例を示す図
【図8】実施形態2の説明図
【発明を実施するための形態】
【0020】
〈実施形態1〉
以下、本発明の実施の形態について説明する。まず、本発明の実施の形態にかかる仕様要求検証装置の構成の一例について図1を用いて説明する。
【0021】
この仕様要求検証装置1は、新たなシステムや製品、ソフトウェアを開発する段階で複数の機能を実行した場合に、処理時間や消費電力、コストが所定の値に収まるかといった非機能要求が満たされるか否かを検証する。
【0022】
図1は本実施形態に係る仕様要求検証装置の概略を説明する図である。図1に示すよう
に、仕様要求検証装置1は、データの演算処理を行うデータ処理部11と、他の装置との通信を行う通信処理部12、演算処理の為のデータやソフトウェアを記憶する記憶部(ハードディスク)13、入力部14、出力部15を備えたコンピュータである。
【0023】
通信処理部12は、ネットワークやケーブル等の回線を介して他のコンピュータとの通信を行う。
【0024】
記憶部13は、オペレーティングシステム(OS)やアプリケーションプログラム(仕様要求検証プログラム)を記憶している。また、記憶部13は、検証に用いるデータテーブル等も記憶している。
【0025】
入力部14は、データ処理部11へ情報を入力する手段であり、キーボードやポインティングデバイスといったユーザインタフェースや、メモリカードやCD−ROM等の記憶媒体から情報を読み取るデバイスを有する。
【0026】
出力部15は、データ処理部11の処理結果を出力する手段であり、処理結果等を表示する表示装置や、データを印刷するプリンターを有する。
【0027】
データ処理部11は、CPUやメインメモリを有し、前記OSやアプリケーションプログラムを記憶部13からメインメモリに読み出し、読み出したOSやアプリケーションプログラムに従ってCPUが演算処理を行う。この演算処理により、CPUは、要求取得部21や、非機能値取得部22、評価部23としても機能する。
【0028】
データ処理部11のCPU、即ち要求取得部21は、検証対象に要求される機能や入力装置による入力或いは記憶媒体からの読み出しによって複数のプロセスを実行した場合の非機能に係る要求を示す情報を取得する。
【0029】
非機能値取得部22は、前記複数のプロセスの実行によって変化する非機能の値を求める。
【0030】
評価部23は、前記非機能の値が、前記非機能に係る要求を満たしているか否かを評価する。
【0031】
図2は、本例の仕様要求検証装置1がプログラムに従って実行する仕様要求検証方法の説明図である。
【0032】
まず、仕様要求検証装置1は、機能要求を示す情報及び非機能要求を示す情報を取得する(ステップS1,S2)。例えば、仕様要求検証装置1は、ユーザが入力部14のキーボードやポインティングデバイスを操作して入力した情報、或いは他のコンピュータから送信された情報を通信処理部12を介して受信する。また、仕様要求検証装置1は、CD−ROM等のリムーバルディスクや、記憶部13、メインメモリ等の記憶媒体から非機能要求を示す情報を読み出す、或いは通信処理部12によりネットワークを介して他のコンピュータから読み出して取得しても良い。
【0033】
次に、仕様要求検証装置1は、ステップS1で取得した機能要求に基づき、要求されている機能(プロセス)を実行する(ステップS3)。
【0034】
そして、仕様要求検証装置1の非機能値取得部22は、プロセスを実行したことにより変化する非機能の値(以下、単に非機能値とも称する)、例えば処理時間や消費電力、コストを求める(ステップS4)。なお、非機能値を求める手法としては、プロセス毎に関
数を設定しておき、この関数で入力値を演算するものや、プロセス毎の非機能値を予めテーブルに登録しておき、このテーブルを参照して該当する非機能値を読み出すものや、ユーザや他のコンピュータ等から入力を受けるもの、プロセスの実行時に変化する値を実測するもの等が挙げられる。
【0035】
また、仕様要求検証装置1の評価部23は、上記で求めた非機能値がステップS2で取得した非機能要求を満たすか否かを評価する(ステップS5)。例えば、プロセスを実行したときの所要時間が所定時間以内か、プロセスを実行したときの消費電力が所定電力以下か、プロセスを実行するのに採用した機器のコストが所定値以下かといった条件を満たしているか否かを判定する。
【0036】
〈具体例〉
次に、上記仕様要求検証装置1が実行する仕様要求検証方法について具体例を挙げて説明する。図3は、開発する車載カメラシステム、即ち検証対象を示す図である。図3の車載カメラシステムは、カメラ41、輪郭抽出部42、輪郭合成部43、表示装置44を備え、カメラ映像から道路上の物体の輪郭を抽出し、この輪郭を元画像と合成して表示装置に表示する。このとき輪郭を所定の線幅や色で描画して強調することにより、対向車のライトによって逆光になっている状況や霧が発生した状況であっても道路上の物体を明示するものである。
【0037】
この車載カメラシステムにおいて、カメラ41は、車両の先方或いは後方の道路上を撮影し、撮影画像を輪郭抽出部42及び理輪郭合成部43に送る機能が要求される。
【0038】
また、輪郭抽出部42は、撮影画像中の画素の濃度値が急激に変化する部分を微分演算やパターンマッチングにより輪郭として抽出する機能が要求される。
【0039】
輪郭合成部43は、輪郭抽出部42で抽出した輪郭を元画像と合成する機能が要求される。
【0040】
表示装置44は、例えばカーナビゲーションシステムのディスプレイやHUDであり、輪郭合成部43で合成した画像を運転者に対して表示する機能が要求される。
【0041】
即ち、この車載カメラシステムについて図2のステップS1では、上記のように各部41〜44に要求される機能要求を示す情報が入力される。なお、この機能要求で要求される機能(プロセス内容)は、所定の論理式(例えば、LTL(Linear Temporal Logic)
:線形時相論理の論理式や、CTL(Computation Tree Logic):計算木時相論理の論理式などや、プロメラ(Promela)などの記述言語など)によって記述できる。
【0042】
図4は機能要求によるモデルを示す図である。本例では、図4に示すようにカメラで画像を撮影するプロセス(撮影P1)や、撮影画像から輪郭を抽出するプロセス(プロセスP2)、元画像に輪郭を合成するプロセス(合成P3)、合成後の画像を表示するプロセス(表示P4)を有する。
【0043】
図4の例では、機能要求を示す情報として、プロセス名(プロセスの識別情報)と、論理式等のプロセス内容を取得し、データ処理部11がプロセス内容に従って入力値を演算して結果を求める構成であり、従来行われていた機能要求の検証と並行して非機能要求の検証を行えるようにしている。なお、機能要求の検証と非機能要求の検証は、必ずしも並行して行わなければならないものでは無い。例えば、各プロセスの結果を前記演算によって予め求めておく或いはプロセスの結果として想定値を定めておき、このプロセスの結果とプロセス名を前記機能要求を示す情報として入力しても良い。図5は、プロセスの結果
を入力する例を示し、図6はプロセス名とプロセスの結果を対応付けて記憶したテーブルの一例を示す図である。なお、プロセス名はプロセスを識別するための情報であり、プロセス毎に固有の情報が付されている。図6では、カメラAを用いて撮影するプロセスのプロセス名がP1A、結果がVGAカラー画像(640×480×24ビット)であり、カメラBを用いて撮影するプロセスのプロセス名がP1B、結果がVGAカラー画像(800×600×24ビット)であり、カメラCを用いて撮影するプロセスのプロセス名をP1C、結果がXGAカラー画像(1024×768×24ビット)である。
【0044】
図5の例では、図2のステップS3において、図6のテーブルからプロセス結果を求めて入力する。一方、図4の例では、論理式やPromela等で記述されたプロセス内容に基づ
いて図6に示すようなプロセスの結果を求める。
【0045】
また、図3の車載カメラシステムにおいて、図2のステップS2では、仕様要求検証装置1は、各プロセスにかかる非機能要求を示す情報を取得する。例えば、被写体を撮影してから輪郭を抽出して元画像と合成して表示装置に表示させるまでの処理時間、即ち遅延時間を300ms以内、消費電力を25W以内、且つ費用を5000円以内とすることを非機能要求とする。
【0046】
そして、図2のステップS4では、各プロセスにかかる非機能の値を求める。図7は、各プロセスに対応する非機能の値を記憶したテーブルの一例を示す図である。図7に示すテーブルでは、各プロセスにかかる非機能要求として、処理時間、消費電力、費用を記憶している。例えば、プロセスP1Aの処理時間(受光面上に結像された像を撮像素子で電気信号に変換して出力するまでの時間)が80ms、カメラの消費電力、2.0W、カメラの費用1000円であり、プロセスP1Bの処理時間が100ms、カメラの消費電力、2.5W、カメラの費用1500円であり、プロセスP1Cの処理時間が120ms、カメラの消費電力、3.5W、カメラの費用2000円である。
【0047】
図7のプロセスP1A〜P1Cに対する非機能の値のように、予めテーブルに記憶しておき、ステップS4では、ステップS1で取得したプロセスのプロセス名と対応する値を当該テーブルから読み出す。
【0048】
なお、非機能の値は、予めテーブルに記憶しておく構成に限らず、関数で定義しても良い。例えば、図7におけるプロセスP2D〜P2Fの処理時間のように、チップDを用いて輪郭を抽出するプロセスの画像サイズFsを1秒あたりの出力ビット数1.54×106で割る、チップEを用いて輪郭を抽出するプロセスの画像サイズFsを1秒あたりの出
力ビット数3.07×106で割る、チップFを用いて輪郭を抽出するプロセスの画像サ
イズFsを1秒あたりの出力ビット数6.14×106で割ることで処理時間を求める。
【0049】
ここでプロセスP1Aの結果(640×480×24ビット)を用いた場合、輪郭を抽出するプロセスの結果は、二値画像(640×480×1ビット)となる。この場合に、チップDを用いて輪郭を抽出するプロセスP2Dは、処理時間が200ms、消費電力が1.2W、費用が300円、チップEを用いて輪郭を抽出するプロセスP2Eは、処理時間が100ms、消費電力が1.5W、費用が500円、チップFを用いて輪郭を抽出するプロセスP2Fは、処理時間が50ms、消費電力が3.0W、費用が800円となる。
【0050】
同様に、プロセスP1Bの結果(800×600×24ビット)を用いた場合、輪郭を抽出するプロセスの結果は、二値画像(800×600×1ビット)となり、チップDを用いて輪郭を抽出するプロセスP2Dは、処理時間が313ms、消費電力が1.2W、費用が300円、チップEを用いて輪郭を抽出するプロセスP2Eは、処理時間が156
ms、消費電力が1.5W、費用が500円、チップFを用いて輪郭を抽出するプロセスP2Fは、処理時間が78ms、消費電力が3.0W、費用が800円となる。
【0051】
また、図7におけるプロセスP3G〜P3Iの処理時間のように、チップGを用いて輪郭を元画像に合成するプロセスの画像サイズFsを1秒あたりの出力ビット数73.7×106で割る、チップHを用いて輪郭を元画像に合成するプロセスの画像サイズFsを1
秒あたりの出力ビット数147×106で割る、チップIを用いて輪郭を元画像に合成す
るプロセスの画像サイズFsを1秒あたりの出力ビット数295×106で割ることで処
理時間を求める。
【0052】
ここで元画像としてプロセスP1Aの結果(640×480×24ビット)を用いた場合、チップGを用いて輪郭を元画像に合成するプロセスP3Gは、処理時間が100ms、消費電力が0.5W、費用が100円、チップHを用いて輪郭を元画像に合成するプロセスP3Hは、処理時間が50ms、消費電力が0.8W、費用が200円、チップIを用いて輪郭を元画像に合成するプロセスP3Iは、処理時間が25ms、消費電力が1.5W、費用が300円となる。
【0053】
同様に、プロセスP1Bの結果(800×600×24ビット)を用いた場合、チップGを用いて輪郭を元画像に合成するプロセスP3Gは、処理時間が156ms、消費電力が0.5W、費用が100円、チップHを用いて輪郭を元画像に合成するプロセスP3Hは、処理時間が78.4ms、消費電力が0.8W、費用が200円、チップIを用いて輪郭を元画像に合成するプロセスP3Iは、処理時間が39.1ms、消費電力が1.5W、費用が300円となる。
【0054】
また、図7において、ディスプレイJに合成後の画像を表示するプロセスP4Jの処理時間(応答時間)が5ms、消費電力が15w、費用が3000円であり、ディスプレイKに合成後の画像を表示するプロセスP4Kの処理時間(応答時間)が5ms、消費電力が17w、費用が3500円であり、ディスプレイLに合成後の画像を表示するプロセスP4Lの処理時間(応答時間)が5ms、消費電力が20w、費用が4000円である。
【0055】
そして、図2のステップS5において、仕様要求検証装置1の評価部23は、上記で求めた非機能値がステップS2で取得した非機能要求を満たすか否かを評価する。
【0056】
例えば、ステップS1で取得した情報が示すプロセス名が、プロセスP1A,P2D,P3G,P4Jであった場合、
プロセスP1A:処理時間=80ms、消費電力=2.0W、費用=1000円
プロセスP2D:処理時間=200ms、消費電力=1.2W、費用=300円
プロセスP3G:処理時間=100ms、消費電力=0.5W、費用=100円
プロセスP4J:処理時間=5ms、消費電力=15w、費用=3000円
合計:処理時間=385ms、消費電力=18.7w、費用=4400円
である。
【0057】
従って、プロセスP1A,P2D,P3G,P4Jの構成は、処理時間(遅延時間)の非機能要求を満たさず、不適合である。
【0058】
また、ステップS1で取得した情報が示すプロセス名が、プロセスP1A,P2E,P3I,P4Jであった場合、
プロセスP1A:処理時間=80ms、消費電力=2.0W、費用=1000円
プロセスP2E:処理時間=156ms、消費電力=1.5W、費用=500円
プロセスP3I:処理時間=39.1ms、消費電力=1.5W、費用=300円
プロセスP4J:処理時間=5ms、消費電力=15w、費用=3000円
合計:処理時間=280.1ms、消費電力=20w、費用=4800円
である。
【0059】
従って、プロセスP1A,P2E,P3I,P4Jの構成は、全ての非機能要求を満たし、適合する。
【0060】
更に、ステップS1で取得した情報が示すプロセス名が、プロセスP1C,P2F,P3I,P4Lであった場合、
プロセスP1C:処理時間=120ms、消費電力=3.5W、費用=2000円
プロセスP2F:処理時間=128ms、消費電力=3.0W、費用=800円
プロセスP3I:処理時間=64.0ms、消費電力=1.5W、費用=300円
プロセスP4L:処理時間=5ms、消費電力=20w、費用=4000円
合計:処理時間=317ms、消費電力=28w、費用=7100円
である。
【0061】
従って、プロセスP1C,P2F,P3I,P4Lの構成は、全ての非機能要求を満たさず、不適合である。
【0062】
以上のように、本実施形態によれば、開発段階で検証対象の非機能要求を評価することができる。
【0063】
〈実施形態2〉
前述の実施形態1では、開発段階で検証対象の非機能要求を評価する例を示したが、本実施形態2は実用段階で検証対象の非機能の値を実測し、非機能要求を評価する例である。本実施形態2は、前述の実施形態1と比べて評価内容が異なり、その他の構成は同じである。このため同一の要素には同符号を付すなどして再度の説明を省略している。
【0064】
図8は、本実施形態2の概略説明図である。本実施形態2において、要求取得部21は、機能要求としてプロセスP1A,P2E,P3I,P4Jを示す情報を取得し、非機能要求としてプロセスP2E,P3Iの処理時間が200msであることを取得する。
【0065】
また、非機能値取得部22は、プロセスP1Aで撮影した画像、即ち元画像と、プロセスP3Iで合成後の画像とを比較し、元画像の出力から合成後の画像の出力までにかかった時間を処理時間(遅延時間)として求める。
【0066】
評価部23は、非機能値取得部22で取得した値が、非機能要求を満たしているか否かを判定する。プロセスP2E,P3Iの処理時間は、195.1msのため、通常は非機能要求を満たしている。しかし、チップE,Iの不具合や電圧の低下、チップE,IがプロセスP2E,P3Iと並行して処理するプロセスの増加等の問題が生じたことにより処理時間が非機能要求を満たさなくなった場合、評価部23は出力部15を介してユーザに警告を通知する。
【0067】
以上のように本実施形態2によれば、実用時に非機能要求を評価でき、非機能要求を満たさなくなった場合にユーザに警告できる。
【0068】
本実施形態2の仕様要求検証装置は、処理時間に限らず、非機能の値が実用時に実測できるものであれば良い。
【符号の説明】
【0069】
1 仕様要求検証装置
11 データ処理部
12 通信処理部
13 記憶部(ハードディスク)
14 入力部
15 出力部
21 要求取得部
22 非機能値取得部
23 評価部
41 カメラ
42 輪郭抽出部
43 輪郭合成部
44 表示装置

【特許請求の範囲】
【請求項1】
複数のプロセスを実行する場合の非機能に係る要求を示す情報を入力装置による入力或いは記憶媒体からの読み出しによって取得する要求取得手段と、
前記複数のプロセスにかかる非機能の値を求める非機能値取得手段と、
前記非機能の値が、前記非機能に係る要求を満たしているか否かを評価する評価手段と、
を備える仕様要求検証装置。
【請求項2】
前記非機能の値が、少なくとも処理時間、消費電力、費用の何れかを含む請求項1に記載の仕様要求検証装置。
【請求項3】
前記非機能値取得手段が、前記プロセスの実行結果を実測することにより前記非機能の値を取得する請求項1又は2に記載の仕様要求検証装置。
【請求項4】
複数のプロセスを実行する場合の非機能に係る要求を示す情報を入力装置による入力或いは記憶媒体からの読み出しによって取得するステップと、
前記複数のプロセスにかかる非機能の値を求めるステップと、
前記非機能の値が、前記非機能に係る要求を満たしているか否かを評価するステップと、
をコンピュータが実行する仕様要求検証方法。
【請求項5】
前記非機能の値が、少なくとも処理時間、消費電力、費用の何れかを含む請求項4に記載の仕様要求検証方法。
【請求項6】
前記プロセスの実行結果を実測することにより前記非機能の値を取得する請求項4又は5に記載の仕様要求検証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate