License
システム開発プロセスのキーワードを詳細解説!【技術士のHOTワードWeb 第1回】
「総合技術監理部門」の合格につながる
2024.04.09
第1回
ウォーターフォール、V字モデル、アジャイル、アジャイルソフトウエア開発宣言、スクラム開発
技術士における21の技術部門のなかで、一線を画すカテゴリーである総合技術監理部門。時々刻々と変化する最新テクノロジーの知識を吸収する専門性だけでなく、さまざまな分野を総合的に判断できるマネジメント能力も求められる。まさに、スキルアップのために取得する部門だ。
本連載は、総合技術監理部門の試験に必要な「キーワード集」(文部科学省が公表)のなかから、HOTなキーワードを徹底解説するものである。今回はキーワード集2024で新たに追加された「システム開発プロセス」に関連する5つのキーワードを取り上げる。
【OhmshaOnlineで販売中!】
令和6年度(2024年度)技術士第一次試験「基礎・適性科目」模範解答PDF
詳細は▶こちらから
(1)ウォーターフォール
ウォーターフォール(water fall)型システム開発プロセスは、図1や表1に示すように、情報システム開発を複数の工程に分割し、滝のように上流から下流へ順番に作業を進めていく手法である。各工程は明確に区切られ、原則として前の工程が完了してから次の工程へ進む。
メリット
・各工程の役割が明確で、責任分担がしやすい。
・工程ごとの成果物が明確で、進捗管理がしやすい。
・大規模なシステム開発に適している。
デメリット
・要求変更に柔軟に対応できない。
・上流工程でミスがあると、修正に時間がかかる。
・初期段階ではシステムの全体像が把握しにくい。


(2)V字モデル
V字モデルは情報システム開発における開発工程とテスト工程を対応させたモデルで、図2の左側が開発工程、右側がテスト工程を表している。
メリット
・開発工程とテスト工程を明確に定義できる。
・各開発工程対応のテスト工程を事前に設計できる。
・早期から品質を確保できる。
・問題の発生原因を特定しやすい。
デメリット
・要求変更に柔軟に対応できない。
・仕様変更、設計変更に柔軟に対応できない。
・開発期間が短いプロジェクトに向かない。

(3)アジャイル
アジャイル(agile)型はチームより個人の技量を活用して、柔軟に開発するプロセスである。個々のプロジェクトメンバーが全体像をつかめる程度のシステム開発に向き、短いサイクルで開発を繰り返しながら、顧客やユーザーからのフィードバックを反映していく開発手法である。日本語では「俊敏な開発」という意味である。
グローバルIT企業の情報システムはアジャイル開発が採用されていると広く認識されている。筆者は西日本のエネルギー企業のプロジェクトに実力があり、自律できるメンバーを選んで、東京からチームとして参画。顧客とともにアジャイル開発を実施し、顧客満足を得ることができた。
メリット
・高品質なソフトウエアを開発できる。
・顧客満足度を向上できる。
・開発期間を短縮できる。
・コストを削減できる。
・陳腐化リスクを軽減できる。
デメリット
・チームメンバーの高いスキルが必要である。
・ユーザーと密なコミュニケーションが必要である。
・すべての開発に適しているわけではない。
(4)アジャイルソフトウエア開発宣言
アジャイルソフトウエア開発宣言(Manifesto for Agile Software Development)は、2001年に17名のソフトウエア開発者によって発表された文書である。従来のウォーターフォール型開発手法の問題点を克服するために、アジャイル開発と呼ばれる新しいソフトウエア開発方法論の価値観と原則をまとめたものである。
・アジャイル開発宣言の価値観
アジャイル開発宣言は12の原則を発表している。これを4つの価値観として表2にまとめた。後者の価値をより重視すると表現しているが、決して前者の価値がないわけではない。
・アジャイル開発宣言の影響
アジャイル開発宣言はソフトウエア開発業界に大きな影響を与え、従来のウォーターフォール型開発手法から、アジャイル開発手法へと多くのプロジェクトが移行した。

(5)スクラム開発
スクラム開発はアジャイル開発の手法の1つである。ラグビーのスクラムのように、個々の力の合計以上の力を出して、短期間で成果を出すことに重点を置いている。
スクラム開発には表3に示す特徴があり、顧客満足度を向上させ、変化に迅速に対応したいプロジェクトに適している。プロジェクトの特性に合わせて、適切な開発手法を選択することが重要である。
総監試験問題R4Ⅰ-1-7では、ウォーターフォール型開発、V字モデル開発、アジャイル開発に関する説明文の適切、不適切が問われた。

ここからはOHM3月号で掲載できなかった「システムの高信頼化」に関連する3つのキーワードを取り上げる。
(1)安全確認型システム/危険検出型システム
安全確認型システムでは、システム(装置)が安全の確認を行って安全情報を発信し、それに基づいて作業者、もしくは機械に所定の作業を許可するシステム構成としている。
危険検出型システムは危険であることをセンサなどで検出し、危険を回避するタイプである。例えば、危険が検出されたら、クルマにブレーキをかけたり、ロボットを止めたりする危険回避信号を出す安全装置である。
「安全である」と「危険があると判断していない」とは、イコールではないことに注意が必要である。
(2)安全立証
安全立証とは、製品やシステムが安全性を満たしていることを論理的に証明する活動である。単純に安全性を主張するだけでなく、客観的な根拠に基づいて安全性を裏づけることが重要である。
これまでの安全対策は過去の事故経験に基づいて安全対策を施すという経験則に依存していたが、この方法では想定外の事故を防ぐことはできない。
つまり、「事故が起きていないから安全」ではなく、「製品やシステムの潜在的な危険性を分析し、論理的に安全性を証明できるから安全」を確保できるのである。
(3)LOPA(防護層解析)
LOPA(Layer of Protection Analysis)とは、プロセス安全管理の一環として、リスク低減策(防護層)を体系的に評価し、その防護層が適切であるかを判断する手法である。LOPAは一般的に表4の手順で行われる。
筆者は大学の教員時代、学生とともに食品製造会社を見学し、特に混入(contamination)リスクの低減策の説明を受けたことがある。LOPAは製薬プラント、石油およびガスプラントなどでもリスク低減に役立っている。
例えば、自然災害(風水害、震災)やインフラ(電気、ガス、水道、情報)の一時的な停止が発生したときでも、製品への異物混入を防止する防護層の解析などを実施している。

[参考]
独立行政法人 情報処理推進機構
「アジャイルソフトウェア開発宣言の読みとき方」
独立行政法人 情報処理推進機構、2020年
「信頼性・安全性工学」
道上 勉・向殿政男[共編著]、株式会社オーム社、2009年
文/南野 猛(技術士:情報工学、総合技術監理)