Disciplined Software Engineering Lecture #1

44
Copyright © 1994 Carnegie Mellon University1 Disciplined Softw are Engineering Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department of Defense

description

Disciplined Software Engineering Lecture #1. Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department of Defense. コースの目的. プロセスに基づくソフトウエア開発手法を紹介すること 個人のソフトウエアプロセス( PSP) を計測し分析する方法を示すこと 個人のパフォーマンスを改善するためのプロセスデータの使用法を示すこと - PowerPoint PPT Presentation

Transcript of Disciplined Software Engineering Lecture #1

Page 1: 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

Page 2: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University2

コースの目的

プロセスに基づくソフトウエア開発手法を紹介すること

個人のソフトウエアプロセス( PSP) を計測し分析する方法を示すこと

個人のパフォーマンスを改善するためのプロセスデータの使用法を示すこと

これらの方法をソフトウェア開発以外のタスクに適用する方法を示すこと

Page 3: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University3

一般的情報

前提条件•何か一つのプログラミング言語を知っていて使えること。

役にたつバックグラウンド•基礎的統計に精通していること。•簡単なフォーマル記法を読む能力があること。

設備•開発環境が利用できる•スプレッドシートが使える

Page 4: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University4

コース概要 始めに 1 講義

を計画すること   プロセス 5 講義

欠陥管理 4 講義

設計 プロセス 3 講義

開発 プロセス 1 講義

PSP利用法 1 講義

Page 5: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University5

講義 # 1 概要 PSPの原則

•コストと利益•個人のソフトウエアプロセス(PSP)概要

能力成熟度モデル(CMM)•プロセス成熟度•CMMとPSP

最初のPSP 0 プロセス

Page 6: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University6

PSPの原則‐ 1 ソフトウエアシステムの品質はその最も悪い部品の 品質に支配される。

ソフトウエア部品の品質はそれを開発した個人によって支配される。

即ち個人の• 知識• 規範(discipline)•        によって支配されるコミットメント

Page 7: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University7

PSP原則‐ 2 ソフトウエア 専門家として自分自身のパフォーマンス  ( 効率、遂行能力 ) を知るべきである。

自分の仕事を計測し、追跡し、そして分析するべきで ある。

自分のパフォーマンスのバラツキから学ぶべきである。

これらの教訓を個人的な (慣習)の中に組プラクティスみ 入れるべきである。

Page 8: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University8

安定したPSPをもっていると

次の事ができる•仕事の見積もりと計画 • を遵守することコミットメント•無理な を押し付けられることへの抵抗コミットメント

また•自分の能力を理解するようになり•能力改善がより上手にできるようになる

Page 9: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University9

PSPは以下のことをも提供する。

産業界水準の個人的な規範を開発し実行するための証明済み基盤。

個人的プロセスの改善方法を示す規範。

生産性、品質、および予測可能性を継続的に改善するためのデータ。

Page 10: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University10

PSP とは何か ?

ソフトウエアを開発するための個人的プロセス• いくつかの定義されたステップ• 帳票類• 標準類

自分のプロセスを特徴づけることを支援するための計測と分析の枠組。

自分のパフォーマンスの改善を支援する定義された手続き。

Page 11: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University11

CMM と PSP-1

能力成熟度モデル(CMM)は先導的なソフトウエア グループの支援を得て SEI によって開発された。

CMM は大規模ソフトウエア開発の最も効果的なプラクティスを記述している。

PSP は:• CMM を適用する。• 個人の仕事のためにある。

Page 12: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University12

CMM と PSP - 2

Level 2ソフトウェア構成管理ソフトウェア品質保証ソフトウェア外注管理ソフトウェア進捗管理 *ソフトウェアプロジェクト計画 *要件管理

*PSP キープラクティス

Level 3ピアレビュー *グループ間調整ソフトウェアプロダクトエンジニアリング *ソフトウェア統合管理 *トレーニングプログラム組織プロセス定義 *組織プロセス重視 *

Level 4ソフトウェア品質管理 *定量的プロセス管理 *

Level 5プロセス変更管理 *技術変更管理 *欠陥予防 *

Level 11

2

3

4

5

Page 13: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University13

CMM と PSP - 3

CMM は,効果的なプロセス管理のための枠組を用意する。

それは,ソフトウエア専門家が規範化された個人的方法に従うものと仮定している。

PSP は,規範化された個人の仕事のための枠組を用意する。

それは,効果的なプロセス管理を仮定している。

Page 14: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University14

SEPG

SQA/SCM

管 理

CMM と PSP - 4

ソフトウェア開発作業

SEPG - software engineering process groupSQA - software quality assuranceSCM - software configuration management

技術者

Page 15: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University15

PSP 概要 - 1

