2012年 秋期 応用情報技術者試験 問8

ディジタルオーディオプレーヤのオブジェクト指向設計に関する次の記述を読んで、設問1〜3に答えよ。

M 社は、ディジタルオーディオプレーヤを開発している。ディジタルオーディオプレーヤを制御するソフトウェアは、UML を使用して設計している。現行のディジタルオーディオプレーヤのクラス図を図1に示す。

M 社では、このディジタルオーディオプレーヤに、音声フォーマットの追加、曲名の表示方法の追加、及び倍速再生の追加を行うことになった。

【音声フォーマットの追加】

現在の仕様では、再生可能な音声フォーマットは2種類あり、それぞれ固有アルゴリズム1、2で対応している。固有アルゴリズムは音声フォーマットごとに開発する必要がある。

今回の修正では、新たな音声フォーマットを1種類追加して、固有アルゴリズム3で対応することになった。また、再生アルゴリズムクラスとフォーマット識別クラスを追加して、今後更に音声フォーマットを追加するときには、フォーマット識別クラスの修正と固有アルゴリズムクラスの追加だけで対応できるようにした。再生アルゴリズムクラスは、各固有アルゴリズムクラスの抽象クラスとなる。フォーマット識別クラスは、再生に使用する固有アルゴリズムを決定する。

【曲名の表示方法の追加】

現在の仕様では、選曲のために曲名などを表示する選曲画面がある。最初にアーティスト一覧を表示し、アーティストを選択するとアルバム一覧を表示する。アルバムを選択すると曲名一覧を表示する。

今回の修正では、ユーザの多様な検索に対応するために、様々な曲情報(アーティスト、アルバム、ジャンル、リリース年)を組み合わせて曲を検索できるようにした。図2に修正後の選曲画面の表示例を示す。

図2の画面を実現するために次のように設計した。各画面をフォルダに相当させた。フォルダの中にはフォルダと曲を格納することができる。そのフォルダの中に更にフォルダと曲を格納することができる。フォルダと曲を同一インタフェースで扱えるように、抽象クラスであるコンポーネントクラスを追加した。また、フォルダクラスとコンポーネントクラスを使用して、フォルダの再帰的なデータ構造を実現した。

【倍速再生の追加】

通常再生の他に、2倍速再生と3倍速再生を追加して、三つの再生モードに対応することになった。倍速再生の追加に伴い、再生機能の仕様を次のように整理した。

・曲名を選択して選曲ボタンを押すと選択済みとなる。選曲ボタンは、停止している

ときだけ有効で、繰り返して複数の曲名を選択することができる。また、選択済みの曲名を再選択すると選択解除となる。

・停止しているときに再生ボタンを押すと再生を開始する。このとき、選択済みの曲がない場合は停止のまま何もしない。再生とは、通常再生、2倍速再生、3倍速再生の総称である。再生を開始するときは、必ず通常再生から開始する。再生しているときに再生ボタンを押しても何もしない。

・再生しているときにモードボタンを押すたびに、通常再生、2倍速再生、3倍速再生の順番に再生モードが切り替わる。3倍速再生の次は通常再生に戻る。

・再生しているときに一時停止ボタンを押すと、再生を中断して一時停止となる。一時停止しているときに再生ボタンを押すと、中断したところから通常再生で再開する。一時停止又は停止しているときに一時停止ボタンを押しても何もしない。

・選択済みの曲全ての再生を終了すると停止となる。

・停止しているとき以外に停止ボタンを押すと停止となる。停止しているときに停止ボタンを押しても何もしない。

【クラス図とステートマシン図】

追加機能に対応して修正したクラス図と再生機能のステートマシン図を、それぞれ図3、図4として作成した。レビューで、ステートマシン図の再生ボタンの状態遷移について、再生機能の仕様と異なる点が指摘された

出典:平成24年度 秋期 応用情報技術者試験 午後 問8