令和3年度 秋期 応用情報技術者試験 午後 問題 問8 ネットスーパーシステムの再構築におけるデータ中心設計の適用

学習ガイド

ネットスーパーのシステム再構築において、機能変更に強いデータ中心設計を採用する事例です。概念データモデルにおけるエンティティ間の関係性や、変更の頻度に応じた論理テーブルの設計、プログラムの肥大化を防ぐためのクラス設計の目的が問われます。要件の調査結果に記載されたデータの種類や変更の頻度と、設計されたテーブルやクラスの構造を見比べ、その設計に至った背景の理由を考えます。

この記事で押さえる論点

  • プロセス中心設計に対するデータ中心設計の利点を説明できる
  • 業務要件から概念データモデルのエンティティ間の関係を導ける
  • 性能と変更容易性のバランスを考慮して論理テーブルの構造を設計できる
  • 共通処理の統合と個別処理の分離を実現するクラス設計の目的を述べられる

問題本文

問8 データ中心設計に関する次の記述を読んで,設問1〜4に答えよ。

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君が設計した概念データモデル(抜粋)
図の説明テキスト

図1 Y君が設計した概念データモデル(抜粋)
ER図(概念データモデル)として描かれている。

  • 「顧客」から空欄bのエンティティへ1対多の関連(矢印がb側を向き、b側が多)。
  • 「b」と「商品」は多対多の関連(両端矢印)。
  • 「b」と「支払」は1対1の関連(矢印のない直線)。
  • 「顧客」のサブタイプとして「個人顧客」「法人顧客」がある。
  • 「個人顧客」のサブタイプとして「一般個人顧客」「会員個人顧客」がある。
  • 「支払」のサブタイプとして「クレジットカード」「銀行振込」「X社電子マネー」「他社の電子マネー」がある(一つのサブタイプ記号にまとめて接続)。
  • 「商品」のサブタイプとして「通常商品」「特売商品」「タイムセール商品」が一つのサブタイプ記号にまとめて接続されている。これとは別のサブタイプ記号で「お勧め商品」が「商品」に接続されている。
  • 「通常商品」には、通常商品自身を始点・終点とする1対多の関連(自己参照の矢印)がある。
  • 「通常商品」のサブタイプとして「事前予約商品」がある。
  • 凡例(破線枠内): 四角形がエンティティ、両端矢印が多対多、片側矢印が1対多、直線が1対1、白抜き三角の付いた線がサブタイプを表す。

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

〔顧客管理機能の設計〕

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

図2 Y君が設計した顧客管理機能の論理テーブルとソフトウェアのクラス図(抜粋)
図の説明テキスト

図2 Y君が設計した顧客管理機能の論理テーブルとソフトウェアのクラス図 (抜粋)
左側に「論理テーブルのクラス図」、右側に「ソフトウェアのクラス図」、中央下部に「凡例」が配置されている。

【論理テーブルのクラス図】

  • 「顧客種別」クラス (属性: 顧客種別コード, 顧客種別名) から「顧客」クラス (属性: 顧客番号, 顧客種別コード, 配送先住所, 配送先氏名, 配送先電話番号) へ関連があり、多重度は顧客種別が「1」、顧客が「0..*」。
  • 「顧客」クラスから「個人顧客」クラス (属性: 顧客番号, X社電子マネー番号) へ関連があり、多重度は顧客が「1」、個人顧客が「0..1」。
  • 「顧客」クラスから「法人顧客」クラス (属性: 顧客番号, 法人名, 担当者名, 担当者電話番号, 本社住所, 本社電話番号) へ関連があり、多重度は顧客が「1」、法人顧客が「0..1」。

【ソフトウェアのクラス図】

  • 「一般個人顧客」クラス (属性・操作の記載なし)、「会員個人顧客」クラス (属性: X社電子マネー番号、操作: getX社電子マネー番号())、「法人顧客」クラス (属性: 法人名, 担当者名, 担当者電話番号, 本社住所, 本社電話番号、操作: get法人名(), get担当者名(), get担当者電話番号(), get本社住所(), get本社電話番号()) の3つのクラスが、「顧客」クラス (属性: 顧客番号, 顧客種別コード, 配送先住所, 配送先氏名, 配送先電話番号、操作: get顧客番号(), get顧客種別コード(), get配送先住所(), get配送先氏名(), get配送先電話番号()) を継承している(白抜き三角の矢印が顧客クラスへ向かう)。

