応用情報技術者試験 過去問 2024年(令和6年) 秋期 午後 問8

オブジェクト指向設計

M社は、企業内の複数の情報システムを接続するデータ連携ハブを製造する会社である。M社のデータ連携ハブは、企業の基幹システムを構成するERP(Enterprise Resource Planning)ソリューションやクラウドサービスとデータ連携するための部品であるコネクタの種類が多いことが人気を呼び、売上を増大させている。

M社には三つの事業所に合計約100名が在籍しており、開発部がソフトウェアの開発を行っている。M社のデータ連携ハブに含まれるコネクタを実現するソフトウェアは、ERPソリューションやクラウドサービスの仕様変更に合わせて頻繁に修正する必要がある。また、同じプログラムコードが複数箇所にコピーされているなどの原因によって保守性が低いという課題があり、コネクタの開発コストが増大している。

そこで、M社では、コネクタの開発コストを低減させるために、コネクタを構成するソフトウェアを再設計することになり、開発部のN君が担当することになった。

コネクタの利用方法

N君は、M社のデータ連携ハブのコネクタの利用方法を整理した。図1は、データ連携ハブを用いてデータ送信元システムからデータ送信先システムへ組織データを送信する例である。

データ連携ハブを用いた組織データの送信システムの構成図
図1 データ連携ハブを用いた組織データの送信の例

データ連携ハブがFTPSを用いて人事システムからデータフォーマットがCSV形式のデータを取得し、データフォーマットや通信プロトコルを変換して別の三つのシステムに送信している。このときデータ連携ハブのコネクタの役割は、通信プロトコルやデータフォーマットの変換である。

オブジェクト指向に関する調査

N君は、コネクタを再設計するために、オブジェクト指向について調査した。オブジェクト指向では、ソフトウェアを部品化し、部品の組合せによって目的のソフトウェアを作る。この方法では、データとそのデータに対する処理を一つのオブジェクトにまとめるaという設計指針のもと、外部公開するメソッドを定義してオブジェクト内のデータや処理の変更がオブジェクト外に与える影響を小さくする。また、あるオブジェクトの特性を他のオブジェクトに引き継ぐbが可能であり、開発コストを低減できる。また、同名のメソッド呼出しに対してオブジェクトの種類によって異なる処理を実行するcを実現することが可能である。

コネクタのクラス設計

N君は、コネクタの利用方法を考慮し、オブジェクト指向を用いてコネクタに関係するクラスを設計した。N君が設計したクラス図(抜粋)を図2に示す。

コネクタのクラス設計を示すUMLクラス図
図2 N君が設計したクラス図(抜粋)

まず、送受信するデータのデータ項目を定義する連携データクラスとそれを親クラスとする組織データクラスを設計し、各クラスに必要な属性とメソッドを設計した。連携データクラスの論理削除属性は、組織データクラスのメソッドからアクセスe

フォーマットクラス、CSVクラス、XMLクラスは、送信するデータをCSV形式やXML形式に変換(シリアライズ)したり、受信したCSV形式やXML形式のデータを解析して、連携データクラスのインスタンスを生成(デシリアライズ)したりするクラスである。また、XMLクラスのシリアライズのように、親クラスと同じ名称・引数・戻り値のメソッドを定義することをfという。

プロトコルクラス、FTPSクラス、HTTPSクラスは、データ送受信のためのクラスである。コネクタクラス、組織コネクタクラスは、コネクタを実現するためのクラスであり、送受信するデータのデータ項目に応じて処理を行うものである。

図2で設計されたクラスを用いて、図1に記載のデータ連携ハブから製造システム向けにデータを送信する組織コネクタクラスのインスタンスを作成する場合、gクラス及びhクラスから生成したインスタンスを引数に、組織コネクタクラスのインスタンスを作成する。hクラスの送信メソッドの中ではフォーマットクラスのシリアライズメソッドが呼び出されるが、実際にはgクラスのシリアライズメソッドが呼び出される。

コネクタの修正

N君は、今後予想されるコネクタの修正時に、図2で設計したクラスに対して少ない修正で対応できるか机上で検証した。

図1に記載の人事システムに格納されている研修受講記録データを新たに他システムへ送信する必要がある場合には、①新しいクラスを二つ作成すればよい。また、CSVファイルやXMLファイルの中の講座名などの文字列の文字コードを変換する共通機能が必要になった場合には、②図2のある一つのクラスに文字コード変換のメソッドを追加すればよい。

その後、N君は、コネクタの再設計に関する必要な作業を完了した。

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