見出し画像

データ管理とファイルシステム~開発ツール(2024.05.26)

はじめに

転職活動の関係で、優先して時間を使わなければいけないことがあり、勉強が中断してしまっていました、、、

今日から再開して頑張っていこうと思います!

4日間勉強できていなかったので、受験目標を7月10日に変更します。

また、今まで、項目の達成を目標に進めていたのですが、他に勉強することとの時間配分を考えて、この振り返りも含めて1日3.5hの中で進めたところまでを目標に数日やってみようと思います。

あまりにも進捗が遅くなったら、適宜変更してやっていきます!

今日はまずは、5.26の振り返りからやっていきます!


参考書


データ管理とファイルシステム

データ管理

  • コンピュータが処理する「データ」を管理する機能

  • 例)ファイルシステム、バックアップ

ファイルシステム

  • データのまとまりを「ファイル」として扱うことで、データ管理をしやすくする機能

  • ファイルシステムが2進数の羅列であるデータを「ファイル」として視覚化し、人間に扱いやすい形に変換する

ファイルとディレクトリ

  • ファイル
    記憶装置に記録された情報の集まりであり、ファイルシステムの管理単位の1つ。ファイルには「書類」という意味がある

  • ディレクトリ
    ファイルを格納する場所。ディレクトリを活用することで、無数に存在するファイルを、種類ごとに分類して格納できる

  • ディレクトリとファイルの違い

    • ディレクトリ → CUIで使う

    • ファイル → GUIで使う

ツリー構造によるデータ管理

  • ファイルシステムは、ファイルやディレクトリを「ツリー構造(木構造、階層構造)」で管理する

  • ルートディレクトリRoot Directory
    階層構造の最上位のディレクトリのこと
    通常はハードディスク直下がルートディレクトリになる

  • カレントディレクトリCurrent Directory
    ユーザーが現在、作業しているディレクトリのこと

パスとは

  • ファイルやディレクトリの場所を示す文字列

  • ルール1:ディレクトリやファイルは「スラッシュ)」で区切る

    • フォルダやファイルの階層構造は「スラッシュ)」で区切る。

  • ルール2:パスのはじまりが「/」のときは左端にルートディレクトリが省略されているものとする

    • パスの指定が「」からはじまる場合、それは「ルートディレクトリからの指定」であることを意味する

    • 絶対パス
      ツリー構造の最上位であるルートディレクトリから指定されたパスのこと

  • ルール3:カレントディレクトリは「」で表す

    • パスはカレントディレクトリから指定することもできる

    • カレントディレクトリから指定する場合は「./」からはじめる

    • 相対パス
      カレントディレクトリから、別のファイルやフォルダを指定するパスのこと

  • ルール4:1階層上のディレクトリは「..」で表す

    • 相対パスの場合は、カレントディレクトリよりも上の階層のファイルやフォルダを指定するケースもある

    • 1つ上の階層を指定する場合は「../」からはじめる

  • パスの区切り文字

    • パスの区切り文字は「/」が基本

    • Windowsのパスの区切り文字は「¥」

バックアップ

  • 通常使用している補助記憶装置とは別の補助記憶装置上にデータの予備を取っておくこと

フルバックアップ(完全バックアップ)

  • 常にすべてのデータをバックアップすること

  • メリット

    • 作業の簡易さ
      システムの障害が発生した際には、最後のバックアップデータを使うだけで、システムを元の状態に戻すことができる

  • デメリット

    • データ量が多い場合には、バックアップの作成に時間がかかる

差分バックアップ

  • フルバックアップ以降、新たに追加されたデータのみをバックアップすること

  • メリット

    • バックアップにかかる時間が短い

  • デメリット

    • 復旧には、フルバックアップと、差分バックアップの2つのデータが必要になるので、復旧作業が煩雑になる

  • 差分バックアップ時のデータとフルバックアップ時のデータの差分を毎回バックアップするので、フルバックアップ時から時間が経つと、差分バックアップのデータが多くなりがち

増分バックアップ

  • 前回のバックアップから新たに追加されたデータのみをバックアップすること

  • メリット

    • 差分バックアップよりもバックアップにかかる時間が短い

  • デメリット

    • バックアップのデータが複数になるので、復旧作業が差分バックアップのときよりもさらに煩雑になる

