外部設計の解説(ITパスポートシラバス用語)
外部設計(External Design / 基本設計)とは 外部設計(基本設計)とは、要件定義で決まった「システムで実現したいこと」をベースに、システムの「使い手(ユーザー)から見える部分」を設計する工程です。システムの操作画面のデザイン(ボタンの配置や入力項目など)や、どのような帳票(レポート)を出力するか、他システムとどのようにデータをやり取りするかといった仕様を決定します。ユーザーが使いや...
Django、Python、AWS、Linux、セキュリティ、CVE、基本情報技術者、応用情報技術者、ITパスポートの用語を、図解と実務手順で解説します。個人開発kurutann.comの検証記録や障害対応事例も公開しています。
タグ「システム開発技術」の記事を表示中× クリア
外部設計(External Design / 基本設計)とは 外部設計(基本設計)とは、要件定義で決まった「システムで実現したいこと」をベースに、システムの「使い手(ユーザー)から見える部分」を設計する工程です。システムの操作画面のデザイン(ボタンの配置や入力項目など)や、どのような帳票(レポート)を出力するか、他システムとどのようにデータをやり取りするかといった仕様を決定します。ユーザーが使いや...
内部設計(Internal Design / 詳細設計)とは 内部設計(詳細設計)とは、外部設計で決まった「ユーザーから見える仕様(画面や操作手順)」を実現するために、システムの「内側の仕組み(プログラマーがコードを書くための詳細な仕様)」を設計する工程です。データの処理方法、データベースのテーブルの構造、プログラムを構成する部品(クラスやモジュール)の分け方など、システムの裏側の動きをエンジニア...
単体テストとは 単体テスト(たんたいてすと)とは、開発したプログラム全体を一度にテストするのではなく、プログラムを構成する「最小の部品(関数やクラス、メソッドなど)」が、それぞれ単体で正しく動くかどうかを確認する最初のテスト工程です。英語では「ユニットテスト」とも呼ばれます。 家づくりに例えると、家全体の組み立てを始める前に、使用する柱やレンガ、ドアノブなどの各パーツ自体に傷がないか、強度や寸法が...
結合テストとは 結合テスト(けつごうてすと)とは、単体テストをクリアした複数のプログラム部品を組み合わせ(結合し)、それらが連携して正しく動作するかどうかを検証するテスト工程です。英語では「インテグレーションテスト」と呼びます。 家づくりに例えると、個別のチェックが終わったドアとドア枠を壁に取り付けてみて、「ドアが引っかからずにスムーズに開閉するか」「鍵がきれいに閉まるか」といった、部品同士の相性...
運用テストとは 運用テスト(うんようてすと)とは、システム開発の最終段階において、本番とほぼ同じ環境で、実際の業務の流れに沿ってシステムが問題なく動作するかどうかをユーザー(発注者)やシステム運用者が確認するテストです。「受入れテスト」とも呼ばれます。 家づくりに例えると、家が完成した後に実際に家具を配置し、家族みんなで何日か暮らしてみて、「生活動線に不便はないか」「エアコンの効き具合は十分か」「...
要件定義とは 要件定義とは、システム開発の最初の工程であり、クライアント(発注者)がそのシステムを使って「何をしたいのか」「どのような機能が必要か」を明確にし、開発の仕様として取りまとめる作業のことです。 要件は大きく分けて、以下の2種類に分類されます。 機能要件:ユーザーが画面で操作する機能や、システムが処理する内容そのもの(例:ログイン機能、商品の購入カート機能、検索機能など)。 非...
外部設計とは 外部設計とは、システム開発において、要件定義で決まった内容をもとに、システムの「ユーザーから見える部分」の仕様を決める工程のことです。「基本設計」とも呼ばれます。 主に、ユーザーが操作する画面のデザインや配置(画面レイアウト)、データを入力したり結果を表示したりする画面間の流れ(画面遷移図)、印刷される帳票のレイアウト、他システムとのデータのやり取りの方法などを設計します。発注者(ク...
内部設計とは 内部設計とは、外部設計(基本設計)で決まった仕様をもとに、プログラマーが実際にプログラムコードを書くことができるように、システムの「ユーザーからは見えない裏側の仕組み」を詳細に設計する工程のことです。「詳細設計」とも呼ばれます。 外部設計が「何を見せるか(表面)」を設計するのに対し、内部設計は「どのようにコンピュータで処理するか(裏面)」を設計します。具体的には、データの処理ロジック...
モジュール分割とは モジュール分割とは、ひとつの大きなプログラムを、特定の機能や役割を持った小さくて独立した部品(モジュール)に細かく分ける設計手法のことです。これにより、プログラムの構造が整理され、開発、テスト、修正が格段に行いやすくなります。 モジュール分割を上手に行うための評価基準として、「結合度」と「凝集度(ぎょうしゅうど)」があります。 結合度(低い方が良い):モジュール同士の結び...
単体テストとは 単体テストとは、システムを構成する最小単位の部品(モジュールや関数、クラスなど)が、単体で正しく設計通りに動作するかを検証するテストのことです。英語では「ユニットテスト」とも呼ばれます。 プログラム全体を組み立ててからテストを行うと、バグ(不具合)が見つかったときに「どの部品のせいで動かないのか」原因を特定するのが非常に困難になります。そのため、家を建てる際にレンガや柱の強度を個別...
結合テストとは 結合テストとは、単体テストをクリアした複数のプログラムの部品(モジュール)を組み合わせたときに、それらが連携して正しく動作するかを検証するテストのことです。モジュール同士をつないだ境界(インターフェース)でデータの受け渡しがスムーズに行われているかを確認します。 個別の部品がどれだけ完璧に動いていても、それらを合体させたときに「データの形式が合わない」「処理を送るタイミングがズレて...
システムテストとは システムテストとは、開発したすべてのプログラムやハードウェアを結合し、システム全体として要件定義で定めた機能や性能、品質がすべて満たされているかを検証する最終段階のテストのことです。「総合テスト」とも呼ばれます。 個々の機能が正しく動くかだけでなく、実際の運用環境に近い状態で全体を動かします。機能要件(想定通りの画面遷移や計算結果が得られるか)はもちろん、非機能要件である「大量...
受入れテストとは 受入れテストとは、開発会社から納品されたシステムに対して、発注者(クライアントや実際の業務ユーザー)が自ら操作を行い、業務で問題なく使えるか、求めていた要件がすべて実装されているかを確認するテストのことです。日本語では「検収(けんしゅう)テスト」とも呼ばれます。 これまで開発側が実施してきた単体・結合・システムテストは、「設計書通りにバグなくプログラムが動くか」を技術的な視点で検...
ホワイトボックステストとは ホワイトボックステストとは、プログラムの内部構造(ソースコードの処理ロジックや条件分岐など)がどうなっているかを理解した上で、そのプログラム内のすべての記述ルートが正しく実行されるかを検証するテスト手法です。中身が透けて見える「白い箱(透明な箱)」に例えてこう呼ばれます。 このテストでは、ソースコードの条件分岐(if文など)に注目し、すべての処理ルートを漏れなく通過する...
ブラックボックステストとは ブラックボックステストとは、プログラムの内部構造やソースコードの中身は一切気にせず、システムの「入力(インプット)」と「出力(アウトプット)」の関係だけに注目して、仕様書通りに正しく動作するかを検証するテスト手法です。中身が見えない「黒い箱」に例えてこう呼ばれます。 このテストでは、「このようなデータを入力したら、仕様書通りにこの結果が返ってくるはずだ」という観点で検証...
リグレッションテストとは リグレッションテストとは、システムの一部のプログラムを修正したり機能を追加したりした際に、その変更によって「これまで正常に動いていた他の部分に予期せぬ不具合(デグレード)が発生していないか」を確認するための再テストのことです。日本語では「回帰テスト」と呼ばれます。 プログラムは複雑に絡み合っているため、「Aというバグを直したら、全く関係なさそうなBという機能が動かなくなっ...
レビューとは レビューとは、システム開発の各工程(要件定義、設計、プログラミングなど)で作成された成果物(仕様書やソースコード)を複数のメンバーで確認し、誤り(バグ)や考慮不足がないかを検査する作業のことです。早期に問題を発見することで、開発の後半での手戻り(修正作業の増加)を防ぐ目的があります。 レビューには、以下のような代表的な手法があります。 ウォークスルー:成果物の作成者が進行役とな...
リファクタリングとは リファクタリング(Refactoring)とは、プログラムの「外部から見た動作や機能」は一切変えずに、内部のソースコードの構造を整理して、より読みやすく、メンテナンスしやすい綺麗な状態に書き直す作業のことです。 システム開発を続けていると、場当たり的な修正が重なり、プログラムが複雑で読みづらい状態(いわゆるスパゲティコード)になりがちです。そのまま放置すると、新しい機能を追加...