システムエンジニアの仕事内容

システムエンジニアになりたい

システムエンジニアの仕事内容を実体験から詳しく解説!【就活時にも役立つ話】

2020年4月15日

 

システムエンジニア仕事内容具体的に知りたい。

いろいろ調べていると、難しい言葉などがあってなかなか想像しづらい。

就活でも、担当者の話についていけるようになりたいな。

 

この記事では、これからシステムエンジニアを目指したい大学生向けに、システムエンジニアの仕事内容についてわかりやすく解説していきます。

 

システムエンジニアとは何なのか...とモヤっとした気持ちが晴れるし、今後あなたの目指すべき方向も分かると思いますよ。

 

マー坊

IT企業やWEB会社でプログラマー&システムエンジニア歴17年、現在WEB系フリーランスの僕が実体験付きでお話しします。

 

システムエンジニアの仕事内容とは【具体例あり】

システムエンジニアの仕事内容3つ

システムエンジニアの主な仕事は、主に設計書をつくるエンジニアです

 

下記の3つのフェーズ(工程)があります。

  1. 要件定義
  2. 外部設計
  3. 詳細設計

 

ではこれから、以下のクライアントのシステム化に対する要望例を挙げて、各フェーズを解説します。

「これまで紙でやっていた保険の申込みを電子化したい」

 

1.要件定義

1.要件定義

 

  1. 要件定義
  2. 外部設計
  3. 詳細設計

 

要件定義とは、クライアントの要望をどのようにシステムとして具現化させるのか検討する段階です。

出来上がる成果物として「要件定義書」という設計書を作ります。

 

マー坊

IT業界の「要件定義」をビル建設の例でいうと、ビル建設するための設計書をつくる前の準備です。

例えば、「快適に過ごせるオフィスビルを建設したい」というクライアントの要望から、どんな機能をもつ部屋をつくるべきかを検討します。

受付、オフィス、カフェ、レストランなど、クライアントの目的を達成するための提案をします。

 

クライアントにヒアリングし、以下の手順で要件定義書を作成していきます。

  1. 目的を明確化させる
  2. 必要な機能を洗い出し
  3. 要件定義書を作成

 

1.目的を明確化させる

1.目的を明確化させる

 

「これまで紙でやっていた保険の申込みを電子化したい」

目的 ➡︎「保険申し込みの事務処理に関わる社員を削減したいから」

 

クライアントのシステム化をする目的を明確にしておきます

目的がわからないと、クライアントの潜在的な要望もわかりません。

 

ですから目的の先にある「こんな機能もあったらいいのでは?」というエンジニアからの提案もできません。

 

例えば、クライアントの会社で人員削減のためのシステム化であれば、その業務に関わる人材があまりいないことになります。

 

そうなると、ユーザーからの保険申し込みについて質問があった場合に、受ける窓口がなかったり、手薄にもなって対応しきれないことも考えられるからです。

 

ですから、システム的には質問専用のメール送信機能が必要であることや、あらかじめ「よくある質問」の解答機能が必要ないかをエンジニアから提案することもできます。

 

大事なことは、クライアントのシステム化する目的から、その先にある「機能的にあることで、ユーザーやクライアントにとって便利で良いもの」をエンジニアサイドから提案することです。

 

2.必要な機能を洗い出し

2.必要な機能を洗い出し

 

「これまで紙でやっていた保険の申込みを電子化したい」

必要な機能 ➡︎

「ユーザーが申し込みする内容(名前、電話、住所、メールアドレスなど...)」

「もし入力誤りがあれば申し込みをさせない→エラー表示」

「ユーザーが申し込みした情報はユーザー自身でPDFで保存可能」

「保険追加・変更・解約機能」など

 

クライアントとのヒアリングの中で、必要な機能の洗い出しを細かく行います

 

この作業がないと、クライアントの求めるシステム化が不十分になります。

システム完成後になって後戻りが発生し、機能を直したり追加しないといけなくなることがあるからです。

 

また、クライアントからの要望を一方的に聞くのではなく、聞いた内容をシステム的にどう実現するのかを説明することも必要です。

なぜなら、エンジニアの実現方法と、クライアントの思っている実現方法に相違がある可能性があるかもしれません。

 

例えば、ユーザーからの質問を受け付けたいとするならば、それをチャットなどのAPIを使って実現させるのか、専用メールでの対応なのか...

 

双方の認識の差異をなくさなければなりません。

そのためにも、クライアントの要望一つ一つに対しての実現可否はもちろんのこと、どのように具現化させるのかなどを事細かく詰めていく必要があります。

 

マー坊

クライアントからの要望を、実際にコーディングするにはどうすべきかなどを頭でイメージしながら実現可否を考えます。

また、業務に適したプログラミング言語もありますから、その選定も行います。

 

3.要件定義書を作成

3.要件定義書を作成

 

クライアントの要望を聞き入れたなら、実際に「要件定義書」を書いていきます。

 

前述した、以下の作業結果をまとめていきます。

  1. 目的を明確化させる
  2. 必要な機能を洗い出し

 

「要件定義書」を作成する目的は、クライアントに対する説明です。

ですから、専門的な用語などは入れずに、誰が読んでもわかりやすい記述をしていきます。

 

また、システム化することで、クライアントの抱える問題(業務課題)がどのように解決できるのかなども盛り込んでいきます

 

2.外部設計

2.外部設計

 

  1. 要件定義
  2. 外部設計
  3. 詳細設計

 

外部設計は、前述した「要件定義書」で決めた機能を、「外部設計書」という以下の成果物で具体化していきます。

  1. 画面・帳票設計書
  2. データベース設計
  3. インターフェース仕様

 

