24
千千千千千千 11M37063 千千 千千 千千千千千千千千千千千千千千千千千千千千千千千千千千 千千千千 1

アスペクト指向言語のための視点に応じた編集を可能にするツール

Embed Size (px)

DESCRIPTION

アスペクト指向言語のための視点に応じた編集を可能にするツール. 千葉 滋 研究室 11M37063  大谷 晃司. オブジェクト指向 言語 で の開発の限界. 横断的関心事 : モジュール間 をまたがってしまう関心事 例 : ロギング 処理、図形の再描画 処理、 タイマー処理 など 編集、つけ 外し が困難 横断的関心事 に 対応 した 言語 が 必要. Shape. setX. setY. y 代入. x 代入. Rectangle. se t Height. setWidth. GUI. GUI. GUI. GUI. Timer. - PowerPoint PPT Presentation

Citation preview

1

11M37063 11RectangleseHeightsetWidthShapesetXsetYxyGUITimerGUITimerGUITimerGUITimer: :

22RectangleseHeightsetWidthShapesetXsetYxyGUITimerGUITimer3GUITimerGUITimerRepainterTimerGUITimerTimerTimerTimerGUIGUIGUI3RectangleseHeightsetWidthShapesetXsetYxyRepainterGUIGUIGUITimerTimerTimerTimer: 4setHeightTimerGUI4RepainterTimer: 5RectangleseHeightsetWidthGUITimerTimerRectangleseHeightsetWidthGUIGUITimerTimerGUI5EclipseGluonJ [OOPSLA 10]Java6

6

()

7RectangleseHeightsetWidthRepainterTimerGUITimerTimerGUI7

()8RectangleseHeightsetWidthShapesetXsetYxyShapeRectangleRepainterTimerGUITimerTimerTimerTimerGUIGUIGUI89

9

10RectangleseHeightsetWidthShapesetXsetYyRepainterTimerGUITimerTimerTimerGUIGUIGUIxTimer1011

1112

12Withincaller

13ShapesetXsetYxyFigureEditor

Shape s;int newX = s.setX(newX);

mouseDragged

Shape s;int newX = s.setX(newX);

mouseClickedTimerTimerTimerFigureEditormouseDraggedRepainterGUIGUI13Withincaller

14TimerTimerTimerFigureEditormouseDraggedRepainterGUIGUIFigureEditormouseDraggedShapesetXsetYxyFigureEditor

Shape s;int newX = s.setX(newX);

mouseDragged

Shape s;int newX = s.setX(newX);

mouseClicked14

Within()callerWithin1515Within()Within16

16JDTGluonJ1840 54 24

1717(1.) (2.) (3.) Within(4.) JDTJava

1818JDT40%1.819

19JDT202080%20%21

21(1/2)AJDT (+ AspectJ)

AspectMaps [Fabry 11]

2222(2/2)KIDE [Kanazawa 12]

Code Bubbles [Andrew 10]bubble

2323future workGluonJfuture workPPL 2011282424