UMLとシステム設計 — 図でソフトウェアを設計する
導入
システム開発では、複雑な仕組みをチームで共有するために「図」が欠かせません。UMLはその共通言語として世界中で使われており、どの図がどんな場面で使われるかを知ることが、設計の第一歩になります。
なぜ重要か
システム開発において、設計の認識ズレはバグや手戻りの大きな原因となります。UMLはその認識ズレを防ぐための標準的な設計記法として、世界中の開発プロジェクトで採用されています。ITパスポートのマネジメント系・テクノロジ系にまたがるテーマとして、「どの図をどの場面で使うか」を問う問題が繰り返し出題されています。
システム開発の現場では、要件定義・設計・実装・テストの各フェーズで異なる図を使い分けます。要件定義ではユースケース図、設計ではクラス図、処理フローの確認にはシーケンス図というように、フェーズごとの使い分けを理解することが試験対策においても実務においても重要です。UMLの知識は、エンジニアだけでなく発注側の担当者にとっても、ベンダーとのコミュニケーションを円滑にする共通言語として役立ちます。
くわしく知ろう
UML(Unified Modeling Language:統一モデリング言語)とは、ソフトウェアの設計を視覚的に表現するための記法の集まりです。開発者同士が同じ図の形式でシステムを描くことで、認識のズレを防ぐ役割を果たしています。
ユースケース図は、システムが「誰に・何を提供するか」を表す図です。人型のアイコン(アクター)とシステムの機能(ユースケース)を線で結んで表現します。要件定義の段階で利用者の視点からシステムの目的を整理するのに適しています。
クラス図は、システム内に登場するデータの種類(クラス)と、それらの関係性を表す図です。「注文」と「商品」が1対多の関係にあるといった構造を示すために使われます。オブジェクト指向設計の中心的な図として知られており、データベース設計のER図と似た役割を持ちます。
シーケンス図は、複数のオブジェクトやシステム間でのメッセージのやり取りを時系列で表す図です。「画面→サーバー→データベース」というように処理の流れを追うのに役立ちます。
このほかにもアクティビティ図(処理の流れを表すフローチャート的な図)や状態遷移図(オブジェクトの状態変化を表す図)など、さまざまな図がUMLには含まれていますが、ITパスポートではユースケース図・クラス図・シーケンス図の3つに絞って押さえておくことが実践的です。
具体例で理解する
たとえばオンラインショッピングの設計では、ユースケース図で「ユーザーが商品を検索する」という機能を定義し、クラス図で「注文・商品・会員」の関係を整理し、シーケンス図で「注文ボタン押下からメール送信までの処理の流れ」を確認することができます。このように3つの図を組み合わせることで、同じシステムを異なる観点から立体的に設計できるようになっています。
試験での出題パターン
【パターン1:場面に応じた図の選択問題】
「要件定義の段階で、誰がどの機能を使うかを整理するために適した図はどれか」という形式で、ユースケース図・クラス図・シーケンス図・アクティビティ図の4択から選ぶ問題が代表的です。各図の「目的・フェーズ・表現対象」を整理しておくことが重要です。
【パターン2:図の説明から名称を答える問題】
「複数のオブジェクト間のメッセージのやり取りを時系列で表す図はどれか」という説明から図の名称を選ぶパターンです。ユースケース図とシーケンス図は説明文が似ることがあり、「時系列」「処理の順番」というキーワードが出たらシーケンス図と結びつけると判断しやすくなります。
【パターン3:UMLの定義を問う問題】
「UMLとは何か」という定義問題では、「オブジェクト指向設計専用の言語」「プログラミング言語の一種」などの誤答が並びます。UMLはあくまで「設計を視覚的に表現するための記法(モデリング言語)」であり、コードを書くためのものではないという点が正解のポイントです。
よくある間違い・紛らわしいポイント
【ユースケース図とシーケンス図の混同】
ユースケース図は「誰が何の機能を使うか」を俯瞰的に整理する図であり、時系列の概念は含まれません。シーケンス図は「処理がどの順番でどこに流れるか」を時系列で追う図です。「注文処理の流れを確認したい」という場面ならシーケンス図、「システムが提供する機能の一覧を整理したい」ならユースケース図という使い分けを意識しておくと区別しやすくなります。
【クラス図とER図の混同】
クラス図はオブジェクト指向設計の観点からクラスの属性・メソッド・関係を表す図で、ER図はデータベース設計の観点からエンティティ(実体)とその関係を表す図です。どちらも「データの種類と関係」を表しますが、クラス図にはメソッド(処理)の概念が含まれ、ER図にはありません。この違いを問う問題も見られます。
【UMLをプログラミング言語と混同】
UMLは「Unified Modeling Language(統一モデリング言語)」と呼ばれますが、コードを実行するプログラミング言語ではありません。設計を図として表現するための記法の集まりです。この誤解を利用した選択肢が試験に登場することがあります。
まとめ・試験ポイント
- UML=ソフトウェア設計の共通記法(統一モデリング言語)、プログラミング言語ではない
- ユースケース図=誰が何をするかを表す(要件定義向け)
- クラス図=データの種類と関係性を表す(設計向け)
- シーケンス図=時系列でのメッセージのやり取りを表す
- クラス図はメソッドを含む、ER図にはメソッドの概念はない
- 試験では「この場面にはどの図を使うか」という選択問題が頻出
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する