業務で作成するドキュメント、プログラムとかと、情報処理試験との関係を考えてみる。
題材は、基本情報21年秋、午後の問5。
このシステムを作るとしたらどうなるか?
出題と、どこでどう関係してくるか・・・について書いてみる。
なお、出題が、「オブジェクト指向分析」と指定してあるので、原則オブジェクト指向、また、今回はV字型開発で考えてみる。
■要求仕様段階
要求仕様書には、機能仕様と非機能仕様が書かれている部分に分かれる。
このうち、機能仕様部分は、業務と、その業務で利用する情報(入力データと出力データ=帳票・画面など)に分かれる。
オブジェクト指向では、業務を記述するのに、
・まず、業務を出してくる方法としてユースケース図
・その業務の関係者と手順を考えるアクティビティ図
が作られる。業務で利用する情報に関しては、オブジェクト指向ではないが、
・業務で出力する帳票・画面などから、正規化して、ER図
を作成する。
ちなみに、オブジェクト指向以外では、
ユースケースのかわりにDMM、
アクティビティ図の変わりに業務流れ図
を作成し、データと業務の関連としてDFDを書く。
基本情報の場合、上流工程が範囲外なので、ここは詳しく書いていないが
(ただし、ER図は、問2の問題で出ている)問題文から作成するとすると、
以下の操作で作成できる
○ユースケース図
【一般には】
ユースケース(利用場面)を抽出する。ユースケースとなるものは、業務=プロセス=動作=動詞なので、動詞ないしは、動詞化できる名詞(サ変名詞)である。また、汎用的な、「行う」、「処理する」は、具体的に何を行うのかを書く。
ユースケースが見つかったら、そのユースケースに関係する人、外部システム等を抽出し、アクターとする。これは、動詞に対する主語、目的語となっている場合が多い。
それも行ったら、システム範囲を四角で囲む(あらかじめ、囲みやすい位置にユースケースを書いておく)
【この問題では】
基本情報21年秋 問5において、動詞が書かれているのは、「航空券発券業務の内容」の(1)であり(申し込んだ、空席確認及び発券を行う)、このうち、空席確認の内容を(3)で、発券の内容を(4)で詳しく説明している。特に、(4)で、発券には、「座席を確保し」、「顧客情報を登録し」、「航空券を発券する」の3つの動詞が包含されていることを示している。
以下の図になる。
○アクティビティ図
【一般には】
登場人物(ユースケースのアクターに相当)を1つの桁として書く。これがスイムレーンになる。そして、動詞の部分がアクティビティになる。アクティビティはそれを行う人のスイムレーンに書く。
【この問題では】
動詞と、登場人物の抽出方法は、ユースケースと同じ。発券については、詳細化されたレベルで記述。
以下の図になる。
○ER図
【一般には】
いままでで分析した業務において出力するもの(帳票・画面など)から、必要な情報をあつめ、それを正規化して求める。
【この問題では】
航空券が明示されていない。そこで、反則技だが、問5のクラス図から、クラス図→ER図を作る方法により、ER図を考えた。
以下の図になる。
■外部設計へのつなぎ
ER図からモデルのクラス図ができる(本当は・・・今回は逆算したけど)
また、
アクティビティ図から、シーケンス図のアクター側ができ、
その業務において、モデルのクラス図をどう操作するかを考えれば、モデル操作側のシーケンスができる
それを、画面、管理のシーケンスをつかってつないでいく。
もちろん、シーケンスでなく、ステートチャートで表現する場合もある。
ということで、設計編に続く