プログラム仕様書（UML表記法）ガイドライン
本仕様書に、UML(Rational Rose使用)を用いてプログラム仕様書を作成する際のガイドラインを記す。
１．ドキュメントの様式について①ドキュメントは制御単位で作成する。
②表紙、及び変更履歴はSWSにて指定されたものを付加すること。
③下記の目次内で指定しているUML図・記述項目は必須項目とする。
④SoDaにてドキュメントを出力する場合は「４．Roseの利用方法について」に従うこと。
UML版目次１．プログラム処理仕様
1.1 概要
1.2 ユースケース

２．個別処理仕様
2.1 ユースケース名(1)2.2 ユースケース名(2)2.3 ユースケース名(3)・・３．モジュール仕様
４．・・・（エラーメッセージ一覧・その他補足事項）＊４以降は制御内容により記述が必要である場合に利用する。

①制御全体のユースケース図＊①はSoDa標準テンプレート
rup business use case model survey.docにて一括出力可能②～⑤はユースケースごとに記述する事とする。
②ユースケースの概要③ユースケースのシナリオ又はイベントフロー(但し、システム仕様書にて既に記載してある場合は参照場所を記述するのみでよい。記述内容は３．②参照)④クラス図⑤シーケンス図又はコラボレーション図＊②④⑤はSoDa標準テンプレート
rup use case realization report.docにて一括出力可能⑥全クラス内のメンバ名(フィールド・メソッド)及びメンバの説明（但し、メソッドの処理が複雑で文章だけでは説明が不十分になる可能性がある場合は、必要に応じて、アクティビティ図またはステートチャート図を利用すること。）＊⑥はSoDa標準テンプレート
classesattrsopstable.docにて一括出力可能

２．目的①RationalRoseを利用する場合にプログラム仕様書としての最低限必要な記述項目を明確にする。
②プログラム仕様書として記載内容に不足がない事をチェックする。
③UMLの知識があるものであれば、仕様書の内容を理解できること。
④Roseにて入力した内容をSoDaWordを利用したドキュメント作成を目標とする。
Roseにて入力した項目をSoDaで出力するだけでは、十分な仕様書を作成することはできないのでSoDaにて出力可能な項目と出力不可である項目を本仕様書に明記する。
＊従来(SWS)のプログラム仕様書の記述内容をUML図にて記述する場合に代用可能な項目を下記に示す。
↓SWS

プログラム仕様書、モジュール仕様書作成の手引きより(a)プログラム仕様書とモジュール仕様書を統合したドキュメントとする場合の記述項目(例)1.プログラム処理仕様
1.1 プログラム概要
1.2 処理の流れ
1.3 処理の制御方式
2.機能階層図
3.共通処理仕様
3.1 共通モジュール一覧
3.2 共通モジュール仕様
4.個別処理仕様
4.1 モジュール構造図
4.2 個別モジュール一覧
4.3 個別モジュール仕様
5.メモリレイアウト
6.テーブル仕様
7.ファイル仕様
8.メッセージ一覧
9.リソース割当て
10.その他、補足事項

シーケンス図またはコラボレーション図にて代用可能。
パッケージ図及びクラス図にて代用可能。

クラス内のメンバ名(フィールド・メソッド)及びメンバの説明（必要に応じて、アクティビティ図またはステートチャート図を利用）

５．～１０．についての記述は制御内容によって判断する。

