エンジニア

【フリーランスエンジニアが教える】基本設計で重要なことをまとめてみた

こんにちは、フリーランスエンジニアのエリーヴァです。
これまで、システムエンジニアとしてSES事業を経てあらゆる現場の開発をみてきました。

そこでは基本設計からコーディングが多いのですが、どの現場の基本設計においても重要なことは共通でしたので、本日はそれらを紹介していきます。

基本設計とは?


基本設計書は、システム作りを依頼、購入した「クライアント」に見せることも考えて作る必要があります。
したがって、主に外観を重視して作成していきます。

パッケージソフト等、依頼ではなく社内で作って売り出すという場合にも、見た目を意識した設計図となります。
主に記載すべき内容として、対応に至ったその「背景・経緯・検討」を記載することが重要です。

基本設計書を作成する際には、次を最低限記載するようにしましょう。

  • 現在のシステムの方式や仕様について
  • 類似システムとの相違点
  • ロジックの考慮
  • 今回の方針とその経緯
  • 性能の考慮
  • ユーザ運用への影響

現在のシステムの方式や仕様について

現在使用しているシステムの仕様や処理の方式などを記載します。
当時の開発経緯などシステム全体の説明を記載することを推奨します。

なぜ、全体説明や当時の開発経緯などを記載すべきかというと、そのシステムの作りが分からない人が品質評価やリリース決裁をする可能性があるからです。
それらシステムの仕様が分からない人向けに作ることが「基本設計の肝」となるのです。

ロジックの考慮/性能の考慮

今回の対応の変化が必要となる機能やモジュールなどを洗い出し、全体の改修内容を記載しましょう。
特に追加・変更による既存処理への影響(デグレード)は重大なチェックポイントになるので意識しましょう。

必要な機能の実装方法や考察は十分に行い、改修内容は「最小限」の対応となるよう意識をしましょう。
そして全体の処理が遅くならないよう性能面も必ず考慮しましょう。

具体的には次の2つを意識すると良いです。

  • アプリケーション:他機能への影響、処理速度の劣化
  • データベース:新規テーブルのIndex、TebleScanなどのSQL性能

ユーザ運用への影響

基本的な開発ではユーザ運用を変更することはあまり発生しません。
なぜなら一番はユーザ運用を変更しないように改修していくからです。

しかしながら、システム実装が難しく、運用を変更してもらわなければならない場合もあります。
もしも運用を変更する場合は必ず記載しましょう。

意識するポイント


基本設計について重要なことを共有してきましたが、それらを踏まえて「意識するポイント」を13個書き出しました。

設計チェックポイント
  1. 要望内容やシステム仕様について十分理解しているか
  2. 特許侵害、著作権、法律違反をしていないか
  3. 使用調整の内容が細かく記載されているか
  4. 設計内容はユーザ要望を正しく反映しているか
  5. システム対応する範囲は妥当であるか
  6. 該当処理は、運用として問題ないか
  7. 性能(処理時間)を考慮しているか
  8. 想定の開発規模を記載しているか
  9. 影響範囲を全て記載しているか
  10. 影響処理や機能の見積もりは妥当であるか
  11. 連携システムに影響がある場合、対象システムとの調整ができているか
  12. 修正量や試験などの開発工数は現実的か(1日あたりの作業量の考慮)
  13. 外部データのIN/OUTについて記載しているか

基本設計とは、作る予定のシステムやソフトウェアについて、大雑把に考える工程です。
クライアント(利用者)へのヒアリングを通して、イメージ通りのシステムやソフトウェアを作るための重要な工程となります。

基本設計をする際にはぜひこれら13個のチェックシートを利用し、要望と差異のないシステム開発ができるよう意識していきましょう。