Disciplined Software Engineering Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department of Defense Copyright © 1994 Carnegie Mellon University1 コースの目的 プロセスに基づくソフトウエア開発手法を紹介すること 個人のソフトウエアプロセス(PSP)を計測し分析する 方法を示すこと 個人のパフォーマンスを改善するためのプロセスデー タの使用法を示すこと これらの方法をソフトウェア開発以外のタスクに適用 する方法を示すこと Copyright © 1994 Carnegie Mellon University2 一般的情報 前提条件 •何か一つのプログラミング言語を知っていて使えること 。 役にたつバックグラウンド •基礎的統計に精通していること。 •簡単なフォーマル記法を読む能力があること。 設備 •開発環境が利用できる •スプレッドシートが使える Copyright © 1994 Carnegie Mellon University3 コース概要 始めに 1 講義 プロセス を計画すること 5 講義 欠陥管理 4 講義 設計プロセス 3 講義 プロセス開発 1 講義 PSP利用法 1 講義 Copyright © 1994 Carnegie Mellon University4 講義#1 概要 PSPの原則 •コストと利益 •個人のソフトウエアプロセス(PSP)概要 能力成熟度モデル(CMM) •プロセス成熟度 •CMMとPSP 最初のPSP0プロセス Copyright © 1994 Carnegie Mellon University5 PSPの原則‐1 ソフトウエアシステムの品質はその最も悪い部品の 品質に支配される。 ソフトウエア部品の品質はそれを開発した個人によっ て支配される。 即ち個人の • 知識 • 規範(discipline) • コミットメント によって支配される Copyright © 1994 Carnegie Mellon University6 PSP原則‐2 ソフトウエア 専門家として自分自身のパフォーマンス (効率、遂行能力)を知るべきである。 自分の仕事を計測し、追跡し、そして分析するべきで ある。 自分のパフォーマンスのバラツキから学ぶべきである。 これらの教訓を個人的なプラクティス(慣習)の中に組み 入れるべきである。 Copyright © 1994 Carnegie Mellon University7 安定したPSPをもっていると 次の事ができる •仕事の見積もりと計画 •コミットメントを遵守すること •無理なコミットメントを押し付けられることへの抵抗 また •自分の能力を理解するようになり •能力改善がより上手にできるようになる Copyright © 1994 Carnegie Mellon University8 PSPは以下のことをも提供する。 産業界水準の個人的な規範を開発し実行するための 証明済み基盤。 個人的プロセスの改善方法を示す規範。 生産性、品質、および予測可能性を継続的に改善する ためのデータ。 Copyright © 1994 Carnegie Mellon University9 PSPとは何か? ソフトウエアを開発するための個人的プロセス • いくつかの定義されたステップ • 帳票類 • 標準類 自分のプロセスを特徴づけることを支援するための 計測と分析の枠組。 自分のパフォーマンスの改善を支援する定義された 手続き。 Copyright © 1994 Carnegie Mellon University10 CMM とPSP-1 能力成熟度モデル(CMM)は先導的なソフトウエア グループの支援を得てSEIによって開発された。 CMMは大規模ソフトウエア開発の最も効果的なプラ クティスを記述している。 PSPは: • CMMを適用する。 • 個人の仕事のためにある。 Copyright © 1994 Carnegie Mellon University11 CMMとPSP - 2 5 4 3 2 1 Level 1 Level 5 プロセス変更管理* 技術変更管理* 欠陥予防* Level 4 ソフトウェア品質管理* 定量的プロセス管理* Level 3 ピアレビュー* グループ間調整 ソフトウェアプロダクトエンジニアリング* ソフトウェア統合管理* トレーニングプログラム 組織プロセス定義* 組織プロセス重視* Level 2 ソフトウェア構成管理 ソフトウェア品質保証 ソフトウェア外注管理 ソフトウェア進捗管理* ソフトウェアプロジェクト計画* 要件管理 *PSPキープラクティス Copyright © 1994 Carnegie Mellon University12 CMM と PSP - 3 CMMは,効果的なプロセス管理のための枠組を用意 する。 それは,ソフトウエア専門家が規範化された個人的 方法に従うものと仮定している。 PSPは,規範化された個人の仕事のための枠組を用 意する。 それは,効果的なプロセス管理を仮定している。 Copyright © 1994 Carnegie Mellon University13 CMMとPSP - 4 管 理 S E P G ソフトウェア 開発作業 技術者 S Q A / S C M SEPG - software engineering process group SQA - software quality assurance SCM - software configuration management Copyright © 1994 Carnegie Mellon University14 PSP概要 - 1 PSPは7つの上向きにコンパティブルなステップで導 入される。 各ステップにおいて1つか2つの小規模プログラムを 書く。 作業に関するデータを集めて分析する。 作業を改善するためこれらのデータを使って分析 する。 Copyright © 1994 Carnegie Mellon University15 PSP の概要 - 2 PSP3 循環的開発 PSP2 コードレビュー 設計レビュー PSP1 規模見積り テスト報告t PSP0 現行プロセス 時間記録 欠陥記録 欠陥型標準 PSP2.1 設計テンプレート PSP1.1 タスク計画立案 スケジュール計画立案 PSP0.1 コーディング標準 規模測定 プロセス改善提案 (PIP) Copyright © 1994 Carnegie Mellon University16 PSPの概要 ‐ 3 PSP0 - パフォーマンスの,計測されたベースラインを 確立する。 PSP1 - 規模,資源、およびスケジュールの計画をする。 PSP2 - 欠陥管理と摘出率(yield)管理を実習する。 PSP3 - PSP手法をより大規模なプロジェクトにスケ‐ル アップする。 Copyright © 1994 Carnegie Mellon University17 コースを終了すると レベル5の業界プロセスのキーエレメントを実習したことにな る。 どの方法がもっとも効果的かがわかるようになる。 より良い仕事をするようになる。 長期的な改善目標をもつようになる。 Copyright © 1994 Carnegie Mellon University18 これまでのコースでの結果 以下の図はPSPコースの間に他の人々がどれくらい改 善したかを示す。 これらのデータは1994年春にCMUで行われたPSPコース を受講した12人の学生のものである。 データは次に関するものである: • コンパイル時間 • テストで発見された欠陥 • 生産性 Copyright © 1994 Carnegie Mellon University19 Compile Time Range 30 % of Total Time 時 間 比 率 ( % ) 25 Max 20 15 Avg 10 Min 5 0 1 2 3 4 5 6 7 8 9 1 Program Number 0 Copyright © 1994 Carnegie Mellon University20 D e f e欠陥数/KL c ts /K L O C Defects Found in Test Range 180 160 140 120 100 80 60 40 20 0 Max Avg Min 1 2 3 4 5 6 7 8 9 10 Program Number Copyright © 1994 Carnegie Mellon University21 LOC/時間 H our Li ne s of Co de pe r Productivity Range 100 90 80 70 60 50 40 30 20 10 0 Max Avg Min 1 2 3 4 5 6 7 8 9 1 0 Program Number Copyright © 1994 Carnegie Mellon University22 PSP0のプロセス 簡単な定義された個人のプロセス 現在使っている設計開発方法を使用する。 仕事に関する以下のデータを収集する: • 工程毎に使用した時間 • コンパイルおよびテストで発見された欠陥の数 プロジェクト計画概要(計画兼報告)をつくる。 Copyright © 1994 Carnegie Mellon University23 PSP0のスクリプト‐1 参照 ‐ 付表 C10 (p.405) 計画立案 ‐ 開発時間を見積もる 開発 ‐ 現在の方法を使用して製品を開発する 事後分析 ‐ プロジェクト計画の要約を完了する。その中 には各工程に費やした時間、発見された及び作り込ま れた欠陥についてまとめる。 Copyright © 1994 Carnegie Mellon University24 PSP0スクリプト‐2 設計‐現行の設計手法を使用してプログラムを設計する。 コンパイル‐欠陥がなくなるまでコンパイルする。 テスト‐プログラムをテストし全ての欠陥を修正する。 発見した全欠陥を欠陥記録ログの中に、工程毎に費 やした時間を時間記録ログの中に記録する。 Copyright © 1994 Carnegie Mellon University25 PSP0計画概要(要約)‐1 参照 ‐ 付表C14 (p.407) ヘッダー ‐ 受講者、日付、プログラム名、講師、言語 開発にかかるトータル時間の最良見積値を記入する。 各工程で費やした実際の時間を分単位で記入する。 Copyright © 1994 Carnegie Mellon University26 PSP0 プロセス要素 プロセスのスクリプト プロジェクト計画概要の帳票 時間記録ログ 欠陥記録ログ 欠陥型標準 Copyright © 1994 Carnegie Mellon University27 PSP0計画概要 ‐ 2 累積時間(Time-To Date)‐各工程において費やした時 間の現在までの累積値を記入する。 プログラム1Aに対 しては、この値はプログラム1Aに対して費やされた時間 である。 累積時間の割合(Time-To Date %)‐各工程の累積時 間(Time-To Date)のパーセントを記入する。 作り込みおよび除去した欠陥‐各工程で作り込まれた 欠陥及び除去された欠陥の実際の数を記入する。 Copyright © 1994 Carnegie Mellon University28 PSP0計画概要‐3 累積欠陥(Defects-To Date)‐各工程で作り込まれ,除 去された欠陥の現在までの累積数を記入する。 プロ グラム1Aに対してはプログラム1Aで作り込まれ,除去 された欠陥数である。 累積欠陥数の割合(Defects-To Date %)‐各工程の累 積欠陥(Defects-To Date)のパーセントを記入する。 Copyright © 1994 Carnegie Mellon University29 PSP0 時間記録ログ‐1 参照 ー 付表C16 (P.409) ヘッダー ー受講者、日付、講師、プログラム番号 日付ー現在の日付を記入する。 開始 ー一つのプロジェクト工程を開始する時の時刻を 分単位で記入する。 Copyright © 1994 Carnegie Mellon University30 PSP0時間記録ログ‐2 終了 ーたとえその工程を完了していなくても、ある プロジェクト工程に関する仕事を停止する時にはその 時刻を分単位で記入する。 中断時間 ー開始から終了までの期間で中断によって 失った全ての時間を記入する。 差分時間ー 開始から終了までの経過時間から中断 時間を差し引いた時間を記入する。 Copyright © 1994 Carnegie Mellon University31 PSP0 時間記録ログ ‐ 3 工程 • 作業していた工程を記入する。 • 工程の名前を使う。 コメント ー次のことを記述する。 • 中断理由 • 実行していたタスク • 作業に顕著に影響を与える他のもの何でも。 Copyright © 1994 Carnegie Mellon University32 欠陥記録ログ‐1 参照 ー 付表C18 (p.411) ヘッダ‐ ー受講者、日付、講師、プログラム番号 日付 ー欠陥を発見し修正した日付を記入する。 番号 ー この欠陥の一意番号を記入する。各プロジェ クトで1から始める。 Copyright © 1994 Carnegie Mellon University33 欠陥記録ログ ‐ 2 型 ー欠陥型標準から欠陥の型を記入する。 作込み ー欠陥が作り込まれたと判断する工程を記入 する。 除去 ー欠陥を発見し修正した工程を記入する。 Copyright © 1994 Carnegie Mellon University34 欠陥記録ログ ‐ 3 修正時間 ‐ 欠陥の修正にかかった時間を記入する。 正確に時間を測るか、あるいは最良の判断で記入 す る。 修正欠陥 ‐ もしこの欠陥が他の欠陥の修正中に作り 込まれたのであれば、その欠陥の番号を記入するか またはもし知らなければXを記入する。 説明 ‐ 欠陥とは、プログラムが適切に開発され、改善 され、あるいは使用されるために変更されなければ ならないそのプログラムの中の全てのものである。 Copyright © 1994 Carnegie Mellon University35 欠陥型標準 ‐ 1 参照 ー付表 C20 (p.413) 欠陥型標準は欠陥カテゴリーの一般的な集合を提供 する。 この標準を自分自身の標準で置き換えても良いが、 変更をガイドするデータを所有するまでは簡単な型標 準をじっくり使っていく方が一般に賢明である。 Copyright © 1994 Carnegie Mellon University36 欠陥型標準 ‐ 2 PSP欠陥型は次のようになる : 10 - 文書 20 - 構文 30 - ビルド、パッケージ 40 - アサインメント 50 - インタフェース 60 - チェッキング 70 - データ 80 - 機能 90 - システム 100 - 環境 Copyright © 1994 Carnegie Mellon University37 演習課題 #1 テキストのまえがきと第1章、第2章を読むこと。 PSP0を使ってプログラム1Aを書くこと。(P.488-9) プログラム仕様については付録Dを見ること。(P.376-9, 405-413) PSP0の定義と例については付録Cを見ること。 提出物とそれらの順序と内容については付録Cの中に ある仕様に従うこと。 Copyright © 1994 Carnegie Mellon University38 プログラム 1A 一連の数値の標準偏差を計算せよ。その時n個の 数値はリンクリストに保有されている。標準偏差は次の ように計算される: x n Std i 1 x avg 2 i n 1 i は数値に対するインデックス、そして Xavg はこれら の数値の平均値である。 Copyright © 1994 Carnegie Mellon University39 示唆 ‐ 1 プログラムは単純にすること。小さなプログラムからでも 大きなプログラムと同様に多くのことを学ぶであろう。 レポートと標準は単純に,かつ短くすること。 必要ならPSP教材を自由にコピーしたりそれを素材に してもよい。 一回目に正しくやること。確信がなければ納得できる までやりなさい。 Copyright © 1994 Carnegie Mellon University40 H our s Actual Time Range 20 18 16 14 12 10 8 6 4 2 0 Max Avg Min 1 2 3 4 5 6 7 8 9 10 Program Numbe r Copyright © 1994 Carnegie Mellon University41 示唆 ‐ 2 ソフトウエアは個人ビジネスではないので、1人だけで仕事を する必要はない。 しかしながら、見積もり、設計、及びコードは自分自身で つくらなければならない。 他の人に自分の仕事をレビューしてもらい、その結果とし て自分の仕事を変更しても良い。 あなたのプロセスレポートの中にこの支援について触れ、あ なたと仲間が使ったレビュー時間を含め、発見した欠陥に ついて記録すべきである。 Copyright © 1994 Carnegie Mellon University42 PSP0評価基準 プロセスレポートは • 完全で、 • 読みやすく、 • 規定した順序を守らなければならない。 プロセスデータは • 正確で、 • 精度がよく、 • 自己完結的でなければならない。 Copyright © 1994 Carnegie Mellon University43 講義1から記憶すべきメッセージ 1 - PSPはあなたが良い仕事をするように支援する ための1つの定義されたプロセスである。 2 - 一旦このコースを終了した時には、あなたは将来の ニーズに適応させるためにPSPを調整し拡張する 方 法を知ることになる。 3 - PSP0を使用する際、第1の目標は仕事に関する 正確で完全なデータを集め報告することである。 Copyright © 1994 Carnegie Mellon University44
© Copyright 2024 ExpyDoc