社内SEになりました

社内SEは本当に楽なのか?ユーザー系IT企業とSierとの違いは?これからIT企業への就職や転職を考えている人むけに、ユーザー系IT企業から社内SEに40代で転職した筆者がITエンジニアの仕事内容やプロジェクト管理のノウハウ等をご紹介。

非機能要件(概要)

アプリケーションを開発する際に、要求定義や要件定義でシステムの機能についてはユーザー部門も関心を持って検討をしますが、機能以外の部分については疎かになりがちです。

このシステムの機能要件以外の要件全般を非機能要件と呼びます。

非機能要件には、「可用性」や「性能」、「セキュリティー」などが含まれ、例えば「可用性」について何も要件を決めなければ、ちょっとしたハード障害でもすぐに全停止してしまうようなシステムになってしまいます。

情報処理推進機構IPA)の「非機能要求グレード」では、非機能要件を「可用性」「性能・拡張性」「運用・保守性」「移行性」「セキュリティ」「システム環境・エコロジー」の6種類に分類しています。

日本情報システム・ユーザー協会(JUAS)の「非機能要求仕様定義ガイドライン」では、「機能性」「信頼性」「使用性」「効率性」「保守性」「移植性」「障害抑制性」「効果性」「運用性」「技術要件」の10種類に分類しています。

この”××性”という表現は非常にたくさんあり、他にもソフトウェア品質特性(ISO9126)とかRASIS、情報セキュリティーの7要素などがあります。

しかも同じ「××性」でも異なる意味で使われていたり、他の「××性」を含んでいたりして、真面目に整理しようとすると非常に厄介です。

例えば「信頼性」。JUASの「信頼性」は、ソフトウェア品質やシステムの安定提供を対象としていますが、情報セキュリティーの「信頼性」はソフトウェア品質のみを対象としています。情報セキュリティーの場合、後者のシステムの安定提供は「可用性」が対象としています。

また「回復性」は、IPAでは「可用性」、JUASでは「信頼性」に含まれていたり、IPAの「セキュリティー」は、JUASの「機能性」に含まれていたり、IPAの「可用性」に含まれる「災害対策(DR)」は、JUASの「運用性」に含まれていたり・・・。

とりあえず誤解を恐れず、分類の最上位項目をキーに一覧化してみました。

f:id:SystemEngineers:20200527173313p:plain

この魑魅魍魎とした非機能について、非機能要件って何を決めるのか、基盤設計にまで踏み込んで以下の独自分類(基本、IPAに準ずる)で説明していきたいと思います。

①可用性
②性能
③拡張性
④運用保守
⑤移行
⑥セキュリティ
⑦ユーザービリティ/アクセシビリティ
⑧システム環境