システム開発とは?企画から開発までの基本的な流れをわかりやすく解説 システム設計~プログラミング

この記事はこんな人向け

  • システム開発とは何かを簡単に知りたい
  • システム開発のはじめ方について知りたい
  • システム開発の流れを知りたい
  • システム開発に必要な事を知りたい
  • システム開発についての注意点について知りたい

基本設計(外部設計)

はじめに、システムを設計ですが、大きく「基本設計」と「詳細設計」のふたつに分けることができます。

基本設計は基本という名がつくことからシステム全体の基本的なことを設計していくと思われがちですが、基本設計はシステム(ソフトウエア)が外から見たときにどのような動き方をするのかを決めていくものです。その為、基本設計書は外部設計と呼ばれることもあります。一方で、詳細設計は基本設計で決められた(設計された)動きをどのように実現するかを設計していくものとなっています。

基本設計のもとになる要件定義書

基本設計を行う前の工程として、要件定義を行います。ここで定めた内容に基づき、以下の工程を設計します。基本設計の工程で設計するものは、システムの種類により異なりますが、基本的なアウトプットは次の通りです。

  • 機能一覧
  • データフロー図
  • システム構成図
  • ネットワーク構成
  • テーブル定義
  • ER図
  • 画面レイアウト
  • 帳票レイアウト

ここで、機能一覧について少し注意点あげておきますと、機能一覧は表として開発範疇となる機能を記述していくのですが、システム開発の具体的な全体像や開発範疇が決まりますので、機能一覧に記述する内容(機能)は漏れることなくすべて書き出しておくことが重要です。

詳細設計(内部設計)

冒頭で詳細設計は「基本設計で決められた(設計された)動きをどのように実現するかを設計していくもの」とお伝えしました。

詳細設計工程では、ソフトウエアのプログラミンを行うフロントエンドエンジニアやサーバーサイドエンジニア、サーバやネットワークなどシステム環境を構築するインフラエンジニアが詳細設計を元に作業が進められるようプログラムの処理フローやデータの流れを具体的に決めていきます。

詳細設計工程で作成される基本的な成果物は以下の通りです。

  • 画面遷移図
  • シーケンス図
  • 状態遷移図
  • クラス図
  • モジュール構成図
  • アクティブ図
  • 入出力設計
  • バッチ処理設計
  • データベース設計
  • 外部インターフェース設計
  • セキュリティ設計
  • テスト仕様書

プログラミング・実装

システム開発プロジェクトにおいて、まっさきに思い浮かぶのが、この開プログラミング・(実装)工程ではないでしょうか。プログラミングは、詳細設計書に沿ってソースコードの記述を行う工程で「プログラミング工程」や「開発工程」、単に「実装」などとも呼ばれます。

先に記述した基本設計・詳細設計書で決定した設計の内容を具体的にソフトウエア上で実現する為に、UI(画面)や画面に配置されたボタン、ボタン等を操作した際のアクション、データ取得、変換、バッチ処理などをプログラミングしていきます。

プログラミングを行う技術者のことを一昔はPG、プログラマーと一括りに呼んでいましたが、現在は画面やそのアクション等を実装する技術者のことをフロントエンドエンジニア、サーバ側の処理(APIやデータベース処理などの実装)をメインにプログラミングするエンジニアをサーバーサイドエンジニアやバックエンドエンジニアと呼んで、明確な分業化が行われています。

プログラミング工程では、ソースコードを記述していくことだけがイメージされますが、ソースコード記述以外にも、ソースコードを記述した後に行うデバッグ(動作確認)ソースコードインスペクションと呼ばれる記述したソースコードを別のエンジニアがチェックする作業が行われます。

この記事を書いた人

株式会社APPSWINGBY

株式会社APPSWINGBY マーケティング

APPSWINGBY(アップスイングバイ)は、アプリケーション開発事業を通して、お客様のビジネスの加速に貢献することを目指すITソリューションを提供する会社です。

ご支援業種

情報・通信、医療、製造、金融(銀行・証券・保険・決済)、メディア、流通・EC・運輸 など多数

監修

APPSWINGBY CTO川嶋秀一

株式会社APPSWINGBY
CTO 川嶋秀一

動画系スタートアップ、東証プライム R&D部門を経験した後に2019年5月に株式会社APPSWINGBY 取締役兼CTOに就任。
Webシステム開発からアプリ開発、AI、リアーキテクチャ、リファクタリングプロジェクトを担当。C,C++,C#,JavaScript,TypeScript,Go,Python,PHP,Vue.js,React,Angular,Flutter,Ember,Backboneを中心に開発。お気に入りはGo。