連載Visioで始めるUMLモデリング第1回 「習うより慣れよ」方式で学ぶUMLモデリングデジタルアドバンテージ |
|
プログラム開発では、機能や性能、将来の拡張性など、アプリケーションが必要とする要件を満たすべく、プログラム全体の構造をどうするかをあらかじめ総論的に見渡す必要がある。そしてデータをどうモデル化するか、何をコンポーネントとしてまとめるか、既成のコンポーネントやライブラリをどの場面で活用するか、何を自分で作るのかなどをドリルダウンしていき、きちんと全体の開発方針を決めたうえで、各論となるコーディング作業を開始するべきである。
しかし現実のプロジェクトを見ると、十分な設計(=モデリング)を行わずにコーディングに着手してしまい、「木を見て森を見ず」で苦境に陥るものが少なくないようだ。構造的な要因の1つとしては、加速を続けるビジネス環境の変化と、それに伴うプロジェクトの短納期化が挙げられるだろう。激しいビジネス環境の変化は、アプリケーションへの要求変化につながる。これは、過去の経験からは見通しにくい不確定要因の増加をソフトウェア開発に突きつける。
こうしたプレッシャーに対し、Visual Studio .NET(以降VS.NET)の優れた統合開発環境(IDE)が間違って生かされてしまう場合がある。例えば、VS.NETを使えば、設計書を書かなくてもある程度のものは作れてしまうため、納期に間に合うようにVS.NETでとりあえずプログラムを完成させて、それから納品する設計書を後付けで作成してしまうというようなこともある。このような開発を行っていれば、前述したような「木を見て森を見ず」で苦境に陥るリスクが高くなってしまう。
よってプログラム開発において、十分なモデリングを行うことは必須である。現在のシステム開発の主流はオブジェクト指向開発だが、オブジェクト指向開発のモデリングでは従来型のモデリング手法では対応が困難なため、オブジェクト指向開発のために生み出された統一モデリング言語「UML(Unified Modeling Language)」を用いることが一般的になってきている。そこで本稿では、.NETプログラマーや.NETアーキテクトのためのUMLモデリングについて解説する。
まずは手軽にVisioから始めよう
とはいっても、今までUMLモデリングの経験・実績がない企業がいきなり「今日からUMLモデリングで設計します!」ということになれば、UMLモデリングの方法を1から学習しなければならず、そのUMLモデリングの学習だけで手一杯になって開発プロジェクトが止まってしまう可能性もある。よって、いきなりすべてのプロジェクトにUMLモデリングを導入することは避けた方がよいだろう。
そこで筆者が提案するのは、徐々にUMLモデリングを導入する方法だ。その方法を実現するツールとしてVisioが非常に役立つ(詳細後述)。
Visioは、マイクロソフトが提供する作図ツールで、プレゼンテーションやレポートなどに掲載するネットワーク構成図や組織図などの図面を作成できる。マイクロソフトはこの作図ツールで、ソフトウェア設計やデータベース設計ができるようにしている(ステンシルと呼ばれるソフトウェア設計用のパーツ集を提供している)。
ソフトウェア設計(UMLモデリングなど)やデータベース設計ができるエディションは以下の2つである。Visioの通常エディション(Visio Standard)ではサポートされないので注意が必要である。
- Visio Professional(以降、Visio Pro)
- Visio for Enterprise Architect(以降、Visio EA)
このうちVisio Proは単体製品として購入できるが、Visio EAはVS.NET Enterprise Architect(以降、VS.NET EA)に同梱されているため、VS.NET EAを購入しなければならない(ちなみに2004年6月現在で、Visio Proは約6万円、VS.NET EAは約33万円である。なおVisio以外のモデリング・ツールでは、IBM Rational Rose XDE Developer for Visual Studioが約50万円〜65万円で、Borland Together Edition for Microsoft Visual Studio .NETが約10万円〜19万円である)。
Visio EA とVisio Proの2つのエディションには当然ながら機能差がある。例えば、Visio EAではモデルのエラー・チェックやVisual Basic .NETやC#などのスケルトン・コードを生成できるが、Visio Proではできない。これらの機能差については、次のサイトを参照していただきたい。
また、Visioには2002年度版のVisio 2002と2003年度版のVisio 2003の2つのバージョンが存在する。
本稿では、基本的にVisio Pro 2003を使用する。Visio EA 2003でなければ使用できない機能もあるが、これについては本連載の最終回で解説する予定だ。
「習うより慣れよ」方式によるUMLモデリングの導入
Visio Pro(およびVisio EA)には、既存のVS.NETプロジェクトのソース・コードからUMLモデル(=UMLモデリングの材料となるデータ)を逆生成するリバース・エンジニアリング機能が付属している。現在開発中のプロジェクトにUMLを導入したいなら、この機能を利用して、UMLモデリングにかける手間を軽減することができる 。
また前述したように、UMLモデリングの経験が浅い場合、開発プロジェクトの最初からUMLで設計しようとすれば、UMLの習得に時間がかかって、開発コストが高くなってしまう可能性がある。
しかし、リバース・エンジニアリング機能で生成されたUMLモデルを使って、すでに出来上がったプログラムからUMLモデリングを(できる範囲で)徐々に進めていけば、少しずつUMLモデリングを習得できる。つまり、Visioのリバース・エンジニアリング機能を使えば、「習うより慣れよ」方式で、徐々にUMLモデリングを導入することが可能だ。
本稿では、この「習うより慣れよ」方式によるUMLモデリングの導入を想定して、リバース・エンジニアリング機能を利用しながら、UMLモデリングを行う手順を解説していく。
なお、リバース・エンジニアリングしたUMLモデルは、開発プロジェクトの規模が大きければ大きいほど大量になるが、最初からすべてのUMLモデルを使ってモデリングを行う必要はない。開発プロジェクトの最も重要な部分から順番にUMLモデリングが必要な部分だけモデリングしていけばよいだろう。
それでは、さっそくVisioを使ってリバース・エンジニアリングを試してみよう。
INDEX | ||
Visioで始めるUMLモデリング | ||
第1回 「習うより慣れよ」方式で学ぶUMLモデリング | ||
1.Visioを使ったUMLモデリングの導入 | ||
2.VS.NETプロジェクトのリバース・エンジニアリング | ||
3.UML要素を使ったUMLクラス図の作成 | ||
4.UMLクラス間の関連の設定 | ||
「Visioで始めるUMLモデリング」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|