Recent News |
Winter 2022 Property checking can be done in both offline and online modes. Also supported is property checking on abstracted finite state models. The resulting system is nicknamed JIV2E, for Java interactive visualization and verification environment.
Spring 2019 A property-checking feature for state diagrams has been added.
Fall 2017 A Byte-Code Instrumentation module has been developed to speed up the collection of events for long executions. BCI is based on the `inclusion filter' approach to event collection in contrast with the standard `exclusion filter' approach of JIVE.
Summer 2016 JIVE supports compact views of sequence diagrams. See 'Latest' for information on how to download the compaction plug-in.
Summer 2015 Good news for Android Developers! JIVE can be used with Android Developer Tools. JIVE Tutorial given at Android Workshop and a webinar given in Engineering Education forum.
Fall 2014
JIVE supports state diagram views, in addition to object
and sequence diagram views. State diagrams are very useful
in understanding programs with repetitive behavior, e.g., servers.
See 'Latest' for information on how to download this plug-in.
Summer 2013 Google Summer of Code Project for interfacing JIVE with Java Path Finder. The execution trace output from JPF is adapted for input to JIVE for off-line analysis and visualization. A new diagram, the Search Tree diagram, is added to JIVE to visualize the scheduling path leading to an error. Thanks to NASA/JPF Team for the support!
Spring 2013 Spring 2013: Workshop on Debugging with JIVE at regional meeting of the American Society for Engineerng Education. Also used by 120+ students in undergraduate programming language course at UB.
2012-13
JIVE meets Fiji. Luke Ziarek's Fiji JVM for real-time Java is
interfaced with JIVE's visualization and query-based debugging
capabilities to discover bugs in an open-source UAV flight system.
Joint work with Ethan Blanton.
News about Previous Releases
May 2012. JIVE now supports dynamic slicing of diagrams. This can be invoked by right-clicking on a field in an object (in the object diagram) and selecting slice. The object and sequence diagrams will be reduced so as to include only the relevant objects and execution trace pertaining to the last value assigned of the field. To clear the slice, press the button that looks like brush. JIVE supports a special visualization for 1-d arrays up to size 20.
December 2011. Some of the most interesting additions are listed below:
- The Object Diagram now displays field visibility information according to UML's notation. It also now displays arguments, local variables, and return values within method contours.
- The Object Diagram has an enhanced color scheme which allows immediate visual interpretation of the diagrams: object and class contours now have distinct colors; method contours are colored based on the thread from which they execute; out-of-model values are colored in purple; arguments are colored light green; out-of-scope local variables are colored light gray; method return values are colored in light brown.
- Call paths in the Object Diagram no longer have gaps: if a method is called from out-of-model, its return point (RPDL) will link to the eventual in-model returner, that is, the topmost in-model method on the call path. A tooltip hint on the RPDL field will show the actual (out-of-model) RPDL.
- Temporal navigation support on the Object Diagram: right click on an object contour and you can jump to any method previously invoked on that object; right click on a method contour and you can jump to any other method call made by that object.
- Sequence Diagrams can now be quickly collapsed/expanded from any life lines: right click on the life line and select the desired collapse/expand function.
- Event trace can now be exported as CSV or XML file. Object and Sequence diagrams can now be exported as JPG, PNG, or BMP files.
- Object and Sequence diagrams can now be printed-- if you have a PDF or SVG driver, you can easily export your diagram to those formats.
- Object and Sequence diagrams are now rendered in higher quality by using the anti-alias features of the underlying graphical API.
- JIVE now supports an internal representation of the AST of your Java program which combines information obtained from Eclipse's AST API and JDI. This is the first step towards the incorporation of dynamic analyses and, in particular, dynamic slicing in the tool.
- JIVE now provides a set of commands on the Host OSGi with support for many of the functionality available through the UI. The console will allow us to quickly test features before integratint them to the UI.
- The event trace subsystem is currently being refactored to use byte code instrumentation instead of JDI. The instrumentation part of the code is complete and we are in the process of integrating the new subsystem into JIVE.
- Database support in JIVE is in the final design stage and we should soon see the option to stream JIVE events and store derived models in an external database.
- Our new temporal data model and query language, Practql, are currently being implemented.
- JIVE has gained much in scalability by replacing lock-based data structures with concurrent ones.
- JIVE renders the Sequence Diagram and Sequence View diagrams directly from the event trace.
- All diagram rendering issues that appeared in Indigo have been solved.
Experimental Features
Incubation
Improvements
Older News
JIVE 0.4.2 Release Available
September 14, 2010 - 21:00:00 UTC by Demian Lessa
The latest JIVE release (0.4.2) is now available for download. This release includes a minor change in the object diagram view in order to simplify the different forms of visualizing the diagram. See the changelog for complete details. Also, be sure to follow the revised installation instructions.
JIVE 0.4.1 Release Available
September 02, 2010 - 06:00:00 UTC by Demian Lessa
The latest JIVE release (0.4.1) is now available for download. This release should be faster and more stable than previous ones. A number of new features were introduced (e.g., advanced diagram collapsing, object diagram call paths, prototype query language for user queries, etc). See the changelog for complete details. Also, be sure to follow the revised installation instructions.
This release is a significant milestone. Future releases will concentrate on adding temporal support for JIVE, in order to enable high-level temporal queries. We are currently analyzing a refactoring from the JPDA-based event architecture to a more efficient alternative such as bytecode instrumentation. Feedback and suggestions are always welcome.
JIVE 0.3.1 Service Release Available
April 18, 2008 - 14:00:00 UTC by Jeffrey K. Czyz
The latest JIVE service release (0.3.1) is now available for download. This release fixes some major nagging bugs that would arise when monitored code was called from filtered (Java API) code. Some other related bugs were also addressed. This release should greatly increase JIVE's stability. Please see the changelog for details. Also, if you are upgrading from a previous minor release (e.g., 0.1.x or 0.2.x) then be sure to follow the revised download instructions.
With these stability issues resolved, future releases will concentrate on adding event and diagram filtering and will hopefully begin to address some of JIVE's scalability issues. Feedback and suggestions are always welcome.
JIVE at EclipseCon 2008
March 17, 2008 - 17:00:00 UTC by Jeffrey K. Czyz
This week JIVE will be featured at EclipseCon 2008 in Santa Clara, California. The conference runs March 17–20 and is located at the Santa Clara Convention Center.
An overview of JIVE will be presented at the Poster Reception on Wednesday. A short talk on Query-based Debugging and Visualization in JIVE will be given on Thursday. Please see the linked abstracts for details and presentation content.
JIVE 0.3.0 Released
March 4, 2008 - 06:00:00 UTC by Jeffrey K. Czyz
The next installment of the JIVE Platform (0.3.0) has been released. A new feature available in this version is the ability to selectively collapse and expand method activations on the sequence diagram. Collapsing a method activation effectively reduces the call tree rooted at the activation to a single method call. This leads to a less cluttered and more compact diagram. A method activation can be expanded or collapsed through its context menu. Automatic diagram compaction techniques will be available in a future release.
A couple of breaking API changes were made to implement the new feature. A few minor bugs were also fixed in this release. Please see the changelog for details. The API documentation has been updated, too.
Declarative Debugging in JIVE Tutorial Available
February 19, 2008 - 03:30:00 UTC by Jeffrey K. Czyz
Our latest tutorial Declarative Debugging in JIVE is now available in the Tutorials section. This tutorial explains JIVE's unique approach to debugging object-oriented programs and how it differs from traditional methods. It demonstrates how to formulate and run queries over a program's execution history and how to view the results.
JIVE 0.2.1 & 0.2.2 Service Releases Available
January 16, 2008 - 23:30:00 UTC by Jeffrey K. Czyz
Two JIVE service releases (0.2.1 & 0.2.2) are available for download. These releases add support for reverse stepping before a program has terminated. An 'Exception Caught' search query has also been added. Please see the changelog for details.
JIVE 0.2.0 Released
November 22, 2007 - 03:10:00 UTC by Jeffrey K. Czyz
The next version of the JIVE Platform (0.2.0) has been released. A few bugs have been addressed, including a fix for users experiencing difficulty running under JRE 5. New in this release is an extension point allowing other plug-ins to extend JIVE with their own queries. Much of the JIVE search API has also been exposed.
Please see the changelog for details. The API documentation has been updated for the new release and includes documentation for the new extension point.
Updated November 22, 2007 - 07:15:00 UTC
You may have to modify your preferences to obtain the latest release. Select 'Window' → 'Preferences...', then under the 'Install/Update' category, change the 'Valid updates' preference to 'compatible'.
JIVE 0.1.2 Service Release Available
November 14, 2007 - 20:30:00 UTC by Jeffrey K. Czyz
Another JIVE service release (0.1.2) is available for download. This release addresses a couple issues regarding class visibility for extending plug-ins. Please see the changelog for details. The API documentation has been updated to reflect these changes.
JIVE 0.1.1 Service Release Available
November 13, 2007 - 20:30:00 UTC by Jeffrey K. Czyz
The first service release of JIVE (0.1.1) is available for download. This version contains the complete source code released under the Eclipse Public License (EPL) agreement. A few minor bugs and compatibility issues are addressed in this release. Please see the changelog for details. Also, much of the public API documentation can now be accessed from the web site. See the Support & Development section for more information.
To upgrade from an earlier version of JIVE, simply use the update manager as described in the Download section.
Beginning to Debug with JIVE Tutorial Available
November 5, 2007 - 20:45:00 UTC by Jeffrey K. Czyz
Our first tutorial Beginning to Debug with JIVE is now available in the Tutorials section. This tutorial starts by covering how to initiate a debugging session with JIVE. It then goes on to explain the object and sequence diagrams, and finishes with describing the backwards stepping and jumping mechanisms. A tutorial describing JIVE's query-based debugging capabilities will be available in the coming weeks.
JIVE 0.1.0 Released
October 21, 2007 - 13:00:00 UTC by Jeffrey K. Czyz
JIVE is now available for the Eclipse Platform. Today, the initial version of JIVE (0.1.0) was released in conjunction with the Eclipse Technology Exchange workshop at OOPSLA in Montréal. Our paper Declarative and Visual Debugging in Eclipse was presented and a brief demo of JIVE was given.
JIVE extends the debugging capabilities of Eclipse to include interactive visualization, query-based debugging, and reverse stepping. It has been released under the Eclipse Public License (EPL) agreement. Please see the Download section for instructions on how to obtain JIVE.