業務システムの開発ドキュメント標準化 第5回:詳細設計書(後半)

機能設計書のドキュメント体系


   これまでに、表紙、目次/概要、I/O関連図、画面/帳票レイアウト、項目説明書について説明してきました。今回は残りのドキュメントについて説明し、詳細設計フェーズのドキュメント編を完了します。詳細設計フェーズのアウトプットの1つである「機能設計書」を構成するドキュメント構成は、表1のとおりです。

ドキュメント

用途・内容

基本
設計

詳細
設計

機能設計書

機能別の設計書

(表紙)

 

(目次/概要)

 

 

(I/O関連図)

データと機能の関係を図示

 

(画面レイアウト)

画面イメージ

 

(帳票レイアウト)

帳票イメージ

 

(フローチャート)

バッチ処理のフローチャート

 

(項目説明書)

画面/帳票の項目説明

 

(イベント一覧)

画面操作で発生するイベントの一覧

 

(BL一覧)

機能に含まれるBL(ビジネスロジック)の一覧

 

(更新仕様書)

機能またはBL単位の更新・処理内容を記述

 

(補足説明書)

上記の記述に対する補足説明

 


表1:機能設計書のドキュメント構成


イベント一覧


   現在使われているの画面システムは、イベントドリブン(駆動)型のアプリケーションが主流です。イベントドリブンとは、画面のロード(呼び出し)やボタンのクリックなど、画面操作イベントをきっかけに処理が実行されるしくみを言います。アプリケーションは、プラットホームにより次のように3つの世代があります。

第1世代
汎用機、オフコン
第2世代
クライアント/サーバ
第3世代
Webアプリケーション


   第1世代では画面単位で処理が行われていました。これは画面上の社員コードや商品コードなど複数項目に入力した状態で、「実行ボタン」を押してはじめて社員名や商品名、単価などが取得され画面上に表示されるしくみとなります。

   第2世代とともに登場したイベントドリブン機能により、項目単位で処理が行われるようになりました。例えば社員コードを入力した場合、即座に社員名が取得され画面上に表示されます。コードの誤入力などがあっても、すぐにエラー表示されるのでユーザビリティが高い技法として広く普及しました。

   第3世代のWebアプリケーションは、普通に作成すると第1世代と同じく画面単位の処理となります。しかし、ASP.NETのポストバック機能などのようにWebでもイベントドリブン処理を実現できる機能が用意され、イベントドリブン型のWebアプリケーションが増えてきています。

   イベントドリブン型アプリケーションの処理内容は、イベント単位に記述しなければなりません。DUNGEONでは、このようなイベントドリブン型の画面アプリケーションに対応したフォーマットとして、図1のような「イベント一覧」を用意しています。

   左欄にはその画面で発生するイベント、中欄にはイベント発生時の処理内容、右欄にはイベントから呼び出されるBL(ビジネスロジック)を記述します。例えば図1の4行目を見ると、「検索ボタン.クリック」というイベント発生時に、BL「プロスペクト検索」が実行されるという処理が記述されています。

イベント一覧
図1:イベント一覧
(画像をクリックするとExcelファイルをダウンロードできます。/80.5KB)

コラム

MVCアーキテクチャに対応

   最近のアプリケーションは、MVCアーキテクチャで作成されることが多くなっています。これは画面対話型のアプリケーションを、処理(M:Model)、表示(V:View)、入力処理(C:Control)の3つのパートから構成させるものです。例えばJavaベースのアプリケーションでは、処理がJavaBeans、表示がJSP、入力がServletという構成になります。

   DUNGEONのフォーマットも、MVCアーキテクチャに対応したものになっています。処理を行うビジネスロジック(BL)と表示(HTMLやJSPなど)と入力処理(イベント)を分離し、表示部分は直接データを処理しない構造です。前回説明した「画面レイアウト」「項目説明書」は表示部分の定義、「イベント一覧」は入力処理の定義を記述する役割となります。

BL一覧表

   ビジネスロジック(BL)は、MVCアーキテクチャの処理部分(M)をつかさどるオブジェクトです。図2のように表示部分(V)や入力部分(C)からは直接データにアクセスせず、BLを経由してやり取りを行う構図となります。
MVCアーキテクチャ
図2:MVCアーキテクチャ

   BL一覧表は、この"機能"で使用されるBLをすべて洗い出し、BLとテーブルの関係を一覧で表したものです。第2回にCRUD表について説明しましたが、そのCRUD表をBL単位に表したものがBL一覧表ということになります。横欄にBLを並べ、縦欄に関連するテーブルをすべて記述します。そしてBL単位に表示(S)、挿入(I)、更新(U)、削除(D)のアクセスに分けて、BLとテーブルの関連を示します。

BL一覧表
図3:BL一覧表
(画像をクリックすると別ウィンドウに拡大図を表示します)


