JP2002041288A - ソフトウエア開発支援方法 - Google Patents

ソフトウエア開発支援方法

Info

Publication number
JP2002041288A
JP2002041288A JP2000231724A JP2000231724A JP2002041288A JP 2002041288 A JP2002041288 A JP 2002041288A JP 2000231724 A JP2000231724 A JP 2000231724A JP 2000231724 A JP2000231724 A JP 2000231724A JP 2002041288 A JP2002041288 A JP 2002041288A
Authority
JP
Japan
Prior art keywords
template
software development
data
value
rule
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.)
Pending
Application number
JP2000231724A
Other languages
English (en)
Inventor
Toshiyuki Yagi
敏幸 八木
Fukuichi Morishige
福一 森重
Takemi Kotoda
剛実 小藤田
Masaru Ueda
大 上田
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.)
Hitachi Information Systems Ltd
Original Assignee
Hitachi Information Systems 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 Hitachi Information Systems Ltd filed Critical Hitachi Information Systems Ltd
Priority to JP2000231724A priority Critical patent/JP2002041288A/ja
Publication of JP2002041288A publication Critical patent/JP2002041288A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 外部配置のテンプレートファイルを取得して
ソフトウエア開発を行い、高精度の見積りと最適開発計
画を策定でき、スキル向上の促進を図れるソフトウエア
開発支援方法を提供する。 【解決手段】 クライアントコンピュータ、クライアン
トコンピュータに接続され、テンプレートルールを記載
した各種文書で定義されるテンプレートファイルを保持
するファイルサーバを備え、クライアントコンピュータ
によりテンプレートルールに基づく実装システムを実行
支援するもので、テンプレートファイルから得たテンプ
レートルールを読込む第1ステップと、テンプレートフ
ァイルの定義の実行に伴い順次ソフトウエア開発に対す
る提案、及び、ソフトウエア開発計画に対する修正や警
告を作成する第2ステップと、提案や修正や警告の作成
毎にその内容を表示してソフトウエア開発内容を変更す
る第3ステップとからなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ソフトウエア開発
支援方法に係わり、特に、ソフトウエア開発の上流工程
におけるソフトウエア開発計画の策定作業やソフトウエ
ア開発時の見積り作業等に柔軟性及び発展性を持たせ、
作業内容に基づいて適宜その作業状態の変更が行えるよ
うにしたソフトウエア開発支援方法に関する。
【0002】
【従来の技術】一般に、コンピュータを動作させるため
に使用される各種ソフトウエアは、新たなソフトウエア
を開発する必要が生じた時点に、新たなソフトウエアに
対し、開発計画の策定、開発に必要とする人員の確保、
開発の日程計画、開発工数等の各種の見積りを作成する
ためのソフトウエア開発計画作業が行われる。このソフ
トウエア開発計画作業は、新たなソフトウエア開発プロ
ジェクトの成否を左右する重要な事項であって、幾つか
の手法が知られている。
【0003】その1つの手法は、新たなソフトウエアに
ついてのプログラム規模を想定し、その想定内容から必
要とする開発工数等の算出を行う古典的な手法であるL
OC法であり、他の1つの手法は、新たなソフトウエア
に対する実現すべきソフトウエア機能数に着目し、ソフ
トウエア機能数から開発工数等の算出を行うファンクシ
ョンポイント法(FP法)である。そして、これらの手
法を実施する際には、各手法における開発工数等の見積
り作業を効率よく行うためのアプリケーション製品が種
々開発されている。
【0004】また、最近になって、特開平7−1607
62号により前記既知の2つの手法と異なる手法を開示
した見積り支援装置が開示されている。この特開平7−
160762号に開示の見積り支援装置は、新たなソフ
トウエアの開発を行うに際して過去の類似事案を選択
し、選択した類似事案に基づいて、または、必要であれ
ば選択した類似事案における開発工数等の見積りに修正
を加えたものに基づいて、新たなソフトウエアの開発工
数等の見積りを得るようにしたものである。
【0005】
【発明が解決しようとする課題】ところで、ソフトウエ
アの開発を行う際には、ソフトウエアの係数の設定が重
要な事項になる。例えば、既知のLOC法においては、
使用するプログラミング言語毎の開発生産性を係数に選
んでおり、既知のファンクションポイント法において
は、一つの機能当たりの開発生産性や開発機能の難しさ
等による重み付け等を係数に選んでいる。そして、この
ような係数は、通常、そのソフトウエア組織等における
過去の使用事例等を勘案することによって選定される。
【0006】また、実際にソフトウエアの開発が行われ
るときは、その内容に対して種々の条件を付した状態で
行われることが多い。そして、このような種々の条件を
充足させるために、ソフトウエアの係数として、それら
の条件を充足する最大公約数的な係数を選定した場合に
は、当然のことながら開発工数等の見積りを高精度で行
うことはできない。
【0007】このように、ソフトウエアの開発は、ソフ
トウエア開発に投入可能な資源、ソフトウエア開発期間
等、種々の制約された条件がある中で、最適なソフトウ
エア開発計画を策定しなければならず、それには極めて
属人的なスキルを適用することが必要であって、特定の
手法を機械的に適用するだけでは不十分である。
【0008】このような問題点に対して、前記特開平7
−160762号に開示されている見積り支援装置は、
新たなソフトウエアを開発するに際して、過去のソフト
ウエアの中から新たなソフトウエアに類似した事案を選
択し、選択した事案に基づいて開発工数の見積りを適宜
修正しているもので、それにより適正な開発工数の見積
りをすることができ、しかも、ベースにした個別の事案
に対して必要な修正を加え、開発工数の見積りを得てい
るものであることから、既知のLOC法やファンクショ
ンポイント法における前記問題点の多くの部分を一応解
決しているものということができる。
【0009】しかしながら、前記特開平7−16076
2号に開示されている見積り支援装置は、新たなソフト
ウエアに類似した過去の事案の選択を行ったり、選択し
た開発工数等の見積りを修正したりしている点におい
て、依然としてユーザー個人のスキルに依存するところ
が大きいものである。
【0010】本発明は、このような技術的背景に鑑みて
なされたもので、その目的は、外部に設けられたテンプ
レートファイルを取得してソフトウエア開発を行うこと
により、高精度の見積りと最適な開発計画を策定するこ
とが可能になり、スキル向上の促進を図ったソフトウエ
ア開発支援方法を提供することにある。
【0011】
【課題を解決するための手段】前記目的を達成するため
に、本発明によるソフトウエア開発支援方法は、クライ
アントコンピュータと、クライアントコンピュータに接
続され、テンプレートルールを記載した各種文書で定義
されるテンプレートファイルを保持するファイルサーバ
とを備え、クライアントコンピュータによってテンプレ
ートルールに基づく実装システムの実行を支援するもの
であって、テンプレートファイルからテンプレートルー
ルを取得し、取得したテンプレートルールを読み込む第
1ステップと、読み込んだテンプレートファイルの定義
を実行し、その実行に伴って順次ソフトウエア開発に対
する提案、及び、開発計画ソフトウエア開発計画に対す
る修正や警告を作成する第2ステップと、提案や修正や
警告が作成される毎にそれらの作成内容を表示し、その
表示内容に基づいてソフトウエア開発内容を変更する第
3ステップとからなる第1の手段を具備する。
【0012】前記第1の手段によれば、テンプレートル
ールを記載した各種文書、例えば構造化文書で定義され
るテンプレートファイルを用い、このテンプレートファ
イルのテンプレートルールに基づいた処理を実行するこ
とにより、ソフトウエア開発に対する提案、開発したソ
フトウエアに対する修正や警告が作成され、かつ、その
ときに提案内容、修正内容や警告内容が表示されるの
で、それらの表示内容に従うことにより、ソフトウエア
開発に対する適切な支援の実行が可能になる。
【0013】また、前記目的を達成するために、本発明
によるソフトウエア開発支援方法は、クライアントコン
ピュータと、クライアントコンピュータに接続され、テ
ンプレートルールを記載した各種文書で定義されるテン
プレートファイルを保持するファイルサーバと、クライ
アントコンピュータに接続され、クライアントコンピュ
ータとともにソフトウエア開発組織を構成し、組織で利
用する共有情報テンプレートファイルを保持する共有情
報サイトとを備え、クライアントコンピュータによって
テンプレートルールに基づく実装システムの実行を支援
するソフトウエア開発支援方法であって、テンプレート
ファイル及び共有情報テンプレートファイルを取得し、
取得したテンプレートファイル及び共有情報テンプレー
トファイルを読み込む第1ステップと、読み込んだ各テ
ンプレートファイルの定義を実行し、その実行に伴って
順次ソフトウエア開発に対する提案、及び、ソフトウエ
ア開発計画に対する修正や警告を作成する第2ステップ
と、提案や修正や警告が作成される毎にそれらの作成内
容を表示し、その表示内容に基づいてソフトウエア開発
内容を変更する第3ステップとからなる第2の手段を具
備する。
【0014】前記第2の手段によれば、テンプレートル
ールを記載した各種文書、例えば構造化文書で定義され
るテンプレートファイルと、ソフトウエア開発組織を構
成する共有情報サイトからの共有情報テンプレートファ
イルとを用いて、各テンプレートファイルのテンプレー
トルールに基づいた処理を実行することにより、ソフト
ウエア開発に対する提案、開発したソフトウエアに対す
る修正や警告が作成され、かつ、そのときの提案内容、
修正内容や警告内容が表示されるので、それらの表示内
容に従うことにより、ソフトウエア開発に対する適切な
支援の実行が可能になる。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。
【0016】図1は、本発明によるソフトウエア開発支
援方法の実施の形態を示すもので、実装システムとその
周辺技術とを示す説明図である。
【0017】図1において、1はクライアントコンピュ
ータに提供される実装システム(アプリケーション・プ
ログラム)、11 はテンプレートファイル受領部、12
はテンプレートファイル読み込み部、13 はテンプレー
トルール演算部、14 はテンプレートルール評価部、1
5 はテンプレートルール表示部、2はファイルサーバが
保持するテンプレートルールを記載した各種文書で定義
されるテンプレートファイル保存部、3は共有情報テン
プレートファイル保持部、4は基本データリポジトリで
ある。
【0018】この場合、テンプレートファイル受領部1
1 は、テンプレートファイルであるXMLファイルを得
るものであって、典型的には、ファイルの形態で、テン
プレートルール保持部2から直接あるいは共有情報テン
プレートファイル保持部3を経由して読み出す。また、
ファイルの代わりに、XMLデータとして解釈可能なデ
ータストリームとして読み出すようにしてもよい。この
ような読み出しは、後述するように、テンプレートファ
イル読み込み部12 が直接テンプレートルール保持部2
または共有情報テンプレートファイル保持部3にアクセ
スして読み出す場合に行われる。
【0019】テンプレートファイル読み込み部12 は、
指定されたテンプレートファイルを読み込むか、テンプ
レートファイル受領部11 を通してテンプレートファイ
ル保存部2または共有情報テンプレートファイル保持部
3に直接アクセスし、それらの必要な内容をデータスト
リームの形態で読み込み、テンプレートファイルの内容
を実装システム1で利用可能な形態に展開する。このと
きの実装方法は自由であるが、代表的にはXMLデータ
を構文的に解釈する部分(XMLパーサと呼ばれる部
分)と、以下に述べるようにテンプレートルール演算部
3 への業務的なインターフェイスを提供する部分の2
階層によって構成される。なお、読み込まれたテンプレ
ートファイルの内容をテンプレートルールという。
【0020】テンプレートルール演算部13 は、テンプ
レートルールに演算式の定義がある場合、その演算式を
実行する演算部であって、テンプレートファイル読み込
み部12 で読み込んだテンプレートルールに基づき、以
下に述べるようにテンプレートルール評価部14 やテン
プレートルール表示部15 からの指示を受けた時点に指
示された演算を行い、その演算結果を指定の方法で、テ
ンプレートルール評価部14 やテンプレートルール表示
部15 に出力する。
【0021】テンプレートルール評価部14 は、テンプ
レートルールに見積り評価の定義がある場合、その定義
を評価する評価部であって、テンプレートファイル読み
込み部12 で読み込んだテンプレートルールに基づき、
テンプレートルール演算部1 3 に対して指定した時点に
指定した演算を行うように指示し、その演算結果を評価
してテンプレートルール表示部15 に出力する。
【0022】テンプレートルール表示部15 は、実装シ
ステム1で得られる種々の結果を表示する表示部であっ
て、その表示内容を大別すると、テンプレートルール評
価部14 で得られた見積り評価結果と、ソフトウエア開
発計画に関する各種の文書ひな形の自動生成結果であ
る。その表示方法は、実装に依存するが、代表的なもの
として、警告メッセージの表示、XML文書生成、デー
タベース更新等がある。
【0023】テンプレートファイル保存部2は、代表的
なものとして、XMLデータを保持できるデータベース
システムやXMLデータを保存しているディスク領域を
指すもので、データの蓄積方法は、自由形式であるが、
利用時に評価ルールが外部に読み出される際、XMLフ
ァイル形式あるいはXMLとして解釈できるデータスト
リームとして読み出し可能になるものが要求される。こ
の場合、テンプレートファイル保存部2が通常のディス
クに評価ルールファイルを保存しているだけであれば、
特別な読み出し機構を必要としない。
【0024】共有情報テンプレートファイル保持部3
は、このソフトウエア開発支援方法を利用する組織等に
おいて使用可能な共有情報を保持するものであって、こ
のような共有情報を保持する装置あるいはシステムの代
表的なものとしてWWWサイトがある。共有情報テンプ
レートファイル保持部3は、常時、使用されるものでな
いが、共有情報が必要になったときに、共有情報テンプ
レートファイル保持部3の保持内容あるいはWWWサイ
トを通してテンプレートファイル保存部2の保持内容が
テンプレートファイル読み込み部12 で読み込まれる。
【0025】基本データリポジトリ4は、テンプレート
ルール演算部13 やテンプレートルール評価部14 やテ
ンプレートルール表示部15 において利用する基本デー
タ、すなわちSQL文による操作が可能なインターフェ
イスを装備したリレーショナルデータベースあるいは他
のXML文書を保持するデータリポジトリであって、一
般的な方法によってアクセス可能なデータリポジトリで
ある。この基本データリポジトリ4は、本発明のソフト
ウエア開発支援方法を実施する際に必須のものでない
が、以下に述べるソフトウエア開発支援方法の動作にお
いては、基本データリポジトリ4を利用した場合を例に
挙げて説明する。
【0026】ここで、本発明のソフトウエア開発支援方
法に利用されるテンプレートファイルの内容について説
明する。
【0027】図2は、見積りルールマークアップ言語
(Estimate and Planning Ma
rkap Language、以下、これをEPMLと
いう)の文書型定義の概要を示す説明図であり、図3
は、図2に図示されたEPMLの文書型定義を階層的に
図示した説明図であり、図4は、図2に図示されたEP
ML要素の内容を示す説明図である。
【0028】EPMLは、XML規格に準拠したアプリ
ケーションであって、テンプレートファイルは、通常の
テキストエディタやXMLエディタを利用して容易に編
集可能なもので、WWWブラウザ等のXML対応製品を
利用すれば、その内容を容易に参照、表示可能なもので
ある。さらに、プログラム上の内容解析には、XMLを
解析するアルゴリズムを流用できるので、実装システム
も容易である。
【0029】以下、図2乃至図4を参照し、本発明のソ
フトウエア開発支援方法に利用するEPMLの規定の詳
細について述べる。なお、図2乃至図4において、同じ
要素番号は同じEPML要素を表わす。
【0030】epml要素001は、テンプレートファ
イルの最上位要素で、この下に1つ以上のepRule
要素003がある。各epRule要素003は互いに
独立し、自己完結的であることが望ましいが、他のep
Rule要素内の定義を参照するものであってもよい。
【0031】epRule要素003は、explai
n要素004、dataAddress要素005、r
ules要素006、estimations要素00
7、outputs要素008を収容している。
【0032】explain要素004は、属するep
Rule要素003の説明を記述する記述部で、通常、
クライアントコンピュータ(ユーザ)に情報を提供する
ために用いるもので、実装システム1のテンプレートル
ール選択画面におけるテンプレートルールリスト表示、
WWWサーバにおけるテンプレートルール一覧表示ペー
ジへのリスト表示等である。そして、explain要
素004は、title要素009、category
要素010、description要素011、as
sociation要素012を含んでいる。
【0033】この中で、title要素009は、属す
るテンプレートルールの名前を示す文字列を値として持
っており、category要素010は、属するテン
プレートルールを分類するための文字列を値として持っ
ている。この場合、複数の視点に基づく分類を可能にす
るため、一つのテンプレートルールについて一つ以上の
category要素010を持つことができる。例え
ば、2つのcategory要素010が、それぞれ
「工数評価用」及び「CSシステム用」という値を持っ
ていれば、そのテンプレートルールは「用途区分」及び
「適用対象システム区分」という2つの視点に基づく分
類が可能になる。また、category要素010
は、type属性によって分類の種別を特定している。
このtype属性の値は、許容値が実装に依存して決定
される。
【0034】また、description要素011
は、属するテンプレートルールを詳細に説明する文章を
値として持つもので、適用対象システムの前提条件、開
発環境、プロジェクト要員のスキル等、適用対象システ
ムの特性を特定するための情報の記述内容を有してお
り、ユーザはその記述内容を参考にしてテンプレートル
ールの適用可否を判断する。
【0035】association要素012は、d
escription要素011の内容を補強するため
の関連情報を記述するもので、type属性によって関
連情報の内容の種類を特定している。このtype属性
の値は、許容値が実装に依存して決定されるもので、例
えばtype属性が「URL」とされていれば、ass
ociation要素012の内容は参考とするURL
になり、type属性が「epRule」とされていれ
ば関連する他のテンプレートルールになる。
【0036】dataAddress要素005は、属
するテンプレートルールで使用される各種データの取得
方法または取得先についての定義を行うもので、データ
の種類(取得方法)毎に定義が行われるので、epRu
le要素003内に一つ以上存在する。dataAdd
ress要素005は、datasource要素01
3、viewDefinition要素014を含んで
いる。
【0037】datasource要素013は、属す
るdataAddress要素005のデータ取得元を
識別するための情報、またはoutput要素017に
よるデータ出力先を識別するための情報を設定する。そ
のtype属性は、データソースの種類を指定し、要素
の値としてデータソースにアクセスするための情報を持
っている。このtype属性の値は、実装に依存して決
められるもので、例えば、type属性が「RDB」で
あれば、要素値はリレーショナルデータベース名、ty
pe属性が「XML」であれば、要素値はXMLファイ
ルパス名、type属性が「SYS」であれば、要素値
は省略(システム情報を取得する)、type属性が
「user」であれば、要素値は省略(実装依存のデー
タ取得機能から取得する)、type属性が「manu
al」であれば、要素値は省略(実装システムを経由し
て手動入力の値を取得する)等がある。
【0038】viewDefinition要素014
は、属するdataAddress要素005のデータ
ソースから一回のデータ取得する毎に、そのデータ取得
操作の方法及びそれにより取得できるデータ項目の定義
を記述する。viewDefinition要素014
は、command要素018とvalue要素019
とを含んでいる。
【0039】command要素018は、属するvi
ewDefinition要素014におけるデータ取
得操作をデータソースに対して行う際のコマンド文字列
の定義を記述する。その内容は、実装やデータソースの
種類によって異なる。データソースがコマンド文字列等
を必要としないような種類のものであるかまたはデータ
の出力用のものであったときは、この要素を省略でき
る。例えば、データソースがリレーショナルデータベー
スであったときは、データを取得するためのSQL文
(SELECT文)、データソースがXMLファイルで
あったときは、要素を指定するためのデータアドレッシ
ング記述(例えば、XPath等)、データソースがシ
ステム情報であったときは、その情報種別(例えば、シ
ステム日付等)を指定するための文字列がそれぞれ記述
される。この文字列は、後述するparam要素025
を含むことができるので、コマンド文字列を動的に変更
することもできる。
【0040】command要素018は、typeと
keyの2つの属性があり、これらの属性は、いずれも
リレーショナルデータベースのように複数のレコードが
結果として返され得るデータソースに属するcomma
nd要素018での使用が前提になっている。type
属性は、データ取得操作によって返される結果、セット
が本質的に単一(single)であるか、複数(mu
ltiple)であるかを示す。デフォルトは「sin
gle」であって、この値が「multiple」にな
る場合、その結果セット(及びその参照)は、結果セッ
ト内の特定レコードを明示的に指定しない限り、常に集
合的に取扱われる。key属性は、複数行が返されるデ
ータ取得操作においてその結果セット内の行を一意に特
定するために使用するキー項目を指定する。具体的な使
用方法は実装に依存する。これは次に説明するvalu
e要素019のposition属性の指定に影響を与
える。
【0041】value要素019は、command
要素018で指定されるデータ取得操作の結果として返
されるデータ項目またはデータ項目の一部分を特定し、
それに識別子を付与することにより、テンプレートルー
ルの他の部分からの参照を可能にするために使用され
る。value要素019は、varld属性だけを持
ち、要素としての値は持っていない。varld属性
は、そのデータ項目の一意識別子である。positi
on属性は、関連するデータ取得操作結果セットのどの
項目を指しているかを指定する文字列である。これらは
実装に依存するが、代表的には次のようになる。
【0042】データソースがリレーショナルデータベー
スである場合、コマンドの選択リストの先頭項目を指す
には「@1」とする。この結果、セットに複数行が含ま
れる場合は、全行の第1項目を指していることになる。
複数行中の特定行の項目を指する場合は「$」を用い
る。例えば、第3行の第2項目を指定する場合は「@2
$3」のように記載する。特定のキー値を持つ行の項目
を指定する場合、例えばcommand要素018のk
ey属性が「keyA」と指定されていれば、「@3
[5]」と記載することにより、keyA=5である結
果セットの中の行の第3項目を指定していることにな
る。
【0043】rules要素006は、属するテンプレ
ートとルール中で用いる数式のコレクションであり、r
ule要素015は、rules要素006に少なくと
も1つ含まれる数式の定義である。ruleId属性は
rule要素015の一意識別子である。rule01
5要素は、math要素002及びpath要素020
を含んでいる。
【0044】math要素002は、数式を指定する。
数式の指定は、WWW Consortiumで標準化
された数式記述言語MathMLを取り込んで使用す
る。図2に図示の例では、便宜上、MathMLの文書
型定義の所在位置が「mmlents¥mathml.
dtd」であるとしているが、現実の実装システム1に
おいては実際の所在位置が記述される。MathMLの
要素の中で、どの要素がどのようにサポートされるかは
実装に依存する。
【0045】path要素020は、math要素00
2で指定される数式の特定の要素にパラメータを与える
ために用いる。パラメータの指定が不要である場合に省
略することが可能である。path要素020は、その
値として、math要素002の特定の下位要素を指し
示すための文字列を持つ。この文字列の書式は、標準の
XML文書部品指定言語であるXPathである。例え
ばmath要素002とその子孫要素が<math><
apply><plus/><ci>a</ci><c
n>5</cn></apply><math>のよう
に定義されているとき、最初のci要素を指定する場合
は「apply/ci」とする。
【0046】path要素020は、associat
edData属性、type属性、index属性の3
つの属性を持つ。associatedData属性
は、埋め込む値を示す識別子を指定する。これはval
ue要素019のvarId属性の値か、他のrule
要素015のruleId属性の値である。これらの属
性の値は循環参照を避けるように指定しなければならな
い。(循環参照を避ける方法は実装に依存する。)ま
た、属性の値が評価されるのは、数式が評価される時点
であり、この属性の値は数値として評価される。いま、
associatedData属性が参照するデータ項
目が集合的であった場合、math要素002の評価
は、そのデータ項目のそれぞれについて実行される。ま
た、同一のmath要素002に設定する複数のpat
h要素020で参照するデータ項目が同一のviewD
efinition要素014に属し、かつ、それらが
集合的であった場合、それらの値は、個別に参照して評
価するのではなく、同期をとった上で評価する。例えば
あるmath要素002に関連する前記条件を満たすp
ath要素020が2つあり、そのデータ集合に3つの
データが含まれる場合、math要素002の評価回数
は9回ではなく、3回になる。また、type属性及び
index属性は、後述するparam要素025のt
ype属性及びindex属性と同様の内容を持ってい
る。
【0047】estimations要素007は、主
として入力データに基づくソフトウエア開発の見積り・
計画の評価方法、その実行時期、評価結果の提示方法を
定義したestimation要素016をまとめるコ
レクション要素である。
【0048】estimation要素016は、個別
のソフトウエア開発の見積り・計画の評価方法、その実
行時期、評価結果の提示方法を定義する。このような一
組の定義を評価定義と呼び、この評価定義を処理するこ
とを評価処理と称する。estimation要素01
6は、pointOfTime要素021、crite
ria要素022、estDescription要素
023を含んでいる。この場合、estId属性はes
timation要素016の一意識別子である。
【0049】pointOfTime要素021は、属
するestimation要素016またはoutpu
t要素017の評価がいつ実行されるかを定義する。p
ointOfTime要素021の値は実装に依存する
が、代表的には、「REQUIRED」(利用者が明示
的に要求したとき)、「LOADED」(評価ルール定
義ファイルが実装システムに読み込まれたとき)、「C
HANID=E:nnnn」(estld属性の値がn
nnnの別のestimations要素が評価され、
それが成立したときに実行)等となる。この場合、複数
の時点で評価が実行される可能性があるため、1つのe
stimation要素016またはoutput要素
017に1つ以上のpointOfTime要素021
を定義することができる。
【0050】criteria要素022は、属するe
stimation要素016の評価が成立する条件を
定義する。criteria要素022の値は、比較演
算子(<、≦、=、≧、>)、論理演算子(AND、O
R、NOT)、括弧、及びパラメータによる条件式であ
る。パラメータは、固定文字を直接記述する場合及びp
aram要素025により数式やデータ項目の値を参照
する場合がある。そして、条件式の評価結果に真値
(+)が得られれば、そのestimation要素0
16の評価が成立したことになる。criteria要
素022が省略された場合、そのestimation
要素016は常に成立することになる。また、para
m要素025で参照される数式やデータが複数の値を持
つとき、それぞれの値に対してcriteria要素0
22の評価が実施され、その結果として成立した評価分
だけ、estDescription要素023による
提示が行われる。
【0051】estDescription要素023
は、criteria要素022の条件式が成立し、e
stimation要素016の評価が成立したときに
ユーザに提示される情報を定義する。estDescr
iption要素023は、属するestimatio
n要素016が別のestimation要素016に
従属するか、あるいは属するestimation要素
016がoutput要素017の実行条件としてのみ
利用されるか、すなわち別のestimation要素
016のcriteria要素022内のparam要
素025で参照されるか、あるいはoutput要素0
17内のpointOfTime要素021内で参照さ
れるためだけに記述されている場合は、省略される。ま
た、同時に複数の手段でユーザに提示される場合は、必
要な数だけ定義する。
【0052】estDescription要素023
のtype属性は、その値が実装に依存する。このty
pe属性は、estimation要素016の内容を
ユーザに提示する手段を指定する。代表的なものとして
は、「MSGBOX」(ポップアップダイアログボック
スによるメッセージ表示)、「LOGFILE」(所定
のログファイルへの書き込み)等がある。estDes
cription要素023の値は、type属性で指
定された提示方法と実装に依存する。
【0053】outputs要素008は、主として入
力データに基づくソフトウエアの開発の見積り・計画に
対する文書類の生成方法を定義したoutput要素0
17をまとめるコレクション要素である。
【0054】output要素017は、個別の入力デ
ータに基づくソフトウエアの開発の見積り・計画に対す
る文書類の生成方法を定義する。こうした一組の定義を
出力定義と呼び、この出力定義を処理することを出力処
理と称する。output要素017は、pointO
fTime要素021とoutDescription
要素024とを含んでいる。output要素017の
outId属性はoutput要素017の一意識別子
である。
【0055】pointOfTime要素021は、評
価や出力がどの時点で処理されるかを指示する。
【0056】outDescription要素024
は、出力処理で生成される文書等の雛形を定義する。o
utDescription要素024は、同時に複数
の手段によりユーザに提示される場合、必要な数だけ定
義する。outDescription要素024は、
type属性とto属性の2つの属性を持つ。
【0057】type属性の値は、実装に依存するが、
outDescription要素024の内容をユー
ザに提示する手段を明示する。代表的なものとしては
「XML」(XMLファイルへの出力)、「RDB」
(リレーショナルデータベースへの出力)等がある。t
o属性の値は、出力先を参照するデータソースの識別子
を指定する。outDescription要素024
の値は、type属性で指定された提示方法と実装に依
存する。
【0058】param要素025は、データ項目、数
式、メッセージを参照するために用いる。param要
素025は、command要素018に埋め込まれた
場合に、その条件式の変数として埋め込むデータ項目や
数式(の計算結果)や別評価式の(criteria要
素022の)評価結果を参照する。なお、param要
素025は、要素としての値を持っておらず、from
属性、type属性、index属性の3つの属性を持
っている。
【0059】from属性は、埋め込むデータの識別子
を参照することによって埋め込みデータを指定する。埋
め込むデータが、データ項目の場合はそのデータ項目
(value要素019)のvarId属性の値、数式
の演算結果の場合はその数式(rule要素015)の
ruleId属性の値、出力データの場合は、その出力
定義(output要素017)のoutId属性の値
を設定する。
【0060】type属性は、from属性で参照され
るデータの種類を示す値を設定する。参照項目がデータ
であれば「V」、数式であれば「R」、評価式であれば
「E」、出力データであれば「O」であり、デフォルト
は「V」である。
【0061】index属性は、集合的なデータの中か
ら特定のデータのみを指定する場合に用いる。集合的で
ないデータに設定した場合は、その設定が無視される。
index属性の値の指定方法には次の3種類がある。
その1は、符号なしの数値を指定した場合で、そのデー
タの集合の先頭のデータを1とした絶対出現順でデータ
が指定される。その2は、符号付きのデータを指定した
場合で、プラス(+)記号がつく場合にデータ集合の先
頭からの相対位置によってデータが指定され、マイナス
(−)記号がつく場合にデータ集合の末尾からの相対位
置によってデータが指定される。その3は、前記いずれ
の指定も行わない場合で、データ項目の識別子(var
Id)と見做し、そのデータ内容を参照する。そのデー
タ項目が集合的である場合や、数値以外のものを返す場
合、あるいは該当する識別子が存在しない場合は、in
dex属性の指定はなかったものとする。結果の値は、
絶対位置の指定として処理される。いずれの指定方法を
行った場合であっても、データ集合の範囲外が指定され
た場合は、最も近い正当なデータ項目を指すように補正
される。
【0062】このindex属性が指定されている場合
は、その参照元を集合的でないものとして取扱う。例え
ば、あるデータ集合(1、5、2、4、7、10)があ
った場合、index属性の値が「1」または「+0」
または「−5」の場合は1、「6」または「−0」また
は「+5」の場合は10、「3」または「+2」または
「−3」の場合は2を指す。「7」の場合は「6」に補
正されて10を指し、「−10」の場合は「−5」に補
正されて1を指す。
【0063】次に、テンプレートファイルの定義例と実
装システム例に基づき、本発明によるソフトウエア開発
支援方法について説明する。
【0064】なお、以下の説明においては、使用する実
装システム1のシステム名を説明の便宜上EP1と称す
る場合がある。すなわち説明文の中に「EP1では…
…」等と記載されている場合、それはEP1の実装シス
テム1を表わすものである。また「データnnn」とい
う表現があった場合、それはデータ識別子(varId
属性)で値「nnn」を指定され、そのデータ識別子で
参照されるデータを意味する。数式や評価についても同
様である。
【0065】図5、図6、図7、図8及び図9は、本発
明のソフトウエア開発支援方法に用いられるテンプレー
トファイルの内容の一例を示す説明図であって、図5に
図示の内容の後に、図6に図示の内容、図7に図示の内
容、図8に図示の内容、図9に図示の内容がそれぞれ続
いており、1つのテンプレートファイルの内容を表わし
ている。なお、図5乃至図9において、テンプレートフ
ァイルの内容の左側に図示されている3桁の数字001
乃至252は、テンプレートファイルの行数を表わすも
ので、前記の各要素番号001乃至025とは異なるも
のである。
【0066】図5乃至図9に図示のテンプレートファイ
ルにおいて、行004乃至251に提示されている内容
は、1つのテンプレートルールを表わすもので、このテ
ンプレートルールは、ウオーターフォールモデルを基礎
としたソフトウエア開発管理プロセスの1つのパターン
に基づいたリソース配分の可否を判定するためのもので
ある。このテンプレートルールの機能は、与えられたソ
フトウエア開発期間を日程上、設計、製造、テストの3
工程期間に分配し、それぞれの工程期間を総開発期間の
30%、30%、40%に分配設定した上で、それらの
各工程期間で必要とするリソース(ここでは技術者を指
す)の調達可否状態を、事前に見積ったシステム規模と
要員管理情報(技術スキルやスケジュール)との比較に
よって判定し、調達可能であるとの判定が得られた場
合、日程計画表(帳票)の枠組みを自動生成するもので
ある。なお、ここでは説明を簡単にするため、全ての機
能が同一のプログラム言語で開発されるものとする。
【0067】実装システム1(EP1)において、テン
プレートファイル読み込み部12 は、テンプレートファ
イル受領部11 を介して所定のディレクトリに格納され
ているテンプレートファイル、例えばテンプレートファ
イル保存部2のテンプレートファイルを一括して読み込
み、ユーザが適用する品質評価ルールを選択させる。こ
のような処理は、テンプレートファイル内のexpla
in要素004(図3を参照)の内容に基づいて行うも
ので、図5においては行005乃至014がその処理に
該当する。
【0068】また、図10は、実装システム1(EP
1)においてテンプレートルール表示部15 に表示され
るテンプレートルール選択画面の1つの表示例である。
【0069】図10に図示されるように、この選択画面
においては、表示領域101 にカテゴリータイプ(分類
の視点)が表示され、表示領域102 にそのカテゴリー
タイプに含まれる選択カテゴリーが表示され、表示領域
103 に選択カテゴリーに該当する品質評価テンプレー
トルールの名称が一覧表示される。そして、図10に図
示の例では、表示領域101 のカテゴリータイプが「プ
ロセス管理モデル」であり、表示領域102 の選択カテ
ゴリーが「ウオーターフォール」であるので、表示領域
103 の品質評価テンプレートルールは「ウオーターフ
ォールのテンプレートルール」の一覧表示になる。この
場合、図5に図示のテンプレートモデルは、行007に
おけるtype属性の値が「model」(EP1の表
現では「プロセス管理モデル」)で、要素値が「Wat
erfall」(EP1の表現では「ウオーターフォー
ル」)であるcategory要素を記述しているた
め、表示領域103 の品質評価テンプレートルールに行
006におけるtitle要素の要素値が一覧表示され
る。
【0070】また、図11は、図10とは異なる視点で
分類したテンプレートルール表示部15 に表示されるテ
ンプレートルール選択画面の他の表示例である。
【0071】図11に図示の例では、表示領域101
カテゴリータイプが「文書種別」であり、表示領域10
2 のカテゴリータイプが「工程表」であるので、表示領
域103 の品質評価テンプレートルールは「工程表のテ
ンプレートルール」の一覧表示になる。この場合、図5
に図示のテンプレートモデルは、行008におけるty
pe属性の値が「type」(EP1の表現では「文書
種別」)で、要素値が「Process」(EP1の表
現では「工程表」)であるcategory要素を記述
しているため、表示領域103 の品質評価テンプレート
ルールに行009におけるリソース配分例が一覧表示さ
れる。
【0072】次いで、図12は、実装システム1(EP
1)においてテンプレートルール表示部15 に表示され
るテンプレートルールの詳細を示す表示例である。
【0073】図12に図示の表示画面は、図10または
図11の表示領域103 の中の1つのテンプレートルー
ルを選択した上で表示領域104 を操作したときに表示
されるものであって、選択したテンプレートルールのe
xplein要素の内容を参照することができるもので
ある。
【0074】図12に図示の例では、図5に図示のテン
プレートルールの行004における評価ルール「E00
1」の内容が表示されるもので、表示領域121 に行0
06におけるtitle要素値が表示され、表示領域1
2 に行007乃至008におけるcategory要
素の内容が表示され、表示領域123 に行009乃至0
13におけるdescription要素の内容が表示
される。この場合、カテゴリータイプ(type属性)
の値は、EP1において「model」が「プロセス管
理モデル」、「type」が「文書種別」であり、カテ
ゴリー(category要素値)の値は、EP1にお
いて「Waterfall」が「ウオーターフォー
ル」、「Process」が「工程表」であるとのマッ
プ表示が行われる。
【0075】ところで、実装システム1(EP1)にお
いては、テンプレートルール選択画面におけるテンプレ
ートルールを選択実行することにより、選択したテンプ
レートルールが有効になり、定義された手順によりソフ
トウエア開発の見積り評価や文書の自動作成が実行され
る。このような選択実行の操作は、図10または図11
に図示の表示領域103 から1つのテンプレートルール
を選択し、表示領域104 を操作することである。
【0076】続いて、テンプレートルール「E001」
が実行される際の処理の流れについて説明する。
【0077】図13は、テンプレートルール「E00
1」で使用するデータの概要を一覧表にまとめた説明図
であり、データの左側に付された数字1乃至20は行数
を表わしている。
【0078】図13を参照し、テンプレートルール「E
001」で使用するデータについて述べる。「E00
1」で使用するデータは、図5乃至図7に図示されたテ
ンプレートルールの行015乃至135におけるdat
aAddress要素からその定義が導かれるものであ
る。
【0079】行1(以下、行1乃至20はいずれも図1
3に図示の行を意味する)は、図5における行017乃
至020のviewDefinition要素に対応す
る。また、行015乃至033のdataAddres
s要素で定義するデータソースのタイプは、図5におけ
る行016のdatasource要素の定義により、
EP1においては手動入力(type=”MANUA
L”)であり、viewDefinition要素は、
行018に記述のように要素値をTargetProj
ectとするcommand要素を持っている。これは
EP1において、TargetProjectという名
前で識別される値を要求することを意味する。この値は
意味的にプロジェクトの一意識別子である。こうして取
得された値は、図5における行019に記述のようにテ
ンプレートルール内でデータ識別子「E001VM0
1」で参照される。なお、このcommand要素は、
データの値が1つだけであるので、position要
素の指定をする必要がない。
【0080】行2乃至4は、それぞれ図5における行0
21乃至024、行025乃至028、行029乃至0
32の各viewDefinition要素を仕様し、
図5における行020に記述のように値「beginn
ingDate」を行023に記述のようにデータ識別
子「E001VM02」で、行026に記述のように値
「LastDate」を行027に記述のようにデータ
識別子「E001VM03」で、行030に記述のよう
に値[FileOutputTo」を行027に記述の
ようにデータ識別子「E001VM04」でそれぞれ参
照する。これらのデータの意味は、それぞれプロジェク
トの開始日付、プロジェクトの終了日付、出力ファイル
の出力先ファイルパス名である。
【0081】行5乃至13は、図5乃至図6における行
034乃至084のdataAddress要素に対応
する。このdataAddress要素で定義するデー
タソースのタイプは、図5における行035のdata
source要素の定義により、EP1においてはユー
ザー定義関数(type=”USERS”)である。な
お、このユーザー定義関数は、実装系が独自に提供する
関数を指す。
【0082】この中で、行5は、図5における行036
乃至041のviewDefinition要素に対応
する。ユーザー定義関数のcommand要素の値の書
式は、EP1では、関数名と引数群の列挙である。引数
は、param要素またはカンマ区切りの定数で記述す
る。また、図5における行038のcommand要素
は、CalcCalendar1という名称のユーザー
定義関数をデータ「E001VM02」とデータ「E0
01VM03」を引数として実行することを意味する。
「E001VM02」と「E001VM03」について
は、前述のように、プロジェクトの開始日付、プロジェ
クトの終了日付を意味する。EP1においては、Cal
cCalendar1関数は、指定した日付を含め、そ
の日付間の週数を返却する関数であるので、このcom
mand要素の内容を実行すれば、プロジェクトの予定
期間を取得することができる。この値は、図5における
行040に記述のようにデータ識別子「E001VF0
1」で参照される。
【0083】次に、行6は、図5における行042乃至
046のviewDefinition要素に対応す
る。行044のcommand要素は、CalcCal
endar2という名称のユーザー定義関数をデータ
「E001VM02」を固定値「0」で実行することを
意味する。EP1におけるCalcCalendar2
関数は、第1引数で指定した日付に、第2引数で指定し
た週数を加算した結果得られるの日付を週単位日付で返
す関数である。週単位日付とは、EP1で用いられる工
数・工程管理用の日付である。EP1では、1月を4乃
至5週と見做し、それを最小の作業割り当て単位として
いる。EP1のデータベース(図1に図示の基本データ
リポジトリ4に該当する)上では、その各週を現実の暦
日とは別に1、8、15、22、29日として管理して
いる。例えば「2000年3月第3週」は、データベー
ス上では「2000/3/8」として表現される。この
「2000/3/8」のような日付をEP1では週単位
日付と呼んでいる。データ「E001VM02」は前述
のようにプロジェクトの開始日付であり、それを月数加
算「0」で実行するので、データ「E001VM02」
の日付の週単位日付を取得することができる。この値
は、図5の行045に記述のデータ識別子「E001V
F02」で参照される。
【0084】次いで、行7は、図5における行047乃
至052のviewDefinition要素に対応す
る。行049のcommand要素は、ユーザー定義関
数「CalcCalendar2」を、データ「E00
1VM02」と数式「E001R01」との演算結果を
引数として実行することを意味する。データ「E001
VM02」は、前述のようにプロジェクトの開始日付で
あり、数式「E001R01」は、後述するように「設
計工程の週数」を算出するものであって、週単位日付に
おける製造工程開始日付を取得することができる。この
値は、図5における行051に記述のデータ識別子「E
001VF03」で参照される。
【0085】次に、行8は、図5及び図6における行0
53乃至058のviewDefinition要素に
対応する。行055のcommand要素は、ユーザー
定義関数「CalcCalendar2」を、データ
「E001VM02」と数式「E001R02」との演
算結果を引数として実行することを意味する。データ
「E001VM02」は、前述のようにプロジェクトの
開始日付であり、数式「E001R02」は、後述する
ように「設計及び製造工程の週数」を算出するものであ
って、週単位日付におけるテスト工程開始日付を取得す
ることができる。この値は、図6における行057に記
述のデータ識別子「E001VF04」で参照される。
【0086】次いで、行9は、図6における行059乃
至063のviewDefinition要素に対応す
る。行61のcommand要素は、ユーザー定義関数
「CalcCalendar2」を、データ「E001
VM03」と固定値「0」とを引数として実行すること
を意味する。データ「E001VM03」は、前述のよ
うにプロジェクトの終了日付であり、週単位日付におけ
るテスト工程終了日付(テスト工程が終了する週)を取
得することができる。この値は、図6における行062
に記述のデータ識別子「E001VF05」で参照され
る。
【0087】次に、行10は、図6における行064乃
至068のviewDefinition要素に対応す
る。行66のcommand要素は、ユーザー定義関数
「CalcCalendar3」を、データ「E001
VF03」を固定値「−1」を引数として実行すること
を意味する。EP1によるCalcCalendar3
は、第1引数を週単位日付とし、第2引数を補正日数と
して、第1引数の週単位日付を実際の暦日に変換し、そ
れに第2引数の補正日数を加減した日付を返す関数であ
る。データ「E001VF03」は、前述のように製造
工程開始日付の週単位日付であり、これを実行すると、
実際の暦日における製造工程開始日の前日、すなわち設
計工程終了日付を取得することができる。この値は、図
6における行067に記述のデータ識別子「E001V
F06」で参照される。
【0088】次いで、行11は、図6における行069
乃至073のviewDefinition要素に対応
する。行071のcommand要素は、ユーザー定義
関数「CalcCalendar3」を、データ「E0
01VF03」と固定値「0」を引数として実行するこ
とを意味する。データ「E001VF03」は、前述の
ように製造工程開始日付の週単位日付であり、これを実
行すると、実際の暦日における製造工程開始日付を取得
することができる。この値は、図6における行072に
記述のデータ識別子「E001VF07」で参照され
る。
【0089】次に、行12は、図6における行074乃
至078のviewDefinition要素に対応す
る。行076のcommand要素は、ユーザー定義関
数「CalcCalendar3」を、データ「E00
1VF04」と固定値「−1」を引数として実行するこ
とを意味する。データ「E001VF04」は、前述の
ようにテスト工程開始日付の週単位日付であり、これを
実行すると、実際の暦日におけるテスト工程開始日の前
日すなわち製造工程終了日付を取得することができる。
この値は、図6における行077に記述のデータ識別子
「E001VF08」で参照される。
【0090】次いで、行13は、図6における行079
乃至083のviewDefinition要素に対応
する。行081のcommand要素は、ユーザー定義
関数「CalcCalendar3」を、データ「E0
01VF04」と固定値「0」を引数として実行するこ
とを意味する。データ「E001VF04」は、前述の
ようにテスト工程開始日付の週単位日付であり、これを
実行すると、実際の暦日におけるテスト工程開始日付を
取得することができる。この値は、図6における行08
2に記述のデータ識別子「E001VF09」で参照さ
れる。
【0091】続いて、行14乃至20は、図6乃至図7
における行085乃至139のdataAddress
要素に対応する。このdataAddress要素で定
義するデータソースタイプは、図6における行086の
datasource要素の指定により、EP1ではリ
レーショナルデータベースである(type=”RD
B”)。このdatasource要素は、要素値「r
esInfol」を持っているが、これはEP1ではデ
ータベース名「resInfol」のデータベースを利
用することを指定している。
【0092】次に、図14は、データベース「resI
nfol」のテーブル定義の一部を示す説明図であっ
て、ソフトウエア開発の見積りに関する部分を表してい
る。
【0093】図14に図示されるように、データベース
「resInfol」は、要員管理表(PRSC)、要
員技術管理表(PSSC)、技術コード表(CSK
L)、投入りソース管理表(URSC)、プロジェクト
管理表(PRJC)、機能性管理表(PFTC)を含ん
でいる。
【0094】この場合、要員管理表は、ソフトウエア開
発組織に係わる全ての要員についての基本情報を管理す
るもので、「要員番号」は要員の一意識別子であり、
「要員氏名」は要員の氏名である。なお、実際はこれら
の情報だけでなく、他の情報も含んでいる。
【0095】要員技術管理表は、要員が備えている技術
とその技術レベルとを管理するもので、「要員番号」は
要員の一意識別子であり、「技術タイプ」はその要員が
備えている技術の種類を示すコード値であり、「技術
値」はその技術タイプについてのその要員の最小管理期
間単位(ここでは週)当たりの処理能力をファンクショ
ンポイントで表現した値である。一般に、要員は、複数
の技術を備えている場合が多いので、要員管理表と要員
技術管理表とは、「要員番号」をキーとして一対多数で
関連している。
【0096】技術コード表は、個別技術についての定義
情報を格納するコードテーブルで、「キーコード」は技
術の一意識別子であり、「技術名」はその技術の名称で
あり、「換算係数」は特に技術がプログラミング言語で
あった場合に、そのソフトウエア開発組織におけるファ
ンクションポイントとソースコード行数の標準換算係
数、すなわち1ファンクションポイント当たりのソース
コード行数である。要員技術管理表と技術コード表と
は、「技術タイプ」と「キーコード」とをキーとして一
対一で関連している。
【0097】投入りソース管理表は、要員をどのプロジ
ェクトにいつ投入したかあるいは投入するかを管理する
もので、「要員番号」は要員の一意識別子であり、「プ
ロジェクトコード」はその要員を投入したプロジェクト
の一意識別子であり、「投入年月週」はその要員をその
プロジェクトに投入した期間の週単位日付である。これ
により、このテーブルのレコードは、要員1人について
年間最大で52レコードを持つことになる。
【0098】プロジェクト管理表は、開発完了、開発中
あるいは開発予定のプロジェクトの全体情報を管理する
もので、「プロジェクトコード」はプロジェクトの一意
識別子であり、「プロジェクト名」はプロジェクトの名
称であり、「プロジェクトステータス」はそのプロジェ
クトの状態すなわち開発完了、開発中、見積り段階等の
どの段階にあるかを示し、「開始日」はプロジェクトの
開発開始日であり、「終了日」はプロジェクトの開発終
了(予定)日である。
【0099】機能性管理表は、各プロジェクトで構成す
るサブシステムの情報を管理するもので、「プロジェク
トコード」はプロジェクトの一意識別子であり、「機能
コード」は機能のプロジェクト内の一意識別子であり、
「機能名」は機能の名称であり、「開発言語」はその機
能の開発言語を示す技術コードであり、「予測規模」は
その機能の開発言語で実装した場合の予測ステップ数で
あり、「実績規模」は開発終了時のその機能のステップ
数であり、「重要度」はそのサブシステムのシステム全
体に対する重要度である。プロジェクト管理表と機能性
管理表とは、「プロジェクトコード」をキーとして一対
多数で関連しており、機能性管理表と技術コード表と
は、「開発言語」と「キーコード」をキーとして一対一
で関連している。
【0100】再び、図13に戻り、行14は、図6にお
ける行087乃至094のviewDefinitio
n要素に対応する。この場合、データソースタイプがリ
レーショナルデータベースである場合、command
要素の要素値は発行するSQL文等で、そのデータベー
スが受け入れるコマンド文字列になる。このため、図6
における行089のcommand要素の要素値は、p
aram要素で参照するデータ「E001VM01」が
仮に「P20000002」であった場合に、SQL文
「SERECTSUM(PFTC.FTES/CSK
L.CFPL),PRJC.PRNM FROM PF
TC,CSKL,PRJC WHEREPFTC.FT
PL=CSKL.KCOD AND PFTC.PRI
D=PRJC.PRID=PRJC AND PFT
C.PRID=’P20000002’」であると解釈
される。このSQL文を実行した場合、図14に図示さ
れたプロジェクト管理表と機能性管理表と技術コード表
とから、「プロジェクトコード」が「P2000000
2」に該当する「プロジェクト名」とそのプロジェクト
に属する全ての機能をファンクションポイントに換算し
て合計した値を取得することができる。「プロジェクト
コード」は一意であるので、返される結果は単一であ
る。
【0101】図6における行092に記述のvalue
要素の定義により、結果の第1カラム(positio
n=”@1”)、すなわちファンクションポイント総数
は「E001VD01」で参照される(varld=”
E001VD01”)。
【0102】図6における行093に記述のvalue
要素の定義により、結果の第2カラム(positio
n=”@2”)、すなわちプロジェクト名は「E001
VD01」で参照される(varld=”E001VD
10”)。
【0103】次いで、行15は、図6における行095
乃至100のviewDefinition要素に対応
する。ここで、行097のcommand要素の要素値
は、param要素で参照されるデータ「E001VF
01」の値が仮に「100」であった場合に、SQL文
「SELECTSUM(SMPM)×(100×0.
3)FROM PSSC WHERE STYP=1」
であると解釈される。このSQL文を実行した場合、要
員技術管理表から設計技術(EP1においては、設計技
術はコード「1」で表現される)を備えている全ての要
員が設計工程の期間に投入できた場合の処理可能ファン
クションポイント総数を取得できる。
【0104】図6における行099に記述のvalue
要素の定義により、この値は「E001VD02」で参
照される(varld=”E001VD02”)。な
お、この値は、単一カラムだけを持つのでpositi
on属性の指定が省略される。
【0105】続いて、行16は、図6及び図7における
行101乃至108のviewDefinition要
素に対応する。行103のcommand要素の要素値
は、param要素で参照されるデータ「E001VF
02」の値が仮に「2000/2/1」であり、データ
「E001VF03」の値が仮に「2000/5/1」
であった場合に、SQL文「SERECT SUM(P
SSC.SFPM)FROM PSSC,URSC W
HERE PSSC.STYP=1 ANDPSSC.
PSID AND URSC.URYM>=TO DA
TE(’2000/2/1’) AND URSC.U
RYM<TO DATE(’2000/5/1’)」で
あると解釈される。このSQL文を実行した場合、要員
技術管理表と投入りソース管理表とから設計技術を持つ
全ての要員の内、設計工程の期間中に既に別のプロジェ
クトに投入されている期間のファンクションポイント総
数を取得できる。
【0106】図6における行107に記述のvalue
要素の定義により、この値は「E001VD03」で参
照される(varld=”E001VD03”)。この
値も単一のカラムだけを持つのでposition属性
の指定がは省略される。
【0107】次に、行17は、図7における行109乃
至115のviewDefinition要素に対応す
る。行111のcommand要素の要素値は、par
am要素で参照されるデータ「E001VF01」の値
が仮に「100」であり、データ「E001VM01」
の値が仮に「P2000002」であった場合に、SQ
L文「SERECT SUM(PSSC.SFPM)×
(100×0.3)FROM PSSC,PFTC W
HERE PFTC.FTPL=PSSC.STYP
AND PFTC.PRID=’P2000002’」
であると解釈される。このSQL文を実行した場合、要
員技術管理表と機能性管理表とからプロジェクトを構成
する各サブシステムの開発言語の技術を持つ全ての要員
を製造工程の期間に投入できる場合の処理可能ファンク
ションポイント総数を取得できる。
【0108】図7における行114に記述のvalue
要素の定義により、この値は「E001VD04」で参
照される(varld=”E001VD04”)。この
値も単一のカラムだけを持つのでposition属性
の指定が省略される。
【0109】次いで、行18は、図7における行116
乃至124のviewDefinition要素に対応
する。行118のcommand要素の要素値は、pa
ram要素で参照されるデータ「E001VM01」の
値が仮に「P2000002」であり、データ「E00
1VF03」の値が仮に「2000/8/1」であった
場合、SQL文「SERECT SUM(PSSC.S
FPM) FROMPSSC,URSC,PFTC W
HERE PFTC.FTPL=PSSC.STYP
AND PFTC.PRID=URSC.PSID P
FTC.PRID=’P2000002’ AND U
RSC.URYM<TO DATE(’2000/8/
1’)」であると解釈される。このSQL文を実行した
場合、要員技術管理表と投入リソース管理表と機能性管
理表とからプロジェクトを構成する各サブシステムの開
発言語の技術を持つ全ての要員の内、製造工程の期間に
既に別のプロジェクトに投入されている期間のファンク
ションポイント総数を取得できる。
【0110】図7における行123に記述のvalue
要素の定義により、この値は「E001VD05」で参
照される(varld=”E001VD05”)。この
値も単一のカラムだけを持つのでposition属性
の指定が省略される。
【0111】続いて、行19は、図7における行125
乃至130のviewDefinition要素に対応
する。行127のcommand要素の要素値は、pa
ram要素で参照されるデータ「E001VF01」の
値が仮に「100」であった場合、SQL文「SERE
CT SUM(SFPM)×(100×0.4) FR
OM PSSC WHERE STYP=99」である
と解釈される。このSQL文を実行した場合、要員技術
管理表からテスト技術(EP1においては、テスト技術
はコード「99」で表現される)を備えている全ての要
員をテスト工程の期間に投入できた場合の処理可能ファ
ンクションポイント総数を取得できる。
【0112】図7における行129に記述のvalue
要素の定義により、この値は「E001VD06」で参
照される(varld=”E001VD06”)。この
値も単一のカラムだけを持つのでposition属性
の指定が省略される。
【0113】続く、行20は、図7における行131乃
至138のviewDefinition要素に対応す
る。行133のcommand要素の要素値は、par
am要素で参照されるデータ「E001VF04」の値
が仮に「2000/8/1」であり、データ「E001
VF05」の値が仮に「2000/11/22」であっ
た場合、SQL文「SERECT SUM(PSSC.
SFPM) FROMPSSC,URSC WHERE
PSSC.STYP=99 AND PSSC.PR
ID=URSC.PSID AND URSC.URY
M>=TODATE(’2000/8/1’) AND
URSC.URUM<=TO DATE(’2000
/11/22’)」であると解釈される。このSQL文
を実行した場合、要員技術管理表と投入リソース管理表
とからテスト技術を備えている全ての要員の内、製造工
程の期間中に既に別のプロジェクトに投入されている期
間のファンクションポイント総数を取得できる。
【0114】図7における行137に記述のvalue
要素の定義により、この値は「E001VD07」で参
照される(varld=”E001VD07”)。この
値も単一のカラムだけを持つのでposition属性
の指定が省略される。
【0115】続いて、品質評価テンプレートルール「E
001」で使用する数式について説明する。
【0116】図15は、品質評価テンプレートルール
「E001」で使用する数式の概要を一覧表として表わ
した説明図である。
【0117】図15に図示されているデータの定義は、
図7乃至図8における行140乃至194のrule要
素から導かれるものである。なお、図15に図示のデー
タの左側に付された数字は行数を表している。
【0118】行1は、図7における行141乃至150
のrule要素に対応する。このrule要素で定義す
る数式の識別子は「E001R01」であり(ruld
=”E001R01”)、数式自体の定義はMathM
L(TM)に従って記述する。このrule要素の数式
は、図7における行143乃至148のmath要素に
よって定義されている。
【0119】MathML(TM)は、演算の最小単位
をapply要素で表現するもので、基本的に、app
ly要素の最初の子要素に、その演算方法(加算、減
算)を示す要素を設定し、それに続いてオペランドを指
定する子要素を設定する。オペランドが数字であった場
合にcn要素で定義し、数字でなかった場合にci要素
で定義する。また他のapply要素を子要素にするこ
ともできる。例えば「a+1」をMathML(TM)
で表現した場合、<apply><plus/><ci
>a</ci><cn>1</cn></apply>
のようになる。
【0120】従って、図7における行144乃至147
のapply要素は、「c×0.3」を示す。こうして
表現された数式を実際に計算する場合、変数「c」の部
分に値を設定する必要があるが、これはmath要素に
続くpath要素で行う。path要素は、設定するデ
ータの指定をassociatedData属性で指定
し、設定先を要素値のXpath構文で指定する。図7
における行149のpath要素は、データ「E001
FV01」を、行145に記述のように、math要素
の子のapply要素の子のci要素に設定することを
示している。この数式を計算した場合に、プロジェクト
の予定期間の週数の30%に当たる週数を算出できる。
【0121】次に、行2は、図7及び図8における行1
51乃至160のrule要素に対応する。これらのr
ule要素で定義する数式の識別子は「E001R0
2」であり(ruld=”E001R02”)、行15
4乃至157のapply要素は「c×0.6」を示
す。行159のpath要素は、データ「B001FV
01」を、行155に記述のように、math要素の子
のapply要素の子のci要素に設定することを示し
ている。この数式を計算した場合に、プロジェクトの予
定期間の週数の60%に当たる週数を算出できる。
【0122】次いで、行3は、図8における行161乃
至171のrule要素に対応する。これらのrule
要素で定義する数式の識別子は「E001R03」であ
り(ruld=”E001R03”)、行164乃至1
67のapply要素は「t−u」を示す。行169の
path要素は、データ「B001FV02」を、行1
69に記述のように、math要素の子のapply要
素の子の最初のci要素に設定することを示し、行17
0のpath要素は、データ「B001FV03」を、
行169に記述のように、math要素の子のappl
y要素の子の二番目のci要素に設定することを示して
いる。この数式を計算した場合に、プロジェクトテスト
工程期間の実質的な投入可能リソース量を計算できる。
【0123】次に、行4は、図8における行172乃至
182のrule要素に対応する。これらのrule要
素で定義する数式の識別子は「E001R04」であり
(ruld=”E001R04”)、行175乃至17
8のapply要素は「t−u」を示す。行180のp
ath要素は、データ「B001VD04」を、行17
6に記述のように、math要素の子のapply要素
の子の最初のci要素に設定することを示し、行181
のpath要素は、データ「B001VD05」を、行
177に記述のように、math要素の子のapply
要素の子の二番目のci要素に設定することを示してい
る。この数式を計算した場合に、プロジェクト製造工程
期間の実質的な投入可能リソース量を計算できる。
【0124】次いで、行5は、図8における行182乃
至193のrule要素に対応する。これらのrule
要素で定義する数式の識別子は「E001R05」であ
り(ruld=”E001R05”)、行175乃至1
78のapply要素は「t−u」を示す。行180の
path要素は、データ「B001VD04」を、行1
76に記述のように、math要素の子のapply要
素の子の最初のci要素に設定することを示し、行18
1のpath要素は、データ「B001VD05」を、
行177に記述のように、math要素の子のappl
y要素の子の二番目のci要素に設定することを示して
いる。この数式を計算した場合に、プロジェクト製造工
程期間の実質的な投入可能リソース量を計算できる。
【0125】このようなテンプレートルール「E00
1」におけるデータ及び数式は、評価処理の開始をトリ
ガーとして、参照・評価されるものである。
【0126】テンプレートルール「E001」における
評価処理は、図8乃至図9における行196乃至233
のestimations要素で定義される。これらの
estimations要素は、行197乃至202の
評価識別子「E001E01」の評価、行203乃至2
08の評価識別子「E001E02」の評価、行209
乃至214の評価識別子「E001E03」の評価、行
215乃至220の評価識別子「E001E04」の評
価、行221乃至226の評価識別子「E001E0
5」の評価、行227乃至232の評価識別子「E00
1E06」の評価を含んでいる。
【0127】この中で、評価「E001E01」は、行
199のpointOfTime要素の要素値「REQ
UIRED」に基づき、EP1の実装系から要求があっ
た場合に評価処理を実行する。評価「E001E02」
は、行205のpointOfTime要素の要素値
「FALSE=E:E001E01」に基づき、EP1
において評価「E001E01」が偽値(−)であった
場合に評価処理が実行される。評価「E001E03」
は、行211のpointOfTime要素の要素値
「TRUE=E:E001E01」に基づき、EP1に
おいて評価「E001E01」が真値(+)であった場
合に評価処理が実行される。評価「E001E04」
は、行217のpointOfTime要素の要素値
「FALSE=E:E001E03」に基づき、EP1
において評価「E001E03」が偽値(−)であった
場合に評価処理が実行される。評価「E001E05」
は、行223のpointOfTime要素の要素値
「TRUE=E:E001E03」に基づき、EP1に
おいて評価「E001E03」が真値(+)であった場
合に評価処理が実行される。また、評価「E001E0
6」では、行229のpointOfTime要素の要
素値「FALSE=E:E001E05」に基づき、E
P1において評価「E001E05」が偽値(−)であ
った場合に評価処理が実行される。
【0128】以上のように、テンプレートルール「E0
01」における評価処理は、全て品質評価テンプレート
ルールの適用時に、最初の評価「E001E01」が実
行されると、その実行結果から次々に他の評価が連鎖的
に処理される可能性を持っているものである。
【0129】次いで、図16、図17は、EP1に用い
られる基本データリポジトリ4の保持内容の一例を示す
説明図である。
【0130】図16及び図17に示されるように、基本
データリポジトリ4の保持内容は、要員管理表における
要員番号と要員氏名、要員技術管理表における要員番号
と技術タイプと技術値、投入リソース管理表における要
員番号とプロジェクトコードと投入年月日、技術コード
表におけるキーコードと技術名と換算計数、プロジェク
ト管理表におけるプロジェクトコードとプロジェクト名
とプロジェクトステータスと開始日と終了日、機能性管
理表におけるプロジェクトコードと機能コードと機能名
と開発言語と規模予測と実績規模と重要度であって、そ
れらの各項目の内容の一例として図示の通りのものが収
納保持されている。
【0131】ところで、評価「E001E01」、評価
「E001E03」、評価「E001E05」は、図8
における行200、図9における行212及び行224
にそれぞれ記述のようにcriteria要素を含んで
いて、これらの評価処理を行う際には、対応するcri
teria要素の内容を評価しなければならない。これ
に対して、評価「E001E02」、評価「E001E
04」、評価「E001E06」は、いずれもcrit
eria要素を含んでおらず、criteria要素の
内容の評価を行う必要がない。
【0132】図18は、テンプレートルール「E00
1」におけるcriteria要素内のparam要素
の評価方法を表わす説明図であり、図19は、テンプレ
ートルール「E001」におけるcriteria要素
内のparam要素の評価の進捗状態を表わす説明図で
ある。また、図20、図21は、基本データデポジトリ
4の変更後のテンプレートルール「E001」における
criteria要素内のparam要素の評価の進捗
状態を表わす説明図である。なお、図18乃至図21に
おいて、図示されている3桁の数001乃至011は処
理番号を表す。
【0133】図18に図示されるように、評価「E00
1E01」を処理する場合は、数式「E001R03」
の演算結果(処理001)とデータ「E001VD0
1」(処理002)とが必要であり、その中で数式「E
001R03」の演算を行う場合は、データ「E001
VD03」(処理007)とデータ「E001VD0
2」(処理008)とが必要であり、その中でデータ
「E001VD03」を得るには、データ「E001V
F02」(処理009)とデータ「E001VF03」
(処理010)とが必要であり、その中でデータ「E0
01VF02」を得るには、データ「E001VM0
2」(処理011)が必要になる。
【0134】また、これらのparam要素以外のpa
ram要素についても、前述の評価と同様の評価を行
う。なお、図18に図示の状態は、意味的なデータの依
存関係を示すものであて、実際の演算方法は実装に依存
する。
【0135】EP1は、criteria要素の出現順
にparam要素を評価するものであって、始めに、数
式「E001R03」の評価を行う。このとき、データ
の依存関係の終端にあるデータ「E001VM02」と
データ「E001VM03」の解決が試みられる。デー
タ「E001VM02」はパラメータ「Beginni
ngDate」を、データ「E001VM03」はパラ
メータ「LastDate」をそれぞれ手動入力する項
目であるため、EP1においては入力ダイアログボック
スを開いてユーザーに手動入力を促す。また、EP1に
おいてはテンプレートルールで使用する手動入力パラメ
ータを一括入力することが要求されるので、データ「E
001VM01」のパラメータ「TargetProj
ect」とデータ「E001VM04」のパラメータ
「FileOutputTo」が同時解決される。この
とき、データ「E001VM01」にパラメータ値「P
2000002」を、データ「E001VM02」にパ
ラメータ値「2000/2/1」を、データ「E001
VM03」にパラメータ値「2000/8/31」を、
データ「E001VM04」にパラメータ値「C:¥E
PResult¥tmp¥PrimProcess.x
ml」をそれぞれ手動入力している。
【0136】図22は、実装システム1(EP1)にお
いてパラメータ値の手動入力するときにテンプレートル
ール表示部15 に表示される表示画面の一例である。
【0137】図22に図示されるように、表示画面は、
パラメータ「TargetProject」、「Beg
inningDate」、「LastDate」に対し
て、下記のような値を手動入力したことが表示されるも
ので、TargetProject欄に値「P2000
002」が、BeginningDate欄に値「20
00/2/1」が、LastDate欄に値「2000
/8/31」がそれぞれ表示される。
【0138】図18に戻り、データ「E001VD0
2」の解決にはデータ「E001VF01」の解決が必
要であり、データ「E001VF01」の解決にはデー
タ「E001VM02」とデータ「E001VM03」
の解決が必要である。この場合、データ「E001VM
02」とデータ「E001VM03」は、パラメータ値
の手動入力によっれ解決済みであるので、これらのパラ
メータ値「2000/2/1」、「2000/8/3
1」を引数とし、ユーザー定義関数「CalcCale
ndar1」を実行すると、その実行結果は「30」と
なる。また、データ「E001VD02」は、データ
「E001VF01」の解決済みの値「30」をpar
am要素の位置に埋め込んだSQL文が「SERECT
SUM(SFPM)×(30×0.3) FROM
PSSC WHERE STYP=1」となり、その結
果は、図16及び図17に図示の内容から「(100+
150)×30×0.3」、すなわち「2250」にな
る。
【0139】さらに、データ「E001VD03」の解
決にはデータ「E001VF02」とデータ「E001
VF03」の解決が必要であり、データ「E001VF
02」の解決のために、パラメータ値「2000/2/
1」及び「0」を引数としてユーザー定義関数「Cal
cCalendar2」を実行すると、その実行結果は
「2000/2/1」となる。同様に、データ「E00
1VF03」の解決には数式「E001R01」の解決
が必要であり、数式「c×0.3」の「c」にデータ
「E001VF01」の解決済みの値「30」を当て嵌
めて数式「30×0.3」の計算を行うと、その結果が
「9」になる。このため、データ「E001VF03」
は、解決済みの値「2000/2/1」及び値「9」を
引数とし、ユーザー定義関数「CalcCalenda
r2」の実行により解決され、その結果は「2000/
4/1」となる。
【0140】以上の解決結果に基づき、データ「E00
1VF03」の解決にはデータ「E001VF02」と
データ「E001VF03」の解決済みの値「2000
/2/1」、「2000/4/1」をparam要素の
位置に埋め込んだSQL文が「SERECT SUM
(PSSC.SFPM) FROM PSSC,URS
C WHERE PSSC.STYP=1 AND P
SSC.PSID=URSC.PSID AND UR
SC.URYM>=TO DATE(’2000/2/
1’) AND URSC.URYM<TO DATE
(’2000/4/1’)」となり、その結果は、図1
6及び図17に図示の内容から「1350」になる。
【0141】次に、以上の解決結果に基づき、数式「E
001R03」の解決には数式「t−u」の「t」にデ
ータ「E001VD02」の解決済みの値「2250」
を、「u」にデータ「E001VD03」の解決済みの
値「1350」をそれぞれ当て嵌めた数式「2250−
1350」の計算を行うと、その計算結果が「900」
になる。
【0142】このとき、評価「E001E01」のcr
iteria要素値は、論理演算式「900≧501」
と解釈され、その演算結果が真値(+)になるので、評
価「E001E01」は成立したものと見做せる。そし
て、評価「E001E01」が成立したことにより、評
価「E001E01」に連鎖した形で、評価「E001
E03」の処理が開始される。
【0143】評価「E001E03」の処理は、前記評
価「E001E01」の処理と殆んど同じ処理形態によ
って行われるものであり、その処理により、データ「E
001VM01」、「E001VM02」、「E001
VM03」、「E001VF01」、「E001VF0
3」、「E001R01」は、解決済みの値「P200
002」、「2000/2/1」、「2000/8/3
1」、「30」、「2000/4/1」、「9」にな
る。このときのcriteria要素内のparam要
素の評価の進捗状態は、図19に図示されるように網か
けを施した部分によって表わされる。
【0144】このとき、評価「E001E03」のcr
iteria要素値は、論理演算式「450≧501」
と解釈され、その演算結果が偽値(−)になるので、評
価「E001E03」は成立しなかったものと見做され
る。そして、評価「E001E03」が成立しなかった
ことにより、評価「E001E03」に連鎖した形で、
評価「E001E04」の評価が開始される。
【0145】この評価「E001E04」はcrite
ria要素がないため、自動的に成立し、図9における
行218に記述のestDescription要素が
処理される。estDescription要素は、t
ype属性値が「MSGBOX」であるので、EP1に
おけるテンプレートルール表示部15 には警告メッセー
ジが表示される。
【0146】図23は、実装システム1(EP1)にお
いてこのときテンプレートルール表示部15 に表示され
る警告メッセージの表示例である。
【0147】図23に図示されるように、この場合、
「現在の投入可能なリソース量では、製造工程で最低限
必要なリソースを確保することができません」との表示
内容が示される。この表示がなされると、この一連のテ
ンプレートルール「E001」の処理が終了し、これ以
上連鎖した形の処理の進行が停止される。
【0148】以上、テンプレートルール「E001」の
処理を行った結果、プロジェクト「ProjectY」
における製造工程の投入リソースが不足していることが
判ったので、プロジェクト「ProjectX」の担当
要員を一部変更し、再度、テンプレートルール「E00
1」の処理を行う。
【0149】ここで、図24は、EP1における基本デ
ータリポジトリ4の変更した保持内容の一例を示す説明
図であって、図16、図17に図示された基本データリ
ポジトリ4の保持内容と対応するものである。なお、図
24においては、今回変更された投入リソース管理表の
行14乃至22の部分(網かけを施した部分)だけを記
載しており、今回変更されないそれ以外の部分の記載を
省略している。
【0150】図24に図示されるように、投入リソース
管理表の行14乃至22の部分、すなわちProjec
tXにおける期間「2000/4/1」乃至「2000
/5/29」の担当要員を、要員番号「S01213
0」の担当者から要員番号「S042520」の担当者
に変更している。
【0151】この変更された基本データリポジトリ4の
内容に基づき、テンプレートルール「E001」の処理
を再度実行する。この処理においては、前記処理手順と
同様の処理手順によって評価「E001E03」まで処
理されると、処理の進捗状況は図20に図示された評価
「E001E01」及び「E001E03」の処理結果
の通りになる。このとき、評価「E001E03」のc
riteria要素値は、論理演算式「585≧50
1」と解釈され、この演算が真値(+)になるので、評
価「E001E03」は成立したものと見做せる。そし
て、評価「E001E03」が成立したことにより、評
価「E001E03」に連鎖した形で、評価「E001
E05」の処理が開始される。
【0152】評価「E001E05」の処理において、
データ「E001VD01」は解決済みであるので、数
式「E001R05」を解決する。このときも前記処理
手順と同様の処理手順によって評価「E001E05」
を処理し、評価「E001E05」の処理が行われる
と、処理の進捗状況は図21に図示された処理結果の通
りになる。このとき、評価「E001E05」のcri
teria要素値は、論理演算式「2160≧501」
と解釈され、この演算が真値(+)になるので、評価
「E001E05」が成立したものと見做せる。
【0153】この時点において、テンプレートルールの
選択によって開始されたテンプレートルール「E00
1」の一連の評価処理が終了する。
【0154】この後、評価「E001E05」が成立し
たことにより、その成立を端緒として、テンプレートル
ール「E001」は、図9における行234乃至250
のoutput要素の処理に移行し、以下に述べるよう
なoutput要素の処理が行われる。すなわち、行2
35における出力「E001O01」は、一つのout
Description要素(図9における行238乃
至248)が含まれている。このoutDescrip
tion要素は、type属性値が「XML」であるの
で、EP1においてはoutDescription要
素値の内容を解釈した結果をto属性で指定される出力
先のファイルにXML文書として出力される。
【0155】まず、outDescription要素
内容に含まれているparam要素を解決する。このと
き、param要素が参照しているのは、データ「E0
01VD10」(図9における行240、242、24
4)、データ「E001VM02」(図9における行2
40)、データ「E001VM03」(図9における行
241、243、248)、データ「E001VF0
6」(図9における行244)、データ「E001VF
07」(図9における行245)、データ「E001V
F08」(図9における行246)、データ「E001
VF09」(図9における行247)である。データ
「E001VD10」、「E001VM02」、「E0
01VM03」は、先行する評価処理の段階で解決済み
であるので、それを適用するデータ「E001VF0
6」、「E001VF07」、「E001VF08」、
「E001VF09」は、評価処理と同様に解決適用す
る。
【0156】その結果、文字列「<?xml vers
ion=”1.0” encoding=”Shift
−jis! ?><ProcML><projecti
nfo name=”ProjectY” Start
=”2000/2/1” End=”2000/8/3
1” /><page title=”大日程計画表”
Start=”2000/2/1” End=”20
00/8/31” ><pageItem name
=”設計” pgld=”D001” Start=”
2000/2/1” End=”2000/4/2”
/><pageItem name=”製造” pgl
d=”COO1” Start=”2000/4/3”
End=”2000/6/4” /><pageIt
em name=”テスト” pgld=”T001”
Start=”2000/6/5” End=”20
00/8/31” /></page><ProcML
>」が、データ「E001VM04」の値である「C:
¥EPResult¥tmp¥PrimProces
s.xml」にファイル出力される。この出力は、工程
表を示すXML文書であるので、この形式のXML文書
を表示編集できるソフトウエアを用いてEP1における
テンプレートルール表示部15 に供給すれば、その表示
画面に下記のような工程表を表示させることができる。
【0157】図25は、テンプレートルール表示部15
の表示画面に表示される工程表の一例を示す説明図であ
る。
【0158】図25に図示されるように、この工程表
は、プロジェクト名、プロジェクト期間、大日程計画
表、設計期間、製造期間、テスト期間の表示をするもの
で、プロジェクト名にProjectY、プロジェクト
期間及び大日程計画表にそれぞれ2000年2月1日〜
2000年8月31日が示され、設計期間が2000年
2月1日〜2000年4月2日、製造期間が2000年
4月3日〜2000年6月4日、テスト期間が2000
年6月5日〜2000年8月31日であることが表示さ
れる。
【0159】以上の処理が行われた時点で、テンプレー
トルール「E001」の処理が全て終了する。
【0160】ところで、前記説明においては、基本デー
タリポジトリ4の内容を変更する場合、プロジェクト
「ProjectX」の担当要員を一部を変更している
例について説明したが、警告メッセージの表示内容によ
っては、担当要員を一部を変更する代わりに、他の項目
の変更を行う必要がある。
【0161】そこで、他の項目の変更の一例として、以
下、ソフトウエア開発の見積り方法を変更した場合の例
を説明する。
【0162】この例に従ったソフトウエアの開発の見積
り方法のシナリオは、第1に、現行のソフトウエア開発
の見積り方法に、開発対象のシステム特性(システムの
種類や規模)に基づく開発生産性の補正機能を追加する
こと、第2に、基本データリポジトリ4に、システム特
性とその補正係数を管理するテーブルを追加し、プロジ
ェクト管理表のレコードに前記テーブルのレコードを参
照するデータ項目を追加すること、第3に、リソース量
の計算時に、その機能毎に補正係数を適用することであ
る。
【0163】図26は、前記シナリオに従って部分的に
変更されたデータベース「resInfol」のテーブ
ル定義の一部を示す説明図であって、図14に図示のテ
ーブル定義に対応するものである。
【0164】図26に図示されるように、新たなテーブ
ル定義は、現行のプロジェクト管理表の8行にシステム
特性の項目を追加し、また、新たにシステム特性コード
表を追加しており、その他のテーブルには変更を加えて
いない。このシステム特性コード表は、3つの項目とし
て「キーコード」、「特性内容」、「補正係数」があ
り、この中で、「キーコード」はシステム特性を示すコ
ード値であり、「特性内容」はシステム特性の説明内容
を示す文字列、例えば「ホスト:バッチ系:約1000
FP」等であり、「補正係数」は生産性の補正係数であ
る。この場合、生産性の補正係数としては、現行の要員
技術管理表の「技術値」を「一般企業向けホストバッチ
系システムで1000FP」の生産性であると見做し、
それを補正するための乗算値を設定するもので、例えば
通常よりも高い信頼性を要求されるシステムにおいては
生産性が低下するため、補正係数として「0.6」を設
定し、逆に規模が小さいシステムにおいては一般に生産
性が向上するため、補正係数として「2」を設定する。
【0165】また、ソフトウエア開発の見積り方法が変
更され、それに伴って基本データリポジトリ4の構成の
変更されると、それらの変更に対応させて、テンプレー
トルール「E001」のテンプレートファイルを部分的
に変更する。このテンプレートファイルの変更の内容
は、リソース量を計算するためのデータ参照時に、前述
のような補正処理を追加することである。
【0166】図27及び図28は、部分的に変更された
テンプレートファイルの内容の一例を示す説明図であっ
て、図6及び図8に図示されたテンプレートファイルの
内容に対応するものである。
【0167】図6における行087乃至094のvie
wDefinition要素を、図27に図示の行00
1乃至009のように変更する。この変更によって、
「補正係数」を「E001VD11」(図27における
行008)で参照できるようになる。
【0168】また、図8における行161乃至193の
3つのrule要素を、図28に図示の行001乃至0
45のように変更する。この変更によって、図28にお
ける行003乃至011、行018乃至026、行03
3乃至041のmath要素で示す演算式が修正され、
追加されたオペランド「w」にパラメータ値を割り当て
るpath要素が新たに追加されている(図28におけ
る行014、029、044参照)。
【0169】このような変更を行うことにより、それぞ
れのrule要素で処理される式は、「(t−u)×
w」(ここで、wは補正係数)となり、設計、製造、テ
ストの各工程に投入できる最終的なリソース量が補正さ
れるようになる。
【0170】そして、実装システム1を変更することな
く、テンプレートファイルの内容の部分変更を行うだけ
で、新しいソフトウエア開発の見積り方法に対応できる
ようになる。
【0171】続いて、共有情報テンプレートファイル保
持部3を用いた評価テンプレートファイルの共有例につ
いて説明する。
【0172】図29は、2つの実装システムEP1、E
P2が評価テンプレートルール「E001」を共有して
いる状態を示す説明図であって、評価テンプレートルー
ル「E001」を、1つの実装システムEP1と他の実
装システムEP2とが共有する場合を示すものである。
【0173】この場合、実装システムEP1と実装シス
テムEP2とは、実装形態がほぼ同じであるが、幾つか
のキーワードが異なっているものとし、仮に、実装シス
テムEP1におけるユーザー定義関数「CalcCal
endar1」が実装システムEP2では「GetDa
te1」と表現され、実装システムEP1におけるデー
タソース指定キーワード「MANUAL」が実装システ
ムEP2では「UserInput」と表現されている
ものとする。
【0174】共有するテンプレートファイルとその文書
型宣言ファイルは、実装システムEP1及び実装システ
ムEP2の双方からアクセス可能なテンプレートファイ
ル保存部(例えば、ネットワーク上の共有ディレクトリ
等)に配置されており、実装システムEP1または実装
システムEP2がそれらを必要とするときに、実装シス
テムEP1及び実装システムEP2内のローカルテンプ
レートファイル保存部にダウンロードして利用されるも
のである。この場合、実装システムEP1及び実装シス
テムEP2の内部では、図29に004または005と
して図示されているように、XMLのエンティティ参照
機能を用いて単に名前を置き換えるだけで足りる。
【0175】この手順は、最初に、図29における内容
001に示すように、ローカルな名前への置き換えを行
うため、QEMLの文書型宣言ファイルに外部エンティ
ティ宣言を追加する。次に、評価テンプレートルール定
義ファイル「E001.xml」において、実装システ
ムEP1、EP2毎に異なる名称の付与はエンティティ
参照で表現するようにする。図29の図示の例では、実
装システムEP1におけるキーワード「MANUAL」
は、内容002に示すように「&dst1」と置き換え
られ、ユーザー定義関数名「CalcCalendar
1」は、内容003に示すように「&udf1;」と置
き換えられる。そして、実装システムEP1及び実装シ
ステムEP2のローカルテンプレートファイル保存部
に、前記エンティティ参照を解決するためのエンティテ
ィ宣言を含んだファイル「local.dtd」を、内
容004、005に示すようにそれぞれ配置しておけ
ば、実装システムEP1及び実装システムEP2におい
てこの評価テンプレートファイルが解釈されるとき、エ
ンティティ参照機能を用いた名前の置き換えを適切に実
行することができる。
【0176】また、それぞれの実装システムEP1及び
実装システムEP2で利用する基本データリポジトリ4
の構成が異なっている場合であっても、前述の処理方法
と同様の処理方法を用いて、評価テンプレートルール
「E001」を共有させることができる。
【0177】
【発明の効果】以上説明したように、請求項1に記載の
発明によれば、テンプレートルールを記載した各種文
書、例えば構造化文書で定義されるテンプレートファイ
ルを用い、このテンプレートファイルのテンプレートル
ールに基づいた処理を実行することにより、ソフトウエ
ア開発に対する提案、ソフトウエア開発計画に対する修
正や警告が作成され、かつ、そのときに提案内容、修正
内容や警告内容が表示されるので、それらの表示内容に
従うことにより、ソフトウエア開発に対する適切な支援
の実行が可能になるという効果がある。
【0178】また、請求項1に記載の発明によれば、テ
ンプレートルールを記載した各種文書、例えば構造化文
書で定義されるテンプレートファイルと、ソフトウエア
開発組織を構成する共有情報サイトからの共有情報テン
プレートファイルとを用いて、各テンプレートファイル
のテンプレートルールに基づいた処理を実行することに
より、ソフトウエア開発に対する提案、ソフトウエア開
発計画に対する修正や警告が作成され、かつ、そのとき
の提案内容、修正内容や警告内容が表示されるので、そ
れらの表示内容に従うことにより、ソフトウエア開発に
対する適切な支援の実行が可能になるという効果があ
る。
【図面の簡単な説明】
【図1】本発明によるソフトウエア開発支援方法の実施
の形態を示すもので、実装システムとその周辺技術とを
示す説明図である。
【図2】見積りルールマークアップ言語(EPML)の
文書型定義の概要を示す説明図である。
【図3】図2に図示されたEPMLの文書型定義を階層
的に図示した説明図である。
【図4】図2に図示されたEPML要素の内容を示す説
明図である。
【図5】本発明のソフトウエア開発支援方法に用いられ
るテンプレートファイルの内容の一例を示す説明図であ
る。
【図6】本発明のソフトウエア開発支援方法に用いられ
るテンプレートファイルの内容の一例を示す説明図であ
る。
【図7】本発明のソフトウエア開発支援方法に用いられ
るテンプレートファイルの内容の一例を示す説明図であ
る。
【図8】本発明のソフトウエア開発支援方法に用いられ
るテンプレートファイルの内容の一例を示す説明図であ
る。
【図9】本発明のソフトウエア開発支援方法に用いられ
るテンプレートファイルの内容の一例を示す説明図であ
る。
【図10】実装システムにおいてテンプレートルール表
示部に表示されるテンプレートルール選択画面の1つの
表示例である。
【図11】図10とは異なる視点で分類したテンプレー
トルール表示部に表示されるテンプレートルール選択画
面の他の表示例である。
【図12】実装システムにおいてテンプレートルール表
示部に表示されるテンプレートルールの詳細を示す表示
例である。
【図13】テンプレートルール「E001」で使用する
データの概要を一覧表にまとめた説明図である。
【図14】データベース「resInfol」のテーブ
ル定義の一部を示す説明図である。
【図15】品質評価テンプレートルール「E001」で
使用する数式の概要を一覧表として表わした説明図であ
る。
【図16】実装システムに用いられる基本データリポジ
トリの保持内容の一例を示す説明図である。
【図17】実装システムに用いられる基本データリポジ
トリの保持内容の一例を示す説明図である。
【図18】テンプレートルール「E001」におけるc
riteria要素内のparam要素の評価方法を表
わす説明図である。
【図19】テンプレートルール「E001」におけるc
riteria要素内のparam要素の評価の進捗状
態を表わす説明図である。
【図20】基本データデポジトリ変更後のテンプレート
ルール「E001」におけるcriteria要素内の
param要素の評価の進捗状態を表わす説明図であ
る。
【図21】基本データデポジトリ変更後のテンプレート
ルール「E001」におけるcriteria要素内の
param要素の評価の進捗状態を表わす説明図であ
る。
【図22】実装システムにおいてパラメータ値の手動入
力するときにテンプレートルール表示部に表示される表
示画面の一例である。
【図23】実装システムにおいてこのときテンプレート
ルール表示部に表示される警告メッセージの表示例であ
る。
【図24】実装システムにおける基本データリポジトリ
の変更した保持内容の一例を示す説明図である。
【図25】テンプレートルール表示部の表示画面に表示
される工程表の一例を示す説明図である。
【図26】部分的に変更されたデータベース「resI
nfol」のテーブル定義の一部を示す説明図である。
【図27】部分的に変更されたテンプレートファイルの
内容の一例を示す説明図である。
【図28】部分的に変更されたテンプレートファイルの
内容の一例を示す説明図である。
【図29】2つの実装システムEP1、EP2が評価テ
ンプレートルール「E001」を共有している状態を示
す説明図であっ
【符号の説明】
1 実装システム(アプリケーション・プログラム) 11 テンプレートファイル受領部 12 テンプレートファイル読み込み部 13 テンプレートルール演算部 14 テンプレートルール評価部 15 テンプレートルール表示部 2 テンプレートファイル保存部 3 共有情報テンプレートファイル保持部 4 基本データリポジトリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小藤田 剛実 東京都渋谷区道玄坂一丁目16番5号 株式 会社日立情報システムズ内 (72)発明者 上田 大 東京都渋谷区道玄坂一丁目16番5号 株式 会社日立情報システムズ内 Fターム(参考) 5B076 EC09

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 クライアントコンピュータと、前記クラ
    イアントコンピュータに接続され、テンプレートルール
    を記載した各種文書で定義されるテンプレートファイル
    を保持するファイルサーバとを備え、前記クライアント
    コンピュータによって前記テンプレートルールに基づく
    実装システムの実行を支援するソフトウエア開発支援方
    法であって、前記テンプレートファイルから前記テンプ
    レートルールを取得し、取得したテンプレートルールを
    読み込む第1ステップと、前記読み込んだテンプレート
    ファイルの定義を実行し、その実行に伴って順次ソフト
    ウエア開発に対する提案、及び、ソフトウエア開発計画
    に対する修正や警告を作成する第2ステップと、前記提
    案や前記修正や警告が作成される毎にそれらの作成内容
    を表示し、その表示内容に基づいて前記ソフトウエア開
    発内容を変更する第3ステップとからなることを特徴と
    するソフトウエア開発支援方法。
  2. 【請求項2】 クライアントコンピュータと、前記クラ
    イアントコンピュータに接続され、テンプレートルール
    を記載した各種文書で定義されるテンプレートファイル
    を保持するファイルサーバと、前記クライアントコンピ
    ュータに接続され、前記クライアントコンピュータとと
    もにソフトウエア開発組織を構成し、前記組織で利用す
    る共有情報テンプレートファイルを保持する共有情報サ
    イトとを備え、前記クライアントコンピュータによって
    前記テンプレートルールに基づく実装システムの実行を
    支援するソフトウエア開発支援方法であって、前記テン
    プレートファイル及び前記共有情報テンプレートファイ
    ルを取得し、取得したテンプレートファイル及び前記共
    有情報テンプレートファイルを読み込む第1ステップ
    と、前記読み込んだ各テンプレートファイルの定義を実
    行し、その実行に伴って順次ソフトウエア開発に対する
    提案、及び、ソフトウエア開発計画に対する修正や警告
    を作成する第2ステップと、前記提案や前記修正や警告
    が作成される毎にそれらの作成内容を表示し、その表示
    内容に基づいて前記ソフトウエア開発内容を変更する第
    3ステップとからなることを特徴とするソフトウエア開
    発支援方法。
  3. 【請求項3】 前記各テンプレートファイルを定義する
    各種文書は、構造化文書であることを特徴とする請求項
    1または2のいずれかに記載のソフトウエア開発支援方
    法。
  4. 【請求項4】 前記クライアントコンピュータにおける
    テンプレートルールの読み込みは、前記テンプレートル
    ールの内容を読み込むとともに、前記テンプレートルー
    ルの定義に基づいて実行時に利用するパラメータを取得
    することを特徴とする請求項1乃至3のいずれかに記載
    のソフトウエア開発支援方法。
  5. 【請求項5】 前記クライアントコンピュータにおける
    ソフトウエア開発に対する提案、及び、開発したソフト
    ウエアに対する修正や警告の作成は、読み込んだテンプ
    レートルールの内容と、取得したパラメータの内容に従
    って作成されることを特徴とする請求項4に記載のソフ
    トウエア開発支援方法。
  6. 【請求項6】 前記各テンプレートファイルからのテン
    プレートルールの取得はテンプレートファイル受領部
    で、取得したテンプレートルールの読み込みはテンプレ
    ートファイル読み込み部で、ソフトウエア開発に対する
    提案、及び、開発したソフトウエアに対する修正や警告
    の作成は前記テンプレートファイル読み込み部、テンプ
    レートルール演算部、テンプレートルール評価部のそれ
    ぞれで、作成した提案、修正や警告の表示はテンプレー
    トルール表示部でそれぞれ行っていることを特徴とする
    請求項1または2のいずれかに記載のソフトウエア開発
    支援方法。
JP2000231724A 2000-07-31 2000-07-31 ソフトウエア開発支援方法 Pending JP2002041288A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000231724A JP2002041288A (ja) 2000-07-31 2000-07-31 ソフトウエア開発支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000231724A JP2002041288A (ja) 2000-07-31 2000-07-31 ソフトウエア開発支援方法

Publications (1)

Publication Number Publication Date
JP2002041288A true JP2002041288A (ja) 2002-02-08

Family

ID=18724514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000231724A Pending JP2002041288A (ja) 2000-07-31 2000-07-31 ソフトウエア開発支援方法

Country Status (1)

Country Link
JP (1) JP2002041288A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102312308B1 (ko) * 2020-04-06 2021-10-14 (주)앱닥터 프로젝트 중개 시스템, 서버 및 그 동작방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02240731A (ja) * 1989-03-15 1990-09-25 Hitachi Ltd プロジェクト計画作成・調整方法およびプロジェクト管理システム
JPH06119205A (ja) * 1992-10-01 1994-04-28 Toshiba Corp ソフトウェアの品質分析装置およびその高品質化支援装置
JPH07146806A (ja) * 1993-11-22 1995-06-06 Toshiba Corp テスト作業管理支援装置
JPH07160762A (ja) * 1993-12-06 1995-06-23 Hitachi Ltd 見積り支援装置
JPH08305557A (ja) * 1995-04-28 1996-11-22 Toshiba Corp プログラミング管理支援装置及びプログラミング管理支援方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02240731A (ja) * 1989-03-15 1990-09-25 Hitachi Ltd プロジェクト計画作成・調整方法およびプロジェクト管理システム
JPH06119205A (ja) * 1992-10-01 1994-04-28 Toshiba Corp ソフトウェアの品質分析装置およびその高品質化支援装置
JPH07146806A (ja) * 1993-11-22 1995-06-06 Toshiba Corp テスト作業管理支援装置
JPH07160762A (ja) * 1993-12-06 1995-06-23 Hitachi Ltd 見積り支援装置
JPH08305557A (ja) * 1995-04-28 1996-11-22 Toshiba Corp プログラミング管理支援装置及びプログラミング管理支援方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102312308B1 (ko) * 2020-04-06 2021-10-14 (주)앱닥터 프로젝트 중개 시스템, 서버 및 그 동작방법

Similar Documents

Publication Publication Date Title
Nelson Foundations and methods of stochastic simulation
US8930337B2 (en) Mapping dataset elements
CN110892375B (zh) 用于规则编辑、模拟、版本控制和业务流程管理的系统
US8910110B2 (en) Application translation cost estimator
US20040111284A1 (en) Method and system to perform work units through action and resource entities
CN111126026B (zh) 将sql语句解析生成可视化报表的方法和工具
Melzer et al. Model-based development of a federated database infrastructure to support the usability of cross-domain information systems
JP5160773B2 (ja) 情報処理装置およびその方法
Wojszczyk et al. The process of verifying the implementation of design patterns—used data models
US8601011B2 (en) Detailed data aggregation apparatus and method
JP2002041288A (ja) ソフトウエア開発支援方法
JP3703076B2 (ja) 構造化文書により定義された品質管理及び品質評価ルールによるソフトウェア品質管理・評価方法、ならびにそのプログラムを記録した記録媒体
Tippapharat et al. Test case impact analysis for BPMN input changes
Balasubramanian Query-driven simulation for decision support
Saaksvuori et al. Product lifecycle management systems
Bajwa et al. A software life cycle support environment
van Hee et al. Executable specification for information systems
Kulkarni Tool to Automate Software Project Estimation from a Project Management Perspective�
Hustoft et al. Development of a Variables Documentation System in Statistics Norway
Lyle The role of software development standards in requirements analysis and design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061003