情報処理技術者試験 高度の午前Ⅰの自分用メモ

午前Ⅰ免除の資格が切れて、
次回の試験は2年半ぶりに高度試験の午前Ⅰを受ける事になりました。
(試験に落ち過ぎた者の末路)

過去問を解いてみたところ、合格ラインのギリギリで不安だったので、点数を底上げするための自分用メモを作ることにしました。

「直前にこれを読み返せば数問は救われるだろう」というものを目指します。


## 凡例
問題文から引用した場合は(R3h)などの表記をする。
(H24h): 平成24年春期
(R4a): 令和4年秋期

## 参考
応用情報技術者過去問道場
https://www.ap-siken.com/apkakomon.php

IPAで公開されている過去問題
https://www.ipa.go.jp/shiken/mondai-kaiotu/index.html

## 前提
午後Ⅰは30問。
試験時間は50分。
60点で合格ですが、設問ごとの配点は非公開らしいです。
（18問正答しても不合格の可能性がある）

応用情報の午前試験の80問からピックアップされているそうです。
問題数はテクノロジ系>ストラテジ系>マネジメント系

## テクノロジ系

### 数式の解法
#### オイラー法
常微分方程式の数値的解法。

#### ガウスの消去法
行列表現を用いて連立方程式を解く。

#### シンプソン法
ある方程式を通る3点を近似した二次関数で近似値を求める。

#### ニュートン法
>非線形方程式 ƒ(x)＝0 の近似解法であり，次の手順によって解を求めるものはどれか。ここで，y＝ƒ(x) には接線が存在するものとし，(3)でx0と新たなx0の差の絶対値がある値以下になった時点で繰返しを終了する。(R3a)

### M/M/1の待ち行列モデル
- 利用者が発生する時間間隔はポアソン分布に従ってランダム
- サービス時間は指数分布に従ってランダム
- 窓口は1つ
```math
平均待ち時間 = \frac{利用率}{1-利用率}\times平均サービス時間
```

### 論理回路
秋に1問出る傾向がある気がします。
AND、ORは割愛。

#### NAND(否定論理積)
```cs
NAND(0, 0) == 1
NAND(0, 1) == 1
NAND(1, 0) == 1
NAND(1, 1) == 0
```
入力が両方1の時だけ0となる。

#### NOR(否定論理和)
```cs
NOR(0, 0) == 1
NOR(0, 1) == 0
NOR(1, 0) == 0
NOR(1, 1) == 0
```
入力が両方0の時だけ1となる。

#### XOR(排他的論理和)
```cs
XOR(0, 0) == 0
XOR(0, 1) == 1
XOR(1, 0) == 1
XOR(1, 1) == 0
```
入力が異なると1、同じなら0。
表記ルールの「論理一致素子」（XNOR）がヒントになる。

### ソートアルゴリズム
クイックソート、ヒープソート、マージソートが速いと言われている。

#### クイックソート
>**中間的な基準値を決めて**，それよりも大きな値を集めた区分と，小さな値を集めた区分に要素を振り分ける。次に，それぞれの区分の中で同様の操作を繰り返す。(R3a)

O(nlog(n))～O(n^2)

配列の1番目を基準値とする場合は、
```
[3, 5, 4, 1, 2]
[1, 2][3][5, 4]
[1][2][3][4][5]
```
のようになる。

#### バブルソート
>**隣り合う要素を比較**して，大小の順が逆であれば，それらの要素を入れ替えるという操作を繰り返す。(R3a)
O(n^2)

#### シェルソート
>**ある間隔おきに取り出した要素から成る部分列をそれぞれ整列**し，更に間隔を詰めて同様の操作を行い，間隔が1になるまでこれを繰り返す。(R3a)

O(n^2)

#### ヒープソート
>未整列の部分を**順序木**にし，そこから最小値を取り出して整列済の部分に移す。この操作を繰り返して，未整列の部分を縮めていく。(R3a)

O(nlog(n))

#### 選択ソート
全ての値で最小(最大)の値を1番目に移動する。
2番目以降で最小(最大)の値を2番目に移動する。
……
これを残り全てに繰り返す。
O(n^2)
```
[2, 4, 3, 5, 1]
[1, 2, 4, 3, 5]
[1, 2, 4, 3, 5]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
```

#### 挿入ソート
未整列の配列から整列済の配列に1つずつ値を並べていく。
O(n^2)
```
[2, 4, 3, 5, 1]
↓
[]
[2]
[2, 4]
[2, 3, 4]
[2, 3, 4, 5]
[1, 2, 3, 4, 5]
```

#### マージソート
データを最小単位になるまで分割を繰り返してから、徐々にマージしていく。
マージは整列済の配列同士で行えるので速い、というもの。
O(nlog(n))
```
[2, 4, 3, 5, 1]
[2, 4, 3] [5, 1]
[2, 4] [3]  [5, 1]
[2][4] [3]  [5][1]
[2, 4] [3]  [1, 5]
[2, 3, 4] [1, 5]
[1, 2, 3, 4, 5]
```

#### 分割統治法
言葉本来の定義はよく分からないが、
ソートにおいては「配列を再帰的に分割して行く方法」と理解。
**マージソート**と**クイックソート**が該当する。

### スケーラビリティ
#### スケールアウト
サーバーの**台数を増やす**。

