システムエンジニア

システムエンジニアとは

簡単にいうと
人間が行っている仕事を
人間がわかる文章に表し、
コンピュータがわかる文章に翻訳する人。

そこから発展して、
システムを作ることを仕事とする人の総称になってしまっている。

本来、業務知識保有者であり、システムの理解者である。
業務をシステム化できる人のみを呼称すべきである。

ちなみに、
システムエンジニアは業務要件を決めることはできない。
業務要件を決めるのはシステムの発注者。
システムエンジニアは、最後まで発注者が決められないこと程、柔軟にシステム化できる人。

システムエンジニアは、業務要件を体系的に整理し、
シンプルで、堅牢で、柔軟なシステムを設計する人のこと。

システムエンジニアは、業務要件を聞いたり相談にのれ、かつ、システム設計ができる人。

システムエンジニアは、システム設計もシステム化できる人。

データ

データとは

世の中の現象、実体(インスタンス)を、数値や記号で表したもの。

データモデル

データモデルの役割とは

概念データモデル

システム化対象範囲の業務プロセスをモデル化したものです。ビジネス活動全体を俯瞰的に捉えることができるため、概念データモデルから、システム化対象範囲を判断することができる。

論理データモデル

概念データモデルで確定した対象範囲に対して既存データベースやExcelファイル、帳票、画面など関連する情報から項目レベルでデータを捕捉し、企業が管理すべき対象「エンティティ」と、業務の流れを表す「リレーションシップ」をER図で表現します。データ重複の排除を行い、業務単位で必要となるデータを明確にし、ビジネスの将来的な変化に対応できる安定的なデータ構造を考慮し作成します。論理データモデルはビジネス活動を反映したものであり、ビジネスの視点で設計する必要がある。

物理データモデル

データベースの処理効率に留意し論理データモデルをシステムの視点で調節したデータモデルです。論理データモデルに対して処理効率上の施策を検討し、構造の変更を行う。

ハードウェア

ハードウェアとは

システムの物理的な構成要素、および物理的構成要素の集合体のこと。日本語で一般に言う機械。あるいは装置、設備。

フレームワーク

フレームワークとは

「骨組み、枠組み、足場」を意味する。

コンピュータシステムを作るとは、オブジェクトを洗い出し、設計するだけのことではない。それだけでは成立しない。サービスを提供して初めてシステムを作ったことになる。
サービスを成立させるためには、イベント(トリガー)から、どのオブジェクトのどのメソッドがどのような順序で呼ばれるべきかを制御しなければならない。

乱暴な言い方をするとサービス毎にメインプログラムを作成しなければならないが、このメインプログラム差分分析し、共通化したもの(制御ロジックの共通化)が、フレームワークといえる。

アプリケーションフレームワークは、

  1. 開発工数の短縮化
  2. 品質の均一化
  3. メンテナンス性の向上

が求められる。

プログラム

プログラムとは

コンピュータにさせる仕事の手順書のこと。
コンピュータでプログラムを作る作業をプログラミング(programming)と呼ぶ。
プログラミングでは、最初にコンピュータで行いたい仕事のために、プログラマがコンピュータになったつもりで、アルゴリズムを作る。
作ったアルゴリズムに従い、それを特定のプログラミング言語で記述する。
その記述された手順書がプログラムである。

ポリモフィズム

ポリモフィズムとは

多態性ともいう。
異なるオブジェクトに対して同じ命令をしても、各オブジェクトはそれぞれ独自の振る舞いを行うこと。
*重複したコードの排除
*重複した条件分岐の排除
*拡張性の向上
プログラムからIF文を排除し、シンプルにシステムを構築するための考え方。

ポリモフィズムとは、共通要素から差分を見た場合に、差分を複数要素としてではなく、単純な1種類の同一な要素として扱う方法である。

逆に考えた場合、差分は、もはや差分として扱われるのではなく、共通要素として扱われることになるが、結果としての事象については、本来個々の差分が内包していた個別性質が適用され、複雑な複数の種類の異なる事象が表現できる。

共通機能が、個別機能を統括するための共通のインタフェース(関連付け)が必要になり、共通のインタフェースを注入することで、共通機能から見た個別機能の差異を擬似的にカプセル化することが可能となる。

処理を差分分析し、データ化し、データデータの関係を整理することで実現できる。

リレーション

リレーションシップとは

エンティティエンティティには関係がある。
その関係のことをリレーションシップ(relationship)という。

そして、その関係は大きく2つに分けることができる。

  •  継承の関係
  •  保有の関係

関係は、何対何の関係なのかを正しく認識しておく必要がある。

  • 1:1
  • 1:n
  • n:n

リレーションを正しく分析することで、システムをシンプルに作り上げることができる。

システム開発に於いて、リレーションの分析がもっとも重要な分析と言える。
システムエンジニアプログラマは、リレーションシップ分析のプロフェッショナルである。