【基本情報技術者試験対策】ソフトウェア実装・構築を図解で分かりやすく解説|コーディング・デバッグ・テスト

基本情報技術者試験対策

基本情報技術者試験のソフトウェア実装・構築を解説します。
コーディング、コーディング標準、IDE、コードレビュー、デバッグなど試験頻出のポイントを図やサンプルコード付きで分かりやすく学べます。

ソフトウェア実装・構築とは

ソフトウェア実装・構築とは、設計書を基にプログラムを作成し、動作確認やテストを行ってソフトウェアを完成させる工程です。

ソフトウェア実装・構築

また、プログラムを作成するだけでなく、コードレビューやデバッグ、ユニットテストを実施して品質を確認し、安心して利用できるソフトウェアに仕上げることも重要な役割です。

ソフトウェア構築の流れ

ソフトウェア構築は、一般的に次の流れで進めます。

  • 設計書を基にプログラムを作成する(コーディング)
  • コーディング標準に沿って実装する
  • コードレビューを実施する
  • デバッグで不具合を修正する
  • ソフトウェアユニットテストを実施する
  • テスト結果を確認し、品質を評価する

ソフトウェアユニットの作成

ソフトウェアユニットとは

ソフトウェアユニットとは、システムを構成する最小単位のプログラムのことで、一般的には単一の関数(メソッド)、あるいは関連する処理をまとめた「クラス」や「モジュール」を指します。

例えば、ショッピングサイトでは商品クラスや購入メソッドなどです。

ソフトウエアユニット

システム全体を一度に開発するのではなく、小さな単位に分割して開発することで、保守性や再利用性を高めることができます。

コーディングとは

コーディングとは、プログラミング言語を使ってコンピュータに指示(コード)を書く作業のことです。

コーディングで重要なポイント

コーディングでは、次のような点を意識して実装します。

  • 詳細設計書どおりに実装する
  • コーディング標準(命名規則やインデントなど)を守る
  • 読みやすく分かりやすいコードを書く
  • 同じ処理を繰り返し書かず、共通化する
  • エラーが発生した場合の処理も考慮する

コーディング標準

コーディング標準とは

コーディング標準とは、プログラム(コード)の書き方を統一するためのルールです。

プログラムは一人で開発するとは限らず、複数人で開発・保守することが一般的です。
そのため、誰が読んでも理解しやすいコードを書くために、コーディング標準が定められます。

コーディング標準に従うことで、読みやすく保守しやすいプログラムを作成できます。

コーディング標準の例

インデント(字下げ)の幅を統一する

関数、分岐、繰り返しの中は、インデント(字下げ)をして読みやすくします。

■悪い例

if ($price >= 1000) {
echo "送料無料";
}

■良い例

if ($price >= 1000) {
    echo "送料無料";
}

変数名や関数名の命名規則を統一する

変数名や関数名は、役割が分かる名前を付けます。

■悪い例
$a = 1000;
$b = 10;

■良い例
$totalPrice = 1000;
$taxRate = 10;

変数名は用途や業務を意識して命名することがポイントです。

エラー時の処理を記述する

JavaやC#など例外機構がある言語では、必要に応じて try-catch などで例外を処理します。

try {
    // 処理
} catch (IOException e) {
    // エラー発生時の処理
}

例外を catch することだけが良いコーディング規約というわけではありません。
例えば、何かしら値が入るはずの変数にNULLがセットされていた場合や、メモリ確保関数でメモリ確保ができなかった場合の処理を記述するといったことです。

その他のコーディング標準例

  • 定数の命名規則(定数は大文字で記述するなど)
  • コメントの書き方(何をしているかが分かるように記述)
  • 使用禁止命令を使用しない

コーディング標準が必要な理由

コーディング標準が必要な理由は、プログラムの品質を向上させ、保守しやすくなるので、結果として以下のメリットが生まれます。

  • コードレビューを効率よく行える
  • バグの発生を抑えられる
  • チーム全体で品質を維持できる

コーディング支援手法

コーディング支援ツールとは

コーディング支援ツールとは、プログラムの作成を支援するソフトウェアです。

代表的なものに、Visual Studio CodeやVisual Studio、EclipseなどのIDE(統合開発環境)があります。

これらのツールを利用することで、入力ミスを減らしたり、プログラムの可読性を向上させたり、デバッグを効率よく行ったりできます。

コード補完

コード補完とは、入力途中のプログラムを自動で候補表示し、入力を支援する機能です。

