(57)【要約】【課題】  ソフトウェア開発支援装置において、設計情報変更時の影響波及先を漏れなく把握し当該設計情報を修正することによって、設計情報全体として常に整合性を保ち続けることを課題とする。【解決手段】  上記の課題を解決するために、本発明では、設計用サーバ及び設計用端末から成るソフトウェア開発支援装置は、設計用サーバに設計情報や設計影響ステータス等が蓄積されている設計情報テーブルを備え、呼び出し元メソッドと呼び出し先メソッドの親子関係を蓄積されている設計情報リンクテーブルを備え、設計用端末から設計情報が更新された際に当該設計情報の影響波及分析を行う機能を備え、影響波及先設計情報の一覧を設計用端末で通知する機能を備える。設計用端末は、設計用サーバから設計情報変更時に影響波及先設計情報一覧の通知を受ける機能を備え、設計者はその情報を見ながら当該設計情報に修正を加えるべきかの判断が可能となる。【選択図】  図２
2013190890.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアの開発における修正の影響を管理するためのソフトウエア開発支援方法において、
前記ソフトウエアの開発における設計情報を記憶装置に記憶し、
前記設計情報の更新により他の設計情報へその影響が波及する可能性を示唆するフラグである設計影響ステータスを、前記設計情報と対応付けて前記記憶装置に記憶し、
前記設計影響ステータスを用いて、前記設計により生じる影響範囲を特定することを特徴とするソフトウエア開発支援方法。
【請求項２】
請求項１に記載のソフトウエア開発支援方法において、
前記設計情報が更新されたことを検知し、
検知された更新に対応する前記設計影響ステータスの変化に基づいて、前記影響範囲を特定することを特徴とするソフトウエア開発支援方法。
【請求項３】
請求項１または２のいずれかに記載のソフトウエア開発支援方法において、
前記特定された影響範囲を、前記ソフトウエアの開発者が使用する設計用端末に送信することを特徴とするソフトウエア開発支援方法。
【請求項４】
請求項３に記載のソフトウエア開発支援方法において、
前記設計用端末は、送信される影響範囲を一覧表形式で表示することを特徴とするソフトウエア開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア（やシステム）の開発を支援するための技術に関し、その中でも特に、設計項目修正の際に発生する影響の波及を分析するための技術に関する。
【背景技術】
【０００２】
システムやソフトウェアの開発プロセスは、要求記述文書の作成から始まり、設計モデルの作成、またその設計モデルからプログラムコードを作成するというように、それぞれの成果物によって区切られる多くのプロセスから構成されている。この設計モデル作成に当たっては本技術分野の背景技術として、特許文献１がある。特許文献１では、要求仕様文書の雛形(シナリオパタン)を組み立てる形式で容易に要求仕様文書を作成する環境を実現し、かつ要求仕様文書からソフトウェア設計情報を抽出する際、シナリオパタンが備えるソフトウェア設計の調整変数や、シナリオパタン間の関係情報を用いることで、ソフトウェアの画面構成、画面遷移、データなどを要求仕様文書と連携して検証、管理することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２５７２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１を含む従来のシステム開発は設計整合性という観点で、以下に示す３つの課題がある。
まず第一に、設計情報変更時に実装物のみを変更してしまう場合がある点である。これまで設計情報に変更が発生した場合は、その影響を受ける他の設計情報やその設計者に、口頭、メール、文書等で通知されていた。その際、実装物作成まで作業が進んでいる場合は、変数名に代表される物理名を変更し対処する方法等が考えられるが、当該設計書まで戻って整合性を確保することなく実装物のみを変更してしまう状況がしばしば発生していたため、設計品質の低下が懸念されていた。
【０００５】
第二に、設計変更時の影響範囲を正確に把握できない点である。設計工程において設計変更点の影響波及調査を設計担当者が独自に実施することは可能だが、網羅性という観点で確実とは言えず、影響通知先の選定、通知方法、通知タイミング等も俗人的になるため、設計不整合が発生しやすくなり、設計品質を担保させることが困難となる。
【０００６】
第三に、設計変更時の影響範囲を全設計者が調査できるわけではないという点である。メソッドの呼び出し関係が複雑である場合、当該設計項目を担当した設計者以外の設計者が変更情報の影響波及を実施することは事実上困難となる。そのため、各設計者が影響波及箇所を漏れなく把握できるような仕組みが必要となる。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明では、ソフトウエアの設計に関する設計情報と、当該設計情報の更新により他の設計情報へその影響が波及する可能性を示唆するフラグである設計影響ステータスを用いて、設計により生じる影響を管理するものである。さらに、本発明には、呼出元メソッドと呼出先メソッドの親子関係と設計影響ステータスとを対応付けて管理し、設計情報が更新された際にこれらを用いて当該設計情報の影響波及分析を行うことも一態様として含まれる。またさらに、上記分析結果である影響波及先設計情報の一覧を、設計用端末で通知する機能を設けてもよい。
【発明の効果】
【０００８】
本発明によれば、設計による修正（変更）があった場合、その修正による影響を管理することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態のハード及びハード内におけるモジュールの構成を示すブロック図である。
【図２】本発明の一実施形態における全体の作業を示すフローチャートである。
【図３】本発明の一実施形態におけるモジュールの処理手順を示すフローチャートである。
【図４】本発明の一実施形態において、設計情報が更新されてから影響波及分析の結果に伴い設計情報の再更新が完了するまでの一連の動作で使用する設計情報テーブルである。
【図５】本発明の一実施形態において、設計情報が更新されてから影響波及分析の結果に伴い設計情報の再更新が完了するまでの一連の動作で使用する設計情報リンクテーブルである。
【図６】本発明の一実施形態において、設計用端末上に表示される各種画面を示すクラス一覧画面図である。
【図７】本発明の一実施形態において、設計用端末上に表示される各種画面を示すメソッド一覧画面図である。
【図８】本発明の一実施形態において、設計用端末上に表示される各種画面を示す業務呼出定義画面図である。
【図９】本発明の一実施形態において、設計用端末上に表示される各種画面を示すクラス影響波及情報一覧画面図である。
【発明を実施するための形態】
【００１０】
以下に、本発明の一実施形態を図面を用いて説明する。
図１は、本実施形態のハードおよびハード内におけるモジュールの構成を示すブロック図であり、図２は、本実施形態における影響波及分析支援手法の全体作業フローチャートであり、図３は、図１で示したモジュールにおける処理手順を示すフローチャートである。図４は、本実施形態において、設計情報が更新されてから影響波及分析の結果に伴い設計情報の再更新が完了するまでの一連の動作で使用するデータテーブルである。
【００１１】
図１において、本実施形態で示している影響波及分析支援手法は、設計情報波及分析モジュール１０を有している。
【００１２】
設計情報波及分析モジュール１０は、設計用端末から設計者が設計情報を更新し、設計情報テーブル１２が更新されると、設計情報リンクテーブル１４を用いて当該設計情報が変更されることにより影響が出る可能性のある設計情報を抽出し通知する。図４と図５は、図１における各テーブルのデータ構成の一例である。以下に図４と図５の各テーブルの関係について説明する。
【００１３】
図４に示す「設計情報テーブル」は、図１の設計情報テーブルのデータ構成例である。次に設計情報テーブルの各項目について説明する。内部ＩＤは、各設計情報を一意に識別するための固有の番号であり、新しい設計情報を追加するたびに採番される。メソッド名は、当該設計情報が指し示すメソッドの名称を表す。使用メソッド１と使用メソッド２は、当該設計情報が呼び出している他のメソッドの名称を示す。影響ステータス２５０は、ある設計情報が更新された際、当該設計情報へ影響する（変更が必要になる）可能性がある場合に「影響あり」という値となる。影響ステータス２５０が「影響あり」となっている設計情報全てにおいて設計者が見直しを行い、全設計情報の影響ステータス２５０から「影響あり」という値を取り払わなければ、設計情報の整合性が保てたと言うことはできない。バージョン番号２５２は、当該設計情報の更新回数（設計情報初回作成時を「１」とする）を表し、設計者が設計情報を更新する際の楽観排他制御に使用する。
【００１４】
次に、図５に示す「設計情報リンクテーブル」は、図１の設計情報リンクテーブルのデータ構成例である。次に設計情報リンクテーブルの各項目について説明する。親・内部ＩＤも子・内部ＩＤも、設計情報テーブルの内部ＩＤとして存在している番号が充てられる。新しい設計情報を追加するたびに、メソッドＡが内部でメソッドＢを呼び出していた場合、呼び出し元のメソッドＡの内部ＩＤが「親・内部ＩＤ」として、呼び出し先のメソッドＢの内部ＩＤが「子・内部ＩＤ」として、一組のペアで設計情報リンクテーブルに蓄積される。これにより、あるメソッドがどのメソッドから呼び出されているのか、また、あるメソッドがどのメソッドを呼び出しているのかという親子関係を明確にさせることが可能となる。影響ステータス２７０は、ある設計情報が更新された際、当該設計情報へ影響する(変更が必要になる)可能性がある場合に「影響あり」という値となる。本項目を設計情報リンクテーブルに付け加えることで、どの設計情報を更新することによって当該設計情報に影響波及したのかという関連付けを可能にしている。本項目は、図９に示す「影響波及情報一覧画面」表示時に使用され、影響波及情報における設計者の内容理解の手助けとなっている。なお、設計情報リンクテーブルにはテーブル内検索時の処理速度向上を目的として、フィールドを「親・内部ＩＤ」とした昇順のインデックスと、フィールドを「子・内部ＩＤ」とした昇順のインデックスと、フィールドを「影響ステータス」とした昇順のインデックスを作成している。
【００１５】
図６と図７と図８と図９は、図１における設計用端末上に表示される各種画面を示す画面図である。以下に図６と図７と図８と図９の各画面図の関係について説明する。
【００１６】
図６に示す「クラス一覧画面」は、設計済みクラスを設計用端末へ一覧表示する画面３００である。画面３００は、クラスを一件選択するためのラジオボタン３０２と、クラス名３０４と、クラス日本語名３０６と、クラス処理内容３０８と、メソッド一覧ボタン３１０からなる。ラジオボタン３０２を一箇所選択した状態でメソッド一覧ボタン３１０を押下すると、当該クラスにおけるメソッド一覧を表示する画面４００に遷移できる。
【００１７】
次に、図７に示す「メソッド一覧画面」は、ある一件のクラスにおける設計済みメソッドを設計用端末へ一覧表示する画面４００である。画面４００は、当該メソッドが所属するクラス名４０２と、クラス日本語名４０４と、クラス処理内容４０６と、メソッドを一件選択するためのラジオボタン４０８と、メソッド名４１０と、メソッド日本語名４１２と、メソッド処理内容４１４と、影響ステータス４１６と、業務呼出定義ボタン４１８からなる。ラジオボタン４０８を一箇所選択した状態で業務呼出定義ボタン４１８を押下すると、当該メソッドにおける呼出クラス名と呼出メソッド名を表示する画面５００に遷移できる。
【００１８】
次に、図８に示す「業務呼出定義画面」は、ある一件のメソッドにおける呼出クラス名と呼出メソッド名を表示する画面５００である。画面５００は、当該メソッドが所属するクラス名５０２と、当該メソッド名５０４と、呼出メソッド名５１０を一件選択するためのラジオボタン５０６と、呼出クラス名５０８と、呼出メソッド名５１０と、影響ステータス５１２と、更新ボタン５１４と、確認ボタン５１６からなる。影響ステータス５１２が「影響あり」である項目をラジオボタン５０６にて一箇所選択した状態で更新ボタン５１４を押下すると、当該メソッドは他の設計情報更新による影響波及の可能性があり、設計者により修正の必要が認められたものと判断され、設計情報が修正可能となる。影響波及先の設計情報を更新完了次第、影響ステータス５１２が解除される(当該項目の値を「影響あり」から「−」にする)。また、影響ステータス５１２が「影響あり」である項目をラジオボタン５０６にて一箇所選択した状態で確認ボタン５１６を押下すると、当該メソッドは他の設計情報更新による影響波及の可能性があったが設計者により修正の必要性がなかったものと判断され、影響ステータス５１２が解除される(当該項目の値を「影響あり」から「−」にする)。
【００１９】
現行システムでは、影響波及先設計情報(影響ステータス５１２が「影響あり」となっている項目)の確認や更新を行うために、上記クラス一覧画面３００、メソッド一覧画面４００、業務呼出定義画面５００と画面を順に追い確かめていかなければならない。この場合、設計者が影響波及設計情報の総数を把握しづらいことや、影響波及設計情報の確認を漏れなく実施することが難しい等の問題が生じる。本問題点を解決するため、設計用端末に新たに影響波及情報一覧画面６００を表示させることとする。
【００２０】
次に、図９に示す「影響波及情報一覧画面」は、設計者が更新を行った設計情報(クラス名/メソッド名)と、それに対応する影響波及先設計情報(クラス名/メソッド名)の一覧を表示させる画面６００である。画面６００は、更新設計情報と影響波及先設計情報の組み合わせを一件選択するためのラジオボタン６０２と、更新設計情報のクラス名６０４と、更新設計情報のメソッド名６０６と、影響波及先設計情報のクラス名６０８と、影響波及先設計情報のメソッド名６１０と、影響波及情報更新ボタン６１２と、確認ボタン６１４からなる。影響波及情報更新ボタン６１２を押下すると、図１で示した設計情報リンクテーブル１４の中から影響ステータスが「影響あり」となっている項目を抽出し、その時点で最新の影響波及情報が一覧化して評される。更新設計情報と影響波及先設計情報の組み合わせをラジオボタン６０２にて一箇所選択した状態で確認ボタン６１４を押下すると、図８にて示した業務呼出定義画面５００へ遷移し、当該影響波及設計情報に修正を加えるか否か設計者が判断を行う。
【００２１】
次に、図２において、本実施形態で示している影響波及分析支援手法の全体作業フローを示す。
まず、設計用端末１４０上の設計画面から送られる設計者の指示に従って設計情報テーブル１２を更新する。その際、システムは事前に設計情報テーブル１２上のバージョン番号２５２の値を取得しており、設計情報更新時にバージョン番号２５２へは先程取得したバージョン番号２５２の値に１を加算したものを再設定する。ここで、事前に取得していたバージョン番号２５２の値と設計情報更新時（バージョン番号２５２再設定前）のバージョン番号２５２の値が異なっていた場合、設計情報に不整合が生じている可能性があるため更新内容を破棄し、設計者用端末１４０へエラーを通知することで楽観排他制御を実現している（ステップ１００）。設計情報テーブル１２上のメソッド名と使用メソッド（1箇所以上）への更新が完了すると、図１の設計情報波及分析モジュール１０へ処理を移す（ステップ１０２）。設計用端末１４０から影響波及情報一覧画面６００上の影響波及情報更新ボタン６１２が押下されたことを検知すると（ステップ１０４）、設計情報リンクテーブル１４より影響ステータス２７０が「影響あり」となっている設計情報を抽出する。
【００２２】
このとき、設計情報リンクテーブル１４において「影響ステータス」にはインデックスを作成しているため、本カラムをキーとした検索処理を高速に実行することができる。また、本カラムに格納されるデータは「影響あり」と「−」の2種類しか存在しないが、「影響あり」の存在件数は「−」と比較してかなり少ないことが想定されるため、設計情報リンクテーブル１４内に格納されるデータが莫大な数となるメガバンク等の大規模システム開発時においても、本カラムの値が「影響あり」である項目を検索する場合、検索処理速度向上の観点でインデックスの使用が効果的だと考えられる（ステップ１０６）。その結果、1件以上の影響波及情報が存在していれば（ステップ１０８）、設計情報リンクテーブル１４と設計情報テーブル１２から影響波及情報を一覧化できる状態で受信し、設計用端末１４０へ影響波及情報一覧画面６００として表示する（ステップ１１０）。設計用端末１４０上の影響波及情報一覧画面６００より、更新設計情報と影響波及先設計情報の組み合わせ一件が選択され確認ボタン６１４が押下されたことを検知すると（ステップ１１４）、当該影響波及先設計情報の業務呼出定義画面５００へと遷移する（ステップ１１６）。業務呼出定義画面５００において、設計者により更新ボタン５１４と確認ボタン５１６のどちらが押下されたかを検知し（ステップ１１８）、更新ボタン５１４が押下された場合（設計項目更新の必要あり）、ラジオボタン５０６にて選択された設計情報について、設計用端末１４０より当該設計画面を表示し、設計者の指示に従って設計情報テーブル１２を更新する。この際においても、ステップ１００と同様に楽観排他制御を使用して設計情報の更新を行っている（ステップ１２０）。
【００２３】
次に、設計情報テーブル１２上のメソッド名と使用メソッド（1箇所以上）への更新完了の入力を検知すると、設計情報テーブル１２と設計情報リンクテーブル１４における当該設計項目の影響ステータスが解除（影響ステータス２５０と影響ステータス２７０の値を「影響あり」から「−」にする）された後（ステップ１２２）、図１の設計情報波及分析モジュール１０へ処理を移す（ステップ１２４）。確認ボタン５１６が押下された場合（設計項目更新の必要なし）、設計情報テーブル１２と設計情報リンクテーブル１４における当該設計項目の影響ステータスが解除（影響ステータス２５０と影響ステータス２７０の値を「影響あり」から「−」にする）することにより当該設計項目への影響波及がない旨を確認する（ステップ１２６）。このようなステップ１１４からステップ１２６の一連の処理を影響波及情報一覧画面６００での各表示項目について実施された上で（ステップ１１２）、設計用端末１４０から影響波及情報一覧画面６００上の影響波及情報更新ボタン６１２が押下されたことを検知すると（ステップ１０４）、再度ステップ１０６以降の処理を実行する。これを全影響ステータスが解除（影響ステータス２５０と影響ステータス２７０の値を「影響あり」から「−」にする）されるまで繰り返す（ステップ１０８）。以上のような手順を踏むことで、影響波及設計情報の更新がきっかけで新たな影響波及情報が発生した場合でも、漏れなく当該情報の修正内容を取り込むことが可能となる。
【００２４】
次に図３において、設計情報波及分析モジュール１０の起動（ステップ２００）から終了までの動作を説明する。
【００２５】
まず、変更された設計情報から呼び出されている設計情報があるか調べるため、変更された設計情報の内部ＩＤをキー「親・内部ＩＤ」とし、設計情報リンクテーブル１４より対応する「子・内部ＩＤ」を検索する。このとき、設計情報リンクテーブル１４において「親・内部ＩＤ」にはインデックスを作成しているため、本カラムをキーとした検索処理を高速に実行することができる。また、本カラムに格納されるデータの種類数が非常に多いため、設計情報リンクテーブル１４内に格納されるデータが莫大な数となるメガバンク等の大規模システム開発時においても、検索処理速度向上の観点でインデックスの使用が効果的だと考えられる（ステップ２０２）。「親・内部ＩＤ」に対応した「子・内部ＩＤ」が存在するかを判断し（ステップ２０４）、もし「子・内部ＩＤ」が存在する場合（「子・内部ＩＤ」に対応する設計情報を呼び出している別の設計情報が存在する場合）は、当該「親・内部ＩＤ」の設計情報について、設計情報テーブル１２上の影響ステータス２５０と設計情報リンクテーブル１４上の影響ステータス２７０を「−」から「影響あり」に更新する（ステップ２０６）。次に同様にして、変更された設計情報を呼び出している設計情報があるか調べるため、変更された設計情報の内部ＩＤをキー「子・内部ＩＤ」とし、設計情報リンクテーブル１４より対応する「親・内部ＩＤ」を検索する。このとき、設計情報リンクテーブル１４において「子・内部ＩＤ」にはインデックスを作成しているため、本カラムをキーとした検索処理を高速に実行することができる。また、本カラムについても格納されるデータの種類数が非常に多いため、検索処理速度向上の観点でインデックスの使用が効果的だと考えられる（ステップ２０８）。
【００２６】
「子・内部ＩＤ」に対応した「親・内部ＩＤ」が存在するかを判断し（ステップ２１０）、もし「親・内部ＩＤ」が存在する場合（「親・内部ＩＤ」に対応する設計情報を呼び出している別の設計情報が存在する場合）は、当該「子・内部ＩＤ」の設計情報について、設計情報テーブル１２上の影響ステータス２５０と設計情報リンクテーブル１４上の影響ステータス２７０を「−」から「影響あり」に更新する（ステップ２１２）
以上の本実施形態によれば、設計情報を設計情報テーブル及び設計情報間の関連を設計情報リンクテーブルを有する設計情報波及分析機能を備えることにより、設計情報が更新された際に当該設計情報を呼び出しているメソッド及び当該設計情報から呼び出されているメソッドを調査し、影響波及箇所を特定することが可能となる。
さらに、設計者へ不整合な設計情報の一覧を設計者端末を通して通知することにより、設計者は不整合な設計情報を正確に漏れなく把握可能となり、設計情報全体として常に整合性を保ち続けることが可能となる。
【００２７】
またさらに、ある設計情報の更新が関連する設計情報に波及し、その影響波及先の設計情報を修正する場合、設計情報の更新により新たな影響波及が発生する可能性があるが、影響波及していると判定された設計項目を修正するたびに設計者端末へ最新の不整合設計情報の一覧が表示されるため、設計者の見落としによる設計情報の不整合を防ぐことが可能となる。
【符号の説明】
【００２８】
１０    設計情報波及分析モジュール
１２    設計情報テーブル
１４    設計情報リンクテーブル
１４０  設計用端末
【図１】
2013190890.tif 000003
【図２】
2013190890.tif 000004
【図３】
2013190890.tif 000005
【図４】
2013190890.tif 000006
【図５】
2013190890.tif 000007
【図６】
2013190890.tif 000008
【図７】
2013190890.tif 000009
【図８】
2013190890.tif 000010
【図９】
2013190890.tif 000011