.net column
.NET開発者のためのブログメディア

システム開発における工程7つ|開発環境や手法の特徴を詳しく紹介

 
システム開発における工程7つ|開発環境や手法の特徴を詳しく紹介
基本情報技術者試験の試験対策はこちら>>
SE
システムを構築するとき、どのような流れで作業を進めればいいのでしょうか。
PM
システムの設計から実際に機器を設置してシステムが動作することまでをシステム構築といいますが、システム構築の大まかな流れを説明しましょう。

システム開発とは?


システム開発とは、ITを活用して業務の効率化のためにシステムを作成する、一連の工程を指します。

クライアントの要求からシステムを設計、開発したのちテストが完了すればシステムの完成です。

システム開発では、システムエンジニア、プログラマなど多くの人員が関わり、納期に向けて計画的に業務を進めていきます。

システム開発の工程7つ


ここからは、システム開発の工程について紹介します。

システム開発はクライアントの要求を分析することから始まり、設計や開発が終了次第テストを実施する、というように各工程を順番に進めるのが一般的です。
それでは、システム開発の各工程について詳細に見ていきましょう。

1:要求分析

要求分析は、システム開発の工程の中で最上流に位置付けられる工程です。

要求分析では、クライアントや利用者がシステムに対して期待することをヒアリングし、システム要求の部分なのか、システム化対象外の部分なのかを分析します。

クライアントや利用者はシステムに明るい人とは限らないので、要求の中にはシステム化して対応すべき内容だけでなく、ほかの手段で改善すべき内容も含まれています。

2:要件定義

要件定義では、要求分析で得られた内容をもとに、要求をシステム実現するためのシステム化する機能やシステム性能の検討を行い、設計します。

システム開発においては、要件定義で決めた内容が品質や性能の基準となり、終盤の工程となる運用テストやシステム性能テストの基準にもなります。

最上流工程で定義が難しく、あいまいなまま次工程に進むプロジェクトもありますが、終盤で品質や費用の悪化を招く原因になってしまいます。

3:RFPの作成

RFPとは「提案依頼書」のことで、システム開発を依頼するクライアントから開発を担当する候補となるベンダ側に提示するものです。

RFPには、システム導入の目的やシステム化範囲、導入スケジュール(納期)、費用などを記載します。提案を受けてベンダ選定を行う場合は、選定のスケジュールや選定方針についても記載します。

クライアントは「提案に盛り込んでほしい」と考えることをすべて、RFPに盛り込むことが大切です。

4:基本設計

基本設計は、システム要件定義を受けて行うシステム設計の第一段階にあたります。クライアントがシステム化に求めている要件を、システム目線で分析し、システムでどう実現するかを設計書に記載します。

基本設計はすぐにプログラミングできるほど詳細には記載されず、システムに詳しくないクライアントが見ても、システムの概略が理解できる程度の文章を交えて記載されます。

5:詳細設計

基本設計をもとに、プログラミングできるレベルまで詳細に検討されるのが詳細設計です。基本設計から詳細設計に工程移行するプロジェクトもあれば、基本設計のあと外部設計や概要設計などを経て、詳細設計を行うこともあります。

詳細設計では、プログラミングに必要なすべての事項を決定します。たとえば、「異なる場合はエラー」という設計に対し、エラーの文言やエラー後の処理を決定します。

外部設計とは

外部設計は、主にユーザーが操作する画面やデータのやりとりといったインターフェース部分を設計する工程です。

基本設計の一部とされることもあり、一般的に外部設計までが上流工程として扱われます。

内部設計とは

内部設計は、外部設計とは対照的にユーザーからは見えない部分を設計する工程です。

機能を分割してシステムのメンテナンスがしやすいように設計したり、外部設計で決定したデータの処理を具体的にどうプログラミングするかを設計したりというように、システムの内部のつくりを決定していきます。

6:テスト

システム開発ではシステムを納品するまでにいくつかのテスト工程を実施します。

プログラマがプログラムの動作確認を行う単体テスト、設計者を交え設計書通りに動作するかを確認する機能テストや結合テストをベンダ側で実施します。

クライアント側でも受入テストや本番のシミュレーションともなる総合テストを実施します。単体テストでは詳細設計の確認を行い、総合テストでは基本設計との整合確認を行います。

単体テスト内容

単体テストは、単一の機能や画面をテスト対象とし、ロジックに問題がないかを確認する工程です。

画面であれば画面表示に問題がないかをチェックし、意図した通りに動作するかの確認を行います。

ロジックに条件分岐が存在する場合は、全ての条件を網羅してテストする必要があります。

結合テスト内容

結合テストは、複数の機能や画面をテスト対象とし、データの連携や機能間の連携に問題がないかを確認する工程です。

単体テストがその機能自体のロジックをチェックするのに対し、結合テストでは複数の機能間におけるデータのやり取りに問題がないかという観点でテストを実施します。

