Microsoft PowerPoint - UML1_2009.ppt

Similar documents
UML は次のように表記を拡張して 利用しやすくすることができる ステレオタイプ クラス図などで モデル要素の意味を拡張するもの ギルメット << >> によるラベル表記と アイコン表記がある <<actor>> <<interface>> ステレオタイプ一覧 UML 表記の拡張 ATM 利用者 ス

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

Microsoft PowerPoint - se05-ER&OOAD&UML.ppt [互換モード]

Microsoft PowerPoint - se06-UML(UseCase)_2.ppt [互換モード]

2004/11/23 オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),Visual

趣旨 UML とは? なぜ UML? を理解する 典型的なオブジェクト指向分析 設計の作業に沿って UML のダイアグラムを理解する Copyright 2000 mamezou Inc. 2

10 ソフトウェア工学 Software Engineering ソフトウェアモデリング SOFTWARE MODELING ソフトウェアモデリングとは? ソフトウェアの抽象なモデルを, さまざまな視点から簡潔に表現する作業 表現方法 グラフィカルモデル : 所定の記法による図で表現 流れ図, クラ

モデリング操作ガイド アクティビティ図編

科学的モデリング 2 回 継承 2 無断転載 & 無断配布を禁じます 第 2 回 : 科学的モデリング 継承 2 継承される特性( プロパティ ) 第 2 回の話題 継承は何を継承するのか? 今回のコラムの話題は 継承される特性 ( プロパティ ) についてです そもそもサブクラスはスーパークラスか

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

デザインパターン第一章「生成《

Microsoft Word - db4_ERモデル.doc

2. 目的 1RationalRose を利用する場合にプログラム仕様書としての最低限必要な記述項目を明確にする 2 プログラム仕様書として記載内容に不足がない事をチェックする 3UML の知識があるものであれば 仕様書の内容を理解できること 4Rose にて入力した内容を SoDaWord を利用

モデリング操作ガイド クラス図・オブジェクト図編

Microsoft PowerPoint - sfc-model-7„ö−J.ppt

クラス図とシーケンス図の整合性確保 マニュアル

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

PowerPoint プレゼンテーション

レコードとオブジェクト

f2-system-requirement-system-composer-mw

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

情報連携を実現するモデルベース手法のためのUML/SysMLについて

PowerPoint プレゼンテーション

ホンダにおける RT ミドルウェア開発と標準化活動 株式会社本田技術研究所基礎技術研究センター関谷眞

プログラミング入門1

RaQuest MindManager

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 2 回オブジェクト指向 テクノロジックアート 瀬 嘉秀

Microsoft Word - tutorial8-10.docx

アナリシスパターン勉強会 責任関係事例紹介 株式会社オーエスケイ小井土亨 (CBOP COM 分科会主査 ) 2000/07/19 1

Jude を DSL エディタとして使う -Jude API 活用法 年 11 月 14 日稚内北星学園大学東京サテライト校浅海智晴 本日のテーマ Why Jude API What Jude API How Jude API 1

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

<4D F736F F F696E74202D208C7691AA8EA993AE90A78CE48A7789EF>

SysMLに関する操作方法について

T字形ER手法の概要とWebObjectsへの展開に向けて

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

ゼロからはじめるEnterprise Architect ~60分で基本モデリング操作マスター~ 第4版

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

PowerPoint プレゼンテーション

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

Prog2_12th

PowerPoint プレゼンテーション

DFDおよび構造図 マニュアル

Microsoft Word - ModelAnalys操作マニュアル_

UMLの基礎知識.pptx

ゼロからはじめるEnterprise Architect ~60分で基本モデリング操作マスター~ 第4版

モデリング操作ガイド (データベースモデリング編)

BPMNモデリング マニュアル

Oracle SQL Developer Data Modeler

Microsoft PowerPoint ppt

C3 データ可視化とツール

GEC-Java

JAVA入門

Slide 1

JavaプログラミングⅠ

Microsoft PowerPoint - OOP.pptx

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

アクティビティ図・シーケンス図からのコード生成 機能ガイド

コンテンツセントリックネットワーク技術を用いた ストリームデータ配信システムの設計と実装

はじめてのPFD

Enterprise Architect 12.1 機能ガイド

2008年度 設計手法標準化アンケート 集計結果

UMLプロファイル 機能ガイド

使用する前に

ソフトウェア要求分析から詳細設計までシームレスにつなぐ開発手法

tc15_tutorial02

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Microsoft PowerPoint - prog03.ppt

Prog2_9th

目次 ペトリネットの概要 適用事例

PowerPoint プレゼンテーション

Microsoft PowerPoint - ruby_instruction.ppt

