うろ覚えだった知識をまとめてみたよ【ソフトウェア編②】
学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。
ファイル管理
大雑把に言えばファイルの配置の管理とファイルのアクセス方法の提供
レコードとファイル
一人分、一件分のデータをレコードという。ファイルはそのレコードをまとめたもの。 例えば住所録ファイルには、一件分の住所データ(レコード)が何件も入っている。
ファイル編成法
レコードをファイルへ格納する方法をファイル編成法という。汎用機用の考え方でPCのOSにはない。 順編成ファイル:先頭から順に記録する。隙間なく記録できるため、格納効率は高い。しかしアクセスの場合に先頭から順にしか読めないので時間がかかる(昔のテープなど) 直接編成ファイル:社員番号や口座番号などのようにキーとそのハッシュ値(ざっくりアドレスのこと)を用いて格納場所を求める。指定したデータに素早くアクセス出来るが、格納効率は悪い。
ファイルシステム
ディスク装置でファイルを管理する仕組み ディレクトリ:ファイルを格納出来る入れ物みたいな パス:ファイルの位置を表す表記。ルートディレクトリを起点として表記したものを絶対パス。カレントディレクトリを起点として表記したものを相対パス。
ソフトウェア開発
大まかな工程は 1.原始プログラム:もともとのソースコードみたいなもん 2.目的プログラム:機械語に変換されたプログラム(=オブジェクトプログラム) 3.ロードモジュール:実行ファイルとも呼ばれる。実行されるプログラムをメモリにおいて実行される。 4.実行
言語プロセッサ
言語で書かれたプログラムを機械語に変換するツール アセンブラ:アセンブラ言語で書かれたプログラムをバイナリコードの機械語プログラム(2進数表記)に変換する コンパイラ:C,java,CIBOLなどの言語(高級言語)で書かれたプログラムを全体をひとまとめに機械語に変換する インタプリタ:プログラムを一行ずつ解釈して実行する。その為プログラム実行速度は遅くなりがち。しかし、出来上がっているところまで実行出来る点で優れている(コンパイラは全体が出来上がっていないと実行できない)
コンパイルの流れ
1.字句解析:プログラムをトークン(単語ごと)に分ける 2.構文解析:言語の文法に従って、トークンの並びを分析する 3.意味解析:意味を捉えて分析する 4.最適化:プログラムの実行速度を早くする為に、高速な命令を使うようにしたり、処理を単純化したりする
エラー検出に使うツール
- スナップショットダンプ:特定の部分を実行するごとに、メモリやレジスタの内容を書き出す
- トレーサ:プログラムの実行過程を記録する
- インスペクタ:データの構造やオブジェクトの内容を記録する
- アサーションチェッカ:ある時点で成立すべき条件をプログラム中に設定して、その条件が成立しているかどうかを検証する
テストに使うツール
- テストケースジェネレータ:テストデータをを生成する
- シュミレータ:擬似的なコンピュータ環境や、ネットワーク環境を作り出す
CASE(Computer Aided Software Engineering)
コンピュータを活用してソフトウェアを効率的に開発できるようにするためのツール群のこと。例えばドキュメントの作成を手助けしてくれるツールであったり、Eclipse等の統合開発環境(IDE)もそう。
参考
https://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%B9%B3%E6%88%9028%E5%B9%B4%E5%BA%A6-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93-TAC%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E8%AC%9B%E5%BA%A7/dp/4813265545www.amazon.co.jp