開発における上流工程と下流工程

システム開発に触れる際、上流工程や下流工程という言葉を聞くことがあります。 上流工程は、システム概要や必要な機能を決め、下流工程は実際にシステムをつくり込む工程です。 様々な職種の人が関わる開発では、そのポジションによって、作業内容や求められるスキルが異なります。 そのため、上流工程や下流工程という言葉の意味は、システム開発に携わる人にとって、必要不可欠な知識といえるでしょう。 そこで今回は、システム開発における上流工程と下流工程の作業をご紹介します。    

システム開発のプロセス

システム開発では、完成までの間に様々な工程があります。 完了までの工程は、要求分析・要件定義・基本設計・詳細設計・コーディング・各種テスト・納品完了です。 大まかなプロセスは、クライアントのニーズを調査検証して、見積を算出します。 そして、機能ごとに担当や仕様を決定し、設計書でクライアントと最終確認を行います。 設計書をもとに仕様書がつくられた後は、実際にプログラムの作成を行い、各工程のテストで問題なければ完成です。        

上流工程とは

上流工程は、主にエンジニアが担っており、プログラミングスキルをはじめとする広い知識のほか、マネジメント力・提案力・文章構成力が求められます。 ここでは、開発の初期段階である、上流工程を見ていきましょう。  

要求分析

要求分析は、クライアントが依頼するシステム開発について、様々な調査や分析を行います。 依頼内容の問題点を調査・分析した後、企画計画書を作成します。 主な内容は、システムの概要・開発期間や費用・リスク調査と分析、費用対効果などです。 要求分析は、ニーズの優先順位や分析などを明確化し、次の要件定義で開発が始動するか否かを決める要素を持つ工程です。  

要件定義

要件定義では、要求分析を踏まえ、クライアントのニーズを満たすための課題と必要な機能を考慮して、システムの全体像を定めます。 中でも業務要件は、業務の仕組み・必要な機能・性能・ユーザビリティなどを考慮して構築します。 要件定義は、クライアントのニーズを実現可能な方向へ導き、共通認識として理解できるものでなければなりません。  

基本設計

基本設計は、要件定義をもとにシステムの基本部分を設計します。 成果物には業務の流れを把握する業務フローや、実装する機能一覧があります。 機能一覧は、画面レイアウト・テーブル定義・バッチ処理・外部システムの連携などです。 基本設計では、要件定義に基づいた、実現できる設計を行います。 そのため、エンジニアはシステム全体を正確に把握し、明確な根拠を持って作業を進めなければなりません。  

詳細設計

詳細設計は、基本設計を実現するプログラムを作成するために必要な資料です。 主な成果物として、機能分割定義・データフロー・画面設計図・バッチ処理・デーベース関連等があります。 詳細設計は、基本設計の決定事項を実現するため、機能と構成を細かく決定し、プログラマーへ指示する側面があります。 そのため、プログラムの仕様は業務に携わる作り手の認識を、正確に共有できる内容であることが求められるのです。

下流工程とは

下流工程では、主にプログラマーが活躍しており、情報技術に関する幅広い知識のほかに、論理的思考力や技術を高める継続力が求められます。 ここでは、開発プロセスのプログラミング部分である下流工程を見ていきましょう。  

プログラミング

プログラミングは、詳細設計で定義された仕様通りにプログラムを作成する作業で、コーディングとも呼ばれます。 詳細設計で求められる動作を実現するため、クオリティの高いソースコードが求められます。 その特徴は、正確な動作・素早く効率的な動作・無駄がなくシンプルで保守性が高いという点です。 また、バグ(プログラムの不具合)が発覚した場合は、このバグを管理し、問題を解消した上でプログラミングを再開します。  

単体テスト・結合テスト

プログラミング完了後は、単体テスト・結合テストなどの工程に進みます。 単体テストは、作成したモジュール単位でテストを実施します。 最初にモジュール単位でテストを行うことで、問題の早期解決につながり、後の工程を円滑に進めることができるのです。 また、結合テストは複数のモジュールを組合せ、不具合を検証するものです。 モジュール間のインターフェイスが正常に機能するかどうかを、システム全体で包括的に検証します。

システムテスト・運用テスト

システムテストは、本番と同等の環境を用いて実施する、最終確認のテストです。 ここでは、開発したものがクライアントの要件定義通りの機能や性能を満たしているのかをチェックします。 最後の運用テストでは、クライアントが実際に利用し、システムの動作・利用手順・操作性について確認・検証が行われます。 運用テストでは、すべてを把握している開発者がサポートすることで、スムーズに確認できるでしょう。  

システム移行

システム移行とは、旧システムから新システムへ切り替えを行う作業です。 切り替える方法は、一斉移行や順次移行などがあります。 主な作業は本番稼働の日程調整や、システム移行作業を実施する体制の構築、当日のタイムスケジュール、稼働後の監視体制です。 このように、システム移行ではトラブルを未然に防ぐ配慮が大切になります。    

まとめ

今回は、システム開発における上流工程と下流工程について、ご紹介しました。 上流工程では、プログラミングスキルをはじめ、提案力も必要になります。 また、下流工程では、高い論理的思考力や技術を高める継続力が求められます。 システムを開発する際は、認識の齟齬を防ぎ、より高品質なシステムをつくり上げるために、さまざまな工程を経ているのです。    

Contact

お問い合わせ

電話アイコン電話によるお問い合わせ

03-4405-3988

営業時間:平日 11:00-20:00

メールアイコンメールによるお問い合わせ

info@waocon.com

または以下のお問い合わせより

お問い合わせフォームへ

LINEアイコンLINEでお問い合わせ