田中
2024.11.11
57
お疲れ様です、田中です。
システムを開発する中で設計が必要になりますが、人によっては基本設計から開発に落としこむ方もいます。
作業効率が良く、時間がない中で行う開発では必要になる技術の一つだと思います。
しかし、本来システムエンジニアは他人が見てもある程度理解できるものを作成しなければならないはずです。
基本設計のみでは、システムの概要しか掴めない人も出てくるでしょう。
システムエンジニア以外のユーザーやクライアントにどのようなシステムなのか、理解してもらう上でも詳細設計の技術は必要になります。
詳細設計とはシステムやソフトウエアを開発する工程の一つになります。
要件定義や基本設計で定めた要素や実践方法の詳細を具体的に定義する工程となります。
詳細設計では開発を行う上での、システムの仕様の詳細をまとめる役割を持ちます。
また、開発者向けの詳細設計や成果物をまとめた資料を詳細設計書といい、詳細設計書はシステム設計とシステム開発の橋渡しとなる重要な資料です。
詳細設計は、システム開発の工程において基本設計の次に行います。
基本設計で大まかに定められた内容に基づき、システムの実現方法を詳細に決定していきます。
基本設計と詳細設計では、目的が大きく異なります。
基本設計ではシステムのユーザーが直接目に見える部分の機能を構築するために設計します。
詳細設計では基本設計で構築した機能を実現するためのシステムの中身の部分を構築するために設計します。
詳細設計を行うことで、開発の品質水準を安定させることができます。
細かく開発方法を設定することで、開発者の経験値に依存することなく、安定したパフォーマンスで開発ができるようになります。
開発者が一から開発の方法を考えることになった場合、多くの時間と労力が必要になります。
しかし、事前に開発の具体的なルールや方向性を決定しておくことで、効率的に開発が行えるようになります。
また、開発を効率的に行うことにより、開発後の検証や確認作業に時間を多く費やすことができるようになります。
「生産性の向上」および「システムの品質の向上」を実現することができることから、詳細設計は重要な役割を果たす工程と言えます。
開発した後に詳細設計書をもとにシステムを検証することができます。
検証をせずにリリースしてしまった場合、システムエラーが生じてしまう可能性がありますが、詳細設計書があれば事前に回避することができます。
詳細設計書に基づいて検証を行えば、検証作業も効率的に行えます。
冒頭にも記載しましたが、システムエンジニアとは他人が見てもある程度理解のできる成果物が必要になります。
どのようなデータが必要になるか、どんな機能が実装されているのか、どのような場合にエラーが発生するのか、etc...挙げるとキリがありませんが、様々な状況・場面を想定してルールを定義することはとても重要になります。
ルールのない状態から開発するのは経験が浅いと本当に難しく、また経験がある程度あってもユーザーやクライアントにシステムの説明を行う際の資料がソースコードしかないと相手が理解するのに時間を要します。
その指標となるものとして、詳細設計が存在するので作業工程の意味と必要性を理解した上、作業を進めていくことが大事だと思います。