こんにちは JAYLOGです。
今回は基本情報技術者試験の午後問題のソフトウェア設計の対策編です。
ソフトウェア・設計というキーワードで抵抗を感じる人もいそうです。
でもきちんと対策をすれば十分に得点を狙えますので、頑張って下さい

この記事で提供している情報
・基本情報技術者試験の午後問題のソフトウェア設計の対策が分かる
ソフトウェア設計の特徴

UMLなどソフトウェア特有の図表が分かるかどうかがキーポイントだね
このパートは基本的な事を書いていますので対策に行きたい方は飛ばして頂いても問題ないです。
ソフトウェア設計は基本情報技術者試験の午後問題で選択問題の1つです。
選択問題なので、他の分野と同時に対策をする必要があります。
ソフトウェア設計は下記の様な特徴があります。
UMLや決定木,E-R等の図表の知識が必要
設問1についてはUMLやデシションツリー(決定木)、CLUD図など図表問題が出題されます。
問を解くにはこれらの図表についての基本的な理解が必要になります。
参考書を読んでこれらの理解をしましょう。それができるようになると大分、難易度は下がってきます。
ここでは頻出であるUMLについて簡単に説明したいと思います。
UMLとはソフトウェアを形式化するための統一的な言語です。
すごくざっくり説明するとソフトウェアの機能を誰が見ても(UMLを知っている人であれば)わかるような表現方法をするということです。
その為、ソフトウェアの機能や構造の表現方法を全部で約十数種類ありますが、ここでは主に使われる4つの図について簡単に説明したいと思います。
少し話がそれますが、興味があればUMTPという資格があるので受けてみても面白いです。
(私はL2までなら取得しています)
ユースケース図
システムの実装機能(ユースケース)とユーザーや対向システムなどの外部環境(アクター)との関連を表現しています。
この図は感覚的にというか前提知識がなくても読み取ることが出来ます。
私はよくユーザーやクライアントとシステムの概要を決めるときに使用しています。
知っていると結構便利な図です。
アクティビティ図
業務や処理の流れを表すために、業務手順や処理ステップを順序だてて表現した図です。
おもにワークフローやユースケースの処理フローなど手順を表現する時に強みを発揮する図です。
私は内部やお客さんとの開発するためのプロセスを説明するときに使用してます。
フローチャートとほぼ一緒ですね。
クラス図
モデル(クラス)の静的な構造を表す図で、システムの構造を表現できます。
このモデルですが、様々な視点で作成することが出来ます。
例えば機能単位での関連性やjavaのクラスベースでの関連性などを表現するときに使用することが多いです。
一番有名な図だと思っているので、一度は聞いたことがあるかもしれませんね。
でも、読みなれないと試験を受けるときに結構つらいと思います。
この分野を選択するのであれば事前にこれは理解しといた方がいいですね。
シーケンス図
オブジェクトの相互作用を表現する相互作用図の1つで、オブジェクト間のメッセージのやりとりを、 時系列に沿って表現します。似たようなものでコラボレーション図がありますが、活性区間やライフラインは表現できないという違いがあります。
私の場合は外部設計などの設計で処理の流れを表現するときに使うことが多かったです。
これもメジャーな図の一つだと思います。
ざっくりはアクティビティと同じようなものだと考えてもいいかもしれないです。
時間をかければ解ける
問題は知識というよりも考える問題が多いです。
フローやUMLの図から読み取る問題が多いので基本的な読み方さえ分かれば大丈夫ですが、解き慣れていないとすごく時間がかかります。
いかに問題に慣れて時間短縮が出来るかがポイントです。
この時間短縮をする為に基本的な知識(UMLなどの図表の読み取りに慣れる)を習得すること、過去問を解いて実践慣れすることが必要です。
ソフトウェア設計というキーワードに惑わされない
ちょっと前項と似たような内容になっているようですが、ここはソフトウェア・設計というキーワードだからと言って必要以上に身構える必要はないよという話です。
ソフトウェア設計と聞くと例えば外部設計書や内部設計書等の設計フェーズの経験がないと難しいのでは?と考える人がいるかもしれません。
しかし、実はそんなことはなく、単なる読解問題だととらえた方がいいです。
(設計書を書けという問題ではない。)
他人の設計書を読み解く力が必要です。
他人の設計書を読み解くので、前後の情報から情報を補完してあげるという作業が必要になります。(つまり、読解力ですね)
ですのでUML等の最低限の知識さえ習得してしまえばソフトウェア設計の問題は必要以上に構える必要はないでしょう。
午後問題のソフトウェア設計対策

図表を読めるようになって、問題集を使って時間短縮しよう。
図表の読み取りに慣れてしまえばそんなに難易度は高くないですが、下記対策をする様にしましょう。
午前問題の知識をつける
他の分野同様基本情報技術者試験の午後問題のソフトウェア設計は午前の延長線上にあります。
その為、前提として午前問題の図表問題を解けるくらいの知識は必要になります。
参考書や問題集を使って基本的な事項をしっかり学習しましょう。
UMLやE-R図等の図表を読み慣れる
先ほどソフトウェア設計において頻出されやすいUMLやE-R、CURD図などの図表は参考書を使ってマスターしていく必要があります。
ここが午後試験のソフトウェア設計において一番の難所だと感じています。
でも、これはプログラミングと同様であまり近道はなく地道に繰返し慣れていくことが肝要です。
過去問・問題集を繰り返し解く
図表さえ読めるようになればあとは過去問・問題集を繰り返し解き、実践慣れすることでテストの時間短縮を図っていきます。
基本情報技術者試験のソフトウェア設計は時間をかければ点数を取れるようなレベルですが、時間をかけてしまった分、その他の分野に影響を与えないように時間管理をしましょう。
さいごに
いかがでしたか?
基本情報技術者試験の午後問題の一つであるソフトウェア設計の概要と対策についてお話ししました。
ソフトウェア設計はキーワードを聞いてしまうとハードルが高いように思われる方も多いかもしれません。
確かに設計書で使用している図を使っている問題なので、そう思う気持ちもわかりますがこれは実際やってみると分かると思いますが、そんな大変でもないです。
そう言える根拠としては私の経験上、システムに知見がないユーザーとのやり取りでも使用してこの図を使ってお互い共通認識が取れているので、どんなバックグラウンドの人でも理解しやすいように表現できる図だといえます。
ですので、専門的な知見が必要なソフトウェアやハードウェア、ネットワークよりもソフトウェア設計は取り組みやすいといえます。
基本情報技術者試験の午後問題全般はこちらをご覧下さい。
書籍に迷っていたらこちらをご覧ください。
学習計画から何から任せたい場合はこちらをご覧ください。