07

15

状態マシン図 演習 解答例1ー3

2010.07.15(23:55)

(3-1) 図書館の書籍の状態は、貸出可と貸出中の状態がある。これをモデリングしなさい。


貸出可のときに、貸出すると、貸出中になり、貸出中のときに返却すると貸出可に戻る。
と読みます。

(3-2) 1つ前の書籍を拡張し、以下の要求を実現しなさい。
それぞれの書籍は、一定のメンテナンスタイミングがあって、その時期になると、メンテナンスしなければならない。まだ読めるかどうか判断したあと、OK なら貸出可に戻し、そうでなければ、廃棄処理する。貸出可の状態のときに、メンテナンスタイミングになれば、直ちにメンテナ ンスすることができるが、貸出中の状態のときに、メンテナンスタイミングになっても、戻ってくるまでメンテナンスできない。

まず、直交状態を使わないで、モデルを作成しなさい。


貸出中の間に、メンテナンスタイミングが来たことを覚えておくための状態が含まれています。これは返却がおきたときに、メンテナンス中に遷移させるためのものなのですが、このようにして貸出中が複雑になってゆくと、見通しが悪いです。

(3-3) 1つ前の書籍と同じ要求を実現し、直交状態を使って、モデルを作成しなさい。


いつ発生するかわからない、メンテナンスタイミングを、直交状態を作ってそちらで記憶しておきます。これをLatchStateパターンといいます。★1

このようにすると、貸出中を複雑にすることなく、メンテナンスタイミングが来たことを必要なタイミングが来るまで覚えておくことができます。

★1
リアルタイムUMLワークショップ
ブルース・ダグラス (著), 鈴木 尚志 (翻訳)
http://www.amazon.co.jp/dp/4798121118/

コメントの投稿

非公開コメント

プロフィール

島敏博

Shima Toshihiro 島敏博
信州アルプスハイランド在住。HaskellとElixirが好き。組み込みソフトウェアアーキテクト、C++プログラマ、山歩き、美術館巡り、和食食べ歩き、日本赤十字社救急法指導員、インデックス投資、クラシック音楽、SESSAME会員、状態マシン設計、モデル駆動開発、ソフトウェアプロダクトライン、Rubyist、実践ビジネス英語

■ ツイッター
http://twitter.com/saltheads
■ Facebook
http://www.facebook.com/saltheads
■ Qiita
http://qiita.com/saltheads

印刷する場合は、ブラウザの印刷メニューではなく、このページの上から3cmくらいの青いところにある、「印刷」を押してみてください。少しうまく印刷できます。まだ完全ではないのですが、これで勘弁してください。


カテゴリ
最新記事
月別アーカイブ
最新コメント
検索フォーム
リンク
sessame
RSSリンクの表示