令和6年秋期試験午後問題 問8
問8 情報システム開発
⇱問題PDF
オブジェクト指向設計に関する次の記述を読んで,設問に答えよ。
オブジェクト指向設計に関する次の記述を読んで,設問に答えよ。
広告
M社は,企業内の複数の情報システムを接続するデータ連携ハブを製造する会社である。M社のデータ連携ハブは,企業の基幹システムを構成するERP(Enterprise Resource Planning)ソリューションやクラウドサービスとデータ連携するための部品であるコネクタの種類が多いことが人気を呼び,売上を増大させている。
M社には三つの事業所に合計約100名が在籍しており,開発部がソフトウェアの開発を行っている。M社のデータ連携ハブに含まれるコネクタを実現するソフトウェアは,ERPソリューションやクラウドサービスの仕様変更に合わせて頻繁に修正する必要がある。また,同じプログラムコードが複数箇所にコピーされているなどの原因によって保守性が低いという課題があり,コネクタの開発コストが増大している。そこで,M社では,コネクタの開発コストを低減させるために,コネクタを構成するソフトウェアを再設計することになり,開発部のN君が担当することになった。
〔コネクタの利用方法〕
N君は,M社のデータ連携ハブのコネクタの利用方法を整理した。図1は,データ連携ハブを用いてデータ送信元システムからデータ送信先システムへ組織データを送信する例である。 データ連携ハブがFTPSを用いて人事システムからデータフォーマットがCSV形式のデータを取得し,データフォーマットや通信プロトコルを変換して別の三つのシステムに送信している。このときデータ連携ハブのコネクタの役割は,通信プロトコルやデータフォーマットの変換である。
〔オブジェクト指向に関する調査〕
N君は,コネクタを再設計するために,オブジェクト指向について調査した。オブジェクト指向では,ソフトウェアを部品化し,部品の組合せによって目的のソフトウェアを作る。この方法では,データとそのデータに対する処理を一つのオブジェクトにまとめるaという設計指針のもと,外部公開するメソッドを定義してオブジェクト内のデータや処理の変更がオブジェクト外に与える影響を小さくする。また,あるオブジェクトの特性を他のオブジェクトに引き継ぐbが可能であり,開発コストを低減できる。また,同名のメソッド呼出しに対してオブジェクトの種類によって異なる処理を実行するcを実現することが可能である。
〔コネクタのクラス設計〕
N君は,コネクタの利用方法を考慮し,オブジェクト指向を用いてコネクタに関係するクラスを設計した。N君が設計したクラス図(抜粋)を図2に示す。 まず,送受信するデータのデータ項目を定義する連携データクラスとそれを親クラスとする組織データクラスを設計し,各クラスに必要な属性とメソッドを設計した。連携データクラスの論理削除属性は,組織データクラスのメソッドからアクセスe。
フォーマットクラス,CSVクラス,XMLクラスは,送信するデータをCSV形式やXML形式に変換(シリアライズ)したり,受信したCSV形式やXML形式のデータを解析して,連携データクラスのインスタンスを生成(デシリアライズ)したりするクラスである。また,XMLクラスのシリアライズのように,親クラスと同じ名称・引数・戻り値のメソッドを定義することをfという。
プロトコルクラス,FTPSクラス,HTTPSクラスは,データ送受信のためのクラスである。コネクタクラス,組織コネクタクラスは,コネクタを実現するためのクラスであり,送受信するデータのデータ項目に応じて処理を行うものである。
図2で設計されたクラスを用いて,図1に記載のデータ連携ハブから製造システム向けにデータを送信する組織コネクタクラスのインスタンスを作成する場合,gクラス及びhクラスから生成したインスタンスを引数に,組織コネクタクラスのインスタンスを作成する。hクラスの送信メソッドの中ではフォーマットクラスのシリアライズメソッドが呼び出されるが,実際にはgクラスのシリアライズメソッドが呼び出される。
〔コネクタの修正〕
N君は,今後予想されるコネクタの修正時に,図2で設計したクラスに対して少ない修正で対応できるか机上で検証した。
図1に記載の人事システムに格納されている研修受講記録データを新たに他システムへ送信する必要がある場合には,①新しいクラスを二つ作成すればよい。また,CSVファイルやXMLファイルの中の講座名などの文字列の文字コードを変換する共通機能が必要となった場合には,②図2のある一つのクラスに文字コード変換のメソッドを追加すればよい。
その後,N君は,コネクタの再設計に関する必要な作業を完了した。
M社には三つの事業所に合計約100名が在籍しており,開発部がソフトウェアの開発を行っている。M社のデータ連携ハブに含まれるコネクタを実現するソフトウェアは,ERPソリューションやクラウドサービスの仕様変更に合わせて頻繁に修正する必要がある。また,同じプログラムコードが複数箇所にコピーされているなどの原因によって保守性が低いという課題があり,コネクタの開発コストが増大している。そこで,M社では,コネクタの開発コストを低減させるために,コネクタを構成するソフトウェアを再設計することになり,開発部のN君が担当することになった。
〔コネクタの利用方法〕
N君は,M社のデータ連携ハブのコネクタの利用方法を整理した。図1は,データ連携ハブを用いてデータ送信元システムからデータ送信先システムへ組織データを送信する例である。 データ連携ハブがFTPSを用いて人事システムからデータフォーマットがCSV形式のデータを取得し,データフォーマットや通信プロトコルを変換して別の三つのシステムに送信している。このときデータ連携ハブのコネクタの役割は,通信プロトコルやデータフォーマットの変換である。
〔オブジェクト指向に関する調査〕
N君は,コネクタを再設計するために,オブジェクト指向について調査した。オブジェクト指向では,ソフトウェアを部品化し,部品の組合せによって目的のソフトウェアを作る。この方法では,データとそのデータに対する処理を一つのオブジェクトにまとめるaという設計指針のもと,外部公開するメソッドを定義してオブジェクト内のデータや処理の変更がオブジェクト外に与える影響を小さくする。また,あるオブジェクトの特性を他のオブジェクトに引き継ぐbが可能であり,開発コストを低減できる。また,同名のメソッド呼出しに対してオブジェクトの種類によって異なる処理を実行するcを実現することが可能である。
〔コネクタのクラス設計〕
N君は,コネクタの利用方法を考慮し,オブジェクト指向を用いてコネクタに関係するクラスを設計した。N君が設計したクラス図(抜粋)を図2に示す。 まず,送受信するデータのデータ項目を定義する連携データクラスとそれを親クラスとする組織データクラスを設計し,各クラスに必要な属性とメソッドを設計した。連携データクラスの論理削除属性は,組織データクラスのメソッドからアクセスe。
フォーマットクラス,CSVクラス,XMLクラスは,送信するデータをCSV形式やXML形式に変換(シリアライズ)したり,受信したCSV形式やXML形式のデータを解析して,連携データクラスのインスタンスを生成(デシリアライズ)したりするクラスである。また,XMLクラスのシリアライズのように,親クラスと同じ名称・引数・戻り値のメソッドを定義することをfという。
プロトコルクラス,FTPSクラス,HTTPSクラスは,データ送受信のためのクラスである。コネクタクラス,組織コネクタクラスは,コネクタを実現するためのクラスであり,送受信するデータのデータ項目に応じて処理を行うものである。
図2で設計されたクラスを用いて,図1に記載のデータ連携ハブから製造システム向けにデータを送信する組織コネクタクラスのインスタンスを作成する場合,gクラス及びhクラスから生成したインスタンスを引数に,組織コネクタクラスのインスタンスを作成する。hクラスの送信メソッドの中ではフォーマットクラスのシリアライズメソッドが呼び出されるが,実際にはgクラスのシリアライズメソッドが呼び出される。
〔コネクタの修正〕
N君は,今後予想されるコネクタの修正時に,図2で設計したクラスに対して少ない修正で対応できるか机上で検証した。
図1に記載の人事システムに格納されている研修受講記録データを新たに他システムへ送信する必要がある場合には,①新しいクラスを二つ作成すればよい。また,CSVファイルやXMLファイルの中の講座名などの文字列の文字コードを変換する共通機能が必要となった場合には,②図2のある一つのクラスに文字コード変換のメソッドを追加すればよい。
その後,N君は,コネクタの再設計に関する必要な作業を完了した。
広告
設問1
本文中のa~cに入れる適切な字句を答えよ。
解答例・解答の要点
a:カプセル化
b:継承
c:多相性
b:継承
c:多相性
解説
この設問の解説はまだありません。設問2
〔コネクタのクラス設計〕について答えよ。
- 図2中のdに入れる適切な字句を答えよ。
- 本文中のe,fに入れる適切な字句を解答群の中から選び,記号で答えよ。
- 本文中のg,hに入れる適切なクラス名を図2中の字句を用いて答えよ。
e,f に関する解答群
- オーバーライド
- オーバーロード
- コンストラクタ
- できない
- できる
- デストラクタ
解答例・解答の要点
- d:データ取得()
- e:オ
f:ア
- g:XML
h:HTTPS
解説
この設問の解説はまだありません。設問3
〔コネクタの修正〕について答えよ。
解答例・解答の要点
- 連携データ,コネクタ
- フォーマット
解説
この設問の解説はまだありません。広告