ソフトウェア設計をもっと効率的に! ~参照プロジェクトを活用しよう~

参照プロジェクトでは何ができるの?

usecase参照プロジェクトを使うと、他のプロジェクトに存在するモデルを参照のみ可能なものとして取り込むことができます。他プロジェクトを読み取り専用でインポートする機能と言った方が解りやすいかもしれません。これにより、インポート先のプロジェクトにおいて、変更されないことが保証された状態でインポートしたモデルを利用することができます。また、インポート元のプロジェクトでモデルが更新された場合には、その旨を検知し、インポート先のプロジェクトに反映することができます。

どんな場面で利用できるの?

チーム開発で

複数人で設計作業をする場合、レイヤやコンポーネント、パッケージなどで担当を分けることがあると思います。複数人による作業ではなくても、プロジェクトファイルを分けておきたいこともあるでしょう。このような時、それぞれのプロジェクトのモデルを参照プロジェクトとしてインポートすることで、お互いのモデルに副作用を及ぼすことを危惧することなくモデリングすることができるようになります。一方で、担当外の各プロジェクトが変更された場合には、随時、更新を反映することができます。

チーム開発で参照プロジェクトを使うことを紹介した動画

上流工程からの設計情報を利用した開発で

発注元から提供されたり、承認済みである、あるいは、自らが一時的に確定させておきたいなど、上流工程からの設計情報については、任意に変更してはいけないことがあります。このような場合、変更すべきではない設計情報を参照プロジェクトとしてインポートすることで、それらが変更されるような使用、拡張を不意に施してしまうことを防ぐことができます。また、インポートしたモデルに変更が加えられようとすると警告が表示されますが、これを、上流工程における設計の修正の必要性を示唆するものとして捉えることもできるのではないでしょうか。

フレームワークやライブラリを利用した開発で

フレームワークやライブラリ(以降、フレームワーク)を利用した開発を行う場合、当該フレームワークは通常変更できるものではありません。そこで、フレームワークのモデルを参照プロジェクトとして取り込んで利用することで、それを変更したり、矛盾した依存関係が生じるような設計がされないことを保証できます。

以下に、フレームワークを利用した開発における参照プロジェクトの活用例を示します。

まずはコードリバース

フレームワークの中には、オープンソースのものが少なくありません。astah*は、コードリバースの機能を提供していますので、ソースコードがあればモデル図を作成することが可能です。これをフレームワークのプロジェクトとして保存しておきます。※このフレームワークのプロジェクトは複数のフレームワークを利用するプロジェクトから参照することが可能です。

javaのコードリバースについて、以下を参照下さい。
javaのコードリバースについて

C++、C#のコードリバースについては、プラグインをご利用いただけます。
C++、C#のコードリバースについて

フレームワークのモデルを取り込むref_management

開発用のプロジェクトを新規作成し、フレームワークのプロジェクトを参照プロジェクトとして追加します。複数のプロジェクトを参照プロジェクトとして管理可能ですので、必要に応じて、コードリバースと参照プロジェクトの追加を行います。

ref_classフレームワークを使用、拡張する

開発用プロジェクトでフレームワークのモデルを使用、拡張しながら設計を行います。属性や操作、操作のパラメータの追加、フレームワークから拡張クラスへの依存等、フレームワーク側のクラスに副作用が及ぶような変更をしようとすると警告が表示されますので、設計が適切でないことに気付くことができます。

フレームワークの更新を反映するref_management_update

フレームワークのバージョンアップに追従する場合には、
まず、フレームワークのプロジェクトでソースコードを読み込み、フレームワークのモデルを更新します。
その後、開発用プロジェクトにフレームワークのモデルの変更を反映します。

さいごに

参照プロジェクトは、チーム開発での利用だけではなく、モデルが変更される操作を機械的に排除することで、不適切な拡張や依存関係の作成といった誤った設計を未然に防ぐためにも利用することができます。また、上流工程やフレームワークを派生元と捉えれば、派生開発にも利用できるのではないでしょうか。

使用方法の詳細については、以下のマニュアルおよびチュートリアルをご覧いただき、是非ご活用下さい。

参照プロジェクトのチュートリアル
参照プロジェクトのオンラインマニュアル

※参照プロジェクトは、astah* professionalで使用可能です。
astah* professionalのダウンロードはこちら

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s