ProR / Requirements Engineering

Save the date: SysML, formal semantics and their uses in model-based testing (May 27th 2013)

Formal Mind is pleased to invite you to the following event with
Professor Jan Peleska and Professor Wen-Ling Huang:

 

SysML, Formal Semantics and Their Uses in Model-Based Testing

Monday, May 27th, 2013, 10:00-12:30

University of Düsseldorf

Room 25.12.2.55

Lecture will be held in German. Participation is free of charge.

Non-Faculty members, please rsvp at info@formalmind.com

 

Abstract: Over the las few years, the published UML and SysML specifications from the OMG have been continuously improved. Today they deliver an exceptional foundation for semantic interpretation. In regards to formal syntax and statistical semantics, the use of Object Constraint Language (OCL) an extensive degree of precision has been reached – this includes situations where one has to reckon with faulty OCL interpretations or conflicting textural and formal data. Natural language rules apply in relation to behavioral semantics. These are clear enough and can be implemented in a formal specification. There are ambiguities with respect to Semantic Variation Points, which need to be defined in a project specific or tool specific manner.

We will demonstrate how to construct a a formal real-time semantic specification and how the behavior can be expressed through block-operations and state machines. This construction leads to a transitional relationship which combines discrete steps in zero time with delays, producing a real-time semantic with either dense time or discrete time, synchronous or interleaving semantics. We will demonstrate the practical application of construction in model-based testing and Bounded Model Checking with the help of the RT-Tester tool, which was developed by Verified Systems with the cooperation of the University of Bremen.

Better Link creation with RMF ProR 0.7.0

We are proud to announce the release of RMF ProR 0.7.0 and ProR Essentials 0.7.0.  Download them now from the Eclipse website.  If you already have ProR 0.5.0 or newer, simply update via Help | Check for Updates.

In Version 0.7.0, 16 features and bugs have been implemented/fixed. The biggest visible improvement for users is a new way of creating links between requirements (SpecObjects).

The old way of linking...

Before 0.7.0, linking was established by using drag and drop.  By holding down a modifier key (platform dependent), using drag and drop would not move the dragged elements, but link them instead.  While this works fine, there are some disadvantages to this approach: Only one link at a time would be created; the resulting link was untyped (requiring additional clicks to assign a type); "long distance" linking was tedious.

The old way of linking still exists, but a new way of linking as been added.

... and the new way of linking

With the new approach, starting a link and completing the link are two distinct steps.  Further, linking is not limited to creating one link at a time, but "n to m" linking is possible.  And last, the links can be created with a specific type.  Here is a demonstration on the new link process:

  1. Right-click the element or elements that you would like to link with.  The context menu now contains an entry Initiate Linking.  The number in parentheses indicates how many requirements are selected (see screenshot).
  2. Select the requirement or requirements that you want to link to. Right-click the element or elements to link the previously stored requirements with.  You will now see two additional context menus: Complete Linking to selection and Complete Linking from selection.  The number in parenthesis indicates how many requirements have been stored previously.  In the screenshot below, two elements have been selected, but previously, one requirement has been stored.  You also see that it is still possible to create untyped links, but that all existing types are available (in this case Realizes Link and isRelated Link).
  3. The selection of requirements that the process has been initiated with is not cleared.  Therefore, you can repeat the previous step as many times as you need, to link from/to those stored requirements.

Please spread the word and tell us what you think

We are thrilled that ProR is now being downloaded 200 times every month.  We are genuinely interested in hearing how you use ProR, what is good, what is bad, etc.  Please take a minute or two and tell us.  You can just reply to this email, or use the Formal Mind Forum or the Eclipse Forum.

If you like to hear about ProR, RMF and requirements on a regular basis, consider subscribing to our newsletter.  We send relevant and useful information once or twice a month.  Also, please forward this newsletters to your colleagues.

Getting the most out of collaborations between science and industry

