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