３．UML作成時の心得
機能仕様書からのユースケース作成が一番難しく、適切なユースケース図を作成することにより、より良いシステム設計を行うことができる。
ユースケース：システムの利用者(外部システムを含む)をアクターとして、各アクターごとにシステムがどの様な機能やサービスを提供するべきかを識別したもの。
ユースケースを活用したUML作成手順を下記に示す。
①該当する制御の機能仕様書よりユースケース図を作成する。
→UMLを作成するにあたり、ユースケース図が無ければ設計が不可能といえる。
Roseでは各ユースケースごとにUML図を作成するとRoseのフォルダ構成が機能と対応し、ドキュメント作成も容易である。
(４．Rose利用方法について参照)②①で作成したユースケース図より１ユースケース単位で概要・シナリオ又はイベントフローを作成する。
(a)概要･･･一つのユースケースに対するユースケースの説明(b)シナリオ･･･一つのユースケースの流れを具体的に記述した文章。
シナリオ内で記述する名称・金額・数量などは実際の値を使用し、現実に処理が行われたように記述する。
(c)イベントフロー･･･一つのユースケースにおける全ての流れを、汎用的に記述する。
・事前条件･･･ユースケースを開始する為の制約や条件・事後条件･･･ユースケースが終了した後の制約や条件・基本フロー･･･イベントフローの最も一般的な流れ
・代替フロー･･･基本フローより頻度が少ないが正常な流れ
・例外フロー･･･正常終了しない流れ③②にて作成したシナリオ及びイベントフローよりユースケース単位でクラス図を作成する。
④②にて作成したシナリオ及びイベントフローと③にて作成したクラスを利用してユースケースごとにシーケンス図及びコラボレーション図を作成する。
→シーケンス図はシナリオ及びイベントフローの全てのパターンを網羅する必要がある。
モデリング時にパターンを少なく考慮するか、コラボレーション図を利用する。
UML作成時の注意事項(From UML推進チーム)
・UMLをSD時より利用するとシステム全体のユースケース図よりブレイクダウンした設計をおこなうことができる。(推奨)・設計者間でコミュニケーションを行い、データ中心にシステム設計を行う必要がある。
・共通データを扱う個所に関してはRoseファイルを統一して設計を行うとデータClassのずれを防ぐことができる。

４．Roseの利用方法について（Rose表記規約）
Roseのフォルダ構成を指定することにより、各フォルダの役割を明確にする。
また、SoDa標準テンプレートを用いてドキュメントを出力する場合は必ず下記の利用方法に従うこと。
新規作成する場合、Roseには3つのビュー(ユースケースビュー・論理ビュー・コンポーネントビュー)が存在する。
ユースケースビュー及び論理ビューを使用する。
①ユースケースビューのフォルダ構成についてユースケースビュー配下に下記のフォルダ階層を作成して利用する。
・ActerPackage･･･アクターを格納する。
・UscasePackage･･･ユースケースを格納する。
・UseCaseDiagramPackage･･･ユースケース図を格納する。

UseCaseDiagramPackageフォルダにてUseCase図作成時はアクター・ユースケースはActerPackage・UscasePackageにて作成したものを利用すること。

部品(アクター・ユースケース)をフォルダごとに整理すること。
ユースケース図の作成は部品を利用する。

ユースケースビューは部品とユースケース図置き場である。

＊アクターの新規作成について①ActerPackageフォルダを右クリック②「新規作成」を選択③｢アクター」を選択④アクター名を入力

名前を入力

＊アクターの設定項目について①[操作]タグフィールド内でメソッド名を入力

アクター内の設定情報は必ずActerPackage内にて行う。
変更の際は作成した図の中の情報が自動的に反映されるようになっている。
シーケンス図及びクラス図等を作成する
場合は必ずActerPackage配下に作成した＊ユースケースの新規作成①UscasePackageフォルダを右クリック②「新規作成」を選択③｢ユースケース」を選択④ユースケース名を入力

名前を入力

＊ユースケース図の新規作成について①UseCaseDiagramPackageフォルダを右クリック②「新規作成」を選択③｢ユースケース図」を選択④部品(アクター・ユースケース)を利用してユースケース図を作成する。

②論理ビューのフォルダ構成についてユースケースビュー配下に下記のフォルダ階層を作成して利用する。
・パッケージ階層のフォルダ（クラス作成）→＊クラスの新規作成参照
・1ユースケースごとに論理ビューの配下にフォルダを作成し、クラス図及びシーケンス図を格納する。
フォルダ名について
Rose英語利用：UCRD_ユースケース名"とする。
Rose日本語利用："ユースケースを実現する-ユースケース名"とする。

1.フォルダ名に対応するユースケースをUsecasePackageよりコピーする。