The Atlas is a remarkable detector.  It weighs as much as the Eiffel tower, consists of 10 million parts, and generates more data each day than Twitter does.  But as a recent Economist article states, as impressive is the fact that it is a collaboration involving more than 3,000 researchers from 175 institutes in 38 countries.  Combine that with the fact that industrial management structures differ from research projects, in that accountability and directives to team members lie with the institutions, and not with the project management.

The article cites a number of reasons why research projects frequently meet, and often exceed, their expectations.  The list covers issues like the natural inclination of scientists to challenge authority (thereby leading to better solutions) and the ability of projects to “absorb uncertainty”, something industry tends to be averse to.

But I think that the most important reason is that research projects provide the room for people to find their place and to unfold their full potential.  Sure, there are employers in industry that allow - or even encourage - this as well.  But in science, this is almost a must.  "People become scientists to extend the frontiers of knowledge. For many, it is an obsession."

The challenge in research projects is to liberate this potential.  In practice, there are two challenges:

(1) The effort vaporizes: If everybody follows their own pet project, then people may have fun, but the whole won't fit together.  The result is a scattered bucket of half-finished software, a loose collection of research papers, "case studies" that are little more than toy projects, and so on.

(2) People get frustrated: And the frustration may have many reasons: It can be overly firm management, but also the opposite: If there isn't a manager to keep the researcher's back free, it can be as frustrating. It can be caused by delays from other teams, not producing the outputs that are needed to proceed.  Once frustration kicks in, motivation bottoms out.

Managing researchers in a science project is a little like herding cats. To make a science project successful, and to address the two issues stated, leadership is required.  We at Formal Mind have a lot of experience in bringing industry and scientists together, and we are currently managing a work package (WP7) of the openETCS itea2 project.

So: How can you lead a joint research project to success?  Here are some of the lessons that we learned:

  • Make sure all have a clear understanding of the underlying goal.  If this is there, then every activity can be put into context: Does it aid the reaching of the goal or not?  This can prevent researchers from working on topics that "kind of fit into the project", but are not useful for achieving the project aim.  It's also amazing how often people have differing understandings of a project's goal.
  • Support meritocracy.  Recognize the doers and support them as much as you can.  Those are the people who are really excited - make sure that you don't stop them, but direct them to make sure that their work contributes to the underlying goal.  You'll be amazed how infectious motivated people are.  With a little bit of luck, their energy will mobilize those around them.
  • Support communication.  Even within one organization, it is difficult to ensure that everybody gets the memo.  On big research projects, there is rarely an up to date list of all participants.  Fortunately, social media make it much easier for communication structures to establish themselves.  Suggest tools for communication.  Once a tool is established, discourage the use of redundant tools (e.g. only one mailing list provider, one instant messaging service, one Wiki, etc.).
  • Aggregate information. Once a project is underway, information overload quickly appears.  New team members in particular are often overwhelmed: They are confronted with mailing list archives containing thousands of messages, and once they subscribe, receive hundreds of mails every day, incapable of distinguishing the important from the mundane. Aggregating communication is a lot of work that pays of big time.  In openETCS, there is a weekly status email summarizing the most important developments (usually just half a dozen items).  These are then archived on a wiki page, allowing new team members to follow the development of the work package from inception to the present within half an hour.
  • Negotiate, then escalate.  Alas, things don't always go smoothly.  As a project (or work package) leader, the people don't work for you directly, you don't have managerial authority.  Because of that, it is crucial to understand the underlying reason for slow performance or inactivity.  While escalation is a regular management tool, I advise to use it cautiously, as it can create a lot of bad energy and politics.  In my experience, people want to do good work.  Chances are that you will get a motivated team, if you manage to understand the team and remove their obstacles.

Some of this advice may seem like common sense.  Yet, over the years I have seen quite a few research projects where there was room for improvement.  Taking this to heart may turn a successful research project into an outstanding one.

Help & Newsletter

If you need help bringing science and industry together, please talk to us. We are always interested in contributing to research efforts in the area of systems engineering.

If you like to hear about ProR, RMF and requirements on a regular basis, consider subscribing to our newsletter.  We send relevant and useful information once or twice a month.

