アークシステムの業務事例

Webシステムソリューションの事例

オープンソース・ソリューションの事例

オープンソースをフル活用した英語学習サイト構築

お客様の新規事業システムである、インターネットをとおして英語学習が行えるeラーニングシステムを構築いたしました。

お客様の業種

情報

お客様の目的

新規ビジネスの立ち上げ

アークシステムの支援の特徴

企画、要件定義から製造までトータルに支援するとともに、オープンソース活用やオフショア開発によりローコストな開発を実現

プロダクト

[ Windows ] [ Mac ] [ Linux ] [ Tomcat ] [ MySQL ] [ CLUSTERPRO WORKS ] [ ARKフレームワーク (Struts) ] [ Seasar2 ] [ Torque ] [ Java ] [ ADE ] [ Flash Playerプラグイン ]

1.システムの概要

目標

  • 忙しい日本のビジネスパーソンに向けて、独自に研究・開発された英語学習メソッド「クードック.」のシステムをインターネット上に構築
  • 新規事業システムでどういったシステムがいいのか手探り状態で要求が変わりやすいため、要求・課題・ドキュメントの確実な管理が必要
  • できるだけローコストな開発の実現

「クードック.」の特徴

  • ブラウザからテスト (LC) 受験
    英語力のレベルにより異なるLCの内容。リアルタイムで採点し、想定レベルと異なる場合はLCの問題を追加。採点結果および学習方針をチャートに出力
  • LCの結果に応じたドリル配信
    強化すべきアビリティ(音取り力、文字文法力、音文法力、語彙力など)。各アビリティのレベル
  • 学習後に成果を測るため、自分に応じたLCを再び受験
    次の学習フェーズに進めるかどうかを判断。学習者は学習効果を実感
  • 以後、このサイクルを繰り返し、英語力を確実に向上

お客様

2.オープンソース製品の利用目的と構成

利用目的

1. プロジェクト情報共有インフラ、2. 開発・テスト支援ツール、3. 開発フレームワーク

構成

概要図:利用オープンソース製品の構成

利用オープンソース製品の概要

オープンソース製品 概要 種類 フェーズ 利用者
設計 実装 テスト お客様 社内 オフショア
Struts Web画面制御フレームワーク 製造部品      
Seasar2 主にトランザクション管理 製造部品      
Torque DBアクセス部品 製造部品      
Eclipse Javaコーディング・テスト環境 開発支援ツール
Maven Javaビルドツール 開発支援ツール    
JUnit Java単体テスト支援 開発支援ツール    
OpenSTA httpテストツール テスト支援ツール        
PukiWiki 掲示版・Portal 情報共有
Mantis 課題管理ツール 情報共有
CVS (ViewCVS) ソース・ドキュメント管理 情報共有

3.オープンソース製品の具体的な利用方法

【1】プロジェクト情報共有インフラ

  • プロジェクト開始にあたっての課題
    • 要求・課題・ドキュメントの確実な管理
    • インターネットでアクセスできること
    • できるだけローコストで、簡単に、早期に実現

  • プロジェクト情報共有インフラの設立
    • ドキュメント・ファイル共有 (CVS、ViewCVS)
    • 課題管理 (Mantis)
    • ノウハウなどの情報共有 (PukiWiki)
【1-1】ドキュメント・ファイル共有 CVS、ViewCVS
  • 設計ドキュメントのサーバーとしてCVSを利用
    • ドキュメントをお客様・協力会社様とインターネット経由で共有可能
    • 変更の履歴が確実
  • CVSクライアントとしてEclipseを利用
    • 開発をしない"ドキュメントだけの人"にも適用
    • 優れた操作性
    • sshでアクセスの設定手順が比較的容易
    • 軽くするため"ドキュメントだけの人"用にカスタマイズ (プラグインを削って標準の1/3のファイルサイズ)
  • ViewCVSの利用
    • http (s) 経由でCVSのリソース参照可能
    • CVS上のドキュメントへのリンクを記述可能
    • 履歴確認が容易
