要求の定義と仕様化
ソフトウェア開発の最上流工程である「要求定義」で誤りがあると、いくらその後の設計が正しく行われたとしても、やり直しが必要となります。一般的に、不具合の発見が遅れるほど、それを解決するための工数が多く発生すると言われ、上流での問題を早く解決することが、生産性を上げるための重要なポイントと言えます。
エクスモーションでは、「要求定義」の方法として『USDM』を採用しています。
『USDM』は、「要求を整理して階層化する」「要求に対しての仕様を記述する」「要求の理由を明記する」など、ポイントがいくつかあります。
そのポイントをふまえた「要求定義」を行うことで、上流での問題を早く解決することにつながります。
開発現場には[要求]はなく、「製品スペック」か「制御方法や機能の仕様」 しかない
一般的な組込みソフトウェアの開発現場では、「要求」と言われるものはほとんど記述されていません。あるものと言えば、製品スペックか、タイミングチャートなどの制御に関する細かな仕様や機能の仕様を記載したものだけです。そのため、その仕様がどのような「要求」に対応したものなのか、仕様にヌケモレがないかが判断できません。その結果、仕様の不備がソフトウェアに不具合として混入してしまいます。
なぜ組込みソフトウェアの開発現場では「要求」が記述されないのでしょうか?
それは組込みソフトウェアの開発では量産開発の前に先行開発や要素技術開発が行われることが多く、そこで決められた仕様や成果物を基に量産開発が行われるためです。また、量産開発でも設計、実装を行いながら仕様を決めていくといったやり方で開発が進むため、ソフトウェアを統合してテストするまで仕様の矛盾やヌケモレが発見されないという問題も発生します。
先行開発や要素技術開発の仕様から[要求]を抽出する
仕様の目的や意図を明確にしたり、仕様の矛盾やヌケモレを発見するためには、先行開発や要素技術開発の仕様を量産開発でそのまま使うのではなく、量産開発で対応すべき項目も加味した上で「要求」を抽出・定義し、それらと先行開発や要素技術開発の仕様を基に、改めて量産開発のための仕様を検討していく必要があります。
『USDM』では、これら仕様をグルーピングしてボトムアップ的に要求を導き出すことができます。更に、その「要求」の理由を明確にすることで、仕様のヌケモレや矛盾の発見につながります。
そして、設計、実装を開始する前に『USDM』を使って仕様を充分検討し、この段階で仕様を決定してしまうことで、仕様の矛盾やヌケモレによる手戻りを最低限に抑えることができます。ここで、仕様の作成は設計工程の作業だと考える方もいるかもしれません。しかし、本来なら設計は仕様が決まっていなければ開始できないはずです。なぜなら、仕様とは「要求」を実現するためのシステムの具体的な動きや制限を表したもので、設計とはその仕様をどのような構成で実現するか、それらの構成要素がどのような役割をもち、構成要素間でどのような相互作用をするかを検討する工程だからです。
また、ソフトウェアコンポーネント設計の工程に入るとコンポーネントごとに担当者や部署が分かれている場合も多いため、各担当者がコンポーネントの設計を行いながら仕様を決めてしまうと、ひとつの機能の実現に関係する複数のコンポーネント担当者の間で、コミュニケーションミスが発生しやすくなり、それが不具合につながってしまいます。
『USDM』を使って、「要求」と「仕様」を「要求仕様書」として文書化し、それを担当者間の共通認識として開発を進めることで、上流だけでなく下流においても、余計な問題や不具合の発生を抑えることができるのです。
コンサルタントが教える成功の秘訣
私が関与した開発現場では、開発のインプットとして具体的な制御方法について細かく記載したものしかありませんでした。そのため、仕様の妥当性が分からず、今の設計構造にも問題があるのではないかという不安を抱えていました。
そこで、細かい制御仕様を抽象化して「要求」を出し、その「要求」をブレークダウンする形で仕様を定義しました。『USDM』を使うことで、「要求」を満足するのに十分な仕様であることが確認でき、更に、設計構造を見直すこともできるようになりました。
良い「要求仕様」を作るためには、「要求」と「仕様」を切り離す必要があります。そのためには、制御仕様を抽象化して「要求」を得ることが必要です。しかし、長年細かな制御仕様に慣れている開発者の方には抽象化が難しいようです。その分野こそエクスモーションの強みです。ぜひ、お任せください。
USDMによる要求の定義と仕様化 関連サービス
人材育成
「要求」の定義と仕様化の基礎的な方法を身につけて頂くため、『USDM』で「要求仕様書」を作成する演習を中心としたトレーニングを実施します。
EurekaBoxは、オンラインで学べる総合学習&実践プラットフォームです。このコースでは、これからUSDMを学んでいきたいという人から、実践している人に向けて、コンテンツを用意しています。USDMの基礎から応用までをわかりやすく解説します。
適用支援
要求仕様書作成サービス
「要求仕様書」を作成したいのに作成する工数が取れないといったお客様に向けて、エクスモーションが制御仕様書や機能仕様書などの既存資料の調査や開発者へのヒアリングを行って「要求仕様書」を作成します。
お客様自身で「要求」の定義や仕様化のスキルを身につけたい場合も、エクスモーションが作成した「要求仕様書」をお手本として学習できますので、技術導入の最初のステップとしてもお勧めです。
適用支援
要求仕様書作成手法導入支援サービス
「要求」の定義や仕様化に必要な知識や技術の教育を実施したり、開発プロセスに「要求定義」の工程を組み込むための検討をすることで、お客様の組織へ「要求」の定義と仕様化のための技術を導入するお手伝いをします。
適用支援
当社がこれまでに培ったUSDMのノウハウに基づき、お客様がUSDMで作成された要求仕様書の内容を評価し、改善点をレポートいたします。
コンテンツ
USDMという方法を使って要求と仕様を定義する際に、人には聞きにくいUSDM関連の用語をまとめています。
USDM関連コラム
USDMによる要求仕様書の改善を起点に、全社レベルの改善まで活動を拡大(コマツ様)
局所的な課題解決ではなく全体最適を見通したご支援 コマツ 髙木様 弊社では制御ソフト開発において要求...
非機能要求の導出~USDMによる要求の定義と仕様化
製品の使い方が分かりにくいというクレームや、派生開発において機能が追加・変更しにくかったりといった、...
要求の形式検証~USDMによる要求の定義と仕様化
要求定義の段階で不具合を修正すれば手戻り工数を大幅に削減できますが、その手段はレビューが中心であり、...
USDM関連コラム オンライン学習「EurekaBox(ユーリカボックス)」
ソフトウェア開発の上流工程が学べるオンライン学習「Eureka Box」
全てのコンテンツがトップ企業を担当する現役エンジニアの知見が詰まったもの。
「Eureka Box」でしか公開していないコラムを一部ご確認いただけます。
頑張ってるけど、ちっとも楽にならない…何で?
すぐに成果を出すために頑張ってるけど、自前ではもう限界
効果的だろうけど高額なコンサルには手がでない…
あなたに合う一番最適な解決方法を
エクスモーションがご提案いたします。
USDM要求の定義と仕様化に関する記事を見る
他のソリューションを見る
モデリング プロダクトライン開発
最新コラム
CASE時代に不可欠なサイバーセキュリティ& 機能安全
自動車産業における「CASE」は、便利さや効率性を向上させる一方で、セキュリティや安全上の問題を引き...
新しい事業の未来を左右するソフトウェア人財への実践的リスキリングとは
車載分野では自動運転やEV化などの技術革新やビジネスモデルの変化に対応するために従来のハード・メカ開...
プロダクトライン開発をアップグレードさせた『新たなプロダクトライン開発』でソフトウェアファースト時代に備える!
ソフトウェアを共通化する方法として、プロダクトライン開発がありますが、OTAを考慮するとプロダクトラ...
ソフトウェアファースト時代に不可欠な新たなプロダクトライン開発とは
自動車業界を中心に「ソフトウェアファースト」という言葉がもてはやされています。それは、目指すべき方向...