Join our TeamWork for us!

Research-centric jobs in industry are rare.  Formal Mind provides an environment that gives talented scientists the ability to apply their skills in industry while staying on the cutting edge.  We leave you room to perform active research parallel to doing your day job.  Check out openings >>

Image courtesy of Danilo Rizzuti / FreeDigitalPhotos.net

Image of Atlas licensed under CCSA 2.0

Using ProR for ReqIF Testing

As more and more tools in the market support ReqIF, it becomes more and more important to inspect the generated files and to perform troubleshooting.  This is currently done in a systematic fashion by the ReqIF Implementor Forum,  a project group that ensures interoperability between different ReqIF-based implementations.  We are supporting this forum by generating test data and by providing tooling support for comparing ReqIF files.

This article acts as a guideline to the members of the Implementor Forum who want to actively use ProR for their testing activities.  We provide step-by-step-instructions from installation to performing the analysis of ReqIF files.

Screencast

The core feature that allows the easy comparison of ReqIF files is the compare tool, which we introduced earlier.  On that page you'll also find a 5-minute screencast that demonstrates the installation of ProR, as well as the installation and use of the compare tool.

Disclaimer and Updates

Please note that the compare tool that we currently offer as part of the ProR Essentials is tailored for the use in the Implementor Forum and is not intended for production use.  This relates in particular to how XHTML-Content is compared.  As different tools may encode the same content in different ways, a character-by-character compare would be meaningless.  Therefore, only the actual text is compared.  We plan on providing preference settings for this in the future.

Also, as of this writing (March 21st, 2013), the compare tool is not yet optimized for the tasks in the Implementor Forum. We intend to release an optimized version by March 28th.

Installation of ProR

In the following, we provide step by step instructions on how to install ProR:

  • Download ProR zip file for your platform from the Eclipse RMF Download Site.
  • Create a folder (e.g. ProR) and unzip the content of the zip file to this folder.
  • The folder should contain an executable called rmf-pror. Doubleclick this file to launch ProR.
  • ProR will prompt you for a workspace location.  The workspace is a folder where the working files of ProR are stored. A default location is offered.  You can check the checkbox to use the selected workspace from now on without asking.
  • At this point, you can already use ProR to inspect and edit .reqif files.

Installation of the Compare Tool

The compare tool is part of ProR Essentials, a free collection of productivity extensions for ProR.  The ProR Essentials contain the compare tool and the .reqifz-Importer.  To install these extensions, follow these steps:

  • In ProR, select Help | Install new Software....
  • Select the ProR Essentials Update Site from the Works With drop down.
  • Select either all ProR Essentials Features, or only the following two which are needed for testing:
    • ProR ReqIF Diff Support Feature
    • ProR ReqIFz Transfer
  • Note: If you install the Team Support Feature as well, ProR will subsequently prompt you to select a Subversion adapter to install.
  • Follow the installation wizard.  We currently do not sign the extension, which will generate a warning during the installation process.
  • After completing the installation, ProR will prompt you to restart.

Importing ReqIFz-Files into ProR

The test data resides in .reqifz files.  ProR requires .reqifz files to be imported.  Inside ProR, each .reqifz file is represented as a project containing the .reqif file(s) and the associated resources (OLE-objects, preview images, etc.).  To import a .reqifz-File, follow these steps:

  • Launch the import wizard via File | Import....
  • In the folder ReqIF, select ReqIFz Import Wizard.
  • Select the source .reqifz file (.zip is also supported) and provide a name for the project.  If the project does not exist yet, it is created.
  • Import the file by clicking Finish.  Alternatively, inspect the files to be imported by clicking Next.
  • Consider reading a more detailed description of the .reqifz Import/Export feature.

Comparing Files

