アプリ開発を成功させるためには、アプリの「品質」についての考え方が欠かせません。
本記事では、アプリの品質の中でも重要になってくる「機能要件」「非機能要件」について紹介しています。
IT経験が浅いが、「アプリを開発したい」「アプリ開発を委託したい」といった方にもわかりやすく解説しているのでご覧ください。
最初に、アプリにおいての「品質」とは何を意味するのか、そして「機能要件」と「非機能要件」がどのように関わるのかについて解説していきます。
知っておきたい「アプリの品質」の基本
アプリの品質とは何か?
「アプリの品質」と聞いて、あなたは何を思い浮かべますか?動作がスムーズであること、デザインが洗練されていること、セキュリティがしっかりしていることなど、さまざまな例があげられます。
ここでは、そのようなシステムやソフトウェアの品質を定義している国際規格:ISO/IEC25010をもとに8つの品質評価基準を解説していきます。
①機能適合性
アプリが求められた機能や要件にどれだけ適合しているかを表す。
②性能効率性
アプリがどれだけ効率的に動作するかを測る指標。
③互換性
アプリが他のシステムや環境とどれだけうまく動作するかを示す。
④使用性
ユーザーがアプリをどれだけ簡単に、直感的に使えるかを評価する。
⑤信頼性
アプリが予期しないエラーや不具合をどれだけ回避できるか、またその動作が安定しているかを示す。
⑥セキュリティ
アプリやデータがどれだけ安全に保護されているかを測る指標。
⑦保守性
アプリが変更や修正にどれだけ対応しやすいかを示す。
⑧移植性
アプリが異なる環境やプラットフォームに移行しやすいかを示す。
このような品質は、ユーザーの満足度やダウンロード数、アプリの維持率などに直結する重要な要素です。
そしてアプリの品質は、さまざまな方法で担保されています。 その中の1つが、機能要件と非機能要件の設計です。
- 機能要件と非機能要件がどのように品質にかかわるのか
アプリの品質は、開発段階でどれだけ具体的に「機能要件」と「非機能要件」を定義できるかにかかっています。- 機能要件とは?
アプリが「何をするべきか」を定義するもの。たとえば、ログイン機能や決済機能など、ユーザーが実際に利用する機能そのものです。 - 非機能要件とは?
アプリに求める機能要件以外を定義するもの。たとえば、システムの性能、可用性、保守・運用性、セキュリティなどです。
これらを明確にすることで、依頼者と開発者のミスコミュニケーションを防ぎ、想定通りのアプリを作ることが可能になります。
次の章では、アプリ開発の流れの中でこれらの要件がどのように関わるのかを解説します!
- 機能要件とは?
アプリ開発の流れを解説
先程紹介した機能要件・非機能要件については、アプリ開発の基本プロセスである「要件定義 → 設計 → 開発 → テスト → リリース」の流れの中でも要件定義の部分で主に検討します。
アプリ開発の流れについて詳しく知りたい方はこちらの記事をご覧ください。
要件定義では、アプリの目的やユーザーがシステムに求めるものを明確にしていきます。 その中で、システム化に必要な機能や性能を洗い出し、機能要件と非機能要件に落とし込んでいきます。
機能要件と非機能要件の違いは?
大きく言えば、機能要件は「アプリが何をするか」を定め、非機能要件は「機能以外に求めること」を定めます。定義だけの説明ではイメージもつきにくいと思うので、ここからは機能要件、非機能要件の二つを比較しながら、具体例も合わせて紹介していきます。
機能要件 | 非機能要件 | |
対象 | アプリの具体的な機能 | アプリの機能要件以外の全て |
ユーザ―視点 | ユーザーが直接操作するもの | ユーザーが直接は認識しないもの |
具体例 | ・商品検索機能 ・決済機能 ・ログイン機能 ・メッセージ機能 | ・システムの性能 ・可用性 ・セキュリティ ・保守・運用性 |
テスト方法 | 機能が期待通り動作するかのテスト | 性能やセキュリティが基準を満たしているのかの計測 |
表からもわかる通り特に非機能要件は、利用者側がイメージしにくいこともあり、要件定義において要求項目が漏れやすくなっていることには注意が必要です。
機能要件・非機能要件に落とし込む際のポイント
ここでは、機能要件と非機能要件に関して、実際にアプリ開発で失敗しないための品質管理のコツを紹介していきます。
①機能要件・非機能要件を明確に定義する
開発がスムーズに進むかどうかは、要件がどれだけ明確かにかかっています。以下の例のように、それぞれの要件を具体的に定義することが重要です。
- 機能要件の具体化 (例)商品検索機能であれば、検索結果のフィルタリングや分類機能も明記する。
- 非機能要件の具体化 (例)レスポンス速度は検索結果が2秒以内に表示されるといった測定可能な形で記述する。
②譲れない非機能要件の分類
IPA(独立行政法人 情報処理推進機構)が公表している、システム基盤に関する非機能要求に基づいて紹介していきます。非機能要求とは、まだ具体的な仕様である「非機能要件」に落とし込まれていない、抽象度の高いシステムの非機能部分に対する要求です。非機能要件を設定する際には、非機能要求をもとに整理していくことが必要です。
以下の項目や具体例から非機能要件への理解を深める際にご活用いただければと思います。
項目 | 非機能要求例 | 非機能要件例 |
可用性 | ・運用スケジュール(稼働時間・停止予定など) ・障害、災害時における稼働目標 | ・コスト見合いから24/365ではなく、日中のみの稼働とする ・障害が発生しても、重要業務は30分以内に再開可能であること |
性能・拡張性 | ・業務量および今後の増加見積もり ・システム化対象業務の特性(ピーク時、通常時、縮退時など) | ・ユーザー数が毎年20%増加しても、レスポンス時間は2秒以内を維持する ・将来的にピーク時トランザクションが現在の5倍になった場合でも、システムを停止せずにスケールアウト可能とする |
運用・保守性 | ・運用中に求められるシステム稼働レベル ・問題発生時の対応レベル | ・システムの平均故障間隔を1000時間以上に維持する ・問題発生時、一次対応は15分以内に実施し、エスカレーションは1時間以内に完了する |
移行性 | ・新システムへの移行期間および移行方法 ・移行対象資産の種類および移行量 | ・システムの移行はデータ移行、アプリケーション移行、ユーザー移行の3段階で実施する ・データベース移行時には、旧システムと新システムを2週間並行稼働させ、データ整合性を確認する |
セキュリティ | ・利用制限 ・不正アクセスの防止 | ・社内ネットワーク経由のみアクセスを許可し、社外からのアクセスにはVPNを必須化 ・ログイン試行回数が5回以上を超えるとアカウントがロックされ、管理者承認が必要とする |
システム環境・エコロジー | ・耐震/免震、重量/空間、温度/湿度、騒音など、システム環境に関する事項 ・CO²排出量や消費エネルギーなど、エコロジーに関する事項 | ・サーバールームが震度6強以上に耐える構造を持つ ・システムの総消費電力を30%削減する設計を採用する |
まとめ
最終的に、アプリ開発を成功させるポイントは、事前準備の徹底にあります。「品質」を意識し、要件を明確にした上で開発を行い、理想のアプリを目指しましょう。
アプリ開発を検討している方は、この記事で紹介した「品質」や「要件」の考え方をぜひ参考にしてみてください!
アプリ開発はGenAiにおまかせ!
株式会社GenAiでは、ノーコード/ローコードツールを用いたスピード感ある開発を得意領域としています。
スマホアプリ開発の際には、要件定義から設計、開発、テスト、リリースまで一貫したサポートを行い、迅速な対応と品質の確保に努めます。
「自社アプリを作成したい」「素早くアプリを用意してほしい」と考えている方は、ぜひ株式会社GenAiまでお問い合わせください。機能要件や非機能要件についてのお悩みなどにも寄り添いながら開発を行っています。
新規事業アプリ開発をリードいただけるエンジニアを募集!
また、GenAi株式会社ではエンジニアを募集中です。
GenAiには、自社プロダクト開発や、他社向けのアプリケーション開発などの案件があり、フルスタックエンジニアを目指せる環境が整っています。
現在のメンバーは、社員メンバーと業務委託含め20名ほど。人数がまだまだ少ないからこそ実現できるチャレンジや、裁量の大きさ、ひとりひとりが業務に集中できる環境です。
エンジニアは未経験から募集しているので、ぜひこちらから詳細をご覧ください。