PRISM - Teasers for Google Summer of Code 2016

The following list contains several small bugs or feature additions. You can have a look at them in order to test your knowledge of PRISM codebase. You can also use them to demonstrate your capabilities to us in your proposal: If you decide to solve any of the bugs or implement any of the features, you can upload a patch file on a place that is publicly available, and include a link to the file in the proposal. Please note that it is not a condition to solve any of the tasks, but doing so and including a link to your patch will make your proposal stronger. This is relevant especially if you think that you are applying for a project topic in which several students will be available, or if you don't have any past substantial programming experience through which you should show proficiency in coding
  1. [Mac Only] Trying loading a model and some properties into the PRISM GUI (for example, as explained in the online tutorial). When you edit a property, copy+paste functionality does not work in the text box. More precisely, Ctrl-C/Ctrl-V works, but not the expected Cmd-C/Cmd-V. Fix this issue.
  2. When adding a new property in PRISM GUI, the user inputs a text in a text field. For user’s convenience, there are also several buttons which the user can click and which generate a template text. These include, for example, “true”, “false”, or “Until”. Add another button for the formula “always” (see manual for the syntax)
  3. Add a new icon into the toolbar (the part of the GUI which currently contains icons such as “Undo”, “Redo” … “Select all”. Clicking on the new icon should open a web browser and in it the PRISM manual. As an extension of this, you can implement the functionality in a way that the specific documentation page opened depends on the tab that the user is currently viewing (Model/Properties), and goes to an appropriate section of the manual, with the icon being disabled under Simulator and Log.
Useful resources: http://www.prismmodelchecker.org/wiki/Developers/Introduction