UML 1142020 1 Software Engineering Laboratory Department of
UMLモデルを対象とした リファクタリング候補検出手法の提案と実現 井上研究室 増田敬史 11/4/2020 1 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
リファクタリング ソフトウェアの外部的振る舞いを保ったままで内部の 構造を改善する[1] – 将来の機能追加やデバッグ,再利用に備えることが可能 – 近年モデルに対するリファクタリングの研究が活発[2] – デザインパターンを利用したリファクタリング 修正 関連を除去 修正 クラスを抽象化 [1] M.Fowler.Refactoring:Improving the Design of Existing Code.Addison Wesley,1999 [2] T.Mens,G.Taentzer,and D.Muller.Challenges in Model Refactoring. Technical Report from University of Mons-Hainaut,Belgium,2005. 2 Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 11/4/2020
デザインパターン 過去の開発者が経験的に得た汎用的な 設計パターン[3] – 様々なプログラムで再利用可能 – リファクタリングの際にデザインパターンを利用可能 – デザインパターン適用には慎重な検討が必要 設計が複雑になる パターンA パターン適用 パターンB 修正 [3] E.Gamma,R.Helm,R.Johnson,and J.Vlissides.Design Patterns Elements of Reusable Object-Oriented Software.Addison Wesley,1999. Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 3 11/4/2020
手順1. デザインパターン適用可能箇所を検出し UMLモデルを修正 例 成績管理・表示システムにObserverパターンを適用 クラス間の相互関連を除去 Toukei. Data Observer Hyou Table Bou. Graph Bar. Graph En. Graph 設計が複雑 (a)ツール適用前のUMLモデル Table Bar. Graph Hyou En. Graph Bou. Graph (b)ツール適用後のUMLモデル 一般にUMLモデルはXMLで表現される ⇒XMLの木構造を利用しUMLモデルを解析 Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 8 11/4/2020
UMLモデルの解析・修正 XMLパーサを作成し,UMLモデルのXML表現を解析する 例:Observerパターンの適用条件 クラスが相互に関連している Toukei. Data Hyou Bou. Graph (a)UMLモデル <xml> <Class> <name = “Toukei. Data”> </Class> <name = “Hyou”> 適用条件に合致 関連記述を修正 </Class> <Association. Data> <Generalization. Data> <Association. End> <Parent. Class> <Classname==“Toukei. Data”> <Classname <Association. End> <Child. Class> <Classname==“Hyou”> <Classname </Association. Data> </Generalization. Data> </xml> 9 (b)UMLモデルのXML表現 11/4/2020 Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
デジタル時計のUMLモデル 典型的なリファクタリング例[4] 適用したデザインパターン:Observerパターン 結果:Time. SourceクラスとClock. Driverクラスの 相互関連を解消 UMLモデルに対するデザインパターン適用可能 箇所の検出・修正機能を確認 (a) ツール適用前 (b) ツール適用後 [4] R.C.Martin.Agile Software Development.Pearson Education,2004 Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 12 11/4/2020
最後までありがとうございました 16 Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 11/4/2020
- Slides: 16