スマホアプリ開発の工程のひとつ、設計について詳しく解説しています。設計作業の内容や、設計の段階でクライアントが注意する点などをまとめました。
スマホアプリにおける「設計」とは、文字通りその組み立てを考えることを言います。要件定義をベースにして、基本的な設計にあたる「外部設計」、それから詳細にあたる「内部設計」といった工程が含まれます。
基本設計は、アプリ開発の基礎となる部分の設計にあたります。クライアントへのヒアリングをもとに、ユーザーから見える部分の設計を行うので「外部設計」という呼ばれ方もします。
これはアプリに実装する機能をまとめた要件定義に従って進められます。アプリ開発の全体像を決めるものなので、要件定義はクライアントとの間でしっかりと合意が取れていることが大切です。
外部設計の大きな枠組みとしては、アプリの利用目的や環境、使用場面での操作の流れなど、アプリケーションのあり方そのものを設計する「全体設計」からスタートします。そこで定めたアプリを実現するために、開発や稼働に必要なインフラの設計をするのが「システム設計」。
動作するサーバや開発のフレームワークなどをここで定めていくことになります。最近はクラウド上でアプリの開発から稼働までを行うことが多いため、クラウド上でのシステム設計が行われることも珍しくありません。
ユーザーから見える部分として、画面設計も行います。ユーザーが実際に見たり触れたりする部分なので、ユーザー評価の大きな要素でもあります。デザイン性と使いやすさを考えて設計しますが、アプリに触れて機能を体験する「ユーザー体験」の観点からの設計も主流となっており、デザインはアプリ開発の重要な要素として認識されるようになりました。
そのほか、アプリの稼働に欠かせないデータベースの設計、アプリの内部と入出力されるデータをつなぐインターフェイスの設計、そしてアプリを日々安定稼働させるための運用設計なども行います。特にアプリをリリースしてから何らかの障害があった場合に、復旧プロセスを定義しておけば迅速に対応することが可能です。
この中にはバックアップなども含まれます。バージョンアップの計画なども含め、リリース後の運用設計も重要なポイントです。
最後に、開発したアプリのテスト方法を定めるテスト設計を行います。テストに使うツールや方法を定めておいて、テストを適切かつ効率よく行える体制を定義しておくことで、工期が無駄に長くなってしまうことを防ぎ、迅速な納品を可能にできます。
基本設計に対して、開発者側の視点からの設計が詳細設計にあたります。ユーザーから見えない内部の部分なので「内部設計」とも呼ばれます。
まず、アプリ開発を行う環境を設計します。サーバやデータベース、開発に使う言語やフレームワークを決め、チームで開発環境を統一するところからが内部設計のスタートです。
アプリに実装する機能について、それぞれの機能を最小単位まで分割していきます。小さい単位の動作を行うプログラムを作成してそれを組み合わせるので、独立した最小単位の機能に分割することが必要なのです。
この機能分割設計の工程を経て、それぞれを組み合わせ処理手順やワークフローをつくりあげると、優先順位の高い部分がはっきりします。分割した機能をフローにして組み立てる工程はモジュール設計と呼ばれます。
データの入出力の流れ、分割したモジュールの結合、そしてモジュール間でのデータの受け渡しなど、内部の設計の全体図を定めるのが内部データ設計。ここまでがアプリ開発の設計における一般的な手順となります。
アプリ開発の設計は、基本的には設計会社が行うものなので、実際の作業についてクライアント側が注意する点はありません。もし開発会社がこんなことをしていたら注意が必要、というポイントを以下にまとめてみましょう。
設計が定まる前に開発を始めてしまい、設計と開発が同時に進んでいる場合です。納期が短すぎる場合に、見切り発車で開発を進めてしまいがちになることも。設計の詳細が定まってない時点で開発を始めてしまうと、トラブルがあった場合や後々の改修の段階で手戻りが多くなり、かえって納期が遅くなってしまうことがあります。
もともとの見積りで出していた予算から大きく膨れ上がっていて、予算度外視の設計になっていないか確認しましょう。機能などをできるだけ実現するために、予算が増えてしまっては発注側としては困ってしまいます。
スマホアプリ開発を手がけるベンダーは多数ありますが、それぞれ得意とする分野は異なります。このサイトでは、スマホアプリの設計に強い会社をピックアップして各社の特徴を紹介するページもご用意しました。ぜひそちらもご一読ください。
ここでは、「PoC(Proof of Concept:概念実証)や実現性」に強いベンダー、「連携やインフラに関する技術力と提案力」に優れたベンダー、「低コストの設計・保守」を可能にするベンダーをそれぞれ紹介します。