Presentation is loading. Please wait.

Presentation is loading. Please wait.

Reuse-1 CSE298 CSE300 CSE300-02 Distributed Object Computing Professor: Dr. Steven A. Demurjian Topic: Object Oriented Reuse Members: Xiaopei Wang, Hai.

Similar presentations


Presentation on theme: "Reuse-1 CSE298 CSE300 CSE300-02 Distributed Object Computing Professor: Dr. Steven A. Demurjian Topic: Object Oriented Reuse Members: Xiaopei Wang, Hai."— Presentation transcript:

1 Reuse-1 CSE298 CSE300 CSE300-02 Distributed Object Computing Professor: Dr. Steven A. Demurjian Topic: Object Oriented Reuse Members: Xiaopei Wang, Hai Lin, Steven Moore Coordinating with Jeff Ellis December 7, 2000

2 Reuse-2 CSE298 CSE300 Object Oriented ReuseObjective  Redesign GUI of DRE( tool  Redesign GUI of DRE(Design Reusability Evaluations) tool  A more user-friendly interface  Parser independent OO modeling  Apply Togethersoft Control Center for Reusability analysis  How can TCC be enhanced to support reusability calculations  Implement these enhancements

3 Reuse-3 CSE298 CSE300 Interface Design  GUI subsystem layout protocol

4 Reuse-4 CSE298 CSE300 Interface Design  Use single frame  Process one project each session  Bad design can make the interface messy and not familiar to programmers  Use JSplitPane to separate function block of the frame  Left pane: entity manager  Display entities  Display selected entity properties  Right pane: result and simulator operation

5 Reuse-5 CSE298 CSE300 Interface Design  Using JMenu to process available operations  Using JToolbar as a shortcut of menu operation  User can process an operation by directly clicking on the corresponding button

6 Reuse-6 CSE298 CSE300 Interface Design  Use JTree to present entities and their relationship package/class/variable/method/inner-class  Similar structure  Intuitive and vivid presentation  Easy to use interface  Us JTable to present entity properties

7 Reuse-7 CSE298 CSE300 Interface Design  Use JTabbedPane to display the metrics calculation result and provide the ability for future simulation work

8 Reuse-8 CSE298 CSE300 Interface Design  A HTML-based online help system lets user understand OO-Reuse basics, DRE metrics and how to use the tool

9 Reuse-9 CSE298 CSE300 OO Modeling  Why parser independent ?  Work with JAVA/C++ and other similar OO language parser  Split working flow  OO approach  Implementation  Language neutral data structure  Put GUI and parser in different package  Introduce data manager package to handle all data processing and transferring job

10 Reuse-10 CSE298 CSE300 OO Modeling  Four major components in the system

11 Reuse-11 CSE298 CSE300 Data Abstraction   The NodeData class encapsulates the properties and methods needed to present a tree node, the id field point to the real data(an entity object) we want to present.

12 Reuse-12 CSE298 CSE300 Data Abstraction  Class “Entity” is the data structure, used to present a particular node (package/class/variable/method/innerclass)  Class “Property” is used to show the properties of current selected node

13 Reuse-13 CSE298 CSE300 Add Classes  The GUI will give parser the list of files that user chose. Then GUI calls getData() methods of Data Manager to refresh the tree view of classes

14 Reuse-14 CSE298 CSE300 Show Property  When user clicks a particular node in the tree view of classes, the property of that node will be shown in the property pane

15 Reuse-15 CSE298 CSE300 Set General  GUI takes care which classes are subject to change their generality property, then call data manager’s method setGeneral(), given Ids. Finally, GUI refreshes the property pane for the first renewed class in the list

16 Reuse-16 CSE298 CSE300 Set Related  After user chooses a list of classes, user can mark them to be related to another class. And then user choose the destination class, all the classes in the list will be related to the destination class

17 Reuse-17 CSE298 CSE300Conclusion  A whole new look of DRE tool  This DRE tool has a more intuitive interface of the Java program and it’s easier to operate than the old one  OO modeling makes the design clear, and can be extended  GUI components are independent from parser, which improves the reusability

18 Reuse-18 CSE298 CSE300 Future Work - XML approach in data manager  Functionality, like Save and Load, will be provided, using XML.  XML is naturally suitable for storage of tree structure.

19 Reuse-19 CSE298 CSE300 Future Work - Online Help System  Online help system will offer more documentation

20 Reuse-20 CSE298 CSE300 Future Work - Others  DRE Tool  Testing and bug fixing Intensive testing and bug fixing is needed and essential  Simulator design Right now, the system hasn’t implemented simulator yet. In the future, user ought to be able to click on a coupling to navigate to the code and make changes. Then user runs the simulator to see how the changes affect evaluation  C++ parser C++ is another major programming language. Our system will evolve to support C++ source codes. Improvement will be done mostly in parser side and data manager

21 Reuse-21 CSE298 CSE300 Future Work (Cont’d)  DRE Tool  Documentation More documentation, such as API documentation and more background information ought to be added to online help system  Inherently related If class A is related to class B, then all A's decedents are related to all B's ancestors. We will add parent and descendent field in class property, to support this feature

22 Reuse-22 CSE298 CSE300 Togethersoft Control Center  Control Center integrates visual modeling with an integrated development environment  Implements UML  Source code editing  Model/code synchronization  Has an Open API  Has plugin support  Written in Java  Supports C++/Java

23 Reuse-23 CSE298 CSE300 Reuse Coupling Counts  User classifies class as general(G) or specific(S)  User classifies class hierarchies as being related to each other(R) or unrelated(U)  Count number of couplings of each type  Good for reuse  Classes that are general and related  Bad for reuse:  Classes that are unrelated, and where one is general and the other is specific  Not bad or good  both classes are specific

24 Reuse-24 CSE298 CSE300Motivation  Desirable to have one development environment to include reusability  Quicker design time if reduce number of tools required.  Easier to develop than stand alone application  Can leverage API classes that TCC provides for parsing/processing

25 Reuse-25 CSE298 CSE300Objectives  Leverage present TCC capabilities to support the reusability calculations.  Perform calculations with minimal user interaction  Have calculations stay with project  Display results in standardized fashion  Give user quick feedback from changes

26 Reuse-26 CSE298 CSE300 QA plugins  QA plugins provide built processing and parsing of the source code  Audit plugins  Source code syntax checking  Displays qualitative results in a report pane  Metrics plugins  Source code counting operations  Displays quantitative results in a report pane

27 Reuse-27 CSE298 CSE300 QA Plugins  QA plugin Hierarchy

28 Reuse-28 CSE298 CSE300 QA Metrics plugin  To implement requires overriding TCC’s MetricsPluginImpl class.  Plugins are loaded when TCC is first started  When user starts plugin operation some methods automatically invoked  prepare() method executed once when execution started.  run() method executed for each class and package in project

29 Reuse-29 CSE298 CSE300Design  Develop 10 plugin modules  1 module to specify classifications  specific/general  1 module to specify relationships  related/unrelated  8 coupling count modules  output modules

30 Reuse-30 CSE298 CSE300 Conclusion Future Work  Conclusion  TCC plugins are a good way to implement reusability calculations.  Future work  Additional work required to include true dependencies in coupling count modules  Can audit plugins be applied to help simplify parsing  Can TCC be applied to reusability simulation


Download ppt "Reuse-1 CSE298 CSE300 CSE300-02 Distributed Object Computing Professor: Dr. Steven A. Demurjian Topic: Object Oriented Reuse Members: Xiaopei Wang, Hai."

Similar presentations


Ads by Google