【凡例】

  • 枠が3段または2段に分かれた図: 上から順に「クラス名」「属性名」「操作名」
  • 白抜き三角の矢印付き実線: 継承関係
  • 実線: 関連
  • 1: 多重度1
  • 0..1: 多重度0又は1
  • 0..*: 多重度0以上

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

〔商品表示機能の設計〕

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

図3 Y君が設計した商品表示機能の論理テーブルとソフトウェアのクラス図(抜粋)
図の説明テキスト

2つのUMLクラス図と注記・キャプションからなる図。

論理テーブルのクラス図

  • 商品種別 クラス (属性: 商品種別コード, 商品種別名)
  • 商品 クラス (属性: 商品コード, 商品種別コード, 商品名, 販売価格, 販売数量, 商品説明, 商品個別情報, セット商品コード)
  • リレーション: 商品種別 (1) に対して 商品 (0..*) が関連付いている。

ソフトウェアのクラス図

  • 商品 クラス(スーパークラス)
    • 属性: 商品コード, 商品種別コード, 商品名, 販売価格, 販売数量, 商品説明
    • メソッド: get商品コード(), get商品種別コード(), get商品名(), get販売価格(), get販売数量(), get商品説明(), 画面表示()
  • 以下のうち 通常商品・特売商品・セット商品・タイムセール商品 の4クラスが白抜きの三角矢印で 商品 クラスを継承し、事前予約商品 は 通常商品 クラスを継承している:
    • 通常商品 クラス (属性: ※省略, メソッド: 画面表示())
    • 特売商品 クラス (属性: ※省略, メソッド: get割引率(), get割引額(), 画面表示())
    • セット商品 クラス (属性: ※省略, メソッド: 商品一覧(), 画面表示())
    • タイムセール商品 クラス (属性: ※省略, メソッド: get開始日時(), get終了日時(), get割引率(), get割引額(), 画面表示())
    • 事前予約商品 クラス (属性: ※省略, メソッド: get予約日(), get割引率(), 画面表示())

注記

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

キャプション

  • 「図3 Y君が設計した商品表示機能の論理テーブルとソフトウェアのクラス図(抜粋)」

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

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

設問と解答・解説

設問1

配点 3点

本文中の a に入れる,データ中心設計と対比される適切な字句を答えよ。

模範解答

プロセス

採点基準

正確性(内容)3点
  • 3点: 「プロセス」と正しく解答している。
  • 1点: 「機能」など、意味的には近いが、データ中心設計と対比する専門用語としては不正確な解答をしている。
  • 0点: 無解答、または上記以外の誤り。

解説

データ中心設計(DOA: Data Oriented Approach)と対比される代表的なシステム設計手法は、プロセス中心設計(POA: Process Oriented Approach)です。

本文中において、X社がこれまで採用してきた手法は「データの設計に先行して機能を設計し,機能に合わせて必要なデータを設計する手法」と説明されています。このように業務の機能(プロセス)を中心にしてシステム構造を決定していくアプローチをプロセス中心設計と呼びます。したがって、空欄 a には「プロセス」が入ります。

設問2

〔概念データモデルの設計〕について,(1)〜(3)に答えよ。

(1)配点 3点

図1中の b に入れる適切な字句を〔現行システム機能の調査〕内の字句を使って答えよ。

模範解答

購入

採点基準

正確性(内容)3点
  • 3点: 「購入」と正しく解答している。
  • 1点: 解答に「購入」が含まれるが、指定された字句以外の不要な文字(例:「購入機能」など)が含まれている。
  • 0点: 無解答、または誤り。

解説

図1の概念データモデルを見ると、空欄 b のエンティティは以下の関連を持っています。

  • 「顧客」と1対多の関連(顧客が1、bが多)
  • 「商品」と多対多の関連
  • 「支払」と1対1の関連

〔現行システム機能の調査〕の「(3) 購入機能」には、「顧客が商品を購入し,料金を支払う機能」と記述されています(料金の支払が図1の「支払」に当たります)。
業務の構造上、1人の顧客は複数回の購入を行い(1対多)、1回の購入には複数の商品が含まれ、1つの商品も複数回購入されます(多対多)。また、1回の購入に対して1回の支払いが紐付きます(1対1)。

これらのエンティティ間の関係性を全て満たす業務イベントは「購入」であるため、空欄 b には「購入」が入ります。

