UMLとモデリングの最新動向
(株)テクノロジックアート
橋本 大輔
[email protected]
2アジェンダ
ソフトウェア開発を取り巻く状況
UMLとモデリング
モデリング手法
モデリング技術者の育成
まとめ
参考資料
ソフトウェア開発を取り巻く状況
ソフトウェア開発の変化
ソフトウェアは近年複雑化、多様化が進んでいる
コンピュータの普及によるユーザ層の拡大
インターネットの普及による様々なビジネスの登場
システム統合や大規模化が進んでいる
企業の合併が進んでいる
キーワードは「全体最適」
SCM、EA、SOA・・・
短納期や低コスト化の要求が強くなっている
大規模なソフトウェアを短納期かつ低コストで開発しなければならない
海外(中国、インド、ロシア)での製造による対応が迫られている
5
オーダーメイドからの脱却
同じようなソフトウェアを毎回1から作っていては非効率
1度作ったソフトウェアから部品を抜き出して再利用したい
設計の枠組み(フレームワーク)を抜き出して再利用したい
市販の部品を利用したい
過去の資産(レガシーシステム)を活かしたい
ハードウェア
ハードウェア
ハードウェア
ハードウェアの
の
の
の製造
製造
製造
製造と
と
と
と同
同
同
同じような
じような
じような
じような
部品組
部品組
部品組
部品組み
み
み
み立
立
立
立て
て
て
て型
型
型
型の
のソフト
の
の
ソフト
ソフト
ソフト開発手法
開発手法
開発手法が
開発手法
が
が
が必要
必要
必要
必要
6部品組み立て型の開発
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェアに
に
に必要
に
必要
必要
必要な
な
な部品
な
部品
部品
部品を
を洗
を
を
洗
洗
洗い
い
い出
い
出
出
出す
す
す
す
部品
部品
部品
部品の
の
の組
の
組
組
組み
み
み
み合
合わせを
合
合
わせを
わせを
わせを設計
設計
設計
設計する
する
する
する
設計図
設計図
設計図
設計図に
に
に
に基
基
基
基づき
づき
づき部品
づき
部品
部品
部品を
を組
を
を
組
組
組み
み
み立
み
立
立
立てる
てる
てる
てる
設計図
設計図
設計図
設計図を
を
を
を作成
作成
作成
作成する
する
する
する
7
従来の設計手法の限界
文章中心の設計書の限界
複雑かつ大規模な対象を整理・表現しきれない
読み書きに時間がかかる
書き手、読み手によって差が大きい
図示化するにも統一された表現方法がない
バラバラの表記法になってしまう
まずは表記法を覚えなければならない
プログラムコードへの反映が難しい
プログラミング時に再度設計が必要になる
開発工程がつながらない
前工程の成果が次工程に活かされない
最新の実装技術に対応しきれない
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェアの
の
の
の設計
設計
設計
設計において
において
において
において
モデリング
モデリング
モデリング
モデリングと
と
とUMLが
と
が
が
が注目
注目
注目
注目されている
されている
されている
されている
UMLとモデリング
9
モデリングとは
モデリング
モデリング
モデリング
モデリング=
=
=
=モデル
モデルを
モデル
モデル
を
を
を作成
作成
作成
作成すること
すること
すること
すること
モデル
モデル=
モデル
モデル
=
=ある
=
ある
ある
ある「
「「
「対象
対象
対象
対象」
」を
」」
を
を整理
を
整理
整理
整理した
した
した
した上
上
上
上で
で、
で
で
、
、何
、
何
何
何らかの
らかの
らかの
らかの手段
手段
手段を
手段
を用
を
を
用
用
用いて
いて
いて
いて表現
表現
表現したもの
表現
したもの
したもの
したもの
「
「
「
「対象
対象
対象
対象」=
」=
」=
」=ソフトウェア
ソフトウェア
ソフトウェア開発
ソフトウェア
開発
開発
開発においては
においては、
においては
においては
、
、
、開発対象
開発対象
開発対象
開発対象の
のソフトウェア
の
の
ソフトウェア
ソフトウェア
ソフトウェアや
や
や
や
それを
それを
それを
それを導入
導入
導入
導入する
する
する業務
する
業務
業務がこれにあたる
業務
がこれにあたる
がこれにあたる
がこれにあたる
開発対象
開発対象
開発対象
開発対象
整理されていない あいまいさを含む 無駄な情報を含む文章による表現
(従来の設計書)
図形による表現
整理しきれないモデル
モデル
モデル
モデルを
を
を記述
を
記述
記述
記述するための
するための
するための
するための標準的
標準的
標準的
標準的な
な表記法
な
な
表記法
表記法
表記法が
が
が
が必要
必要
必要!!
必要
!!
!!
!!
10UMLとは
UML
UML
UML
UML(
(Unified Modeling Language
((
Unified Modeling Language
Unified Modeling Language
Unified Modeling Language:
::
:統一
統一モデリング
統一
統一
モデリング
モデリング
モデリング言語
言語
言語
言語 )
))
)
モデルを表現する言語(表記法+意味)の一種である。OMGOMGOMG(オブジェクト指向技術の標準化団体)で標準化されている。OMG
Javaや.NETなど、オブジェクト指向が実装技術のメインストリームとなったことも影響し 事実上モデリング言語のグローバルスタンダードとなった。 OMT法法法法 Booch法法法法 OOSE法法法法
UML
OMGでのでのでのでの標準化標準化標準化標準化 ( (( (表記法表記法表記法のみ表記法のみのみ)のみ))) J.ランボー G.ブーチ I.ヤコブソン11
UMLの歴史
Booch法 OMT OOSE
Unified Method 0.8 UML 0.9 UML 1.0 UML 1.1 UML 1.3 UML 1.4 他の手法 UML 1.5 OMG標準化 ‘97.11 OMG提案 ‘97.1 ‘96 OOPSLA ‘95 ‘99 ‘01 ‘03 UML 2.0 最終調整中(’04.12現在)
UML2.0
UML初のメジャーバージョンアップ
目玉となるポイント
ビジネスモデリングなど上流工程への対応
組み込み分野への対応
コンポーネントベース開発(Webサービス、SOA)のサポート
MDA(モデル駆動型アーキテクチャ)の実現
2003年6月に仕様が確定(OMGの投票を通過)
現在(2004年12月)は最終調整中
13
UML2.0のダイアグラム
構造のダイアグラム
クラス図 オブジェクト図 コンポジットコンポジット構造図コンポジットコンポジット構造図構造図構造図 コンポーネント図 配置図 パッケージ図振る舞いのダイアグラム
ユースケース図 シーケンス図 コミュニケーション図 タイミングタイミング図タイミングタイミング図図図 相互作用概要図相互作用概要図相互作用概要図相互作用概要図 ステートマシン図 アクティビティ図 NEW!!!! NEW!!!! NEW!!!! NEW!!!! NEW!!!! NEW!!!! 従来 従来従来 従来ののののダイアグラムダイアグラムダイアグラムもダイアグラムももも大幅大幅に大幅大幅ににに修正修正修正されている修正されているされているされている!!!! 14ユースケース図
顧客を 登録する 受注係 顧客管理 システム 倉庫係 ≪actor≫ 在庫管理 システム 販売管理 販売管理 販売管理 販売管理システムシステムシステムシステム 在庫状況を 確認する 拡張点 拡張点拡張点 拡張点 商品を選択する ≪extend≫ 条件: {選択対象商品が複数ある場合} 商品リストを 確認する ソフトウェアが持つ機能とその利用者を表すダイアグラム15
クラス図
受注 - 受注番号 - 受注日付 + 受注を 生成する ( 受注情報) - 受注日付を 取得する ( ) : 受注日付 受注明細 - 受注数量 - 割引率 + 受注明細を 生成する ( 受注明細情報) 顧客 - 顧客番号 - 顧客名 - 住所 - 電話番号 0..* 1 受注者 1 1..* 商品 - 商品コ ード - 商品名 - 単価 0..* 1 ソフトウェアの静的構造を表現するダイアグラムコンポーネント図
ソフトウェアの部品構造を表現するダイアグラム17
コンポジット構造図
全体クラス 全体クラス ポート ポート インターフェース インターフェース 部分クラス (パート) 部分クラス (パート) 部分クラス (外部パート) 部分クラス (外部パート) クラスやコンポーネントの内部構造を表現するダイアグラム 18オブジェクト図
顧客A 顧客名 = A 住所 = 東京都中央区 電話番号 = 03-XXXX-XXXX 注文1 注文明細1 -A 注文数量 = 3 商品A 商品名 = A 単価 = 3000 在庫数量 = 12 注文2 商品B 商品名 = B 単価 = 1800 在庫数量 = 79 注文明細1 -B 注文数量 = 31 商品C 商品名 = C 単価 = 2400 在庫数量 = 34 注文明細2 -B 注文数量 = 22 注文明細2 -C 注文数量 = 9 ソフトウェアの静的な構造をある瞬間に着目して表すダイアグラム19
シーケンス図
sd 商品商品商品商品ををを検索を検索検索検索するするするする ある機能を実現するためのオブジェクト間の相互作用を時系列に表現したダイアグラムコミュニケーション図
受注係 : 受注入力画面 1 : 商品情報を 確認する ( ) 7 : 受注情報を 入力する ( 数量 = 3台) 8 : 入力情報を 確定する ( ) エ キシ ョ ー : 商品 2 : 商品名を 取得する ( ) 3 : 商品名 = エ キシ ョ ー 4 : 単価を 取得する 5 : 単価 = 68000円 Aさ んから の受注 : 受注 9 : 受注内容を 登録する ( 商品 = エ キシ ョ ー, 数量 = 3台) 6 : 商品情報を 表示する ( 商品名 = エ キショ ー、 単価 = 68000円) . ある機能を実現するための相互作用をオブジェクト間の関係に着目して表現したダイアグラム21
タイミング図
sd 信号機の例 持続制約 持続制約 ライフライン ライフライン 状態 状態 メッセージ メッセージ タイミングルーラー タイミングルーラー ライフライン ライフライン ある機能を実現するための相互作用を状態変化のタイミングに着目して表現したダイアグラム 22相互作用概要図
相互作用の手順を表現したダイアグラム23
ステートマシン図
受注済 予約済 未出荷 受注 出荷済 出荷 納品 納品済 キャ ン セル済 キャ ン セル 決済済 決済 配送状況確認 オブジェクトの生存期間を通じての状態変化を表すダイアグラムアクティビティ図
[販売中止] 販売する サポート対応する 製造する [販売] 製造元に 連絡する マニュアルにない サポート内容 処理の流れを表現するダイアグラム25
配置図
ハードウェア構成やそこに配置されるソフトウェアの構成を表す 26UMLのメリット1
UML 世界中 世界中 世界中 世界中のののの技術者技術者技術者技術者がががが 理解 理解 理解 理解できるできるできる共通できる共通共通共通のののの表記法表記法表記法表記法コミュニケーションツール
コミュニケーションツール
コミュニケーションツール
コミュニケーションツールとしての
としての
としての
としての効果
効果
効果
効果
世界中の技術者が読み書きできる
仕様書がビジュアル化されるため、読みやすく理解しやすい
27
UMLのメリット2
シーケンス図 ユースケース図 クラス図モデル
モデル
モデル
モデル間
間
間
間のつながりが
のつながりが
のつながりが明確
のつながりが
明確
明確
明確
ソフトウェアの様々な側面をUMLだけで表現可能
UMLのダイアグラム間には明確な対応関係がある
UMLのメリット3
UML
UML
UML
UMLの
の
の
のモデル
モデル
モデル
モデル要素例
要素例
要素例
要素例(
((
(オブジェクト
オブジェクト指向
オブジェクト
オブジェクト
指向
指向
指向に
に
に
に対応
対応
対応
対応)
))
)
クラス 属性 操作 オブジェクト 属性 操作 メッセージ実装言語
実装言語
実装言語
実装言語への
への
への
への対応
対応
対応
対応が
が
が
が容易
容易
容易
容易
UMLで作成したモデルはJavaやC++、C#といった
オブジェクト指向ベースのプログラミング言語に対する
展開が容易である
29
UMLと従来の図
UML 従来 従来 従来 従来のののの設計書設計書設計書設計書従来
従来
従来
従来の
の
の
の図
図
図との
図
との
との
との差異
差異
差異
差異
UMLの登場以前から利用されている図に、DFD、ER図などがある。これらは、 構造化手法においては有効に働くが、オブジェクト指向のアプローチでの利用は困難である。 視点 視点 視点 視点のののの少少少少なさとなさとなさとなさと、、表現、、表現表現表現のののの乏乏乏しさ乏しさしさしさ DFDでは処理を表現できるが、データ構 造は表現できない。また、ER図はデータ 構造を表現しているが、それに対する処 理は表現できない。 多種多様 多種多様 多種多様 多種多様ななな表現な表現表現表現 UMLでは時系列や状態、オブジェクト自 身が兼ね備えなければならない機能や 処理、役割など、多種多様な見方がで きるように考えられている。 上流工程 上流工程上流工程 上流工程からからからから下流工程下流工程下流工程下流工程までまでまでまで 繋 繋繋 繋がらないがらないがらないがらない DFDとER図はお互いに連携していない シームレス シームレス シームレス シームレスなななな連携連携連携連携 UMLでは概念(論理)モデルから設計モ デル、さらに実装モデルまでシームレス に繋げて表現することが可能である。モデリング手法
31
UMLとモデリング手法
UMLはモデリング手法ではない
UMLだけではモデリングできない
UMLはあくまでも表記法+意味
モデリング手法とは?
UMLのダイアグラムを使ってどうソフトウェアをモデリングするか
各自で手法を選択し、使用できる
RUP(Rational Unified Process)
Catalysis
Executable UML
MDA
Model Driven Architecture(モデル駆動型アーキテクチャ)
OMGが提案する「モデル」を中心としたソフトウェア開発の枠組み
まずモデルを作成し、そこから実装(プログラム)に展開する
MDAの基盤技術を利用することで、モデルから実装(プログラム)
へはシームレスに展開する
究極は作成したモデル(設計図)がそのまま動くこと
(Executable UML・・・実行可能なUML)
OMG (Object Management Group)
33
MDAにおけるモデルの3つの視点
CIM
PIM
PSM
Mapping & Transformation
Mapping & Transformation
ソースコードを生成 計算処理に 非依存なモデル プラットフォームに 非依存なモデル プラットフォームに 特化したモデル 視 点 視 点 視 点 視 点 をををを 切切切切 りりりり 分分分分 け て け てけて け て モ デ ル モ デ ル モ デ ル モ デ ル をををを 開 発 開 発開発 開 発 す る す る す る す る 34
モデルから実装までのイメージ
プラットフォーム プラットフォーム プラットフォーム プラットフォームにににに 依存 依存 依存 依存しないしないしないしないモデルモデルモデルモデルWebサービス
モデル
Javaモデル
C++モデル
VBモデル
モデル モデル モデル モデル変換変換変換変換 ソースコード ソースコードソースコード ソースコード ( (( (プログラムプログラムプログラムプログラム)))) ソースコード ソースコード ソースコード ソースコード ( (( (プログラムプログラムプログラムプログラム)))) ソースコード ソースコード ソースコード ソースコード ( (( (プログラムプログラムプログラムプログラム)))) ソースコード ソースコード ソースコード ソースコード ( (( (プログラムプログラムプログラムプログラム)))) 生成 生成生成 生成35
MDAの基盤技術
MDAを実現する基盤技術
MOF
(Meta Object Facility)
メタモデリング言語
MOF QVT
(Query View Transformation)
モデル変換言語
MOFとMOF QVTの活用
CIM、PIM、PSMそれぞれのモデルの作成には
MOFで定義したモデリング言語(UML等)を使用する
CIM、PIM、PSMの間のモデル変換にはMOF QVTを使用する
これらに対応したツールも登場してきている
モデリング技術者の育成
37
UMTP(UMLモデリング推進協議会)
UMLモデリング推進協議会
2003年5月設立(同9月NPO認定)
会長: 上野南海雄 (㈱オージス総研専務取締役)
会員: 35社 個人会員(3)
活動目的
モデリング技術者の育成と各分野における
業務モデルの共有促進を目指した活動を行う
モデリング技能認定試験
UMTPスキル標準に基づき4つのレベルが設定されている
UMTP基準
UML用語編(第1版)・・・UML1.5用語の日本語訳
基準準拠製品・・・書籍、トレーニング、ツール
38設立発起人
エーセント インクJAPAN NECネクサソリューションズ(株) (株)NTTデータ (株)オージス総研 キャッツ(株) サントリー(株) (株)サンモアテック (株)テクノロジックアート 東京国際大学 (株)東芝 (株)東陽テクニカ 日本アイ・ビー・エム(株) 日本オラクル(株) 日本電気(株) 日本ユニシス(株) 日本ラショナルソフトウェア(株) (株)野村総合研究所 (株)日立製作所 富士通(株) (株)豆蔵 (株)ラーニング・アーキテクチャ研究所※
※
※
※50音順
音順
音順
音順
オブザーバ:経済産業省39
モデリング技能検定試験
・UMLなどを使ってモデリングを行う最低限の知識を持っ ている 簡単なUMLモデルの意味が分かる L1 ・開発範囲の一部を担当し、モデリングができる・他者の モデルの意味を理解できる UMLモデルの読み書きが普通にできる(モデリングリ テラシーがある) L2 ・拡張性や変更容易性の点で高品質なモデルを定義で きる・ビジネスモデリング、分析、アーキテクチャ設計、 組み込み開発を行うための専門的な知識を備えている (分野は選択) 実務でモデリングが実践できる L3 ・L3のスキルを有し、開発プロジェクトでモデリングを一 定数あるいは期間実践した経験を持つ 実践に基づいてモデリングを指導できる L4 説明 説明 説明 説明 モデリングスキル モデリングスキル モデリングスキル モデリングスキル レベル レベル レベル レベル 上記スキル体系のうち、現在はL1レベルの試験が実施されている(その他も今後実施予定) L1レベルはT1、T2の2つの科目で構成されている(オージス総研UML技術者認定ブロンズに相当) 試験は、ピアソンVUE社を通して実施され、 同社が指定する全国のテストセンターで受験できる。 http://www.pearsonvue.com/japan/まとめ
ソフトウェア開発においてモデリングの重要性が高まっている
モデルの標準的な表記法としてUMLは必要不可欠である
モデルを中心とした新たな開発手法も登場している
モデリング技術者を育成する環境が整いつつある
41
参考資料
「Unified Modeling Language Specification Ver1.5」、OMG、formal/03-03-01
「UML 2.0 Infrastructure Specification」、OMG、ptc/03-09-15
「UML 2.0 Superstructure Specification」、OMG、ptc/03-08-02
「Model Driven Architecture」、OMG、ormsc/01-07-01
「MDA Guide」、OMG、omg/03-06-01