組込みシステムにおける UMLモデルカタログの実践研究

Oracle SALTを使用してTuxedoサービスをSOAP Webサービスとして公開する方法

PowerPoint プレゼンテーション

メソッドのまとめ

産能大式フローチャート作成アドインマニュアル

Prog2_6th

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - prog04.ppt

GEC-Java

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

PowerPoint Presentation

XNA Framework

ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

JavaプログラミングⅠ

Microsoft PowerPoint - lec06 [互換モード]

Microsoft Word - 415Illustrator

Oracle Access ManagerとOracle Identity Managerの同時配置

Microsoft Word - Android_SQLite講座_画面800×1280

変更の影響範囲を特定するための 「標準調査プロセス」の提案 2014年ソフトウェア品質管理研究会(30SQiP-A)

C#の基本

(Microsoft PowerPoint -

Microsoft Word - C言語研修 C++編 3.doc

モデリングとは

Microsoft PowerPoint - IAF フォーラム2015講演資料_PLCopenJapan_A02.pptx

Microsoft Word 基_シラバス.doc

Windows GPO のスクリプトと Cisco NAC 相互運用性

Transcription:

モデリングとモデル UMLとは UMLの主要モデル UML1.4 UML2.1 UML の概要 モデリングとモデル モデリング 実世界の事柄を別の物体で表現すること モデルを作成すること プログラミング 処理をプログラム言語という手段で表現 オブジェクト指向 データ構造をオブジェクトの属性 処理を振る舞いとしてモデリング モデル ある視点から見たシステムの抽象的な表現 ダイアグラム ( 図 ) により表現 モデリング言語 モデルを表現する手段 1

UML とは UMLとは Unified Modeling Language ( 統一モデリング言語 ) ソフトウエア主体のシステムの成果物をビジュアル化 仕様化 構築 文書化するためのグラフィカルな言語 オブジェクト指向分析 設計を表現するためのモデリング言語 ( モデル表記法を統一したもの ) モデリング言語の国際標準 (OMG 標準 ISOでの標準化が進められている ) UML とモデル UMLモデルは図で表現 一つの図でモデルを表現できない 様々な観点 ( ビュー ) から複数の図を記述することが必要 UMLは図を使って様々な要素を表現するために それぞれの要素には図での書き方が決まっている この書き方を表記法 (Notation) という たとえば インターフェイスには 2つの表記法が存在する 2

UML と開発モデル UML オブジェクト指向分析 / 設計に使用するダイアグラム ( 図 ) の描き方の文法 開発モデル ( プロセス ) オブジェクト指向分析 / 設計をおこなうための方法論 ( システム開発の方法論 ) オブジェクト指向開発方法論の流れ 分析 設計 オブジェクト指向開発方法論 OMT 法 Booch 法 OOSE 法 実装 オブジェクト指向プログラミング言語 Simula,Smalltalk 1960 年 1970 年 1980 年 1990 年 2000 年 3

UML2.1 の構造 UML2.1 Infrastructure ( 下部構造 ) Object Constraint Language ( オブジェクト制約言語 ) Superstructure ( 上部構造 ) Diagram Interchange ( ダイアグラム交換 ) UML1.4 のモデル ( 図 ) クラス図 ユースケース図 シーケンス図 オブジェクト図 コラボレーション図 ステートチャート図 アクティブティー図 コンポーネント図 配置図 4

UML1.4 の主要モデル 利用者から見たシステムの機能を表すモデル ( 機能モデル ) 問題領域やシステムの静的構造を表すモデル ( 静的モデル ) 振る舞いを表す動的モデル ( 動的モデル ) 構成モデル ( 物理的なモデル ) UML1.4 の 9 つのダイアグラム (1) 利用者から見たシステムの機能を表すモデル ( 機能モデル ) ユースケース図 アクティビティー図 問題領域やシステムの静的構造を表すモデル ( 静的モデル ) クラス図 オブジェクト図 5

UML1.4 の 9 つのダイアグラム (2) 振る舞いを表す動的モデル ( 動的モデル ) ステートチャート図 ( 状態遷移図 ) シーケンス図 コラボレーション図 ( 協調図 ) 構成モデル ( 物理的なモデル ) コンポーネント図 デプロイメント図 ( 配置図 ) UML2.1 の図 UML2.1 の SuperStructure で定義されている 13 種類の図 構造に注目してモデリングするための構造図 振る舞いに注目してモデリングするための振る舞い図 6

UML2.1 の構造図 (1) モデリングする対象の構造着目にしてモデリングするための図 クラス図 オブジェクト図 パッケージ図 ( 非公式 ) コンポジット構造図 (UML2.1) コンポーネント図 配置図 UML2.1 の振る舞い図 (2) モデリングする対象の振る舞いにしてモデリングするための図 ユースケース図 アクティビティ図 状態マシン図 シーケンス図 コミュニケーション図 ( コラボレーション図 UML1.4) 相互作用概要図 (UML2.1) タイミング図 (UML21) 7

クラス図 各クラス間の関係を表現することで システムの静的な構造を表現 クラス図は クラス名 属性 メソッド ( 操作 ) という 3 つの部分から構成 一般に 長方形で表され 横線で 3 つの部分に分けられる 属性 可視性名前 : 型 = デフォルト値 メソッド 可視性名前 ( 引数 1, 引数 2,.): 返り値 アクセス指定 ( 制御 ) 属性やメソッドの可視性を指定 + # public ( どこからでも可視 ) protected ( パッケージ内および派生したクラスから可視 ) - private ( クラス内でのみ可視 ) ~ package ( パッケージ内のみで可視 ) 8

継承 クラス間の継承関係 サブクラスからスーパークラスに向かう白抜きの矢印で表現 継承の表現 分割表記 共有表記 継承 継承 既存のクラスに属性や操作を追加して 新しいクラスを定義すること 共通の属性と振る舞いを抽象化して 新しいクラスを作成できる スーパークラスとサブクラス スーパークラス ( 親クラス ) あるクラスが継承によって定義された場合 その継承元のクラス スーパークラスを継承したクラスをサブクラスという サブクラス ( 子クラス ) あるクラスから 継承によって定義されたクラス 継承元のクラスをスーパークラスという 9

汎化と特殊化 汎化 複数のクラスの共通の特性を抽出してクラスを作ること 汎化してできるクラスをスーパークラスとよぶ 汎化の関係を is-a 関係とよぶ 特殊化 ひとつのクラスを特性の違いに注目して分類すること 分類されたクラスをもとのクラスのサブクラスという 特殊化の関係を a-kind-of 関係とよぶ 関連 クラス間における関連 クラス間に結びつきがあることを表す クラス間に直線を引いて表現 関連名は線の近くに記述 10

ネームディレクションアロー 関連名の横に塗りつぶした三角形を添えることでその関連の方向性を示す 生徒 教える 習う 先生 ロール名 関連先のオブジェクトの役割を表す名前を 関連の端点に記述する 多くは関連の役割の名前 ( 属性名 ) などを利用する 人 * 雇う 会社 従業員 雇用者 11

多重度 関連するクラスのオブジェクト ( インスタンス ) 数を表現 一方のクラスのオブジェクトとリンクすることができる 多重度の表現 *: 0 以上 1..*: 1 以上 0..1: 0または1 関連のまとめ クラス A 多重度 関連名 多重度 クラス B ロール名 ロール名 関連 12

集約 クラス間の関係が 部分ー全体 であるという関連を表現 has-aを表現 特殊な関連で 関連の 全体 側に白抜きの菱形を付けて表現 コンポジション 集約の一種 全体が消滅した場合 部分も消滅する という強い条件が該当する集約 全体 を表すクラスの端に塗りつぶした菱形を付けて表現 13

コンポジション オブジェクトを他のオブジェクトで構成すること コンピュータ : ビデオカード キーボード ディスクドライブなど テレビ : チューナ ブラウン管など コンポジション関係はhas-a 関係とよばれる オブジェクトに対して, メッセージを動かすように依頼するものをメッセージを呼ぶ ユースケース図 (1) システムに必要とされる機能や要件を分析し その結果を表すために利用 システム と システムの利用者 の間のやり取りの様子をあらわす ユースケース図の構成要素 ユースケース アクター 関連 14

ユースケース図 (2) ユースケース 外部から見たシステムの機能 システムの持つ内部的な機能ではない 個々のユースケースが内部的にどのように実現されるかについては触れない 内部にユースケース名を書き込んだ楕円形のシンボルとして表現 ユースケース群の周囲は システム境界を表す四角形で囲んでおくことができ このシステム境界は ユースケース群を含むシステムを表す ユースケース図 (3) アクター システムの外部利用者を表す 人であったり システムと接続された別のシステムや システムで制御されるハードウエアを表す つまり ユースケース図で表現するシステムを外部から利用するもの 人型のアイコンや四角形の中にアクター名を書き その上にステレオタイプ表記 <<actor>> したもので表現 役割を代表するものであり 個々の 実体 を表現するものではない 15

ユースケース図 (4) 関連 アクターがそのユースケースに関わっていることを示す ユースケースという 機能 をそのアクターが 利用する ことを表現 関連 シーケンス図 (1) オブジェクト間におけるメッセージのやりとりを記述するに利用 オブジェクト間のメッセージを時系列で表現 ( 作業の進行表 ) どのようなオブジェクトがどのようなメッセージをどういう順序でやり取りしあうかをわかりやすくまとめることが可能 シーケンス図の構成要素 オブジェクトシンボル ライフライン メッセージ テキストシンボル 16

シーケンス図 (2) シーケンス図の構造 水平と垂直の二次元の軸により表現 水平軸 シーケンス図が表す場面に登場するオブジェクト 各オブジェクトがやり取りするメッセージ 垂直軸 時間の経過を表す 図の上方に並べられた各オブジェクトが生成されてから消滅するまでの時間の流れを表現 時間は図の上から下に向かって進む オブジェクトシンボル シーケンス図 (3) シーケンス図に登場するオブジェクト群を上方に横一列に並べる オブジェクト名とベースとなったクラス名を書き込む ライフライン ( オブジェクト生存線 ) 個々のオブジェクトから下方に向けて引かれた破線 オブジェクトのライフスパン ( 生存線 ) を表す 破線が続いていることは オブジェクトがシステム内に生存していることを表す オブジェクトの消滅は ライフラインの下端にターミネーションアイコン ( ) を付けることで表現 17

シーケンス図 (4) メッセージ あるライフラインから別のライフラインに向かって ライフラインに垂直に引かれている矢印 同期メッセージ 閉じ実線矢印 非同期メッセージ 開き実線矢印 同期メッセージへのリターン 開き破線矢印 テキストシンボル メッセージの説明をおこなう 活性区間 ライフライン上でオブジェクトの活性区間を表現 オブジェクトが実際に活動している区間を表現 矩形で表現 オブジェクト図 (1) クラス図 クラスの構造やクラス間の関連をあらわすためのダイアグラム オブジェクト図 クラス図に描かれたクラス群の実体のある時点における様子を表現したダイアグラム クラスシンボルのインスタンス形であるオブジェクトシンボルを用いて表現 18

オブジェクト図 (2) オブジェクト クラスの実体であり インスタンスとも呼ばれる オブジェクトの表現 オブジェクトは長方形で表現される 長方形の中には オブジェクト名 : クラス名の形式で記述される クラス名やオブジェクト名は省略可能 クラス名だけを記述する場合には : から記述する オブジェクトの長方形を 2 つの区画に分けて 属性を表現できる 属性は 属性名 : 型 = 値の形式で表す オブジェクト図 (3) リンク クラスに対して実体 ( インスタンス ) があるように 関連の実体をリンクという 関連と同様に 実線で表す 19

コラボレーション図 ( コミュニケーション図 ) (1) システムにおけるオブジェクトの動的な振る舞いとオブジェクト間の関係を同時に表す シーケンス図 メッセージの時系列の順序を強調 コラボレーション図 メッセージを送受信するオブジェクトの空間的な構造を強調 複雑な繰り返しや分岐 複数の並行制御フローの表現には コラボレーション図のほうが適している コラボレーション図 ( コミュニケーション図 ) (2) オブジェクト クラスのインスタンスを表し シーケンス図と同様に 長方形で表現する リンク オブジェクト同士を意味的に関連付け 実線で表す メッセージ オブジェクトからオブジェクトけの通信を表す 同期メッセージは塗りつぶした三角形の矢印で表す 非同期メッセージは通常の実線で表す メッセージの情報は メッセージラベルとして記述されるが 必ずシーケンス番号を記述する必要がある 20

ステートチャート図 オブジェクトの生存期間中の状態の遷移と その状態の遷移を引き起こすイベントや 状態遷移が発生した際のオブジェクトのアクションを表す つまり オブジェクトがとりうる振る舞いを表現 状態 オブジェクトのある時点における状況 初期状態 終了状態 状態遷移 オブジェクトがある状態から別の状態に変化すること イベント 変化を起こす出来事をイベントという アクション オブジェクトの遷移がおこる前に実行される アクティビティー図 さまざまな処理の流れを記述 フローチャートによく似ている フローチャートとの違いは 並行処理が表現できる点にある 21

コンポーネント図 システムにおける物理的なソフトウエア要素 ( コンポーネント ) の関係をあらわす コンポーネントが公開しているインターフェイスや, 各コンポーネント間の依存関係を表現 コンポーネント間の依存関係は 破線の矢印で表す 配置図 ソフトウエアが実行する際のハードウエア環境と そこで活動をおこなうコンポーネントの割り当てを表現 ハードウエアを総称して ノードとよぶ ノードはシステム実行に依存する物理的要素で コンポーネントはノード上に配置される 22