２．コピーしたユースケースのステレオタイプを"use-caserealization"に設定。
(SoDa出力する為にステレオタイプ

ユースケースの数と論理ビュー配下「ユースケース実現-・・・」のフォルダ数が一致する。
論理ビューはユースケース図を実現させる場所である。

＊クラスの新規作成について①パッケージ階層を論理ビューの直下に作成。
②クラスを置くフォルダを右クリック③「新規作成」を選択④｢クラス」を選択⑤クラス名を入力

名前を入力

パッケージ階層を論理ビューの直下にそのまま作成すること。

＊クラスの設定項目について①[基本]タグ

クラスの修飾子を選択

変更の際は作成した図の中の情報が自動的に反映されるようになっている。
フィールド内でシーケンス図及びクラス図等を作成する
場合は必ずココで作成したクラスを利用すること。

②[操作]タグ→クラス内のメソッド作成

＊シーケンス図の新規作成について①コピーしたユースケースを右クリック②「新規作成」を選択③｢シーケンス図」を選択
右クリック④部品（ユースケースビュー内に作成したもの）を利用してシーケンス図を作成する。

名前を入力

シーケンス図名の注意

シーケンス図名は正常時と異常時の違いがわかりやすい文字列を付加しておくこと。
→シーケンス図名 +"_"+ （基本フロー：基本 or PrimaryFlow,代替フロー：代替 or secondlyFlow,

＊クラス図の新規作成について①コピーしたユースケースを右クリック②「新規作成」を選択③｢クラス図」を選択
右クリック④部品（ユースケースビュー内に作成したもの）を利用してクラス図を作成する。

５．Rose入力必須項目について
SoDaテンプレートを用いてドキュメントを出力する場合のRose入力必須項目を明記する。
①アクターの入力必須項目
1.アクターの「アイテムの定義」
2.操作の「アイテムの定義」(操作を入力した場合)
1.アクターの「アイテム定義」

必須2.操作の「アイテムの定義」(操作を入力した場合)

ダブルクリック必須②ユースケースの入力必須項目
1.ユースケースの「アイテム定義」

必須③クラスの入力必須項目について
1.ユースケースーの「アイテムの定義」
2.操作（メソッド）の「アイテムの定義」
1.クラスの「アイテム定義」

必須2.操作(メソッド)の「アイテムの定義」

ダブルクリック

必須６．SoDA出力手順

SoDA出力はRoseの情報をアウトプットする手段であって、プログラム仕様書の完成品がドキュメントとして生成されるものではありません。また、配布テンプレートは標準とし、１．
ドキュメント仕様の内容を満たしておれば、テンプレートを独自で作成して利用してもよい
準備：Roseファイルおよびテンプレート・ドキュメント保存場所はローカルマシンの同じフォルダ内とする。
フォルダ名は任意とするが、フォルダパス内に日本語名が含まれない方がよい。
①１．プログラム処理仕様の出力
１．rup business use case model survey.docを実行する。
2.[Ｇｅｎｅｒａｔｅ Ｄｏｃｕｍｅｎｔｓ]を選択する。

3.[MDLFileName]の[Browse]を押下して、対象のRoseファイルを選択する。

4.[PackageName]の[Value]を選択して、「UseCaseDiagramPackage」を入力して「OK」を押下する。

②２．個別処理仕様の出力
1.rup use case realization report.docを実行する。
2.[Ｇｅｎｅｒａｔｅ Ｄｏｃｕｍｅｎｔｓ]を選択する。

論理ビュー配下のユースケースごとのフォルダ１つの内容を出力します。

3.[MDLFileName]の[Browse]を押下して、対象のRoseファイルを選択する。

4.[PackageName]に論理ビュー内の対象ユースケースのフォルダ名を入力。
[UseCaseName]に論理ビュー内の対象ユースケース名を入力。

③３．モジュール仕様の出力
１．rup business use case model survey.docを実行する。
2.[Ｇｅｎｅｒａｔｅ Ｄｏｃｕｍｅｎｔｓ]を選択する。

3.[MDLFileName]の[Browse]を押下して、対象のRoseファイルを選択する。