こんにちは、TF's appsです。
引き続き【プログラミング教育】に紹介します。
今回は【仕様設計】についてです。
↓↓興味のある方は関連記事があります
では本題に入ります。
【仕様】とは・・・
特に、作るものに関し要求する、特定の形状・構造・寸法・成分・精度・性能・製造法・試験方法などの規定。
プログラミングの世界においても同様で「要求」に対するソフトの性能と言えるでしょう。
「ソフトの性能?」
作り手の立場からしたらここまでの性能は保証するというものです。
つまりは品質を保証する条件提示と言えます。
使い手の立場からしてみたら安心だと思う条件であり、時には不満と思う条件にもなります。
<例1:気に入ったPCゲームがありインストールしようとしたが、説明文を見ると対象OSがwindows8となっている。>
◆作り手の立場
「ゲームが正常に動作できるのはwindows8」までと条件付けをした。
■使い手の立場
安心「windows8ユーザーの場合は動作保証内だ」
不満「windows10ユーザーの場合はなんだゲームできないんだ」
<例2:ソーセージを購入。賞味期限が2週間後となっている。>
◆作り手の立場
「美味しく食べれる期間は今日から二週間」までと条件付けをした。
■使い手の立場
安心「二週間までは美味しく食べれる」
不満「1カ月は食べれると思っていた」
いずれにしても「仕様」は 製品としての性能を提示する大事なものです。
ここで重要なことはソフトにおいて「仕様範囲内」であるのにその性能を満たさないものは「バグ」となります。
では「仕様範囲外」であるものに対してその性能を満たさないものは「性能?バグ?」どちらでしょうか?
仕様範囲外の性能をいかに「仕様設計」するかで性能にもなるし、バグにもなると言えます。
では具体例をどうぞ
<例3:デジタル気温計を作って下さい>
(仕様)-10~40度まで計測が可能です
→ 20度で稀に正常に気温が表示できない場合ある(バグ)
→ 41度の時「-41度」と表示してしまう(性能?バグ?)
あなたが作り手だった場合、仕様範囲外だし、41度は「-41度」になっても仕方がないと、使い手に説明できるでしょうか!?
できませんよね?常識的に考えたらバグになりますよね?
<例1>でwindows10ユーザーが誤ってwindow8のソフトをインストールし、以降、PCが全く起動できなくなったら怒りますよね?
<例2>で賞味期限2週間のソーセージを15日後に食べて、大病になったら怒りますよね?
<例3:デジタル気温計>はどう仕様設計すれば良かったのか?
(要求)デジタル気温計を作って下さい
(仕様)-10~40度まで計測が可能です、範囲外は「ERR=エラー」と表示します。
→使い手は41度で計測した場合「ERR」と表示され納得できますよね
仕様設計においては、性能保証する条件を決定することは勿論大事ですが、性能範囲外をどれだけ想定し設計するかも非常に重要だという事です。
仕様はバグと表裏一体と言えます。
作り手はいかに仕様設計の段階で「想定外を想像し設計できるか」、これがその製品の性能に大きく関わってきます。
私の経験上、設計者の力量によって大きく変わってくるところです。一人の力で無理なら二人、三人・・・の力を合わせて仕様設計する。これが重要だと考えます。
如何でしたでしょうか?
今回の記事も【プログラミング教育】について考えて観ました。
ではまた次回お会いしましょう♪