初心者でもわかるシステム開発

わたしたちの便利な生活はさまざまなシステム開発の上に成り立っています。システム開発はWebやSNSのシステム開発だけに限りません。例えば社会のインフラを支える大規模なシステム開発や車の自動運転を支えるシステム、企業の様々な課題解決を図るシステム開発まで、多種多様なシステム開発があります。このコラムではシステム開発の概要について、初心者にもわかりやすく説明します。

 

1.そもそもシステム開発とは 

そもそもシステム開発とは何でしょうか。シンプルな事例を考えてみましょう。健康食品を販売している、とある企業では毎月末に大量の請求書の発行が必要でした。こうした作業をすべてアナログで行うと、どれほどの作業量が必要でしょうか。請求書を手書きして、封筒に切手を貼って郵便局から発送するといった作業には多くの人手と時間がかかります。転記ミスや宛先違いが発生したら、そのたびに修正が必要です。

これをデジタルで仕組み化してみましょう。人手で行っていた作業を自動化し、請求書をメールで一括送信できれば、作業に関わる量や時間を削減できます。顧客情報を整備すれば、宛名の記載ミスや誤発送も防げるでしょう。自動化によって生まれた時間を活用し、お客さまとのコミニュケーションやマーケティングにリソースを投入できたら売上アップにつながるのではないでしょうか。
 

大なり小なり企業や自治体をはじめとする組織には、さまざまな課題があふれています。システム開発とは課題解決を行い、新たな価値創造のための仕組み作りと言えるでしょう。

 

2.システム開発の定義

ここでシステム開発の定義について説明します。日本の産業製品に関する規格などを定めた国家規格であるJIS「X0020:1992 情報処理用語(システム開発)」では情報処理のシステム開発に関する用語や定義について、以下のように規定されています。

「システム開発とは通常,要求分析,システム設計,実現,文書化及び品質保証を含む過程」

https://kikakurui.com/x0/X0020-1992-01.html
引用:JIS「X0020:1992 情報処理用語(システム開発)」

 

3.システム開発の目的

システム開発の目的とはデジタル技術によってビジネス上の課題解決や目標実現のための「仕組み」を構築することです。様々な課題やニーズに対して、システム開発には以下のような複数の目的があります。

  • 業務効率化によるコストダウンと生産性の向上
  • プロセスの自動化
  • 顧客満足度の向上による競争力強化
  • 新製品の開発や新規事業への参画
  • 技術革新への対応
  • 法制度や外部規制、コンプライアンスへの対応
  • 市場や業界団体からの要請への対応
  • M&Aなど経営の統廃合への対応
  • データ管理と分析

 

4.システム開発とシステム構築の違い

システム開発と混同しやすい言葉に「システム構築」があります。もともと「開発」と「構築」では意味が異なります。「開発」はゼロベースから新しい物を作り出し実用化することを指します。一方「構築」はすでにある材料や部品などを組み立て築き上げることを意味します。

システム開発とは、プログラムの設計やプログラミングを行い、新たに開発されたシステムのテストや運用までを行う作業です。一方、システム構築はシステム開発によって生まれた複数のシステムを組み立て、運用できるように仕組み化するプロセスを指します。システム構築の要素の1つがシステム開発であり、システム開発の後に行われるのがシステム構築と理解するとわかりやすいでしょう。

 

5.システム開発の流れ

システム開発の基本的な流れについて説明します。どのプロジェクトでもほぼ同様なプロセスが採用されますが、特にウォーターフォール型の開発で多用されます。

1.要件定義

システム開発で最も重要なプロセスです。開発する関係各所や関係者とコミニュケーションを行いながら、課題やニーズのヒアリングを行い、要件を把握します。システム開発の目的や必要となる機能を明確にし、要件の優先順位や相互の関係性を明らかにします。予算や開発期間も要件定義のプロセスで決定します。

2.システム設計

システム設計では要件定義に基づき、システムを実現するための設計を行います。システム設計は基本設計と詳細設計の2つに分かれます。

1)基本設計・・・基本設計はシステム構造やアーキテクチャ(システムの構成要素と要素間の関係性を示した全体構造)などについて定義します。
2)詳細設計・・・詳細設計では各機能や要素、データフロー(データが移動する流れ)、データベースの設計について細かく定義します。

