基礎知識

「開発」ってなに?工程をざっくり学ぼう

こんな人に読んでほしい
  • 開発って何?
  • これからエンジニアを目指す人
  • 開発の工程があまりうまく説明できない人

そんな人に読んでもらえたらなと思います。

この記事では、開発の工程と手法について記載しています。

工程や手法によって、ユーザーや同僚から求められるものが違います。

是非この機会に開発を理解して、日々の開発に活かしてください!!

開発とは

業務の効率化や最適化を目的として行う「仕組みづくり」です。

何らかの課題を解決する、あるいは目的を達成するために、技術や仕組み、ソフトウェア(コンピュータプログラム)、装置や機器、それらを組み合わせたコンピュータシステム、サービスなどを作りあげる行為や事業を指します。

開発の流れ

  1. 要件定義
  2. 外部設計
  3. 内部設計
  4. プログラミング
  5. テスト
  6. リリース(引き渡し)
  7. 運用・サポート

1. 要件定義

システムがカバーする範囲や、実現方法などを決定し、システムの仕様を決めていきます。

これに沿って、コストや今後のスケジュールを決めていきます。

その為、一番重要な工程になります。

2. 外部設計

「基本設計」とも言います。

サービスを提供するサーバーや、利用者が使用するクライアントなど、システムのハードウェアを設計します。

システムで使用するネットワークや、ミドルウェアと呼ばれる中間ソフトウェア、プログラミングに使用するプログラミング言語など、ソフトウェアについても検討します。

3. 内部設計

「詳細設計」とも呼ばれます。

ユーザーが操作する画面の裏で、内部的に実行される処理について、処理のロジックや内部データの構造などを、詳細に定義します。

4. プログラミング

「コーディング」とも言います。

要件定義、設計を元にプログラムを組んでいきます。

5. テスト

設計通りにプログラムが作成されているか、確認するステップです。

テストには、複数の工程があります。

  1. 単体テスト
  2. 結合テスト
  3. システムテスト

6. リリース(引き渡し)

システムをユーザーに引き渡します。

ユーザーと仕様を確認しながら、リリースしていきます。

また、操作方法をユーザーに教えたり、ドキュメントも整理していきます。

7. 運用・サポート

リリース後も、予期せぬ操作をユーザーが行い、エラーが起きたりもします。

サーバーのダウン、オペレーティングシステムの更新など、対応するものは、多岐に渡ります。

その為、リリースして終わりではなく、システムの運用を行なっていかなければなりません。

開発手法

開発手法は、5つあります。

  1. ウォーターフォール
  2. アジャイル
  3. スパイラルモデル
  4. プロトタイピング
  5. DevOps

1. ウォーターフォール

「ウォーターフォール(waterfall)」は、英語で「滝」を意味します。

滝のように、上流である要件定義→開発→テストと順番に下流工程へと工程を進めていきます。

その字の名の通り、水(water)が落ちていく(fall)開発手法になります。

2. アジャイル

「アジャイル(agile)」とは、「素早い」、「機敏な」という意味です。

アジャイルでは最初に仕様を決めません

おおまかな方向性だけを決めて開発を進めます。

3. スパイラル

「スパイラル(spiral)」とは、「螺旋」を意味します。

アジャイルと似ています。

それぞれの開発単位で、要件定義、設計、開発、テスト、そして評価というサイクルを繰り返していきます。

システム全体の完成度を”螺旋”のように上げていくところから、「スパイラル」と呼ばれます。

4. プロトタイピング

「プロトタイピング(Prototyping)」とは、”試作品“という意味です。

つまり、試作品を先に作成する開発手法です。

基本的にユーザーの意見をもらうことが前提の開発方法です。

5. DevOps

DevOpsは、開発担当者と運用者が連携して開発をする手法です。

“デブオプス”と読みます。

「Dev」は「Development(開発担当者)」、「Ops」は「Operations(運用チーム)」を指しています。

テストを終えたシステムを開発チームがリリースした後、システムの運用、保守など、システムの面倒をみるのが運用チームです。

開発工程と開発手法を学ぶことで得られるもの

自分の知識が増えるだけでなく、チームでの立ち回りを学ぶことができます。

また、個人開発であっても、開発の工程や手法を落とし込むことは可能だと思います。

日頃から、少しでも意識しながら取り組んできましょう!!