高橋 麻奈 著
本書は、ソフトウェア開発技術者試験を受験しようとする読者の方々のために構成されました。
実際の開発現場で活躍されている方にとっては、試験に向けた勉強時間を作ることが難しいこともあります。本書は、解説を読み、実際に問題を解きながら、試験内容をやさしく学べるようにしています。
本文では図を多く使い、読みやすくしています。具体例を取り上げ、計算問題などを実際に確認できるようにしています。また、重要事項を明確にし、試験の場で生かせるようにしています。過去問題も数多く紹介しています。過去問題を解くことで、知識を確実に自分のものとすることができるでしょう。
(「まえがき」より抜粋)
Chapter 1 情報理論
1-1 情報とはなんだろう
情報の大きさを定義する
情報の大きさを計算する
コンピュータではビットが基本になる
指数と対数を身につける
1-2 情報を扱う道具を身につけよう
場合の数を確認する
順列を計算する
組合せを計算する
確率を計算する
期待値を計算する
結果から原因を推測する
1-3 集合・論理演算の基本をおさえる
集合の要素を確認する
集合を演算する
論理演算の基本を確認する
複雑な論理演算をする
ド・モルガンの法則で変形できる
1-4 基数を理解しよう
基数の違いを知る
n進数を理解する
n進数から10進数に変換する
10進数からn進数に変換する
2進数←→8進数、16進数の変換
1-5 数値の表現方法を身につけよう
整数を表現する
2進数の表現方法をまとめよう
小数の表現方法にもいろいろある
1-6 誤差の種類をおさえておこう
誤差が発生することもある
誤差にも種類がある
1-7 ビットを計算してみよう
ビットを操作する論理演算
ビットを加算する
ビットの減算をする
ビットをシフト演算する
ビットを乗算する
1-8 オートマトンと言語を理解しよう
オートマトンでモデル化する
状態遷移図で表現する
正規表現でパターンをあらわす
言語をあらわす
Chapter 2 ハードウェア
2-1 ハードウェアの役割を理解しよう
ハードウェアには5大装置がある
演算にはいろいろな装置が必要
命令を実行する
命令は命令部とアドレス部からなる
アドレス指定方式によってアドレスを計算する
2-2 プログラムの実行を理解しよう
プログラムを実行する
固定区画方式でプログラムを配置する
可変区画方式でプログラムを配置する
小さなメモリで大きなプログラムを実行する
仮想記憶で大きな空間を利用する
2-3 強制的に実行を中断させる割込み
割込みで別のプログラムを実行する
割込みの手順をたどる
割込みの種類を分類する
2-4 コンピュータの頭脳CPUについて学ぶ
CPUは命令を処理する
CPUの性能をあらわす指標
CPUの設計にも種類がある
処理速度を高速化する
プロセッサを並列化する
2-5 メモリの種類と役割を理解しよう
メモリとは?
キャッシュメモリで高速化する
キャッシュメモリを利用したとき
キャッシュメモリの割付け方法
メモリインタリーブで高速化する
2-6 補助記憶装置の特徴を理解しよう
いろいろな補助記憶装置がある
ハードディスクは磁気ディスク
磁気テープはバックアップに使われる
CD-ROMは光で読み出す
追記・書換えができるCD-R/CD-RW
DVD-ROMは大容量の記憶装置
MOは光と磁気で書き込む
2-7 データを入力する装置と出力する装置
データを入出力する
入力装置の代表はキーボードとマウス
出力装置の代表はプリンタとディスプレイ
2-8 周辺機器の接続方法の規格を理解しよう
周辺機器とデータ転送をする
周辺装置を接続するためのインタフェース
拡張バスの代表はPCI
ハードディスクを接続するIDE
デイジーチェーンにできるSCSI
抜き差しができるUSB
プリンタを接続するセントロニクス
モデムを接続するRS-232C
IEEE1394は高速転送インターフェース
IrDAは赤外線で通信する
BlueToothは電波で通信する
Chapter 3 ソフトウェア
3-1 OSとプロセスを理解する
OSは基本ソフトウェアの1つ
OSの構成
OSの働き
ジョブとプロセスを知る
資源を割り当てる
プロセスの一生をたどる
スケジューリングアルゴリズム
3-2 排他制御でコントロール
排他制御を行う
資源を利用する前にロックする
セマフォを使って排他制御を行う
3-3 アルゴリズムを理解する
アルゴリズムを考える
順次、選択、繰返しを組み合わせる
フローチャートを描く
オーダ記法で計算量をあらわす
3-4 配列やリストでデータを管理する
データ構造を考える
配列は同種の値を並べる
リストはポインタでつなぐ
スタックは後で入れたものを先に取り出す
キューは先に入れたものを先に取り出す
逆ポーランド記法を使う
3-5 要素の関係を木やグラフであらわす
木は階層関係をあらわす
木のデータをたどる
グラフであらわすこともある
3-6 探索で大量のデータから目的のデータを見つける
探索とはデータを探すこと
線形探索法は先頭から順に探す
2分探索法は順に並んだデータを真ん中から探す
ハッシュ表で探索する
3-7 データを順に並べる整列
整列はデータを並べ替えること
3-8 文字列やネットワークを扱うアルゴリズム
文字列を探索する
ダイクストラ法で最短距離を求める
Chapter 4 データベース
4-1 データベースの基本を学ぶ
データベースでデータを共有できる
データベースのモデルを考える
データベースのスキーマを設計する
概念モデルをE-R図で把握する
論理モデルの種類を知ろう
関係データベースが最も普及している
4-2 データベースを正規化する
正規化で関係データベースの表を作成する
非正規形は繰り返し項目がある表
第1正規形は繰返しを除いた表
第2正規形は主キーによって項目が決まる表
第3正規形は主キー以外の項目によっては決まらない表
正規化を厳密に表現する
主キーでデータを特定できる
外部キーはほかの表を参照する
複合キーは組合せからなるキー
4-3 データベースを設計する
SQLでデータベースを操作する
表を作成する
ビュー表(CREATE VIEW)
データを追加・更新・削除する
4-4 データベースを利用する
関係データベースの演算をおぼえよう
関係演算には選択、射影、結合がある
集合演算には和、差、積がある
列を取り出す(SELECT)
条件で絞り込む(WHERE)
表を結合する
集計関数で集計する
グループ化する(GROUP BY)
グループ化した後の絞込み(HAVING)
並べ替える(ORDER BY)
パターンにマッチさせる(LIKE)
値を指定する(IN)
範囲を指定する(BETWEEN~AND~)
副問合せ
4-5 アプリケーションとデータベースを連携する
アプリケーションからデータベースを利用する
カーソルで1行ずつ取り出す
ストアドプロシージャでネットワークの負荷を減らす
4-6 データベース管理システムの仕組み
データベース管理システム
トランザクションが単位となる
トランザクションの性質(ACID属性)
トランザクション管理で矛盾をなくす
障害管理とバックアップ
チェックポイントからも回復できる
4-7 分散データベースを利用する
便利な分散データベース
Chapter 5 ネットワーク
5-1 通信の基本をおさえよう
データ通信の行う
信号は波の形になっている
ディジタル信号を伝送するには
アナログ信号を伝送するには
多重化で同時に通信する
受信データの誤りを検出する
5-2 通信方式と回線制御方式をおぼえよう
通信方式はデータの流れに着目する
送受信を決める回線制御方式
同期でタイミングをとる
実際の伝送制御手順を使う
5-3 通信サービスの基本を学ぶ
さまざまな種類がある通信サービス
通信サービスの実際
5-4 LANを構築する機器とプロトコル
プロトコルは通信上の手順
ネットワーク機器にはいろいろな種類がある
LANを構築する
LANの配線方式
LANのデータを制御するアクセス方式
実際のLAN規格を知る
5-5 インターネットを支えるTCP/IP
インターネットはTCP/IPを使う
アプリケーション層のプロトコル
ポート番号でアプリケーションを区別する
電子メールを送受信する
Webはハイパーリンクによる情報のつながり
Webページ上で活躍する応用技術
TCPとUDPを使う
5-6 IPアドレスの仕組みを学ぶ
IPアドレスはインターネット上の住所
ネットワーク部とホスト部からなる
IPアドレスにはクラスがある
サブネットマスクでネットワークを分割する
ドメインネームシステム(DNS)で変換する
グローバルIPアドレスとプライベートIPアドレス
NATとIPマスカレード
DHCPで自動的に割り当てる
IPアドレスとMACアドレスを変換する
ネットワークの状況を調べるプロトコル
ルーティングを行うプロトコル
回線を接続するPPP
5-7 セキュリティの基本をおさえよう
ネットワークには危険がある
不正アクセスを防止する
インターネットVPNを構築する
Webにセキュリティを加えるSSL
パスワードの認証
5-8 暗号化と電子署名の仕組み
伝送路上には危険がある
暗号によって盗聴を防ぐ
電子署名によって改ざんを防ぐ
認証局によってなりすましを防ぐ
Chapter 6 システム開発
6-1 システムの処理形態を知る
代表的なシステム構成
クライアントとサーバで連携する
6-2 システムの性能や処理時間をはかる
システムの性能を評価する
待ち行列を考える
分布でデータの特徴を知る
各種の統計指標を知る
データの分布を調べる
6-3 システム開発の流れをおぼえよう
システムが開発される工程
開発の代表的な進め方は3種類ある
レビューで各工程の問題点を発見する
レビューは人間の目で確認する
CASEツールは開発を支援する
開発コストの見積り
工程管理の手法をおぼえよう
6-4 要求定義の基本を学ぶ
システムの対象へのアプローチ
システムの対象をモデル化する手法
データを整理する方法
6-5 プログラム設計をする
モジュールに分割する
どのようなモジュールに分割するか
モジュールは独立性が重要
6-6 プログラミングの基本をおさえよう
プログラミング言語にはさまざまな種類がある
プログラムの基礎となるコード
言語プロセッサを覚えよう
プログラムの作成手順をたどる
コンパイラで翻訳する
リンクでつなぎあわせる
プログラム作成時に使うツール
プログラムの特徴
ソースコード内の要素
6-7 プログラムの設計方法を知ろう
構造化プログラミングを利用する
オブジェクト指向プログラミングを利用する
UMLで分析する
6-8 テストを計画しよう
テストによってバグを発見する
単体テストは1つのモジュールでテストする
結合テストではモジュールを組み合わせる
システムテストでは全体のテストを行う
信頼度曲線でエラーの発生を知る
品質管理を行う
6-9 システムの運用と保守を学ぶ
システムの信頼性を表現する
稼働率を計算する
複数システムを接続する
システムの信頼性を確保する
障害対策の基準を考える
システムの障害対策を行う
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。