情報源からのクラスを抽出する

情報源からのクラスを抽出する

ここでは、ユースケース記述などのユースケースの操作手順から、クラス図を作成する方法を見ていきます。前回の要求分析の結果から「出張申請を登録する」ユースケースの操作手順を見てみましょう。

「出張申請を登録する」ユースケースでは、最初に(アクターである)申請者が、メニュー画面から「出張申請の登録」を選択するなどして、出張申請情報の登録操作を開始します。するとシステムは「出張申請入力画面」を表示します。

表示された「出張申請入力画面」に、申請者が出張申請(行き先、目的、期間)を、「出張申請入力画面」に交通機関名を入力するといった流れで操作を進めていきます。

クラス図の作成は、操作手順からの名詞をもとに作成します。このときの名詞は画面や操作方法に関するものは除いて、直接的に業務に関する概 念を抽出していきます。このようにして得られたクラス図は、システムとは独立した純粋な業務のデータ構造が表現されます。先ほどの図1はこうして作成した クラス図の例です。ユースケース記述からの名詞は、クラス図ではクラス、属性、関連端名のいずれかになります。

クラスを抽出する方法は、名詞から抽出する方法だけではありません。オブジェクトの振る舞いを設計する中で抽出する方法や、名前がすぐに思いつかない概念から発見される場合もあります。後述するオブジェクト図から抽出する方法もその1つです。

図2:具体的なクラス図の例
(画像をクリックすると別ウィンドウに拡大図を表示します)

より具体的なクラス図

図2は、図1のクラス図に追加の変更を加え、対象のシステムを開発する目的で詳細化したものです。新しく登場したものは操作、可視性、誘導可能性、コンポジションです。

操作はオブジェクトの振る舞いです。例では、「単価を更新する()」という操作が追加されています。「出張手当」クラスの「金額」属性の値 は、「単価×宿泊数」という計算によって求められるとします。「単価」属性の値は、外部のクラスから与えられるものではなく、「出張手当」クラスのオブ ジェクトが、自ら外部のオブジェクトから値を取得し更新する仕様であると仮定します。この場合、「単価を更新する()」が外部のクラスから呼び出される と、単価更新の処理が行われるといった具合です。

可視性は、属性や操作、関連などの特性に対して指定することができ、その公開範囲を表します。公開範囲は、どのクラスからでも自由にアクセ スできる「public (+)」や、自クラスからのみアクセスできる「private (-)」、自クラスおよびサブクラスからアクセスできる「protected (#)」、同じパッケージ内のクラスからアクセスできる「package (~)」の4種類があります。

例では、画面などから値が設定されるため、ほとんどの属性を「public (+)」としています。プログラミング言語に落とし込む際に、属性の可視性を「private (-)」にし、属性にアクセスするための操作(アクセサ)を「public (+)」として設けることを想定しています。前述の通り、外部のクラスからアクセスされたくない「出張手当」クラスの「単価」属性は「private (-)」にしてあります。

誘導可能性は、関連端につけられる矢印や×印のことです。矢印の方向のオブジェクトは導けますが、×印の方向のオブジェクトは導けないことを示します。

コンポジションは、集約よりも強い結びつきがあることを示す関連の一種で、黒塗りのひし形で記述します。部分側のオブジェクトが、全体側のオブジェクトと同時に消滅することや、部分側のオブジェクトが同時に複数のオブジェクトから集約されないことなどを表します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30