#### スケールイン
サーバーの**台数を減らす**。

#### スケールアップ
サーバーの**性能を上げる**。

#### スケールダウン
サーバーの**性能を下げる**。

### 誤り訂正

### UML
#### クラス図
>汎化，集約，関連などのクラス間の関係(H21a)
クラスと関連から構成され，システムの静的な構造を表現する。(H28a)

#### オブジェクト図
#### コンポーネント図
#### ディプロイメント図
ノードとコンポーネントの図

#### コンポジット図
#### パッケージ図
#### プロファイル図
#### アクティビティ図
>ある**振る舞いから次の振る舞いへの制御の流れ**を表現する。(R3a)

#### シーケンス図
>**オブジェクト間の相互作用を時系列で**表現する。(R3a)

#### ユースケース図
>システムが外部に提供する機能と，それを**利用する者や外部システムとの関係**を表現する。(R3a)

#### ステートマシン図
#### 相互作用(インタラクション概要)図
#### タイミング図
#### コミュニケーションズ

### UMLじゃない図
#### 状態遷移図
>一つのオブジェクトの状態がイベントの発生や時間の経過とともにどのように変化するかを表現する。(R3h)

#### E-R図
>対象をエンティティとその属性及びエンティティ間の関連で捉え，データ中心アプローチの表現によって図に示す。（H30a)

#### DFD(Data Flow Diagram)
>データの流れによってプロセスを表現するために，データ送出し，データ受取り，データ格納域，データに施す処理を，データの流れを示す矢印でつないで表現する。（H30a)

#### BPD(Business Process Diagram)
>プロセスの機能を網羅的に表現するために，一つの要件に対し発生する事象を条件分岐の形式で記述する。（H30a)

### モバイル通信サービス
#### テザリング
>PC，ゲーム機などから，携帯電話端末をモデム又はアクセスポイントのように用いて，インターネットなどを利用したデータ通信ができる(H24h)

#### ハンドオーバー
>モバイル通信サービスにおいて，移動中のモバイル端末が通信相手との接続を維持したまま，ある**基地局経由から別の基地局経由の通信へ切り替える**こと(R5h)

#### ローミング
>契約している通信事業者のサービスエリア外でも，**他の事業者のサービスによって**携帯電話端末を使用できる。(H24h)

#### フォールバック
電波状況によって5G→4G→3Gと回線を切り替えること。

### デジタルフォレンジックス
セキュリティインシデントに対して原因究明や**法的証拠**を明らかにするプロセス。
収集・検査・分析・報告の4つのフェーズから成る。

## マネジメント系
### PMBOK
#### パフォーマンス・レビュー
現在のプロジェクトのパフォーマンスを測定し，ベースラインと比較してプロジェクトの状況を把握する。

#### デザイン・レビュー
第三者がプロジェクトの成果物をレビューすることによって，設計の不具合の有無を確認する。

#### リスク・レビュー
プロジェクトの全体リスク及び特定された個別リスクについて，リスク対応策の有効性を評価する。

#### フェーズ・ゲート
プロジェクトのパフォーマンスや進捗状況を評価して，プロジェクトの継続や中止を判断する。


### スクラム開発
以下の順番
- スプリントプランニング(計画)
- デイリースクラム(日時会議)
- スプリントレビュー(成果物デモ)
- スプリントレトロスペクティブ(振り返り)

## ストラテジ系

### ROI(Return On Investment：投資利益率)
**利益÷投資額**

### IoT関連
(大体名前から予想が付く……)
#### エッジコンピューティング
演算処理のリソースをセンサ端末の近傍に置くことによって，アプリケーション処理の低遅延化や通信トラフィックの最適化を行う。

#### ウェアラブルコンピューティング
人体に装着して脈拍センサなどで人体の状態を計測して解析を行う。

#### グリッドコンピューティング
ネットワークを介して複数のコンピュータを結ぶことによって，全体として処理能力が高いコンピュータシステムを作る。

#### EMS(Energy Management System)
>IoTデバイスに対して，一定期間のエネルギー使用量や稼働状況を把握して，電力使用の最適化を図る技術(R5h)

#### エネルギーハーベスティング
>周囲の環境から振動，熱，光，電磁波などの微小なエネルギーを集めて電力に変換して，IoTデバイスに供給する技術(R5h)

#### PoE(Power over Ethernet)
>データ通信に利用するカテゴリ5以上のLANケーブルによって，IoTデバイスに電力を供給する技術(R5h)

#### ノーマリーオフコンピューティング
>必要な時だけ，デバイスの電源をONにして通信を行うことによって，IoTデバイスの省電力化を図る技術(R5h)

### ○○依頼書
#### RFI(Request for Information：情報提供依頼書)
>調達者から供給者候補に対して，システム化の目的や業務内容などを示し，**必要な情報の提供を依頼**すること(R5h)

#### RFP(Request for Proposal：提案依頼書)
>調達者から供給者候補に対して，対象システムや調達条件などを示し，**提案書の提出を依頼**すること(R5h)

#### RFC(Request for Change：変更依頼書)
>調達者から供給者に対して，契約内容で取り決めた内容に関して，**変更を要請**すること(R5h)

### マクシミン原理
最小利得が最大になる選択をする。
（最悪の場合に最も得する選択をする）