AP過去問 令和6年度秋期 午後 問8 情報システム開発
'],['\\[','\\]']], skipTags: ["code"], processEscapes: true }, "HTML-CSS": { undefinedFamily: "'Neo Euler Medium', Meiryo, STIXGeneral, 'Arial Unicode MS', serif", webFont :"Neo Euler Medium" } }); AP 過去問題 午後に戻る。
AP過去問_令和6年度秋期_午後_問7_組込みシステム開発の同じ回の前の問題へ移動。
AP過去問_令和6年度秋期_午後_問9_プロジェクトマネジメントの同じ回の次の問題へ移動。
令和6年度秋期 午後 問8 情報システム開発(AIプロンプト向け)
■オブジェクト指向設計に関する次の記述を読んで、設問に答えよ。
M社は、企業内の複数の情報システムを接続するデータ連携ハブを製造する会社である。M社のデータ連携ハブは、企業の基幹システムを構成するERP(Enterprise Resuource Planning)ソリューションやクラウドサービスとデータ連携するための部品であるコネクタの種類が多いことが人気を呼び、売上を増大させている。
M社には三つの事業所に合計約100名が在籍しており、開発部がソフトウェアの開発を行っている。M社のデータ連携ハブに含まれるコネクタを実現するソフトウェアは、ERPソリューションやクラウドサービスの仕様変更に合わせて頻繁に修正する必要がある。また、同じプログラムコードが複数個所にコピーされているなどの原因によって保守性が低いという課題があり、コネクタの開発コストが増大している。そこで、M社では、コネクタの開発コストを低減させるために、コネクタを構成するソフトウェアを再設計することいなり、開発部のN君が担当することになった。
[コネクタの利用方法]
N君は、M社のデータ連携ハブのコネクタの利用方法を整理した。図1はデータ連携ハブを用いてデータ送信元システムからデータ送信先システムへ組織データを送信する例である。
図1 データ連携ハブを用いた組織データの送信の例ここから
・データ送信元システムである人事システムがデータ連携ハブと接続されていてFTPSとCSVのやり取りをする。
・データ連携ハブとデータ送信先システムである販売システムと接続されていてFTPSとCSVのやり取りをする。
・データ連携ハブとデータ送信先システムである製造システムと接続されていてHTTPSとXMLのやり取りをする。
・データ連携ハブとデータ送信先システムである会計システムと接続されていてHTTPSとXMLのやり取りをする。
図1 データ連携ハブを用いた組織データの送信の例ここまで
データ連携ハブがFTPSを用いて人事システムからデータフォーマットがCSV形式のデータを取得し、データフォーマットや通信プロトコルを変換して別の三つのシステムに送信している。このときデータ連携ハブのコネクタの役割は、通信プロトコルやデータフォーマットの変換である。
[オブジェクト指向に関する調査]
N君は、コネクタを再設計するために、オブジェクト指向について調査した。オブジェクト指向では、ソフトウェアを部品化し、部品の組合せによって目的のソフトウェアを作る。この方法では、データとそのデータに対する処理を一つのオブジェクトにまとめる [a] という設計指針のもと、外部公開するメソッドを定義してオブジェクト内のデータや処理の変更がオブジェクト外に与える影響を小さくする。また、あるオブジェクトの特性を他のオブジェクトに引き継ぐ [b] が可能であり、開発コストを低減できる。また、同名のメソッド呼出しに対してオブジェクトの種類によって異なる処理を実効する [c] を実現することが可能である。
[コネクタのクラス設計]
N君は、コネクタの利用方法を考慮し、オブジェクト指向を用いてコネクタに関係するクラスを設計した。N君が設計したクラス図(抜粋)を図2に示す。
図2 N君が設計したクラス図(抜粋)ここから
・(ステレオタイプ=Interface、クラス名=コネクタ)は公開属性の属性名=dataで連携データ型、公開属性の属性名=formでフォーマット型、公開属性の属性名=proでプロトコル型を保持していて、メソッドには公開属性のメソッド名=データ取得(引数は無し)、公開属性のメソッド名=データ送信(引数はdataで連携データ型)というクラスを構成
・クラス名=コネクタの関連クラスとして(クラス名=連携データ)は保護属性の属性名=論理削除でboolean型を保持していて、メソッドは省略を保持しているクラスを構成
・クラス名=連携データを継承しているクラスとして(クラス名=組織データ)は属性情報は省略、メソッド情報は省略を保持しているクラスを構成
・クラス名=コネクタを継承しているクラスとして(クラス名=組織コネクタ)は属性情報は省略、メソッドには公開属性[d]、データ送信(引数はdataで組織データ型)、ステレオタイプ=Createで公開属性のメソッド名=組織コネクタ(引数formでフォーマット型、proでプロトコル型)返却値型は組織コネクタ型を保持しているクラスを構成
・クラス名=コネクタの関連クラスとして(クラス名=フォーマット)は属性情報は省略、メソッドには公開属性のメソッド名=シリアライズ(引数はdataで連携データ型)、公開属性のメソッド名=デシリアライズ(引数は無し)を保持しているクラスを構成
・クラス名=フォーマットを継承しているクラスとして(クラス名=CSV)は属性情報は省略、メソッドには公開属性のメソッド名=シリアライズ(引数はdataで連携データ型)、公開属性のメソッド名=デシリアライズ(引数は無し)を保持しているクラスを構成
・クラス名=フォーマットを継承しているクラスとして(クラス名=XML)は属性情報は省略、メソッドには公開属性のメソッド名=シリアライズ(引数はdataで連携データ型)、公開属性のメソッド名=デシリアライズ(引数は無し)を保持しているクラスを構成
・クラス名=コネクタの関連クラスとして(クラス名=プロトコル)は属性情報は省略、メソッドには公開属性のメソッド名=取得(引数はformでフォーマット型)返却値型は連携データ型、公開属性のメソッド名=送信(引数はdataで連携データ型、formでフォーマット型)を保持しているクラスを構成
・クラス名=プロトコルを継承しているクラスとして(クラス名=FTPS)は属性情報は省略、メソッドには公開属性のメソッド名=取得(引数はformでフォーマット型)返却値型は連携データ型、公開属性のメソッド名=送信(引数はdataで連携データ型、formでフォーマット型)を保持しているクラスを構成
・クラス名=プロトコルを継承しているクラスとして(クラス名=HTTPS)は属性情報は省略、メソッドには公開属性のメソッド名=取得(引数はformでフォーマット型)返却値型は連携データ型、公開属性のメソッド名=送信(引数はdataで連携データ型、formでフォーマット型)を保持しているクラスを構成
図2 N君が設計したクラス図(抜粋)ここまで
まず、送受信するデータのデータ項目を定義する連携データクラスとそれを親クラスとする組織データクラスを設計し、各クラスに必要な属性とメソッドを設計した。連携データクラスの論理削除属性は、組織データクラスのメソッドからアクセス [e] 。
フォーマットクラス、CSVクラス、XMLクラスは、送信するデータをCSV形式やXML形式に変換(シリアライズ)したり、受信したCSV形式やXML形式のデータを解析して、連携データクラスのインスタンスを生成(デシリアライズ)したりするクラスである。また、XMLクラスのシリアライズのように、親クラスと同じ名称・引数・戻り値のメソッドを定義することを [f] という。
プロトコルクラス、FTPSクラス、HTTPSクラスは、データ送受信のためのクラスである。コネクタクラス、組織コネクタクラスは、コネクタを実現するためのクラスであり、送受信するデータのデータ項目に応じて処理を行うものである。
図2で設計されたクラスを用いて、図1に記載のデータ連携ハブから製造システム向けにデータを送信する組織コネクタクラスのインスタンスを作成する場合、[g] クラス及び [h] クラスから生成したインスタンスを引数に、組織コネクタクラスのインスタンスを作成する。[h] クラスの送信メソッドの中ではフォーマットクラスのシリアライズメソッドが呼び出されるが、実際には [g] クラスのシリアライズメソッドが呼び出される。
[コネクタの修正]
N君は、今後予想されるコネクタの修正時に、図2で設計したクラスに対して少ない修正で対応できるか机上で検証した。
図1に記載の人事システムに格納されている研修受講記録データを新たに他システムへ送信する必要がある場合には、①<u>新しいクラスを二つ作成</u>すればよい。また、CSVファイルやXMLファイルの中の口座名などの文字列の文字コードを変換する共通機能が必要となった場合には、②<u>図2ある一つのクラスに文字コード変換のメソッドを追加</u>すればよい。
その後、N君は、コネクタの再設計に関する必要な作業を完了した。
設問1 本文中の [a] ~ [c] に入れる適切な字句を答えよ。
設問2 [コネクタのクラス設計]について答えよ。
(1) 図2中の [d] に入れる適切な字句を答えよ。
(2) 本文中の [e] 、[f] に入れる適切な字句を回答群の中から選び、記号で答えよ。
回答群
ア オーバーライド
イ オーバーロード
ウ コンストラクタ
エ できない
オ できる
カ デストラクタ
(3) 本文中の [g] 、[h] に入れる適切なクラス名を図2中の字句を用いて答えよ。
設問3 [コネクタの修正]について答えよ。
(1) 本文中の下線①について、作成する二つのクラスは、図2中の異なるクラスを親クラスとする必要がある。作成するクラスの親クラスとすべきクラス名を図2中の字句を用いて全て答えよ。
(2) 本文中の下線②について、文字コード変換のメソッドを追加すべきクラス名を図2中の字句を用いて答えよ。
令和6年度秋期 午後 問8 情報システム開発(問題原文)
■オブジェクト指向設計に関する次の記述を読んで、設問に答えよ。
M社は、企業内の複数の情報システムを接続するデータ連携ハブを製造する会社である。M社のデータ連携ハブは、企業の基幹システムを構成するERP(Enterprise Resuource 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君は、コネクタの再設計に関する必要な作業を完了した。
設問1 本文中の a ~ c に入れる適切な字句を答えよ。
設問2 [コネクタのクラス設計]について答えよ。
(1) 図2中の d に入れる適切な字句を答えよ。
(2) 本文中の e 、f に入れる適切な字句を回答群の中から選び、記号で答えよ。
回答群
ア オーバーライド
イ オーバーロード
ウ コンストラクタ
エ できない
オ できる
カ デストラクタ
(3) 本文中の g 、h に入れる適切なクラス名を図2中の字句を用いて答えよ。
設問3 [コネクタの修正]について答えよ。
(1) 本文中の下線①について、作成する二つのクラスは、図2中の異なるクラスを親クラスとする必要がある。作成するクラスの親クラスとすべきクラス名を図2中の字句を用いて全て答えよ。
(2) 本文中の下線②について、文字コード変換のメソッドを追加すべきクラス名を図2中の字句を用いて答えよ。
回答・解説
AP過去問_令和6年度秋期_午後_問7_組込みシステム開発の同じ回の前の問題へ移動。
AP過去問_令和6年度秋期_午後_問9_プロジェクトマネジメントの同じ回の次の問題へ移動。
AP 過去問題 午後に戻る。