Bogor-Java Environment for Eclipse MSE Presentation II Yong Peng
Outline Project Plan Cost Estimation - COCOMO Architecture Design Formal Specification Test Plan Inspection Checklist Phase III Deliverables Demo Questions & Comments
Project Plan
Project Plan – Current Status 182 hours on the project (phase I & phase II) Coding/debugging: 95 hours Research/reading: 44 hours Documentation: 43 hours Java code: about 5600 LOC XML: about 120 LOC(half of them are automatically generated by eclipse.) 95% function complete 5 documents complete
Project Plan – Current Status Development completed for incremental plug-in Development completed for launcher plug-in Development completed for viewer plug-in 50% completed on error trace in Java plug-in
Project Plan(cont.) Productivity – ( )/95 = LOC/Hour – 5 documents / 43 = 0.12 Docs/Hour Remaining work – About 300 LOC – 4 – 5 documents – Unit testing – Update Java doc
Project Plan(cont.) Remaining effort – 300/60.21 = 4.98 Hours – 5 documents / 0.12 = 42 Hours – Estimated 40 hours for testing and test document
Cost Estimation - COCOMO COCOMO The following equation is used to estimate the effort and time. Effort = 3.2* EAF * (Size)^1.05 Time (in month) = 2.5 * (Effort)^0.38 Where: Effort = number of staff-months EAF = product of 15 effort adjustment factors Size = number of KSLOC (preferred) The values of EAF is documented in Project Plan document. Effort = 3.2 *0.96 * 6 ^ 1.05 = 20.2 staff months Time = 2.5 (Effort)^0.38 = 2.5 * (20.2)^0.38 = 7.8 months
Architecture Design This project is to develop eclipse plug-ins, the architecture of this project is based on eclipse plug-ins architecture The following slides will be presenting class diagrams and component diagrams Since there are many dependencies to the eclipse API, the class diagram doesn’t show all the relationships. The component diagrams show all the relationships among packages.
Architecture Design(contd.) Component Diagram: Incremental plug-in
Architecture Design(contd.) Component Diagram: launcher plug-in
Architecture Design(contd.) Component Diagram: view plug-in
Architecture Design(contd.) Incremental plug-in class diagram
Architecture Design(contd.) Launcher plug-in class diagram
Architecture Design(contd.) View plug-in class diagram
Architecture Design(contd.) Error Trace
Formal Specification This project uses FSM for the formal specification. The FSMs only focus on major actions in plug-in. There are assumptions to execute FSM, such as – There is an assumption for Bogor VM view FSM that is Java editor is opened before execute this FSM. The box shape in FSM presents system states The dotted edge presents plug-in event. The solid edge presents user action.
Formal Specification(contd.)
Test Plan Features to be tested – All features from vision document V2.0 – SR1.1 (Critical requirement) - Incremental Compilation – SR1.2 (Critical requirement) – Add a new nature into Java project – SR2.1 (Critical requirement) – Create a launcher – SR2.2 (Critical requirement) – Create a main tab – SR2.3 (Critical requirement) – Create a properties configuration tab – SR2.4 – Output model check result into Eclipse console – SR3 (Critical requirement) – Trace errors in Java program – SR4.1 (Critical requirement) – Create a viewer to display compiled BIR – SR4.2 - Highlight Java in java editor – SR4.3 - Highlight BIR in Bogor VM Viewer Only functional black box testing will be performed All test result will be documented.
Test Plan(cont.) Test case example – In test case #1.1: If 1 3 4 executes, open project properties, the “Bytecode to BIR Builder” should disappear.
Test Plan(cont.) We have discovered a new eclipse plug-in to test GUI program. The name of this plug-in is Eclipse Test and Performance Tools Platform Project(TPTP) The tool may be useful in this project is called TPTP's Automated GUI Recorder which is one of TPTP’s tools. “This tool allows users to record GUI actions in the Eclipse platform and play them back to verify the functionality of their product. It is meant to allow Eclipse developers to automate regression tests that often require many resources to perform repetitive tasks to verify basic functionalities.” ( GUI.html) GUI.html I will be studying this tool to see if it can be incorporated into this project for the testing. TPTP’s website: TPTP's Automated GUI Recorder’s website
Inspection Checklist The symbols used in the class diagrams conform to UML standards The symbols used in the component diagrams conform to UML standards The descriptions of the classes in the Architecture Design document are clear and adequate. The FSM are clear and adequate. The relationships in FSM are correct. Test cases in test plan are clear and adequate.
Phase III Deliverables User Manual Component Design Source Code Project Evaluation Assessment Evaluation References Formal Technical Inspection Letters
Demo Create a demo java project and Deadlock.java
Demo (contd.) Add Bytecode to BIR Builder
Demo (contd.) BIR files are generated.
Demo (contd.) Open Bogor VM BIR View
Demo (contd.) BIR displays in the view and Java code highlighted if click in BIR view.
Demo (contd.) BIR is highlighted if click on Java code in Java editor.
Demo (contd.) Open launcher, create a new Bogor VM configuration.
Demo (contd.) Default Bogor config will be load from a properties file
Demo (contd.) Add a test parameters to config.
Demo (contd.) The new added parameter shows in the Bogor Config tab.
Demo (contd.) Remove the test parameter, and click Run. A bogor-trail file is generated and the result is output in eclipse console.
Demo (contd.) Double click on the trail file, it opens Bogor counter examples view, bogor-trails editor, and the focus is on Java editor.
Demo (contd.) Step through the error trace, the Java code which causes the error is highlighted.
Questions & Comments