Loading...
 
Print

i*-REST

i*-REST

Table of contents



General Information

Tool Name


i*-REST

Version


0.0.1

Group


Advanced Community Information Systems (ACIS)
RWTH Aachen University,
Germany

Web page (if available)

https://github.com/rwth-acis/LAS2peer-iStarMLModel-Service
https://github.com/rwth-acis/LAS2peer-iStarMLVisualizer-Service

Main Purpose of the Tool


i*-REST is a set of web-services that allows creation/modification and visualization of i* SD models over a RESTful web API. A database is used as a central model repository to store the models in iStarML? format. The tools can be integrated into an automated tool chain, where models are created without direct human intervention. i*-REST can be used over a web interface, so no special software is required on client side. On server side i*-REST runs in a LAS2peer environment. The used database is eXist-db.

i* framework supported


Yu'97

Availability of the tool

  • ( ) For i* modelling only
  • ( ) For development only
  • (X) Both


Programming Language


Java

Platform Requirements


Any platform that supports Java

Other technology needed


Server side:

Client side:
  • some client, e.g. a browser

Current state of the tool


Working version available.
No proper documentation yet.

Ongoing work


Creating documentation

i* Modelling Suitability


1. Does the tool allow SD modelling?

Yes

2. Does the tool allow SR modelling?

No

3. Does the tool allow working with SD & SR models jointly?

No

4. Does the tool allow the construction of the models graphically?

No

5. Does the tool allow the construction of the models textually?

Yes
If so, please specify how (i.e., filling a dependency table).
By writing RESTful requests and sending them to the server.
You can even create a graphical editor frontend on top of it.

6. Describe how the elements are modelled and their flexibility (i.e., the elements can be moved and reordered).


The layouting of the visualization is created automatically using the model file (iStarML).
Specifying individual positions is not possible.
Colors of nodes and labels can be modified.
the visualization is not stored in the database and only created on demand, so it is always up-to-date.

Dependency links are modelled with straight lines and cannot be redirected.

8. Does the tool allow automatic organization of the elements?

Yes
No manual organization possible.

9. Other modelling facilities provided by the tool:

  • Support of custom tooltips

10. Does the tool check SD models?

Yes, by construction and when imported.
Every construction step produces a syntactically valid SD model.

11. Does the tool check SR models?

No

12. Other checks provided by the tool (i.e., cross validation between SD and SR models).

  • ...

13. Does the tool allow working with two or more models at the same time?

Yes
Its RESTfull, i.e. stateless. This means the tool does not need an extra step to 'open' a model.


14. Does the tool allow to group models in projects?

Yes.
Database supports collections and sub-collections with a group rights management system.

15. Does the tool allow working with two or more projects at the same time?

Yes
Its RESTfull, i.e. stateless. This means the tool does not need an extra step to 'open' a project.

16. What are the other functionalities that the tool provides?

  • Model versioning, previous versions can be viewed and copied.
  • Collaboration over the web (rights-management)
  • RESTful API for integration into existing/future toolchains

Usability


17. Rate the understandability of the user interface

  • ( ) Internal use
  • ( ) Ready for public use
  • ( ) Has been used publicly
If it is not ready for public use, mark one or more of the following:
  • ( ) not in English
  • ( ) writing not polished
  • ( ) poor usability (colours, ...)
  • (X) others: please specify

There is no user interface.
But a webpage client exists to browse and view models.

18. Rate the quality of the user manual

  • ( ) Inexistent
  • (X) Internal use
  • ( ) Ready for public use
  • ( ) Has been used publicly
If user manual for internal use, mark one or more of the following:
  • ( ) incomplete
  • ( ) obsolete
  • ( ) not in English
  • ( ) writing not polished
  • (X) others: please specify
Currently exists only in a bachelor thesis.

19. Does the tool provides i* learning facilities?

No

20. Does the tool provide any examples for the users?

No

21. Rate the difficulty of installing the tool

  • (X) Copy files and initializing paths
  • ( ) Copy files
  • ( ) Executable installation file provided

Maturity of the Tool


22. Rate the maturity of the tool from the user point of view:

  • ( ) Under Development
  • (X) Prototype
  • ( ) Ready for public use
  • ( ) Has been used publicly
If not for public use, mark one or more of the following:
  • ( ) incomplete
  • ( ) occasional testing
  • ( ) non-exhaustive testing
  • ( ) non-persistent data
  • ( ) poor efficiency
  • ( ) not portable
  • ( ) others: please specify
Expected date for public use (if any):

23. Has the tool been used for any case study?

No


24. Has the tool been tested in large models?

Yes, with hundreds of nodes.

25. Has the tool any drawback when working with very large models?

No.
But older browsers have problems to render very large SVG files (model visualization).

26. Which is approximately the maximum size of the model (in terms of actors and dependencies) the tool has been used for?


About 30 actors and 20 dependencies.

Extensibility and Interoperability


27. Does the tool allow importing files?

Yes
If so, specify import data formats (i.e., XML, text file, pictures of the graphical representation...)
iStarML files

28. Does the tool allow exporting files?

Yes
If so, specify import data formats (i.e., XML, text file, pictures of the graphical representation...)
iStarML files and SVG files (graphical representation)

