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