更新・処理仕様書

   各ビジネスロジックの更新・処理内容は、図4の「更新・処理仕様書」と図5の「補足説明書」に記述します。これまでのドキュメントは"機能"単位で作成するものでしたが、この2つはビジネスロジック単位で作成します。つまり、1機能の中にBLが3つ存在していれば、「更新・処理仕様書」「補足説明書」も3セット作成されることになります。

   更新・処理内容の記述は、アプリケーションの内容に応じて異なります。そのため、どこまでテンプレートの形で提供できるかは難しい課題となりますが、DUNGEONではインターフェースとデータ更新処理の2つを「更新・処理仕様書」で表形式とし、そこで表しきれない処理内容を「補足説明書」に記述するようにしています。

   図4は「更新・処理仕様書」のテンプレートです。左側の欄には、このBLに対する画面側から見た場合のインターフェース項目が記載されています。どのような引数を渡すか、そしてどんな処理結果をアウトプットとして受け取るかなど、内部処理とは独立した形でインターフェース項目を定義するのです。インターフェースされる各パラメータごとに、I/Oの区別、データ型、サイズ、必須かどうかなどについても定義します。

   右側の欄には、このBLから見たデータソースに対する更新処理を記述しています。アクセス対象となるテーブルや列を更新対象データ欄に記述し、列ごとにどのような値をセットするかを更新元データ欄に記述します。

   データに対するアクセスには、挿入と更新と削除があります。削除はレコード単位ですが、挿入と更新は列(項目)単位に値を記述する必要があります。挿入と更新で別々にアクセス内容を記述するのは手間なので、本シートではInsertを基準とし、Updateもある場合に更新欄に○を付けることで簡略記述化しています。

更新・処理仕様書
図4:更新・処理仕様書
(画像をクリックするとExcelファイルをダウンロードできます。/40.0KB)

   BLが受け取った値を元にそのままテーブルを更新する処理は、記述が非常に簡単です。インターフェース欄に書かれた入力項目が、そのまま更新元データ欄に記載され、更新対象データ欄のテーブル/列に対応します。

   もう少し複雑な処理も本シートで対応できます。例えば入力項目が「数量」と「単価」、更新対象データが「金額」というような場合は、更新元データ欄に計算式「数量」×「単価」と記載します。丸め処理を定義するような場合は、備考に「少数切捨て」というように記載すれば良いでしょう。

 

補足説明書

   もっと複雑な処理内容で、本シート上に書き切れないような場合は図5の「補足説明書」に記述します。本シートはBL単位に記述します。標準テンプレートの様式では表し切れなかった処理内容を自由様式で書き加えます。
補足説明書
図5:補足説明書
(画像をクリックすると別ウィンドウに拡大図を表示します)


バッチ処理フロー

   詳細設計書の記述対象には、画面や帳票のほかにバッチ処理があります。画面は「画面レイアウト」、帳票は「帳票レイアウト」というイメージ図を基本設計のアウトプットとしていましたが、バッチ処理の場合はその代わりに処理フローを記述することになります。

   図6はバッチ処理フローの例です。ここではフローチャート方式での記述となっていますが、どのようなバッチ処理となるかを図示できるのであれば、他の記述様式でもかまいません。とにかく、バッチ処理の概要をイメージで簡単に理解できることが大切なのです。

バッチ処理フローのサンプルテンプレート
図6:バッチ処理フローのサンプルテンプレート
(画像をクリックするとExcelファイルをダウンロードできます。/31.5KB)


画面遷移図

   機能設計書に含まれるドキュメントの説明はこれで完了です。画面、帳票、バッチ処理などの機能単位に、このテンプレートをベースに処理を記述していきます。最後にもう1つ、詳細設計フェーズで作成するドキュメント「画面遷移図」のテンプレートを紹介します。

   画面遷移図は文字通り画面の遷移(展開)を図で表したものです。図7は画面遷移図の例ですが、これを見ると「プロスペクト一覧」「プロスペクト登録」「見積一覧」「見積入力」などの各画面が、どのような遷移で呼び出されるかを直感的に理解できます。

   画面遷移図は対象となる画面を配置し、画面間の呼び出し関係を矢印で表します。ここでは"レベル"という階層の概念を用意しています。このように画面をレベルと対比させて図示することにより、奇妙な画面遷移になることを防止できます。

画面遷移図
図7:画面遷移図
(画像をクリックするとExcelファイルをダウンロードできます。/35.0KB)

コラム
モーダルダイアログとモードレスダイアログ

   一般的に、ある画面から別の画面を表示する場合には、新画面を閉じるまでは元画面を操作できない(モーダルダイアログ)と新・元の両方を平行操作可能(モードレスダイアログ)の2種類あります。業務処理などのようにわかりやすい操作を優先する場合は前者、ツールなどのように効率的な操作を行いたい場合は後者が用いられます。

   図7の例はモーダル方式だけなのでシンプルな矢印で表現しています。もしも画面によってモードレス方式も併用するようであれば、矢印の種類や色などによりどちらの方式で画面遷移するのかも補足説明することになります。
まとめ

   今回は、機能設計書の残りのドキュメントについて説明しました。オブジェクト指向、イベントドリブン型、MVC準拠という現代のアプリケーションに対応した様式になっていることが理解できたと思います。また詳細設計書の最後のドキュメントとして「画面遷移図」も紹介しました。

   次回は「テスト仕様書」などテスト工程における標準ドキュメントについて説明する予定です。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值