総合テスト内容

総合テストは、システム全体をテスト対象とし、クライアントの要求通りに実装されているかを確認する工程です。

要件定義で決定した機能要件やシステムへの要望が取り入れられているかという観点でテストが実施されます。

運用テスト内容

運用テストは、開発したシステムが業務において支障がないか、ユーザー自身がテストする工程です。

システムを本番利用する前の最終テストとなっており、実際の業務に沿った手順でテストを実施します。

7:納品・運用・保守

システム開発を完了させたら次は「納品」です。システムが動作するように設定を整えたコンピュータを設置し、設計書類を整えて、クライアントに納めます。

システム開発の中で、納品後のシステム運用や保守を行うための設計も行い、運用・保守ツールの設定も行っておきます。

納品後の運用・保守は、クライアントのシステム部門が担当しますが、ベンダに依頼することもあります。

システム開発環境3つ


ここからは、システム開発の環境について、3種類の環境について紹介します。

システム開発環境には汎用系システム、オープン系システム、Web系システムが存在し、環境によって業務内容に違いがあります。

それぞれの環境について、概要と特徴を見ていきましょう。

1:汎用系システム

汎用系システムとは、解析処理や業務処理といった異なる分野の処理でも「汎用的に」処理できるコンピュータとして生まれた「汎用機」と呼ばれるコンピュータを使って開発されるシステムです。

現代では、パソコンとサーバのシステムで業務システムを開発することが増えていますが、大規模な業務を抱える会社では、汎用機が使われていることもあります。

2:オープン系システム

オープン系とは、UnixやWindowsのサーバを使って開発されるシステムを指します。現在の業務システム開発においては主流ともいえます。

オープン系のシステム開発では、ハードウェアやソフトウェアを1メーカに頼らずに調達でき、機器構成では複数メーカを混在させることも可能です。そのため、納期や費用を抑えて開発できる可能性があります。

3:Web系システム

Web系システムでは、サーバ構築する点ではオープン系と似ていますが、特定のクライアントマシン(端末)を想定しない点で異なります。

Web系システムでは、ブラウザを介してシステムを利用することになります。システム構成を検討するうえでは、特定端末を用意する必要がないので、費用を抑えることができます。

システム開発の手法3つ


システム開発には開発手法がいくつか存在し、その工程は手法によって異なります。ここでは、主なシステム開発手法の特徴と工程についてご紹介します。

それぞれ開発手法によってメリットが異なるため、開発するシステムに合わせた手法が採用されます。

1:アジャイル開発の特徴と工程

アジャイル開発は、スピーディーにシステム開発を行うために考案された開発手法です。システム開発の流れとなる工程を、システム全体を対象として行うのではなく、システムの機能単位で実施します。

システムの全容が見えていなくても、要件が明確になっている機能から着手すればよいので、時間的な無駄が発生せず、短納期に対応できます。

2:スクラム開発の特徴と工程

アジャイル開発の中にも手法が複数ありますが、スクラム開発ではチームコミュニケーションを重視して進めていきます。

開発機能の優先順を考慮してスケジュールに計画します。プロジェクトの進め方はチーム内で毎日コミュニケーションをとり、見直しながら進めていきます。

作っている機能が正しく作られているかについても、確認の場を設けてメンバ間で確認します。

3:ウォーターフォール開発の特徴と工程

ウォーターフォール開発は、決まった工程順でシステム開発を進めていく開発手法です。

設計、開発、テストを順番通りに進めていく手法で、前の工程に後戻りすることはないという特徴があります。

作業の順番が固定されているため、アジャイル開発と比べてスケジュールを立てやすい、必要な人員数がわかりやすいというようなメリットがあります。

システム開発に関する略語


ここでは、システム開発で利用される略語について紹介していきます。

システム開発には多くの工程が存在するため、各工程の呼称が省略されることも珍しくありません。

先ほど紹介した、各工程の略語については以下の通りです。

・RD(Requirement Definition):要件定義
・BD(Basic Design):基本設計
・DD(Detail Design):詳細設計
・ED(External Design):外部設計
・ID(Internai Design):内部設計
・UT(Unit Test):単体テスト
・IT(Integration Test):結合テスト
・OT(Operations Test):運用テスト

SE
構築環境によってハードウェア構成やソフトウェア構成、使用するプログラミング言語の選定が異なるのですね。
PM
はい、さらに開発手法によっても構築の流れが異なります。業務効率の向上内容を意識して、構築に取り組んでいくことを心掛けてください。

システム開発の各工程について理解しよう


ここでは、システム開発の工程7つと、システム開発環境や開発手法について紹介しました。

各工程がどのような内容かを理解し、開発環境や手法についても知ることで、システム開発という大きな枠組みを理解することにつながります。

システム開発に関する知識を持ち、業務の効率を向上させるという意識を持ってシステム開発に取り組むことが大切です。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags