- ■出る順13位のクラス図
- ■出る順13位のクラス図のポイント
- ① クラス図では、上から順に何を記述するか。
- ② 集約は、クラスと別のクラスがどのような関係であることを表現するのか。
- ③ クラス図の関連性において、集約とコンポジションの違いは何か。
- ④ クラス図の関連性において、コンポジションの多重度は何か。
- ⑤ クラス図の多重度のおける二つのクラス、クラスAとクラスBの関連にある多重度のうち、クラスAに書き込むものは何か。
- ⑥ 基底クラスと派生クラスの意味、違いを説明せよ。
- ⑦ クラス図の属性(変数)、操作(メソッド、関数)に関する解答の手法を述べよ。
- ⑧ ⑦の回答において、「基底クラスにあるものも含めて」とはどのような意味か。
- ⑨ 仮想関数と抽象メソッドとはは何か。
- 仮想関数とは、基底クラスを拡張する目的で、基底クラスにある操作の実装を、派生クラスで上書き可能な操作である。操作の実装とは、処理内容を記述することであり、書式を宣言する定義は、基底クラスが行う。
- ⑩ 抽象クラスとインターフェースの違いは何か。
- ■参考書の紹介
- ■関連ブログ
■出る順13位のクラス図
『情報処理教科書 出るとこだけ!応用情報技術者[午後]』によると、
選択分野:情報システム開発
の中で、出題されるクラス図は、
UMLの表記法、表現、その意味合いを理解し、
問題文から解答の根拠を見つける読解力が求められる分野のようです。
■出る順13位のクラス図のポイント
の出る順13位「クラス図」
の内容を参考に、覚えるべきポイントを以下に記載します。
① クラス図では、上から順に何を記述するか。
クラス図は、クラスとクラスの相互関係(関連)を表す。
クラス図では、
上段にクラスの名称を、
中段に属性とよばれる変数を、
下段に操作と呼ばれる関数を記載する。
② 集約は、クラスと別のクラスがどのような関係であることを表現するのか。
集約はクラスと別のクラスが「全体と部分」の関係であることを表現する。
具体的には、全体を意味するクラス図に◇を付ける。
次の例では、従業員(部分)は、会社(全体)に所属することを意味する。
逆に言えば、会社(全体)は、従業員(部分)に所属していないことになる。
この例では集約を表す文章の例は、以下の通りである。
(部分)は(全体)の一部である。⇒従業員は会社の一部である。
(全体)は(部分)を持っている。⇒会社は従業員を持っている。
③ クラス図の関連性において、集約とコンポジションの違いは何か。
コンポジションも集約の一部であるが、部分が全体に対して依存関係があり、
全体が削除された場合、部分も削除される関係がある。
集約の場合は、全体が削除された場合も、部分だけで存在できる。
下の図のように全体を表すクラス側に◆を付ける。
④ クラス図の関連性において、コンポジションの多重度は何か。
コンポジションは「1つの部分に対して、全体は最大でも1つしか持てない」
関連であるため、コンポジションの多重度は原則、1である。
⑤ クラス図の多重度のおける二つのクラス、クラスAとクラスBの関連にある
多重度のうち、クラスAに書き込むものは何か。
クラスBから見て、「クラスAには何個、存在するか?」を表す記述を探し、
クライアントA側の多重度を書き込む。
上記でいうと支店から見ると本部は必ず1個であり、
本部は支店を持つ場合と複数の支店を持つ場合がある。
⑥ 基底クラスと派生クラスの意味、違いを説明せよ。
プログラムを作成する場合、共通する部分を抜き出す汎化と
異なる部分を抜き出す特化を行い、クラスを分割します。
汎化側にある共通部分を再利用するために、
特化側にある新機能を追加するだけで、プログラムを作成できるようなれば、
汎用性が高まる。
基底クラスとは、汎化側にある共通部分のクラスで、親クラス、スーパークラスともいう。
派生クラスとは、特化側にある異なる部分のクラスで、子クラス、サブクラスともいう。
⑦ クラス図の属性(変数)、操作(メソッド、関数)に関する解答の手法を述べよ。
(1) クラス図の属性・操作と問題文と図を対応づける。
(2) 既に存在する属性、操作と計算で求まる属性を基底クラスにあるものを含めて、全て除く。
(3) 残りの属性・操作が必要な属性、操作となる。
⑧ ⑦の回答において、「基底クラスにあるものも含めて」とはどのような意味か。
プログラム言語において、フィールドメンバー変数、メソッドメンバー関数が子クラスにない場合、親クラスに含めて確認する必要がある。
派生クラスになくても、基底クラスに、属性、操作が記載されていることがある。
⑨ 仮想関数と抽象メソッドとはは何か。
仮想関数とは、基底クラスを拡張する目的で、基底クラスにある操作の実装を、
派生クラスで上書き可能な操作である。操作の実装とは、処理内容を記述することであり、書式を宣言する定義は、基底クラスが行う。
なお、派生クラスで仮想関数の実装を上書きしない場合は、基底クラスの仮想関数が実装される。抽象メッソドとは、基底クラスにある操作の実装を派生クラスで必ず上書きする操作で、純粋仮想関数ともよばれる。
特徴は次の通りである。
- 上書きを強制することにより、派生クラスで必要な実装の上書きを確実に行える。
- 派生クラスで、必ず上書きされる操作であるため、抽象メソッドの操作の定義だけ行い、
操作の実装は行わない。
メソッド、仮想関数、抽象メソッドの関係は次の通りである。
メッソド:実装を行う。
仮想関数:実装を行う。派生クラスによる上書きはきょか。
抽象メソッド:実装を行わず、派生クラスによる上書きを強制。
⑩ 抽象クラスとインターフェースの違いは何か。
▼抽象クラス
抽象メッソドを含むクラスのことで、特徴は次の通りである。
抽象クラスをもとにインスタンスは生成できない。抽象クラスはあくまで設計書の役割を担う。
クラス内の抽象メソッドが一つあると、そのクラスは自動的に抽象クラスとなる。
抽象クラスを継承した派生クラスを作り、その派生クラス内で、抽象クラスの抽象メソッドの実装を行う。
▼インターフェース
抽象メソッドだけで構成され、実装は派生クラスで行われるプラグラム。
インターフェースでは、派生クラスで上書きされる操作の定義しか行われない。
クラス、抽象クラス、インターフェースの関係は次の通りである。
クラス:操作と属性が含まれる。
抽象クラス:抽象メソッドとその他の操作と属性が含まれる。
インターフェース:抽象メソッドだけが含まれる。
▼抽象クラスとインターフェースの違い
派生クラスでは抽象クラスを一つしか継承できない。
継承可能なクラスが一つであるため、構造がシンプルである。
派生クラスではインターフェースを多重継承できる。複数の操作の定義を派生クラスに盛り込めるため、構造が抽象クラスと比べて複雑である。
■参考書の紹介
午後問題を出る順に効果的な試験対策ができる良書かなと思っています。
基本情報技術者試験も、同じシリーズの参考書で勉強して、苦手な午後問題を克服して合格しました。
- 作者:橋本 祐史
- 発売日: 2019/01/16
-
「『応用情報の午後』は試験範囲が幅広く、どの分野・テーマを学習したらよいかわからない」と困っている方も多くいることと思います。応用情報の午後は、11問中5問に解答する形式ですが、多くの選択肢があるようで、受験生を惑わせることにもなります。
そこで、本書では、徹底した分析と対策授業の経験などをもとに「出る順」で「出るところだけ」を厳選して掲載しました。本書で学ぶことにより、効率よく午後試験に合格する力が身に付けることができます。
-
【本書の特徴】
・「出る順」に「出るところだけ」掲載。効率よく学習できる
・午後問題に合格するために「17のテーマ」に厳選して収録
・1つのテーマは、前提知識+解き方+過去問の順で丁寧に解説
・ベテランの現役講師による鋭い分析とわかりやすい説明で合格力養成【対象読者】
・応用情報技術者の午前試験の学習が一通り終わった人
・午後試験の学習の仕方が分からない人
・短期間で午後試験の対策をしたい人
■関連ブログ
以上です。