マー坊

「外部設計書」とは、ビルを建設するときの間取り図みたいなものです。

1階に受付や事務所や休憩所があって、2階にオフィスやトイレや給湯室....最上階に展望台やレストランなど、ビル内に持つ機能を書いていくイメージです。

 

順番に解説します。

 

ここでも同じように、下記クライアントのシステム化要望があったと仮定してお話します。

「これまで紙でやっていた保険の申込みを電子化したい」

 

1.画面・帳票設計書

1.画面・帳票設計書

 

画面・帳票設計書とは、画面上の入出力項目や(送信)ボタンをどこに配置するかなど「画面レイアウト」を設計します。

 

そして、画面操作により画面が切り替わる「画面遷移図」も設計します。

ユーザーが保険申し込みをするための入力画面の設計です。

 

また、出力帳票(ユーザーがダウンロードできるPDF)などがあれば、そのレイアウト設計もしていきます。

 

操作性や見た目などについて書かれていますから、システムに対する知識がないクライアントにも分かるような設計書です。

クライアントにレビューしてもらいながら、最終的に共通認識を持つことに役立ちます。

 

マー坊

画面上の入力ミス(未入力や形式エラーなど)があった場合の対処も、フロントサイド(画面側)でやるのか、サーバーサイド(アプリ側)でやるのかでプログラマーの負担も変わります。

ですから、コーディングのイメージを持ちながら設計します。

もちろんクライアントの要望が第一ですけどね!

 

2.データベース設計

2.データベース設計

 

データベース設計とは、どのような構成でデータベースを定義するのかを書いた設計書です。

 

大きく、論理設計と物理設計があるのですが...

難しいことはやめて簡単に解説します。

 

まずどのようなデータが必要なのか洗い出します

例)「顧客」「予約」「注文」など

 

次に、各データはどんな属性を持つのか定義します

例)「顧客」であれば、顧客ID、顧客名、電話番号、住所など

 

このあと、主キーや外部キー、データの冗長化をなくす正規化、テーブル同士の関係を表すER図を作りますが、初心者にとって難しいので割愛します。

 

マー坊

とりあえず、データベース設計では、必要となるデータや各データに持たせる属性を決めていくことです。

また、SQLといったデータを操作・定義する言語も理解しておかないと設計できませんよ。

 

3.インターフェース仕様

3.インターフェース仕様

 

インターフェース仕様というのは、外部システムとのデータのやりとりの仕組みを書いた設計書のこと。

インターフェース仕様書と言います。

 

具体的にいえば、保険を申し込んだ人のデータが、社外の本店システムに連携される場合などの接続方法やプロトコルなどを書きます。

 

以下、インターフェース仕様書に書いていく内容です。

  • 接続方式:社外であればインターネット、社内ならイントラネットなど
  • プロトコル:FTPなのかAPIを使うのかなど
  • データ形式:XML、JSON形式
  • インターフェース項目:実際にやり取りするデータ項目のこと(属性やバイト長など)
  • タイミング:オフラインである夜に接続かもしくはリアルタイムかなど

 

マー坊

外部システムとの認識相違があると、正しくデータ連携ができなくなります。

 

特に、インターフェース項目の設計については項目が多くなることもあります。

ですから、属性、バイト長などは入念に接続先と確認したりチェックが必要です。

 

3.詳細設計

3.詳細設計

 

詳細設計は、前述した「外部設計」で決めた機能を、さらに処理レベルまで落として書いていく設計書です。

  1. 要件定義
  2. 外部設計
  3. 詳細設計

 

マー坊

「詳細設計書」とは、ビル内の機能(受付、事務所、オフィス)をさらに具体化した設計書です。

受付、オフィスの内装やデザイン、照明の配置、電源箇所といった細部を決めます。

 

設計書に書くことは、具体的に言うと、入力データのチェックやデータ更新(SQL)などシステム内部における機能を記述します。

 

「詳細設計書」は各機能が処理レベルまでブレークダウンして記述されていますから、クライアントが見ても理解できません。

最終的にプログラマーに渡してコーディングしていく設計書となります。

 

マー坊

実際の開発では、プログラマーが詳細設計書を作ることもありました。

その場合には、システムエンジニアとのレビューで設計書の精度を上げていきます。

 

 

以上、システムエンジニアの主な仕事内容を解説しました。

 

まとめ:まずはプログラマーを目指しましょうね!

これからエンジニアを目指す大学生向けに、システムエンジニアの仕事内容を解説しました。

 

システムエンジニアの仕事内容は、主にクライアントの要望を聞いて設計書を作成します。

  • 要件定義:クライアント向けにシステム化する機能をまとめる
  • 外部設計:機能をさらに画面・帳票レイアウトなどに具現化しクライアント向けにつくる
  • 詳細設計:処理レベルで書いたプログラマー向けの設計書

 

当記事で書いたシステムエンジニアの仕事内容は、かなり簡単に書いています。

実際の仕事はさらに、奥深く複雑で、業務知識はもちろん、データベースやネットワーク、ハードウェアなどIT知識の幅広い知識も必要です。

 

さらに、クライアントのシステム化に対する悩みや疑問を聞き出すには、クライアントとのコミュニケーションもすごく重要です。

 

ですからまずは、ITエンジニアの第一ステップとしてプログラマーを目指し、様々な経験を経てシステムエンジニアになってくださいね。

関連【プログラマーとSEの違い】仕事・年収・求められるスキルを解説!【経験談】

 

 

この記事はいかがでしたでしょうか✨?

-システムエンジニアになりたい

© 2020 WEB系エンジニア-マー坊ブログ