カタツの情報処理技術者試験日記@基本情報技術者

情報処理技術者試験の勉強の記録です。今は基本情報技術者を勉強中です。

ソフトウェア開発で分析とは何を作るのか明確にすること

今日ソフトウェアの勉強をしていて「分析とはシステムで何を作成するかを決定する作業のこと」という一文が頭にガツンときました。

ソフトウェア開発者にとって「分析」という言葉はよく使うのですが、その意味を正確に理解している人は私を含めて少ないかもしれません。それがこんなにズバリ定義されるなんてすごい。

通り一遍のウィキペディア的説明だと、物事を分解して理解することという意味しか提示してくれないから今ひとつピンとこなかったんですよね。

何のために分解するのかがポイントなわけで、ソフトウェア開発の場合は何かを作るために分析しているのだから、分析という作業は何を作るのかを明らかにする作業そのものなのですね。

これを応用して何かバグなどの問題が起きた時に「問題を分析する」と言いますが、この場合は「問題に対して何をすべきかを決める」という意味になりますね。結果はバグをなおすことかもしれないし、ユーザに回避策を示すことかもしれません。

状態遷移図をUMLではステートチャート図といいます

「状態遷移図」とうちの会社ではよく呼んで使っているものがUMLではステートチャート図ということがさっきわかりました。ずっと状態遷移図とUMLとは違う概念だと思ってきたから目から鱗です。

今の私のソフトウェア技術者としての実力はたぶん中級レベルくらいで、ひととおりの実務をこなせるようになったけれど1つ1つの技術や用語を一般的にとらえられていないという状態だと思うのです。

そういうレベルの人が技術的な本を読んだり、情報処理技術者試験の勉強をしたりすると自分の使ってきた技術やノウハウの本当の意味を知って自分の中で再構築できるという素晴らしい体験ができると思いますね。

モデリングとは現実を単純に表現すること

モデリング」というソフトウェア専門用語の意味が自分の中でモヤモヤして分からなかったですが、今読んだ技術書に書いてあった内容が非常に腑に落ちました。

モデルとは「現実を単純化したもの」であり、モデリングとは「現実を単純に表現すること」であるとの記述にビビっときましたね。

現実を現実のまま表現すると複雑で理解が難しいから、単純化すれば理解しやすいだろうと。そして単純化するときには本質的なところを表現するのが大事だと理解しました。

ソフトウェアの世界でモデルを記述する標準言語がUMLなわけで、仕様書や設計書などのドキュメントになぜUML図が多用されるのかわかりました。要するに「その方が分かりやすいから」だったんですね。

括弧がないときの計算順序の最優先はべき乗であることを37歳にして知る

今日、基本情報技術者試験表計算の勉強をしていて気がついたこと。

「べき乗は掛け算・割り算・足し算・引き算よりも計算順序が優先される」ということ。もちろん括弧よりは優先度は低いわけですが。

えっ?そうだったっけと思い、数学の計算順序についてググってみたら数学でも同じ順番だったようです。37歳にしてはじめてしったよそんな順序!

いやー一応理系で大学も出ているんだけどな〜。知らないことはまだまだありそうです。

基本情報技術者試験の過去問を買うなら2年ごとがいい

いきなり何を言っているのかわからない人もいると思うので私の立場を説明すると、私は2年前に基本情報技術者試験の勉強をやっていたけれど挫折して2年たった今また勉強を再開している者である。

そういう立場の者からすると昔使っていた参考書と過去問がどうしても古くなってしまっているので新しいのを買おうかどうか迷うのである。

私が使っている過去問はコレ↙なんだけれども、※解説わかりあやすくてオススメ

平成27年度【秋期】基本情報技術者 パーフェクトラーニング過去問題集 (情報処理技術者試験)

私が持っているのは平成25年度秋期版なのです。

で、この過去問集に収録されているのは4回分でして私がもっている平成25年度秋季版には以下の過去問が収録されております。

  1. 平成25年度春期
  2. 平成24年度秋季
  3. 平成24年度春期
  4. 平成23年度秋季

今発売されている平成27年度秋季版には、

  1. 平成27年度春期
  2. 平成26年度秋季
  3. 平成26年度春期
  4. 平成25年度秋季

が収録されている。

つまり!2年ごとに過去問を購入することで重複も漏れもなく過去問を収集することができるってわけ。

まあ、しょーもない知識ですが自分的にはなるほど感があったので残しておきます。

さすがにCOBOLをやったことない人がCOBOLの問題を解くのは無理

問題集にのっているからということで、せっかくだからCOBOLの問題に挑戦してみたけれど、さすがにCOBOLをやったことのない人間がいきなりコードを読むのは不可能でしたね。

ほんとチンプンカンプンでした。同じプログラム言語のC言語とくらべても全然違う感じ。謎の行数みたいなのとか、変数の命名規則とか何もかもが似ていない。

というわけで情報処理技術者試験では自分の最も得意とするプログラム言語の問題を解くのが良いでしょう。

擬似プログラムの記号の意味を確認

 

本日は平成25年春期午後の問8、疑似プログラミングの問題に挑戦。

擬似プログラムは難しい。

C言語を学んでいる人(私はそう)にとっては大体似ているのだが、独特の記号はさすがに意味を覚えないと対応できなさそうなのでここで確認しておくことにする。

代入記号

左矢印(←)は代入の意味。C言語でいうところのイコール(=)。

例えば以下はKに1を代入する処理。

  • K ← 1

繰り返し

繰り返し処理は以下のように2つの四角(■)を結ぶ線で表現する。C言語でいうところのforとかwhile。

f:id:maki9:20150630003738p:plain

条件分岐

条件分岐は両端がに矢のついた矢印で表現する。C言語でいうところのif。

f:id:maki9:20150630004522p:plain

まとめ

とりあえず自分が気になったものだけ挙げたけれど他にもたくさんあります。

マウスで字を書くのけっこう大変だな。ペンで書けるツール買おうかな…。