(57)【要約】【課題】時間軸上における各機能の関係を適切に表示することのできるソフトウェア開発支援装置等を提供する。【解決手段】画面処理部１４１は、ソフトウェアを構成する各機能についての仕様データをユーザに入力させるための仕様データ入力画面を表示部１２に表示する。入力処理部１４２は、仕様データ入力画面に沿って、入力部１１から入力される時間的要素を含む仕様データを入力する。画面処理部１４１は、ユーザに入力された仕様データに基づいて、時間軸上における各機能の関係を示す機能フロー図を生成して、表示部１２に表示する。形式変換部１４４は、入力処理部１４２が入力した仕様データを、予め定められた形式に変換し、仕様書として仕様記憶部１３に記憶させる。【選択図】図１
2015056153.tif 000002
【特許請求の範囲】
【請求項１】
開発対象となるソフトウェアを構成する各機能について、時間的要素を含んだ仕様データを入力する入力手段と、
前記入力手段により入力された仕様データの時間的要素に基づいて、時間軸上における各機能の関係を示す機能フロー図を生成する生成手段と、
前記生成手段により生成された前記機能フロー図を表示する表示手段と、
を備えることを特徴とするソフトウェア開発支援装置。
【請求項２】
前記入力手段により入力された仕様データを記憶する記憶手段を更に備え、
前記生成手段は、前記記憶手段に記憶された仕様データの時間的要素と、前記入力手段により入力された仕様データの時間的要素とに基づいて、前記機能フロー図を生成する、
ことを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記仕様データの前記時間的要素には、機能が実行される条件を示す実行トリガ、機能が終了待ちをする対象を示す同期対象、及び、機能に対し割り当てられる時間を示す時間制約が含まれている、
ことを特徴とする請求項１又は２に記載のソフトウェア開発支援装置。
【請求項４】
前記生成手段は、前記仕様データの前記同期対象に基づいて、同期すべき機能を指し示すシンボルを含んだ前記機能フロー図を生成する、
ことを特徴とする請求項３に記載のソフトウェア開発支援装置。
【請求項５】
前記生成手段は、前記仕様データの前記時間制約に基づいて、時間に制限のある機能を指し示すシンボルを含んだ前記機能フロー図を生成する、
ことを特徴とする請求項３に記載のソフトウェア開発支援装置。
【請求項６】
前記仕様データの整合性を検証する検証手段を更に備える、
ことを特徴とする請求項１から５の何れか１項に記載のソフトウェア開発支援装置。
【請求項７】
入力部と、生成部と、表示部とを含んだソフトウェア開発支援装置における仕様作成支援方法であって、
前記入力部が、開発対象となるソフトウェアを構成する各機能について、時間的要素を含んだ仕様データを入力する入力ステップと、
前記生成部が、前記入力ステップにて入力された仕様データの時間的要素に基づいて、時間軸上における各機能の関係を示す機能フロー図を生成する生成ステップと、
前記表示部が、前記生成ステップにて生成された前記機能フロー図を表示する表示ステップと、
を備えることを特徴とする仕様作成支援方法。
【請求項８】
コンピュータを、
開発対象となるソフトウェアを構成する各機能について、時間的要素を含んだ仕様データを入力する入力部と、
前記入力部により入力された仕様データの時間的要素に基づいて、時間軸上における各機能の関係を示す機能フロー図を生成する生成部と、
前記生成部により生成された前記機能フロー図を表示する表示部と、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発を支援するソフトウェア開発支援装置、仕様作成支援方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来より、ソフトウェア開発において、効率や品質を高めるために、種々のソフトウェア開発支援装置が提案されている。例えば、特許文献１には、仕様書を作成するための仕様データの入力を支援するソフトウェア開発支援装置（仕様入力支援装置）が開示されている。
特許文献１のソフトウェア開発支援装置は、仕様書に記述される各項目（要件）を表すモデルクラスと、各モデルクラスに属する属性間の参照関係を示す参照関係データとをデータベースに格納しており、ユーザ（開発者等）による仕様データの入力を支援する。具体的にこのソフトウェア開発支援装置では、入力候補を表示して仕様データの入力の手間を削減したり、要件間に不整合があれば警告して不整合の発生を抑制している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−７７１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のソフトウェア開発支援装置は、上記の特許文献１にて開示されているように、仕様書を作成する際に、要件間の不整合を警告することができる。
しかしながら、従来のソフトウェア開発支援装置では、そもそも仕様データに時間的要素が含まれていないため、どのような時に不整合が発生し得るのかをユーザが把握することが困難であった。
【０００５】
本発明は、上記のような問題点を解決するためになされたもので、時間軸上における各機能の関係を適切に表示することのできるソフトウェア開発支援装置、仕様作成支援方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係るソフトウェア開発支援装置は、
開発対象となるソフトウェアを構成する各機能について、時間的要素を含んだ仕様データを入力する入力手段と、
前記入力手段により入力された仕様データの時間的要素に基づいて、時間軸上における各機能の関係を示す機能フロー図を生成する生成手段と、
前記生成手段により生成された前記機能フロー図を表示する表示手段と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、時間軸上における各機能の関係を適切に表示することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るソフトウェア開発支援装置の構成の一例を示すブロック図である。
【図２】仕様データ入力画面の一例を示す模式図である。
【図３】機能フロー図の一例を示す模式図である。
【図４】本発明の実施形態に係る仕様作成支援処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、図中同一又は相当部分には同一符号を付す。
【００１０】
図１は、本発明の実施形態に係るソフトウェア開発支援装置１の構成の一例を示すブロック図である。このソフトウェア開発支援装置１は、ソフトウェア開発における仕様作成を支援する装置である。
【００１１】
なお、ソフトウェア開発支援装置１のハードウェア構成は、一般的なパーソナルコンピュータと同等である。すなわち、ソフトウェア開発支援装置１は、何れも図示しないが、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等から構成される制御装置、読み書き可能な不揮発性の半導体メモリやハードディスクドライブ等から構成される外部記憶装置、キーボード、マウス、キーパッド、タッチパッドやタッチパネル等から構成される入力装置、ＣＲＴや液晶モニタ等から構成される表示装置等を備える。
【００１２】
このソフトウェア開発支援装置１は、開発すべきソフトウェアを構成する各機能（例えば、空調機のソフトウェアを開発する場合では「冷房機能」や「暖房機能」等）の仕様作成を支援する装置であり、図１に示すように、入力部１１と、表示部１２と、仕様記憶部１３と、制御部１４と、を備える。
【００１３】
入力部１１は、ユーザ（開発者等）からの入力操作を受け付け、受け付けた入力操作に係る信号を制御部１４に送出する。
【００１４】
表示部１２は、制御部１４の制御の下、ユーザ操作用の画面等を表示する。例えば、表示部１２は、図２に示すような仕様データ入力画面２００を表示する。この仕様データ入力画面２００は、ソフトウェアを構成する各機能についての仕様データをユーザに入力させるための画面であり、制御部１４（後述する画面処理部１４１）により生成される。図示するように、ユーザが入力すべき仕様データには、各機能について、機能ＩＤ２０１、機能名２０２、機能説明２０３、入力データ２０４、出力データ２０５、実行トリガ２０６、同期対象２０７、及び、時間制約２０８が含まれている。
【００１５】
機能ＩＤ２０１は、その機能に固有のＩＤを示している。機能名２０２は、その機能の内容をユーザが認識できる名称を示している。機能説明２０３は、その機能を説明するための文章や図等を示している。入力データ２０４は、その機能に対して入力されるデータの種別及び値（一覧）を示している。出力データ２０５は、その機能が出力するデータの種別及び値（一覧）を示している。
【００１６】
実行トリガ２０６は、その機能が実行される条件を示している（例えば、ユーザによって、他機能の状況や時間周期等が指定される）。同期対象２０７は、その機能が終了待ちをする対象を示している（例えば、ユーザによって、同期すべき他機能が指定される）。そして、時間制約２０８は、その機能に対し割り当てられる時間を示している。
これら実行トリガ２０６、同期対象２０７、及び、時間制約２０８は、その機能における時間的要素であり、後述するように、時間軸上における各機能の関係を求めるのに用いられる。
【００１７】
図１に戻って、仕様記憶部１３は、開発対象となるソフトウェアを構成する各機能についての仕様を記憶する。
例えば、仕様記憶部１３は、上述した仕様データ入力画面２００を操作するユーザによって入力された仕様データ（機能ＩＤ２０１〜時間制約２０８）に基づく仕様書を記憶する。より詳細に仕様記憶部１３は、制御部１４（後述する形式変換部１４４）によって、入力された仕様データが、所定の形式に変換された後の仕様書を記憶する。
【００１８】
制御部１４は、入力部１１、表示部１２、及び、仕様記憶部１３を制御し、それに付随して、これらとの間でデータの授受を行う。より詳細に制御部１４は、画面処理部１４１と、入力処理部１４２と、検証部１４３と、形式変換部１４４と、を備える。なお、これらの各部は、ＣＰＵ等が、ＲＯＭ又は外部記憶装置に記憶されている、所定のプログラムを実行することで実現する。
【００１９】
画面処理部１４１は、ユーザ操作用の画面等を生成し、表示部１２に表示する。例えば、画面処理部１４１は、上述した図２の仕様データ入力画面２００を表示部１２に表示する。
この他にも、画面処理部１４１は、ユーザに入力された仕様データや仕様記憶部１３に記憶された仕様に基づいた機能フロー図を表示部１２に表示する。例えば、画面処理部１４１は、図３に示すような機能フロー図３００を生成して、表示部１２に表示する。この機能フロー図３００は、時間軸上における各機能の関係を示している。つまり、機能フロー図３００により、各機能の一連の流れが把握できるようになっている。
そして、機能フロー図３００には、同期すべき機能を示すための矢印シンボル３０１及び報知メッセージ３０２と、時間に制限のある機能を示すための矢印シンボル３０３及び報知メッセージ３０４と、不整合のある機能を示すための警告メッセージ３０５と、が含まれている。
すなわち、時間軸上におけるソフトウェアの機能間の繋がりが表示されると共に、時間的要素から不整合が起こりやすい箇所が表示されるため、ユーザは、ソフトウェアの構造や処理内容をより把握し易くなる。
【００２０】
画面処理部１４１は、このような機能フロー図３００を、仕様データに含まれる時間的要素（実行トリガ２０６〜時間制約２０８）に基づいて生成する。例えば、画面処理部１４１は、各機能データの実行トリガ２０６に基づいて、時間軸上における各機能の繋がりを求め、流れに沿って各機能を順番に描画する。また、画面処理部１４１は、機能データの同期対象２０７に基づいて、同期すべき機能を特定し、矢印シンボル３０１及び報知メッセージ３０２を描画する。また、画面処理部１４１は、機能データの時間制約２０８に基づいて、時間に制限のある機能を特定し、矢印シンボル３０３及び報知メッセージ３０４を描画する。そして、後述する検証部１４３にて不整合のある機能が特定されている場合に、画面処理部１４１は、警告メッセージ３０５を描画する。
なお、機能フロー図３００における矢印シンボル３０１〜警告メッセージ３０５は、一例であり、他のシンボルやメッセージ等にて描画されてもよい。
【００２１】
図１に戻って、入力処理部１４２は、画面処理部１４１が表示部１２に表示した画面に応じて入力部１１から入力されたデータを処理する。
例えば、上述した図２の仕様データ入力画面２００が表示部１２に表示されている場合、入力処理部１４２は、入力部１１から入力される仕様データを処理する。その際、入力処理部１４２は、検証部１４３と共に、予め定められたルールに則り、入力される仕様データの整合性を検証する。なお整合性の検証についての詳細は、後述する検証部１４３と共に説明する。
また、入力処理部１４２は、仕様データを処理する際に、入力候補を推定し、画面処理部１４１を通じて、仕様データ入力画面２００に候補として表示させる。例えば、入力処理部１４２は、入力項目や直前の入力内容から、次の入力候補を推定し、その入力候補をユーザが選択できるように、仕様データ入力画面２００に表示させる。
この他にも、入力処理部１４２は、必須項目の入力チェックを行う。入力処理部１４２は、例えば、図２の仕様データ入力画面２００における、機能ＩＤ２０１、機能名２０２、入力データ２０４、出力データ２０５、及び、実行トリガ２０６を必須項目として入力チェックを行い、入力漏れを防止する。
【００２２】
検証部１４３は、入力処理部１４２が入力した仕様データの整合性を検証する。すなわち、検証部１４３は、予め定められたルール（ルール情報）を参照し、入力される仕様データの整合性を検証する。
例えば、検証部１４３は、機能間における入力データと出力データとの整合性を検証する。また、検証部１４３は、入力項目に数値範囲や対象範囲等が定められている場合に、入力がその範囲内であるかどうかを検証する。
そして、検証部１４３は、入力データと出力データとの整合性がとれていない場合や、あり得ない入力がされた場合に、画面処理部１４１を通じて警告メッセージ等を表示部１２に表示させる。
なお、整合性を検証する対象は、これらに限られず、適宜変更可能である。例えば、検証部１４３は、機能間における時間的要素についての整合性を検証してもよい。この場合、検証部１４３は、一例として、同期対象２０７や時間制約２０８の整合性を、対象となる機能の時間的要素との関係（例えば、同期対象２０７が交錯していたり、関連する時間制約２０８に矛盾がある等）を基に検証する。
また、検証部１４３は、仕様記憶部１３から読み出した仕様についても、同様に整合性を検証する。
【００２３】
形式変換部１４４は、入力処理部１４２が入力した仕様データを、予め定められた形式に変換し、仕様書として仕様記憶部１３に記憶させる。例えば、変換する形式は、表形式、文書形式、及び、図形式等の何れかであり、ユーザが任意に選択可能としてもよい。
また、形式変換部１４４は、仕様記憶部１３に記憶された仕様書を読み出し、仕様データに変換する。
【００２４】
続いて、上記構成のソフトウェア開発支援装置１の動作について、以下、図４を参照して説明する。図４は、制御部１４が実行する仕様作成支援処理の一例を示すフローチャートである。この仕様作成支援処理は、初めて仕様を作成する場合だけでなく、機能追加型の手法で作成済みの仕様を利用して仕様を作成する場合にも対応可能となっている。
【００２５】
まず、制御部１４は、既存の仕様書への仕様の追加であるか否かを判別する（ステップＳ４０１）。つまり、制御部１４は、作成済みの仕様を利用して仕様を作成することを、ユーザに指示されたかどうかを判別する。
制御部１４は、既存の仕様書への仕様の追加でないと判別すると（ステップＳ４０１；Ｎｏ）、後述するステップＳ４０３に処理を進める。
【００２６】
一方、既存の仕様書への仕様の追加であると判別した場合に（ステップＳ４０１；Ｙｅｓ）、制御部１４は、仕様記憶部１３に記憶された仕様を読み込み、仕様データに変換する（ステップＳ４０２）。
すなわち、形式変換部１４４は、仕様記憶部１３に記憶された対象の仕様書を読み出し、仕様データに変換する。
【００２７】
制御部１４は、仕様データの入力の有無を判別する（ステップＳ４０３）。例えば、画面処理部１４１が、上述した図２の仕様データ入力画面２００を表示部１２に表示した状態で、入力処理部１４２が、仕様データを入力したかどうかを判別する。
制御部１４は、仕様データの入力がないと判別すると（ステップＳ４０３；Ｎｏ）、後述するステップＳ４０７に処理を進める。
【００２８】
一方、仕様データの入力があったと判別した場合に（ステップＳ４０３；Ｙｅｓ）、制御部１４は、ルールに従って、整合性を検証する（ステップＳ４０４）。
すなわち、検証部１４３は、予め定められたルールを参照して、入力処理部１４２が入力した仕様データの整合性を検証する。
例えば、検証部１４３は、機能間における入力データと出力データとの整合性を検証したり、入力項目に数値範囲や対象範囲等が定められている場合に、入力がその範囲内であるかどうかを検証する。
【００２９】
制御部１４は、検証により不整合があったか否かを判別する（ステップＳ４０５）。
制御部１４は、不整合がないと判別すると（ステップＳ４０５；Ｎｏ）、後述するステップＳ４０７に処理を進める。
【００３０】
一方、不整合があったと判別した場合に（ステップＳ４０５；Ｙｅｓ）、制御部１４は、警告メッセージを表示する（ステップＳ４０６）。
例えば、検証部１４３は、入力データと出力データとの整合性がとれていない場合や、あり得ない入力がされた場合に、画面処理部１４１を通じて警告メッセージ等を表示部１２に表示させる。
【００３１】
制御部１４は、機能フロー図の表示要求がなされたか否かを判別する（ステップＳ４０７）。
制御部１４は、機能フロー図の表示要求がないと判別すると（ステップＳ４０７；Ｎｏ）、後述するステップＳ４０９に処理を進める。
【００３２】
一方、機能フロー図の表示要求があったと判別した場合（ステップＳ４０７；Ｙｅｓ）に、制御部１４は、機能フロー図を生成して表示する（ステップＳ４０８）。
画面処理部１４１は、例えば、図３に示す機能フロー図３００を生成して、表示部１２に表示する。
上述したように、この機能フロー図３００は、時間軸上における各機能の関係を示しており、ユーザが、各機能の一連の流れを把握できるようになっている。
すなわち、矢印シンボル３０１〜報知メッセージ３０４等を含む機能フロー図３００によって、時間軸上におけるソフトウェアの機能間の繋がりが表示されるため、ユーザは、ソフトウェアの構造や処理内容をより把握し易くなる。
【００３３】
制御部１４は、入力が完了したか否かを判別する（ステップＳ４０９）。つまり、仕様データについての全ての入力が完了したかどうかを判別する。
制御部１４は、入力が完了していないと判別すると（ステップＳ４０９；Ｎｏ）、ステップＳ４０３に処理を戻し、上述したステップＳ４０３〜Ｓ４０９の処理を繰り返し実行する。
【００３４】
一方、入力が完了したと判別した場合に（ステップＳ４０９；Ｙｅｓ）、制御部１４は、仕様データを形式変換し、仕様記憶部１３に保存する（ステップＳ４１０）。
すなわち、形式変換部１４４は、入力処理部１４２が入力した仕様データを、予め定められた形式に変換し、仕様書として仕様記憶部１３に記憶させる。
【００３５】
このような仕様作成支援処理によって表示される機能フロー図（一例として、図３の機能フロー図３００）によって、時間軸上におけるソフトウェアの機能間の繋がりが表示されると共に、時間的要素から不整合が起こりやすい箇所が表示されるため、ユーザは、ソフトウェアの構造や処理内容をより把握し易くなる。これにより、例えば、ソフトウェアに対する機能追加設計や試験仕様設計が容易かつ漏れのないものとなり、ソフトウェア開発の効率や品質を向上させることができる。
また、このような仕様作成支援処理における仕様データの入力時に、仕様データ入力画面（一例として、図２の仕様データ入力画面２００）によって、時間的要素の入力をユーザに要求するため、時間軸上における各機能の繋がりについてユーザに強く意識させることができる。これにより仕様の漏れ等を低減することができ、ソフトウェア開発の品質を向上させることができる。
更に、このような仕様作成支援処理にて機能追加型の手法を用いて、既存の仕様書が流用できるようになるので、仕様作成の所要時間を低減でき、ソフトウェア開発工数を低減させることができる。
【００３６】
このように、本発明の実施形態に係るソフトウェア開発支援装置１は、時間軸上における各機能の関係を適切に表示することができる。
【００３７】
上記の実施形態では、ソフトウェア開発支援装置１が仕様書の作成を支援する場合について説明したが、更に、プログラムコード（実装コード）の作成を支援できるようにしてもよい。
例えば、制御部１４（入力処理部１４２）は、各機能に対応する実装コードを入力できる様にし、入力した実装コードを別の記憶部（例えば、実装コード記憶部）に、仕様記憶部１３の仕様と対応付けて記憶する。
そして、実装コードについての機能フロー図を作成する際に、制御部１４（画面処理部１４１）は、例えば、上述した図３に示すような機能フロー図３００を作成した後に、各機能を対応する実装コードの名称等に置き換えた機能フロー図を作成して、表示部１２に表示する。
この場合も実装コードについての機能フロー図により、時間軸上におけるソフトウェアの機能間の繋がりが表示されるため、ユーザは、ソフトウェアの構造や処理内容をより把握し易くなる。また、実装コードについての機能フロー図にも、同期すべき機能を示すための矢印シンボル等や、時間に制限のある機能を示すための矢印シンボル等が表示されるため、ユーザは、それらを強く意識したコーディングを行うことになり、ソフトウェア開発の品質を向上させることができる。
【００３８】
上記の実施形態では、ソフトウェア開発支援装置１を用いる場合について説明したが、これらソフトウェア開発支援装置１の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末機器等に適用することで、当該パーソナルコンピュータ等を本発明に係るソフトウェア開発支援装置１として機能させることも可能である。
【００３９】
また、このようなプログラムの配布方法は任意であり、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical Disk）、メモリカード等のコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネット等の通信ネットワークを介して配布してもよい。
【００４０】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００４１】
１  ソフトウェア開発支援装置、１１  入力部、１２  表示部、１３  仕様記憶部、１４  制御部、１４１  画面処理部、１４２  入力処理部、１４３  検証部、１４４  形式変換部
【図１】
2015056153.tif 000003
【図２】
2015056153.tif 000004
【図３】
2015056153.tif 000005
【図４】
2015056153.tif 000006