Open2

開発フローのススメ

ShimbeiShimbei

0. 開発フローを決める理由

現在様々な企業の開発現場で「Vモデル」や「アジャイル開発」といった開発フローをよく聞く。これらは開発を効率よく、短時間で行うためのものである。これらを意識することで開発の際の手戻りのリスクや無駄な開発工程などを省くことが出来る。これは企業だけでなく学生団体や、あるいは趣味のモノづくりにも十分応用できるものであるため、ここにまとめる。

1. 代表的な手法

代表的な手法にはウォーターフォールモデルやアジャイルモデルがある。詳細はこちらのサイトが分かり易かったです。
今回はVモデルを用いたウォーターフォールモデルについて詳しくまとめる。

2. ウォーターフォールモデルをするにあたって

ウォーターフォールモデルは現在様々な企業の開発現場で採用されている。なぜなら大規模なシステムを開発するにあたって、管理がしやすいからである。進捗はもちろん、予算や開発に当たってのリスクも考慮しやすくなる。私も今後の趣味の開発規模が大きくなるため、ウォーターフォールモデルを用いて管理をしていこうと思う。

特に重要なのはVモデルの左側である。上流設計で間違えてしまうと手戻りが大変になるので、ここをしっかりと洗い出し、手戻りのリスクを避けることが重要である。

3. 要件定義をするにあたって

要件定義で意識することは以下のとおりである。総じて、手戻りのリスクや試験のことを意識して開発を進めることが重要である。
・検証可能性:検証項目は定量的かつ具体的に小分けする
・機能要件と非機能要件を分ける
・各要件が、後工程の設計要素・テスト項目と対応付けられるようにする

機能要件と非機能要件の違い

機能要件:システムが何をするか(処理内容、入出力など)
非機能要件:性能、可用性、セキュリティ、拡張性など

また要件定義はころころ変えるべきではないが、新奇性の高い製品を開発しようとすると要件定義の前段である要求定義の変更が生じうる。これを理解した上で、要件定義が変更されるリスクを把握したうえで開発を進めるか、要求が変更になっても要件定義を変更しないか決める必要がある。(ふつうは変更を受け入れざるを得ない。)そのために意識することは以下の通りである。
・要件ごとに** 優先度(必須・推奨・将来要件など) **を決める
・変更によって影響がある範囲を分析する

4. 基本設計をするにあたって

基本設計とは、要件定義で決めた事象をどのような構造や方式で実現するかを設計する工程である。基本設計をするにあたって意識するべきことを以下にまとめる。
・要件と基本設計の各項目の対応を明確にする
・各項目同士の境界(インタフェース)を曖昧にしない:インタフェース仕様書の用意など
・非機能要件を設計に反映する

5. 今後について

今後はこの内容に基づいてロボットの開発を進める。開発の中で気づきや反省があれば、別の資料にまとめる予定である。