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

データ中心設計

X社は,30店舗をもつスーパーマーケットチェーンである。X社の店舗は,地域の顧客ニーズに合わせた商品選定,販売戦略によって,売上げを伸ばしている。

X社では,Webサイトで購入した商品を自宅に配送するサービス(以下,ネットスーパーという)を3年前から開始している。近年,他社も同様のサービスを開始し,競争が加熱している。

X社のネットスーバーを支える情報システム(以下,現行システムという)は,システム機能の追加や変更(以下,機能変更という)が多く,ソフトウェアが肥大化,複雑化している。そこで,X社では,顧客や店舗スタッフからの機能変更の要求に迅速に対応することを目的に,新しいネットスーパーシステム(以下,新システムという)を構築することにした。新システムの開発は,システム部門のY君が担当することになった。

【システム設計方法の調査】

Y君は,機能変更を繰り返しても,ソフトウェアの構造が複雑になりにくく,変更容易性の高いシステムが構築可能なデータ中心設計について調査した。

X社がこれまで採用してきたa中心設計は,データの設計に先行して機能を設計し,機能に合わせて必要なデータを設計する手法である。この手法を用いると,業務要件が変わると機能もデータも変更が必要となる。

一方で,データ中心設計は,データの構造は機能と比較して変わりにくいという点に注目し,機能の設計に先行してデータの設計を行う手法である。データを中心に設計することで,機能変更時にもデータの変更を少なくできる。

【現行システム機能の調査】

Y君は,現行システムの三つの機能と機能変更の頻度について調査した。

(1) 顧客管理機能

顧客情報を登録,更新するための機能。顧客には,顧客種別として,個人顧客と法人顧客があり,個人顧客には一般個人顧客とX社電子マネーをもつ会員個人顧客がある。この機能は,過去3年間に顧客種別の追加に関する機能変更が1回だけあった。

(2) 商品表示機能

顧客へ商品を表示する機能。商品には,商品種別として,通常商品のほか,通常商品を束ねたセット商品,特売商品,タイムセール商品,事前に予約することによって通常商品を割引価格で購入できる事前予約商品,及び顧客の購入履歴から算出したお勧め商品がある。商品種別ごとに画面の表示方法が異なる。この機能は,顧客にX社のネットスーパーを選択してもらうための重要な機能であり,商品種別の追加に関する機能変更が多い。

(3) 購入機能

顧客が商品を購入し,料金を支払う機能。料金支払には,X社電子マネー,クレジットカード,銀行振込,3種類の他社の電子マネーが利用できる。この機能への機能変更は多くない。

【概念データモデルの設計】

Y君は,現行システム機能の調査及び現行システムの関係者に対するヒアリングを行い,新システムが管理するデータの概念データモデルを設計した。図1にY君が設計した概念データモデル(抜粋)を示す。

図1 Y君が設計した概念データモデル(抜粋)

この概念データモデルのうち,通常商品と事前予約商品はc関係,通常商品とお勧め商品はd関係である。

【顧客管理機能の設計】

Y君は,顧客管理機能については,システム性能に重点を置きつつ,顧客管理機能への変更が他機能に与える影響を小さくする設計とした。図2にY君が設計した顧客管理機能の論理テーブルとソフトウェアのクラス図(抜粋)を示す。

開発者注記: 顧客についているアンダースコアはMermaidの仕様上つけているだけで元の図にはついていません

Y君は,顧客管理機能の論理テーブルとして,①顧客種別,顧客,個人顧客,法人顧客の四つのテーブルを設計した。また,ソフトウェアの設計として,②ソフトウェアの肥大化を防止するために顧客クラスを定義し,顧客クラスを継承するクラスとして一般個人顧客,会員個人顧客,法人顧客の三つのクラスを設計した。

【商品表示機能の設計】

Y君は,商品表示機能は機能変更の頻度が高いことを考慮し,システム性能よりも変更容易性に重点をおいた設計とした。図3にY君が設計した商品表示機能の論理テーブルとソフトウェアのクラス図(抜粋)を示す。

注記: 商品テーブルの商品種別情報属性には,商品種別ごとに異なる情報をまとめて格納する。

Y君は,商品表示機能の論理テーブルとして,③特売商品テーブル,セット商品テーブルなど商品種別ごとに多数のテーブルを作成するのではなく,商品種別と商品の二つのテーブルを作成し,運用環境へのリリース時の作業量を低減する設計とした。

また,ソフトウェア設計としては商品クラスを定義するとともに,④商品種別ごとに個別のクラスを設計した。

その後Y君は,新システムの設計及び構築を完了させ,X社は新システムを用いたネットスーパーのサービスを開始した。

出典:令和3年度 秋期 応用情報技術者試験 午後 問8