高得点のポイント

  • 〔現行システム機能の調査〕の記述から、指定された字句を正確に抜き出すこと。
(2)配点 3点

図1中の通常商品を始点とし通常商品を終点とする1対多の関連は何を意味するか〔現行システム機能の調査〕内の字句を使って答えよ。

模範解答

セット商品

採点基準

正確性(内容)3点
  • 3点: 「セット商品」と正しく解答している。
  • 1点: 解答に「セット」などのキーワードが含まれるが、指定された字句と完全に一致しない。
  • 0点: 無解答、または誤り。

解説

図1の概念データモデルにおいて、「通常商品」自身を始点とし終点とする1対多の関連(自己参照の関連)が描かれています。これは、ある「通常商品」のデータが、他の複数の「通常商品」のデータと階層的またはグループ的に紐付くデータ構造を表しています。

〔現行システム機能の調査〕の「(2) 商品表示機能」を確認すると、商品の種別として「通常商品を束ねたセット商品」という記述があります。
1つの「セット商品」は、それ自体が商品として扱われつつ、内部的に複数の「通常商品」から構成されます。このように同一エンティティ内で「全体と部分」の関係を持つため、自己参照の1対多の関連で表現されます。

したがって、この関連が意味するものは「セット商品」となります。

高得点のポイント

  • 〔現行システム機能の調査〕の記述から、通常商品の集合体を指す字句を正確に抜き出すこと。
(3)配点 1点

本文中の c,d に入れる適切な字句を,解答群の中から選び,記号で答えよ。

ア. 共存
イ. 排他
ウ. 包含

模範解答

選択肢ウ: 包含

解説

図1の概念データモデルにおけるサブタイプの分類ルールに関する問題です。

空欄 c は、「通常商品」と「事前予約商品」の間の関係を問うています。
〔現行システム機能の調査〕の「(2) 商品表示機能」には、「事前に予約することによって通常商品を割引価格で購入できる事前予約商品」と記述されています。
これは、事前予約商品が通常商品という大きな枠組みの中の一部(特定の販売形態)であることを示しています。このように、上位のエンティティ(スーパークラス)の集合の中に、下位のエンティティ(サブクラス)の集合が完全に含まれる関係を 包含 関係と呼びます。したがって、正解は ウ です。

各選択肢の解説

  • ア 共存: 1つのインスタンスが複数のサブタイプに同時に属することができる関係です。通常商品と事前予約商品は階層(包含)の関係にあるため、共存とは呼びません。
  • イ 排他: あるインスタンスが複数のサブタイプのいずれか1つにしか属さない関係です。通常商品と事前予約商品は同列のサブタイプではないため、排他ではありません。
(4)配点 1点

本文中の c,d に入れる適切な字句を,解答群の中から選び,記号で答えよ。

ア. 共存
イ. 排他
ウ. 包含

模範解答

選択肢ア: 共存

解説

図1の概念データモデルにおけるサブタイプの分類ルールに関する問題です。

空欄 d は、「通常商品」と「お勧め商品」の間の関係を問うています。
図1では、「商品」のサブタイプとして、「通常商品・特売商品・タイムセール商品」のグループと、「お勧め商品」のグループが、別々のサブタイプ記号(白抜き三角)で接続されています。
「通常商品」などは販売形態による分類であり、互いに重複しない(排他)関係にありますが、「お勧め商品」は「顧客の購入履歴から算出した」という全く別の観点(レコメンド)による分類です。
そのため、ある商品が「通常商品」でありながら、同時に「お勧め商品」として扱われることがあり得ます。このように、1つのインスタンスが複数のサブタイプに同時に属することができる関係を 共存 関係と呼びます。したがって、正解は ア です。

各選択肢の解説

  • イ 排他: 1つの商品が通常商品とお勧め商品のどちらか一方にしかなれない関係を指しますが、実際には両立し得るため誤りです。
  • ウ 包含: お勧め商品の中には特売商品などが選ばれる可能性もあり、通常商品の中に完全に含まれるわけではないため誤りです。

設問3

〔顧客管理機能の設計〕について,(1),(2)に答えよ。

(1)配点 1点

本文中の下線①について,一般個人顧客と会員個人顧客を二つのテーブルに分けるのではなく個人顧客というテーブルとした理由として,ふさわしくないものを解答群の中から選び,記号で答えよ。

