|
|
前のページ 1 2 3
|
|
UML
|
C言語での開発では、開発者が関数の仕様を記述した仕様書を記述し、プログラマがその通りに実装する、という方法が多く取られることでしょう。それに対してオブジェクト指向での設計は、どのオブジェクトが必要か、という観点で設計すると前述しました。具体的にはUML(Unified Modeling Language)というモデルの表記法を使用し、設計の確認と開発者との意思疎通をはかります。
場合によっていくつかの図を使い分けるのですが、使用頻度の高いものは以下の4つになります。
ユースケース図 |
システムと外部との関わりをあらわす(図5) |
アクティビティ図 |
業務フローのアルゴリズムをあらわす(図6) |
クラス図 |
主にクラス間の依存関係をあらわす(図7) |
シーケンス図 |
オブジェクトのメッセージのやり取りをあらわす(図8) |
表5:使用頻度の高いUML図
UMLが読めることで、プロジェクトにアサインされた時の立ち上がりも早くなります。システムと利用者の関係が記述されていればシステム全体の流れも把握しやすくなりますし、システム全体のクラス設計指針が記述されていれば業務機能の設計をパターン化することができます。UMLを知らなければJavaシステムを構築できないわけではありませんが、自然言語による記述のあいまいさを取り除くために、ビジュアル的に表現できるUMLはよく使用されています。
図5:ユースケース図
図6:アクティビティ図 (画像をクリックすると別ウィンドウに拡大図を表示します)
図7:クラス図
図8:シーケンス図 (画像をクリックすると別ウィンドウに拡大図を表示します)
|
最後に
|
Javaを通してオブジェクト指向についてお話してきましたが、オブジェクト指向が手続き指向よりもエレガントかというと、そうではありません。C言語でも再利用可能な関数を書くことはできますし、Java言語を使っていても保守性が悪いプログラムを記述することもできます。
勢いで実装されたプログラムは、どの指向の言語を使用しても後々煙たがれるものです。きちんと設計することで無駄なロジックを書かないようにすることがエレガントなプログラムを実現する方法なのです。またJava SEより提供されているAPI群だけでなく、Apache Commonsプロジェクトより提供されている機能をアプリケーションに適応することで、独自に作成するロジックを削減することもできるのです。
Javaの魅力は豊富なAPIにあるといっても過言ではなく、知っていると知っていないとでは生産性が圧倒的に違います。
少ないソースコードでWebアプリケーションが構築できるRuby on Railsに人気が集まりつつあるのもうなずけますが、現在稼動中のシステムはまだまだJavaで構築されたものが多く、新しい言語が出たからといってすべて刷新するわけにもいかないのが現状ではないのでしょうか。
そうなると、現在稼動中のシステムをいかに有効活用するかがポイントになってきます。Webサービス化してSOAでシステムを再構築したり、マッシュアップして新しいサービスを提供したりとまだまだこれからJavaの技術者が活躍できるステージがあります。
だからこそ、皆さん、Javaの世界に足を踏み入れてみてはいかがでしょうか?
|
前のページ 1 2 3
|
|
|
|
著者プロフィール
サイオステクノロジー株式会社 片桐 一宗
ソフトハウスでC、C++、Javaでの開発経験を積み、テンアートニ(現サイオステクノロジー)入社。Webシステムの設計・開発・保守からプロジェクトリーダーまでこなした後、現在、品質管理チームの一員を担当。サイオステクノロジーのシステム構築サービス品質向上に向け、日々奮闘中。
|
|
|
|