詳細設計

詳細設計
この記事はシステム開発工程の詳細設計について解説した記事です。会話形式のやさしい文章で「詳細設計」の用語のイメージを紹介した後に、採用に役立つ詳細設計の知識を解説しています。

1分で分かる!システム開発における詳細設計とは?

ことりん君!この前の続きをやろうか!

ジャバ―ド先生おはようございます!この前ってなんだっけ…??

ほら、この前「詳細設計」について、別の機会に説明するって言ってたやつだよ!

あぁ!思い出した!この前はジャバ―ド先生に基本設計を教えてもらったよね!

それそれ!基本設計について忘れてしまってたら、まずそれを思い出してね。

完璧に覚えているので大丈夫!早く詳細設計について教えて!

じゃあ早速いってみよう!この前、基本設計ではいろんなことを検討しなきゃいけないっていってたの覚えてる?

覚えてます!たっっっっくさんあったよね!

そうだね!ちょっと復習しておくと画面設計書とか帳票設計書、それにデータベース関係の設計書もあったよね。もし、ことりん君がエンジニアだった場合、そういった基本設計書を受け取って、すぐにプログラミングできるかな?

う~ん。どうだろう…。あ、でも具体的にどういう処理をするかっていう内容は基本設計書には書いてなかったような…??

そうなんだ。基本設計書はあくまでも「アプリケーション全体に関するような仕様を決める工程」だったよね。だから、プログラミングを意識した詳細な設計には落とし込めていないんだ。

たしかにそれはエンジニアさんも困っちゃうよね…。

そうだね。でも困るだけじゃないよ。実際にプログラミングするエンジニアが、自分で考えてプログラミングしちゃうと、本来の仕様とは異なる誤った仕様でつくっちゃうことになるよね。

あっ、それは大問題だね!

だからエンジニアの人がプログラミングをする時に、困らないくらい、悩まないくらいのレベルまで詳細な処理を検討することを、詳細設計というんだ。ちなみに、詳細設計は基本設計とは違い、システム全体ではなく「その機能だけ」を考えて仕様を検討すれば良いよ!

そっか!基本設計である程度の機能に分けたから、次はその機能の1つずつを深く検討していく感じだね!

そのとおり!

あ、ジャバ―ド先生!ちなみに詳細設計も基本設計みたいに、たくさん設計書をつくらないといけないの?

詳細設計では、主に各機能の処理を記載した「機能設計書」と、データベースの詳細な仕様を記載した「データベース設計書」をつくるよ!種類は少ないけど、機能設計書は、それぞれの機能ごとにつくる必要があるから、たくさん設計書をつくらなければいけない という意味ではその通りだね!

なんかエンジニアってずっと資料作ってるんだね…。ジャバ―ド先生ありがとう!詳細設計についてはよくわかったよ!

よかったね!でも開発は詳細設計以降もまだまだ続くよ!そこについてはまた後日説明するよ!

まだ続くのか、、はい!さようなら!

 

詳細設計とは?詳細設計の基礎知識

詳細設計の業務内容

詳細設計は、基本設計で決定した仕様をもとに、各機能について、より詳細な処理や動作を決定していく工程です。

一般的には、要件定義から基本設計までを上流工程、詳細設計以降の作業を下流工程といいます。そして、上流工程はシステムエンジニアが、下流工程はプログラマーが対応することが多いです。(企業やプロジェクトによっても異なります。)ちなみに、下流工程だからといって、作業の重要度が下がるわけではありません。あくまでも作業を流れと見立てた場合の「上流」「下流」であるため、この点は注意しておきましょう。

詳細設計の品質が悪いと、プログラミング時に仕様の確認が発生します。このようなことが頻発すると、作業がスムーズに進まなくなります。そして、最悪の場合は、スケジュールが大幅に遅延する要因にもなり得るのです。

細設計に対するエンジニアの関わり方

詳細設計についても、エンジニアが主体となって作業をすすめます。

詳細設計では、基本設計書をもとにして作業をすすめます。詳細設計を作成する上でエンジニアが気を付けるべきポイントは、後の工程であるプログラミングを意識することです。頭の中でプログラミングを思い浮かべながら、実際にプログラミングする際に、悩まない粒度、手が止まらない粒度まで、詳細化した処理を決定していくことが求められます。

なお、基本設計の品質があまり良くない場合、仕様が矛盾していたり、内容が誤っていることもあります。このような基本設計の不備に気づいた場合は、速やかにチームの責任者へ報告をおこない、対応することもエンジニアの仕事です。

関連記事

  1. UiPath

  2. IaaS

  3. SAP

  4. OS(オペレーティングシステム)

  5. Node.js

  6. Typescript