ア. 一般個人顧客と会員個人顧客で属性に大きな差がないから
イ. 顧客種別には,多くの変更が入らないことが予想されるから
ウ. テーブルへの列追加時に顧客管理機能のソフトウェアの影響調査の範囲が小さくなるから
エ. 販売実績の集計などを行う場合に,二つのテーブルではテーブル結合が多くなり,データベースサーバの負荷が大きいから

模範解答

選択肢ウ: テーブルへの列追加時に顧客管理機能のソフトウェアの影響調査の範囲が小さくなるから

解説

〔顧客管理機能の設計〕において、Y君は「システム性能に重点を置きつつ、顧客管理機能への変更が他機能に与える影響を小さくする設計」を目指しています。
個人顧客を「一般個人顧客」と「会員個人顧客」の2つのテーブルに分けた場合と、「個人顧客」という1つのテーブルにまとめた場合の違いについて検討します。

選択肢 ウ は「テーブルへの列追加時に顧客管理機能のソフトウェアの影響調査の範囲が小さくなるから」としていますが、1つのテーブルに情報をまとめている場合、そのテーブルに列を追加した際の影響範囲は、テーブルを参照するすべてのプログラムに及ぶ可能性があり、テーブルを分けている場合よりもむしろ影響範囲が大きくなる(または変わらない)と考えられます。したがって、1つのテーブルにまとめた理由としては不適切であり、これが正解となります。

各選択肢の解説

  • ア 一般個人顧客と会員個人顧客で属性に大きな差がないから: 図2のソフトウェアのクラス図を見ると、会員には「X社電子マネー番号」があるのみで他の属性は共通です。属性の差が小さければ、統合して1テーブルにする(不要な列はNULLを許容する等)のが自然であり、理由として適切です。
  • イ 顧客種別には,多くの変更が入らないことが予想されるから: 〔現行システム機能の調査〕(1)で、過去3年間に顧客種別の変更が1回しかなかったとされています。変更頻度が低いため、変更容易性(テーブルを分ける)よりもテーブル数を減らして性能を優先する理由として適切です。
  • エ 販売実績の集計などを行う場合に,二つのテーブルではテーブル結合が多くなり,データベースサーバの負荷が大きいから: 個人顧客全体を対象とした集計処理を行う際、テーブルが分かれているとUNIONやJOINなどの結合処理が必要となり、性能が低下します。システム性能に重点を置く目的と合致するため、理由として適切です。
(2)配点 2点

本文中の下線②について,顧客クラスを定義することでソフトウェアの肥大化が防止できるのはなぜか,30字以内で述べよ。

模範解答

顧客種別によらない共通な処理を一か所で定義できるから

採点基準

知識・理解度(内容)1点
  • 1点: 共通の処理や属性を一箇所に集約・定義できる旨を記述している。
  • 0点: 言及がない、または誤り。
論理性(構造)1点
  • 1点: 「〜から」「〜ため」の理由の形で、共通の処理(属性・操作)を顧客クラスの一か所で定義できる(各クラスに重複して書かなくてよい)ことを述べている。
  • 0点: 理由の形になっていない、又は肥大化の防止と結び付かない。

解説

図2のソフトウェアのクラス図において、親となる「顧客」クラスには、「顧客番号」や「配送先住所」などの共通の属性と、それらを取得する「get顧客番号()」などの共通の操作(メソッド)が定義されています。

サブクラスである「一般個人顧客」「会員個人顧客」「法人顧客」は、この「顧客」クラスを継承しています。継承を利用することで、顧客種別に関わらず共通して行われる処理(属性の定義や取得メソッドなど)を、スーパークラスである「顧客」クラスの一か所にまとめて定義することができます。

これにより、各サブクラスに同じコードを重複して記述する必要がなくなり、プログラム全体のコード量が削減されるため、ソフトウェアの肥大化を防止できます。

高得点のポイント

  • クラスの継承を利用して、共通する処理(属性や操作)をまとめていることに言及できているか。
  • 共通処理を一箇所で定義することで、コードの重複を防げるという論理を含められているか。

設問3(1)は,正答率が低かった。システム機能の設計において,システム性能と変更容易性はトレードオフの関係になる場合が多く,システムへのアクセス数や機能変更の頻度などを考慮した設計を行う必要がある。ここでは,システム性能に重点を置くことを考慮して正答を導いてほしい。

