「その場でつかえるしっかり学べるUML2.0」編

Modeling Guide
by SparxSystems Japan
Enterprise Architect モデリング操作ガイド
「その場でつかえるしっかり学べる UML2.0」編
(2015/02/12 更新)
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
1
はじめに ............................................................................................................................................4
2
書籍「その場でつかえるしっかり学べる UML2.0」について .........................................................4
3
このドキュメントについて ...............................................................................................................5
4
第 19 章 ビジネスモデリング ...........................................................................................................6
4.1
業務フロー .................................................................................................................................6
ステレオタイプ .................................................................................................................................7
パーティションの向き ......................................................................................................................7
パーティションを移動・選択できないようにする ...........................................................................8
要素の既定の名前 .............................................................................................................................9
フローの条件.....................................................................................................................................9
分類子(クラス)に関連づけられたオブジェクト ..............................................................................10
オブジェクトの状態 ........................................................................................................................ 11
時間イベントアクション ................................................................................................................. 11
4.2
概念モデルのクラス図 .............................................................................................................12
関連端の役割の前の「+」 ..............................................................................................................12
5
第 20 章 要求 ..................................................................................................................................12
5.1
ユースケースモデル .................................................................................................................13
事前条件と事後条件 ........................................................................................................................13
イベントフロー ...............................................................................................................................13
6
第 21 章 分析 ..................................................................................................................................14
6.1
画面遷移図 ...............................................................................................................................14
他のユースケースの画面遷移の定義 ...............................................................................................14
UML ではない情報の作成と関連付け ............................................................................................16
6.2
分析モデル ...............................................................................................................................17
6.3
相互作用概要図 ........................................................................................................................18
メッセージの追加 ...........................................................................................................................20
作成したメッセージをクラスに反映する........................................................................................22
6.4
エンティティのクラス図 ..........................................................................................................22
属性の前の記号 ...............................................................................................................................22
属性へのノートリンク ....................................................................................................................23
7
第 22 章 アーキテクチャ設計 .........................................................................................................23
8
第 23 章 設計 ..................................................................................................................................23
8.1
設計のクラス図 ........................................................................................................................23
8.2
設計のシーケンス図 .................................................................................................................23
生成メッセージ ...............................................................................................................................23
戻りメッセージ ...............................................................................................................................24
戻りメッセージの効率的な作成 ......................................................................................................28
複合フラグメント ...........................................................................................................................28
Copyright (c) 2008-2015 SparxSystems Japan
2
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
相互作用の利用 ...............................................................................................................................29
外部からのメッセージ ....................................................................................................................29
9
最後に .............................................................................................................................................30
Copyright (c) 2008-2015 SparxSystems Japan
3
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
1 はじめに
このドキュメントでは、書籍「その場でつかえるしっかり学べる UML2.0」の書籍で説明されている
ソフトウェア設計例において、Enterprise Architect でどのように操作するのかを説明しています。
このドキュメントはスパークスシステムズ ジャパン株式会社が独自に作成したものであり、このド
キュメントの内容の一切は書籍「その場でつかえるしっかり学べる UML2.0」の著者・出版社とは関係
ありません。
2 書籍「その場でつかえるしっかり学べるUML2.0」について
書籍「その場でつかえるしっかり学べる UML2.0」は秀和システムから 2006 年 1 月に出版された
UML の基礎から実践まで幅広く説明する書籍です。著者は株式会社オージス総研のオブジェクトの広
場編集部です。
ISBN: 4-7980-1239-4
価格: 2800 円+税
オブジェクトの広場については、以下の Web サイトをご覧下さい。毎月、オブジェクト指向設計開
発や UML などについての多くの話題を提供しています。
http://www.ogis-ri.co.jp/otc/hiroba/
この書籍は、
「準備編」
「表記法編」
「実用編」の 3 部構成になっています。
「準備編」では UML など
について基本的な知識を紹介しています。「表記法編」では、UML2.0 のそれぞれの図の説明と、図で
利用される要素の説明が詳細に行われています。
多くの書籍はこの UML の表記の説明のみで終わりますが、この書籍では「実践編」として、UML
を利用した設計開発の詳細を「実用編」で説明しています。これにより、UML の初心者を含めてさま
ざまな人に役立つ書籍となっています。
内容は UML2.0 がベースとなっていますが、UML2.1 以降で大きな変更がないこともあり、2015 年
1 月現在でも全く問題なく活用できる書籍です。ただし、現在のところ、新品での入手が非常に困難で
す。
Copyright (c) 2008-2015 SparxSystems Japan
4
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
3 このドキュメントについて
このドキュメントでは、PART3 の「実用編」のうち設計に関する章について、Enterprise Architect
を利用する場合の操作方法を説明しています。
利用している Enterprise Architect は日本語版バージョン 12.0 ビルド 1207 です。評価版や英語版・
過去のバージョンを利用している方は、画像の内容などを見ながら対応するコマンドを確認して下さい。
Copyright (c) 2008-2015 SparxSystems Japan
5
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
4 第19章 ビジネスモデリング
第 19 章では、「ビジネスモデリング」について説明しています。
4.1 業務フロー
Enterprise Architect でこの業務フローを定義する場合には、アクティビティ図を利用します。あら
かじめ、図を格納するためのビューやパッケージを作成しておくと良いでしょう。下のプロジェクトブ
ラウザの画像は、この段階でのパッケージ構成の作成例です。
Copyright (c) 2008-2015 SparxSystems Japan
6
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
アクティビティ図の操作方法は「スタートアップマニュアル」などをご覧下さい。なお、クイックリ
ンク機能をうまく活用すると効率的に作業を行うことができます。アクティビティ間の接続には「コン
トロールフロー」を利用します。オブジェクトとの接続の場合のみ「オブジェクトフロー」を利用しま
す。
ステレオタイプ
この業務フローでは、ステレオタイプ<<external>>が設定されたパーティションが配置されています。
このようなステレオタイプを設定する場合にはパーティションをダブルクリックすると表示されるプ
ロパティダイアログで、
「ステレオタイプ」の欄に「external」と入力します。
一度ステレオタイプの欄に入力しますとその内容は自動的にプロジェクトファイルに登録されます
ので、次に作成する場合にはドロップダウンリストから選択することができます。
パーティションの向き
既定の状態では作成したパーティションは横方向になっています。パーティションを縦方向に変更す
るには、パーティションを右クリックして「追加設定」→「垂直パーティション」を選択して下さい。
なお、Enterprise Architect では要素の種類ごとの機能については、
「追加設定」メニュー以下から呼
び出すことができます。
Copyright (c) 2008-2015 SparxSystems Japan
7
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
パーティションを移動・選択できないようにする
また、387 ページのようにパーティションを配置した後に、パーティションを右クリックして「選択
可能」を選択するとよいでしょう。この方法で「選択可能」を解除することで、このパーティションの
上に要素を配置する場合に、誤ってパーティションを動かしてしまうことがなくなります。
Copyright (c) 2008-2015 SparxSystems Japan
8
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
要素の既定の名前
この書籍では、開始や終了には名前がありません。Enterprise Architect の既定の動作では、開始要素
を配置すると、名前が「開始」に設定されます。無料アドインの「名前初期値削除アドイン」を有効に
しておくと、これらの要素の名前を初期状態で空にすることができますので効率が上がります。
フローの条件
389 ページのようにフローに条件を設定する場合には、フローのプロパティダイアログにある「制約」
グループの「ガード」に内容を入力します。
Copyright (c) 2008-2015 SparxSystems Japan
9
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
分類子(クラス)に関連づけられたオブジェクト
391 ページのような「オブジェクト」を作成する場合には、事前にクラス図でクラスを作成後、その
クラスのインスタンスを配置することになります。次の画像の 2 つの要素の違いを確認して下さい。
左側はツールボックスの「オブジェクト」をアクティビティ図に配置し、名前を「商品」に設定した
場合です。391 ページなどで利用されているオブジェクトは、右側のように名前の前に「:」(コロン)が
ついています。
このようなオブジェクトを作成するには、事前にクラス図で「商品」クラスを作成し、そのクラスを
プロジェクトブラウザからダイアグラムにドロップします。このときに、次のようなダイアログが表示
されます。
(表示されない場合には Ctrl キーを押しながらドロップして下さい。)
Copyright (c) 2008-2015 SparxSystems Japan
10
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
ここで「インスタンス (オブジェクト)」を選択して下さい。名前の前に「:」が追加された要素が作
成・配置されます。
オブジェクトの状態
392 ページのようにオブジェクトに状態を設定する場合には、対象のオブジェクトを右クリックし
て「追加設定」→「オブジェクトの状態の設定」を選択して下さい。
このダイアログで内容を設定することで、状態を表示することができます。
:配達
[依頼済み]
時間イベントアクション
393 ページの「時間イベントアクション」を作成するには、ツールボックスの「イベント受信」イベ
ントを配置後、右クリックして「追加設定」→「時間イベント」を実行して下さい。
以下の図のように、「時間イベントアクション」の形になり、配置することができます。なお、名前
の改行位置を変更することはできません。要素の幅に応じて自動的に改行されます。
Copyright (c) 2008-2015 SparxSystems Japan
11
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
4.2 概念モデルのクラス図
クラス間の関連の設定は、プロパティダイアログを利用して行います。参考までに、399 ページの図
にある以下の関係について、プロパティダイアログでの設定を紹介します。
関連端の役割の前の「+」
関連端の役割の前についている「+」を非表示にしたい場合には、メインメニューから「ツール」
→「ユーザーのオプション」を実行してユーザーのオプションダイアログを表示し、「接続」グループ
にある「関連端の可視性の+を非表示」にチェックして下さい。
5 第20章 要求
第 20 章では、システムの要求についてユースケース図を利用して定義しています。
Copyright (c) 2008-2015 SparxSystems Japan
12
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
5.1 ユースケースモデル
ユースケースの事前条件・事後条件・イベントフローは、ユースケース要素のプロパティ画面で入力
します。
事前条件と事後条件
事前条件と事後条件は「制約」タブで入力します。
イベントフロー
イベントフローは「シナリオ」グループに入力します。プロパティダイアログのシナリオタブに直
接入力することもできますし、「階層構造形式」(下図)で入力することもできます。
Copyright (c) 2008-2015 SparxSystems Japan
13
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
Enterprise Architect では、上の図のようにシナリオの内容をステップごとに記述し、代替パスや
戻りステップなどの指定もできます。このようにして定義した内容からアクティビティ図を自動生成し
て視覚的に流れを確認したり、ドキュメントを生成したりすることができます。
6 第21章 分析
第 21 章では、クラス図やシーケンス図を利用して対象システムの分析作業を行います。
6.1 画面遷移図
416 ページ以降の「画面遷移図」では、ステートマシン図を利用します。なお、Enterprise Architect
では、Windows アプリケーションの画面作成に便利な「Win32 画面設計図」や、iOS や Android など
の画面を作成する際に便利な「ワイヤーフレーム」があり、画面のイメージが伝わる図にすることもで
きます。
他のユースケースの画面遷移の定義
417 ページにあるような「他のユースケースの画面遷移を参照する」場合には、以下の手順で設定を
行います。
Copyright (c) 2008-2015 SparxSystems Japan
14
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
まず、通常の「状態」要素としてダイアグラム内に配置します。その状態要素を右クリックし、「子
ダイアグラムの追加」→「子ダイアグラムを作成」を選択します。
すると、画面内の要素に、書籍と同じようなマークが表示されます。この状態で状態要素をダブル
クリックすると、子ダイアグラムに移動することができます。
なお、このようにしてダイアグラムを作成すると、プロジェクトブラウザでは以下のように状態要
素の下にダイアグラムが表示されます。
Enterprise Architect ではプロジェクトブラウザ内の要素やダイアグラムは自由に移動することがで
きますので、状態要素の下にあるダイアグラムをパッケージの下に移動すると良いでしょう。また、ダ
イアグラムの名前も変更した方がすっきりします。
Copyright (c) 2008-2015 SparxSystems Japan
15
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
(ダイアグラムをドラッグ&ドロップで移動し、名前を「商品を検索する」に変更した後)
UML ではない情報の作成と関連付け
419 ページでは、画面遷移に関する情報の定義について説明しています。このような UML とは関係
のない情報を利用する場合には、要素と関連づけておくと便利です。
例えば、要素のプロパティダイアログの「ファイル」グループでは、外部のファイルへのリンクや
URL の情報を保持することができます。
あるいは、ダイアグラム内に「ハイパーリンク」として配置することも可能です。ツールバーの「ハ
イパーリンク」をクリックしてから、ダイアグラム内をクリックしてリンク先を設定します。
Copyright (c) 2008-2015 SparxSystems Japan
16
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
なお、既に Excel 等のファイルがある場合には、そのファイルを Windows のエクスプローラやデス
クトップからダイアグラム内にドラッグ&ドロップし、「ハイパーリンク」→「ファイルを開く」(ある
いは「ファイルを編集」)を選択するだけで簡単にリンクを作成できます。
作成したリンクと関係する状態要素間は、クイックリンクの機能を利用して以下のように結びつけて
おくとわかりやすいです。
6.2 分析モデル
420 ページ以下の分析モデルでは、「バウンダリ」「コントロール」「エンティティ」の要素を利用し
ます。Enterprise Architect では既定の状態でこれらの要素を利用することができますが、1 点注意が
必要です。Enterprise Architect のツールボックスに含まれるこれらの要素の種類は「オブジェクト」
であり「クラス」ではありません。
つまり、Enterprise Architect のツールボックスに表示される要素をそのまま利用することはできま
Copyright (c) 2008-2015 SparxSystems Japan
17
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
せん。
この書籍の通りにクラスとして作成する場合には、メインメニューから「ツール」→「ユーザーのオ
プション」を実行し、「要素」グループにある「クラスの分析ステレオタイプの利用」にチェックを入
れる必要があります。このチェックが入っていると、クラスのステレオタイプに「boundary」等を設定
すると、以下のように書籍と同じ表示になります。
6.3 相互作用概要図
426 ページ以降の相互作用概要図は、Enterprise Architect の相互採用概要図とコミュニケーション
図を組み合わせて利用します。
以下の図は、427 ページの図の一部を作成した例です。
Copyright (c) 2008-2015 SparxSystems Japan
18
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
まず、
の要素には、ツールボックスの「アクション」要素を
利用します。ツールボックスから配置すると以下のようなメニューが表示されますので、「振る舞い呼
び出し」を選択します。さらに「要素の選択」ダイアログが表示されますが、ここでは何も選ばずにキ
ャンセルボタンを押して下さい。
Copyright (c) 2008-2015 SparxSystems Japan
19
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
次に、「sd 顧客は商品をショッピングカートに入れる」の枠のコミュニケーション図は、相互採用概
要図とは別にコミュニケーション図を作成した後、プロジェクトブラウザからそのダイアグラムを相互
作用概要図にドロップします。以下のような選択肢が表示されますので、「ダイアグラムフレーム」を
選択して下さい。上記のようにダイアグラムの中身が表示される形で配置されます。
なお、要素の種類によっては、要素間にクイックリンクでフローが作成できない場合があります。こ
の場合には、ツールボックスからフローを選択し、要素間に配置して下さい。フローを一度作成後に
F3 キーを押してから要素間をドラッグすると、フローを効率よく追加配置することができます。
メッセージの追加
コミュニケーション図では、以前に作成された要素を配置し、要素間を関連で結びます。作成した関
連を右クリックして「メッセージの追加」を選択することで、コミュニケーションメッセージを追加す
ることができます。
Copyright (c) 2008-2015 SparxSystems Japan
20
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
メッセージの番号を書籍と同じ表示にする(小数点以下の番号を利用しない)場合には、すべてのメ
ッセージの作成時に、「新規グループの開始」にチェックを入れて下さい。番号が書籍と同じように、
1,2,3,..となります。チェックが入らない場合には、1,1.1,1.2,...のように、小数点のある番号となります。
もし、作成済みのメッセージの番号を変更したい場合には、メインメニューから「ダイアグラム」→
「追加設定」→「メッセージの並び替え」を実行してください。
Copyright (c) 2008-2015 SparxSystems Japan
21
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
作成したメッセージをクラスに反映する
433 ページのように、作成したメッセージをクラスに反映させたい場合には、無料アドインの「シー
ケンス図チェックアドイン」を利用します。要素を右クリックしてアドインを呼び出すことで、その要
素に関連づけられているメッセージをクラスの操作(メソッド)として追加できます。
(名前は「シーケンス図チェックアドイン」ですが、コミュニケーション図でも利用できます。)
6.4 エンティティのクラス図
434 ページからのエンティティのクラス図では、ステレオタイプが<<entity>>のクラスについてのク
ラス図を作成します。
このときに、作成済みの要素をそのまま配置すると、分析時に利用した外見で表示されてしまいます。
この 434 ページのように四角形で表示する場合には、ダイアグラムの背景でダブルクリックしてプロ
パティダイアログを表示し、「要素」タブにある「ステレオタイプの独自アイコン」のチェックを外し
て下さい。同時に、「ダイアグラム」タブにある「要素のパッケージ名を表示」もチェックを外してお
くと良いでしょう。
属性の前の記号
Enterprise Architect の場合では、属性の前に「-」などの可視性を示す記号があります。この可視性
の記号を非表示にするためには、ダイアグラムのプロパティ画面の「属性・操作」タブにある「可視性
の記号を表示」のチェックを外してください。
Copyright (c) 2008-2015 SparxSystems Japan
22
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
属性へのノートリンク
Enterprise Architect のノートは、属性に結びつけることはできません。437 ページのように属性に
対してノートリンクを関連づけることはできませんので、クラスに対してリンクを張ります。
7 第22章 アーキテクチャ設計
第 22 章では、配置図・コンポーネント図・パッケージ図を利用してシステムなどの構成を設計しま
す。
この章では、Enterprise Architect で特別な操作・設定を行うことなく、それぞれのダイアグラムを
作成することができます。操作説明は割愛します。
8 第23章 設計
第 23 章では、クラス図やシーケンス図などを利用して、システムをどのように実現するかをモデリ
ングします。
8.1 設計のクラス図
クラス図については特別な操作は必要ありません。
8.2 設計のシーケンス図
462 ページ以降のシーケンス図を作成する場合には、いくつかのポイントがあります。
生成メッセージ
まず、以下のような「生成メッセージ」を作成する場合には、メッセージを作成後、プロパティダイ
アログの「ライフサイクル」を「生成」に設定して下さい。メッセージの送信先の要素の位置が自動的
に調整されます。
Copyright (c) 2008-2015 SparxSystems Japan
23
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
:CartDaoImpl
:Cart
戻りメッセージ
また、この書籍のシーケンス図では、「戻りメッセージ」が多く利用されています。通常のメッセー
Copyright (c) 2008-2015 SparxSystems Japan
24
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
ジにつきましては、クラス図で定義した内容を簡単に呼び出すことができますが、戻りメッセージにつ
いてこの書籍と同じ表現にする場合には、手作業での情報入力が必要となってしまいます。
以下のようにクラス図で定義している場合には、シーケンス図のメッセージ作成時にクラス図で作成
した内容を呼び出すことができます。
Copyright (c) 2008-2015 SparxSystems Japan
25
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
ただし、戻りメッセージについては、手作業で「メッセージ」の欄に情報を入力する必要があります。
「メッセージ」の欄に「findByCustomerID」を、パラメータの欄に「_」を、割当の欄に「Cart」を
入力することで、下の図のような戻りメッセージを表現することができます。
Copyright (c) 2008-2015 SparxSystems Japan
26
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
さらに、ダイアグラムのプロパティダイアログの「属性・操作」タブで、
「操作の戻り値の型を表示」
のチェックを外し、「操作のパラメータ」を「名前のみ」とすることで、書籍と同じ表現にすることが
できます。
Copyright (c) 2008-2015 SparxSystems Japan
27
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
戻りメッセージの効率的な作成
オプションダイアログの「シーケンス図」グループにある「右から左の方向のメッセージを戻りメッ
セージにする」にチェックを入れておくと効率的に作成作業ができます。
複合フラグメント
464 ページのシーケンス図で利用されている「loop」の複合フラグメントは、ダブルクリックすること
で種類や内容を設定することができます。このページの例では、「種類」を「loop」に設定し、「名前」
の欄に「[CartItem の数]」と入力して下さい。
配置した複合フラグメントを移動すると、中に含まれるメッセージも自動的に移動します。もし、複
Copyright (c) 2008-2015 SparxSystems Japan
28
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
合フラグメントのみを移動したい場合には、複合フラグメントを選択した際に右側に表示されるアイコ
ンの一番下にある、モード変更アイコンをクリックしてください。
相互作用の利用
465 ページで利用されている「ref」の相互作用の利用要素は、別のシーケンス図をプロジェクトブラ
ウザからドラッグ&ドロップすると作成できます。この例では、「Order を作成する」という名前のシ
ーケンス図を作成し、ref を作成するシーケンス図にドラッグ&ドロップします。次のようなダイアロ
グが表示されますので、
「相互作用の利用」を選択して下さい。
作成した相互作用の利用要素は、ダブルクリックすることでシーケンス図の内容を表示することがで
きますので便利です。
外部からのメッセージ
465 ページの図の中の「sd」の枠では、枠の端から「createOrder()」のメッセージが出ています。こ
のようなメッセージを作成する場合には、「ダイアグラムゲート」要素を利用して下さい。
Copyright (c) 2008-2015 SparxSystems Japan
29
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
このようにして作成したシーケンス図を相互作用概要図などに配置して内容を表示させると、このダ
イアグラムゲート要素は表示されません。
9 最後に
第 24 章ではツールの利用を行わない場合の実装方法を詳細に説明しています。Enterprise Architect
のソースコード生成機能を利用することで、クラスのスケルトンを作成することができますので便利で
す。また、Enterprise Architect はラウンドトリップ開発にも対応していますので、ソースコードを作
成中のクラス図への反映や、クラス図で修正した内容についてソースコードへの反映が可能です。
Copyright (c) 2008-2015 SparxSystems Japan
30
モデリング操作ガイド(「その場でつかえるしっかり学べる UML2.0」編)
○ 変更履歴:
2008/12/25 初版
2009/08/31 ドキュメントのタイトルを変更
2010/04/16 バージョン 8.0 のリリースに伴い、内容を更新。
2011/05/18 バージョン 9.0 のリリースに伴い、内容を更新。
2011/11/30 バージョン 9.2 のリリースに伴い、内容を更新。
2012/12/14 バージョン 10.0 のリリースに伴い、内容を更新。
2014/04/22 バージョン 11.0 のリリースに伴い、内容を更新。
2015/02/12 バージョン 12.0 のリリースに伴い、内容を更新。
Copyright (c) 2008-2015 SparxSystems Japan
31