ソフトウェア開発といってもレベルは様々
ソフトウェア開発と一口にいっても色々あります。新規にまったく新しいアプリケーションを作る場合もあるし、既に存在するアプリケーションのある画面にボタンをひとつだけ追加する、といったものもあります。それらは、すべて同じソフトウェア開発ですが、それらを同じ方法で作るのは、無駄も多くなります。そこで、ソフトウェア開発の様々なレベルにも対応できる、ソフトウェア開発の設計までの進める方法を考えます。
ソフトウェア開発のレベルに応じた、進め方
ソフトウェア開発のレベルに応じて、どのレベルまで実施するかを決めます。ソフトウェアを新たに作る場合は、フルセットで、単なるボタンをひとつ追加するだけは、システム要件分析は端折る、など。これで、ソフトウェア開発のレベルに応じた開発内容で進めることができるのです。
ソフトウェア開発の設計までを進める上での基本構造
ソフトウェア開発のレベルは様々ですが、実は、抽象化して考えると、必ずある構成要素に従って行われることがわかります。また、その各構成要素は、5W1Hに当てはめて考えることもできます。
各フェーズで何をするべきか
では、ソフトウェア開発のレベルに応じて、各構成要素の中で何を実施すべきかをまとめました。
要求分析
要求分析とは、そもそもソフトウェア開発の動機になっている、要望、課題、問題を整理することです。Issue(イシュー)と呼ぶことができます。
要件分析
要求に応えるため、どういったソフトウェアを作るべきかを分析するのが要件分析です。要件分析には、さらにビジネス要件分析、システム要件分析に分けることができます。
ビジネス要件分析
システム開発対象だけではなく、関連する利害関係者や連携するシステムを含めた、より広い視野で分析するのがビジネス要件分析です。
システム要件分析
システム要件分析は、開発対象のシステムに対して、どんなことができるようになるべきかをまとめることです。ここでは、厳密な仕様ではなく、ユーザがこういうことをしたらシステムは、こういったことをする、といった抽象的な仕様を明確にします。
外部仕様設計
外部から観測できる仕様を明確にします。
内部仕様設計
外部仕様を実現するための、実現方式を記載します。