JP2010039949A - 分散開発管理プログラム - Google Patents

分散開発管理プログラム Download PDF

Info

Publication number
JP2010039949A
JP2010039949A JP2008204662A JP2008204662A JP2010039949A JP 2010039949 A JP2010039949 A JP 2010039949A JP 2008204662 A JP2008204662 A JP 2008204662A JP 2008204662 A JP2008204662 A JP 2008204662A JP 2010039949 A JP2010039949 A JP 2010039949A
Authority
JP
Japan
Prior art keywords
program
change
name
influence
common function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008204662A
Other languages
English (en)
Other versions
JP5151792B2 (ja
Inventor
Akihiko Misonoo
章彦 御園生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008204662A priority Critical patent/JP5151792B2/ja
Publication of JP2010039949A publication Critical patent/JP2010039949A/ja
Application granted granted Critical
Publication of JP5151792B2 publication Critical patent/JP5151792B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】共通機能の改変によって新旧の共通機能が併存するに至った場合に、各開発グループに開発委託された全プログラムモジュールに生じる影響度の総和が最も小さくなるように、新旧何れの共通機能に新名称を付与すべきかを決定する。
【解決手段】何れかの共通機能の変更の提案を受信すると、利用共通機能変更ソースファイル特定手段31は、当該共通機能を呼び出す各プログラムモジュールについて、当該共通機能の何れの版を利用するかの選択情報を取得する(S103)。影響量算出手段33は、変更前の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量,及び、変更後の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量を夫々算出し(S203-S205)、算出され
た影響度が小さくなる側のプログラムモジュールについて選択された版を新名称付与対象と決定する(S401)。
【選択図】図1

Description

本発明は、プログラム分散開発環境において、開発対象プログラム製品を構成する複数のプログラムモジュールが共通して呼び出す共通機能の呼出名の管理を、開発管理用のコンピュータに行わしめる分散開発管理プログラムに、関する。
プログラム製品の大規模化に伴い、その開発は、分散開発環境においてなされることが一般化している。ここに、分散開発環境とは、プログラム製品全体の開発に責任を負う管理者が、所定の仕様を決定し、かかる仕様に従って、当該プログラム製品を構成する各プログラムモジュールの開発を個々の開発グループに委託し、各開発グループが完成したプログラムをまとめることによって開発対象プログラムを完成させる開発形態である。なお、管理者と開発グループとは、同一企業内の製品企画部門と開発グループである場合もあるし、注文者企業と請負人企業である場合もありえる。
かかる分散開発環境において決定される仕様とともに、管理者から各開発グループに対しては、各プログラムモジュールに共通に用いられるデータ,即ち、共通機能(関数,プログラムモジュール,サブルーチン,副プログラム等)も、提供される。従って、各開発グループは、これら共通機能の内容を認識した上で、自己が開発しているプログラムモジュールにおいて、何れかの共通機能を利用したい場合には、そのソースプログラムに、その共通機能の、名称を含む呼出文(call文)を記述しておけば良い。
特開2005-158030号公報 特開2002-82802号公報 特開平10-254684号公報
上述したように管理者から各開発グループに対して提供された共通機能は、プログラムモジュールを開発する前段階において管理者が用意したものであるので、各開発グループにおいてプログラムモジュールの開発が具体的に進むにつれて、その内容が開発中のプログラムモジュールの要求を満たし得なくなる場合がある。この場合、当該プログラムモジュールに関しては、当該共通機能を改変することによってその要求を満足させる必要が生じる。
そして、他の開発グループによって開発されている全てのプログラムモジュールにとっても、かかる改変が好都合であるならば、改変後の共通機能によって元の共通機能をオーバーライトすることで、上記仕様については一切変更を行うことなく、開発を継続していくことができる。
これに対して、他の開発グループによって開発されている一部又は全部のプログラムモジュールにとってかかる改変が不都合であるならば、改変後の共通機能によって元の共通機能をオーバーライトさせずに、相互に別個独立のものとして併存させざるを得ない。
この場合、改変後の共通の共通機能については、新たな名称を付与し、当該新たな名称によって呼び出すことになる。もっとも、他の開発グループによって開発されているプログラムモジュールの多くにとってかかる改変が好都合である一方、かかる改変が不都合であるプログラムモジュール数が僅かに留まる場合には、改変後の共通機能に元の名称を付し、改変前の共通機能に新たな名称を付した方が、名称の変更に伴う全開発グループの全
体としての影響量(追加作業の手間)を、抑えることができる可能性もある。
従来の分散開発環境においては、新旧何れの共通機能に元の名称を引き継がせるかに依って影響量に如何なる違いが生じるかを算出する手法が知られていなかったので、かかる共通機能の改変が一部の開発グループから提案された場合には、その都度、管理者及び各開発グループの代表者が一同に会して、元の名称を新旧何れの共通機能に引き継がせるべきかについて、検討会議を行わざるを得なかった。その結果、作業の進捗が遅れたり、判断ミスに因って不必要に追加作業が増大したりする問題が生じ得た。
そこで、本案は、共通機能の改変によって新旧の共通機能が併存するに至った場合に、各開発グループに開発委託された全プログラムモジュールに生じる影響度の総和が最も小さくなるように、新旧何れの版の共通機能に新名称を付与すべきかを決定することができる分散開発管理プログラムの提供を、課題とする。
本案が適用された分散開発管理プログラムは、コンピュータに対して、何れかの共通機能を利用する各プログラムモジュールについて、当該共通機能の変更前の版を利用するか変更後の版を利用するかの選択情報を取得させ、変更前の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量,及び、変更後の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量を夫々算出させ、算出された影響度が小さくなる側のプログラムモジュールについて選択された版を新名称付与対象と決定させる。
このように、変更前の版の利用が選択されたプログラムモジュール群,及び、変更後の版の利用が選択されたプログラムモジュール群について、夫々、選択された版の共通機能の名称が元の名称から新名称に変更された場合にそのプログラムモジュール群に属する全プログラムモジュールに夫々生じる影響度が算出される。そして、算出された影響度が小さくなる版が新名称付与対象と決定される。このように、影響度が最も小さくなる版が新名称付与対象と自動的に決定されるので、開発中の全プログラムモジュールに生じる影響度の総和を可及的に小さく抑えることができる。また、各開発グループの担当者が一同に会する必要がないので、それによって生じる作業進捗の遅れをも防止することができる。
本案において、プログラムモジュールに生じる影響とは、例えば、ソースプログラムにおける共通機能の呼出文の記述変更,それに伴う再コンパイル,再コンパイル後の再テストに夫々掛かる手間などである。もっとも、ソースプログラムの記述変更は、これを自動的に行うツールが利用可能であれば、影響度は僅かであるとみなすことも可能である。このような前提があれば、影響度の算出対象からは、コンパイル前のプログラムモジュールを除外することも可能である。また、コンパイル後のオブジェクトプログラムに対するテストは、実行回数が多ければ多い程、再テストに要する手間は大きくなるので、テスト実行回数に対して所定の重みを乗ずることによって影響量を算出することが可能である。また、再コンパイルに要する手間よりもテスト実行1回当たりの手間が大きければ、再コンパイル1回による影響量よりもテスト実行回数に乗じられる重みを大きくすれば良い。
なお、本案において、共通機能とは、関数,プログラムモジュール,サブルーチン,副プログラム等をいう。
以上のように構成された本案によると、共通機能の改変によって新旧の共通機能が併存するに至った場合に、変更前の共通機能に新名称を付与した場合と変更後の共通機能に新名称を付与した場合とで各開発グループに開発委託された全プログラムモジュールに生じ
る影響度の総和を夫々自動的に算出し、その比較結果に基づいて、各開発グループに開発委託された全プログラムモジュールに生じる影響度の総和が最も小さくなるように、新旧何れかの版の共通機能に、新名称を付与すべきかを決定することができる。
以下、図面に基づいて、本案の実施の形態を説明する。
<システム構成>
図1は、プログラム分散開発環境を構成するネットワークシステムの概略構成を示すブロック図である。図1に示すように、このネットワークシステムは、ネットワークNWを介して相互に接続された一台の開発管理システム1及び複数の開発グループのシステム2から、構成されている。このうち、開発管理システム1は、開発対象プログラム製品全体の開発責任を負う管理者が操作権限を有するコンピュータである。また、各開発グループのシステム2は、当該開発対象プログラム製品の仕様に従って開発者から一部のプログラムモジュールの開発の委託を受けた開発グループに夫々設置され、当該開発グループの担当者によって操作されるコンピュータである。
先ず、ネットワークNWとしては、管理者及び各開発グループが同一企業に属している場合には、企業内LAN(Local Area Network)を用いることができ、一部又は全部の開発グループが別企業である場合には、インターネットを用いることができる。
次に、開発グループのシステム2は、ネットワーク接続機能を有する通常構成を有するコンピュータであり、バスBを通じて相互に接続されたCPU24,ディスプレイ25,入力装置26,RAM27,ネットワークアダプタ28及びハードディスク20から、構成されている。
このうち、ハードディスク20内には、開発プログラムソース格納領域21,コンパイル状況格納領域22,及びテスト実行状況格納領域23が、確保されている。
このうち、開発プログラムソース格納領域21には、当該開発グループに開発が委託された各プログラムモジュールについて、その開発中及び完成済みのソースプログラムのファイル(ソースファイル)を格納する領域である。
また、コンパイル状況格納領域22は、完成したソースプログラムをコンパイルした結果であるオブジェクトプログラムのファイル(オブジェクトファイル)を格納する領域である。
また、テスト実行状況格納領域23は、オブジェクトプログラムに対して、例えばCOBOLのCOUNT機能のようなテスト用のツールを用いてテストを実行した回数を、格納する領域である。
これら開発プログラムソース格納領域21,コンパイル状況格納領域22,及びテスト実行状況格納領域23の夫々の位置情報(パス),並びに、各領域21〜23に対して夫々最新のファイル乃至情報を格納しなければならない旨は、管理者が当該開発グループに交付する仕様に、定められている。従って、各開発グループの担当者は、各領域21〜23に新たに格納すべきファイル又はデータが発生する都度、また、これらが更新される都度、そのCPU24が実行するプログラムに従って、その入力装置を通じて最新のファイル又はデータを読み込んで、該当する領域21〜23に格納する。
なお、これらの格納及び更新の処理は、CPU24が実行するプログラムに従って、自
動的になされても良い。また、CPU24が実行するプログラムは、開発管理システム1から受信したリクエストに応じて、各領域21〜23に格納されているファイル又は情報を、開発管理システム1に応答する。さらに、CPU24が実行するプログラムは、開発管理システム1から受信したリクエストに応じて、開発プログラムソース格納領域に格納されている完成済みのソースプログラムをコンパイルして、その結果としてのオブジェクトファイルをコンパイル状況格納領域22に格納する。
次に、開発管理システム1は、通常構成を有するコンピュータシステムであり、そのハードウェアは、互いにバスBによって接続されたCPU10,RAM11,ネットワークアダプタ12,ディスプレイ13,入力装置14,及びハードディスク16から、構成されている。
CPU10は、プログラムを読み込んで、プログラムに従った処理を実行する中央処理装置である。
RAM11は、CPU10によってハードディスク16から読み出されたプログラムが読み込まれて、CPU10が上記処理を実行する際の作業領域が展開される主記憶装置である。ここでは、ハードディスク16から読み出された分散開発管理プログラムが読み込まれることにより、RAM11上には、利用共通機能変更ソースファイル特定手段(選択情報取得手段)31,名称変更対象特定手段32,影響量算出手段33及び変更手段34の各機能が、展開される。これら利用共通機能変更ソースファイル特定手段31,名称変更対象特定手段32,影響量算出手段33及び変更手段34の各機能については、図6乃至図10のフローチャートを参照して、後で詳細に説明する。
ネットワークアダプタ12は、ネットワークNWを終端してネットワークNWとの間でデータ通信を司る通信装置である。
ディスプレイ13は、CPU10による処理結果を表示するための表示装置である。
入力装置14は、ドライブ装置,キーボード,マウス等のポインティングデバイス等の各種入力装置を含む。
ハードディスク16は、上述した分散開発管理プログラムを含む各種プログラム及び各種データを格納する記憶装置である。このハードディスク16に格納されている各種データには、分散開発管理プログラムによってアクセスされる開発グループ管理DB(データベース)35,影響度判定テーブル36,関連ソースファイル状況テーブル37,影響重付DB38が、含まれている。
開発グループ管理DB35は、各開発グループ毎に、上述した開発プログラムソース格納領域21,コンパイル状況格納領域22,及びテスト実行状況格納領域23の夫々の位置情報(パス)を記録するためのデータベースである。図2は、この開発グループ管理DB35の概略データ構造を示す表である。図2に示されるように、この開発グループ管理DB35は、各開発グループ毎に一つのレコードを格納している。そして、各レコードは、対応する開発グループのコード番号を記録するための「開発グループ」フィールド,開発開発プログラムソース格納領域21の位置情報(パス)を記録するための「開発プログラムソース格納領域」フィールド,コンパイル状況格納領域22の位置情報(パス)を記録するための「コンパイル状況格納領域」フィールド,テスト実行状況格納領域23の位置情報(パス)を記録するための「テスト実行状況格納領域」フィールド,及び、担当者のメールアドレスを格納するための「メールアドレス」フィールドから、構成されている。
影響度判定テーブル36は、影響度算出手段33によって影響度の比較のために用いられるテーブルである。図3は、この影響度判定テーブル36のデータ構造を示す表である。この図3に示すように、影響度判定テーブル36は、変更後の版の共通機能を呼び出すプログラムモジュールについて算出された影響度の総和(選択=新),及び、変更前の版の共通機能を呼び出すプログラムモジュールについて算出された影響度の総和(選択=旧)を夫々記録するための「影響度合」フィールドを、有している。
関連ソースファイル状況テーブル37は、各開発グループに開発を委託した各プログラムモジュールについて、その開発の進捗状況を記録するためのテーブルである。図4は、この関連ソースファイル状況テーブル37の概略データ構造を示す表である。図4に示されるように、この関連ソースファイル状況テーブル37は、各プログラムモジュール毎に一つのレコードを格納している。そして、各レコードは、対応するプログラムモジュールのソースファイルの名称を記録するための「ソースファイル名」フィールド,開発グループのコード番号を記録するための「開発グループ」フィールド,対応するプログラムモジュールのソースプログラムが変更後の版の共通機能を呼び出すか(新)変更前の版の共通機能を呼び出すか(旧)を記録するための「選択」フィールド,コンパイルが未だなされていないか(未)既に完了しているか(済)を記録するための「コンパイル」フィールド,テスト実行状況格納領域23に記録されたテスト実行回数を転載するための「テスト実行回数」フィールド,対応するプログラムモジュールについて算出された「影響度」を記録するための「影響度」フィールドから、構成されている。なお、各プログラムモジュールを各開発グループに開発委託した段階では、「ソースファイル名」フィールド及び「開発グループ」フィールドに値が書き込まれるが、他のフィールドは空欄となっている。なお、「選択」フィールドの値が、共通機能の変更前の版を利用するか変更後の版を利用するかの選択情報に、相当する。
影響重付DB38は、影響度算出手段33による後述する影響度の判定のために用いる重み値を、リコンパイル用及び再テスト用に夫々記憶しているデータベースである。図5は、この影響重付DB38のデータ構造を示す表である。この図5に示すように、影響重付DB38は、リコンパイル用の重み値を記録するための「リコンパイル」フィールド及び再テスト用の重み値を記録するための「再テスト」フィールドを、有している。
<データ処理の流れ>
以下、上述したように構成されたネットワークシステムを構成する開発管理システム1において、ハードディスク16に格納されている分散開発プログラムを読み込んだCPU10が実現する処理(即ち、CPU10が実現する各機能31〜34の内容)を、図6乃至図10のフローチャートに基づいて説明する。
図6のフローチャートに示す処理は、管理者が開発対象プログラム製品について仕様を決定し、各開発グループに当該仕様を交付するとともに、開発グループ管理DB35に必要なデータを格納することにより、スタートする。
そして、スタート後最初のS001では、CPU10は、各開発グループからの仕様変更提案通知を待つ。この仕様変更提案通知は、管理者から各開発グループに交付された仕様中において定められたフォーマットに則って、各開発グループのシステム2から開発管理システム1に対して通知される、対象共通機能の名称,当該共通機能の変更を求める旨及び変更後の版の共通機能の内容を含むメッセージである。
次のS002では、CPU10は、何れかの開発グループから仕様変更提案通知を受信したかどうかをチェックする。そして、未だ何れの開発グループからも仕様変更提案通知
を受信していない場合には、CPU10は、処理をS001へ戻す。これに対して、何れかの開発グループから仕様変更提案通知を受信すると、CPU10は、処理をS003へ進める。
S003では、CPU10は、S002にて受信した仕様変更提案通知から、対象共通機能の名称及び変更後の内容を抽出し、ディスプレイ13上に表示する。
次のS004では、CPU10は、入力装置14を通じて入力される操作者からの指示に従って、当該仕様変更提案の内容,即ち、S003にて抽出及び表示された変更後の共通仕様の採用可否についてチェックする。そして、操作者が採用しない旨の指示を入力した場合には、CPU10は、そのままこの分散開発プログラムによる処理を終了する。
これに対して、操作者が採用する旨の指示を入力した場合には、CPU10は、S005において、変更提案された変更後の版の共通機能を利用するプログラムモジュールのソースファイルを特定する処理を実行する。
図7は、S005にて実行される利用共通機能変更ソースファイル特定処理サブルーチンを示すフローチャートである。このサブルーチンに入って最初のS101では、CPU10(利用共通機能変更ソースファイル特定手段31)は、開発グループ管理DB35から、各開発グループについての「開発プログラムソース格納領域」フィールドの値,即ち、その位置情報(パス)を読み取る。
次のS102では、CPU10(利用共通機能変更ソースファイル特定手段31)は、S101にて取得した位置情報(パス)に基づいて、全開発グループのシステム2における開発プログラムソース格納領域21を検索し、変更提案されている共通機能を利用しているプログラムモジュールのソースファイルを取得する。
次のS103では、CPU10(利用共通機能変更ソースファイル特定手段31)は、S102でのソースファイルの取得元となった開発グループのコード番号,各ソースファイルの名称,及び、必要であればその内容を含む変更ソースファイル選択画面をディスプレイ13上に表示し、各開発グループにおいて各ソースファイルに関して変更前の版の共通機能(新)を使用するか変更後の版の共通機能(旧)を使用するかの選択を、受け付ける。即ち、図11に示すように、この変更ソースファイル選択画面には、各開発グループのコード番号40及び各ソースファイルのソースファイル名41の組合せ毎に、新又は旧を選択するためのオプションボタン42及びソースプログラムの詳細内容を表示させるための「参照」ボタン43が、一覧表示されている。そして、開発管理システム1の操作者は、各開発グループの担当者から事情聴取した新旧の選択結果に従って、各組合せについて新旧何れかのオプションボタン42をチェックするのである。なお、この選択画面を、各開発グループのシステム2のディスプレイ25に表示させ、この選択画面上で各開発グループの担当者によって直接入力された新旧選択結果を、ネットワークNWを通じて開発管理システム1が受信するように、構成されても良い。何れにしても、全ての開発グループのコード番号40及びソースファイル名41の組合せについて新旧選択結果を受け付けると、CPU10(利用共通機能変更ソースファイル特定手段31)は、処理をS104へ進める。
次のS104では、CPU10(利用共通機能変更ソースファイル特定手段31)は、S103にて選択入力された内容を基に、図4(a)に例示するように、関連ソースファイル情況テーブル37を生成する。この時点では、同テーブル中「コンパイル」フィールド,「テスト実行回数」フィールド及び「影響度」フィールドは未設定となっている。S104を完了すると、CPU10(利用共通機能変更ソースファイル特定手段31)は、
図7のサブルーチンを修了して、図6におけるS005からS006へ進む。
S006では、CPU10(名称変更対象特定手段32)は、各共通機能について、変更後のものに元の名称を引き継がせるか、変更前のものに元の名称を引き継がせるかを特定する処理を実行する。図8は、S006にて実行される名称変更対象特定処理サブルーチンを示すフローチャートである。
このサブルーチンに入って最初のS201では、CPU10(名称変更対象特定手段32)は、開発グループ管理DB35から、各開発グループについての「コンパイル状況格納領域」フィールドの値,即ち、その位置情報(パス)を読み取る。そして、読み取った位置情報(パス)に基づいて、各開発グループのシステム2におけるコンパイル状況格納領域22を検索し、S005にて特定した各プログラムモジュールについてのオブジェクトファイルがあるか否かに基づいて、各プログラムモジュールのソースプログラムがコンパイル済みが否かを判定する。そして、判定結果を、関連ソースファイル状況テーブル37における各プログラムモジュールについての「コンパイル」フィールドに設定する(図4(b)参照)。
次のS202では、CPU10(名称変更対象特定手段32)は、開発グループ管理DB35から、各開発グループについての「テスト実行状況格納領域」フィールドの値,即ち、その位置情報(パス)を読み取る。そして、位置情報(パス)に基づいて、各開発グループのシステム2におけるテスト実行状況格納領域23を、関連ソースファイル状況テーブル37において「コンパイル」フィールドに「済」が設定された各ソースファイル名をキーとして検索し、オブジェクトプログラムに対するテスト実行回数を取得する。そして、取得した各オブジェクトプログラムに対するテスト実行回数を、関連ソースファイル状況テーブルの「テスト実行回数」フィールドに設定する(図4(c)参照)。
次のS203では、CPU10(名称変更対象特定手段32)は、各開発グループに開発委託した各プログラムモジュールについて、変更提案された共通機能について、変更前の版の名称を新名称に変更した場合の影響度と変更後の版の名称を新名称に変更した場合の影響度とを夫々算出するための、影響度算出処理を実行する。
図9は、S203にて実行される影響度算出サブルーチンを示すフローチャートである。このサブルーチンに入って最初のS301では、CPU10(影響度算出手段33)は、関連ソースファイル状況テーブル37における処理対象レコードを特定するための変数nを初期値“1”にリセットする。
続いて、CPU10(影響度算出手段33)は、関連ソースファイル状況テーブル37の各レコード毎に影響度算出を行うために、S302乃至S309のループ処理を実行する。このループ処理に入って最初のS302では、CPU10(影響度算出手段33)は、関連ソースファイル状況テーブル37からn番目のレコードを読み取る。
次のS303では、CPU10(影響度算出手段33)は、S302にて読み取ったn番目のレコードから、「コンパイル」フィールドの値を取得する。
次のS304では、CPU10(影響度算出手段33)は、S303にて読み取った値が“済”となっているか否かをチェックする。そして、値が“未”であるか未設定であると、当該レコードについては未コンパイル故に名称変更に因る影響は僅かであると見なせるので、CPU10(影響度算出手段33)は、処理をそのままS308へ進める。これに対して、値が“済”であると、当該レコードについてはコンパイル済み故に名称変更に因る影響が大きいと見なせるので、CPU10(影響度算出手段33)は、処理をS30
5へ進める。
S305では、CPU10(影響度算出手段33)は、影響度重み付けDB38から、「コンパイル」に対応した値を読み取り、読み取った値を、関連ソースファイル状況テーブル37のn番目のレコードの「影響度」フィールドに設定する。
次のS306では、CPU10(影響度算出手段33)は、関連ソースファイル状況テーブル37のn番目のレコードから「テスト実行回数」フィールドの値を取得する。
次のS307では、CPU10(影響度算出手段33)は、影響重付DB38から、「再テスト」に対応した値を読み取り、読み取った値をS306にて取得した「テスト実行回数」フィールドの値に乗じ、算出された積を、関連ソースファイル状況テーブル37のn番目のレコードの「影響度」フィールドの値に、加算する。S307を完了すると、CPU10(影響度算出手段33)は、処理をS308へ進める。
S308では、CPU10(影響度算出手段33)は、変数nを一つインクリメントする。
次のS309では、CPU10(影響度算出手段33)は、関連ソースファイル状況テーブル37の全レコードについてS302以下の処理を完了したかどうかチェックする。そして、未だ全レコードについて処理を完了していない場合には、CPU10(影響度算出手段33)は、処理をS302へ戻す。
これに対して、全レコードについて処理を完了した場合には、CPU10(影響度算出手段33)は、この影響度算出処理サブルーチンを完了して、処理を図8のルーチンに戻す。
処理が戻された図8のルーチンでは、CPU10(名称変更対象特定手段32)は、S203の次のS204において、関連ソースファイル状況テーブル37の全レコードのうち「選択」フィールドの値が“旧”であるものの「影響度」フィールドの値の総和を算出し、算出した総和を、影響度判定テーブル36における「選択」フィールドの値が“旧”であるレコードの「影響度合」フィールドに、設定する。
次のS205では、CPU10(名称変更対象特定手段32)は、関連ソースファイル状況テーブル37の全レコードのうち「選択」フィールドの値が“新”であるものの「影響度」フィールドの値の総和を算出し、算出した総和を、影響度判定テーブル36における「選択」フィールドの値が“新”であるレコードの「影響度合」フィールドに、設定する。S205を完了すると、CPU10(名称変更対象特定手段32)は、この名称変更対象特定処理サブルーチンを終了して、処理を図6のメインルーチンに戻す。
処理が戻された図6メインルーチンでは、CPU10は、S006の次のS007において、変更処理を実行する。図10は、S007にて実行される変更処理サブルーチンを示すフローチャートである。このサブルーチンに入って最初のS401では、CPU10(変更手段34)は、影響度判定テーブル36の二つのレコードの「影響度合」フィールドの値同士を比較し、小さい方の「選択」フィールドの値を、変数“新名称対象(新名称付与対象)”に設定する。
次のS402では、CPU10(変更手段34)は、新名称の入力を促すメッセージをディスプレイ13上に表示し、操作者が入力装置14を通じて何らかの新名称を入力するを待つ。そして、操作者が新名称を入力すると、これを受け付ける。そして、当該開発管
理システム1に保存している更新前の版の変更対象共通機能及びS003にて仕様変更提案通知から抽出した更新後の版の変更対象共通機能のうち、変数“新名称対象”に対応するものの名称を、受け付けた新名称に変更し、他方(更新後の変更対象共通機能に限る)の名称を、当該変更対象共通機能の元の名称に変更する。
次のS403では、CPU10(変更手段34)は、関連ソースファイル状況テーブル37中の「選択」フィールドの値が変数“新対象名称”に一致している全レコードを特定する。
次のS404では、CPU10(変更手段34)は、S403にて特定した個々のレコード毎に、そのレコードの「開発グループ」の値に対応する「開発プログラムソース格納領域」フィールドの値,即ち、位置情報(パス)を開発グループ管理DB35から読み出し、当該読み出した値,即ち、位置情報(パス)が示す開発プログラムソース格納領域21にアクセスして、そのレコードの「ソースファイル名」フィールドの値が示すソースファイルを読み出し、読み出したソースファイル中のソースプログラムに記述されている変更対象共通機能の名称を、S402にて受け付けた新名称に変更する。かかる処理をS403にて特定した全レコードに対して実行すると、CPU10(変更手段34)は、処理をS405へ進める。
S405では、CPU10(変更手段34)は、S403にて特定した全レコードのうち、「コンパイル」フィールドの値が“済”であり且つ「テスト実行回数」フィールドの値が零以上であるもの全てを選別する。そして、選別した個々のレコード毎に、そのレコードの「開発グループ」の値 に対応する「メールアドレス」フィールドの値(メールアドレス)を開発グループ管理DB35から読み出し、読み出したメールアドレス宛に、そのレコードの「ソースファイル名」フィールドの値が示すソースファイルに対するリコンパイルの指示及び再テストの指示を含む電子メールを、通知する。この場合、CPU10(変更手段34)は、当該開発グループのシステム2に対して、直接、当該ソースファイルに対するリコンパイル及び再テストを命じるコマンドを送信しても良い。かかる処理を選別した全レコードに対して実行すると、CPU10(変更手段34)は、処理をS406へ進める。
S406では、CPU10(変更手段34)は、S403にて特定した全レコードのうち、「コンパイル」フィールドの値が“済”であり且つ「テスト実行回数」フィールドの値が未設定又は零であるもの全てを選別する。そして、選別した個々のレコード毎に、そのレコードの「開発グループ」の値 に対する「メールアドレス」フィールドの値(メールアドレス)を読み出し、読み出したメールアドレス宛に、そのレコードの「ソースファイル名」フィールドの値が示すソースファイルに対するリコンパイルの指示を含む電子メールを、送信する。この場合、CPU10(変更手段34)は、当該開発グループのシステム2に対して、直接、当該ソースファイルに対するリコンパイルを命じるコマンドを送信しても良い。かかる処理を選別した全レコードに対して実行すると、CPU10(変更手段34)は、処理をS406へ進める。なお、S406では、S405と異なり開発グループに対して再テストの指示がなされないが、これは、S406の連絡対象となる開発グループでは、元々テストの実行が予定されているからである。S406を完了すると、CPU10(変更手段34)は、この変更処理サブルーチンを終了して、処理を図6のメインルーチンに戻し、このメインルーチンを終了する。
<実施形態の作用>
以上の処理が全て完了すると、一部の開発グループから何れかの共通機能についての仕様変更提案通知があった場合、その提案が採用される限り(S004:YES)、変更前の版の当該共通機能及び変更後の版の当該共通機能の何れか一方には元の名称が承継され
るとともに他方には新名称が与えられるので(S404)、当該共通機能の新旧二つの版が併存できるようになり、各開発グループでは、自己が開発委託されたプログラムモジュールのソースプログラムを作成するに当たり、これら新旧両版の当該共通機能を、任意に選択して呼び出すように記述することができる。
但し、各プログラムモジュールについて開発がある時点まで進んだ段階で、呼び出し対象を変更前の版の共通機能から変更後の版の共通機能に変更することになった場合、変更後の版の共通機能に新名称が付与されたのならば、ソースプログラムにおける当該共通機能の呼出文の記述が、書き換えられなければならない。同様に、呼び出し対象を変更前の版の共通機能ままとした場合でも、変更前の版の共通機能に新名称が付与されたのならば、ソースプログラムにおける当該共通機能の呼出文の記述を、書き換えられなければならない。特に、ソースプログラムを一旦完成させてコンパイルまで実行した段階で、かかる共通機能の仕様変更があった場合には、ソースプログラムの記述変更、ソースプログラムの再コンパイル,再コンパイルされたオブジェクトプログラムに対するテスト実行を行わなければならないので、全体の作業量に対する影響が大きい。
そこで、本実施形態では、かかる影響を最小限に抑えるべく、各開発グループにおける各プログラムモジュールに関する新旧何れの版の共通機能の選択状況に応じて(S005,S103)、変更前の版の共通機能に新名称が付与したならば各開発グループによって開発されている全プログラムモジュールに生ずべき影響度の総和を算出するとともに(S006,S203,S204)、変更後の版の共通機能に新名称が付与したならば各開発グループによって開発されている全プログラムモジュールに生ずべき影響度の総和を算出し(S006,S203,S205)、算出された影響度の総和が小さくなる版の共通機能に、新名称を付与する(S007,S401,S402)。よって、共通機能の仕様変更があり、且つ、変更後の版 の当該共通機能が提案元以外の開発グループによって採用されたとしても、全体に対する影響度が最も小さくなるように、当該共通機能の新名称付与対象の版が決定されるので、変更に伴う影響を最小限に止めることができる。
なお、本実施形態では、変更対象となった共通機能の新旧何れの版に新名称を付与するか(元の名称を承継させるか)を決定すると(S401,S402)、新名称が付与されることとなった版の当該共通機能を採用することが申請されていた(S103)プログラムモジュールのソースプログラムにおける当該共通機能の呼出文の記述が、新名称を対象とするように自動的に書き換えられる(S404)。従って、未だコンパイル前のソースプログラムに対する呼出対象共通機能の名称変更の影響は小さいと考えられるので、上述した影響度算出の対象から、未コンパイルのプログラムモジュールは除外されている。
さらに、新名称が付与されることとなった版の当該共通機能を採用することを申請していた(S103)開発グループに対しては、リコンパイルの指示がなされる(S405)。
さらに、かかるプログラムモジュールのオブジェクトプログラムに対してテストが実行されている場合には、今まで実施したのと同じ回数のテストの実行の指示がなされる(S405)。このように、呼出文の記述を変更したプログラムモジュールについては、実施済みのテストと同じ数及び内容のテストを、再コンパイル後に再実行しなければならない。従って、テスト実行回数が多いほど、呼出対象共通機能の名称変更の影響が大きくなる。よって、上述した影響度算出においては、テスト実行回数に対して重みの値を乗じることによって、影響度を算出しているのである(S307)。しかも、この再テストは、再コンパイルよりも作業量が大きくなるので、リコンパイル1回に対する重みよりも、再テストに対する重みをお大きくすることにより、現実的な影響度を算出できるのである。
(付記1)
複数の開発グループが、夫々、共通機能を呼び出して利用できるプログラムモジュールの開発を担当する分散開発環境において、前記共通機能を呼び出すための名称を管理するために、コンピュータを、
何れかの共通機能を利用する各プログラムモジュールについて、当該共通機能の変更前の版を利用するか変更後の版を利用するかの選択情報を取得する選択情報取得手段,
変更前の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量,及び、変更後の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量を、夫々算出する影響量算出手段,及び、
前記影響量算出手段によって算出された影響度が小さくなる側のプログラムモジュールについて選択された版を新名称付与対象と決定する変更手段
として機能させる分散開発管理プログラム。
(付記2)
前記影響量算出手段は、ソースプログラムからオブジェクトプログラムへのコンパイルが完了したプログラムモジュールのみに基づいて、前記影響量を算出する
ことを特徴とする付記1記載の分散開発管理プログラム。
(付記3)
前記影響量算出手段は、ソースプログラムからオブジェクトプログラムへのコンパイルが完了した各プログラムモジュールについて、再コンパイルに要する作業量及び既に実行したテストを再実行するのに要する作業量として、前記影響量を算出する
ことを特徴とする付記2記載の分散開発管理プログラム。
(付記4)
前記影響量算出手段は、前記再コンパイルに要する作業量よりも、テスト1回当たりに要する作業量が大きくなるように重み付けをして、前記影響量を算出する
ことを特徴とする付記3記載の分散開発管理プログラム。
(付記5)
前記影響量算出手段は、各プログラムモジュールについて、夫々、コンパイル実行の有無及びテスト実行回数を記録しているデータベースにアクセスして、各プログラムモジュールについてのコンパイル実行の有無及びテスト実行回数を読み出して、前記影響量を算出する
ことを特徴とする付記3記載の分散開発管理プログラム。
(付記6)
前記変更手段は、新名称付与対象と決定した版を利用することが選択された各プログラムモジュールのソースプログラム中の呼出文における前記共通機能の名称を、新名称に変更する
ことを特徴とする付記2記載の分散開発管理プログラム。
(付記7)
前記変更手段は、新名称付与対象と決定した版の共通機能の名称を新名称に変更するとともに、他方の版が変更後の共通機能であれば、当該変更後の共通機能に元の名称を付与する
ことを特徴とする付記1記載の分散開発管理プログラム。
開発管理システム及び開発グループのシステムの概略構成を示すブロック図 開発グループ管理DBのデータ構造を示す表 影響度判定テーブルのデータ構造を示す表 関連ソースファイル状況テーブルのデータ構造を示す表 影響重付DBのデータ構造を示す表 開発管理プログラムによる処理を示すフローチャート 図6のS005にて実行される利用共通機能変更ソースファイル特定処理サブルーチンの内容を示すフローチャート 図6のS006にて実行される名称変更対象特定処理サブルーチンの内容を示すフローチャート 図8のS203にて実行される影響度算出処理サブルーチンの内容を示すフローチャート 図6のS007にて実行される変更処理サブルーチンの内容を示すフローチャート 変更ソースファイル選択画面を示す図
符号の説明
1 開発管理システム
2 開発グループのシステム
10 CPU
11 RAM
14 入力装置
16 ハードディスク
31 利用共通機能変更ソースファイル特定手段
32 名称変更対象特定手段
33 影響量算出手段
34 変更手段
35 開発グループ管理DB
36 影響度判定テーブル
37 関連ソースファイル状況テーブル
38 影響重付DB

Claims (5)

  1. 複数の開発グループが、夫々、共通機能を呼び出して利用できるプログラムモジュールの開発を担当する分散開発環境において、前記共通機能を呼び出すための名称を管理するために、コンピュータを、
    何れかの共通機能を利用する各プログラムモジュールについて、当該共通機能の変更前の版を利用するか変更後の版を利用するかの選択情報を取得する選択情報取得手段,
    変更前の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量,及び、変更後の版を利用することが選択された全プログラムモジュールに生じる当該共通機能の名称変更に因る影響量を、夫々算出する影響量算出手段,及び、
    前記影響量算出手段によって算出された影響度が小さくなる側のプログラムモジュールについて選択された版を新名称付与対象と決定する変更手段
    として機能させる分散開発管理プログラム。
  2. 前記影響量算出手段は、ソースプログラムからオブジェクトプログラムへのコンパイルが完了したプログラムモジュールのみに基づいて、前記影響量を算出する
    ことを特徴とする請求項1記載の分散開発管理プログラム。
  3. 前記影響量算出手段は、ソースプログラムからオブジェクトプログラムへのコンパイルが完了した各プログラムモジュールについて、再コンパイルに要する作業量及び既に実行したテストを再実行するのに要する作業量として、前記影響量を算出する
    ことを特徴とする請求項2記載の分散開発管理プログラム。
  4. 前記変更手段は、新名称付与対象と決定した版を利用することが選択された各プログラムモジュールのソースプログラム中の呼出文における前記共通機能の名称を、新名称に変更する
    ことを特徴とする請求項2記載の分散開発管理プログラム。
  5. 前記変更手段は、新名称付与対象と決定した版の共通機能の名称を新名称に変更するとともに、他方の版が変更後の共通機能であれば、当該変更後の共通機能に元の名称を付与する
    ことを特徴とする請求項1記載の分散開発管理プログラム。
JP2008204662A 2008-08-07 2008-08-07 分散開発管理プログラム Expired - Fee Related JP5151792B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008204662A JP5151792B2 (ja) 2008-08-07 2008-08-07 分散開発管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008204662A JP5151792B2 (ja) 2008-08-07 2008-08-07 分散開発管理プログラム

Publications (2)

Publication Number Publication Date
JP2010039949A true JP2010039949A (ja) 2010-02-18
JP5151792B2 JP5151792B2 (ja) 2013-02-27

Family

ID=42012390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008204662A Expired - Fee Related JP5151792B2 (ja) 2008-08-07 2008-08-07 分散開発管理プログラム

Country Status (1)

Country Link
JP (1) JP5151792B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573285A (ja) * 1991-09-18 1993-03-26 Nec Software Kansai Ltd 項目名の自動管理方式
JPH06290032A (ja) * 1993-04-02 1994-10-18 Hitachi Ltd 手続き管理方式
JPH10254684A (ja) * 1997-03-07 1998-09-25 Fujitsu Ltd ソフトウェアの関数管理装置
JP2002082802A (ja) * 2000-06-27 2002-03-22 Ns Solutions Corp 影響解析装置および方法、記録媒体、プログラム
JP2008077482A (ja) * 2006-09-22 2008-04-03 Sharp Corp 修正工数見積装置、修正工数見積方法、および修正工数見積プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573285A (ja) * 1991-09-18 1993-03-26 Nec Software Kansai Ltd 項目名の自動管理方式
JPH06290032A (ja) * 1993-04-02 1994-10-18 Hitachi Ltd 手続き管理方式
JPH10254684A (ja) * 1997-03-07 1998-09-25 Fujitsu Ltd ソフトウェアの関数管理装置
JP2002082802A (ja) * 2000-06-27 2002-03-22 Ns Solutions Corp 影響解析装置および方法、記録媒体、プログラム
JP2008077482A (ja) * 2006-09-22 2008-04-03 Sharp Corp 修正工数見積装置、修正工数見積方法、および修正工数見積プログラム

Also Published As

Publication number Publication date
JP5151792B2 (ja) 2013-02-27

Similar Documents

Publication Publication Date Title
US6922827B2 (en) Iterative software development environment with prioritized build rules
US7721259B2 (en) Configurable and customizable software application system and metadata
US9703671B1 (en) Method and system for improving user friendliness of a manual test scenario
US7917896B2 (en) Extensible execution language
US8266588B2 (en) Creating projects in a rational application developer workspace
US8359571B2 (en) Computer method and apparatus for activity-based version selection in a configuration management system
US8276118B2 (en) Depicting changes to structures in an integrated development environment
US20140365990A1 (en) Software evaluation device and method
US9898258B2 (en) Versioning of build environment information
US20160321586A1 (en) Selecting tests for execution on a software product
RU2390829C2 (ru) Система и способ для выбора режимов выполнения тестового примера для автоматизации повторно выполняемого тестирования
US8539479B2 (en) System and method for application function consolidation
JP5151792B2 (ja) 分散開発管理プログラム
JP6717140B2 (ja) 解析プログラム、解析方法、及び解析装置
EP1653348A1 (en) Method for tracking transport requests and computer system with trackable transport requests
JP2018055249A (ja) システム構築支援装置、システム構築支援方法、および、システム構築支援プログラム
CN110334031A (zh) 内存分配代码检测方法、装置、计算机设备及存储介质
US20060225047A1 (en) Generic software requirements analyzer
Barbacci Software quality attributes: modifiability and usability
EP3301527A2 (en) Method to extend mes functionalities in a message routing system
Singh et al. Modeling multi up-gradations of software with fault severity and measuring reliability for each release
US20070074202A1 (en) Program product installation
JP2008509472A (ja) テストパッケージ
Hanser Software Process Models
CN120973353A (zh) 一种数据构造方法及相关装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees