内部設計の解説(ITパスポートシラバス用語)
内部設計(Internal Design / 詳細設計)とは 内部設計(詳細設計)とは、外部設計で決まった「ユーザーから見える仕様(画面や操作手順)」を実現するために、システムの「内側の仕組み(プログラマーがコードを書くための詳細な仕様)」を設計する工程です。データの処理方法、データベースのテーブルの構造、プログラムを構成する部品(クラスやモジュール)の分け方など、システムの裏側の動きをエンジニア...
Django、Python、AWS、Linux、セキュリティ、CVE、基本情報技術者、応用情報技術者、ITパスポートの用語を、図解と実務手順で解説します。個人開発kurutann.comの検証記録や障害対応事例も公開しています。
内部設計(Internal Design / 詳細設計)とは 内部設計(詳細設計)とは、外部設計で決まった「ユーザーから見える仕様(画面や操作手順)」を実現するために、システムの「内側の仕組み(プログラマーがコードを書くための詳細な仕様)」を設計する工程です。データの処理方法、データベースのテーブルの構造、プログラムを構成する部品(クラスやモジュール)の分け方など、システムの裏側の動きをエンジニア...
線形探索とは線形探索(Linear Search / リニアサーチ)とは、データ群の中から目的のデータを探し出すための、最もシンプルで原始的な検索アルゴリズムです。配列やリストの端(先頭など)から順に、1つずつ目的の値と一致するかどうかを比較していきます。データが事前に並べ替えられていなくても探索できる利点がありますが、データ数が多くなると比較回数が増えて時間がかかる欠点もあります。具体例裏向きに...
キャパシティ管理とはキャパシティ管理(Capacity Management)は、ITサービスを提供するシステムにおいて、現在および将来にわたって必要とされる「処理能力や容量(キャパシティ)」を、最適なコストで計画・確保・維持するための管理プロセスです。サーバーのCPU使用率、メモリ容量、ディスク空き容量、ネットワークの帯域などを監視し、ユーザーが不満を感じない速度でサービスを提供できるよう、能力...
単体テストとは 単体テスト(たんたいてすと)とは、開発したプログラム全体を一度にテストするのではなく、プログラムを構成する「最小の部品(関数やクラス、メソッドなど)」が、それぞれ単体で正しく動くかどうかを確認する最初のテスト工程です。英語では「ユニットテスト」とも呼ばれます。 家づくりに例えると、家全体の組み立てを始める前に、使用する柱やレンガ、ドアノブなどの各パーツ自体に傷がないか、強度や寸法が...
二分探索とは二分探索(Binary Search / バイナリサーチ)とは、あらかじめ昇順または降順に並べ替え(ソート)されているデータ群から、目的のデータを素早く見つけるためのアルゴリズムです。データ全体の中央にある値を確認し、目的の値がそれより「大きいか」「小さいか」を判断します。それによって探索範囲を半分(二分)に絞り込むことを繰り返し、高速に目的地に到達します。具体例国語辞書で「さくら」と...
可用性管理とは可用性管理(Availability Management)は、ITサービスが必要な時に、必要な期間、いつでも正常に利用できる状態(可用性)を維持・向上させるための管理活動です。「システムがどれだけ安定して動き続けているか(信頼性:MTBF)」や「もし故障したとしても、どれだけ早く復旧できるか(保守性:MTTR)」を数値目標として設定し、監視や改善を繰り返すことで、ユーザーから見たサ...
結合テストとは 結合テスト(けつごうてすと)とは、単体テストをクリアした複数のプログラム部品を組み合わせ(結合し)、それらが連携して正しく動作するかどうかを検証するテスト工程です。英語では「インテグレーションテスト」と呼びます。 家づくりに例えると、個別のチェックが終わったドアとドア枠を壁に取り付けてみて、「ドアが引っかからずにスムーズに開閉するか」「鍵がきれいに閉まるか」といった、部品同士の相性...
バブルソートとはバブルソート(Bubble Sort / 交換法)とは、データ群を並べ替えるソートアルゴリズムの一種で、隣り合う2つのデータの大小を比較し、順序が逆であれば入れ替えるという操作を、配列の端から順に繰り返す方法です。この操作を繰り返すと、軽い(値が小さい)要素が徐々に上に上がり、重い(値が大きい)要素が底へ沈むように並び替わります。泡(バブル)が浮かび上がってくる様子に似ていることか...
オペレーションズリサーチ(OR)とはオペレーションズリサーチ(Operations Research:OR)は、ビジネスや日常の複雑な問題において、「最も効率的な方法」や「最大・最小の効果を生む選択肢」を、数学や統計学、シミュレーションなどの科学的なアプローチを用いて導き出す意思決定支援の手法です。単なる経験や勘に頼るのではなく、制約条件(人手、予算、時間など)がある中で、利益を最大化したり、コス...
運用テストとは 運用テスト(うんようてすと)とは、システム開発の最終段階において、本番とほぼ同じ環境で、実際の業務の流れに沿ってシステムが問題なく動作するかどうかをユーザー(発注者)やシステム運用者が確認するテストです。「受入れテスト」とも呼ばれます。 家づくりに例えると、家が完成した後に実際に家具を配置し、家族みんなで何日か暮らしてみて、「生活動線に不便はないか」「エアコンの効き具合は十分か」「...
選択ソートとは選択ソート(Selection Sort)とは、データ群を並び替えるアルゴリズムの一つで、データの中から「最小値(または最大値)」を見つけ出し、それを未整列の部分の先頭と入れ替える操作を繰り返す手法です。「最小値を選択して前に持ってくる」というルールをシンプルに繰り返すことで、配列の左側から順番に整列されたデータが確定していきます。具体例トランプのカードがバラバラに置かれているとき、...
PERT図(アローダイアグラム)とはPERT図(プログラム・エバリュエーション・アンド・レビュー・テクニック、またはアローダイアグラム)は、プロジェクトを構成する複数の作業(タスク)の順序関係や依存関係を、丸印(結合点)と矢印(作業)を用いて網羅的に表したネットワーク図です。どの作業がどの作業の完了を待ってから開始できるかを視覚的に整理し、プロジェクト全体の完了までに最低限必要な日数(クリティカル...
挿入ソートとは挿入ソート(Insertion Sort)とは、データ群を並び替えるためのアルゴリズムの一つです。配列を「すでに整列し終わった部分」と「まだ整列していない部分」に分け、未整列の部分からデータを1つずつ取り出し、整列済みのデータ群の中の「正しい位置」を探して差し込み(挿入し)ていくことで、全体をソートします。すでにある程度整列されているデータに対して非常に速く動作します。具体例手札のト...
バランストスコアカード詳細(戦略マップ)とはバランストスコアカード(BSC:Balanced Scorecard)は、企業の経営戦略を単なる「財務(売上や利益)」の数値だけでなく、「財務」「顧客」「業務プロセス」「学習と成長」という4つの異なる視点からバランスよく分析し、具体的なアクションプランに落とし込んで評価する業績評価システムです。「戦略マップ」は、これらの4つの視点について、「人材が成長す...
アジャイル開発とは アジャイル開発(あじゃいるかいはつ)とは、システムやソフトウェアを迅速(アジャイル:俊敏な)に開発するための手法の総称です。最初に完璧な計画を立てるのではなく、開発対象をいくつかの小さな機能に分割し、「計画 → 設計 → プログラミング → テスト」という短いサイクル(1〜4週間程度)を何度も繰り返しながら、徐々にシステムを完成させていきます。 家づくりに例えると、最初にプレハ...
クイックソートとはクイックソート(Quick Sort)とは、実用上で極めて高速に動作する代表的なソートアルゴリズムです。「分割統治法」と呼ばれる考え方に基づいており、まずデータの中から基準値(ピボット)を1つ決めます。次に、基準値より「小さい値のグループ」と「大きい値のグループ」の2つにデータを分けます。分けたそれぞれのグループに対して、再び同じルールでピボットを決めて二分する操作を再帰的に繰り...
アンゾフの成長マトリクスとはアンゾフの成長マトリクスは、企業がビジネスをさらに成長させるための戦略を検討する際、「製品(既存製品/新規製品)」と「市場(既存市場/新規市場)」の2つの軸を掛け合わせた、4つの領域(象限)で分類して整理するフレームワークです。提唱者であるイゴール・アンゾフの名前から名付けられました。このマトリクスを用いることで、自社が次に目指すべき成長の方向性を明確にし、それぞれのリ...
スクラムとは スクラムとは、アジャイル開発を進めるための具体的なフレームワーク(進め方のルールや枠組み)のひとつです。ラグビーの「スクラム」のように、開発チームが一丸となって緊密にコミュニケーションを取り合い、お互いに助け合いながらプロジェクトを前進させることからこの名がついています。 スクラムでは、1週間から4週間ほどの短い期間(スプリントと呼びます)ごとに小さな目標を設定し、スプリントの最後に...
マージソートとはマージソート(Merge Sort / 併合ソート)とは、並べ替えアルゴリズムの一つで、データ群を要素が1個になるまで細かく(半分ずつに)分解したあと、並び順が正しくなるように合体(マージ)させながら、元の大きさに戻していくことで整列を行う手法です。常に安定した時間で処理できる性質があり、データの順序が崩れない「安定ソート」であることも特徴です。具体例2つの「すでに数字順に綺麗に並...
ロングテール戦略とはロングテール戦略は、年に数個しか売れないような「あまり売れない多数のニッチな商品(テール:恐竜の長いしっぽの部分)」を幅広く品揃えしておくことで、それらの売上をすべて合計した結果、全体の大部分の売上を占めるようになるというインターネット時代のビジネス戦略です。従来の店舗販売では、棚のスペースが限られているため「売れ筋商品(ヘッド:全体の20%程度)」だけを並べるのが鉄則でしたが...
WBSとは WBS(Work Breakdown Structure:作業分解構成図)とは、プロジェクトを円滑に進めるために、全体の作業を細かく分解して階層構造で整理した図や表のことです。プロジェクトに必要な作業の「漏れ」や「重複」を防ぎ、誰が何をいつまでにやるべきかを明確にするために使われます。 旅行の準備に例えると、ただ「旅行の準備をする」と計画するのではなく、まず「交通の手配」「ホテルの予約...
ヒープソートとはヒープソート(Heap Sort)とは、「ヒープ」と呼ばれる親子間の値に一定の大小関係ルールがある木構造を利用して、データを並べ替えるアルゴリズムです。ヒープの根(一番上)には必ず最大値(または最小値)が配置されるという特徴を利用し、根にある最大値を取り出して配列の末尾に移動させ、残りのデータで再びヒープを再構築する操作をデータがなくなるまで繰り返します。具体例バラバラに積まれた複...
ガントチャートとは ガントチャートとは、プロジェクトの進捗状況を視覚的に管理するための横棒グラフです。縦軸に「作業内容(タスク)」や「担当者」を並べ、横軸に「日付や時間」をとり、それぞれの作業にかかる期間を横棒(バー)で表します。 夏休みの宿題の計画表のように、「何の作業を、いつから始めて、いつまでに終わらせる必要があるか」が一目でわかります。また、予定を表す棒と、実際の進み具合を表す棒を並べるこ...
再帰とは 再帰(さいき)とは、ある関数や処理の中で、自分自身を呼び出すプログラミングの技法のことです。「再帰呼出し」とも呼ばれます。複雑な問題を、より小さな同じ形の問題に分割して解決したいときに非常によく使われます。再帰を使うことで、複雑な繰り返し処理をシンプルで読みやすいコードとして記述することができます。ただし、自分自身を呼び出す処理が無限に続かないよう、処理を終了するための「ベースケース(終...