設問4

〔商品表示機能の設計〕について,(1),(2)に答えよ。

(1)配点 3点

本文中の下線③の設計とすることで,商品種別を追加した際に,運用環境へのリリース時にどのような作業を低減できるか,20字以内で述べよ。

模範解答

データベースへのテーブル追加作業

採点基準

知識・理解度(内容)2点
  • 2点: データベースへの「テーブル追加作業」である旨が明確に記載されている。
  • 1点: テーブルやデータベースに関する作業であることは読み取れるが、具体性に欠ける(例:「データベースの変更作業」など)。
  • 0点: テーブル追加作業について言及していない。
論理性(構造)1点
  • 1点: 低減できる作業の内容として、自然な日本語の文章になっている。
  • 0点: 日本語として不自然、または問いに対する答えの形式になっていない。

解説

〔商品表示機能の設計〕において、Y君は変更容易性に重点を置き、図3の論理テーブルのクラス図にあるように「特売商品テーブル、セット商品テーブルなど商品種別ごとに多数のテーブルを作成するのではなく、商品種別と商品の二つのテーブルを作成」する設計としました。

もし商品種別ごとに個別のテーブルを作成する設計にした場合、新しい商品種別(例:新春福袋商品など)を追加するたびに、データベースに対して新しくテーブルを作成(追加)する作業(DDLの実行など)が必要となります。本番の運用環境へのリリース作業において、データベースの構造変更(テーブル追加)はリスクと作業時間を伴います。
一方、商品種別と商品を2つのテーブルに統合したY君の設計であれば、新しい商品種別を追加する際は、「商品種別」テーブルに新しいレコード(行データ)を1件追加するだけで済むため、テーブル構造自体の変更は発生しません。

したがって、運用環境へのリリース時に低減できる作業は「データベースへのテーブル追加作業」となります。

高得点のポイント

  • 削減される作業が「テーブルを追加する作業(データベースの構造変更)」であることを明確に記述できているか。
  • 「データベースの変更」といった曖昧な表現ではなく、「テーブルの作成・追加」であるという具体性を持たせられているか。
(2)配点 3点

本文中の下線④について,Y君が商品種別ごとにクラスを定義した理由を,商品表示機能の特徴の観点から20字以内で述べよ。

模範解答

画面の表示方法が異なるから

採点基準

知識・理解度(内容)2点
  • 2点: 「画面の表示方法が異なる」旨を明確に記載している。
  • 1点: 表示の違いには触れているが、表現が不正確または曖昧である(例:「画面が変わるから」など)。
  • 0点: 画面表示の違いについて言及していない。
論理性(構造)1点
  • 1点: 「〜異なるから」など、理由を説明する自然な文章になっている。
  • 0点: 理由を説明する文章として不適切な表現になっている。

解説

〔現行システム機能の調査〕の「(2) 商品表示機能」を確認すると、商品の特徴として「商品種別ごとに画面の表示方法が異なる」という記述があります。

図3のソフトウェアのクラス図を見ると、親の「商品」クラスを継承する形で、子クラス(特売商品、セット商品など)がそれぞれ定義されており、各子クラスが個別に「画面表示()」という操作(メソッド)を持っています。
これは、ソフトウェア上で商品種別ごとに固有の表示ロジックをカプセル化(個別に実装・オーバーライド)するためです。
このようにクラスを分けておくことで、機能変更の頻度が高い商品表示機能において、ある商品種別の表示方法を変更したい場合に、他の商品種別のプログラムに影響を与えずに安全に修正を加えることができます。

理由を「商品表示機能の特徴の観点から」述べるため、業務要件である「画面の表示方法が異なるから」という点を指摘する必要があります。

高得点のポイント

  • 〔現行システム機能の調査〕に明記されている「商品種別ごとに画面の表示方法が異なる」という特徴を的確に捉えられているか。
  • クラスを分割した理由を、この表示方法の差異に求める論理を簡潔に表現できているか。

設問4(1)は,正答率が低かった。機能変更に伴うテーブル追加作業のリスクについて問うた。ソースコードの変更はテスト環境で十分なテストができるが,テーブル追加作業はリリース時の限られた時間内で作業及びテストを行う必要があり,リスクが高い。システム設計においては,システム性能や変更容易性への考慮にとどまらず,リリース作業におけるリスクについても是非考慮してほしい。

Spineチーム