PSP は7つの上向きにコンパティブルなステップで導入される。

各ステップにおいて 1 つか 2 つの小規模プログラムを書く。

作業に関するデータを集めて分析する。

作業を改善するためこれらのデータを使って分析 する。

Page 16: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University16

PSP の概要 - 2

PSP0現行プロセス時間記録欠陥記録

欠陥型標準

PSP1規模見積り

テスト報告 t

PSP2コードレビュー設計レビュー

PSP3循環的開発

PSP2.1設計テンプレート

PSP1.1タスク計画立案

スケジュール計画立案

PSP0.1標準コーディング

規模測定プロセス改善提案 (PIP)

Page 17: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University17

PSP の概要 ‐ 3

PSP0 - パフォーマンスの,計測されたベースラインを       確立する。

PSP1 - 規模 ,資源、およびスケジュールの計画をする。

PSP2 - 欠陥管理と摘出率 (yield) 管理を実習する。

PSP3 - PSP 手法をより大規模なプロジェクトにスケ‐ル アップする。

Page 18: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University18

コースを終了すると

レベル 5 の業界プロセスの を実習したことキーエレメントになる。

どの方法がもっとも効果的かがわかるようになる。

より良い仕事をするようになる。

長期的な改善目標をもつようになる。

Page 19: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University19

これまでのコースでの結果

以下の図は PSP の間に他の人々がどれくらいコース改善したかを示す。

これらの はデータ 1994年春に CMU で行われた PSPを受講したコース 12 人の学生のものである。

は次に関するものである:データ• 時間 コンパイル• で発見された欠陥テスト• 生産性

Page 20: Disciplined Software  Engineering  Lecture #1

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

時間比率

Page 21: Disciplined Software  Engineering  Lecture #1

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

Page 22: Disciplined Software  Engineering  Lecture #1

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/時間

Page 23: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University23

PSP0 のプロセス

簡単な定義された個人のプロセス

現在使っている設計開発方法を使用する。

仕事に関する以下の を収集する:データ• 工程毎に使用した時間• および で発見された欠陥の数コンパイル テスト

プロジェクト計画概要(計画兼報告)をつくる。

Page 24: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University24

PSP0 のスクリプト‐ 1

参照 ‐ 付表 C10 (p.405)

計画立案 ‐ 開発時間を見積もる

開発 ‐ 現在の方法を使用して製品を開発する

事後分析 ‐ 計画の要約を完了する。そのプロジェクト中には各工程に費やした時間、発見された及び作り込まれた欠陥についてまとめる。

Page 25: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University25

PSP0 スクリプト‐ 2

設計‐現行の設計手法を使用して を設計するプログラム。

‐欠陥がなくなるまでコンパイルする。コンパイル

テスト‐プログラムをテストし全ての欠陥を修正する。

発見した全欠陥を欠陥記録ログの中に、工程毎に費やした時間を時間記録ログの中に記録する。

Page 26: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University26

PSP0 計画概要(要約)‐ 1

参照 ‐ 付表 C14 (p.407)

ヘッダー ‐ 受講者、日付、 名、講師、言語プログラム

開発にかかる 時間の最良見積値を記入する。トータル

各工程で費やした実際の時間を分単位で記入する。

Page 27: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University27

PSP0 プロセス要素

プロセスのスクリプト

プロジェクト計画概要の帳票

時間記録ログ

欠陥記録ログ

欠陥型標準

Page 28: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University28

PSP0 計画概要 ‐ 2

累積時間 (Time-To Date)‐各工程において費やした時間の現在までの累積値を記入する。 プログラム1Aに対しては、この値は 1Aに対して費プログラムやされた時間である。

累積時間の割合 (Time-To Date %)‐各工程の累積時間 (Time-To Date) の を記入する。パーセント

作り込みおよび除去した欠陥‐各工程で作り込まれた欠陥及び除去された欠陥の実際の数を記入する。

Page 29: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University29

PSP0 計画概要‐ 3

累積欠陥 (Defects-To Date)‐各工程で作り込まれ,除去された欠陥の現在までの累積数を記入する。  プログラム1Aに対してはプログラム1Aで作り込まれ,除去された欠陥数である。

累積欠陥数の割合 (Defects-To Date %)‐各工程の累積欠陥 (Defects-To Date) のパーセントを記入する 。

Page 30: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University30

PSP0 時間記録ログ‐ 1

参照 ー 付表 C16 (P.409)

ー受講者、日付、講師、 番号ヘッダー プログラム

日付ー現在の日付を記入する。

開始 ー一つの 工程を開始する時の時刻プロジェクトを分単位で記入する。

Page 31: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University31

PSP0時間記録ログ‐ 2

