Index: [Article Count Order] [Thread]

Date:  Thu, 28 Feb 2002 10:03:26 +0900
From:  ono@....jp
Subject:  [XP-jp:03263] Re: COBOL でのXP実践
To:  extremeprogramming-jp@....jp
Message-Id:  <20020228100326U.ono@....jp>
In-Reply-To:  Your message of "Wed, 27 Feb 2002 17:15:07 +0900"	<49256B6D.002D8A08.00@....jp>
References:  <49256B6D.002D8A08.00@....jp>
X-Mail-Count: 03263

望月様はじめまして、
小野 剛ともうします。COBOL でのXP実践に関連して:

>> Regarding [XP-jp:03260] COBOL でのXP実践; Katsuya_Mochizuki@....jp adds:
 > COBOLとVBを使用しての開発にてXPを取り入れられないかと
 > 考えています。
 > COBOLにての検討や実践の事例・考慮点などご存知でしたら
 > お教えください。「止めた方が良い」というご意見でも結構です。

'Extreme Programming Examined' という XP 関連の論文集の、翻訳をやって
おります。 この本のなかに "Legacy to the Extreme" という論文があり、
COBOL で書かれたコード群を相手に XP に取り組んだ人の実践記があります。
その中からちょっと抜粋して見ました。

 - 「変化のコスト」カーブを平らにする、というXP の戦略は、発達したソ
   フトウェア工学的な知見を利用できる環境ではやりやすいが、COBOL コード
   に囲まれたレガシーな環境では多少困難だ。だが不可能ではない。

 - 「リバースエンジニアリングツールをどれだけ駆使出来るか」がカギとなった。
   これはLMT(レガシーメンテナンスツールボックス)と呼ばれ、これと DocGen
   を組み合わせることで、システム全体の構成や依存関係を視覚的に把握する
   ことが可能となった。その基礎のうえにテストやリファクタリングを行った。	

 - また、COBOL 変数の型を推論する TypeExplorer [Deursen+1999c]も使用した。
   これがないと、リファクタリング時での影響解析が出来ない。たとえば、今ま
   で「英国ポンド」で表していた amount という型を、すべて「ユーロ」にする
   という変更を行う場合には、TypeExplorer でまず amount と同じか同等な型と
   なる変数を全てリストアップして、影響範囲を特定する作業が必要となる。

 - レガシー環境での XP も、通常と同じように、
	1. 変更要求からテストケースを書き起こす
	2. LMT をもとに「下準備」のリファクアタリング(重複コードの削除など)
	   をしてテストを実行
        3. 要求を満たすような変更を加え、テストを再実行
        4. さらにリファクタリング、テスト、そしてシステムドキュメントの再生成
	   を行う
   というステップを経る。違いは、イテレーション毎の生産性が低いことである。

   [Deursen+1999c] A. van Deursen, L. Moonen. "Understanding 
  		   COBOL Systems Using Types." In Proceedings  of Seventh Inter-
  		   national Workshop on Program Comprehension, IWPC'99. IEEE 
  		   Computer Society, 1999.
  
私自身は COBOL での開発経験がないので、ちょっととんちんかんなことを書
いているかもしれませんが、何かの御参考になれば幸いです。

// Tsuyoshi ONO // 
e-Communications Dept, Telecom & Service Company /  SONY Corporation 
email: ono@....jp
"Be completely flexible on how we get there, but be totally 
 uncompromising on where we are going." -- Martin Fowler