(57)【特許請求の範囲】
【請求項１】
ソフトウェアの機能要求仕様書作成からプログラムの生成まで行うソフトウェア開発支援装置であって、該ソフトウェア開発支援装置は、
ソフトウェアの機能要件を章構成と章見出の情報を含むテンプレートにユーザが章構成の階層構造で記述する、ソフトウェアの機能要求仕様書作成支援装置と、
プログラムのコンパイル単位であるプログラム構成要素をプログラム構成要素番号とプログラム構成要素名の情報を含むプログラム構成データとしてツリー形式のノードに割り当てて管理し、前記プログラム構成データと、前記各プログラム構成要素の処理内容とからプログラムの生成を行うプログラム生成装置と、
から成り、
前記機能要求仕様書作成支援装置は、機能要求仕様書から前記テンプレートを読込むテンプレート読込手段と、該テンプレート読込手段が読み込んだテンプレートにしたがってユーザがプログラムで実装する機能部分の構成を構造化して記述して少なくとも章番号と章見出を含む機能構成データを作成する機能構成データ作成手段と、作成した前記機能構成データを記憶する機能構成データ記憶手段と、
を備え、
前記プログラム生成装置は、前記機能要求仕様書作成支援装置の前記機能構成データ作成手段が作成した前記機能構成データを取得する機能構成データ取得手段と、取得した前記機能構成データの前記章番号をプログラム構成要素番号に、また取得した前記機能構成データの前記章見出をプログラム構成要素名に読み替えたうえで、ユーザが読み替えた前記機能構成データに基づいてプログラム構成データを生成するプログラム構成データ生成手段と、生成した前記プログラム構成データを基にユーザがプログラムの自動生成を指示することでプログラムを自動生成するプログラム自動生成手段と、
を備えることを特徴とするソフトウェア開発支援装置。
【請求項２】
前記機能要求仕様書作成支援装置は、前記プログラム生成装置が生成した前記プログラム構成データを取得するプログラム構成データ取得手段と、取得した前記プログラム構成データと作成した前記機能構成データとの差異を判定する機能構成データ判定手段とを備えることを特徴とする請求項１記載のソフトウェア開発支援装置。
【請求項３】
前記プログラム生成装置は、前記機能要求仕様書作成支援装置が作成した前記機能構成データと前記プログラム生成装置が生成した前記プログラム構成データとの差異を判定するプログラム構成データ判定手段を備えることを特徴とする請求項１または２記載のソフトウェア開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み製品のソフトウェア機能要件仕様書の作成及びソフトウェア機能要件仕様書をもとに構造化プログラムの実装を支援するソフトウェア開発支援装置に関する。
【背景技術】
【０００２】
組込み製品のソフトウェアの品質を高めるためには、機能要件仕様書から実装までの、成果物の対応を取る必要があり、人手の管理では難しい面がある。そのため、従来、ベンダーからソフトウェアの要件管理ツールとして以下の非特許文献１及び２に示す製品が提供されている。
【０００３】
これらの製品は、要求仕様書の各記載項目と個別のソースファイルとの対応関係と取ることが可能である。
また、従来、構造化プログラミングを実現する上で、図式のプログラムをツリー表示で構造化して管理している例としては、以下の特許文献１に示す例がある。
【０００４】
さらに、従来、設計仕様書に基づいてプログラムを自動生成する例としては下記特許文献２に示す例がある。
さらに、従来、ソフトウェア作成工程からシステムテスト工程までの一連のソフトウェア開発を効率的に行う例として、下記特許文献３に示すような、プログラム作成の中間過程で生成されるオブジェクト間関係記述情報に基づいてＧＵＩベースのソフトウェアの仕様情報を作成し、作成された仕様情報に基づいてシステムテストを行う際の操作手順を定めたテストシナリオを生成する例が示されている
【特許文献１】特開2007-011507号公報
【特許文献２】特開平02-253443号公報
【特許文献３】特開平09-223041号公報
【非特許文献１】「Telelogic DOORS」(登録商標)http://www.telelogic.com/Products/doors/ (閲覧確認2007.06.28)
【非特許文献２】「Serena RTM」(登録商標)http://www.serenainternatinal.com/JP/Products/rtm/home.asp (閲覧確認2007.06.28)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記非特許文献１及び２に示される製品では、要求仕様書とソースファイルとの関連付けを行うときには、まず、要求仕様書を作成し、次にその要求仕様書に基づきソースファイルを作成し、その後、要求仕様書のある項目を実現したソースファイルとの関連付け作業を人が行う必要がある。手作業で行うために、作業時間がかかるのと、作業自体に間違いが起きる可能性があるという問題がある。
【０００６】
上記特許文献１においては、図式プログラムを構造化して管理することは可能であるが、ある図式プログラムの内容が要求仕様書のどの項目と関連しているのかを調査するための記載が無く、要求仕様書の内容に基づかないでプログラムの作成が行われてしまい、ソフトウェアの品質が低下する可能性があるという問題がある。
【０００７】
また上記特許文献２においては、作成した仕様書の内容に基づいてプログラムの自動生成を行っているが、作成した仕様書の内容と自動生成されたプログラムとの対応関係を確認することが可能かは不明確であるため保守性が低下するという課題がある。
【０００８】
さらに上記特許文献３においては、オブジェクト間関係記述情報を作成してファイルに保存し、それを用いて仕様情報を作成し、さらに当該仕様情報からテストシナリオを作成するため、手間と労力が掛かるという課題がある。
【０００９】
そこで本発明では、ソフトウェアの機能要求仕様書に記載した内容に対応してプログラムを実装することで、ソフトウェア開発の作業性と品質を高め、記載した内容とプログラムの対応関係を、人手を介さずに確認することで、間違いを無くし保守性を高めることができるソフトウェア開発支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明のソフトウェア開発支援装置は、ソフトウェアの機能要求仕様書作成からプログラムの生成まで行うソフトウェア開発支援装置であって、該ソフトウェア開発支援装置は、ソフトウェアの機能要件を章構成と章見出の情報を含むテンプレートにしたがってユーザが章構成の階層構造で記述する、ソフトウェアの機能要求仕様書作成支援装置と、プログラムのコンパイル単位であるプログラム構成要素をプログラム構成要素番号とプログラム構成要素名の情報を含むプログラム構成データとしてツリー形式のノードに割り当てて管理し、前記プログラム構成データと、前記各プログラム構成要素の処理内容とからプログラムの生成を行うプログラム生成装置と、から成り、前記機能要求仕様書作成支援装置は、機能要求仕様書から前記テンプレートを読込むテンプレート読込手段と、該テンプレート読込手段が読み込んだテンプレートにしたがってユーザがプログラムで実装する機能部分の構成を構造化して記述して少なくとも章番号と章見出を含む機能構成データを作成する機能構成データ作成手段と、作成した前記機能構成データを記憶する機能構成データ記憶手段と、を備え、前記プログラム生成装置は、前記機能要求仕様書作成支援装置の前記機能構成データ作成手段が作成した前記機能構成データを取得する機能構成データ取得手段と、取得した前記機能構成データの前記章番号をプログラム構成要素番号に、また取得した前記機能構成データの前記章見出をプログラム構成要素名に読み替えたうえで、ユーザが読み替えた前記機能構成データに基づいてプログラム構成データを生成するプログラム構成データ生成手段と、生成した前記プログラム構成データを基にユーザがプログラムの自動生成を指示することでプログラムを自動生成するプログラム自動生成手段と、を備えることを特徴とする。
【００１１】
また本発明は、上記構成を備えるソフトウェア開発支援装置において、前記機能要求仕様書作成支援装置は、前記プログラム生成装置が生成した前記プログラム構成データを取得するプログラム構成データ取得手段と、取得した前記プログラム構成データと作成した前記機能構成データとの差異を判定する機能構成データ判定手段とを備えることを特徴とする。
【００１２】
また本発明は、上記構成を備えるソフトウェア開発支援装置において、前記プログラム生成装置は、前記機能要求仕様書作成支援装置が作成した前記機能構成データと前記プログラム生成装置が生成した前記プログラム構成データとの差異を判定するプログラム構成データ判定手段を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ソフトウェアの機能要求仕様書において、実現すべき機能を機能名と章の情報を機能構成データとして有しており、プログラム生成装置において、前記機能構成データをもとにプログラムの構成要素を作成することが可能となり、機能要求仕様書作成時点で、そこで実現する機能に対応したプログラム構成要素を自動で作成することが可能となり、作業性と品質の向上ができる。
【００１４】
また、プログラム実装者がプログラム生成装置を用いて作業者がプログラム構成要素を機能要求仕様書に記載の機能構成データから間違えて変更してしまった場合においても、機能要求仕様書作成支援装置にて、機能構成データとプログラム構成データとを比較することで、変更点が明確になり保守作業が容易になる。
【００１５】
さらに、機能変更が発生し、機能要求仕様書作成支援装置にて機能構成データを変更した場合でも、プログラム生成装置にて、機能構成データとプログラム構成データとを比較することで、変更点が明確になり、変更作業が容易になる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施形態に係るソフトウェア開発支援装置の構成を示すブロック図である。図１においてソフトウェア開発支援装置４は、サーバ１を構成する各種コンピュータ資源を活用してサーバ１内で具現され、サーバ１は、ネットワーク２を介してユーザ端末３ａ〜３ｃに接続される。サーバ１とユーザ端末３ａ〜３ｃは当該技術分野には知られているサーバ／クライアントシステムを構成する。そしてソフトウェア開発支援装置４は、以下に詳述する機能要求仕様書作成支援装置100と、プログラム生成装置200とから構成される。すなわち、
機能要求仕様書作成支援装置100は、ユーザ端末３ａ〜３ｃから入力された文字や指示を処理するための入力処理部101と、機能要求仕様書としてのデータを管理するデータ管理部102と、要求仕様書の章構成と章見出の情報を含むテンプレートを読み込むテンプレート読込部103と、章番号と章見出を機能構成データとして管理する機能構成データ管理部104と、プログラム生成装置200で作成されるプログラム構成データを読み込むプログラム構成データ読込部105と、図３に示すような機能要求仕様書データを記憶する機能要求仕様書データ記憶部106と、機能要求仕様書データを画面に表示する機能要求仕様書画面表示部107と、章番号と章見出をツリー形式で表示する章構成画面表示部108と、テンプレートを記憶しているテンプレートデータ記憶部109と、章番号と章見出を機能構成データとして記憶している機能構成データ記憶部110と、機能構成データとプログラム構成データ読込部105から読み込んだプログラム構成データとの差異を判定する機能構成データ判定部111とからなる。
【００１７】
またプログラム生成装置200は、ユーザ端末３ａ〜３ｃから入力された文字や指示を処理するための入力処理部201と、プログラム構成要素の処理内容データを管理する処理内容データ管理部202と、プログラム構成データとプログラム構成要素の処理内容データとからプログラムを生成するプログラム生成処理部203と、プログラムのコンパイル単位であるプログラム構成要素をプログラム構成データとしてツリー形式のノードに割り当てて管理するプログラム構成データ管理部204と、機能要求仕様書作成支援装置100で作成される機能構成データを読み込む機能構成データ読込部205と、プログラム構成要素の処理内容データを記憶する処理内容データ記憶部206と、プログラム構成要素の処理内容を画面に表示する処理内容画面表示部207と、プログラム構成要素番号と構成要素名をツリー形式で表示するプログラム構成画面表示部208と、プログラム生成処理部203の出力である生成プログラムを記憶する生成プログラムデータ記憶部209と、プログラム構成要素をプログラム構成要素番号と構成要素名とをプログラム構成データとして記憶するプログラム構成データ記憶部210と、プログラム構成データと機能構成データ読込部205から読み込んだ機能構成データとの差異を判定するプログラム構成データ判定部211とかなる。
【００１８】
図２は、本発明の実施形態に係る機能要求仕様書作成支援装置の画面例を示す図である。図２に示す機能要求仕様書作成支援装置用画面120は、章番号と章見出しをツリー形式で表示する章番号と章見出の表示部121と、機能要求仕様書として章番号、章見出し、外部リンクからなる機能要求仕様書データを表示する機能要求仕様書データ表示部122と、機能要求仕様書作成支援装置100に対する指示を行うための“ファイル”、“章構成”および“プログラム生成装置との連携”とからなるプルダウンメニュー123とからなる。
【００１９】
図３は、本発明の実施形態に係る機能要求仕様書データの定義を示す図である。図３に示す機能要求仕様書データは、章番号11、章見出12、内容13、外部リンク14についてのデータが各項目内に記入されて構成されるものである。
【００２０】
図４は、本発明の実施形態に係る機能構成データの定義を示す図である。図４に示す機能構成データは、プログラムで実装を行うべき機能部分についての、章番号21と章見出22のデータが各項目内に記入されて構成されるものである。
【００２１】
図５は、本発明の実施形態に係るプログラム生成装置の画面例を示す図である。図５に示すプログラム生成装置用画面220は、プログラム構成要素として構成要素番号と構成要素名をツリー形式で表示するプログラム構成データ表示部221と、プログラム構成要素の処理内容について図式プログラムを用いて記述する処理内容表示部222と、具体的なプログラム構成要素である構成要素番号3.2.1.1.1電流検出〜3.2.1.1.3電流調節器に対応したプログラム構成要素の図式プログラム223a〜223cと、プログラム生成装置200に対する指示を行うための“ファイル”、“構成要素管理”および“機能要求仕様書作成支援装置との連携”とからなるプルダウンメニュー224とからなる。
【００２２】
図６は、本発明の実施形態に係るプログラム構成データの定義を示す図である。図６に示すプログラム構成データは、構成要素番号31と構成要素名32とが各項目内に記入されて構成されるものである。構成要素番号31は、ツリー形式の階層に従った番号であり、初期値の設定は任意に可能である。そのため、図６では構成要素番号31の初期値を、図４の機能構成データの先頭の章番号21に合わせている。
【００２３】
次に本発明の実施形態に係るソフトウェア開発支援装置の動作について説明する。
（第１の実施例）
本発明の実施形態に係るソフトウェア開発支援装置において、新規のソフトウェア開発を行う場合の作業フローを図７に示す。図７を用いて本発明の実施形態に係るソフトウェア開発支援装置の第１の実施例の動作について説明する。
【００２４】
図１に示すユーザ端末３ａ〜３ｃから、ネットワーク２を介し、サーバ１上にある、機能要求仕様書作成支援装置100の起動を行う(図７のステップ301)。図２のプルダウンメニュー123から“ファイル”を選び、‘テンプレートの読込’を行う(図７のステップ302)。図２の機能要求仕様書のデータとして章番号、章見出、内容、外部リンクを適切なものになるように入力を行い、図２の機能要求仕様書データ表示部122に示されるように機能要求仕様書においてプログラムで実装する機能部分の構成を3.2章の機能詳細に構造化して記述を行う(図７のステップ303)。機能要求仕様書の記述が完了したらプルダウンメニュー123の“プログラム生成装置との連携”から‘機能構成データファイルの作成’を行う(図７のステップ304)。この操作によりプログラム生成装置200に渡す章番号と章見出とからなる機能構成データが図１に示す機能構成データ記憶部110に記憶される。次に、プルダウンメニュー123の“ファイル”から‘名前をつけて保存’を行い(図７のステップ305)、機能要求仕様書作成支援装置100における処理を終了する(プルダウンメニュー123の“ファイル”を‘閉じる’)(図７のステップ306)。
【００２５】
次に、プログラム生成装置200の起動を行う(図７のステップ307)。図５のプルダウンメニュー224の“ファイル”から‘プロジェクトの新規作成’を行う(図７のステップ308)(この段階では、プログラム構成要素が無いため、図５に示すプログラム生成装置の画面例のようにプログラム構成要素のツリー表示や処理内容の表示が無い状態である)。図５のプルダウンメニュー224の“機能要求仕様書作成支援装置との連携”から‘機能構成データの読込’を行う(図７のステップ309)。この作業を行うことで図５に示すプログラム生成装置の画面例にあるようにプログラム構成要素として、読み込んだ機能構成データから、章番号を構成要素番号、章見出を構成要素名として表示することが可能となる(図５のプログラム構成データ表示部221、処理内容表示部222を参照)。プログラム構成要素の処理内容の記載が無いため、ユーザが処理内容の記述を行う(図７のステップ310)。処理内容の記述が完了したらプルダウンメニュー224の“ファイル”から‘プログラムの自動生成’を行う(図７のステップ311)。次に、生成したプログラムの構成と機能要求仕様書の機能構成とが対応しているかの確認を行えるようにプルダウンメニュー224の“機能要求仕様書作成支援装置との連携”から‘プログラム構成データファイルの作成’を行う(図７のステップ312)。後は、プルダウンメニュー224の“ファイル”で‘名前をつけて保存’でプロジェクトを保存し(図７のステップ313)、同じく‘閉じる’でプログラム生成装置200における処理を終了する(図７のステップ314)。
（第２の実施例）
次に、本発明の実施形態に係るソフトウェア開発支援装置の第２の実施例の動作について図８のフローチャートに基づいて説明する。なお、図７の作業フロー処理が終了している前提で図８の作業フローの記述を行っている。
【００２６】
図１に示すユーザ端末３ａ〜３ｃから、ネットワーク２を介し、サーバ１上にある、機能要求仕様書作成支援装置100の起動を行う(図８のステップ401)。図２のプルダウンメニュー123の“ファイル”を‘開く’で、図７の作業フローで作成して保存した機能要求仕様書を開く(図８のステップ402)。プルダウンメニュー123の“プログラム生成装置との連携”から‘プログラム構成データの読込’を行う(図８のステップ403)。この作業により、図７のステップ312で作成したプログラム構成データを機能要求作成支援装置100で読み込むことができる。次に、プルダウンメニュー123の“プログラム生成装置との連携”から‘機能構成データ判定’を行う(図８のステップ404)。
【００２７】
この機能構成データの判定結果の例を図９に示す。機能構成データである章番号41と章見出42のほかに、プログラム構成データの構成要素番号を章番号に読み替えて、それに対応した構成要素名43を表示し、章番号毎に章見出と構成要素名との差異が無い場合には‘PASS’を表示し、差異がある場合には‘FAIL’とどの部分に差異があるかを判定44に表示する。
（第３の実施例）
次に、本発明の実施形態に係るソフトウェア開発支援装置の第３の実施例の動作について図１０のフローチャートに基づいて説明する。なお、図７の作業フロー処理が終了している前提で図１０の作業フローの記述を行っている。
【００２８】
図１に示すユーザ端末３ａ〜３ｃから、ネットワーク２を介し、サーバ１上にある、プログラム生成装置200の起動を行う(図１０のステップ501)。図５のプルダウンメニュー224の“ファイル”を‘開く’で、図７の作業フローで作成して保存したプログラム生成装置200のプロジェクトを開く(図１０のステップ502)。プルダウンメニュー224の“機能要求仕様書作成支援装置との連携”で‘機能構成データの読込’を行い(図１０のステップ503)、プルダウンメニュー224の“機能要求仕様書作成支援装置との連携”で‘プログラム構成データ判定’を行う(図１０のステップ504)。
【００２９】
このプログラム構成データ判定結果の例を図１１に示す。プログラム構成データとしての構成要素番号51と構成要素名52のほかに、機能構成データの章番号を構成要素番号に読み替えて、それに対応した章見出53を表示し、構成要素番号毎に構成要素名との差異が無い場合には‘PASS’を表示し、差異がある場合には‘FAIL’とどの部分に差異があるかを判定54に表示する。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態に係るソフトウェア開発支援装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る機能要求仕様書作成支援装置の画面例を示す図である。
【図３】本発明の実施形態に係る機能要求仕様書データ例を示す図である。
【図４】本発明の実施形態に係る機能構成データ例を示す図である。
【図５】本発明の実施形態に係るプログラム生成装置の画面例を示す図である。
【図６】本発明の実施形態に係るプログラム構成データ例を示す図である。
【図７】本発明の実施形態に係るソフトウェア開発支援装置の第１の実施例の動作を説明する作業フローチャートである。である。
【図８】本発明の実施形態に係るソフトウェア開発支援装置の第２の実施例の動作を説明する作業フローチャートである。である。
【図９】機能構成データ判定結果の例を示す図である。
【図１０】本発明の実施形態に係るソフトウェア開発支援装置の第３の実施例の動作を説明する作業フローチャートである。
【図１１】プログラム構成データ判定結果の例を示す図である。
【符号の説明】
【００３１】
１  サーバ
２  ネットワーク
３ａ〜３ｃ  ユーザ端末
４  ソフトウェア開発支援装置
100   機能要求仕様書作成支援装置
101   入力処理部
102   機能要求仕様書データ管理部
103   テンプレート読込部
104   機能構成データ管理部
105   プログラム構成データ読込部
106   機能要求仕様書データ記憶部
107   機能要求仕様書画面表示部
108   章構成画面表示部
109   テンプレートデータ記憶部
110   機能構成データ記憶部
111   機能構成データ判定部
120   機能要求仕様書作成支援装置用画面
121   章番号と章見出の表示部
122   機能要求仕様書データ表示部
123   プルダウンメニュー
200   プログラム生成装置
201   入力処理部
202   処理内容データ管理部
203   プログラム生成処理部
204   プログラム構成データ管理部
205   機能構成データ読込部
206   処理内容データ記憶部
207   処理内容画面表示部
208   プログラム構成画面表示部
209   生成プログラムデータ記憶部
210   プログラム構成データ記憶部
211   プログラム構成データ判定部
220   プログラム生成装置用画面
221   プログラム構成データ表示部
222   処理内容表示部
223ａ〜223ｃ  プログラム構成要素の図式プログラム
224   プルダウンメニュー
【図１】
0005125347.tif 000002
【図２】
0005125347.tif 000003
【図３】
0005125347.tif 000004
【図４】
0005125347.tif 000005
【図５】
0005125347.tif 000006
【図６】
0005125347.tif 000007
【図７】
0005125347.tif 000008
【図８】
0005125347.tif 000009
【図９】
0005125347.tif 000010
【図１０】
0005125347.tif 000011
【図１１】
0005125347.tif 000012