AP22春後問8

AP22春後問8

応用情報技術者試験平成22年度春午後問8


 ソフトウェアのオブジェクト指向設計に問する次の記述を読んで,設問 1 ~ 3 に答えよ。


 今まで,Q 鉄道会社の自動券売機は,乗車券の発売しかできなかった。このたび,急行券も発売できる新型の自動券売機を開発することになった。急行券は,座席の指定は行わないが,乗車する急行列車を指定して発売する。

 新型の自動券売機の主なシナリオは,次のとおりである。


〔前提〕
  • 乗車券は,普通列車,急行列車にかかわらず,列車に乗るときに必要であり,乗車駅と降車駅を指定することによって,金額(運賃)が決まる。
  • 急行券は,急行列車に乗るときに必要であり,列車とその乗車駅,降車駅を指定す ることによって,金額(料金)が決まる。

〔発売時〕
  • 乗客は,まず購入する切符の種類(乗車券又は急行券)を選択し,乗車日,乗車駅,降車駅,人数及び急行券の場合は列車を自動券売機に入力する。
  • 自動券売機は,入力されたデータに基づいて,金額(運賃又は料金)を算出し,表示する。
  • 乗客は,表示内容でよければ,自動券売機に現金を投入し,発売ボタンを押す。表示内容でよくなければ,取消しボタンを押し,初期状態に戻す。
  • 発売ボタンが押されると,自動券売機は投入されている現金を確認して収納し,発券するとともに,釣りがあれば釣銭を返却する。

 ソフトウェアの設計には,UML のクラス図などを利用している。乗車券だけを発売する現在の自動券売機のクラス図を,図 1 に示す。


 新型の自動券売機では,クラス“乗車券”と“急行券”についてはスーパクラスを設けることにし,図 2 に示すクラス図を作成した。

f:id:tamagopanda:20100622201332p:image


f:id:tamagopanda:20100622201333p:image

 図 2 のクラス図におけるスーパクラス“切符”とそのサブクラス“乗車券”及び“急行券”では,共通の属性をスーパクラスに,サブクラス個別の属性を各サブクラスにもたせている。ただし,属性“運賃”と“料金”については,個別に残しながら,共通の属性“金額”を追加した。また,乗車券面編集と急行券面編集は,切符に印刷するイメージを作るための,それぞれのサブクラス個別の操作である。

 図 2 のクラス“操作機構”の属性“切符”は,実装ではオブジェクト”乗車券”又は”急行券”を指していて,“操作機構”からそれらのオブジェクトの操作を呼び出すことを可能にする。


 新型の自動券売機で急行券を発売する場合の正常処理について,図3に示すシーケンス図を作成した。範囲 [ c ] にはメッセージが入る。

f:id:tamagopanda:20100622201331p:image

設問1

 継承を使用した図2のクラス図について,(1),(2) に答えよ。

(1) [ a ],[ b ] に入れる適切な属性名又は操作名を答えよ。
(2) 多様性(ポリモルフィズム)をもつメッセージに該当する操作名を一つ答えよ。ただし,“発売”,“取消し”と“削除”は除く。


設問2

 図 3 のシーケンス図について,(1),(2) に答えよ。メッセージ名については,図 2 のクラス図中にある操作から選べ。

(1) [ c ] に入れるメッセージについて,送信側と受信側のクラス名,及び適切なメッセージ名を答えよ。
(2) [ d ],[ e ] に入れる適切なメッセージ名を答えよ。


設問3

 乗客が乗車券と急行券など,複数の切符を同時に購入する場合を考慮し,まとめて発売する機能を追加したい。乗客が,切符要求の入力後,に次の切符要求の入力を行い,最後に発売ボタンを押すことによって,それまでに入力した切符をまとめて発売できるようにする。

 これを実現するために,クラス図としては図 2 のクラスの配置は変えず,いずれかのクラスの属性一つと,そのクラスにかかわる関係の多重度を変えて対応する。

 変する必要がある属性の所属するクラス名と属性名を答えよ。また,その属性の変内容が分かる適切な変後の属性名を,10 字以内で答えよ。



問題掲載者による注意書き

  • [ a ][ b ][ c ]は,四角で囲まれていたが,テキスト表現をするため,[ ]で置き換えた。