ソフトウェア開発工程には、要件定義と実装の間に“設計”という工程があります。文字通りこれから開発するソフトウェアの設計を行うための工程なのですが、設計にはさらに“基本設計”と“詳細設計”の2つの工程に分かれています。
本稿ではこの2つの設計の違いを明確にして、ソフトウェア開発における設計の役割について解説します。
基本設計とは?詳細設計とは?
ソフトウェア開発における基本設計と詳細設計は、前者が大雑把な設計を行い、後者が細かい設計を行う工程だと誤解している方が多いでしょう。これは大きな誤解で、基本設計と詳細設計にはそれぞれ別々の役割があります。
- 基本設計の役割
ソフトウェアの動きを外から見た際にどういう動きをするのか?(What)を決めたもの - 詳細設計の役割
基本設計で決められた動きをどうやって実現するか?(How)を決めたもの
このように基本設計と詳細設計ではそもそも決定していく事項が違います。ちなみに設計書と仕様書の違いについて触れておくと、設計書が「どうやって作るか」を考えて作成するものであり、仕様書とは「何を作るのか?」を説明するための資料です。
基本設計は何を作る?
基本設計の前工程には要件定義があります。これは開発担当者がクライアント担当者にヒアリングした内容をもとにソフトウェアに必要な機能等を盛り込んだ資料です。基本設計ではこの要件定義にもとづいて、外側から見てどのような動きをするのかを確認します。
基本設計では次のような項目を設計します。
業務フロー | 業務の流れを理解し機能を洗い出す |
---|---|
機能一覧表 | 開発範囲となる機能の一覧 |
ネットワーク構成図 | ネットワークの構成 |
テーブル定義 | データベースのテーブルの定義 |
ER図 | データベースのER図の作成 |
画面レイアウト | 画面イメージ |
帳票レイアウト | 帳票イメージ |
詳細設計は何を作る?
基本設計はクライアントも一緒になって確認することが多いため、クライアントに見られることを想定して作ります。しかし次工程である詳細設計ではクライアントを意識せずに社内開発者が、開発向けに作った設計書の場合が多いです。
基本設計の役割
機能設計書 | 機能ごとに処理を記述する フローチャートを記述する 画面の詳細項目の説明 帳票の詳細項目の説明 |
---|---|
データベースの物理設計書 | データベースの物理設計書 |
設計のよくある課題
設計には色々と課題があります。ここではいくつかの課題を紹介しましょう。
課題① 設計の本質を理解していない
ソフトウェア開発における設計は、顧客へのヒアリング内容をもとに作成した要件定義をベースにして、顧客が持つビジネス上の課題を解決するようなソフトウェアの図面を作るというものです。しかしそれだけでは設計の本質を捉えきれていません。大切なのは「顧客の意図をくみ取り、必要な機能を導入でき、システムを実現するための手順を明確にし、かつ品質を保証すること」です。この本質を理解していないと、顧客の課題を解決することはできません。
課題②設計に関する基準が無い
システムを構築するためのプログラミングでは世界標準の言語を使用するので、ある程度の属人化は防げる傾向にあります。個人的に開発したプログラミング言語を使用することはまずないので、言語さえ習得していれば理解は難しくありません。もちろん、それでも属人化が発生することはあるので誰もが瞬時に理解できるプログラムの生成を心掛けることは大切です。
一方で設計には世界標準が存在せず、最悪の場合社内の開発チームによって設計方法が異なります。これが設計の属人化が発生する大きな理由です。
課題③標準化のための仕組みを持たない
設計から属人化を排除するためには組織が定めるルールを作成する必要があります。これを標準化というのですが、単にルールを作成するだけでは属人化は排除できません。徹底した属人化の排除には標準化の仕組みが大切です。
近年ではテンプレートだけを探してそれ通りに設計を書こうとしている人もいますが得策ではないでしょう。というのもプロジェクトごとに必要なものが異なるのは当然のことであり、テンプレートで必要なものが「足りなかった」とならないようにしなければいけません。
設計の課題を解決するには?
こうした設計の課題を解決するのが「設計の平準化」なのですが、これを実現できている企業は非常に少ないことも事実です。なぜなら社内ルールだけで設計書の記述やフォーマットを縛ることは事実上不可能であり、必ずどこかで設計者独自のものが組み込まれてしまいます。少しでもそうしたケースがあれば、設計の平準化はできません。
そこでおすすめしたいのがシステムインテグレータが提供するAI搭載の設計書作成ツール“SI Object Browser Designer(OBDZ)”です。SI Object Browser Designerを利用するとすべての設計者がまったく同じフォーマットを使用して設計書を作成できます。たとえばSI Object Browser Designerで画面レイアウトを作成すると、項目一覧(表)を自動生成、さらにイベントやロジック情報を入力するとI/O関連図を自動生成できます。平準化するだけではなく、これまで2度手間だった設計書作成作業も効率良く行えます。
SI Object Browser Designerを活用することで、企業は設計工程における生産性と品質を向上させることができます。過去の設計資産を活かしたり、設計書を自動生成したりすることで今まで多大な時間とコストを有していた処理があっという間に終わります。
設計課題を解消するとどんなメリットがあるのか?
SI Object Browser Designerを利用して設計の課題を解決すると、企業はどんなメリットが得られるのでしょうか?
1. 設計にかかる時間を大幅に短縮する
SI Object Browser Designerを利用することは企業にとって高い生産性をもたらします。設計は各開発工程と比べてもやることが多い工程です。そのためSI Object Browser Designerを導入することでの効果が大きく、今まで設計にかかっていた時間を半分以下に短縮できます。
2. 属人化を排除できる
属人化とは特定の人しかその業務が行えないという状況です。記述ルールやフォーマット形式が決まっていない会社では、属人化が簡単に発生します。属人化が横行してしまうとある業務を特定の人しか行えないという状況の陥るため、生産性が大幅に下がってしまいます。もしもその人が退職すれば、システムを理解できる人はいないでしょう。
3. 質の高い設計書が作れる
SI Object Browser Designerを使用すれば質の高い設計書を比較的簡単に作成できます。設計書作成を自動化するツールが組み込まれているので、質の高い設計書を短時間で作成できます。
4. 設計情報をデータベースで管理
すべての設計情報をDBで 一元管理します。プロジェクトをまたいだ横断検索や仕様変更時の影響範囲の特定の他、「いつ」「誰が」「何を」修正したかなどの変更管理が可能です。
以上のように、SI Object Browser Designerを利用することのメリットはたくさんあります。この他にも大切なポイントはたくさんあるので、設計について日々学んでいただければと思います。
本稿では基本設計と詳細設計の説明をしました。ユーザーは2つの設計のそれぞれの意義の違いをしっかりと考えて、基本設計と詳細設計理解しましょう。
- カテゴリ:
- コラム
- キーワード:
- 設計手法