レプリケーションとアーカイブ

  • レプリケーション

    • 目的:システムの継続

    • コピーのタイミング:リアルタイム

    • データの複製を別のコンピュータ上に作成して、リアルタイムで内容を同期すること

  • アーカイブ

    • 目的:データの参照

    • コピーのタイミング:数カ月~数年

    • データを保管庫(アーカイブ)にコピーして長期間保存すること

  • バックアップ

    • 目的:データの復旧

    • コピーのタイミング:数時間~数日

    • 通常使用している補助記憶装置とは別の補助記憶装置上にデータの予備を取っておくこと

開発ツール

ソースコードとオブジェクトコード

  • ソースコード

    • 人間が読みやすいプログラム言語で書かれたプログラムのこと

    • 別名:原始プログラム

  • オブジェクトコード

    • 「0」と「1」の数字の羅列に変換されたプログラムのこと

    • 別名:目的モジュール目的プログラム

コンパイラ

  • 「人間が書いたソースコード」を「コンピュータが読めるオブジェクトコード」へ翻訳するツール

  • コンパイラの処理手順

    1. 字句解析
      ソースコードを細かい要素に分けて、間違いがないかチェックする

    2. 構文解析
      プログラムの文法が間違っていないかチェックする

    3. 意味解析
      プログラムの手続きに矛盾がないかチェックする

    4. 最適化
      計算の順序などを改善して、効率的なプログラムに変換する

    5. コード生成
      オブジェクトコードのプログラムを作る

  • 最適化コンパイラ
    最適化の手順を含むコンパイラのことを特にこう呼ぶ

リンカとロードモジュール

  • リンカ

    • コンパイラが翻訳した複数のオブジェクトコードに、ライブラリなどを加えて、コンピュータが実行できる1つのプログラムを作るツール

  • ロードモジュール

    • リンカ」というツールで生成された、コンピュータが実行できるプログラム

    • 実効可能プログラムともいう

    • ローダ」というツールによって、主記憶に格納(ロード)され、CPUによって実行される

  • オブジェクトコード単体では、実行する上で必要となる別のオブジェクトコードやライブラリなどが1つにまとめられていないため、実行できない

テスト

  • プログラムが動くかどうかを確認すること

  • テストツール」と呼ばれる、プログラムの間違いを見つけるプログラムを用いてテストを行う

  • 大きく「人間によるテスト」と「コンピュータによるテスト」の2つに分類できる

  • 「人間によるテスト」

    • 代表例)レビュー
      複数の人が集まって、ドキュメントやソースコードを読み、誤りがないか確認すること

  • 「コンピュータによるテスト」

    • 静的テスト」と「動的テスト」に分類できる

    • 静的テスト
      プログラムは実行せずに、ドキュメントやソースコードをチェックすることで、プログラムの間違いを見つけるテスト手法

    • 動的テスト
      プログラムを実行し、その結果からプログラムの間違いを見つけるテスト手法

テストツールの種類

  • 静的テストツール

    • ソースコード解析ツール

      • ソースコードを解析して、プログラムの誤りを見つけるソフトウェア

    • プログラム構造解析ツール

      • ソースコードを解析して、プログラムの階層構造を表にしたり、プログラムの改善点を示したりするソフトウェア

    • モジュールインタフェースチェックツール

      • ソースコードを解析して、モジュール間のインタフェースの整合性をチェックするソフトウェア

  • 動的テストツール

    • インスペクタ

      • プログラムを実行してエラーを検出するソフトウェア

    • テストカバレッジツール

      • プログラムが取りうる処理手順のうち、どれだけ多くのルートが実行されたのかを明らかにするソフトウェア

  • テスト支援実施ツール

    • 静的テストと動的テストの準備を自動で行うテストツール

    • テストベッドツール

      • モジュール結合テストに必要なドライバやスタブなどの仮モジュールを生成するソフトウェア

      • テスト環境を自動的に生成してくれるので、手作業でテスト環境を作る手間を省くことができる

    • テストデータ生成ツール

      • テストデータを自動的に生成するソフトウェア

インタプリタ

  • ソースコードを1文ずつ解釈しながら実行するツール

  • メリット
    書いたソースコードをすぐに実行できるので、効率よくソフトウェアを開発できる

  • デメリット
    コンパイラのように、ソースコードの最適化が行われないため、実行時の効率が悪い

  • コンパイラがソースコードを一括で変換するのに対し、インタプリタはソースコードを1文ずつ変換しながら実行する

進捗

46 / 97 (47%)

この日に、5項目をやり、残ってた1項目の遅れを取り戻せた。

この記事が気に入ったらサポートをしてみませんか?