Half a year later, the new Rocs release

Some hours before the first KDE SC 4.9 beta seems to be a good time to write some lines about the new cool things the next Rocs release will bring you. For those of you, who never heart about Rocs before: Rocs is a Graph Theory IDE for everybody interested in designing and analyzing graph algorithms (e.g., lecturers, students, researchers). For all these users, Rocs provides an easy to use visual data structure editor and a powerful scripting engine to execute algorithms.

In the following lines I will try to capture the most notable new features of the coming release.

Rocs Project Files

In former releases there wasn’t a notion of projects: even if you created graphs and wrote scripts modifying the respective graphs, you only had a loose set of files that you had to load individually. With the next release we switch to a project based approach. This is, you always work in a project that is a collection of several graph documents and script files. Further, for easier file exchange, we provide import and export of projects as archive files.

Data and Pointer Types

Rocs now uses Data Types and Pointer Types for all elements of a data structure. This is, each data element and pointer of a data structure has a specific type (e.g., data types like servers and clients to use in your algorithms). The use cases for both kinds of types are different:

  • ¬†Pointer Types: Consider a network of nodes at which we have specific communication interests between the network nodes. To visualize this we can add two types of pointers: “real” connections between the network nodes and communication interest edges. On such a graph, we can execute an optimization algorithm to improve distances between network nodes and while executing the algorithm we see the communication interests. This allows a better understanding on how the algorithm works.
  • Data Types: Several graph problems assign specific roles to the data elements (in a clustering algorithm you have servers and clients, in a breath first search you have visited and unvisited nodes,…). If you want to visualize such an algorithm you can add data types to provide a consistent look of all data elements of the same type. And further, the algorithms will be better readable as you can use access functions that preselect data elements of specific types.

Further notable changes and improvements:

  • Wagner implemented a new data structure plugin for Rooted Trees.
  • The script engine received a stepped execution and a debug execution mode.
  • Again with this release major work at UI improvements was done (dialogs, menus, buttons,…) This enables users to much easier and more intuitive creation and modification of data structures.
  • A special focus of this release was on robustness and code cleanup: The unit tests received a rewrite and were also extended. This enables us to ensure the high product quality we want to provide with Rocs. And of course, all unit test pass: http://build.kde.org/view/KDEEDU/job/rocs_master/?
  • The last days, major parts of the handbook were rewritten to now capture all scripting functions, data structure functionality, and data structure plugins. We now also provide a tutorial for first-time users.
  • About hundred¬† Krazy issues were solved, also we run short of open bug reports…

It remains to say: have fun with Rocs! And if you have questions/ideas, since some months we use the rocs-devel@kde.org mailing list.