This document includes system requirements, installation instructions, and configuration files documentation for S2A compilation and runtime environments, updated for S2A version 0.5 beta. For more information about S2A, visit the Scenarios in Action website.Last updated: Oct. 10, 2007.
Note: The instructions below refer to the installation of S2A compilation environment. If you are intersted only in the S2A runtime envirnoment (i.e., to execute programs constructed using S2A) check these intructions instead.
S2A requires the following software packages installed:
To edit Modal UML Sequence Diagrams (MUSD) specifications you would also need a UML 2 compliant editor. We use IBM Rational Software Architect 7.0.0 although any UML 2 compliant editor would work.
Note: Programs constructed using S2A do not require the above in order to run. The only external jars required at runtime are AspectJ runtime jar aspectjrt.jar (that comes with AspectJ), and MUSD runtime jar musdrt.jar (that comes with S2A installation).
Note: S2A requires JAVA 1.5 environment (or later)
Note: S2A 0.5 beta was developed and tested on Windows OS platform. We have not tested S2A on other OS platforms.
Note: Installing and using S2A 0.5 beta is permitted for non-commercial research and evaluation usage. Generated source code files include a licensing comment that should not be changed or removed. No guarantee or warranty of any kind is provided with the compiler.
Extract the S2A zip file into a new folder.
Add S2A as an external tool to your Eclipse workspace. The Location attribute should point to the msdc.cmd file. The Working Directory attribute should point to the same directory (the folder where the musdc.jar file is located).
In order to view the example models in IBM RSA, extract the profiles.zip into a new folder c:\msdprofiles.
Required configuration values for the compiler are set in the musdcompiler.properties file, located at the same folder with musdc.jar. A default properties file is included in the S2A installation zip. Below is an example musdcompiler.properties file:
#playout strategy class name strategy=CoordinatorStrategyNaiveImpl #full model path model=D:\\EclipseWorkspaces\\ws2\\MUSDNewsTicker\\RSS Application Model #Profile Reasourses jar resourcesJar= jar:file:/F:/eclipse/plugins/org.eclipse.uml2.uml.resources_2.0.0.v200606191759.jar!/
All properties can be overridden using corresponding command line arguments (e.g., -strategy "CoordinatorStrategyNaiveImpl").
Required configuration values for an MUSD model are specified in the musdmodel.properties file, located at the same folder with the .uml file of the model. Below is an example musdmodel.properties file:
#output folder full path output=D:\\EclipseWorkspaces\\ws2\\MUSDNewsTicker\\newsticker\\aspects\\ #output package name output.package=newsticker.aspects #imports required in the generated aspectj code imports=newsticker.*;java.awt.* ;javax.swing.*; java.awt.event.*; newsticker.rssutils.*; #names of the interactions that should be compiled (or wildcard * for all) interactions=AbstractTickerBehaviour; ShowPopup; Blinking; ChangeScrollSpeed; #if true cleans the target folder before writing clean=true #if true, enables support for object composition (default no support) composition=true
Executing S2A programs requires the use of two external jar files:
aspectjrt.jar and musdrt.jar. You can download these jars from the downloads section on the Scenarios in Action website.
To execute a program constructed using S2A, package it in a .jar file and put the aspectjrt.jar and musdrt.jar jars next to it. Make sure these library jars are listed in the class-path specified in your MANIFEST.MF file. Check out the Scenarios in Action case studies for examples.
Note: Running programs constructed using S2A requires Java 1.5 runtime environment.
Optional scenario-based monitoring features may be specified in a musdmonitor.properties file, optionally located at the same folder as the musdrt.jar file. Below is an example musdmonitor.properties file:
#no monitoring if 0 or null monitorLevel=1 #monitor output file name monitorOutput=monitor.log #names of interactions to monitor or '*' for all interactions=ChangeScrollSpeed; TickAndMove; ShowPopup; #if false delets previous monitor log append=true