Imran Majid, Martin P. Robillard
2005 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange - eclipse '05  
In this paper we describe NaCIN, an Eclipse plug-in that records a developer's code navigation activity and produces sets of elements potentially implementing different concerns relevant to the current task. It performs an analysis of the navigation paths and structural dependencies of the recorded elements and clusters the results in groups potentially associated with high level concepts. NaCIN partially automates the process of relating source code with high-level abstractions and enables
more » ... ledge about the implementation of different concerns to be reused in future investigations. We present the architecture and a preliminary assessment of NaCIN. Graph.connect(Edge, Point2D, Point2D) NoteEdge.draw(Graphics2D) NoteEdge.getConnectionPoints() SegmentedLineEdge.getConnectionPoints() ShapeEdge.getShape() 2 EditorFrame.changeLookAndFeel(String) EditorFrame.EditorFrame(Class) Table 3. Results for Subject S2 Concern Model 1 Graph.findEdge(Point2D) Graph.findNode(Point2D) GraphPanel$1.mousePressed(MouseEvent) 2 Edge.connect(Node, Node) Graph.connect(Edge, Point2D, Point2D) NoteEdge.draw(Graphics2D) NoteEdge.getConnectionPoints() NoteEdge.getShape() 3 RectangularNode.writeObject(ObjectOutp..) RectangularNode.writeRectangularShape(Object..) Table 4. Results for Subject S3 Concern Model 1 CallNode.getConnectionPoint(Direction) NoteNode.NoteNode() 2 AbstractNode.AbstractNode() ReturnEdge.getPoints() NoteNode.getShape() ShapeEdge.getShape() NoteEdge.getConnectionPoints() RectangularNode.clone() ReturnEdge.ReturnEdge() NoteNode.draw(Graphics2D)
doi:10.1145/1117696.1117711 dblp:conf/eclipse/MajidR05 fatcat:iy4fbhagsjdqpjogtzecpuz7jq