To compare files, you need the .reqif files in your workspace.  We recommend to import the two .reqifz files to be compared in two different projects, as described above.  Once this is done, you can compare them as follows.  Please remember that only the .reqif files are compared.  The embedded objects are not compared.

  • Select the two .reqif files to be compared in the project view, and only those two.  This is supported on all platforms, typically by holding down the Ctrl key while clicking.
  • Right-click on one of the two selected files.  From the context menu select Compare with | Each other.
  • A dialog will pop up entitled Match Mode Selection, offering to compare the complete resource set(s) or the selected resource(s) only.  As we compare only one resource, it does not matter which one you click (we will remove the dialog in the future).
  • You will see a three-pane compare view.  The top pane shows the differences in a tree structure, the lower panes show the two files to be compared.
  • The easiest way to compare is by using the yellow arrows to step through the changes, one by one.
  • We wrote a detailed description of comparing, including a screencast.

Getting the latest

As mentioned above, we plan to update the compare tool tailored to the needs of the ProSTEP Implementor Forum. A new release of the compare tool is planned by March 28th, 2013.  We will send out a notification.

Once the update is available, it can be installed conveniently via Help | Check for Updates.

Support & Newsletter

We will provide support for the members of the ProSTEP Implementor Forum.  Please contact us via email, if you need help.

If you like to hear about ProR, RMF and requirements on a regular basis, consider subscribing to our newsletter.  We send relevant and useful information once or twice a month.

Work for us!

Research-centric jobs in industry are rare.  Formal Mind provides an environment that gives talented scientists the ability to apply their skills in industry while staying on the cutting edge.  We leave you room to perform active research parallel to doing your day job.  Check out openings >>

Image (Scale) courtesy of scottchan / FreeDigitalPhotos.net
Image (Fruit) courtesy of Suvro Datta / FreeDigitalPhotos.net

RMF 0.6.1 update, .reqifz Import/Export and ReConf 2013

If you downloaded RMF/ProR Version 0.6.0, you may have had a problem when using an older Java version (less than Java 7, to be prcise).  We just published a service update that loosens this rather strict and unnecessary requirement.  No need to download the new version, just update via Help | Check for Updates.  This is particularly crucial for Mac users, as it is tricky to get ProR to use Java 7 on a Mac.

ReqIF at ReConf 2013

ReConf is one of the biggest requirements conferences in Europe, and this year, there will be a lot of buzz around ReqIF.  On the 2. day of the conference, there are four talks around this topic, one of them - Eclipse RMF in Action - from us.  In addition, our science track talk Tool-supported Consistency between Requirements and Specification presents tool support based on ProR.  If you are in Munich, feel free to contact Michael Jastram to meet up.

Support for ReqIF Archives (.reqifz-Files)

The ReqIF-Standard allows objects (pictures, OLE-objects, files, etc.) to be embedded in the content.  These elements are stored as separate files.  To transfer the .reqif file and its associated files, they are put into a zip-archive.  At the ProSTEP Implementor Forum it was suggested to use .reqifz as the file ending for such archives.  Until now, these archives had to be created by hand.

Now we added .reqifz-handling as a new feature to ProR Essentials.  It is now possible to import and export .reqifz-Files.  Even if you already have ProR Essentials installed, you need to add the new Transfer feature explicitly.  To do so, select

  • Help | Install new Software...
  • Select the ProR Essentials Update Site from the Works With drop down
  • Select either all ProR Essentials Features, or only the ones you need

The following dialog shows a System where all Essentials Features, except the ReqIFz Transfer Feature, are already installed.  To install the Transfer feature as well, select it and continue with the installation process.

Once installed, the Import and Export facilities of Eclipse contain a new Category ReqIF, containing the ReqIFz Import and Export Wizards.  In addition, the context menu for Projects contains a ProR submenu, which also provides links to the wizards, as shown to the right.

ReqIFz-Imports and -Exports are always associated with a project.  Therefore, we do not recommend to keep unrelated .reqif-Files in one project - it is easy enough to create new projects, as needed.

The export packages the content of the project and creates a .reqifz-file with its content.  It is possible to exclude files from the export.  The wizard also memorizes the name and location of the last export (and warns the user if the file already exists).

