本連載は、未経験の人でもUMLを使いこなせるようになることを最終目標として、UMLについてゼロから解説しています。今回も前回に引き続き、架空の宅配便会社「まいにち宅配便」の配達予約システムの開発プロジェクトを題材に、設計のためのクラス図で用いるUMLの要素について解説します。
前回、設計のためのクラス図で用いるUMLの要素として、「属性の型」と「操作」について説明しました。今回は、操作を定義する際に用いる「可視性」という要素について説明します。
可視性
UMLの要素「可視性」は、オブジェクト指向言語ではアクセス制御子とも呼ばれます。可視性はクラスが保有する属性、関連端、操作を参照して呼び出しできるクラスを制限するための仕組みであり、保守性が高いクラスを作るために使います。
図1に示したように、UMLには異なる意味を有する4種類の可視性があります。これらは、実際に用いるオブジェクト指向言語のアクセス制御子と対応付けて使います。
表記法 |
読み方 |
意味 |
---|---|---|
+ |
パブリック |
他のすべてのクラスからアクセスできる |
# |
プロテクテッド |
自クラスやそのサブクラスからアクセスできる |
~ |
パッケージ |
同じパッケージ内のクラスからアクセスできる |
= |
プライベート |
自クラスからアクセスできる |
抽象クラス/インタフェース
オブジェクト指向言語には「抽象クラス」や「インタフェース」というソフトウェアの保守性や再利用性を高めるための仕組みがありますが、UMLにも同様の要素があります。詳細設計時には、設計モデルを作成しながら何を抽象クラスやインタフェースに任せるかについて検討します。
依存
筆者はここ10年、Webアプリケーションの開発に携わってきましたが、クラスの属性にオブジェクトを保有する設計を見かけたことはあまりありません。必要になったらその都度FactoryクラスやDIコンテナからオブジェクトを取得し、不要になったらすぐ手放すといった設計がほとんどです。後者のように、一時的に使うオブジェクト(クラス)を設計モデルで表現する場合は「依存」で表現します。
『出典:システム開発ジャーナル Vol.6(2008年9月発刊)』
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。