Our Methodology:
私たちはお引き受けしたプロジェクトは、適切に組織化し、綿密な計画によって実行します。すべてのプロジェクトにおいて以下(図1)に示すチーム構造が規定されています。

プロジェクトはいくつかの開発フェーズ、そして開発ライフサイクルを通して実行されます(図2)。 そのフェーズを以下に示します。

SPECIFICATION (Requirement Analysis): This is where we do an in-depth analysis of the client's requirements. We try to answer the following questions:
- 仕様(要求分析): ここで私たちはクライアントの要求を深く分析します。 私たちは以下の質問を明確にします。
- 入力データは?
- どのデータが有効でどのデータが無効?
- ソフトウェアを使用するのは誰?
- そしてどのユーザインタフェース(GUI) を実行?
- 検出されるエラーとエラーメッセージの種類は?
- 可能な前提は? 何か特別なケースはあるか?
- 出力の種類は?
- 必要なドキュメンテーションは?
- 将来可能なエンハンスメントは?
よりよくコンセプトを理解するために、私たちは実際のアプリケーションのプロトタイプを開発します。これは、クライアントからの要求への解決策を提供することも簡単にします。
設計: 仕様フェーズの次は問題解決の設計、つまりアプリケーションフローです。プロジェクトをいくつかのモジュールに解体することにより、より効率的にそして簡単に設計を行なうことが可能になります。 私たちは各モジュールの目的、前提、入力、出力を指定します。
リスク分析: ソフトウェアの開発にはリスクが伴います。リスクには全ソフトウェアプロジェクトに共通のものと、そうでないものとがあります。そして、予測可能なリスク と、そうでないものとがあります。 プロジェクトのスケジュールまたコストそして目的に影響を与えないようにするため、 私たちは予測可能な リスクの詳細分析を行ないます。
検証: ここで 設計のモジュール方式 、再利用と拡張性に関して、設計をレビューし検証します。 さらに、アルゴリズムを使用している場合は、それも検証します。
コーディング: このフェーズではプログラミング言語への翻訳と構文エラーの解決が行われます。 時間と経験によって開発してきたコーディング基準に従って行ないます。
テスティング: このフェーズにおいて、 論理的なエラーを最大限に解決します。テストケースはマトリックスフォームに 生成されます。テスティングはJUnit等の自動ツールを使用して実行します。これによりテストスタブが コードと共に生成されます。統合テストプランも生成され、事前定義クオリティ基準に対してエラーがトラックされます。テスティングはサイエンスだけではな くアートでもある、と信じています。
精練: 上記の全フェーズにより、要求通りにテストおよびデバッグしたワーキングプログラムが完成します。ただし、小さな差異に対する精練が必要です。
オンサイトテスティング: 私ども開発センターで全てのテスティングが完了しても、クライアント側でアプリケーションをインストールした際に問題が発生する場合もあります。そのため オンサイトテスティングを行ない、当社側のエンジニアがすべての問題を解決いたします。 これにより、納品後に問題が発生する可能性はなくなります。
製造(納品と承認): アプリケーションが完了し、正常な実行を確認したあと、最終的な納品を行ないます。そして、クライアント側はそれに満足した場合に承認のドキュメントにサインをします。
サポート: アプリケーションのユーザがテスティングフェーズ中にはなかった制限やエラーを検出する可能性もあります。 このエラーを修正することはアプリケーション維持の一部までです。 バグが見つかった場合、私たちは製品の納品から一年間、無料で修正を行ないます。既存のアプリケーションをエンハンスメントする場合や機能変更を行なう場 合は、新たなプロジェクトとして取り扱います。
ドキュメンテーション: ソフトウェア開発ライフサイクル図が示すように、ドキュメンテーションは全ソフトウェア開発ライフサイクルの核です。 これは個別のフェーズではなく、開発における各フェーズに統合されます。綿密なドキュメンテーションがプロジェクト成功の鍵です。


