サブクラスおよびプロパティを追加する場合の定義情報ファイルについて,例題に沿って説明します。
(1) 使用する例題
サブクラスおよびプロパティを追加する場合の定義情報ファイルを作成するための例題を次に示します。ここで使用する例題は,「2.3.5 クラスおよびプロパティの追加例」で示した例題と同じです。
表4-13 管理する文書の詳細情報
文書の種類 | 概要 | 付加情報 | 管理方法 |
---|---|---|---|
問題点管理ドキュメント | 製品の開発時の問題点を管理するための文書 |
| 直接型のコンテインメントを使用して管理する。 |
設計ドキュメント | 製品開発の基となる設計書 |
| 構成管理型のコンテインメントを使用して,複数の設計書の構成を管理する。 |
この2種類の文書を管理するためのサブクラスを次のように設計します。追加するサブクラスとそのスーパークラスを次の表に示します。
表4-14 追加するサブクラスとそのスーパークラス
管理する文書 | 追加するサブクラス | スーパークラス |
---|---|---|
問題点管理ドキュメント | usrClass_ProbInfoDoc | dmaClass_DocVersion |
設計ドキュメント | usrClass_DesignDoc | edmClass_VersionTracedDocVersion |
問題点管理ドキュメントは,直接型のコンテインメントを使用して管理します。したがって,dmaClass_DocVersionクラスのサブクラスとしてusrClass_ProbInfoDocクラスを追加して管理します。
設計ドキュメントは,バージョン付きコンテナを使用して構成を管理する文書として作成します。したがって,edmClass_VersionTracedDocVersionクラスのサブクラスとしてusrClass_DesignDocクラスを追加して管理します。
次に,文書に対して付加する情報を各クラスのプロパティとして追加します。文書の付加情報とクラスに追加するプロパティの対応を,次の表に示します。
表4-15 文書の付加情報とサブクラスに追加するプロパティの対応
サブクラス名 | 付加情報 | プロパティ名 | データ型 |
---|---|---|---|
usrClass_ProbInfoDoc | 問題点分類 | usrProp_Category | String型 |
問題点発生日時 | usrProp_DateOfProb | Integer32型 | |
検討結果 | usrProp_Status | Boolean型 | |
解決日時 | usrProp_DateOfResolve | Integer32型 | |
usrClass_DesignDoc | 文書名 | usrProp_DocName | String型 |
執筆者 | usrProp_DocWriter | String型 | |
特許情報 | usrProp_PatentInfo | String型 | |
執筆日時 | usrProp_DateOfWrite | Integer32型 |
(2) 定義情報ファイルの記述例
ここでは,例題を基にサブクラスおよびプロパティを追加するための定義情報ファイルの記述例を示します。なお,定義情報ファイルの記述例を二つに分けていますが,実際は,一つのファイルとして作成します。
(a) 定義情報ファイルを記述する場合の注意事項
サブクラスおよびプロパティを追加するために,定義情報ファイルを記述する場合の注意事項について説明します。
(b) 追加するプロパティのデータ型に対応する仮定値の定義
サブクラスに追加するプロパティのデータ型ごとに,プロパティの詳細情報(プロパティディスクリプション)を定義する必要があります。ここでは,データ型ごとで共通に指定するプロパティの仮定値を記述します。
例題で追加するプロパティは,String型,Integer32型およびBoolean型なので,それぞれのデータ型に対応する仮定値を記述します。記述例を次に示します。
;
; DMA_DATATYPE_STRINGの仮定値
;
[AssumeProperty/DMA_DATATYPE_STRING]
dmaProp_QueryOperatorDescriptions
=obj=dsqop.ini@dmaQueryOperator_And
=obj=dsqop.ini@dmaQueryOperator_Or
=obj=dsqop.ini@dmaQueryOperator_Not
=obj=dsqop.ini@dmaQueryOperator_IsNull
=obj=dsqop.ini@dmaQueryOperator_Exists
=obj=dsqop.ini@dmaJoinOperator_Cross
=obj=dsqop.ini@dmaJoinOperator_Inner
=obj=dsqop.ini@dmaQueryOperator_EqualString
=obj=dsqop.ini@dmaQueryOperator_UnequalString
=obj=dsqop.ini@dmaQueryOperator_GreaterString
=obj=dsqop.ini@dmaQueryOperator_GreaterOrEqualString
=obj=dsqop.ini@dmaQueryOperator_LessString
=obj=dsqop.ini@dmaQueryOperator_LessOrEqualString
=obj=dsqop.ini@dmaQueryOperator_Like
=obj=dsqop.ini@dmaQueryOperator_InString
=obj=dsqop.ini@edmQueryOperator_Xlike
dmaProp_Cardinality=int=DMA_CARDINALITY_SINGLE
dmaProp_IsSelectable=bool=1
dmaProp_IsSearchable=bool=1
dmaProp_IsOrderable=bool=1
dmaProp_IsValueRequired=bool=0
dmaProp_PropertyDefaultString=text=NULL
dmaProp_MaximumLengthString=int=64
;
; DMA_DATATYPE_INTEGER32の仮定値
;
[AssumeProperty/DMA_DATATYPE_INTEGER32]
dmaProp_QueryOperatorDescriptions
=obj=dsqop.ini@dmaQueryOperator_And
=obj=dsqop.ini@dmaQueryOperator_Or
=obj=dsqop.ini@dmaQueryOperator_Not
=obj=dsqop.ini@dmaQueryOperator_IsNull
=obj=dsqop.ini@dmaQueryOperator_Exists
=obj=dsqop.ini@dmaJoinOperator_Cross
=obj=dsqop.ini@dmaJoinOperator_Inner
=obj=dsqop.ini@dmaQueryOperator_EqualInteger32
=obj=dsqop.ini@dmaQueryOperator_UnequalInteger32
=obj=dsqop.ini@dmaQueryOperator_GreaterInteger32
=obj=dsqop.ini@dmaQueryOperator_GreaterOrEqualInteger32
=obj=dsqop.ini@dmaQueryOperator_LessInteger32
=obj=dsqop.ini@dmaQueryOperator_LessOrEqualInteger32
=obj=dsqop.ini@dmaQueryOperator_AddInteger32
=obj=dsqop.ini@dmaQueryOperator_SubtractInteger32
=obj=dsqop.ini@dmaQueryOperator_NegateInteger32
=obj=dsqop.ini@dmaQueryOperator_AbsoluteValueInteger32
=obj=dsqop.ini@dmaQueryOperator_MultiplyInteger32
=obj=dsqop.ini@dmaQueryOperator_DivideInteger32
=obj=dsqop.ini@dmaQueryOperator_InInteger32
dmaProp_Cardinality=int=DMA_CARDINALITY_SINGLE
dmaProp_IsSelectable=bool=1
dmaProp_IsSearchable=bool=1
dmaProp_IsOrderable=bool=1
dmaProp_IsValueRequired=bool=0
dmaProp_PropertyDefaultInteger32=int=0
;
; DMA_DATATYPE_BOOLEANの仮定値
;
[AssumeProperty/DMA_DATATYPE_BOOLEAN]
dmaProp_QueryOperatorDescriptions
=obj=dsqop.ini@dmaQueryOperator_And
=obj=dsqop.ini@dmaQueryOperator_Or
=obj=dsqop.ini@dmaQueryOperator_Not
=obj=dsqop.ini@dmaQueryOperator_IsNull
=obj=dsqop.ini@dmaQueryOperator_Exists
=obj=dsqop.ini@dmaJoinOperator_Cross
=obj=dsqop.ini@dmaJoinOperator_Inner
=obj=dsqop.ini@dmaQueryOperator_InBoolean
=obj=dsqop.ini@dmaQueryOperator_EqualBoolean
=obj=dsqop.ini@dmaQueryOperator_UnequalBoolean
dmaProp_Cardinality=int=DMA_CARDINALITY_SINGLE
dmaProp_IsSelectable=bool=1
dmaProp_IsSearchable=bool=1
dmaProp_IsOrderable=bool=1
dmaProp_IsValueRequired=bool=0
dmaProp_PropertyDefaultBoolean=bool=0
記述例について説明します。
(c) サブクラスの追加とプロパティの追加に関する定義
追加するサブクラスの定義とそのサブクラスに追加するプロパティの定義について記述します。記述例を次に示します。
;
; 問題点管理ドキュメント用のサブクラスの定義
;
[AddSubClass]
dmaProp_DisplayName=text=dmaClass_DocVersion/usrClass_ProbInfoDoc
;
; 問題点分類(usrProp_Categoryプロパティの定義)
;
[AddProperty/usrClass_ProbInfoDoc]
dmaProp_DisplayName=text=usrProp_Category
dmaProp_DataType=int=DMA_DATATYPE_STRING
;
; 問題点発生日時(usrProp_DateOfProbプロパティの定義)
;
[AddProperty/usrClass_ProbInfoDoc]
dmaProp_DisplayName=text=usrProp_DateOfProb
dmaProp_DataType=int=DMA_DATATYPE_INTEGER32
;
; 検討結果(usrProp_Statusプロパティの定義)
;
[AddProperty/usrClass_ProbInfoDoc]
dmaProp_DisplayName=text=usrProp_Status
dmaProp_DataType=int=DMA_DATATYPE_BOOLEAN
;
; 解決日時(usrProp_DateOfResolveプロパティの定義)
;
[AddProperty/usrClass_ProbInfoDoc]
dmaProp_DisplayName=text=usrProp_DateOfResolve
dmaProp_DataType=int=DMA_DATATYPE_INTEGER32
########
;
; 設計ドキュメント用のサブクラスの定義
;
[AddSubClass]
dmaProp_DisplayName=text=edmClass_VersionTracedDocVersion/usrClass_DesignDoc
;
; 文書名(usrProp_DocNameプロパティの定義)
;
[AddProperty/usrClass_DesignDoc]
dmaProp_DisplayName=text=usrProp_DocName
dmaProp_DataType=int=DMA_DATATYPE_STRING
;
; 執筆者(usrProp_DocWriterプロパティの定義)
;
[AddProperty/usrClass_DesignDoc]
dmaProp_DisplayName=text=usrProp_DocWriter
dmaProp_DataType=int=DMA_DATATYPE_STRING
;
; 特許情報(usrProp_PatentInfoプロパティの定義)
;
[AddProperty/usrClass_DesignDoc]
dmaProp_DisplayName=text=usrProp_PatentInfo
dmaProp_DataType=int=DMA_DATATYPE_STRING
;
; 執筆日時(usrProp_DateOfWriteプロパティの定義)
;
[AddProperty/usrClass_DesignDoc]
dmaProp_DisplayName=text=usrProp_DateOfWrite
dmaProp_DataType=int=DMA_DATATYPE_INTEGER32
記述例について説明します。
表4-16 データ型とデータ型を示す文字列の対応
データ型 | データ型を示す文字列 |
---|---|
String型 | DMA_DATATYPE_STRING |
Integer32型 | DMA_DATATYPE_INTEGER32 |
Boolean型 | DMA_DATATYPE_BOOLEAN |