Skip to content

基本編(2) 動きを表現するシーケンス図


UMLシーケンス図を、モデリングツール astah*でサンプル図を描きながら解説します。


application

登録情報

[スクリプト]

モデリングしてますか?
今日は、シーケンス図をやってみたいと思います。

シーケンス図は、複数のオブジェクトが協力して、1つのゴールを達成する、そのような振る舞いを表現した図です。例として、このような携帯のアプリを考えてみます。

携帯に、こんな情報(右図)を入力して登録ボタンを押すと、それがサーバーに送信されて、ユーザー登録が行われる。そんな一連のアクションを、シーケンス図で表現してみたいと思います。

シーケンス図には、2通り描き方があって、1つは、ラフに登場するオブジェクトを描いていく方法と、もう1つは、クラス図を前提として、そのクラスの参加する振る舞いを描いていく。この2種類があります。

sequence diagram

本日の例題

今日はその両方のやり方で、やってみたいと思います。

実際に、描くシーケンス図は、このようになります(右図)。
ユーザーが3つの情報を入力して、登録ボタンを押すと、アプリがサーバーに登録を行う、このようなモデルです。

では、実際のastahで見てもらいましょう。どうぞ。


AYMラフな”シーケンス図を描いてみる


3

ライフラインの種類

ここでは、ラフなイメージのシーケンス図を描きます。

まず、ライフラインを1つ選んで描いていきます。ここに、ライフラインの種類を選ぶ事ができます。
1つ選んで、ここでは利用者という名前にしましょう。

もう1つ、アプリを代表するライフラインを作ります。「アプリ」と入れます。

次に、利用者が、そのアプリに対して何を操作するかをメッセージを使って描いていきます。
ここでメッセージを選ぶ事も出来ますが、astahではこのバーを引っ張る事によって、描き入れる事ができます。

ここでは、名前を入力するので「名前」と入れます。

次にもう1つ描いてみましょう。
名前の他にも、利用者が入力するものとして「呼び名」というものを入れてみましょう。

4

アプリ登録の流れ – シーケンス図

「呼び名」と「名前」をアプリに設定します。

それから、例えば「アバター」というのも、ここに入れてみましょう。利用者が、アプリに対して「名前」と「呼び名」と「アバター」を設定した後、この3つの情報を入れて「了解」というボタンを押すとします。

もう1つのライフラインを追加します。

そうすると次に、この情報で、「アプリ」が「サーバー」に向かって、情報を「ユーザー設定」という風に、「サーバー」に対して呼び出します。ここではリターンのシーケンスも入れたいので、リターンメッセージを追加して、これで一通りできました。

利用者が、アプリに対して、入力したものがサーバーに送られた、そんな図が、1つ描けました。


AYM先にクラス図を描いてから、シーケンス図を作成する


2

クラス図

次に、最初からクラス図がある場合、これらのクラスが参加するシーケンス図を描いていきたいと思います。

ここに「利用者」、それから「アプリの画面」、「サーバー」、3つのクラスを用意しています。この3つからシーケンス図を描いていきましょう。

左側の構造ツリーに、それぞれのクラスが見えます。

これをドラッグ&ドロップする事によって、それぞれのクラスのライフラインが、自動的に作られます。ここでは「利用者」、「ユーザー登録画面」、この2つの間にメッセージを描きます。

同じようにメッセージを引っ張ると、ここに現れるのが、既に「ユーザー登録画面」に設定されている操作です。
そこから1つ選ぶことによって、メッセージを描く事も可能です。

同じように「呼び名入力」、「送信」というメッセージも描き加えます。
そしてサーバーも同じように、ドラッグ&ドロップしましょう。

この3つが揃った後で、サーバーに対して、「ユーザーの登録」という操作を呼び出します。

後にメッセージを追加したくなった時も、シーケンス図から直接メッセージを描く事ができます。
この新しく作ったメッセージを、その背後にあるクラスに対して登録する事ができます。

1

ドラッグ&ドロップで操作の表示順序を入替え

ここで、そのメッセージ名を入力し「アバター登録」とします。

そうすると、ここのシーケンス図で描いた図の裏にあるクラス図に対して、自動的にこのメソッドが追加されることになります。このように「アバター登録」が追加されました。

順番が気に入らない場合は、ドラッグ&ドロップで、順番を変える事もできます。


AYMクラス図を吟味する


さて、実際の開発では、なかなか1発でクラス図を描く事が出来ません。
ですから、クラス図を描いてシーケンス図を描いてみる、そしてクラス図を成長させる、という事をやっていきます。

その中心にあるのが、ユースケースです。

ユースケースを1つ選んで、シーケンス図を描いてみる、そしてクラス図を吟味する、この過程を回していって
クラス図を完成させていきます。

では、みなさんの開発でも、試してみてください。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: