システム開発事業
システム分析 / 設計 / 開発
■要件定義
システムやソフトウェアの開発において、実装すべき機能や満たすべき性能などのを明確にしていく作業のことです。
いわゆる上流工程の一部で、実際の開発・実装作業を始める前に行う作業の一つにあたります。
要件定義では、利用者がそのシステムなどで何がしたいのか(ユーザー要求)を元に、それを実現するために実装しなければ
ならない機能や、達成しなければならない性能などを開発者が検討して明確にしていきます。
まとめられた成果は「要件定義書」として文書化します。一般的にこの段階では「何が」必要なのかを定義するに留め、
それを「どのように」設計・実装すべきかは後の工程で検討します。
■基本設計(外部設計/内部設計)
外部設計は、顧客や外部システム担当者と調整しながら、仕様を決めていくフェーズです。
開発するシステムとは別の、外部システムと連携する部分の仕様を設計し、内部設計を行うための土台を作ることが目的です。
インプットとなる要件定義書から、外部設計書を作成します。外部設計書の内容としては、画面仕様書、帳票仕様書、
インタフェース仕様書、データベース論理設計書などがあります。内部設計の目的は、次フェーズの詳細設計を行うための仕様を
決めることである。特に、機能設計やデータベース論理設計は、内部システムの仕組みや、取り扱うデータのあり方、管理方法などを
決めることになり、これまでのシステムイメージを一気に具体化させる部分でもあります。
アプリケーション設計 / 開発
■詳細設計
前工程で定義された要素の仕様や動作の詳細を定義する工程です。内部設計や機能設計などで定義されたシステムの構造や
仕様などをプログラム単位に分割し、各プログラムの動作を定義していく工程になります。基本設計(概要設計)で定められた機能や
操作・表示方法などに基づいて、システムとしてそれをどう実現するかを具体的に定めていきます。
詳細設計では、内部設計で設計したシステムの各機能をより詳細化し、実際にどのような処理を行ってプログラムを動作させるかを
決めていく作業です。プログラマは詳細設計書を元にプログラムを実装していくため、プログラマに分かりやすい表記で設計していく
ことが求めらます。
■プログラム設計
各プログラムの動作や処理の流れなどを詳細に定義する工程です。内部設計や詳細設計の後工程にあたります。
内部設計や機能設計、詳細設計などで定義されたシステムの構造や仕様などをプログラム単位に分割し、各プログラムの動作を
擬似コードや流れ図(フローチャート)などを用いて記述したり、データベースの構造やテストケースなどを定義する工程を意味します。
プログラミングそのものに近い工程であるため、この工程を省略して実装に進む場合もあります。
■製造
製造では、詳細設計で設計したプログラム仕様を元に、実際にプログラムを作成します。
製造のほかに、プログラミング、コーディング、実装と呼ぶこともあります。狭義ではそれぞれの意味が異なるが、プログラムを作成する、
ということを指しています。プログラマは詳細設計書や、データベース定義を元にプログラムを作成することになるが、仕様の通りに製造
することが求められるます。
■テスト
テストとは、機能の品質が保障されていることを証明するために行う検査です。機能の大きさに応じて、単体テスト、結合テスト、システムテスト
(総合テスト)に大きく分類されます。それぞれのテストに応じて、機能に潜在しているバグを発見し、修正することが主な作業となります。
バグを取り除くことが最大の目的であり、品質確保には絶対に欠かせない作業となります。
環境設計 / 構築
■ネットワーク設計/構築
ネットワーク設計では主にCiscoルーター・スイッチなどを使ったネットワーク環境の構築に必要な設計書・仕様書を作成します。
ネットワーク構築ではネットワークSEの作成した設計書や仕様書をもとにCiscoルーターやスイッチなどネットワーク機器の設定を行い、
インターネットや社内ネットワークが円滑に運用できる環境を実際に構築します。
■サーバ設計/構築
サーバ設計ではWindowsやUNIXを駆使したサーバー環境の構築に必要な設計書・仕様書を作成します。
サーバ構築ではサーバーSEの作成した設計書や仕様書をもとにLinuxサーバーの設定を行い、ファイルサーバーやメールサーバー、
Webサーバーを実際に構築します。
システム保守 / 運用
■システム保守
システムが稼動し、一定期間が経過すると、システムに対する別の要求が発生します。開発の段階では要件定義の通りで良いが、実際に
運用してみると、システムのある部分に対する仕様変更の要望が発生してきます。これらのシステムの改造対応が、システムの保守作業です。
システムの保守は、一般的には保守契約を結んで、システム開発チームが対応します。具体的な作業内容としては、改造要件の明確化を行い、
あとは設計から製造、テストまでを行う流れで、システム開発の開発フェーズと同じ手順を踏みます。システム開発ほど大規模な保守作業は
あまり発生せず、ほとんどは少人数で対応します。
■システム運用
システム開発が終了すると、システムの運用が始まります。運用は開発とは別で、システムを実際に稼動させ続けることです。
システム運用の代表的な業務として、ユーザ問い合わせ対応、システムの監視、障害対応があげられます。
ユーザ問い合わせ対応は、システムの操作方法など、使い方に関する問い合わせに対し、迅速かつ正確に回答する作業です。
ユーザ対応専門の組織を用意し、必要なオペレータを常時待機させておきます。
システムの監視は、CPU利用率やメモリ使用量、起動プロセスなどを監視し、障害が発生する前兆を事前に察知する作業です。
システムはマシン上で動作するためシステムが稼動する時間帯によって、システムの利用率に変動が生じ、それに伴ってマシンへの
負荷も変動します。
障害対応は、何らかの原因で障害が発生したとき、システムを迅速に復旧させる作業のことです。どれほど堅牢に開発されたシステムでも、
障害は必ず発生する可能性があり、障害によって販売機会の損失や、障害の拡大につながってしまうため、システムの回復作業と恒久的な
対応策を投じる必要があります。