3.プログラミング・コーディング

このプロセスでは、システム設計のプロセスで作成された設計書に基づき、開発言語や開発ツールを使用してプログラミングやコーディングを行います。このプロセスではバージョン管理などを行いながらシステムの機能を実装していきます。

4.テスト

完成したプログラムが設計通りに機能するか、不具合がないかなどについて確認するプロセスです。不具合やバグが見つかれば修正し、品質を高めていきます。

5.リリース

テストが完了し、品質が担保された後、システムはテスト環境から本番環境に移行し、発注者やユーザーに引き渡されます。

6.運用・保守

リリース後に本番環境で運用すると、予測できなかった不具合が発生する場合があります。
設計段階では想定できなかった例外処理や操作によって発生したトラブルに対して対応を重ね、システムの安定稼働までモニターを続けます。

 

6.システム開発の種類

システム開発には主に以下の4つの種類があります。以下に概要を説明します。

1.ウォーターフォール

これは要件定義から運用・保守までのプロセスを順番通りに進める方法です。上流から下流に向かって滝の水が流れていくように開発を進めていくことからウォーターフォールと名付けられました。ウォーターフォールは最もオーソドックスな開発方法で、大規模なシステム開発から小規模なシステム開発まで利用されます。

2.アジャイル

アジャイルとは「素早い・機敏」を意味します。アジャイルでは、ウォーターフォールのように最初にすべての仕様を決めずに、おおよその方向性だけを決めて開発を進めていきます。そのため、途中で仕様変更が発生することが想定されるプロジェクトに有効な開発手法です。計画-設計-実装-テストといった開発工程を小さくスピーディーに繰り返していくことが特徴です。アジャイルはWebサービスやアプリ開発など、柔軟な対応が求められるプロジェクトに適しています。

3.プロトタイピング

プロトタイピングとは、開発の早い段階で試作品(プロトタイピング)を作り、クライアントやユーザーからフィードバックを受けながら開発を進める手法です。完成品のイメージを共有し、補正しながら開発を進めることができるため、発注側・開発側との認識のズレを防げます。プロトタイピングは小規模なシステムや、UXやUIの開発など、実際にユーザーの視覚による確認が必要なシステム開発に適しています。

4.スパイラルモデル

スパイラルモデルとは、システムを機能ごとに分割してクライアントのフィードバックを受けながら開発を進める方法です。この方法は重要な機能から開発を進めていきます。「要件定義→設計→開発→テスト→レビュー」の工程をスパイラルのように数回繰り返し、改善しながら完成を目指すため、こうした名称がつけられました。スパイラルモデルは柔軟に仕様変更ができる点や、クライアントと完成イメージの共有ができるため、工程の戻りが少ない点がメリットです。

 

7.システム開発の関係者

システム開発には、様々な役割をもつメンバーが関与します。

メンバー 役割
プロジェクトマネージャー(PM) プロジェクトマネージャーとは、システム開発プロジェクトの全体を統括する役割を担います。内外の各所関係者とコミュニケーションしながら、目標設定や開発要員・開発環境などリソースの調達や調整、プロジェクトの進捗管理を行います。同時にリスク管理や問題解決を図りながら、プロジェクトを成功に導く役割を果たします。
システムエンジニア(SE) システム開発のプロジェクトにおいて、システムの設計や開発、テスト、運用までシステム開発の全体に対して役割を担います。システム開発の上流から下流までのプロセス全体をサポートする役割を果たします。システムエンジニアはシステム開発のコアとなってプロジェクトを進めて行きます。
プログラマー(PG) プログラマーはソフトウェアの開発とプログラミングの役割を担います。設計に基づいてコーディングを行い、システムに必要な機能を実装していきます。また、プログラムに対してテストを実施し、バグの修正を行ってシステムの品質を担保します。

 

8.まとめ

このコラムではシステム開発の概要について説明しました。システム開発には様々な方法があります。まずは概要を理解した上で、システム開発に携わるとよいでしょう。

情シスナビでは情報システムに関わる様々なコンテンツを提供しています。読者の皆様に役立つコンテンツが多数ありますのでぜひ確認してみてください。

関連記事

カテゴリー:

ナレッジ情シス知恵袋

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る