ITごはん

ITを活用したい人、ITで何か作りたい人、そんなITでごはんを食べる人のためのブログ

【システム開発】システムを評価する6つの観点

最近はめっきり春めいて、過ごしやすくなってきましたね。

今回は弊社にも問い合わせ依頼の多い システム評価についてのエントリーです。

システム評価の観点を理解しておくことは、

 出来上がったシステムを評価する、
 構想しているシステムの要件・仕様を検討する

といった場合に非常に便利です。 それでは、システム評価に「つかえる」6つの観点を紹介します。

機能性

システムは当たり前かもしれませんが、 目的を持って開発され、運用されます。 機能性とは、そのシステムの目的を達成するために、 必要な機能を実装している度合いといえます。

例えば、顧客管理システムを開発したとします。 その顧客管理システムは、 顧客名簿より、名前での検索はできます。 ただし、顧客の出身地、年齢などは検索できません。 (それらの情報は保持はしています)

このような場合、顧客の出身地、年齢などを検索できる他のシステムと 比べて、機能性は低いということになります。

また、正確性もこの中に含まれます。 操作マニュアルなどにもとづいて、操作を行った際に、 正しく(不具合なく)、出力家かを返してくれるかも、 機能性の一部です。

信頼性

信頼性とは、システムが障害などでサービスを停止することなく、 正しく動作し続ける程度を示します。 また、障害が起きた際に、素早く修理し、サービスの提供を再開できるかも、 信頼性の一部となります。

また、一部が障害が起きても、システム全体が止まること無く、 その一部以外は正しく動作できることも重要です。(障害許容性)

具体的には、平均故障間隔や、平均修理時間稼働率(総稼働時間に対して、正しく稼働している割合) といった指標により、信頼性は図られることとなります。

使用性

使用性は一言でいって、「使いやすさ」となります。 単純にWeb画面が使いやすいとか、 その操作を習得するのが容易であるとか、 また、インストール(導入)が容易であることも、 使用性の要素となります。

また、近年ではスマホアプリや一般消費者向けのWebサイトなどでは、 ユーザーインターフェース(UI)や、 ユーザーエクスピリエンス(UX)といって、 ユーザーが直感的に、気持ちよく使いこなすことができる、 画面や操作の設計を行いましょうというトレンドが強くなっています。

使用性は、機能性や信頼性などの指標と違って、パッと見で分かります、 スマホアプリや一般消費者向けのWebサイトでは、 ユーザーはその短い時間で、そのシステムを使うか使うかどうか判断します。 そのことはつまり、他社との競争の際に、使用性が差別化要因となることになります。

効率性

効率性とは、そのシステムが目的を達成するために、 使用する資源量の効率をいいます。

たとえば、ある操作をして、その結果の反応が表示されるまでの時間(時間効率性)や、 ある機能を実行した際のCPUやメモリの消費量が、 少なければ少ないほど、効率が良いということになります。

保守性

システムは、開発に要する時間よりも、実際に使用される(運用される)時間の方が、 大幅に長いです。 この使用される期間において、保守(メンテナンス)がおこなわれるわけですが、 その保守のしやすさが保守性です。

例えば、何か不具合がユーザーから報告されたとします。 その場合、どこに原因があるか突き詰めないといけませんが、 その原因を発見しやすさや、 システムを修正や改良する際の、変更のしやすさが 保守性になります。

移植性

システムが開発される際は、そのシステムが正しく動く特定の環境が想定されます。 環境とは、そのシステムがWindowsで動くのか、スマホで動くのか、 日本語で動くのか、利用される場所はどこかといった、ものです。 移植性は、その当初予定の特定の環境を変更する際に、対応のしやすさを表します。

例をあげると、これまでWindows7で動いていたシステムが、 Windows8が登場し、Windows8でも動くようにするために、 変更を行う際の対応のしやすさが、移植性です。

これは開発の際に意識されにくいですが、 会社が継続的にそのシステムを利用・発展させていこうという想いがある場合は、 特に意識しなければいけません。 (移植性は捨てて、開発コストを抑えるという判断もあるかと思います)

さいごに

実は上記で挙げた項目はソフトウェア品質特性として、 よく知られているものになります。

より各項目の詳細は、以下のWikipediaが参考になるでしょう。

http://ja.wikipedia.org/wiki/ISO_9126

また、大企業では、より専門的にはシステム監査といって、 第三者(システム監査人)が、上記のような観点から、多方面から分析・評価することも行われます。

ソフトウェア品質特性は、知識としてだけでなく、 冒頭で述べたシステム構想・企画や、 仕様の抜け漏れをチェックする際にも、非常に使える観点ですので、 是非、利用してみて下さい。