初心者向け

【初心者向け】ソフトウェア開発工程の全体像をつかみたい

はじめに

プログラマーになったら最初にソフトウェア開発工程の全体像をざっくり掴んでおくことをオススメします。

とはいえ、いきなり細かく説明されても混乱しちゃうしなぁ…という感じかもしれず。細かくなり過ぎないように注意しながら解説します。

初版は文字ばっかりになりそうですが、追々図を足していきます)。

この記事を読んで欲しい方

  • ソフトウェア開発の全体像をつかみたい方
  • 情報処理試験を受験される方

ソフトウェア開発の全体像

いわゆるV字開発と呼ばれるソフトウェア開発プロセスの図を書いてみました。ソフトウェア開発プロセスの用語には方言があるので現場の呼び方に合わせて頂ければと思いますが、基本はこんな感じだと思います。

それぞれの作業工程(箱)をフェーズと呼び、①から始まり、青矢印の通り②、③、④、⑤、⑥、⑦、⑧と順番に進み、⑨が終わるとリリース(出荷)になります。

 

各フェーズの成果物が完成したらレビュー(評価)をします。レビューは対面で行うこともありますし、書面で済ませるケースもあります。レビューを怠ると不具合が残ったまま次のフェーズに進んでしまいますので、注意が必要です(後工程で不具合が見つかると後戻りにより無駄が発生しますし、出荷までに不具合が見つからないとリコールになるケースも…

 

仕様・設計が正しくプログラムに反映されているかを確認するため試験をします。どの仕様・設計がどのフェーズで試験されるかを緑矢印で示しました。例えば、②要件定義に対する試験は⑧システム試験で行われます。

 

開発を川の流れに見立て、①②(③までと言う人もいる)を上流工程(Upstream)、③以降を下流行程(Downstream)と呼んだりします。SE(システムエンジニア)が上流工程を担当し、PG(プログラマー)テスターが下流行程を担当するのが普通です。

 

開発における重要な3要素をQCDと呼びます。それぞれ、Q(品質:Quality)C(コスト:Cost)D(納期:Delivery)です。それぞれトレードオフの関係にあります。たとえば、Q(品質)を高めようとすると試験を沢山しなければならずC(コスト)増大や、D(納期)遅れを招きます。

 

PM(プロジェクトマネージャー)がプロジェクト全体のQCDに責任を持ち、PL(プロジェクトリーダー)がサブチーム(例えばソフトウェアのある機能ブロック)のQCDに責任を持ちます。難易度が高いシステムを構築するときにシステムアーキテクトをアサインして、Q(品質)に責任を持たせるケースもあります(PM、PL、システムアーキテクトも現場によって方言があります)。

 

余談ですが、現場によってはフェーズを英語で呼ぶケースもあります。

基本設計:BD(Basic Design)
詳細設計:DD(Detail Design)
コーディング:CD(CoDing)
単体試験:UT(Unit Test)
結合試験:IT(Integration Test)
システム試験:ST(System Test)

 

全体像の説明はこのぐらいにしておきます。

次のページへ >

  • この記事を書いた人
  • 最新記事

ペイヴメント

【名前】ペイヴメント 【職業】技術系サラリーマン 【住まい】東京 【好きなもの】プログラミング全般、デジタルガジェット、レトロゲーム、ライフハック、文房具、読書、家庭菜園、バンド演奏、お酒 【自己紹介】奥さん・息子2人とお気楽に暮らしています。

-初心者向け

Copyright© ペイヴメントのエンジニア塾 , 2020 All Rights Reserved.