第5部:Altova UModelを用いたレガシーアプリケーションの分析

このシリーズの第1部第2部第3部、および第4部では、Altova UModelのリバースエンジニアリング機能を活用し、ATM銀行シミュレーションアプリケーションのUML図を作成しました。既存のアーキテクチャを分析した後、新しい機能である「手数料」を計画し、実装しました。今回、サイズを縮小したものの、更新されたシーケンス図は、引き出し処理のシーケンスを視覚的に表現しており、ソースコードの複雑な論理構造を明確に示しています。

今朝、コーヒーマシンのところでたまたま、ATM製品の担当者の方にお会いしました。「あなたはもう1ヶ月以上、そのATMのコードに取り組んでいるのですね」と彼は言いました。「私があなたが達成した成果をいつ見ることができるのでしょうか?」

この要望に応えるために、UModelのドキュメント生成機能を活用できます。UModelは、当社のプロジェクトに合わせて、HTML、Microsoft Word、またはRTF形式で、自動的にカスタマイズされたドキュメントを作成します。

「ドキュメント生成」ダイアログボックスの「含める」タブを使用すると、どの種類の図を含めるかを選択でき、また、各図の要素タイプを詳細に展開することで、レポートの記述レベルを指定できます。

概要レポートを作成する場合、すべての種類の図を選択できます。また、要素リストから「クラス」を選択することで、アプリケーション内のクラスに関する詳細情報を表示できます。UModelは、さらに「クラスから派生した要素も追加しますか?」と尋ねてくれます。

他のドキュメントのパラメータ、例えばフォントやサイズなどを選択または調整した後、UModelは数秒でレポートを生成します。レポートの最初のページの上部には、図表の索引と、要素の別の索引が記載されています。それぞれの索引項目は、ドキュメント内の特定の箇所(ブックマーク)へのハイパーリンクとして機能しています。

どの形式を選択するにしても、生成されるレポートは完全に編集可能です。例えば、ページ番号やドキュメント作成日を記録したフッターを追加することができます。UModelが作成したフッターの情報を利用して、独自のフッターを作成することも可能です。

弊社の完成したレポートには、既存のATMアプリケーションを記述するすべてのUML図が含まれています。詳細なクラス図では、各クラスの属性とメソッドが示されています。さらに、各クラスの説明には、クラス間の関係を示す階層図と、すべてのクラス間の関連性をまとめたリストが付属しています。プロジェクトの進展に伴い、このレポートを簡単に更新することができます。また、UModelのコマンドライン機能やAPIを活用して、プロジェクトドキュメントの作成を自動化することも可能です。あるいは、レポートの.html版を開発チームのWikiに添付することもできます。しかし、現時点では、レポートをATM製品担当者にメールで送付するだけです。

結論

Altova UModelを使ったレガシーアプリケーションの分析という演習にご参加いただき、。今回のシリーズはここで終了となりますが、実際のATMアプリケーションにおいては、まだまだ多くの作業が残されています。例えば、ユーザーが手数料を受け入れるか、引き出しをキャンセルするかを選択できる機能は、まだ実装されていません。また、ジェネリクス、アノテーション、列挙型など、より新しいJavaの機能を使って、既存のコードを更新することも可能です。

UMLの経験がある方であれば、新しいテクニックをいくつかご紹介できたことを願っています。もし、UMLを試したことがない開発者の方であれば、ビジュアルなソフトウェアモデリングの魅力と利点をご理解いただけたことを願っています。いずれにしても、もしご自身のプロジェクトでさらに進みたいとお考えでしたら、こちらをクリックして、フル機能の無料トライアル版であるAltova UModelをダウンロードしてください。