ずっと受けたかったソフトウェアエンジニアリング新人研修
ずっと受けたかったソフトウェアエンジニアリングの新人研修ずっと受けたかったソフトウェアエンジニアリングの新人研修3章 要件定義と要求定義 □ 非機能要求の分類 1) 機能性 ・ 必要な他システムとの接続できるか、適切なセキュリティは確保されているか など 2) 信頼性 ・ 潜在問題を回避する能力、故障時にデータを回復する能力、など 3) 使用性 ・利用者が使い方など理解しやすいか、標準の使い方に沿っているかなど 4) 効率性 ・適切な応答時間で反応するか、適切なメモリ利用量か、など 5) 保守性 ・欠陥の診断や問題箇所の識別ができるか、必要な修正が加えられるか 6) 移植性 ・ 異なる環境でも使えるか、他のソフトと共存できるか、など 7) 障害抑制性 ・ 障害の発生を妨げるか、障害の広がりを妨げるか、など 8) 効果性 ・ 投資効果は十分か、など 9) 運用性 ・ 品質目標をクリアしているか、災害対策は十分か、など 10) 技術要件 ・ 技術要件システムの構成は適切か、開発標準は適切か、など □ 要件定義書の記述項目 (必須) 1) 背景 2) 課題 3) 目的・方針 4) 概要 5) 機能 6) システム化の範囲 7) 導入・移行計画 8) 運用・保守 9) 工程計画 10) 体制 11) 成果物 □ 要件定義書の記述項目(オプション) 1) ユーザインターフェース 2) システム構成 3) 作業標準 4) 品質管理 □ 可能な限り定量的に書く □ 「しないこと」も明記する第4章 システム提案 □ システム提案の記述項目 1) 背景 2) 課題 3) 目的・方針 4) 概要 5) 機能 6) システム化の範囲 7) システム構成 8) ソフトウェア構成 9) ハードウェア構成 10) ネットワーク構成 11) システムインターフェース 12) 導入・移行 13) 運用・保守 14) 作業標準 15) 品質管理 16) 工程管理 17) 体制 18) 費用・工数・規模 19) 成果物 □ システム提案記述項目(オプション) 1) ユーザインターフェース 2) 開発環境第5章 外部設計 □ 外部設計書の作成手順 ・ 個別の設計書を作成して、最後にそれらをまとめる 1) 業務フローの作成 2) サブシステムへの分割 3) 画面レイアウトや帳票レイアウトの作成 4) コード設計 5) 論理データ設計(ER図、CRUD図作成) 6) システムインターフェース 7) 外部設計書として取りまとめる □ 外部設計書に含める項目 1) 目的・方針 2) 概要 3) 機能 4) ユーザインターフェース 5) システム構成 6) ソフトウェア構成 7) ハードウェア構成 8) ネットワーク構成 9) システムインターフェース □ 外部設計書のレビューは外部設計書と同じくらい時間を要するようです。 第6章 内部設計書 □ 内部設計書の作成手順 ・ 個別の設計書を作成して、最後にそれらをまとめる 1) 画面の詳細設計 2) 帳票の詳細設計 3) 外部インターフェースの詳細設計 4) ビジネスルールの詳細設計 5) リクエスト処理の詳細設計 6) メッセージの詳細設計 7) 物理データ設計 8) 内部設計書としてまとめる □ 内部設計書のレビューでは顧客が入ることはありません。 □ 内部設計書に記述する項目 1) ユーザインターフェース 2) プログラム構造 3) データ構造 4) 処理ロジック 5) メッセージ 6) システムインターフェース 7) ネットワーク構造 ---必要に応じて 8) 機能 9) システム構成 10) ソフトウェア構成 11) ハードウェア構成 12) ネットワーク構成第7章 製造 □ 製造工程の作業手順 1) プログラミング 2) ソースコードレビュー 3) 単体テスト □ ソースコードレビューのチェックポイント 1) 規約に沿って書いていあるかどうか 2) 正しいロジックでかいてあるかどうか □ コーディング規約 1) プログラムの冒頭に付けるコメントの記述ルール 2) 変数名の付け方や宣言方法に関するルール 3) プログラムロジックの記述ルール 4) 変数型のルール □ ホワイトボックステストでは、プログラムのすべての分岐を通るようにテストデータを作成するので、プログラムを網羅的にテストできるというメリットがあります。第8章 テスト □ テスト工程で行うこと 1) テスト計画書の作成 2) テスト環境の準備 3) テスト項目の作成 4) スタブ、ドライバーの作成 5) テストの実施 6) 不合格項目について障害処理票を作成 7) バグ除去 8) バグ分析 9) テスト成績表の作成 □ 結合テストのテストデータはブラックボックステストの技法を使って作成します。 □ ブラックボックステストの代表的技法 1) 同値分割 ・ データをグループ分けし、各グループから1つまたは複数のデータを抽出したものをグループを代表するテストデータとする。 2) 境界値分析 ・ 有効と無効の境界値データを取り出してテストデータとする 3) エラー推測 ・ 経験的に知っているエラーが起こりやすいパターンからテストデータを作る。 □ 総合テストでは、要件定義書、外部設計書の内容が実現できているかどうかを確認します。 □ 総合テストに必要な観点 1) 処理性能 2) 障害回復性能 3) 保守運用性能 4) 操作応答 5) 過負荷時動作第9章 受け入れテスト □ 受け入れテストの作業手順 1) テスト計画書の作成 2) テスト項目の作成 3) テスト実施 4) テスト成績書の作成 □ 受け入れテストを効率的に行う方法 1) 開発会社にすべてのテストのテスト項目表を提出してもらい、丁寧かつ網羅的にテストが行われていることを確認する 2) 開発会社の結合テスト以降の障害処理票を提出してもらい、十分な数の障害処理が行われたことを各hにんする。 これにより、テストの有効性を判断する。また、障害処理の内容から開発会社のプログラムレベルを推察する。 3) 障害処理票から、いくつかの処理済み項目を抜き出して再テストし、実際にバグが除去されていて、テストに合格することを確認する 4) 要件定義書や外部設計書を見ながら、いくつかの独自のテスト項目を作成し、テストを実施する。 第11章 品質管理 □ メトリクス(品質尺度評価)の例 1)レビュー工数 ・全工数に対するレビュー工数の割合 2)テスト工数 ・全工数に対するテスト工数の割合 3)レビュー実施効率 ・レビュー工数に対する指摘件数の割合 4) テスト実施効率 ・テスト工数に対するバグ件数の割合 5) 設計工程バグ摘出数 ・設計工程で発見・解決したバグ数 6) レビュー時の誤り密度 ・開発規模(総ステップ数)に対する指摘件数 7) レビュー網羅率 ・開発規模(総ステップ数)に対するレビュー対象部分の割合 8) レビュー時の平均修正時間 ・レビューで発見された誤りの修正にかかった時間の平均 9) テスト時のバグ密度 ・全テスト項目数に対するバグ件数の割合 10) テスト時のバグ収束率 ・バグ予測件数に対する総バグ件数の割合 11) テスト密度 ・ステップ数に対するテスト項目の割合 12) テスト網羅率 ・テストされた部分の割合。ステップ数やパス数などで算出 13) 平均バグ寿命 ・バグ修正までにかかった時間の平均 14) テスト消化率 ・全テスト項目に対する実施済みテスト項目の割合 15) バグ摘出率 ・目標バグ数に対する実績バグの割合 □ 一般にレビューは2時間程度が限界と言われています。 □ レビューで確認すること 1) 「ですます調」か「である調」に統一されていること 2) 「てにおは」の使い方が正しく、統一されていること 3) 用語の定義が明確でぶれていないこと 4) 数値に単位が付いている 5) 版数が付いている 6) フォント、スタイル、文字サイズが規則通りである 7) 表現が顧客の要請に一致している □ テスト計画書の作成 1) 品質目標 2) テストスケジュール/場所 3) テスト指標(目標) 4) 終了条件 5) 合格条件 6) テスト対象 7) テストケース 8) 成績表 9) テストツール 10) テスト体制 11) テスト環境□ テスト項目 1) 機能テスト(機能の確認) 2) 信頼性テスト 3) 性能テスト 4) 操作性テスト 5) 複合テスト 6) 繰り返しテスト 7) 統合テスト第12章 セキュリティ □ 設計段階で考慮するセキュリティ1) 主体認証に関する要件2) アクセス制御に関する要件3) 権限管理に関する要件4) 監視・分析用アクセスログに関する要件5) 不正アクセスなどの監視要件(侵入検知システムネットワーク型IDS、ホスト型IDSの種類監視場所など6) ファイアーウオール設置に関する要件(ファイアーウオールの種類(ハード型/ソフト型)の種類監視場所など7) ウイルス対策要件8) 暗号化要件(伝送メッセージ、データベース、外部連携データなど第13章 プロジェクト完了報告 □ 経営陣の立場で考えよう