[事例研究] 株式会社クボタ

3.Java経験者を含め幅広いプロジェクト・チームを編成。開発言語としてはVB .NETを採用


デジタルアドバンテージ
2002/01/16


 パイロット・プログラムの開発環境としては、Visual Studio .NETベータ2(以下VS .NET)を使用し、開発言語としてはVisual Basic .NETを使用する。開発スタッフは全部で7名で、既存のPersonNTの開発を担当したVBプログラマに加え、Javaでの開発経験を持つプログラマなどの混成チームとした。「今回のプロジェクトを成功させることはもちろん、今回得たノウハウを別のプロジェクトでも展開したいという思惑があり、既存システムの開発経験者だけでなく、さまざまな部署から、さまざまな経験を持つスタッフを幅広く集めました。とにかく新しいものをどんどん吸収してもらいたいですね」(クボタシステム開発 伏見弘樹氏)。

 最新のVB .NETでは、プログラミング・スタイルが完全なオブジェクト指向準拠になり、既存のVB 6から移行するには、オブジェクト指向プログラミングに対するスキルアップが必要だといわれている。今回のPerson .NETは、実質的に新規開発になるわけで、既存のソース・コードを流用しようとするものではない。この意味では、開発言語として新しいC#を選択するという方法もあったと考えられるが、それでもVB .NETを選択した理由は何だろうか? 「確かに、VB 6からVB .NETへの移行では、新しい知識も必要です。しかし開発環境の使い方や細かな言語仕様のレベルでは従来の知識やノウハウが生かせますので、開発言語としてはVB .NETを選択しました」(クボタシステム開発 伏見弘樹氏)。

クラス図の描画では安価なVisioを利用

 クラス分析と設計では、初めてUMLを導入した。クラス図の描画ツールとしては、安価に手に入るVisioを利用した。VS .NET Enterprise版には、クラス図からソース・コードを生成可能なVisio(英語版のVisio 2002)が付属するが、今回はソース・コード生成機能を使用しないで、クラス図を作成するための作画ツールとしてのみ用いたとのことだ。基幹業務系システムに対しては、オブジェクト指向設計も初めての経験で、当初は試行錯誤を繰り返したが、マイクロソフトのコンサルティング・サービスの支援もあり、徐々に理解を深めて設計効率を向上させていった。「今回はUMLの勉強から始めて、クラス図の作成ではVisioを利用しました。UMLのモデリング・ツールとしては、Rational Roseなど著名なものがありますが、今回は初めての経験でもありますし、まずはオブジェクト指向分析と設計を理解して、クラス図を描くことが重要だと考え、価格的にも手軽なVisioを使うことにしました。最初は勝手が分からず試行錯誤の連続だったのですが、業務分析やクラス設計の基本的なアプローチでは、マイクロソフトのコンサルタントにだいぶ助けてもらって、最初に手がけた『人事情報』コンポーネントを何とか形にすることができました。次のコンポーネント設計では、この経験が生きてくるはずです。現時点ではまだ、1回目のコーディング・フェーズが終わるところなので、UMLを採用したメリットはあまり実感できません。これからメンテナンス・フェーズに入ったり、新しいスタッフにシステムを素早く把握してもらったりする段階ではUMLのメリットが生きてくると考えています」(クボタシステム開発 伏見弘樹氏)。

Visioを利用したUMLベースのクラス図の作成
UMLによるクラス設計は今回が初めてということもあり、クラス構成を図としてビジュアル化することを最優先とし、ツールには手軽なVisioを活用した。VisioにはUMLに対応したサポート機能があり、この機能を支援を受けながらクラス図の作成を行えるようになっている。

WebアプリケーションでC/Sクライアントと同等レベルのGUIを構築する

 前出のクラス設計もさることながら、最も苦心しているのは、既存のVBクライアントと同等のユーザー・インターフェイスをWebアプリケーションでも実現しようという目標をクリアすることだという。「ローカルのWindowsアプリケーションとして機能する既存のVBクライアントでは、メニューやダイヤログボックスを含め、Windowsが持つGUIの機能を100%自由に活用できますし、実際PersonNTでもそれらを駆使して使い勝手を向上させています。こうしたリッチなインターフェイスを、クライアントとしてWebブラウザを使うWebアプリケーションでも再現できるのかは当初から大きな不安要素でした。また実際のコーディング・フェーズでも最も苦労しているのがこのGUI設計の部分です。しかしこの点についても、マイクロソフトのアドバイスを仰ぎながら何とか現行レベルに近いインターフェイスを構築することに成功しました」(クボタシステム開発 伏見弘樹氏)。

 「ある意味心配していたし、最後は割り切る必要があると覚悟していたのですが、実際に作ってみると、既存のVBクライアントから比べてもあまり違和感のないレベルで操作できるようになっています。まだすべての実装は終わっていないので最終的な結論が出るのは先になりますが、現時点では『これならいける』と実感しています」(クボタ 芝田敏行氏)。

Webアプリケーションとして実現されたインターフェイス
クライアント側にはブラウザを使用するということで、VBクライアント時代から比較して、ユーザー・インターフェイスのグレード・ダウンが心配されたが、実際には、現行レベルのインターフェイスを維持することができた。画面は人事基礎情報のページを表示したもの。
 
Webアプリケーションとして実現されたインターフェイス(2)
ASP .NETによるWebアプリケーションでは、ブラウザの種類やバージョンの違いをフレーム・ワークが吸収している。ブラウザがDHTMLに対応したIEなら、それを使用したリッチなインターフェイスを使用できる。

共通処理を行う親クラスを作成し、システム・インターフェイスの処理を軽減

 新人事システムのPerson.NETでは、新しい開発手法や開発言語へのチャレンジに加え、プログラムから使用するシステム・インターフェイスもVB 6の関数群から.NET Frameworkのクラス・ライブラリに変化することになる。.NET Frameworkでは、膨大なクラスが定義されているが、この違いは負担にならなかったのだろうか? 「基本的に、複数のクラスから使用する共通のメソッドをまとめた親クラスを1つ作ることで、ここに処理を集中させ、なるべく下位のクラスから直接.NET Frameworkにアクセスしなくても済むように工夫しています。もちろん、それでも.NET Frameworkの学習は必要になります。膨大なクラスがあって学習はたいへんですが、これもマイクロソフトのコンサルティング・サービスのおかげで、目的とする処理を行うためにどのクラスを使えばよいのか、的確なアドバイスを受けることができて助かっています。基本的にはヘルプを自分で調べるのですが、いよいよとなってコンサルタントに問い合わせて初めて、『こんなものがあるのか』と教わることもしばしばです」(クボタシステム開発 伏見弘樹氏)。


 INDEX
  [事例研究]株式会社 クボタ
    1.ホスト・コンピュータからPersonNTへ
    2.PersonNTからPerson.NETへ
  3.Java経験者を含め幅広いプロジェクト・チームを編成。開発言語としてはVB .NETを採用
    4.デザインからプログラム・トレース、デバッグまでをトータルに扱えるVS .NETでのWebアプリケーション開発
      技術コラム: Visual Studio .NETによるWebアプリケーション開発


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間