【SEの実態】システム開発の各工程とは!?

「SEに興味があってSEの実態を知りたい。SEのシステム開発の各工程を知りたい。」

このような要望に答えます。


■目的

SEの実態として、SEのシステム開発の各工程を知ることができます。


■目次

①【SEの実態】システム開発の各工程とは!?

①ー1 システム開発とは

②【SEの実態】システム開発の工程

②ー1 工程①要件定義

②ー2 工程②設計

②ー3 工程③プログラミング(製造)

②ー4 工程④テスト

②ー5 工程⑤リリース

②ー6 工程⑥運用

②ー7 工程⑦保守


■掲載内容の信頼性

TORATOBIの運営者プロフィールはこちらをご覧ください。


■みなさんへのメッセージ

SEに興味があってSEの実態を知りたい。SEのシステム開発の各工程を知りたい方に向けて書いています。

この記事を読むことで、SEの実態として、SEのシステム開発の各工程を知ることができます。

それでは、さっそく解説します。


①【SEの実態】システム開発の各工程とは!?

①ー1 システム開発とは

クライアントの要望をヒアリングしてシステムを納品することです。

システム開発は、クライアントの要望をヒアリングして、あらかじめ決められたコストとスケジュールに収まるようにシステムを納品します。

システム開発の各工程は、下記の通りです。

・要件定義(クライアントの要望をヒアリング)

・設計(システムの設計図を作成)

・プログラミング(システムの設計図に沿って実装)

・テスト(システムが仕様に沿って動くかチェック)

・リリース(クライアントや一般ユーザに公開)

・運用(システムを安定稼働させる対応)

・保守(システムの定期的な改修)

SEはシステム開発の各工程(一部の工程を担当する場合もあり)を行い、クライアントへシステムを納品します。


②【SEの実態】システム開発の工程

②ー1 工程①要件定義

要件定義では、クライアントの要望をヒアリングします。

システムの設計や実装の影響を考えてクライアントへ打診することもあります。

要件定義はクライアントの要望(どんな機能や使い勝手のシステムにしたいか)をヒアリングすることから始まります。

クライアントによっては、どのような仕様にしたいか具体的に決まっていなかったり、作業の肌感が分からないため無謀なスケジュールを依頼することがあります。

このような場合は、要件定義でスケジュールと作業ボリュームを正確に図ることが大切です。

そのためには、要件定義で下記のポイントを意識する必要があります。

・いつまでに誰が何を決めるのか

・クライアントが気付いていない要件があるか

・既存システムを改修する場合、どんな影響範囲があるのか

こういった観点でクライアントの要望をヒアリングしつつ、作業ボリュームを正確に図ります。

作業ボリュームを正確に把握できるとスケジュール感も見えてきます。

システム開発において要件定義はシステム開発の花形である一方、PJの進め方に大きく影響するため、非常に重要な工程と言えます。


②ー2 工程②設計

設計では、基本設計書や詳細設計書(システムの設計図)などシステム開発で必要な資料を作成します。

WORDやEXCELを使って、PJの指定フォーマットで資料を作成することが多いです。

設計で作成する資料は、下記の通りです。

・基本設計書(システムの画面イメージや機能を書き出した資料)

・詳細設計書(システムの要件をプログラミングできるレベルまで細かく書き出した資料)

・画面遷移図(システムの各画面遷移を確認するための資料)

・データベース設計書(システムのデータ格納先を定義する資料)

システム開発において設計は、要件定義の内容をシステム開発の設計図に書き出す工程です。

設計で作成した資料はクライアントに納品することもあれば、PJの資産として残すことで後続の担当者がシステムの仕組みを理解するために活用することができます。


②ー3 工程③プログラミング(製造)

プログラミングでは、設計書に沿ってシステムを実装します。

プログラミングは、設計書の内容をシステムとして具現化させるに過ぎません。

要件定義や設計の各工程があってこそ、プログラミングが成立します。

実際には、プログラミングをすることでシステムの設計漏れに気付くこともあります。

システム開発においてプログラミングは、設計書の内容に沿ってシステムを具現化しつつ、設計漏れを見つける工程です。

一見、華やかに見えるプログラミングですが、その本質は至ってシンプルです。

JAVAやHTMLなど多種多様なプログミング言語やツールは、システムを具現化させる手段にしか過ぎないと言えます。


②ー4 工程④テスト

テストでは、システムの品質を担保するため、あらゆるチェックを行います。

システム開発においてテストは、プログラミングで作成したシステムが仕様に沿っているか確認する工程です。

テストの主なレベルは、下記の通りです。

・単体テスト(1つの画面での動作チェック)

(例)アカウント登録画面の入力制限チェック

・結合テスト(複数の画面での動作チェック)

(例)アカウント登録画面で入力した内容がアカウント確認画面で表示されるか

・総合テスト(システム全体の動作チェック)

(例)システムの検索機能が動いているか

このようなレベルでテストを行います。

PJによって行うテストは様々ですが、上記3パターンの違いについて把握しておくと良いです。

テストは、システムの品質を担保するために、単体テスト、結合テスト、総合テストなど各種の動作チェックを行います。

SEはシステム開発において自分が何テストをしているのか把握した上で、テストの観点に沿ってシステムのバグや不具合を見つけます。


②ー5 工程⑤リリース

リリースでは、テストに合格したシステムを一般ユーザやクライアントに公開します。

リリースは、リリース作業を行う側(主に受託開発の会社)とリリース直後のシステムをチェックする側(発注元の会社)の協力体制のもと作業を進めます。

リリース中には思いがけないトラブルが発生することもあり、そのような場合は両者の協力が不可欠です。

両者の協力があってこそ、リリースを安全に終えることができます。

システム開発においてリリースは、慎重な作業を求められます。

リリース対象のシステムの利用範囲が広い程、リリース後の影響が大きいため、大手の求人媒体のように世間一般ユーザにリリースする場合と、クライアントの社内のように限られた場所にリリースする場合では、不具合発生時のインパクトに大きな違いがあります。

ただし、どちらもリリース後の不具合があれば迅速に対応することに変わりはありません。


②ー6 工程⑥運用

運用では、システムのトラブルが発生した際に迅速な対応が求められます。

システム開発において運用は、リリースしたシステムが問題なく稼働しているかチェックして、何かトラブルが発生した際に迅速な解決を図る工程です。

サーバの稼働が高まった場合に調査を行ったり、クライアントの問い合わせに対応するなど、対応内容は様々です。

ユーザが多い大規模なシステムであれば、運用のトラブル対応に時間がかかることが多くなりますし、夜間対応が発生することもあります。

これからシステム運用担当のSEになる人は、体力勝負である旨を頭にとめておいてください。


②ー7 工程⑦保守

保守では、システムの定期的な改修を行います。

システム開発において保守は、リリースしたシステムの改修(アップデート)を行う工程です。

保守では、クライアントがやりたいことをヒアリングして、設計して、プログラミングして、テストして、リリースして、、、とシステム開発の要件定義〜リリースまでをもう一度行うイメージです。

IT業界のシステム開発では、すでにリリースしたシステムを保守し続けるPJが多いです。

そのため、保守(システム開発の要件定義〜リリースまでをもう一度行う)と聞いたら、SEの仕事に取りかかる前に、まず何をするべきなのか見えてくると良いです。