サイトマップ
-
Contents
-
Information
ユースケース図の extend は必要か?
あかさたです。先日、ウェブ上で動作するモデリングツール Kodougu にユースケース図を実装しようとしていた時のことです。私のブログで「Include は実装、Extend はいらないって感じですかねぇ」と書いたところ、前職の会社の先輩から「両方欲しい」という要望をいただきました。なぜ必要かという議論をしていたところ、思わず include や extend の興味深い使い方がわかってきたので、今日はその辺を紹介します。
include、extend、汎化とは何か?
まず、include、extend、そしてユースケースの汎化について説明します。まずは以下のモデルを参照してください。以下の図を簡単に説明すると、ブログシステムがあって、ブログシステムは PC と携帯電話から記事を投稿することができます。記事を投稿中に、記事に対してタグをふったり、ふりたいタグが見つからない場合はタグを新規作成することができます。
まず、include について説明します。この場合、「記事にタグをふる」というユースケースは、記事を投稿するというユースケースの部分であることを include を使って定義しています。つまり、include はメインユースケースのサブフローを定義するために使っていることになります。
次に extend です。上記の図では、「記事にタグをふる」ユースケース実行時に、ふりたいタグが見つからない場合(この条件は図からは読み取ることができないので、別途ドキュメントに記載するか、拡張点というものを定義する必要があります。)は、「タグを新規作成する」という代替フローを実行することを、extend を使って表現しています。つまり、extend は代替フローを表現するために使っていることになります。
最後に、ユースケースの汎化です。上記の図では、「ブログ記事を投稿する」ユースケースに、PC からの投稿と携帯電話からの投稿という二つのバリエーションがあることを、ユースケースの汎化を使って表現しています。つまり、汎化は、実行方法のバリエーションを表現するために使用していることになります。
いずれにせよ、include、extend、ユースケースの汎化は大きなユースケースを分割して書くテクニックであることがわかります。
1 2
このサイトについて
TrackBack URL :

今日の気になったページ…
ユースケース図の extend は必要か? http://www.hakkaku.net/articles/20071107-66 私が思うにはextendは、基本的 (more…)
Posted by 気まぐれなる日々 | 2007年11月08日 16:52
extend の向きが逆じゃないですか?
Posted by GLAD!! | 2007年11月09日 01:18
コメントありがとうございます。直しました。
# 間違えやすいって連呼しておいて自分で間違っていたらしょうがないですね。
Posted by あかさた | 2007年11月09日 02:26