The import unzips the content of the selected .reqifz-file into the selected project.  It informs the user, which files would be overwritten.  It is also possible to create a new project on the fly.

Stay in touch

If you like to hear about ProR, RMF and requirements on a regular basis, consider subscribing to our newsletter.  We send relevant and useful information once or twice a month.

Work for us!

Research-centric jobs in industry are rare.  Formal Mind provides an environment that gives talented scientists the ability to apply their skills in industry while staying on the cutting edge.  We leave you room to perform active research parallel to doing your day job.  Check out openings >>

 

ProR 0.6.0: The best ProR so far

We are proud to announce the publication of the ProR 0.6.0 snapshot.  While still in incubation, this version provides some significant improvements with respect to usability.  If you use ProR 0.5.0, you can update your installation simply via Help | Check for Updates.  Try it now, or download it here.

The highlights of 0.6.0 include:

  • Drastic performance improvements!  One of our test files used to take 4 minutes to open.  We reduced this to 5 seconds.
  • Better XHTML-handling.  For instance, better labels are now shown.  But to get some real powerful XHTML handling, we encourage you to install the ProR Essentials.
  • Default Presentations: A presentation is a plug-in that provides improved handling of certain data types.  It is now possible to associate certain presentation handlers with Datatypes.  For instance, when installing the ProR Essentials, the XHTML presentation automatically becomes the default handler for XHTML content (more below).
  • Default Values: ReqIF allows attributes to provide a default value.  This default is now being used when appropriate.
  • Smart processing of non-ProR-Files: Many tools can write ReqIF.  When opening such a file in ProR, it now performs some analysis to set the columns, to provide meaningful labels, etc.
  • Many bug fixes: We removed a number of annoyances, including some bugs with selection management, refreshing of elements, color rendering, etc. In total, we resolved 21 issues (Bugzilla).

We will also release an update of the Essentials within the next days - please stay tuned, we'll announce it here.  In the following, we will describe the new default presentations in more detail:

Default Presentations

The rendering of some content can be improved drastically with additional Presentations.  A good example is the XHTML rendering.  By default, ProR only shows a simplified text representation of the formatted text (see "Before" below).  However, the XHTML-Plug-in from the ProR Essentials does real rich text rendering.  This has been available before.  However, before, you had to specifically configure a Datatype to use the new presentation.  This was tedious, especially for files that were not created by ProR.  But with default Presentations, this is not necessary any more.

Presentations can register themselves as handlers.  The XHTML Presentation from the ProR Essentials does exactly this: Once installed, all elements of type DatatypeDefinitionXHTML will be rendered using the Presentation.  Of course it is possible to set defaults manually as well.

Default Presentations are configured via Window | Preferences.  There is an entry ProR with a sub-entry Default Presentations.  The following screenshot shows this, after the installation of the ProR Essentials:

As you can see, presentations are registered for String and XHTML.  Most entries are set to none, meaning that there is no default, and that the build-in representation is used.  All drop-downs have an additional entry Use Build-in (shown for Date).  This setting means that new Presentations must not override the build-in handling.

As a result, without any additional configuration, XHTML content will be rendered properly.  The following shows the same ReqIF File, before and after installing the ProR Essentials:

As you can see, the new presentation from the ProR Essentials now supports embedded objects, in addition to formatted text.  But this will be the subject of a future blog post.

We hope that you enjoy the new features of ProR.  We are aware that ProR is still rough on some edges, but nevertheless gets better every day.  We strive to react promptly to feedback, so we encourage you to provide us with bug reports, compliments, criticism or any other kind of feedback via the ProR web site.

Stay in touch

If you like to hear about ProR, RMF and requirements on a regular basis, consider subscribing to our newsletter.  We send relevant and useful information once or twice a month.

Work for us!

Research-centric jobs in industry are rare.  Formal Mind provides an environment that gives talented scientists the ability to apply their skills in industry while staying on the cutting edge.  We leave you room to perform active research parallel to doing your day job.  Check out openings >>

 

