2016年 秋期 応用情報技術者試験 問8
モジュール分割
E社は,英会話教室や料理教室などのカルチャースクール向けにSaaSを提供する会社である。E社のサービスは,画面デザインやシステム機能を顧客向けにカスタマイズできる点が人気を集めており,約100社の顧客が利用している。E社のサービスを提供するシステムには,顧客向けのカスタマイズを容易にするために,システム機能の部品化による高い再利用性が求められている。
E社では,ビジネス拡大を目的としてスポーツクラブ向けの施設利用状況管理サービスを提供することになった。施設利用状況管理サービスを提供するシステム(以下,新システムという)の開発は,E社開発部のF君が担当することになった。
【新システムの概要】
新システムは,会員管理機能,利用管理機能,利用状況集計機能の三つの機能を提供する。会員管理機能は,会員の氏名や連絡先などの情報を登録・更新・削除する機能である。利用管理機能は,スポーツクラブの店に設置する受付機を用いて,会員の利用施設や利用開始・終了日時などの施設利用実績を記録する機能である。利用状況集計機能は,各施設の利用状況を集計してレポート出力する機能である。
【新システムのプログラムの開発方針】
F君は,E社のサービス提供方法を考慮したプログラムの開発方針を策定し,上司の承認を得た。F君が策定したプログラム開発方針を図1に示す。
・顧客向けのカスタマイズが容易となるように,また,特定モジュールへのカスタマイズが他のモジュールに与える影響が最小となるように,モジュール分割を行う。
・特定顧客向けに開発したモジュールが他顧客にも利用できるように,共通機能をモジュール化し,モジュール強度を高め,モジュール結合度を下げる。
【モジュール分割手法の選定】
F君は,新システムのモジュール設計を行うに当たり,モジュール分割手法の調査を行った。モジュール分割手法には,データを処理するトランザクションに着目して一連の処理をトランザクション単位にまとめてモジュールに分割するa,データの流れに着目してデータの入力・変換・出力の観点からモジュールに分割するb,データ構造に着目して入力データ構造と出力データ構造の対応関係からモジュールに分割するcなどがあることが分かった。
F君は,新システムは,会員の施設利用実績データを蓄積し,それを集計した結果をレポート出力するので,cが最適な手法であることを調査報告書にまとめ,上司の承認を得た。
【利用状況集計機能の入出力データ分析】
利用状況集計機能のプログラムは,施設利用実績データを集計し,店ごとに施設の利用状況をレポート出力する。
プログラムへの入力は,受付機で記録した施設利用実績データである。プログラムからの出力は,店ごとの施設の月間利用者数,最多利用者情報などを記載した施設利用レポートである。施設利用実績データの例を表1に,施設利用レポートの例を図2に示す。
利用店 | 施設名 | 会員番号 | 会員氏名 | 利用日 | 利用開始時刻 | 利用終了時刻 |
---|---|---|---|---|---|---|
A | プール | 0010 | Z | 2016-09-05 | 14:10 | 18:10 |
A | ジム | 0001 | W | 2016-09-01 | 10:00 | 12:00 |
A | ジム | 0001 | W | 2016-09-03 | 10:30 | 13:00 |
B | プール | 0002 | X | 2016-09-15 | 17:30 | 19:00 |
B | プール | 0010 | Z | 2016-09-10 | 15:10 | 16:10 |
C | プール | 0002 | X | 2016-09-19 | 18:10 | 20:30 |
C | スタジオ | 0003 | Y | 2016-09-26 | 19:50 | 21:10 |
施設利用レポート(月間)
・店名:A
・対象月:2016年09月
・月間利用者数:1,200名
□プールの利用状況
・平均同時利用者数:40名
・最多同時利用者数:(上位5名)
会員氏名 利用回数 総利用時間
Z 20 40時間
:
□スタジオの利用状況
・平均利用時間:2.0時間/人
・最多利用者情報:(上位5名)
会員氏名 利用回数 総利用時間
W 20 40時間
:
注記:当月の施設の利用者がいないときは,最多利用者情報(上位5名)の表の位置に"※当月の<施設名>利用者なし"という利用者なし表示を出力する。ここで,<施設名>は,施設名に置換される。
F君は,プログラムへの入出力データの分析を行い,入力データ構造図及び出力データ構造図を作成した。F君が作成した入力データ構造図を図3に示す。
【利用状況集計機能のプログラム構造の設計】
F君は,【利用状況集計機能の入出力データ分析】の結果を基に,プログラム構造の設計を行った。F君が設計したプログラム構造図を図4に示す。
【利用状況集計機能のモジュール分割】
F君は設計したプログラム構造図を基に,プログラム開発方針に従ってモジュール分割の検討を行った。F君が検討したプール利用状況出力処理のモジュール分割案を図5に示す。図5中の①~④の破線は,モジュール分割案を示している。
①プール利用状況出力処理
②最大同時利用者数出力処理 - 最多利用者情報出力処理
③上位利用者出力処理 - g
④利用者ごとの出力処理
会員氏名出力処理 - 利用回数出力処理 - 総利用時間出力処理
F君は,利用状況集計機能以外の機能についてもモジュール分割を行い,モジュール設計を完了させた。