がんばれ!!しんちゃん
子育てから、音楽・ビデオ鑑賞などの趣味、学問や能力開発等生活全般に関する話題を断片的に書き綴る。
UMLの基礎概念

UMLの構造(Architecture)



アーキテクチャーとは、システムの構成要素とその機能、振る舞い、インターフェイス、組み合わせ等に関する決定事項を簡単にまとめたものを言う。
メタメタモデル層、メタモデル層、モデル層、ユーザオブジェクト層の4層から成る。


メタメタモデル層



UML構成要素全てを指定する言語を定義する。

メタモデル層



モデルに含めるものを定義する。
基盤、動的要素、モデル管理の3つのパッケージからなる。

1.基盤(Foundation)

・Core ... UMLモデルの構築に必要なものを定義する。
 抽象アイテム
 モデル要素(Model Element)、汎化要素(Generalizable Element)、分類子(Classifier)から成る。
 分類子は、クラス、コンポーネント、アクター、インターフェイス、サブシステム、ユースケース、シグナル、データ型等が

 具象アイテム(抽象アイテムのサブアイテム)
  インスタンス作成可。
  クラス、インターフェイス、関連(Association)、データ型等がある。

抽象構文(abstract syntax) ... パッケージはアイテムをクラス図に表示する。
整合規則(wellformedness rules) ... パッケージにはアイテムの使用規則が含まれている。
セマンティクス(semantics) ... パッケージはアイテムの意味に関する情報を提供する。

・補助要素 ... コアパッケージを発展させたもの
・データ型 ... Data Type。UMLが使用するデータ型を指定する
・拡張メカニズム ... Extension Mechanisms。UMLの拡張方法を指定する

2.動的要素(Behavioral Elements)
 4つのパッケージがある。

・共通の振る舞い ... Common Behavior
 動的要素に概念を提供し、その他のパッケージをサポートする。
 動的要素に提供される「概念」には、シグナル、リンク、関連終端(Association End)等がある。

・コラボレーション ... Collaborations
 ここでのコラボレーションは、分類子とその関連が特定のタスクを実行するときのやり取りを表す。
 コラボレーション図とユースケース図が当てはまる。

・ユースケース ... Use Cases
 ユースケースの概念の形式上の詳細を説明する。

・状態マシン ... State Machine
 ステートチャート図とアクティビティ図の形式上の詳細を説明する。

モデル層



 クラスを取り扱う作業はこの層に属している。
 モデル、サブシステム、パッケージを定義する。


ユーザオブジェクト層



例や特定のドメインのインスタンスを取り扱う作業。
ここでの「ユーザ」とはUMLユーザのことであり、システムのユーザではない。


UMLの拡張


 3つの既成の拡張メカニズムがある。
 これらは、メタモデル層の基盤パッケージの拡張メカニズムパッケージに含まれている。

ステレオタイプ


 UML構成要素を拡張して新しいクラスのインスタンスを生成するために負荷する文字列。

 ●依存関係
 ‹‹become››
 ‹‹call››
 ‹‹deroved››
 ‹‹friend››
 ‹‹extend››
 ‹‹include››
 ‹‹import››
 ‹‹metatarget››
 ‹‹instanece››
 ‹‹semd››

 ●分類子
 ‹‹metaclass››
 ‹‹powertype››
 ‹‹process››
 ‹‹thread››
 ‹‹utility››
 ‹‹stereotype››

 ●クラス
 ‹‹type››
 ‹‹implementationClass››


 ●コンポーネント
 ‹‹document›› ‹‹executable››
 ‹‹file›› ‹‹table›› ‹‹library››

 ●汎化
 ‹‹inherit›› ‹‹subclass››
 ‹‹private››

 ●パッケージ
 ‹‹façade››
 ‹‹system››
 ‹‹stub››
 パターン
 ‹‹framework››
 ‹‹topLevelPackage››

 ●その他のステレオタイプ
  ‹‹invariant››
  ‹‹postcondition››
  ‹‹precondition››
  ‹‹requirement››
  ‹‹create››
  ‹‹destroy››

 ●グラフィックのステレオタイプ
  クリップアート等を使用。


