アプリケーションアーキテクチャを明確にするには

アプリケーションアーキテクチャを明確にするには

アプリケーションアーキテクチャとはU Iやプログラミング言語の設定です。一見どのような言語などを扱うかはシステム開発において最初に決めることかと思われがちですが、それは開発手順の説明の際にオーディエンスが理解しやすくするためが大きいです。実際にはシステム開発の提案をする際に最後に決めます。

この項はそのアプリケーションアーキテクチャを明確にする考え方を説明します。

アプリケーションアーキテクチャの位置付け

非機能要件を満たすシステムアーキテクチャを基盤とし、機能要件を満たす条件を検討します。ここでは使用プログラミング言語、データフォーマット、命名規則、通信手段、コーディング規約、UI標準、プロセスモデル標準、データモデル標準、モデリングツールを使う場合はその使用標準を検討します。

標準に関しては、他システムで採用しているものを踏襲するのか、新たに作成するのかをきちんと整理して決める必要があります。設計標準をアーキテクチャとして捉えるべきか多々考えが別れるところではありますが、アーキテクチャの方向性が定まってきたら、併せて検討に入ります。

「基盤」が定まったら、その標準的な「使い方」までを、可能な限り検討することになります。前述したとおり、クラウドサービスを採用した場合には、システムアーキテクチャの方向性によりアプリケーションアーキテクチャが決まってしまう場合があります。その場合は当然のことながら、制約を受け入れた上で検討を行います。

設計標準の検討

UI画面、画面遷移パターンの標準化を、エンタープライズ系システム、コンシューマー向けシステム、その混合のシステムごとに進め、UI画面レイアウト標準と画面遷移標準を規定します。業務プロセスの5W2H定義を基にした機能要件において、マルチデバイスの使用を前提とするなら、デバイスごとのUI標準を考えます。当たり前のことですが、固定のPCやノート PCと、スマホやタブレットでは、機器、通信環境、利用現環境の特性が異なるため、標準は異なります。

ここでUIの標準を決めておくことにより、結果的に後々工数の削減につながります。またUIの一貫性を保つことが可能になり、ユーザーが混乱しない快適な操作性を担保できます。標準を決めるにあたっては、画面パターンごとに、いかにUIを「シンプル」に実現するかを考えます。そして、「シンプルさ」を考慮して定めたUI標準が、画面遷移を考慮した際に違和感がないかを確認します。

プロセスモデル標準とデータモデル標準

業務フロー表記、業務プロセスの5W2H定義、仕様記述、データモデル表記/定義に関しても標準を決めておきます。モデル作成時に標準がないと、モデルの品質に明らかにばらつきが生じます。さらにモデルの品質低下が、要件定義自体の品質低下につながります。

明確にすべきアプリケーションアーキテクチャ

明確化すべきアプリケーションアーキテクチャには以下の各項があります。

・処理形態(オンライン・バッチなど)
・アプリケーション方針(オンライン・バッチ連動方法、どこまでサーバー側で処理するか、機能配置等)
・サーバー側プログラミング言語·フレームワークの使用
・DB操作方法通信プロトコル
・クライアント側プログラミング言語
・ユーザーアクションの検知方法
・データ保持方法・チェック方法
・画面遷移方法
・排他制御方式(楽観ロック、悲観ロック)
・取消方法
・ログ

最低限これらについて、方向性を決めていきます。現時点におけるアプリケーションアーキテクチャの方向性を明確化していき、一旦方向性を確定し、「アーキテクチャ定義書」にまとめておきます。なお、上記の各項を定義する際、守るべき順番のようなものはありません。それぞれが明確になればよいので、ここでは「手順」を示すことはしません。

簡単に作れることを恐れないで

エンタープライズ系システムに限った話かもしれませんが、 機能により、簡易言語の使用を検討してみましょう。単純な機能に、複雑な (プライオリティの高い)機能と同じ工数をかける必要はありません。同時実行性が少ない、使用頻度が低い、けれども開発せざるを得ない機能ならば、簡易に作ることを検討してもよいでしょう。

アプリケーションアーキテクチャに関わる話ですので、プログラミング言語の統一性の問題を考慮する必要はありますが、アプリケーション開発の選択肢は、昔と比較にならないほど増えています。用途に応じてプログラミング言語を使い分けることができる時代です。業務プロセスの5W2Hを定義した後、実際にどのように実装するか、工数や品質面にメリットがあるのか、実施を検討します。

企業組織には様々な業務プロセスが存在します。それらをうまくITシステムが支援できれば、ビジネスの幅が大きく広がることもあります。また、投資効果測定等の結果、今回の開発対象外となった業務プロセスについても、個別システム開発、個別パッケージ適用(クラウドサービスを含む)により対応可能とする余地は残しておきましょう。現在、ビジネスの変化は飛躍的に速くなっています。

外部インタフェースだけでも用意して、システムとして対応可能な形は整えておくことが重要です。

 

テックカテゴリの最新記事