(57)【要約】      （修正有）【課題】ソフトウェア機能要件仕様書に記述した内容に応じて、ソフトウェア設計で使用する状態遷移表を自動作成することにより、ソフトウェア開発の効率向上とソフトウェア製品の品質向上を図る。【解決手段】機能要件仕様書作成部１００では、予め定められた項目として少なくとも機能名、入力データ、処理内容、出力データを含むデータを機能構成データとして記憶する。状態遷移表作成部２００では、記憶された前記機能構成データを読込み、状態遷移表のひな形を自動作成する。【選択図】図１
2011008326.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア機能要件仕様書をもとにソフトウェア設計を支援するソフトウェア開発支援装置において、
前記ソフトウェア開発支援装置は、ソフトウェアの機能要件を予め定めた項目に従って記述する機能要件仕様書作成部と、作成された機能要件仕様書の前記記述内容に応じて、ソフトウェア設計で使用する状態遷移表を自動作成する状態遷移表作成部と、前記記述内容を入力処理する入力処理部とを備え、
前記機能要件仕様書作成部は、前記記述項目として少なくとも機能名、入力データ、出力データ、処理内容を含むデータを機能構成データとして記憶する機能構成データ記憶部を備え、
前記状態遷移表作成部は、状態遷移表の構成データとして状態遷移表名、条件、状態、動作、遷移先の項目を記述する状態遷移表記述部と、状態遷移表の前記構成データを管理する状態遷移表データ管理部と、前記機能構成データを読込む機能構成データ読込部と、前記機能構成データに基づき状態遷移表のひな形を作成する状態遷移表変換部とを備えることを特徴とするソフトウェア開発支援装置。
【請求項２】
前記状態遷移表変換部は、前記記述された機能要件仕様書の機能構成データに応じて状態遷移表のひな形を作成するにあたり、前記状態の初期値が入力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該入力データと一致する状態番号を各々代入し、一方、前記状態の初期値が出力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該出力データと一致する状態番号を各々代入することを特徴とする請求項1記載のソフトウェア開発支援装置。
【請求項３】
前記状態遷移表作成部は、前記動作部に記述された文字列を検索する状態遷移表文字列検索部と、前記動作部に記述された文字列で同種の文字列が複数あるときに同種の文字列が隣接するように状態遷移表の行または列を並び替える状態遷移表並び替え処理部とを備えることを特徴とする請求項１または２記載のソフトウェア開発支援装置。
【請求項４】
ソフトウェア機能要件仕様書をもとにソフトウェア設計を支援するソフトウェア開発支援方法において、
前記ソフトウェア開発支援方法は、ソフトウェアの機能要件を予め定めた項目に従って記述する機能要件仕様書作成工程と、作成された機能要件仕様書の前記記述内容に応じて、ソフトウェア設計で使用する状態遷移表を自動作成する状態遷移表作成工程と、前記記述内容を入力処理する入力処理工程とを備え、
前記機能要件仕様書作成工程は、前記記述項目として少なくとも機能名、入力データ、出力データ、処理内容を含むデータを機能構成データとして記憶する機能構成データ記憶工程を備え、
前記状態遷移表作成工程は、状態遷移表の構成データとして状態遷移表名、条件、状態、動作、遷移先の項目を記述する状態遷移表記述工程と、状態遷移表の前記構成データを管理する状態遷移表データ管理工程と、前記機能構成データを読込む機能構成データ読込み工程と、前記機能構成データに基づき状態遷移表のひな形を作成する状態遷移表変換工程とを備えることを特徴とするソフトウェア開発支援方法。
【請求項５】
前記状態遷移表変換工程は、前記記述された機能要件仕様書の機能構成データに応じて状態遷移表のひな形を作成するにあたり、前記状態の初期値が入力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該入力データと一致する状態番号を各々代入し、一方、前記状態の初期値が出力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該出力データと一致する状態番号を各々代入することを特徴とする請求項４記載のソフトウェア開発支援方法。
【請求項６】
前記状態遷移表作成工程は、前記動作部に記述された文字列を検索する状態遷移表文字列検索工程と、前記動作部に記述された文字列で同種の文字列が複数あるときに同種の文字列が隣接するように状態遷移表の行または列を並び替える状態遷移表並び替え処理工程とを備えることを特徴とする請求項４または５記載のソフトウェア開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み製品のソフトウェア開発支援装置および方法に関し、特に、機能要件仕様書の作成、および機能要件仕様書に基づくソフトウェア開発を支援するためのソフトウェア開発支援装置および方法に関する。
【背景技術】
【０００２】
従来技術として、日本工業規格（ＪＩＳ）には、JIS X 160（規格名称：ソフトウェアライフサイクルプロセス）記載のように、ソフトウェアの構想から廃棄に至るまでのライフサイクルに従って、組込み製品のソフトウェア開発を行うための標準規格がある。
【０００３】
また、従来のソフトウェア開発支援装置として、例えば、下記特許文献１記載のシステム開発支援システムのように、システムの機能要件を記述支援するにあたり、記述内容の漏れを防ぐために、記述された基本要件および子要件を固有のＩＤに関連付けてＤＢ登録する技術や、下記特許文献２記載の相互接続試験系列生成方式のように、作成された仕様記述から、JIS X 131（規格名称：ソフトウェアの状態遷移の構成及びその表記方法）記載のような状態遷移表に展開する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３５２８６９号公報
【特許文献２】特開平６−６６６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記JIS X 160記載のようなソフトウェア開発では、実現すべき機能を要件仕様書として記述し、次にその機能要件仕様書に記載の機能を実装するための方式やソフトウェア構造を検討し、次に個別の機能について詳細設計を行い実装するという一連の作業があるが、これらの作業を人が手作業で行うと、作業時間が増大するだけでなく、作業ミスによる不具合の発生する可能性も高くなるという課題がある。
【０００６】
また、上記特許文献１記載のシステム開発支援システムでは、基本要件および子要件の入力フォームまたは更新フォームからシステムの基本機能を記述することにより記述内容の漏れを防ぐことは可能と思われるが、その後のソフトウェア設計で前記記述内容がどのように反映されるが明記されていないという課題がある。
【０００７】
また、上記特許文献２記載の相互接続試験系列生成方式では、相互接続された情報通信端末におけるプロトコル実装の相互接続試験において、状態と状態間の遷移情報として与えられた仕様から端末毎の状態遷移表を生成することが記載されているが、具体的な記述仕様の内容と状態遷移表への展開方法が明記されていないという課題がある。
【０００８】
本発明は、上記のような課題を解決するために提案されたもので、その目的は、ソフトウェア機能要件仕様書の記述内容に応じて、上記ソフトウェア設計で用いる状態遷移表の雛型を作成することにより、機能要件仕様書の記載内容に整合したソフトウェア設計書としての状態遷移表を容易に作成することができ、更に、状態遷移表における同種の動作を纏めることにより、レビュー作業の効率向上を図ることができ、結果として、ソフトウェア開発の効率向上とソフトウェア製品の品質向上を図ることができるソフトウェア開発支援装置及び方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上記の目的を達成するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のソフトウェア開発支援装置は、ソフトウェア機能要件仕様書をもとにソフトウェア設計を支援するソフトウェア開発支援装置であって、前記ソフトウェア開発支援装置は、ソフトウェアの機能要件を予め定めた項目に従って記述する機能要件仕様書作成部と、作成された機能要件仕様書の前記記述内容に応じて、ソフトウェア設計で使用する状態遷移表を自動作成する状態遷移表作成部と、前記記述内容を入力処理する入力処理部とを備え、前記機能要件仕様書作成部は、前記記述項目として少なくとも機能名、入力データ、出力データ、処理内容を含むデータを機能構成データとして記憶する機能構成データ記憶部を備え、前記状態遷移表作成部は、状態遷移表の構成データとして状態遷移表名、条件、状態、動作、遷移先の項目を記述する状態遷移表記述部と、状態遷移表の前記構成データを管理する状態遷移表データ管理部と、前記機能構成データを読込む機能構成データ読込部と、前記機能構成データに基づき状態遷移表のひな形を生成する状態遷移表変換部とを備える。
【００１０】
これにより、機能要件仕様書の記述内容に整合したソフトウェア設計書としての状態遷移表を容易に作成することができ、結果として、ソフトウェア開発の効率向上とソフトウェア製品の品質向上を図ることができる。
【００１１】
また、好適には，本発明のソフトウェア開発支援装置は、前記状態遷移表変換部が、前記記述された機能要件仕様書の機能構成データに応じて状態遷移表のひな形を作成するにあたり、前記状態の初期値が入力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該入力データと一致する状態番号を各々代入し、一方、前記状態の初期値が出力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該出力データと一致する状態番号を各々代入することが望ましい。
【００１２】
また、好適には，本発明のソフトウェア開発支援装置は、前記状態遷移表作成部が、更に、前記動作部に記述された文字列を検索する状態遷移表文字列検索部と、前記動作部に記述された文字列で同種の文字列が複数あるときに同種の文字列が隣接するように状態遷移表の行または列を並び替える状態遷移表並び替え処理部とを備えることが望ましい。
【００１３】
すなわち、本発明の一態様によれば、本発明のソフトウェア開発支援方法は、ソフトウェア機能要件仕様書をもとにソフトウェア設計を支援するソフトウェア開発支援方法であって、前記ソフトウェア開発支援方法は、ソフトウェアの機能要件を予め定めた項目に従って記述する機能要件仕様書作成工程と、作成された機能要件仕様書の前記記述内容に応じて、ソフトウェア設計で使用する状態遷移表を自動作成する状態遷移表作成工程と、前記記述内容を入力処理する入力処理工程とを含み、前記機能要件仕様書作成工程は、前記記述項目として少なくとも機能名、入力データ、出力データ、処理内容を含むデータを機能構成データとして記憶する機能構成データ記憶工程を含み、前記状態遷移表作成工程は、状態遷移表の構成データとして状態遷移表名、条件、状態、動作、遷移先の項目を記述する状態遷移表記述工程と、状態遷移表の前記構成データを管理する状態遷移表データ管理工程と、前記機能構成データを読込む機能構成データ読込み工程と、前記機能構成データに基づき状態遷移表のひな形を生成する状態遷移表変換工程とを備える。
【００１４】
これにより、機能要件仕様書の記述内容に整合したソフトウェア設計書としての状態遷移表を容易に作成することができ、結果として、ソフトウェア開発の効率向上とソフトウェア製品の品質向上を図ることができる。
【００１５】
また、好適には，本発明のソフトウェア開発支援方法は、前記状態遷移表変換工程が、前記記述された機能要件仕様書の機能構成データに応じて状態遷移表のひな形を作成するにあたり、前記状態の初期値が入力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該入力データと一致する状態番号を各々代入し、一方、前記状態の初期値が出力データの場合には前記条件部に前記入力データを、前記動作部に前記出力データを、前記遷移先に当該出力データと一致する状態番号を各々代入することが望ましい。
【００１６】
また、好適には，本発明のソフトウェア開発支援方法は、前記状態遷移表作成工程が、更に、前記動作部に記述された文字列を検索する状態遷移表文字列検索工程と、前記動作部に記述された文字列で同種の文字列が複数あるときに同種の文字列が隣接するように状態遷移表の行または列を並び替える状態遷移表並び替え処理工程とを備えることが望ましい。
【発明の効果】
【００１７】
本発明によれば、機能要件仕様書に記述した機能構成データである、機能名、入力データ、出力データ、処理内容に対応した状態遷移表のひな形を作成するようにしことで、機能要件仕様書の記述内容に整合したソフトウェア設計書としての状態遷移表を容易に作成することができ、結果として、ソフトウェア開発の効率向上とソフトウェア製品の品質向上を図ることができる。
【００１８】
また、本発明によれば、状態遷移表において同種の動作を纏めるようにしことで、共通の動作を行う条件や状態を容易に把握することができ、結果として、レビュー作業の効率向上とソフトウェア製品の品質向上を図ることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係るソフトウェア開発支援装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る機能要件仕様書作成部の画面例である。
【図３】本発明の実施形態に係る状態遷移表作成部の画面例（状態の初期値が入力データの場合）である。
【図４】本発明の実施形態に係るソフトウェア開発支援装置の第１の実施例の動作を説明する作業フローチャートである。
【図５】本発明の実施形態に係る状態遷移表作成部の画面例（状態の初期値が出力データの場合）である。
【図６】本発明の実施形態に係る検索の画面例である。
【図７】本発明の実施形態に係る検索結果の状態遷移表作成部の画面例である。
【図８】本発明の実施形態に係る動作部の同種の文字列の検索結果の画面例である。
【図９】本発明の実施形態に係るソフトウェア開発支援装置の第２の実施例（並び替え）の動作を説明する作業フローチャートである。
【図１０】本発明の実施形態に係る並び替え実施後の状態遷移表作成部の画面例である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施するための形態について、図面に従って具体的に説明する。
図１は、本発明の実施形態に係るソフトウェア開発支援装置の構成を示すブロック図である。図１において本発明のソフトウェア開発支援装置4は、サーバ1を構成する各種コンピュータ資源を利用してサーバ1内に具現され、サーバ1は、ネットワーク2を介してユーザ端末3a〜3cに接続される。サーバ1とユーザ端末3a〜3cは当該技術分野で周知のクライアント／サーバシステムを構成する。そして、本発明のソフトウェア開発支援装置4は、以下に説明する機能要件仕様書作成部100と、状態遷移表作成部200と、ユーザ端末からの入力データを処理する入力処理部300とからなる。
【００２１】
また、上記機能要件仕様書作成部100は、機能要件仕様書の作成画面を表示する機能要件仕様書画面表示部101と、機能構成データとして予め定められた項目である、「機能名」、「入力データ」、「出力データ」、「処理内容」の管理を行う機能構成データ管理部102と、機能構成データの入力や編集を行う機能要件仕様書記述部103と、機能構成データ記憶部104とからなる。
【００２２】
また、上記状態遷移表作成部200は、状態遷移表の作成画面を表示する状態遷移表画面表示部201と、状態遷移表の構成データとして状態遷移表名、条件、状態、動作、遷移先の管理を行う状態遷移表データ管理部202と、状態遷移表データの入力や編集を行う状態遷移表記述部203と、状態遷移表データ記憶部204と、機能構成データを読み込む機構構成データ読込部205と、読み込んだ機能構成データをもとに状態遷移表に変換する状態遷移表変換部206と、状態遷移表の文字列を検索する状態遷移表文字列検索部207と、状態遷移表データの動作に同種の文字列が複数ある場合は同種の文字列が隣接するように行と列の並び替えを行う状態遷移表並び替え処理部208とからなる。
【００２３】
図２は、本発明の実施形態に係る機能要件仕様書作成部の画面例を示す図である。この図２に示す機能仕様書作成部の画面110は、機能仕様書のファイル操作や編集を行うための「ファイル」、「項目管理」、「状態遷移表ひな形作成」からなるメニュー111と、機能構成データの管理番号を記述する管理番号112と、機能構成データの機能名を記述する機能名入力部113と、機能構成データの入力データ数を記述する入力データ数部114と、入力データ数部で記述された数の分だけ、入力データの、データ名115と、論理条件116と、値117と、説明118とを記述する入力データ記述部と、機能構成データの出力データ数を記述する出力データ数部119と、出力データ数部で記述された数の分だけ、出力データの、データ名120と、論理条件121と、値122と、説明123とを記述する出力データ記述部と、機能構成データの処理内容を記述する処理内容記述部124とからなる。
【００２４】
図３は、本発明の実施形態に係る状態遷移表作成部の画面例を示す図である。この図３に示す状態遷移表作成部の画面210は、状態遷移表のファイル操作や編集と、機能要件仕様書作成部への遷移を行うための「ファイル」、「状態遷移表管理」、「機能要件仕様書」からなるメニュー211と、状態遷移表の名称を記述する状態遷移表名入力部212と、状態遷移表の条件を記述する条件部213と、状態遷移表の状態を記述する状態部214と、状態番号を記述する状態番号記述部215と、動作を記述する動作部216と、遷移先として状態番号を記述する遷移先部217とからなる。
【００２５】
次に、本発明の実施形態に係るソフトウェア開発支援装置の動作について説明する。
（第１の実施例）
図４は、本発明の実施形態に係るソフトウェア開発支援装置において、新規にソフトウェア開発を行う場合の作業フローである。この図４を用いて本発明の実施形態に係るソフトウェア開発支援装置の第１の実施例の動作について説明する。
【００２６】
図１に示すユーザ端末3a〜3cから、ネットワーク2を介して、サーバ1上にある、機能要件仕様書作成部100を起動する（S401）。
図２に示す機能要件仕様書作成部の画面110で、メニュー111から「ファイル」を選択し、更にプルダウンメニューから「新規作成」を選択して、機能構成データである機能名、入力データ、出力データ、処理内容を各々記述する（S402）。
【００２７】
次に、メニュー111から「状態遷移表ひな形作成」を選択することで（S403）、図１に示す機能構成データ読込部205を介して機能構成データ記憶部104にある機能構成データが読み込まれ、更にプルダウンメニューから、状態の初期値として「状態：入力データ」または「状態：出力データ」を選択する（S404）。
【００２８】
入力データを選択した場合は、図１に示す状態遷移表変換部206により、状態の初期値として機能構成データの入力データが代入され(S405)、条件部に入力データが代入され（S407）、動作部に出力データが代入され（S409）、遷移先に入力データと一致する状態遷移番号が代入される（S411）。
【００２９】
一方、出力データを選択した場合は、図１に示す状態遷移表変換部206により、状態の初期値として機能構成データの出力データが代入され（S406）、条件部に入力データが代入され（S408）、動作部に出力データが代入され（S410）、遷移先に出力データと一致する状態遷移番号が代入される（S412）。
【００３０】
ここで代入された状態遷移表のひな形に対し、空白部分をユーザが入力して状態遷移表を作成する（S413）。結果として、状態遷移表作成部の画面例を図３（状態の初期値が入力データの場合）および図５（状態の初期値が出力データの場合）に示す。
【００３１】
（第２の実施例）
図９は、本発明の実施形態に係るソフトウェア開発支援装置において、状態遷移表の並べ替えを行う場合の作業フローである。この図９を用いて本発明の実施形態に係るソフトウェア開発支援装置の第２の実施例の動作について説明する。
【００３２】
図３に示す状態遷移表作成部の画面210で、メニュー211から「状態遷移表管理」を選択し、更にプルダウンメニューから「検索」を選択すると、図１に示す状態遷移表文字列検索部207が起動し、図６に示す検索画面表示される。文字列を検索した結果は、図７に示すように、該当する文字列の部分が識別できるように表示され、動作部の同種の文字列を検索した結果は、図８に示すように、該当する同種の文字列と個数が表示される。
【００３３】
更に、図７に示した状態遷移表作成部の画面例で、動作部の同種の文字列が隣接するように行の並び替えを行う。この画面で、「状態遷移表管理」のプルダウンメニュー（図３と同様のため図示せず）から「並び替え」を選択すると、図１に示す状態遷移表並び替え処理部208が起動され（S501）、動作部の同種の文字列を検索し（S502）、同種の文字列がある場合は文字列の行と列の距離を計測する（S503）。図７の場合は、行の距離が１、列の距離は０となる。次に、動作部の同種の文字列が隣接するように行の並び替えを行う（S504）。結果として、状態遷移表作成部の画面例を図１０に示す。
【符号の説明】
【００３４】
1           サーバ
2           ネットワーク
3a〜3c      ユーザ端末
4           ソフトウェア開発支援装置
100         機能仕様書作成部
101         機能要件仕様書画面表示部
102         機能構成データ管理部
103         機能要件仕様書記述部
104         機能構成データ記憶部
110         機能要件仕様書作成部の画面例
111         機能要件仕様書作成部のメニュー
112         管理番号記述部
113         機能名記述部
114         入力データ数記述部
115         入力データのデータ名記述部
116         入力データの論理条件記述部
117         入力データの値記述部
118         入力データの説明記述部
119         出力データ数記述部
120         出力データのデータ名記述部
121         出力データの論理条件記述部
122         出力データの値記述部
123         出力データの説明記述部
124         処理内容記述部
200         状態遷移表作成部
201         状態遷移表画面表示部
202         状態遷移表データ管理部
203         状態遷移表記述部
204         状態遷移表データ記憶部
205         機能構成データ読込部
206         状態遷移表変換部
207         状態遷移表文字列検索部
208         状態遷移表並び替え処理部
210         状態遷移表作成部の画面例
211         状態遷移表作成部のメニュー
212         状態遷移表名の記述部
213         状態遷移表の条件部
214         状態遷移表の状態部
215         状態遷移表の状態番号
216         状態遷移表の動作部
217         状態遷移表の遷移先
【図２】
2011008326.tif 000003
【図３】
2011008326.tif 000004
【図１】
2011008326.tif 000005
【図４】
2011008326.tif 000006
【図５】
2011008326.tif 000007
【図６】
2011008326.tif 000008
【図７】
2011008326.tif 000009
【図８】
2011008326.tif 000010
【図９】
2011008326.tif 000011
【図１０】
2011008326.tif 000012