制約(constraint)


 関連、リンク終端、汎化、要求の条件を定義するもの。
{or}は、この関連に影響を及ぼす関連が一つだけ存在することを示す。
{implicit}は、この関連が概念的な関連であることを示す。
{parameter}は、このオブジェクトがパラメータであるために可視であることを示す。
{self}は、オブジェクト自身が要求のディスパッチャであるために可視であることを示す。
{global}は、リンクに関してオブジェクトがグローバルスコープやローカルスコープにあるために可視であることを示す。
{association}は、オブジェクトが可視なのは関連があるためであることを示す。
 複数の汎化は、{complete}(全てのサブタイプが指定されている)かまたは、{incomplete}(その他のサブタイプを追加できる)で、{overlapping}(一つ以上のサブタイプがインスタンスタイプとして機能)又は、{disjoint}(一つのサブタイプがインスタンスタイプとして機能。デフォルト)になる。
 要求が決まった順序はなく、多数のターゲットインスタンスに送られる場合、{broadcast}になる。
 また、多数のインスタンス全てが値を返し、その戻り値の過半数を占める値に決定される場合、{vote}になる。

タグ付き値


 既成のタグ付き値は、分類子、コンポーネント、属性、インスタンス、操作に適用する。
{documentation=}は、あらゆる要素に適用でき、右辺には、説明やコメントを挿入する。{location=}は、分類子に適用する場合、右辺には、その分類子の属するコンポーネント、コンポーネントに適用する場合、右辺には、コンポーネントの属するノードを挿入する。
{persistence=}は、要素の状態が永続的であるかどうかを示す。右辺の値は、維持されるならpermanentで、破棄されるならtransitory。
{semantice=}は、分類子又は操作の意味を指定する。
{responsibility=}は、分類子の義務を指定する。 






開発の方法論




ウォーターフォール方式1


 分析 → 設計 → コード化 → 配置が順番に行われる。

 ●問題点
1.作業を区分しなければならない。
2.プロジェクト進行中に明らかになった情報を反映しにくい。
3.分析や設計に十分時間をかけられない。


新しい方式


 開発の各段階での協調作業に注目した方式。

 ●問題点
1.各段階を区別してしまうことがあり、システムにクライアントの要求が反映されない。


開発チーム


分析者、設計者、プログラマ、システムエンジニア

求められること



1.開発チームが、解決すべき問題を十分に把握していることの確認。
2.開発チームのメンバーに適切な役割を割り当てていること。
3.役割を割り当てられたメンバー間のコミュニケーションを促進すること。
4.フィードバックをひとつの開発段階に限定しないこと。
5.不要な書類を減らし、開発作業の進捗状態をクライアントに伝えること。

GRAPPLE



Guidelines for Rapid APPLication Engineering

状況に応じて改変可能な柔軟な考え方をまとめたもの。

RAD3(又はRADDD)


五つのセグメントで構成されており、各セグメントは、複数のアクションで構成されており、ひとつひとつのアクションから青果物が得られる。


1.要求の収集(Requirements Gathering)


 最重要セグメント。

・業務プロセスの洗い出し
・ドメイン分析の実施
・協調して動作するシステムの特定
・システムの要求の洗い出し ... JAD(Joint Application Development)セッション
調整役はファシリテータ(facilitator)
・クライアントへの結果報告

2.分析(Analysis)


・システムの用途の把握 ... ユースケース図
・ユースケースの洗い出し ... ユースケースの手順書
・クラス図の洗練 ... クラス図
・オブジェクトの状態遷移の分析 ... ステートチャート図
・オブジェクト間の相互作用の定義 ... シーケンス図とコラボレーション図
・協調して動作するシステムとの統合 ... 配置図、データモデル(オプション)


3.設計(Design)


・文書化の開始 ... 文書の構造
・テストの設計 ... テストプログラムのスクリプト
・ユーザーインターフェースの設計とプロトタイプ化 ... ユーザとのJADセッション、プロトタイプのスクリーンショット
・開発計画 ... 配置図
・コンポーネント図の作成 ... コンポーネント図
・オブジェクト図の洗練 ... オブジェクト図とアクティビティ図


4.開発(Development)


・コード作成 ... コード
・コードのテスト
・ユーザーインターフェースの作成、コードの接続、テストの実施
・文書の感性

5.配置(Deployment)



・バックアップと復元の計画







参考文献

「独習UML」(翔泳社)
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://pirolinten.blog58.fc2.com/tb.php/48-53f8f5be
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック