イチから全部作ってみよう(1)ソフトウェア開発の大まかな流れを把握する:山浦恒央の“くみこみ”な話(170)(3/3 ページ)
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第1回は、イントロダクションとしてソフトウェア開発の大まかな流れを説明する。
5.ソフトウェア開発の一連の流れ
ここからは、ECサイトの開発を例にしてソフトウェア開発の一連の流れを整理します。また、犬小屋を作るプロセスと比較してみるのもよいでしょう。
5.1 要求仕様フェーズ
要求仕様フェーズでは、顧客が求める「ECサイト像」について具体的にヒアリングします。例えば、「インターネットで通販を始めたい」「海外の顧客にも販路を広げたい」「VIP会員向けのサービスを始めたい」といった要望をまとめます。ECサイトというありふれたサービスでも、顧客によって要望は大きく異なります。「動物園にいる動物」とひとまとめにしても、個々の動物を見ると、「体重が6トンを越える象」「鳥なのに飛べないダチョウ」「身長が5mを超えるキリン」「蟻しか食べないアリクイ」など、全てが別物です。
顧客の要望をまとめたものを「要件定義書」や「要求仕様書」という文書にまとめます。
5.2 設計フェーズ
設計フェーズでは、作成した仕様を実現するための検討作業を行います。例えば、「どのようなデータが必要か(データの設計)」「どのような処理にするか(アルゴリズムや処理方式の設計)」「どんな画面が必要か(ユーザーインタフェースの設計)」を考えます。
上記を、概要設計書、データ定義書、詳細設計書、画面設計書などにまとめます。
5.3 実装フェーズ
実装フェーズでは、ここまでで作成した要求仕様、設計書などに従って実装(プログラミング、コーディング)をします。この工程では、仕様書、設計書の不整合に悩みながら作ることになり、大変な作業ですが、作ったものが動作する達成感は何にも変えられません。
上記の3つのフェーズで作る「要求仕様書」「設計書」「コーディング」は、対象者が異なりますが、全く同じものです(図1)。
5.4 テストフェーズ
テストフェーズでは、作成したプログラムが仕様書/設計書通りに動作することを確認します。一定規模のソフトには必ずミスがあります。このミスを、「バグ」と呼びますね。バグをテストによって徹底的につぶします。「現実の自分と向かい合うフェーズ」であり、「コーディングは天国、テストは地獄」と嘆く開発者も少なくありません。
5.5 保守フェーズ
昨今のソフトウェアは、製品としての第1回目のリリース後にもアップデートなどで細かな機能追加、バグ修正をすることが一般的ですね。例えば、「サイトの応答性能の高速化」「特別な会員向けに割引機能を入れたい」「新規顧客に向けてキャンペーンをやりたい」などのさまざまな修正を行います。
以上がソフトウェア開発の全体的な流れです。新シリーズでは、上記の全フェーズを取り上げ、具体的な成果物を自分で作りながら、ソフトウェア開発の全体像を把握することを目的にしています。
6.おわりに
今回から、入門者を対象とした新シリーズとして、「イチから全部作ってみよう」を始めます。まず、イントロダクションとしてソフトウェア開発の大まかな流れを説明しました。
ソフトウェア開発の具体的な手順を知ることで、実務のイメージを把握し、実践的なエンジニアになっていただければと思います。
山浦先生の書籍が発売中です!
前々シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
- 業務効率化の道具箱(16)上司の指示が「言語明瞭、意味不明」で困っています
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第16回は、これまで取り上げてこなかった「働き方を工夫する」をテーマに、困った上司の作業指示にどう対応していくかを考える。 - 業務効率化の道具箱(15)ツールを作るより難しい「業務改善の進め方」
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第15回は、10人程度の小さな小売店で行った「自分でツールを作る」による業務効率化のケーススタディーを紹介する。 - 業務効率化の道具箱(14)続・便利なツールと裏腹の「地雷」を踏まないために
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第14回は、前回に続き、ツールの導入/運用時にありがちな「地雷」をケーススタディー形式で紹介する。 - 業務効率化の道具箱(13)便利なツールと裏腹の「地雷」を踏まないために
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第13回は、ツールの導入/運用時にありがちな「地雷」をケーススタディー形式で紹介する。 - 業務効率化の道具箱(12)VBSなら面倒な環境構築なしで自作ツールを作れる
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第12回は、Windowsであれば面倒な環境構築なしで使えるVBSのプログラム記述方法を紹介する。