スライド 1

・機能要求
・非機能要求
要求
満たす
コードA
満たす
満たす
コードB
コードC
要求の空間
コードの空間
ある要求
満たす
あるコード
・定量的
・定性的
分析する
コード
特性
分析する
あるコード
得られた拡張性の度合い
変更する
変更する
分析する
期待するコード
期待する拡張性の度合い
あるコード
分析する
あるコード
分析する
あるコード
変更する
低い拡張性
得られた拡張性の度合い
変更する
低い拡張性
期待する拡張性の度合い
向上した拡張性
得られた拡張性の度合い
変更する
期待を満たしたいコード
期待する拡張性の度合い
分析する
あるコード
得られた拡張性の度合い
変更する
得られた拡張性の度合い
変更する
期待を満たしたいコード
期待する拡張性の度合い
分析する
あるコード
変更する
期待を満たしたいコード
分析する
新たに得られた拡張性の度合い
得られた拡張性の度合い
変更する
期待する拡張性の度合い
進化前コード
進化後コード
コード
コード’
コード進化の過程
コード1
・・・
コードn-1
進化前コード
コード
入力
コード変換
コードn
進化後コード
入力
コード’
進化予定コード
コードA
進化前コード
コード
コードB
コードC
コード進化
機能維持進化
機能拡張進化
コード進化
インタフェース維持進化
インタフェース破壊進化
コード進化
モジュール内進化
モジュール間進化
リファクタリング
モジュール内進化
進化前モジュール
クラスA
メソッド1
変更
進化後モジュール
クラスA
メソッド1’
メソッド2
メソッド2
メソッド3
メソッド3
モジュール間進化
進化前モジュール
クラスA
メソッド1
変更
進化後モジュール
クラスA
メソッド1
メソッド2
メソッド2’
メソッド3
メソッド3
クラスB
メソッド1
変更
クラスB
メソッド1’