終了 ーたとえその工程を完了していなくても、ある プロジェクト工程に関する仕事を停止する時にはその時刻を分単位で記入する。

中断時間 ー開始から終了までの期間で中断によって失った全ての時間を記入する。

差分時間ー 開始から終了までの経過時間から中断時間を差し引いた時間を記入する。

Page 32: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University32

PSP0 時間記録ログ ‐ 3

工程• 作業していた工程を記入する。• 工程の名前を使う。

ー次のことを記述する。コメント• 中断理由• 実行していたタスク• 作業に顕著に影響を与える他のもの何でも。

Page 33: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University33

欠陥記録ログ‐ 1

参照 ー 付表 C18 (p.411)

‐ ー受講者、日付、講師、 番号ヘッダ プログラム 日付 ー欠陥を発見し修正した日付を記入する。

番号 ー この欠陥の一意番号を記入する。各プロジェ

クトで1から始める。

Page 34: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University34

欠陥記録ログ ‐ 2

型 ー欠陥型標準から欠陥の型を記入する。

作込み ー欠陥が作り込まれたと判断する工程を記入する。

除去 ー欠陥を発見し修正した工程を記入する。

Page 35: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University35

欠陥記録ログ ‐ 3 修正時間 ‐ 欠陥の修正にかかった時間を記入する。 正確に時間を測るか、あるいは最良の判断で記入 する。

修正欠陥 ‐ もしこの欠陥が他の欠陥の修正中に作り込まれたのであれば、その欠陥の番号を記入するかまたはもし知らなければXを記入する。

説明 ‐ 欠陥とは、プログラムが適切に開発され、改善され、あるいは使用されるために変更されなければ ならないそのプログラムの中の全てのものである。

Page 36: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University36

欠陥型標準 ‐ 1

参照 ー付表 C20 (p.413)

欠陥型標準は欠陥カテゴリーの一般的な集合を提供する。

この標準を自分自身の標準で置き換えても良いが、変更をガイドするデータを所有するまでは簡単な型標準をじっくり使っていく方が一般に賢明である。

Page 37: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University37

欠陥型標準 ‐ 2 PSP欠陥型は次のようになる :

10 - 文書 20 - 構文 30 - ビルド、パッケージ 40 - アサインメント 50 - インタフェース 60 - チェッキング 70 - データ 80 - 機能 90 - システム 100 - 環境

Page 38: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University38

演習課題 #1 テキストのまえがきと第 1章、第 2章を読むこと。

PSP0 を使ってプログラム 1A を書くこと。 (P.488-9)

仕様については付録プログラム D を見ること。 (P.376-9, 405-413)

PSP0 の定義と例については付録 C を見ること。

提出物とそれらの順序と内容については付録 C の中にある仕様に従うこと。

Page 39: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University39

プログラム 1A

一連の数値の標準偏差を計算せよ。その時 n 個の 数値は に保有されている。標準偏差は次リンクリストの ように計算される:

i は数値に対するインデックス、そして Xavg はこれらの数値の平均値である。

1

1

2

n

xxStd

n

iavgi

Page 40: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University40

示唆 ‐ 1

プログラムは単純にすること。小さな かプログラムらでも大きな と同様に多くのことを学ぶプログラムであろう。

と標準は単純に,かつ短くすること。レポート

必要なら PSP 教材を自由にコピーしたりそれを素材にしてもよい。

一回目に正しくやること。確信がなければ納得できるまでやりなさい。

Page 41: Disciplined Software  Engineering  Lecture #1

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

Page 42: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University42

示唆 ‐ 2 は個人 ではないので、ソフトウエア ビジネス 1 人だけで仕事をする必要はない。

しかしながら、見積もり、設計、及び は自分コード自身でつくらなければならない。

他の人に自分の仕事を してもらい、その結果レビューとして自分の仕事を変更しても良い。

あなたの の中にこの支援について触れプロセスレポート、あなたと仲間が使った 時間を含め、発見しレビューた欠陥について記録すべきである。

Page 43: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University43

PSP0評価基準 はプロセスレポート

• 完全で、• 読みやすく、• 規定した順序を守らなければならない。

はプロセスデータ• 正確で、• 精度がよく、• 自己完結的でなければならない。

Page 44: Disciplined Software  Engineering  Lecture #1

Copyright © 1994 Carnegie Mellon University44

講義 1 から記憶すべきメッセージ

1 - PSP はあなたが良い仕事をするように支援する ための 1 つの定義された である。プロセス

2 - 一旦この を終了した時には、あなたは将コース来のニーズに適応させるために PSP を調整し拡張する 方法を知ることになる。

3 - PSP0 を使用する際、第 1 の目標は仕事に関する正確で完全なデータを集め報告することである。