🧡 half-of-string.comはシステムエンジニア(SE)の為になるサイトを目指しています。

half-of-string.com について

AIも活用し、難しかったことも普通にできることを目指しています。

AI(人工知能)について

過ぎたるは猶及ばざるが如し、余裕を持ってバランスの良い方法を用いましょう。

SEの方は、当サイトを見て、現在進行中のプロジェクトの再評価を試みるのもいいでしょう。

 
システムエンジニアとは何をする人でしょうか?

システムエンジニアは、顧客の要望を聞き出し(ヒアリング)、それを基にITシステムの企画・設計・開発・テスト・運用までを一貫して行う技術者です。

具体的には、画面レイアウトやデータベース構造を設計し、プログラマーへ指示を出し、プロジェクト全体の進行を管理する「上流工程」を主に担当します。

 
システムエンジニアの作業

システムエンジニアの作業は、単なるプログラミングではなく、クライアントのニーズをシステムという「形」にする全工程を指します。

システムエンジニアはドキュメントを作成します。

昔は手書きでドキュメントを作成していましたが、今は 便利なツール がありますので生産性を高くできます。

システム開発で使用されるツールについて

システム開発のライフサイクル(工程)

<注意点> 上流工程(要求分析・要件定義とシステム設計)に不備が多いと、後戻りが多発し、工期の延長と費用の増大を余儀なくされます。

  1. クライアント(または社内ユーザー)の「やりたいこと」を聞き出し、システムに必要な機能や性能を具体化する工程です。

    • ヒアリング

      業務フローを理解し、抱える課題(「手作業が多すぎる」など)を抽出する。

    • 情報収集

      リプレース案件の場合、リバースエンジニアリングによる情報収集が必要です。

    • 要件定義書作成

      「何を作るか」を明確にし、機能、セキュリティ、処理能力などの仕様を文書化する。

    • 合意形成

      ステークホルダーと最終的な成果物を確認し、契約を確定する。

  2. 要件定義書を元に、システム全体の構成(設計書)を作成する「上流工程」の核心部分です。

    • 基本設計
      • UI(User Interface)設計

        画面レイアウト、帳票デザイン、連携システムなど、ユーザーが見る部分を設計。

      • モジュール設計

        データ定義(DDL)を含むシステム内部を疎結合モジュールで構成し、堅牢なシステムを設計。

    • 詳細設計

      プログラマがコーディングできるレベルまで、処理手順、データベース、データ構造(コード一覧など)を細分化する。

  3. 設計書に基づいて、プログラマが実際のコードを書く工程です。SEは開発環境の構築指示、進捗管理そして設計書通りに動かない場合の技術的な解決(トラブルシューティング)を担当します。

    • 開発環境の構築指示

      プログラマが作業しやすい開発環境を作る。

    • データベース設計・構築

      必要なデータを効率的に保存する構造を作る。

    • 進捗管理

      スケジュールが遅れていないか、品質は確保されているかを監視する。

  4. 完成したシステムが要件定義書や設計書通りに動作するか確認する工程です。

    • 単体テスト

      最小機能単位の動作確認(開発者が行う)。

    • 結合テスト

      連携する機能同士が正しくデータを受け渡せているか確認。

    • システムテスト・受入テスト

      実際の運用に近い環境で、性能や機能が満たされているか確認。

  5. システムを本番環境へ移行し、安定稼働を維持するプロセスです。

    • インストール・移行

      サーバー環境へのソフトウェア設置。

    • 監視

      サーバーの負荷やエラーの監視。

    • トラブル対応

      障害発生時の原因特定と修正。

    • 保守

      法改正やビジネス変更に伴う機能追加・修正。

また、「システムエンジニアの役割別・作業内容」に基づいた分類は2種類に分かれます。
  • 社内SE(社内情報システム部)
    • 社内業務プロセスの改善提案
    • 社内ツールの導入・社内サポート
    • ITインフラ(ネットワーク、サーバー)の管理
  • ベンダーSE(受託開発企業)
    • クライアントへの提案・交渉
    • プロジェクト全体の進捗・予算・品質・リスク管理(プロジェクトマネジメント)
    • 詳細な仕様書、設計書の作成
以上のように体系化することで得られるメリットがあります。
  • 業務を構造化することで、以下の効果があります。
    • 属人化の解消

      学習や経験が必要となるが、誰が担当しても同等品質のシステムを作ることが可能。

    • 効率化

      次に何をすべきかが明確になり、手戻りが減る。

    • 品質管理

      各工程の成果物が明確になり、不具合を防ぎやすくなる。

 
🔝