下の図はVisual Studioでstring(文字)型の変数TestStringで使用可能なメソッドなどの候補を表示している例です。

コード補完

コード補完を利用することで、入力ミスを防ぎ、効率よくコーディングできます。

シンタックスハイライト

シンタックスハイライトとは、プログラムの構文に応じて文字の色を変えて表示する機能です。

下はVisual Studioの例ですが、キーワード(if、forなど)、文字列、コメント、関数名などを色分けして表示することで、プログラムが読みやすくなります。
また、書式がおかしい箇所も赤色で指摘をしてくれます。

シンタックスハイライト

オートインデント

オートインデントとは、改行した際に自動で字下げ(インデント)を行う機能です。

例えば、if文の中で改行すると、自動的に適切な位置までインデントされます。

これにより、インデントのずれを防ぎ、読みやすいプログラムを作成できます。

デバッガ

デバッガとは、プログラムを実行しながら動作を確認し、不具合(バグ)の原因を調査するためのツールです。

ブレークポイントを設定すると、その位置でプログラムを一時停止し、変数の値や処理の流れを確認できます。

デバッガ

デバッガを利用することで、プログラムの誤りを効率よく発見し、修正できます。

コードレビュー

コードレビューとは

コードレビューとは、開発者が作成したソースコードを第三者が確認し、改善点や不具合がないかをチェックすることです。

一般的には、プログラムを作成した本人以外の開発者がレビューを担当します。自分では気付きにくいミスや改善点を発見できるため、品質向上に効果があります。

コードレビューは、デバッグやテストとは異なり、プログラムを実行せずにソースコードを確認することが特徴です。

レビューで確認する内容

コードレビューでは、主に次のような点を確認します。

  • 設計書どおりに実装されているか
  • コーディング標準を守っているか(変数名やコメントなどが適切か)
  • 不要な処理や効率の悪いコードがないか

レビューの代表的な手法

コードレビューには、さまざまな手法があります。

手法説明
ウォークスルー作成者を中心にプログラムの内容を説明しながら確認する手法です。
・目的:不具合の早期発見
・参加者:開発メンバーが中心で、原則として管理者は参加させない。
・特徴:その場での解決策の議論は行わず、発見に専念する。
インスペクションチェックリストに基づいて、ソースコードを詳細に確認する手法です。
仕様との不一致やコーディング標準違反などを体系的に発見できるため、高品質なレビューが期待できます。
ペアプログラミング2人1組でプログラムを作成する手法です。
1人がコーディングを行い、もう1人がリアルタイムでコードを確認するため、不具合を早期に発見できます。

デバッグ

デバッグとは

デバッグとは、プログラムの不具合(バグ)を発見し、原因を調査して修正する作業です。

デバッグでは、デバッガなどの支援ツールを利用すると、効率よくバグの原因を特定できます。

■デバッグとテストの違い
テストでバグを発見し、デバッグで原因を調査・修正します。

デバッグの方法

代表的な方法は次のとおりです。

  • プログラムを実行して動作を確認する
  • 変数の値を表示して確認する
  • ログを出力して処理の流れを確認する
  • デバッガを使用して一行ずつ実行する
  • アサーションで想定どおりの状態か確認する

アサーションとは

アサーション(Assertion)とは、「プログラムが想定どおりの状態であること」を確認するための仕組みです。

条件が成立しない場合はエラーを発生させるため、バグを早い段階で発見できます。

下のコードはPHPで合計金額:$total が負の値であれば、アサーションエラーが発生し、異常な状態であることが分かります。

// 合計金額は0以上であることを確認
assert($total >= 0);

トレーサとは

トレーサとは、プログラムの実行履歴や処理の流れ、メモリなどの内容を記録・表示する仕組みです。

例えば、どの関数が呼び出されたか、どの順番で処理が実行されたかを確認できます。

複雑なプログラムでは、処理の流れを追跡できるため、バグの原因調査に役立ちます

IDE(統合開発環境)とは

IDE(Integrated Development Environment:統合開発環境)とは、プログラムの作成からデバッグまで、ソフトウェア開発に必要な機能をまとめた開発ツールで、一般的には次の機能があります。

  • コード補完
  • シンタックスハイライト
  • オートインデント
  • デバッガ
  • プロジェクト管理
  • コンパイル・実行機能

■一般的なIDE
 ・Visual Studio
 ・Eclipse

腕試し(理解テスト)

腕試し(理解テスト)に挑戦する場合はこちらをクリック。

コメント

タイトルとURLをコピーしました