20 likes | 121 Views
Satoshi Munakata, Takashi Ishio, Katsuro Inoue. Graduate School of Infomation Science and Technology, Osaka University. Simply Visualizing an Execution Trace. Focusing on Each Pair of Object Groups. Class A. Class B. Call Relation Among Groups.
E N D
Satoshi Munakata, Takashi Ishio, Katsuro Inoue Graduate School of Infomation Science and Technology, Osaka University Simply Visualizing an Execution Trace Focusing on Each Pair of Object Groups Class A Class B Call Relation Among Groups OGAN & Amida website is available at http://sel.ist.osaka-u.ac.jp/~ishio/amida/. Call Relation Among Objects Whole Sequence Diagram Simplified Sequence Diagrams Classifying Objects by Their Behavior A1 B1 A2 B2 too complicated… A2 B2 B1 A1 Objects in a Calendar Program <Use> CalendarMonth <Use> CalendarMonth DateCell <Used> ScheduleList Scheduler <Use> CalendarFrame CalendarMonth DateCell RegisterDialog <Used> FixedSchedule ScheduleList Scheduler <Use> DateCellRenderer MonthTableModel <Use> CalendarFrame DateCellRenderer MonthTableModel <Used> CalendarDate <Use> DateCellRenderer MonthTableModel <Used> CalendarDate <Use> MonthTableModel Method Call 1 to 1 Method Call OGAN Visualizing Object Interaction Scenarios Based on Dynamic Interaction Context A sequence diagram simply extracted from an execution trace is too complicated for developers to understand interactions between a pair of classes because of the large number of objects and method involved. OGAN classifies objects into groups based on their dynamic interaction context and visualizes interaction scenarios for each pair of object groups as a set of simplified sequence diagrams. Developers can compare these diagrams side-by-side to more easily understand interactions between classes. Example: We analyze the interaction between two classes representing a date: a GUI classDateCell and a data model class CalendarDate. OGAN classifies objects into groups if and only if Use(o1) = Use(o2) ∧ Used(o1) = Used(o2) where Use(obj) is a set of classes calling a method of obj, Used(obj) is a set of classes called by obj. OGAN randomly selects a pair of seed objects that directly interact with each other from the pair of groups. OGAN extracts method call and return events directly related to the seed objects, and generates a sequence diagram.