29. Does the tool allow importing/exporting the data through an XML format?

Yes
If so, link to the DTD for the XML format if available.
iStarML

30. Is the architecture of the tool published?

Yes
If so, where?
The tool is open source.

31. Does the tool allow the addition of other elements outside the i* framework of the tool?

No

32. New functionalities can be added to the tool by means of:

  • (X) PLUG-IN
  • (X) Open-Source code
  • ( ) import & export XML
  • ( ) NONE

Basically you can communicate with other services over the RESTful API (use them as Plugins)

33. Rate the maturity of the tool from for open development:

  • ( ) Under Development
  • (X) Prototype
  • ( ) Ready for public development use
  • ( ) Has been used for public development
If not for public development use, mark one or more of the following:
  • ( ) incomplete code
  • ( ) no help provided
  • ( ) non-persistent data
  • ( ) non-exhaustive testing
  • ( ) poor efficiency
  • ( ) not portable
  • ( ) no development installation facilities provided
  • ( ) others: please specify
Expected date for public development use (if any):

34. Is there any internal documentation for programmers?

Yes
If so, enumerate the facilities provided
  • ( ) Requirements specification and design decisions available
  • ( ) Interface conventions
  • ( ) Code conventions
  • (X) Full commented code
  • ( ) Examples
  • ( ) others: please specify

API

iStarMLVisualizer-Service





MethodURIDescription
POSTIStarMLVisualizerService?nr=0&ng=0&nb=0&lr=255&lg=255&lb=255Converts the iStarML file sent in the HTTP-body into a SVG. RGB-Colors of (n)odes and (l)abels can be set as optional parameters


iStarMLModel-Service


Before each request URI the server address and /IStarMLModelService/ must be prepended.

MethodURIParametersDesciption
POSTsetting/register/DB Creates a new account for the database, if not already existing and informs a speci fied administrator via e-mail. The optional message sent to the administrator is inside the HTTP body.
GETsetting/register/DB Checks, if a DB account already exists for the current LAS2peer user. Returns true/false if it is the case.
GET Checks, if valid login data is provided for the service
GET{collection}search, searchTypeReturns the contents (subcollections and resources) of a collection as a XML, allows search for models and individual elements using query parameters: search contains the search query, searchType speci es the type of search: model searches the names of resources, a node type as listed in Table 12 searches for resources containing a node of that type and a node label containing the search query.
PUT{collection} Creates a new collection
DELETE{collection} Deletes an existing collection
GET{collection}/{resource} Returns the contents of a resource in formatted iStarML.
PUT{collection}/{resource} Creates a new resource, an already existing resource is not overwritten.
POST{collection}/{resource} Creates a new resource with the given content (provided in the HTTP body). An already existing resource is overwritten.
DELETE{collection}/{resource} Deletes an existing resource
PUT{collection}/{resource}/copy/{targetCollection}/{targetResource} Copies a resource to a speci ed destination. If the target resource already exists, it is overwritten.
PUT{collection}/{resource}/versions/{version}/copy/{targetCollection}/{targetResource} Copies a speci c resource version to a speci ed destination. If the target resource already exists, it is overwritten.
GET{collection}/{resource}/versions Returns all previous versions of a resource (with additional data, as date and user) as a XML.
GET{collection}/{resource}/versions/{version} Returns the iStarML of a speci c resource version. The base version can be retrieved by asking for version 0.
PUT{collection}/{resource}/actor/{nodeID}name, type, commentCreates a new actor node (or modi- es an existing one) in a resource, name, type and comment can be speci ed via query variables.
POST{collection}/{resource}/actorname, type, commentCreates a new actor node in a resource without a speci c id, name, type and comment can be speci ed via query variables. Returns the id of the newly created actor.
DELETE{collection}/{resource}/actor/{nodeID} Deletes an actor in a resource.
PUT{collection}/{resource}/ielement/{nodeID}name, type, commentCreates a new ielement node (or modi es an existing one) in a resource, name, type and comment can be speci ed via query variables.
POST{collection}/{resource}/ielementname, type, commentCreates a new ielement node in a resource without a speci ed id, name, type and comment can be speci ed via query variables. Returns the id of the newly treated ielement.
DELETE{collection}/{resource}/ielement/{nodeID} Deletes an ielementin a resource.
PUT{collection}/{resource}/actor/{nodeID}/actorLink/{targetID}typeCreates a new actorLink (or modi es an existing one) in a resource, the type can be speci ed via a query variable.
DELETE{collection}/{resource}/actor/{nodeID}/actorLink/{targetID} Deletes an actorLink in a resource.
PUT{collection}/{resource}/ielement/{nodeID}/{dependencyType}/{targetID} Creates a new dependency link in a resource, where {dependencyType} can be either dependee or depender.
DELETE{collection}/{resource}/ielement/{nodeID}/{dependencyType}/{targetID} Deletes a dependency link for a resource.


Supported actor types: actor, agent, position, role
Supported ielement types: goal, resource, softgoal, task
Supported actorLink types: covers, instance_of, is_a, is_part_of, occupies, plays


Created by ruppert. Last Modification: Tuesday 13 of May, 2014 01:00:34 CEST by ruppert.