XP (エクストリーム プログラミング)


用語集

用語集


オブジェクト指向 - 用語集はこちら別頁


CMM

Capability Maturity Model (能力成熟度モデル) の略.

米カーネギーメロン大学 SEI (Software Engineering Institute: ソフトウェア工学研究所) が開発した「組織の能力を向上させるためのモデル」.

組織の能力についてレベル1〜5 に分け,各レベルで持つべきプロセスを規定している.

CMMI

CMM Integration の略.

CMM から派生したものとして,


など様々な CMM が生まれてきた.そこで 1999年にこれら種々の CMM を統合した CMMI が発表された.

LSD

Lean Software Development の略で,アジャイル 開発プロセスの一種.
トヨタの「看板方式」(それぞれの納期と数量を看板に掲げて,それを守るように生産ラインを動かす) をソフトウェア開発に応用したもの.
書籍: 『Lean Software Development: An Agile Toolkit (Agile Software Development Series)』(洋書) Mary Poppendieck,Tom Poppendieck 著

PMBOK

Project Management Body Of Knowledge (プロジェクト マネジメント知識体系) の略.

世界で最も標準的なプロジェクト マネジメントの知識体系.

SPI

Software Process Improvement (ソフトウェア開発プロセス改善) の略.

指標として CMMI が有名.

SW-CMM

Software-CMM (ソフトウェア能力成熟度モデル) の略.

従来把握しづらかったソフトウェア開発プロセスの能力を客観的に判断できる指標として CMM の中でも特に注目されている.
SPIのための指標として全世界で採用されている.

TDD

Test-Driven Development (テスト駆動開発) の略. ソフトウェア開発スタイルの一種. コーディングしてからテストを行うのではなく,

  1. 単体テストを書き
  2. そのテストを実行して失敗させ (通常は,xUnit と呼ばれるテスティング・フレームワークを使用する)
  3. 目的のコードを書き
  4. テストを成功させ
  5. リファクタリングする
という流れで開発を行っていく. "Fake It!" (だまし実装) と "Triangulate" (三角測量) という手法を繰り返して少しずつテストを通していくのが特徴. XP のプラクティスの一つにもなっている.
書籍: 『テスト駆動開発入門 ーTDD:TEST-DRIVEN DEVELOPMENT by EXAMPLE』 株式会社ピアソン・エデュケーション ケント・ベック 著 永田 渉,武田 知子 訳 長瀬 嘉秀 監訳

XP

eXtreme Programming (エクストリーム プログラミング) の略. Kent Beck らによって提唱されているソフトウェア開発プロセスアジャイル プロセスの一種.
書籍: 『XPエクストリーム・プログラミング入門 ―ソフトウェア開発の究極の手法』 株式会社ピアソン・エデュケーション Kent Beck 著 長瀬 嘉秀,飯塚 麻理香,永田 渉 訳
URL: オブジェクト倶楽部 - XP-jp

xUnit

ソフトウェア開発において,プログラムの単体(ユニット)テストを支援するテスティング・フレームワークの総称. Smalltalk 用の SUnit,Java 用 の JUnit,C# 用の NUnit,C++ 用の CppUnit,C 用の CUnit,Visual Basic 用の VBUnit 等,様々なプログラミング言語用がある.

アジャイル (agile)

アジャイル(agile) は「俊敏な」という意味. ソフトウェア開発プロセスのうち,良いものを素早く無駄なく作ろうとするものの総称. 特に,「アジャイル・マニフェスト」 http://www.agilemanifesto.org/ に合意しているものや,「アジャイル・アライアンス」 http://www.agilealliance.org/ に参加しているものを指す. 「アジャイル・マニフェスト」の概要は,以下の通り.

例えば,アジャイル ソフトウェア開発プロセスには以下のようなものが有る.

イテレーション (iteration)

反復型開発プロセスにおける一回の繰り返し. 開発プロセスによって期間はことなるが,XPでは二週間程度と短い.

ウォーターフォール (waterfall)

ソフトウェア開発では,開発プロセスの一種. 「ウォーターフォール モデル」の基と成ったとされるのは 1970 年の米国のロイス (W.W.Royce) の論文と云われているが,この論文で提案されたもともとの開発モデルでは「フィードバック ループ」が用意され,上流工程を見直すことが推奨されていた.また,この論文自体ではこの開発モデルを「ウォーターフォール モデル」とは呼んでいない. その後,一般的に良く用いられるようになった開発モデルでは「フィードバック ループ」が無い「逐次開発モデル」となり,滝が上から下へと流れ落ちるように開発していくことから「ウォーターフォール モデル」と呼ばれている.

コーディング標準 (coding standards)

プログラミングにおけるコーディングスタイルを標準化するための規則を集めたもの. 変数名やメソッド名,コードの表記方法,コーディングの方針等を標準化する. XP ではコードをチーム内のプログラマで共同所有するので重要なプラクティス.

メタファ (metaphor)

隠喩.XP ではプログラムの構造やシステム アーキテクチャ等を表現するときに使用するプラクティスで,これを使うことによりチーム内の理解を共通化しスムーズなコミュニケションを図る.

ペアプログラミング (pair programming)

二人のプログラマが一台のコンピュータでプログラミングを行う開発技法.XP のプラクティスの一つにもなっている.
書籍: 『ペアプログラミング ―エンジニアとしての指南書』 株式会社ピアソン・エデュケーション ローリー・ウィリアムズ+ロバート・ケスラー 著 株式会社テクノロジックアート 訳 長瀬 嘉秀,今野 睦 監訳
URL: Pair Programming.com

リファクタリング (refactoring)

ソフトウェアの外部的振る舞いを保ったままで内部の構造を改善していく作業のことで,現存コードを効率良く安全に改良することが出来る.XP のプラクティスの一つにもなっている.
書籍: 『リファクタリング ―プログラミングの体質改善テクニック』 株式会社ピアソン・エデュケーション M・ファウラー 著 児玉 公信,友野 晶夫,平澤 章,梅澤 真史 訳
URL: Refactoring Home Page

開発プロセス (development process)

ソフトウェア開発では,ソフトウェアをどのように作り上げるかについて,手順や工程,要員,成果物,進め方に関する基本的な考え方を定義したもの. ウォーターフォール型開発プロセスや反復型開発プロセス等がある.

反復型開発プロセス (iterative development process)

逐次開発型である所謂ウォーターフォール型の開発プロセスに対して,開発を小さなステップの繰り返し (イテレーション) に分けて行うプロセス. XPUP 等がこれにあたる.