ProR Team Plug-In with Workflow Support

Recently we published ReqIF-comparing as the first step of team support for ProR.  We released that plug-in as part of the ProR Essentials.  We are  proud to now announce the release of the team plug-in, which provides workflow support.  Read on to learn now to install and to use it.  The team plug-in requires a subversion server to operate.

Installation

The plug-in is available as part of the ProR Essentials.  In any ProR Installation, select Help | Install new Software... and pick the "Essentials" repository.  You'll find the feature in the "ProR Essentials" category:

Just follow the wizard, as you would normally do during an installation.  You'll have to accept the license and restart Eclipse.  Upon starting, you'll be asked to select a Subversion connector.  If you are unsure which one to pick, select the latest SVN Kit Connector, as shown below:

Upon clicking finish, Eclipse will guide you through the installation process of the chosen connector, which concludes with another restart.  The installation is now complete.

Configuring team support

To use the feature, Team support must be enabled on a per-project-basis.  To do so, right-click on the chose project and select "Enable ProR Versioning" from the "ProR" context menu, as shown below:

Doing so will launch the configuration wizard.  It consists of two parts.  First you have to decide whether updating and committing should happen automatically:

If "update automatically" is selected, then the project is updated upon opening.  Selecting this option ensures that the latest modifications on the Subversion server are retrieved, before starting to edit.

If "commit automatically" is selected, then local changes are pushed into the repository upon closing the file.  This is useful to make sure that the Subversion server is up to date upon finishing a work session.  Before the commit, an update is always performed.

Of course, update and commit can be performed manually as well, at any time.  The project's "ProR" context menu has entries for these actions.  The regular team context menu also exists and works normally.

Further, both a commit and update can lead to a merge conflict. Later we describe how conflicts are handled.

And last, these settings can be changed again any time by selecting "Properties" from the Project's context menu.

After this has been configured, the subversion server to be used has to be configured as well.  To access it, you typically need a URL, a username and a password.  This is the standard svn-Dialog:

Once everything is configured, the Team plug-in will add the project's content to subversion and commit it.  You may modify the generated commit message.  And this concludes the project configuration.  Now it is time to start the team work.

Working with Team support

The team plug-in activates on opening and closing of .reqif files (if enabled), by updating and committing the file, respectively.  The user will notice the additional subversion activities during these tasks.  In addition, upon a commit, you must provide a commit message.

If a file is added to a project that is managed by the Team plug-in, the file is automatically added to subversion.

And this is essentially all there is.  Except for the need to provide commit messages, the team plug-in stays out of the way of the user.  You can focus on your work and be sure that the subversion server always has the latest data.  The following screenshot shows how the commit dialog pops up after closing a ReqIF file:

Of course, a manual update or commit can be triggered any time through the ProR or the Team context menu of the project.

We hope that this work is useful to you and look forward to feedback from the community.

Stay in touch

If you like to hear about ProR, RMF and requirements on a regular basis, consider subscribing to our newsletter.  We send relevant and useful information once or twice a month.

Work for us!

Research-centric jobs in industry are rare.  Formal Mind provides an environment that gives talented scientists the ability to apply their skills in industry while staying on the cutting edge.  We leave you room to perform active research parallel to doing your day job.  Check out openings >>

Visit us in Braunschweig at Forms/Format

We are happy to announce that we will be present at the conference FORMS/FORMAT in Braunschweig, both with a paper (and presentation) and a tool exhibition. The paper is entitled "A Systems Engineering Tool Chain Based on Eclipse and Rodin".

We'd be delighted to see you there.

 

Would you like to get regular updates from us, regarding relevant information about the industrial use of requirements and formal methods?  Then we invite you to subsribe to our newsletter.

Comparing ReqIF Files with ProR Essentials Diff

We just released ProR Essentials 0.5.0, which comes with a new feature, an extension for comparing ReqIF files.  We also published ProR 0.5.0, which is required for using the new Essentials features.

Installing, not upgrading

