トップ » 技術記事 » ユースケース図の extend は必要か?

ユースケース図の extend は必要か?

タグ: UML モデリング

あかさたです。先日、ウェブ上で動作するモデリングツール Kodougu にユースケース図を実装しようとしていた時のことです。私のブログで「Include は実装、Extend はいらないって感じですかねぇ」と書いたところ、前職の会社の先輩から「両方欲しい」という要望をいただきました。なぜ必要かという議論をしていたところ、思わず include や extend の興味深い使い方がわかってきたので、今日はその辺を紹介します。

include、extend、汎化とは何か?

まず、include、extend、そしてユースケースの汎化について説明します。まずは以下のモデルを参照してください。以下の図を簡単に説明すると、ブログシステムがあって、ブログシステムは PC と携帯電話から記事を投稿することができます。記事を投稿中に、記事に対してタグをふったり、ふりたいタグが見つからない場合はタグを新規作成することができます。

まず、include について説明します。この場合、「記事にタグをふる」というユースケースは、記事を投稿するというユースケースの部分であることを include を使って定義しています。つまり、include はメインユースケースのサブフローを定義するために使っていることになります。

次に extend です。上記の図では、「記事にタグをふる」ユースケース実行時に、ふりたいタグが見つからない場合(この条件は図からは読み取ることができないので、別途ドキュメントに記載するか、拡張点というものを定義する必要があります。)は、「タグを新規作成する」という代替フローを実行することを、extend を使って表現しています。つまり、extend は代替フローを表現するために使っていることになります。

最後に、ユースケースの汎化です。上記の図では、「ブログ記事を投稿する」ユースケースに、PC からの投稿と携帯電話からの投稿という二つのバリエーションがあることを、ユースケースの汎化を使って表現しています。つまり、汎化は、実行方法のバリエーションを表現するために使用していることになります。

いずれにせよ、include、extend、ユースケースの汎化は大きなユースケースを分割して書くテクニックであることがわかります。


1 2

執筆者紹介

あかさた

あかさた

未踏(2006年度下期)でWeb上で動作するモデリング環境 Kodougu の開発をしてました。こちらでもブログを書いています。

TrackBack URL :