/SpecIF-Viewer

A viewer and editor for SpecIF files.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

SpecIF Model-Integrator, Editor and Viewer Build Status

An app for your web-browser to view, edit* and transform system specifications. (Features of the SpecIF Editor are marked with an asterisk*).

SpecIF is the 'Specification Integration Facility'. It's purpose is to combine partial specifications from different tools in a single model to allow

  • to search, navigate and audit partial results in a common context
  • to exchange model information between organizations and tools.

Please have a look at the SpecIF Homepage for further information.

Features

  • Import 'specif' and 'specif.zip' file with schema and consistency check
  • Import 'reqif' and 'reqifz' file
  • Import MS-Excel 'XLSX', 'XLS' and 'CSV' file
  • Import 'BPMN-XML' file
  • Import ArchiMate Open-Exchange
  • Import from an URL or the local file system
  • Merge models of different tools and notations*
  • Browse the content ('resources') along the supplied hierarchy
  • Display model-element details when hovering over a representation on a diagram (in case of SVG images with annotated model-element identifier)
  • Create, clone and update resources with an input form derived from the respective resource class*
  • Move single nodes and subtrees in the hierarchy by drag'n'drop*
  • Inspect the semantic net ('statements')
  • Create statements according to the options defined in the statement classes*
  • Delete selected resources and statements*
  • Filter using text fragments ('full text search'), resource classes or enumerated property values
  • Report some model-based statistics, such as used resource classes or used property enumerated values
  • Export 'html' file with embedded SpecIF data
  • Export 'specif.zip' file
  • Export 'reqifz' file (Requirements Interchange Format)
  • Export 'Turtle' file (experimental)
  • Export 'ePub' file
  • Export MS-Word OOXML file

Compatibility

  • Mozilla Firefox
  • Google Chromium and Chrome
  • Microsoft Edge
  • Apple Safari (beware of performance issues in case of bigger models)
  • Opera
  • Microsoft Internet Explorer is not any more supported

Maturity

The software code is a reference implementation and has not been designed for high data volume and other production requirements. Any contribution to this collaborative effort is highly welcome!

Demonstration

The app has been installed for demonstration

The installation provided for your convenience is neither intended to be highly available nor scalable. You may use the latest release of the software for your own installation, see below.

Compatibility

  • Mozilla Firefox
  • Google Chromium and Chrome
  • Microsoft Edge
  • Opera
  • Apple Safari (beware of performance issues in case of bigger models)
  • Microsoft Internet Explorer is not any more supported

Installation

For any purpose other than demonstration please install the latest release on a web server of your choice. Just unpack the files and load 'yourPath/view' or 'yourPath/edit' with a web-browser.

Running the App Locally

First, make sure you have NodeJS and NPM installed.

Then, install all dependencies:

  npm install

After installing all dependencies, run the build script:

  npm run start

On Windows

After creating the build directory with the executables, you may start the local web-server:

  http-server
  • Then, navigate to localhost -> build -> view.html to open the SpecIF Viewer
  • Temporarily deactivate Cross-Origin Restrictions and Local File Restrictions in your browser, if you encounter a blank screen. Make sure to re-activate these settings, later.

Acknowledgements

This work has been sponsored by enso-managers gmbh and adesso SE, both Berlin.

The SpecIF web-apps have been built with the open source components listed below. These are fine pieces of software and we gratefully thank the contributors for their effort.

LibraryAuthorDescriptionLicense
AJV Evgeny Poberezkin Another JSON Schema Validator ... more MIT
jqTree Marco Braak A tree with collapsible branches and drag\'n\'drop support for rearranging chapters and paragraphs ... more Apache 2.0
markdown-it KirillVitaly PuzrinAlex Kocharin Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed ... more MIT
JSZip Stuart Knightley, David Duponchel, Franz Buchinger, António Afonso A library for creating, reading and editing .zip files ... more MIT
FileSaver Eli Grey Save files to the local file system ... more MIT
BPMN-Viewer A BPMN 2.0 rendering toolkit and web modeler ... more bpmn.io
vis.js Network Display networks consisting of nodes and edges ... more Apache 2.0 or MIT
js-xlsx Excel parser and writer ... more Apache 2.0
jQuery jQuery makes things like HTML document traversal and manipulation, event handling, animation and Ajax much simpler ... more MIT
Bootstrap Icons Free, high quality, open source icon library with over 1,800 icons. Use them with or without Bootstrap in any project ... more MIT
Bootstrap Front-end component library for responsive, mobile-first projects on the web ... more MIT
diff-match-patch A library for text comparison, matching and patching ... more Apache 2.0