ルーレットが回るように毎日が過ぎていく

田中昌利がTwitterで書けない長い文章をいろいろ書きます。

OMG認定UML技術者資格試験 ファンダメンタル

(OMG-Certified UML Professional Fundamental)
明日(もう今日だけど)受けに行ってきます。
最近毎日ぐらい更新しているのは、勉強のストレス発散です(笑)
当初はインターメディエイト目標でしたが、飛ばすことが出来ないのでファンダメンタルだけにします。
定価の試験代金が31500円なのが痛すぎ。
今回はキャンペーンで21420円でした。


派生"/"はいまいち分からないので無視。
クラス図とアクティビティ図を重点に。この2つで合格範囲なので、資格取得限定勉強法。
本来はユースケース図が重要だが、クラス図と用語がかぶっているところ多いので、クラス図を重点に。同じような問題で最悪片方を当てる為の方法です。
試験後は受かっても落ちても泥酔予定(笑)
結果をスルーしていたら落ちたと思って話題に触れないで下さい(笑)
この後Oracleが待っているのでゆっくりは出来ないですが、1日だけは暴走します(笑)


勉強用の本。

OMG認定UML試験Fundamental対応 UML速習リファレンス

OMG認定UML試験Fundamental対応 UML速習リファレンス

自分用のまとめを載せておきます。自分用なので意味不明文多いです。
ご利用は自己責任で。
効果については、まだ試験受けていないので不明(笑)
長いのでたたんでおきます。
UML Fundamental 試験対策 まとめ

□□□ クラス □□□
■クラス図
クラスやインターフェースの定義
クラスやインターフェース間の関係

■可視性(スコープ)
+ パブリック
− プライベート
# プロテクテッド
〜 パッケージ

■分類子
直接/間接にインスタンスとなりえる要素
クラス(もっとも代表的)
関連・インタフェース・データ型
特性や属性を持つことが出来る

■エレメント
モデルの構成要素
(UMLモデル図の構成要素)
全てのメタクラス共通のスーパークラス
これより上位のスーパークラスはない

■インスタンス
アンダーラインを引く

■インタフェース
属性を記述できる
一連の外部に公開された特性と制約を表明する分類子
直接インスタンス化することはできない
一つの分類子は複数のインタフェースを実現することが出来る
分類子として表記するには<<interface>>を使用
クラスがインタフェースを実現する場合は全てのオペレーションのサポートが必要

 ○────────
 提供インタフェース

 ────────(
 要求インタフェース

■依存関係
 ………………>
あるモデルエレメント(クライアント)が他のモデルエレメント(サプライヤ)を必要とすることを明記した関係
(実行時の意味とは切り離されていることに注意)
<<permit>> 情報のアクセスを許可
<<use>> 使う
<<call>> 呼び出す
(<<instantiate>> インスタンス化)
(<<responsibility>> 責任)
(<<realize>> 実現化)
(<<substitute>> (実行時に)代替する)

■<<use>>
他のエレメント(クラス)が必要なことを示している。
親がさらに<<use>>を使用していれば、その親も必要

■<<permit>> 依存関係の一種
情報のアクセスを許可
「クライアント」モデルエレメントに対して「サプライヤ」モデルエレメントが自らへのアクセスを許可する。

■パッケージ
(モデリング)エレメントをグループ化したもの
(× 分類子のグループ化ではない)
ネームスペースを提供する

■パッケージのインポート
前提:外部に公開された要素のみアクセスを行う
さらに可視性は管理可能
<<import>>・・パブリック  外側のパッケージからも参照可能
<<access>>・・プライベート 外側のパッケージから参照不可

□□□ アクティビティ □□□
■アクティビティ図
フローチャートに似ている図
ワークフローやビジネスプロセスを表現するのに適している

■アクティビティ
ノードとエッジ(パス)
パラメータ化された振る舞いの規定

■アクティビティ図のピン
オブジェクトノードの一種
アクションに対する入出力を表す

■入力ピン
全ての入力ピンが値を持つまでアクションは実行されない

■入力パラメータノード
出力の矢印のみ
外部からの入力は明記しない

■デシジョンとマージ
分岐で使用 分岐後にマージする
ガード条件「[]」で分岐する
どちらも「◇」のマークを使用する

■開始ノード
複数の開始ノードを持つ場合アクティビティはすべて同時に開始する

□□□ インタラクション □□□
■インタラクション図
総称 具体的には無い
エレメント間の相互作用を表現する図
イベントのトレース
シーケンス図が代表(試験範囲では 時系列で生存線を使う図)
下記が具体的な図
・シーケンス図
・インタラクションオーバービュー図
・コミュニケーション図
・タイミング図

■シーケンス図
同じ生存線上での関連のみ明確になる
そのため、異なる生存線での順番は記述の位置と上下する「可能性」がある

■一般化順序付け
イベント同士に時間の前後関係がある場合に使用する線
 ・
 ・ 点線で記述
 ▼ 中に矢印
 ・
 ・

■メッセージ
・ロストメッセージ
 ─────>●
受信イベントの存在しないメッセージ

・ファウンドメッセージ
 ●─────>
送信イベントの存在しないメッセージ

■フレーム
左上の5角形にインタラクション名を記述
キーワード"sd"

■結合フラグメント
左上に各キーワードを記述(抜粋)
・alt 処理の分岐(if)
・opt 実行の選択肢

■インタラクション発生
左上に"ref"
詳細は中に記述する

□□□ ユースケース □□□
■ユースケース
システムが提供するサービス

■ユースケースの関連
 ………………>
<<extend>> 拡張
<<include>> 包有
("s"は記述しない)

■ユースケースの汎化
 ──────│>
クラス図の汎化(継承)とは意味が異なる
子に関係(利用する可能性)があれば、親にもある

■拡張点(パスの予定)
メインとなるユースケースの流れの中で、オプションとなるユースケースへ分岐するところを拡張点と言う。
ユースケース名の下に線を引き線の下に記述する。
線の下に記述するのは拡張先(……>のユースケース)に記述。
javaのextendとは意味が異なる。
(詳細な意味ははっきりとは分からない)

□□□ その他 □□□
■静的な構造を表す図(構造図)
クラス図
パッケージ図
オブジェクト図
コンポーネント図
複合構造図
配置図

■動的な構造を表す図(振る舞い図)
ユースケース図
インタラクション図(実体はない 具体的には下記5つ)
 シーケンス図
 インタラクションオーバービュー図
 コミュニケーション図
 タイミング図
 インタラクションテーブル
アクティビティ図
ステートマシン図

■メタクラス
インスタンスがクラスであるクラス
主にメタモデルの構造に使われる
UMLの要素群を定義している(UMLの文法を定義している)クラス
Javaのjava.lang.Class

■プリミティブ型
基本的なデータ型で分類子の一種 <<primitive>>
・Integer
・Boolean
・String
・UnlimitedNatural:自然数0,1,2などと無限の"*"

■アクティブオブジェクト
外部からの要求がなくとも振る舞いを実行するオブジェクト
インスタンスがスレッドを持つオブジェクト

■シグナル
非同期の刺激(イベント)
シグナル送信ノードとシグナル受信ノードがある
   ___
──┤___> シグナル送信ノード
 ___
>___├── シグナル受信ノード(アクティビティ図のフローが開始(発生))