4.2.4 クラスの定義
4.2.4.1 クラスとは?
オブジェクトのクラスは、そのメンバーが共通して複数の同類のアスペクトを持っているカテゴリである。例えば、‘centrifugal pump’のクラスは、回転体のインペラーにて流体を加圧することを意図するポンプと定義される。
これは、下記の様なクラスの定義に集約される(正式の定義はSTEPlibを参照のこと):
−クラスは物同士の共通性であり、個々のものを指すものではない
クラスは、それに含まれるか含まれないかを明示的あるいは暗黙に示す基準を持っている
言い換えるなら、クラスは暗黙にあるいは明示的に個別のオブジェクトがクラスに属するか否かを決めるための基準を成す制約を定義している。
これらの含めるか否かのクライテリアは、オブジェクトの全てのアスペクト、ビヘイビアも含めて、に関係するものである。
オブジェクトは、単体オブジェクトかもしくは、複合オブジェクトになり得る。
例えば、フランジは単体であり、ポンプは多数の部品からなる複合アイテムである。
複合オブジェクトは、組立オブジェクトか集合オブジェクトである。その違いは、集合体の要素は、相互に繋がっていない。これに対して組立品では部品は通常接続されている。例えば、値は見立てられたオブジェクトであり、値の集合はオブジェクトの集まりであり、‘collection
of objects’と呼ばれる。
N.B. オブジェクトのクラスと典型的な個別オブジェクトの間には隔たりがある。典型的な個別オブジェクトは、通常は参照目的あるいは、環境に依存する個別事項が作成された場合に、その仕様事項を複写する目的で定義される。例えば、典型的な個別オブジェクトはプロトタイプ個別事項になり得て、それは、1ケまたはそれ以上の特別な個別オブジェクトの派生である“テンプレート”や”マスターコピー”となる。それはシンボルライブラリの典型的なシンボルの様なものである。典型的な個別オブジェクトは、特定の個別と同じ方法で定義される。一方、クラスは、特定の場所を持たないばかりか特定の個別オブジェクトと連結されていない抽象概念である。
4.2.4.2 Classes of Objects
オブジェクトクラスは、そのスーパータイプクラスを特殊化することで定義される。この方法で定義するのに都合のよいアプリケーションとしては、クラスが階層ネットワークで並んでいることが必要である。
クラスは1ケ以上のスーパタイプのサブタイプなので、このネットワークは木構造になる。
階層の最上位は次の様な主となるクラス(コンセプト)を定義する:
−Classes of physical objects, 物理現象を満足するオブジェクトである。これには、固体アイテム、流体、波動、空間、地理オブジェクト、信号、組織などが当てはまる。 物理オブジェクトの特別のものとして、lifeforms.と呼ばれる生き物がある。それは、生きている物理オブジェクトに属する生物や人である。
−Classes of activities, 発生するあらゆるイベントや出来事、サポートや保存などの静的な出来事も含まれる。
−Classes of roles, アクティビティのオブジェクトのロールと関係もしくは関連のオブジェクトのロールのクラス
−Classes of aspects, プロパティ(物理量)、質、状態、層、物質、および関連などにサブタイプ分けされるもの
これらのアスペクトは物理オブジェクトとアクティビティを特徴付けるのに用いられる。
注意: |
|
‘substance’物質アスペクトは材料のatomic and subatomic構造を記述するアスペクトで、物理オブジェクトはある種のatomsからなり、しかるべき構成と分布になっているという事を意味する。 |
−Classes of encoded information, 情報がコード化されているクラスであり、言語やいろんな電気コード形式がこれに当たる。これは、情報の何たるか‘what’であり、通常テキストで記述されている。どのようにして‘how’記録され表わされているのかは、(紙とインクやスクリーンと光など)物理オブジェクトになる。
−Classes of information, それが表現されている方法に関係なく‘deep meaning’を表わすもの。 例えば、言語や使われているフォーマットに関係ないもの。
これ以外のクラスのサブタイプの例は、図22にあり、STEPlibを特殊化した階層の最上位に示されている。
(拡大画面:66KB) |
|
図22 Structure of the STEPlib Library
個々の識別されたクラスは、付録のA4に例示されているように、最低限、スーパータイプとの特別の関係とテキストによる記述でもって定義されている。
4.2.4.2.1 Grouping of classes
STEPlibは、foundation classesとみなされていてstandardised object classesの集まりであるクラスのグループを識別する。
STEPlib以外では、どの会社でも独自のcompany specific object classesを持つことができる。
図23 Types of classes
foundation classesは語彙の基本辞書を成す。それはクラスに対する名前で、配管とかポンプとかフロアなどである。更に1語以上から構成されるcentrifugal
pumpやlong radius bendなどのクラス名は含んでない。
Foundation classは、1ケまたはそれ以上の直接の親クラスを親クラスや兄弟のクラスから特徴の相違を持つものを特殊化することで定義される。
各々の特殊化は、特殊化の基準に用いられているアスペクトに対する1ケの明示的な関連によって更に定義される。
Foundation classは、その製作材料の基準に基づいて特殊化されることはない。何故なら物理オブジェクトと材料クラスの間のいろんな組み合せはクラス数の爆発を招きかねないからである。
例えば、‘stainless steel pipe’はrecorded foundation classではない。
注意: |
|
個別のアイテムは常に配管として製造材料を伴って、下記の様にクラス分けされる: −object #1 is classified as pipe −object #1 is made of stainless steel |
その様なクラスは、標準化されたオブジェクトクラスに属する必要があり、またクラス項目に対して特定の製作材料が使われている限り、標準化されたオブジェクトクラスとして定義することが出来る。
標準オブジェクトクラスのカテゴリは、ISO、IEC、ANSI、DIN、BSIなどの標準化機構によって標準化されているオブジェクトを定義するクラスによって作られる。
これらの標準オブジェクトクラスは、特定のプロパティ値や建設材料や製作標準といったもっと沢山の関連型によって定義される。従って、これを定義するには、AP221データモデルを十分に理解しておかねばならない。それに必要な情報は、本報では得られない。AP221標準そのものから修得するか、AP221応用ハンドブックの様な他のドキュメントから修得する必要がある。
標準項目に関するクラスは、STEPlibでは、標準機関で決められて発行されているものだけを、扱っている。例えば、ANSIにて定義されている標準パイプの様なものである。
注意: |
|
その様なクラスのインスタンスは、パイプの特殊化であり、呼び径、スケジュール、製作標準といったそれらのアスペクトを定義する明示的な関連を通してSTEPlibとしてドキュメント化される必要がある。 例えば、呼び径6インチのパイプは、次の様に定義されなければならない: |
|
|
−object |
|
#1 |
6" pipe' |
|
|
|
is a specialisation of |
|
pipe |
−object |
|
#1 |
has aspect |
|
#2 |
|
ND 6 |
|
|
−object |
|
#2 |
is classified as |
|
|
|
nominal diameter |
|
|
−object |
|
#2 |
is quantified as |
|
|
|
6 inch |
|
|
|
|
|
別の言い方をすれば、‘6インチのパイプ’は、単にそのクラスの名前に過ぎない。計算機は、そういった名前からプロパティ値を引き出すことは出来ない。
|
Company specific object classes, それらが企業内の‘標準’である場合には、標準機関がクラス定義を行うのと同じ要領でモデル化される。しかしながら、企業に依存するクラスはプライベイトクラスであり、STEPlibには取込まれない。それらは、企業によって、STEPlibのプライベイトな拡張として、開発され、維持され管理される。それらのクラスは、プロジェクトの中でビジネスパートナと交換することが出来、あるいは付加的なクラスのデータは個別の間での交換に使える。
STEPlibは、ライブラリにあるクラスを使って、オブジェクトのプライベイトクラスの記述が可能なようになっている。これは、標準オブジェクトと特殊クラスの(製造者の)カタログとしても有益である。
特殊化され特徴を持った標準化されたオブジェクトと特定クラスの(製造者の)カタログが、AP221準拠でこのSTEPlibライブラリにも準拠したSTEPファイル(Part
21ファイル)として使えるようになることで、それはとても有益になる。
しかしながら、そういったオブジェクトクラスの定義には、標準化機関や業界の企業に対して責任がある。STEPlibは、標準化されたクラスの限られた範囲のみを持っている。
STEPlibデータモデルの特別のクラスには、クラスのクラス‘class of class’というのがあり、そのモデルでは、クラスの集まり‘set of class’と同義語である。それは、そのメンバーが個別オブジェクトではないクラスを定義するものである。従って、クラスのクラスは、常にクラスのアスペクトの上に定義される。例えば、ASMEクラスは、個々のアスペクトの上に定義されるクラスではなく、ASMEという組織が定義したクラスの上に定義されるものである。
クラスのクラスは、管理上からも有益であって、その源泉や管理にそって、あるいは最初に定義したあるいは使った方針に則ってグループ分けが可能になる。
|