支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


今回はシステムエンジニアの業務内容について簡単に解説していきます。

システムエンジニアの業務内容

システムエンジニアはクライアントにヒアリングを行い、要求を元に仕様を決定した後、設計までの情報システム開発における上流工程のシステム設計の業務を担当します。

「要求分析・要件定義」、「基本設計」、「詳細設計」といった業務をメインとして、プログラマーがコーディングをする際に、システムを作るための設計図となる仕様書を作り、完成したシステムを実際に「テスト」することが主な業務の流れになります。

1.要求分析

システムやソフトウェア開発の初期段階において、クライアントがシステムに対して何を求めているのかを明確にしていく工程のことを指します。この工程では、クライアントが業務を遂行するにあたり、システムとソフトウェアを使って何を行い、何ができなければ困るのかといった内容を、開発側スタッフによる聞き取りと話し合いを通じて明確化していきます。

それらの結果は主にクライアントが普段使っている言葉で取りまとめられ、「要求定義書」という形で文書化します。ちなみに「要求分析」と「要求定義」はほぼ同義語とされますが、要求の分析結果を文書などにまとめる工程のみを「要求定義」として、要求分析の一工程とみなす場合もありますが、今回はより分かりやすくするために別のものとして扱います。

>2.要件定義

要求分析の次の段階として、明確化されたクライアントの要求を元に、システムやソフトウェアに実装すべき機能や満たすべき性能を決定する工程のことを指します。

クライアントがそのシステムで何を行いたいのかをベースに、それらを実現するために実装しなければならない機能や、達成しなければならない性能などを開発者が検討し、明確にしていきます。それらを取りまとめた成果は要求分析でも触れた「要件定義書」として文書化されます。なお、一般的にこの工程では何が必要なのかを定義することに留め、それをどのように実現するかは後の工程で検討されることになります。

専門の事業者にシステム開発を委託する際によく用いられるウォーターフォール型の開発モデルでは、要件定義はプロジェクトの最初に一度だけ行われ、これらを元にシステムの仕様や設計が固められます。

アジャイル開発などの同じ工程の流れを循環的に繰り返す反復型開発モデルでは、前の反復で作られた半完成品に触れながら要件定義を繰り返すことで、段階的に要件を明確化・詳細化していく手法が用いられることもあるなど、開発モデルによって要件定義に触れる機会はまちまちです。

3.基本設計

要件定義と詳細設計の中間に位置する工程で、対象の機能や構成などの大枠や基本的な仕様を決めていきます。顧客が必要とする事項をまとめた「要件定義書」などをベースに、どのようなシステムを開発すれば要求仕様を満たすことが出来るのかを検討し、使用機器やソフトウェアの構成、実装すべき機能、画面や帳票などの操作や入出力に関する事項、生成・保管されるデータの概要といったおおまかなシステムの基礎的な仕様を取りまとめ、取りまとめた内容は成果物として「基本設計書」などの文書や図版などを一式作成し、これを元に各部の詳細、実装方式などを策定する詳細設計を行います。

なお、基本設計は工業といった分野においても用いられる用語で、「構成や仕様、機能などの概要をまとめたものを意味する場合と、中枢や基盤の設計を意味する場合がある」とされています。情報システムやソフトウェアの受託開発の場合においては若干の差異があるので注意が必要です。

4.詳細設計

ソフトウェアや情報システムにおいて、前工程で定義された要素の仕様、動作詳細を定義する工程です。ここで前述した「基本設計書」が活かされることになります。全体工程の分割によっては具体的な作業内容が異なりますが、基本設計で定められた機能や操作、表示方法などに基づいて、システムとしてそれをどう実現するかを具体的に定めていきます。システム構成、処理方式とそれらの連携、統合の方法などを決めることが多く、内部設計とほぼ同義とする場合があります。

なお、詳細設計には実装段階で行われるものもあり、それらは定義されたシステム構造や仕様などをさらにプログラム単位に分割。各プログラムの動作を定義していく工程のことを指す場合があります。この場合、プログラム設計とほぼ同義とされます。

まとめ

・システムエンジニアの主な業務内容は、「要求分析・要件定義」、「基本設計」、「詳細設計」の上流工程がメインになる。

・要求分析で「クライアントがシステムに対して何を求めているのかを明確にし」、要件定義で「明確化されたクライアントの要求を元に、システムやソフトウェアに実装すべき機能や満たすべき性能を決定」。基本設計で「機能や構成などの大枠や基本的な仕様を決めて」、詳細設計で「定義された要素の仕様、動作詳細を定義する」ことがシステムエンジニアの業務である。