イチから全部作ってみよう(12)要求仕様書の異常系を階層構造を使って洗い出す:山浦恒央の“くみこみ”な話(181)(3/3 ページ)
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第12回は、これまでに作成したたこ焼き屋模擬店の要求仕様書における異常系の洗い出しを行う。
7.異常系の洗い出し結果
7.1 大項目
洗い出した結果を大きな項目として図2に示します。
筆者は、運営、販売、製造、会計、外部要因の5つに分割して異常系を考えることとしました。
7.2 詳細
大項目の中の詳細な異常系をまとめた結果を図3に示します。
上記では、例えば、「不良品を作った場合」「火傷をする」といった場合も考察しています。実際の「たこ焼き模擬店」の運営では、「異常系は、あらかじめ対処法は決めず、実際に発生してから、常識と良識で臨機応変に(あるいは、テキトーに)対応する」ことになるでしょう。
正常ケースでも、日常生活では、毎日、毎時、毎分、細かい判断をしています。朝起きて学校へ行くまで「目覚まし時計が鳴って、あと1分だけ寝ていようか?」「どのシャツを着ようか?」「歯磨きは十分か?」「髪形は見苦しくないか?」「バスの時間が迫っているので、走ろうか?」「前から来る歩行者を右に避けるか、左に避けるか?」「この地下鉄の車両は満員なので、隣の車両から乗ろうか?」など、無意識のうちに大量の判断をしています。プログラミングでは、この全ての判断を考慮しなければなりません。異常が発生した場合も同様です。そう考えると、朝、起床して学校へ行くのは、簡単に思えますが、実は、おびただしい数の判断を下しているのです。
文化祭での模擬店とはいえ、さまざまな異常系を考える必要がありますね。具体的な対応策は、次回以降で検討します。
8.おわりに
今回は、異常系を考察する上でのポイントと、たこ焼き模擬店を題材として、もう一歩進めた異常系を洗い出しました。
異常系を考えるとキリがありませんが、コンピュータは、プログラミングした通りにしか動作せず、臨機応変に動作しません。今回は、階層構造で異常系を洗い出す方法を紹介しました。たかが文化祭の模擬店とはいえ、学生さんは、想定外の事象に直面しても、臨機応変に対応していて素晴らしいと思います。
なお、階層構造で異常系を考える方法は、FTA(Fault Tree Analysis)でも応用しているので、興味がある人は調べてもよいでしょう。
次回は、洗い出した異常系を分析し、対策するか/諦めるかを考察します。
山浦先生執筆の書籍が販売中です!
本連載で取り上げた「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
- イチから全部作ってみよう(11)たこ焼き屋模擬店の要求仕様書を抜け漏れなく作る
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第11回は、前回「機能分割」を用いて作成したたこ焼き屋の模擬店をの要求仕様書を抜け漏れのないようにブラッシュアップする。 - イチから全部作ってみよう(10)トヨタとたこ焼き屋模擬店で理解する「機能分割」
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第10回は、要求仕様書の作成に役立つ「機能分割」について、トヨタの組織と高校のたこ焼き屋の模擬店を例に解説する。 - イチから全部作ってみよう(9)ジャンケンで理解する要求仕様書作成の難しさ
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第9回は、「ヒアリング」した内容をまとめる「要求仕様書作成」について、情報工学専攻の大学3年生でも悩む「ジャンケンの要求仕様書」を例にその難しさを解説します。 - イチから全部作ってみよう(8)発注側の要望を受けて始まる「ヒアリング」の例題
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第8回は、正しい要求仕様書に向けた第一歩となる「ヒアリング」について具体的な例題を使って解説します。 - イチから全部作ってみよう(7)正しい要求仕様書の第一歩となるヒアリングの手順
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第7回は、要求仕様フェーズで作り上げる正しい要求仕様書に向けた第一歩となる「ヒアリング」について解説します。