【1-2】課題管理 Mantis
  • 課題管理にMantisを利用
    • 簡単にいえば課題掲示板。Webのインターフェースで登録・参照
    • 検索、ステータス管理、アサイン、サマリ、メール送信、エクスポート機能
  • 課題・障害管理のコスト削減
    • 問い合わせ対応履歴や"誰がボールを持っているか"の明確化
    • 障害管理票などのやりとり不要
    • 課題や障害の進捗状況のわかりやすさ
  • 当プロジェクトではコミュニケーションの要として活躍

    説明図:Mantisを利用したコミュニケーション

【1-3】ノウハウなどの情報共有 PukiWiki
  • 掲示板 (プロジェクトのPortal) としてPukiWikiを利用
    • Webサイト構築ツール
    • Webブラウザを使用してHTMLページが簡単に作成・編集可
  • 各ツールへのリンク
    • Mantis、CVSViewer
    • ナイトリビルド結果、Javadoc (実装フェーズ以降)
  • 各種手順、お知らせ、環境メモ、ノウハウ
    • フォーマルに書くとちょっと重いモノ
  • 個人のメモ
    • 作業ログ。意外に一番役立つコンテンツ
  • 変更の通知メール
    • PUSH型に近い情報共有となり、伝達モレ減少
  • 暗黙知の共有化、プロジェクトの活性化の迅速化
【1-4】プロジェクト情報共有インフラのハードウェア、コストなど
  • ローコストを意識
  • Linuxで構成
    • OSはDebian GNU/Linux (Woody)。無償で利用可能
    • ハードウェアは一番安い1Uサーバーを選択。メモリは1Gに増強
      ※CVSサーバーでファイルを共有するにはメモリを大量に必要とするため、2Gにすべきだったかもしれない
    • 運用コストはほぼゼロ (障害ゼロ)
  • コストや工数
    ハードウェア 約25万円
    ソフトウェア (CVS、Mantis、 PukiWiki+OS) ゼロ
    OS&各製品セットアップ 約3人日
    運用系シェル準備 約2人日
    ネットワークなどの設定 約2人日

【2】開発・テスト支援ツール

【2-1】Eclipse
  • もはやデファクトともいえるIDEツール
【2-2】JUnit
  • DBテスト用にS2TestCase (Seasar2) を利用
    • DB更新処理のassert (テスト) が可能
    • 事前の値 (更新前) と期待値 (更新後) をExcelで用意
    • メソッド実行前に事前値ロード、実行後に期待値と比較

    説明図:S2TestCase (Seasar2) の利用

【2-3】Maven
  • ナイトリビルドにMavenを利用
    • Antより簡単で機能豊富なJavaビルドツール
    • ライブラリの自動ダウンロードが便利
    • 夜間テスト実行に利用

    説明図:Mavenを利用したナイトリビルド

【2-4】OpenSTA
  • HTTP負荷テストツール
    • http (s) を自動実行
    • 販売されているこの手のツールは高価
  • 負荷・性能以外でも利用可
    • 同時実行でわかる機能的なバグ検出 (時分秒でユニークなど)
    • テストデータの生成に便利 (何枚もの画面遷移で登録するデータ)
    • テストの自動化による工数削減・品質保証

【3】開発フレームワーク

  • オープンソース製品の部品を利用し、Webアプリケーションフレームワークを構築
  • ローコストなうえカスタマイズ可能
  • プロジェクトの初期にフレームワークを利用した大量生産方法決定
  • StrutsをベースにしたWebアプリケーション開発フレームワーク「ARKFW」を活用し生産性アップ

4.効果

当プロジェクトではオフショアを活用した分散環境での開発を行い、オープンソース製品フル活用の効果と相まって、低コストと高品質を実現いたしました。
  • 大幅なコスト削減
    オープンソース製品をフル活用することで、商用製品を利用した場合に比べて大幅にコスト削減
  • 情報共有を実現
    「プロジェクト情報共有インフラ」の設立により、当初課題であった要求・課題・ドキュメントの確実な管理を実現
  • 開発効率アップ
    プロジェクト初期から導入した「開発フレームワーク」や「開発・テスト支援ツール」による効率的で使いやすい環境が開発効率化に威力を発揮

お問い合わせ・資料請求

このページの先頭へ