A lot of refactoring happened for the new ProR release.  Therefore, unfortunately it is not possible to upgrade from 0.4.0 to 0.5.0 using the build-in update manager.  If you are a user of the standalone-version of ProR, you will need to download the new version.  Of course, you can continue to use your existing workspace.  If you're using ProR as a plug-in, you should be able to upgrade.

To use the Diff tool, you need to install the ProR Essentials.  The update site for ProR Essentials is already installed.

Using the Diff Tool

A picture tells more than 1000 words - or so the saying goes.  This time we produced a 5-minute screencast to demonstrate the usage of the Diff.  We hope you like it, and would love to hear from you whether you prefer screencasts or written documentation, as we did in the past.

Work for us!

Research-centric jobs in industry are rare.  Formal Mind provides an environment that gives talented scientists the ability to apply their skills in industry while staying on the cutting edge.  We leave you room to perform active research parallel to doing your day job.  Check out openings >>

Image courtesy of Suvro Datta / FreeDigitalPhotos.net

Manual Testing with ProR

Automated test are great (we use them - the RMF project currently runs over 200 automated tests, all passing).  But there are some situations where automating tests is just not worth the while - GUI tests are one example.  So the manual tests and their results have to be recorded somewhere.  An obvious, quick approach would be to use a spreadsheet.  But there are advantages of using a more sophisticated tool, like ProR.  We'll show here how this could be realized.

You can download the .reqif file used in this example (but please note that for production use, you would probably want to straighten is out considerably). Download Sample ReqIF File >>

Recording Tests

A simple first approach would be to create a list of test descriptions, with one column for each test run.  The following screenshot shows how this can be realized in ProR:

The top pane shows a table with three columns, "Description", "Expected" and "0.4.0".  The first one briefly describes the test, the second describes the expected result.  The "0.4.0" column shows the results of the test run for version 0.4.0 (in the last row it is shown how the value is selected from a drop-down, rather than typed in).

If you look at the Properties View (lower pane), you see that the entry has many more attributes that are not shown in the table view.  This includes past test runs (0.1.0 to 0.3.0).  These are kept for audits, but would only clutter up the table view.  When a new version is prepared for release, a new attribute (0.5.0) would be created and shown in the table view.  0.4.0 would be removed from the table view, but of course it could always be accessed via the Properties View.  The Properties View also contains a Note field for additional information.

Traces between Requirements and Tests

All this could also be realized in a Spreadsheet somehow.  But the real power of a tool like ProR unfolds when traceability is used.  Traceability could be used for tracing requirements or specification elements to their tests, as shown here:

You can see that there is an outgoing link from row 1.1.  The link target (the requirement) has been selected in the right column, resulting in the full requirements text being visible in the properties view.  In addition, the link has an annotation in the Description column: "On Linux, hold down Ctrl-Shift".

More possibilities

What has been shown here can be realized with the standard ProR tool and only touches the surface on what could be realized.  With a little effort, this approach could be extended significantly, for example:

  • More elaborate testing instructions could be linked to the individual test entries.
  • Using the "suspect link" tool from ProR Essentials to double check test descriptions when a requirement changes.
  • With a little scripting, unit test results could be added automatically to the test report.
  • As ProR writes XML, graphical reports could be generated from the model with a standard XML processing tool.  It would also be possible to build an Eclipse plug-in for generating these reports inside ProR.

There are many more possibilities, by leveraging both the power of the existing ProR features, the underlying XML data model, and Eclipse as an integration platform.

Our Blogs

We want to share our latest insights regarding formal methods and requirements as well as the latest developments regarding our OpenSource tools, ProB and ProR.  We will post new information roughly twice a month, so you won't be overwhelmed.  You can either subscribe via email (below), subsribe to our RSS Feed or visit this page.

Formal Mind Newsletters

Select the newsletter(s) to which you want to subscribe or unsubscribe.

Contact

Dr. Michael Jastram

Geschäftsführer / CEO

Phone:
+49 (162) 274 83 94

Email:
michael.jastram
@formalmind.com