(57)【特許請求の範囲】
【請求項１】
ＣＰＵで実行されるプログラム及び前記ＣＰＵとの間でデータのやり取りをする入出力デバイス並びに前記ＣＰＵと前記入出力デバイスとの間に介在するデータテーブル及びデータ伝達回路からなるソフトウェアシステムを論理矛盾なく設計することを支援するバグレスソフトウェアシステム設計支援装置であって、
データベースに接続して、前記プログラム、データテーブル、データ伝達回路及び入出力デバイスのそれぞれを構成するシステム要素の登録、更新及び削除を行うシステム要素編集部と、
前記データベースに登録されているシステム要素を行及び列見出しとして同順に並べて構成され、かつ、当該行及び列見出しによって特定される二つのシステム要素間のデータ授受関係の有無を表す行列要素を有する正方マトリックスを表示するマトリックス表示部と、
前記表示された正方マトリックスの行列要素に対する表示付与及び削除に応じて、当該行列要素に対応する二つのシステム要素間のデータ授受関係の有無を前記データベースに登録するデータ授受関係編集部と、
前記データベースに登録されているシステム要素間のデータ授受関係を辿って前記ソフトウェアシステムの論理整合性を検証し、論理不整合を検出したとき、当該論理不整合に係る情報を出力する論理検証部とを備えた
ことを特徴とするバグレスソフトウェアシステム設計支援装置。
【請求項２】
請求項１に記載のバグレスソフトウェアシステム設計支援装置において、
前記論理検証部は、前記プログラムを構成するシステム要素と前記入出力デバイスを構成するシステム要素との間で直接に又は前記データテーブル及びデータ伝達回路のそれぞれを構成するシステム要素の少なくとも一つを経由して間接にデータが授受されるか否か、及び前記データベースに登録されているシステム要素間でデータ授受がループしているか否かの少なくとも一つについて検証する
ことを特徴とするバグレスソフトウェアシステム設計支援装置。
【請求項３】
請求項１に記載のバグレスソフトウェアシステム設計支援装置において、
前記論理検証部は、前記データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを検出するものであり、
前記マトリックス表示部は、前記検出されたシステム要素を前記正方マトリックスから削除するものである
ことを特徴とするバグレスソフトウェアシステム設計支援装置。
【請求項４】
請求項１に記載のバグレスソフトウェアシステム設計支援装置において、
前記論理検証部は、前記データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを検出するものであり、
前記データ授受関係編集部は、前記検出されたシステム要素を前記データベースから削除するものである
ことを特徴とするバグレスソフトウェアシステム設計支援装置。
【請求項５】
請求項１に記載のバグレスソフトウェアシステム設計支援装置において、
前記データベースに登録されている前記データ伝達回路を構成するシステム要素間のデータ授受関係を参照して、前記データ伝達回路のブロック図を作成するブロック図作成部を備えた
ことを特徴とするバグレスソフトウェアシステム設計支援装置。
【請求項６】
請求項１に記載のバグレスソフトウェアシステム設計支援装置において、
前記データベースには前記システム要素のそれぞれについて別のソフトウェアシステムへの流用可能性を示す情報が登録されており、
前記システム要素編集部は、新たなソフトウェアシステムの設計に当たって、前記データベースに登録されている前記流用可能性を示す情報を参照して、前記データベースに登録されているシステム要素の中から当該新たなソフトウェアシステムに流用可能なものを抽出する
ことを特徴とするバグレスソフトウェアシステム設計支援装置。
【請求項７】
ＣＰＵで実行されるプログラム及び前記ＣＰＵとの間でデータのやり取りをする入出力デバイス並びに前記ＣＰＵと前記入出力デバイスとに介在するデータテーブル及びデータ伝達回路からなるソフトウェアシステムを論理矛盾なく設計することを支援するバグレスソフトウェアシステム設計支援方法であって、
データベースに接続して、ユーザの操作に応じて、前記プログラム、データテーブル、データ伝達回路及び入出力デバイスのそれぞれを構成するシステム要素の登録、更新及び削除を行うステップと、
前記データベースに登録されているシステム要素を行及び列見出しとして同順に並べて構成され、かつ、当該行及び列見出しによって特定される二つのシステム要素間のデータ授受関係の有無を表す行列要素を有する正方マトリックスを表示するステップと、
前記表示された正方マトリックスの行列要素に対する表示付与及び削除に応じて、当該行列要素に対応する二つのシステム要素間のデータ授受関係の有無を前記データベースに自動的に登録するステップと、
前記データベースに登録されているシステム要素間のデータ授受関係を辿って前記ソフトウェアシステムの論理整合性を自動的に検証し、論理不整合を検出したとき、当該論理不整合に係る情報を出力するステップとを備えた
ことを特徴とするバグレスソフトウェアシステム設計支援方法。
【請求項８】
請求項７に記載のバグレスソフトウェアシステム設計支援方法において、
前記ソフトウェアシステムの論理整合性の検証は、前記プログラムを構成するシステム要素と前記入出力デバイスを構成するシステム要素との間で直接に又は前記データテーブル及びデータ伝達回路のそれぞれを構成するシステム要素の少なくとも一つを経由して間接にデータが授受されるか否か、及び前記データベースに登録されているシステム要素間でデータ授受がループしているか否かの少なくとも一つについての検証である
ことを特徴とするバグレスソフトウェアシステム設計支援方法。
【請求項９】
請求項７に記載のバグレスソフトウェアシステム設計支援方法において、
前記データベースに登録されているシステム要素間のデータ授受関係を参照して、前記データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを自動的に検出するステップと、
前記検出されたシステム要素を前記正方マトリックスから自動的に削除するステップとを備えた
ことを特徴とするバグレスソフトウェアシステム設計支援方法。
【請求項１０】
請求項７に記載のバグレスソフトウェアシステム設計支援方法において、
前記データベースに登録されているシステム要素間のデータ授受関係を参照して、前記データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを自動的に検出するステップと、
前記検出されたシステム要素を前記データベースから自動的に削除するステップとを備えた
ことを特徴とするバグレスソフトウェアシステム設計支援方法。
【請求項１１】
請求項７に記載のバグレスソフトウェアシステム設計支援方法において、
前記データベースに登録されている前記データ伝達回路を構成するシステム要素間のデータ授受関係を参照して、前記データ伝達回路のブロック図を自動的に作成するステップを備えた
ことを特徴とするバグレスソフトウェアシステム設計支援方法。
【請求項１２】
請求項７に記載のバグレスソフトウェアシステム設計支援方法において、
前記データベースには前記システム要素のそれぞれについて別のソフトウェアシステムへの流用可能性を示す情報が登録されており、
新たなソフトウェアシステムの設計に当たって、前記データベースに登録されている前記流用可能性を示す情報を参照して、前記データベースに登録されているシステム要素の中から当該新たなソフトウェアシステムに流用可能なものを自動的に抽出するステップを備えた
ことを特徴とするバグレスソフトウェアシステム設計支援方法。
【請求項１３】
ＣＰＵで実行されるプログラム及び前記ＣＰＵとの間でデータのやり取りをする入出力デバイス並びに前記ＣＰＵと前記入出力デバイスと間に介在するデータテーブル及びデータ伝達回路からなるソフトウェアシステムを論理矛盾なく設計することをコンピュータに支援させるバグレスソフトウェアシステム設計支援プログラムであって、
データベースに接続して、前記プログラム、データテーブル、データ伝達回路及び入出力デバイスのそれぞれを構成するシステム要素の登録、更新及び削除を行う手段、
前記データベースに登録されているシステム要素を行及び列見出しとして同順に並べて構成され、かつ、当該行及び列見出しによって特定される二つのシステム要素間のデータ授受関係の有無を表す行列要素を有する正方マトリックスを表示する手段、
前記表示された正方マトリックスの行列要素に対する表示付与及び削除に応じて、当該行列要素に対応する二つのシステム要素間のデータ授受関係の有無を前記データベースに登録する手段、及び
前記データベースに登録されているシステム要素間のデータ授受関係を辿って前記ソフトウェアシステムの論理整合性を検証し、論理不整合を検出したとき、当該論理不整合に係る情報を出力する手段として、コンピュータを機能させる
ことを特徴とするバグレスソフトウェアシステム設計支援プログラム。
【請求項１４】
請求項１３に記載のバグレスソフトウェアシステム設計支援プログラムにおいて、
前記ソフトウェアシステムの論理整合性の検証は、前記プログラムを構成するシステム要素と前記入出力デバイスを構成するシステム要素との間で直接に又は前記データテーブル及びデータ伝達回路のそれぞれを構成するシステム要素の少なくとも一つを経由して間接にデータが授受されるか否か、及び前記データベースに登録されているシステム要素間でデータ授受がループしているか否かの少なくとも一つについての検証である
ことを特徴とするバグレスソフトウェアシステム設計支援プログラム。
【請求項１５】
請求項１３に記載のバグレスソフトウェアシステム設計支援プログラムにおいて、
前記データベースに登録されているシステム要素間のデータ授受関係を参照して、前記データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを検出する手段、及び
前記検出されたシステム要素を前記正方マトリックスから削除する手段として、コンピュータを機能させる
ことを特徴とするバグレスソフトウェアシステム設計支援プログラム。
【請求項１６】
請求項１３に記載のバグレスソフトウェアシステム設計支援プログラムにおいて、
前記データベースに登録されているシステム要素間のデータ授受関係を参照して、前記データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを検出する手段、及び
前記検出されたシステム要素を前記データベースから削除する手段として、コンピュータを機能させる
ことを特徴とするバグレスソフトウェアシステム設計支援プログラム。
【請求項１７】
請求項１３に記載のバグレスソフトウェアシステム設計支援プログラムにおいて、
前記データベースに登録されている前記データ伝達回路を構成するシステム要素間のデータ授受関係を参照して、前記データ伝達回路のブロック図を作成する手段として、コンピュータを機能させる
ことを特徴とするバグレスソフトウェアシステム設計支援プログラム。
【請求項１８】
請求項１３に記載のバグレスソフトウェアシステム設計支援プログラムにおいて、
前記データベースには前記システム要素のそれぞれについて別のソフトウェアシステムへの流用可能性を示す情報が登録されており、
新たなソフトウェアシステムの設計に当たって、前記データベースに登録されている前記流用可能性を示す情報を参照して、前記データベースに登録されているシステム要素の中から当該新たなソフトウェアシステムに流用可能なものを抽出する手段として、コンピュータを機能させる
ことを特徴とするバグレスソフトウェアシステム設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアシステムの設計支援に関し、特に、論理矛盾のないバグレスソフトウェアシステムの設計支援に関する。
【背景技術】
【０００２】
今日、携帯電話機などのエンドユーザ向け電子機器や家庭電化製品からＡＴＭや交通システムなどの大規模システムに至るまで実に多くのものがコンピュータプログラム、すなわち、ソフトウェアで動作している。そして、これら製品やシステムにおいてソフトウェアで動作する部分の比率はますます高まりつつある。すなわち、これら製品やシステムはソフトウェアを核とするソフトウェアシステムであるといっても過言ではない。
【０００３】
ソフトウェアシステムにおける製品組み込みソフトウェアや業務ソフトウェアにはバグがないことが望ましい。しかし、ソフトウェアのバグをすべて除去することは極めて困難であるため、現実のソフトウェアにはある程度のバグが潜んでいる。実際、ソフトウェアのバグが原因で、ある日突然ＡＴＭや交通システムが停止したり、電子機器が正常に機能しなくなり製品回収を余儀なくされるということはよく耳にするところである。
【０００４】
完成したソフトウェアのデバッグ作業では潜在的なバグをすべて除去することができないため、ソフトウェア開発段階でプログラムにバグが入り込まないようにしようとする向きがある。すなわち、ソフトウェア開発の上流工程において論理検証をして論理矛盾や論理不整合をなくすことで、結果としてバグのないバグレスソフトウェアを完成させることができる。従来、リアルタイム制御システム用の組み込みプログラム開発に関して、システムの状態、システムの内部又は外部で発生する事象、及びある事象が発生したときにシステムが実行すべき処理又は遷移すべき状態の関係を状態遷移表で表し、それに基づいてシステム処理時間を算出することで、現実に発生する多様な事象を考慮したプログラム開発を可能にしている（例えば、特許文献１参照）。
【特許文献１】特開２０００−２０３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、ソフトウェアシステムは、コンピュータプログラム、データテーブル、データ伝達回路、及び入出力デバイスの４つから構成される。図４は、一般的なソフトウェアシステムの構成を示す。メモリ１０１には、ＣＰＵ１０２によって適宜読み出されて実行されるプログラム、及びＣＰＵ１０２で実行されるプログラムによって読み書きされるデータの集まりであるデータテーブルが格納されている。入力データ伝達回路１０３は、入力デバイス１０４からの電気信号をソフトウェア処理可能なデータに変換してデータテーブルに書き込む。入力デバイス１０４は、センサや操作ボタンなどである。出力データ伝達回路１０５は、データテーブルから読み出したデータを電気信号に変換して出力デバイス１０６に供給する。出力デバイス１０６は、アクチュエータや表示装置などである。入力データ伝達回路１０４及び出力データ伝達回路１０５はデータ伝達回路に分類される。入力デバイス１０３及び出力デバイス１０５は入出力デバイスに分類される。
【０００６】
従来のソフトウェアシステム開発では、プログラム及びデータテーブルに係るソフトウェアの設計と、データ伝達回路及び入出力デバイスに係るハードウェアの設計とを分けて行うことが多い。このため、ソフトウェア及びハードウェアはそれぞれ論理矛盾なく実現できたとしても、ソフトウェアとハードウェアとの連携などに論理矛盾や論理不整合があると、それが原因でやはりソフトウェアシステムが不正動作するおそれがある。すなわち、従来のソフトウェアシステム開発手法では、上流工程において、ソフトウェアとハードウェアとの連携部分の論理矛盾や論理不整合といった広義のバグの混入を有効に阻止することができない。システムソフトウェアの開発は、上記４つの構成要素間で、より具体的には上記４つの構成要素のそれぞれを構成するさらに詳細な要素であるシステム要素間でデータが論理矛盾なく授受されることを検証しながら進めることが望ましい。
【０００７】
上記問題に鑑み、本発明は、ソフトウェアシステム全体に亘ってシステム要素間のデータ授受関係を一望できるようにし、これらデータ授受関係を論理検証しながらソフトウェアシステムの設計ができるようにすることを課題とする。さらに、各種製品のモデルチェンジが頻繁に行われる昨今の状況に鑑み、本発明は、一度開発したソフトウェアシステムを新モデル開発や別のビジネス分野への応用に流用できるようにすることを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明では次のような手段を講じた。まず、ＣＰＵで実行されるプログラム及びＣＰＵとの間でデータのやり取りをする入出力デバイス並びにＣＰＵと入出力デバイスとの間に介在するデータテーブル及びデータ伝達回路からなるソフトウェアシステムを論理矛盾なく設計することを支援するバグレスソフトウェアシステム設計支援装置又は方法として、データベースに接続して、プログラム、データテーブル、データ伝達回路及び入出力デバイスのそれぞれを構成するシステム要素の登録、更新及び削除を行うシステム要素編集部又はそれに相当するステップと、データベースに登録されているシステム要素を行及び列見出しとして同順に並べて構成され、かつ、当該行及び列見出しによって特定される二つのシステム要素間のデータ授受関係の有無を表す行列要素を有する正方マトリックスを表示するマトリックス表示部又はそれに相当するステップと、表示された正方マトリックスの行列要素に対する表示付与及び削除に応じて、当該行列要素に対応する二つのシステム要素間のデータ授受関係の有無をデータベースに登録するデータ授受関係編集部又はそれに相当するステップと、データベースに登録されているシステム要素間のデータ授受関係を辿ってソフトウェアシステムの論理整合性を検証し、論理不整合を検出したとき、当該論理不整合に係る情報を出力する論理検証部又はそれに相当するステップとを備えたものとする。
【０００９】
具体的には、ソフトウェアシステムの論理整合性の検証は、プログラムを構成するシステム要素と入出力デバイスを構成するシステム要素との間で直接に又はデータテーブル及びデータ伝達回路のそれぞれを構成するシステム要素の少なくとも一つを経由して間接にデータが授受されるか否か、及びデータベースに登録されているシステム要素間でデータ授受がループしているか否かの少なくとも一つについての検証である。
【００１０】
好ましくは、論理検証部は、データベースに登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを検出するものとする。ここで、マトリックス表示部は、検出されたシステム要素を正方マトリックスから削除するものとする。あるいは、データ授受関係編集部は、検出されたシステム要素をデータベースから削除するものとする。
【００１１】
上記バグレスソフトウェアシステム設計支援装置又は方法は、データベースに登録されているデータ伝達回路を構成するシステム要素間のデータ授受関係を参照して、データ伝達回路のブロック図を作成するブロック図作成部又はそれに相当するステップを備えていることが好ましい。
【００１２】
また、好ましくは、データベースにはシステム要素のそれぞれについて別のソフトウェアシステムへの流用可能性を示す情報が登録されており、システム要素編集部は、新たなソフトウェアシステムの設計に当たって、データベースに登録されている流用可能性を示す情報を参照して、データベースに登録されているシステム要素の中から当該新たなソフトウェアシステムに流用可能なものを抽出するものとする。
【発明の効果】
【００１３】
本発明によると、ソフトウェアシステムを構成するプログラム、データテーブル、データ伝達回路及び入出力デバイスのそれぞれを構成するシステム要素間のデータ授受関係がマトリックス形式で一望でき、これらデータ授受関係を論理検証しながらソフトウェアシステムの設計をすることができる。したがって、ソフトウェアシステム設計の上流工程において広義のバグを排除してバグレスソフトウェアシステムを実現することができる。さらに、製品のモデルチェンジや別のビジネス分野への応用に流用可能なソフトウェアシステムを設計することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。図１は、一実施形態に係るバグレスソフトウェアシステム設計支援装置の構成を示す。本装置は、システム要素編集部１０、マトリックス表示部２０、データ授受関係編集部３０、論理検証部４０及びブロック図作成部５０を備えており、ソフトウェアシステムを論理矛盾なく設計することを支援する。本装置による設計支援対象のソフトウェアシステムは、プログラム、データテーブル、データ伝達回路、及び入出力デバイスの４つから構成される。一般的なソフトウェアシステムの構成は図４に示したとおりである。なお、本装置は、専用のハードウェアとして実施可能であるほか、汎用のコンピュータにコンピュータプログラムを読み込ませてコンピュータを上記各構成手段として機能させることでも実施可能である。
【００１５】
図２は、ソフトウェアシステム「○○ソフトウェアシステム」を設計するときの編集画面を示す。ユーザは、編集画面左側において、プログラム、データテーブル、入出力デバイス及びデータ伝達回路のそれぞれを構成するシステム要素を新規入力し、更新し、あるいは削除する。システム要素編集部１０は、このユーザ操作に応じて、データベース１００に接続してシステム要素の登録、更新及び削除を行う。このとき、新規登録されるシステム要素についてはＦ１、Ｄ１などの識別記号が自動付与される。
【００１６】
プログラムを構成するシステム要素は、構造化プログラミング手法あるいはＣＡＳＥツールなどを用いたＵＭＬモデリングによって階層化して登録してもよい。データ伝達回路を構成するシステム要素もまた階層化して登録することができる。一方、データテーブルを構成するシステム要素は、データの正規化によって互いに重複しないような最小の構造にして登録する。データ重複はバグの要因となるため、設計段階で解消しておくことが好ましい。
【００１７】
マトリックス表示部２０は、データベース１００に登録されているシステム要素間のデータ授受関係をマトリックス形式で表示する。具体的には、マトリックス表示部２０は、データベース１００に登録されているシステム要素を行及び列見出しとして同順に並べて構成され、かつ、当該行及び列見出しによって特定される二つのシステム要素間のデータ授受関係の有無を表す行列要素を有する正方マトリックスを表示する。正方マトリックスにおいて任意の行列要素に「Ｘ」などの表示があれば、その行列要素の列見出しのシステム要素からその行列要素の行見出しのシステム要素にデータが流れることを意味する。なお、「Ｘ」の代わりに行列要素におけるデータの流れの意味を覚え書きとして記述してもよい。
【００１８】
システム要素が自分自身にデータを渡す、あるいは自分からデータを受けることは考えられないため、正方マトリックスにおいて左上から右下への対角線には斜線を引くなどして、当該対角線上の行列要素は編集できないようにしておくことが好ましい。また、データテーブルを構成するシステム要素間でのデータ授受も考えられないため、これら行列要素もまた編集できないようにしておいてもよい。その他のシステム要素間ではデータ授受があり得るため、その他の行列要素は編集可能にしておく。
【００１９】
なお、システム要素編集部１０によってシステム要素の登録、更新及び削除が行われた場合、マトリックス表示部２０はそれに連動して正方マトリックスを構成し直してもよい。また、正方マトリックスが大きすぎて画面に表示しきれない場合、マトリックス表示部２０は正方マトリックスを分割して表示してもよい。
【００２０】
ユーザは、編集画面中の正方マトリックスにおいて「Ｘ」などの表示を付与し、あるいは付与されている表示を削除する。データ授受関係編集部３０は、このユーザ操作に応じて、表示の付与及び削除に係る行列要素で特定される二つのシステム要素間のデータ授受関係の有無をデータベース１００に登録する。正方マトリックス上での編集作業がし易いように、ポイントされた行及び列を色づけして表示してもよい。
【００２１】
論理検証部４０は、データベース１００に登録されているシステム要素間のデータ授受関係を辿って設計対象のソフトウェアシステムの論理整合性を検証し、論理不整合を検出したとき、当該論理不整合に係る情報を出力する。例えば、論理検証部４０は、プログラムを構成するシステム要素と入出力デバイスを構成するシステム要素との間で直接に又はデータテーブル及びデータ伝達回路のそれぞれを構成するシステム要素の少なくとも一つを経由して間接にデータが授受されるか否かを検証する。また、例えば、論理検証部４０は、データベース１００に登録されているシステム要素間でデータ授受がループしているか否かを検証する。そして、データの流れが途切れる箇所やループする箇所を検出すると、論理検証部４０は、アラームを表示して当該エラーの内容を表示する。
【００２２】
また、論理検証部４０は、データベース１００に登録されているシステム要素のうちいずれのシステム要素にもデータを渡さないものを検出してもよい。そのようなシステム要素は不用であるばかりかバグの原因となるため、マトリックス表示部２０によって、そのようなシステム要素を正方マトリックスから削除することが好ましい。あるいは、データ授受関係編集部３０によって、そのようなシステム要素をデータベース１００から削除することが好ましい。
【００２３】
ブロック図作成部５０は、データベース１００に登録されているデータ伝達回路を構成するシステム要素間のデータ授受関係を参照して、データ伝達回路のブロック図を作成する。図３（ａ）（ｂ）は、データ伝達回路のブロック図の作成例を示す。このように、マトリックス形式で表されたデータ伝達回路を構成するシステム要素間のデータ授受関係は、データ伝達回路のブロック図として自動的に変換することができる。なお、ブロック図作成部５０は本装置における任意の構成要素であり、省略可能である。
【００２４】
図２に戻り、ユーザの便宜のため、編集画面に入力データ欄及び出力データ欄を設けるとよい。入力データ欄の内容は、正方マトリックスの行列要素に付与された表示が単なる「Ｘ」などの場合には、行見出しのシステム要素ごとにデータ出力元のシステム要素の識別子を列挙したものである。一方、行列要素にデータの流れの意味が覚え書きとして記述されている場合には、入力データ欄の内容はその覚え書きを列挙したものである。当該列挙はデータベース１００を参照して自動的に行うことができる。一方、出力データ欄の内容は、行見出しのシステム要素ごとにユーザが定義する。これは後述のコーディングの際に必要となるものである。
【００２５】
システム要素の登録及びデータ授受関係の登録が終わり、論理検証部４０による論理検証に合格すると、当該ソフトウェアシステムには広義のバグが存在しなくなっている。したがって、プログラムのコーディング作業はこの段階で行う。具体的には、コーディング作業は、プログラムを構成するシステム要素ごとに、入出力されるデータを考慮して編集画面のコーディング欄に当該システム要素に対応するコードを記入することで行う。ＣＡＳＥツールを使用して自然言語に近い形で（例えば、「〜を〜する」いったように「名詞＋動詞」の形式で）プログラムを構成するシステム要素が特定されていれば、自動コーディングが可能である。なお、コーディング作業はシミュレータなどで動作確認をしつつ進めるのが好ましい。
【００２６】
一度開発したソフトウェアシステムは、製品のモデルチェンジや別のビジネス分野への応用に流用できることが好ましい。このため、システム要素のそれぞれについて別のソフトウェアシステムへの流用可能性を示す情報をリンクさせておく。具体的には、編集画面に固定・変動識別欄を設けて、各システム要素について、新モデル開発のときに流用できる「固定」及び新モデル開発ごとに設計し直す必要がある「変動」を識別できるようする。また、専用・汎用識別欄を設けて、各システム要素について、固有の製品やビジネス向けである「専用」及び他の分野の製品やビジネスに汎用可能である「汎用」を識別できるようにし、さらに、汎用可能である場合にはその汎用先を登録できるようにする。そして、新たなソフトウェアシステムの設計に当たって、システム要素編集部１０は、データベース１００に登録されているこれら流用可能性を示す情報を参照して、データベース１００に登録されているシステム要素の中から当該新たなソフトウェアシステムに流用可能なものを抽出する。これにより、一度開発したソフトウェアシステムの流用化、共用化、再使用化が可能となる。
【００２７】
以上、本実施形態によると、ソフトウェアシステムを構成するプログラム、データテーブル、データ伝達回路及び入出力デバイスのそれぞれを構成するシステム要素間のデータ授受関係がマトリックス形式で一望することができる。そして、これらデータ授受関係を論理検証しながらソフトウェアシステムの設計をすることができる。これにより、ソフトウェアシステム設計の上流工程において広義のバグを排除してバグレスソフトウェアシステムを実現することができる。さらに、製品のモデルチェンジや別のビジネス分野への応用に流用可能なソフトウェアシステムを設計することができる。
【産業上の利用可能性】
【００２８】
本発明に係るバグレスソフトウェアシステム設計支援装置は、ソフトウェアシステム設計の上流工程において広義のバグを排除してバグレスソフトウェアシステムを実現することができるため、携帯電話機などのソフトウェアシステムの設計支援に有用である。
【図面の簡単な説明】
【００２９】
【図１】一実施形態に係るバグレスソフトウェアシステム設計支援装置の構成図である。
【図２】ソフトウェアシステム設計時の編集画面例である。
【図３】データ伝達回路のブロック図作成例を示す図である。
【図４】一般的なソフトウェアシステムの構成図である。
【符号の説明】
【００３０】
１０    システム要素編集部
２０    マトリックス表示部
３０    データ授受関係編集部
４０    論理検証部
５０    ブロック図作成部
１００  データベース
【図１】
0005099839.tif 000002
【図２】
0005099839.tif 000003
【図３】
0005099839.tif 000004
【図４】
0005099839.tif 000005