i*-REST
Table of contents
- i*-REST
- General Information
- i* Modelling Suitability
- 1. Does the tool allow SD modelling?
- 2. Does the tool allow SR modelling?
- 3. Does the tool allow working with SD & SR models jointly?
- 4. Does the tool allow the construction of the models graphically?
- 5. Does the tool allow the construction of the models textually?
- 6. Describe how the elements are modelled and their flexibility (i.e., the elements can be moved and reordered).
- 7. Describe how the dependency links are modelled and their flexibility (i.e., dependencies are modelled with straight lines that can not be redirected).
- 8. Does the tool allow automatic organization of the elements?
- 9. Other modelling facilities provided by the tool:
- 10. Does the tool check SD models?
- 11. Does the tool check SR models?
- 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?
- 14. Does the tool allow to group models in projects?
- 15. Does the tool allow working with two or more projects at the same time?
- 16. What are the other functionalities that the tool provides?
- Usability
- Maturity of the Tool
- 22. Rate the maturity of the tool from the user point of view:
- 23. Has the tool been used for any case study?
- 24. Has the tool been tested in large models?
- 25. Has the tool any drawback when working with very large models?
- 26. Which is approximately the maximum size of the model (in terms of actors and dependencies) the tool has been used for?
- Extensibility and Interoperability
- 27. Does the tool allow importing files?
- 28. Does the tool allow exporting files?
- 29. Does the tool allow importing/exporting the data through an XML format?
- 30. Is the architecture of the tool published?
- 31. Does the tool allow the addition of other elements outside the i* framework of the tool?
- 32. New functionalities can be added to the tool by means of:
- 33. Rate the maturity of the tool from for open development:
- 34. Is there any internal documentation for programmers?
- API
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-Servicehttps://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?
Yes2. Does the tool allow SR modelling?
No3. Does the tool allow working with SD & SR models jointly?
No4. Does the tool allow the construction of the models graphically?
No5. Does the tool allow the construction of the models textually?
YesIf 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.
7. Describe how the dependency links are modelled and their flexibility (i.e., dependencies are modelled with straight lines that can not be redirected).
Dependency links are modelled with straight lines and cannot be redirected.
8. Does the tool allow automatic organization of the elements?
YesNo 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?
No12. 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?
YesIts 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?
YesIts 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
- ( ) 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
- ( ) incomplete
- ( ) obsolete
- ( ) not in English
- ( ) writing not polished
- (X) others: please specify
19. Does the tool provides i* learning facilities?
No20. Does the tool provide any examples for the users?
No21. 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
- ( ) incomplete
- ( ) occasional testing
- ( ) non-exhaustive testing
- ( ) non-persistent data
- ( ) poor efficiency
- ( ) not portable
- ( ) others: please specify
23. Has the tool been used for any case study?
No24. 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?
YesIf so, specify import data formats (i.e., XML, text file, pictures of the graphical representation...)
iStarML files
28. Does the tool allow exporting files?
YesIf 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?
YesIf so, link to the DTD for the XML format if available.
iStarML
30. Is the architecture of the tool published?
YesIf so, where?
The tool is open source.
31. Does the tool allow the addition of other elements outside the i* framework of the tool?
No32. 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
- ( ) incomplete code
- ( ) no help provided
- ( ) non-persistent data
- ( ) non-exhaustive testing
- ( ) poor efficiency
- ( ) not portable
- ( ) no development installation facilities provided
- ( ) others: please specify
34. Is there any internal documentation for programmers?
YesIf 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
Method | URI | Description | |
POST | IStarMLVisualizerService?nr=0&ng=0&nb=0&lr=255&lg=255&lb=255 | Converts 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.
Method | URI | Parameters | Desciption |
POST | setting/register/DB | Creates a new account for the database, if not already existing and informs a specified administrator via e-mail. The optional message sent to the administrator is inside the HTTP body. | |
GET | setting/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, searchType | Returns 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 species 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 specied destination. If the target resource already exists, it is overwritten. | |
PUT | {collection}/{resource}/versions/{version}/copy/{targetCollection}/{targetResource} | Copies a specic resource version to a specied 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 specic resource version. The base version can be retrieved by asking for version 0. | |
PUT | {collection}/{resource}/actor/{nodeID} | name, type, comment | Creates a new actor node (or modi-es an existing one) in a resource, name, type and comment can be specied via query variables. |
POST | {collection}/{resource}/actor | name, type, comment | Creates a new actor node in a resource without a specic id, name, type and comment can be specied 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, comment | Creates a new ielement node (or modies an existing one) in a resource, name, type and comment can be specied via query variables. |
POST | {collection}/{resource}/ielement | name, type, comment | Creates a new ielement node in a resource without a specied id, name, type and comment can be specied 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} | type | Creates a new actorLink (or modies an existing one) in a resource, the type can be specied 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