Home
Guidelines and Tools Manuals - Q
Contents
1. QoS QoS annotations A tati Usage How the system for behaviours nno d IONS Model is used Repository GAST behaviours GAST for component services Hepository Service Which t SEFF behaviours SEFF Architecture Cane for component Model which platform services Repository X Y Which Which Target containers and ts Environment bree eee Repository instances exist datatypes exist Hardware ae resource Repository types exist References element in other file SAM Model Description file Q ImPrESS Consortium Dissemination level public Page 14 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS Create a Repository Model Create a new object in the alternative Right click on the alternative gt New gt Other Eel E led Examplesystem EF Te ZR repository lt Poe ae Mu si Alternative Hed Le o MK woe che teat EE New alternative Df DTD Delete alternative 1 Ecore Diagram Gompletly delete alternative Lisi Ecore Tools Project Delete Model XT XML Remove from Gontext Gtr alt Shitt Bown sy YML Schema gg Import T Example EN Chr Refresh F5 Run As Debug s Profile As F Validate Team d Compare With Restore From Local History Make alternative default Properties Alt Enter In the following dialog select the Q ImPrESS EMF Models categor
2. PU 66 6 2 20 Tool future extensions and planned activities eeeeesssssssssssseeeeeeen nnne 67 6 3 Text Editors User Manual eeeeeeeeeeeeeeeesesseeeeeeeeeeee ne nn nnnnnnhh hene ese sssssssi i irn n nn nnn eee LL LEL EEE nn rennes 66 6 3 1 Purpose of thetool 68 6 3 2 Tool relationship with the Q ImPrESS workflow essere 68 633 TOE TINS Eno eR 68 6 3 4 Installation prerequisites seesssssseseseseseeeeeeeeeeeeeene nn nnne emen eene n nennen nnn nnne nennen esses sse n nnns 68 6 3 5 Detailed installation procedure sss enne nennen nnn nnn nnn LD LLD ness nennen 68 EF MEE OO Y r ED 68 5 52 77 EOOPGOBDIEUEDUIOBE eerie su pica EE E Meo na tne ne AEF ae ica AR marr SF 68 0 OOED Its SE E Er 68 0 FOOL ACTIV AOI aaa god sae E E GaG O DU WON E DWG CERDD ADNODDAU E 68 6 3 10 Usage instructions and expected outputs cccccccccccccccccceceeeeessseeeeeecceeeeeeeeeeesasaesaseeeeeeeeeees 68 6 3 11 eo p eh HAE RC E i O AI 90 6 3 12 Tool tuture extensions and planned activities i e tirs t wain Ou NOG TRE etn ne vae OUR Yo AGA 91 6 4 Reverse Engineering Tool User Manual SISSy eese enne nennen LLEF LLE FEE F nnn 92 6 4 1 Purpose of the tool ssssssss
3. SISSy Database Settings GAST Output Common Lan Acceleo Application ATL Transformation Eclipse Application Run Extraction E Java Applet 3 Java Application Wwe JET Transformation Input paths C cocome implirsc C cocome implisrc Ju JUnit Plug in Test Launch JPF Check Export 7 Y Launch Model Extraction export model to database Launch SAMM2PCM Iri Launch Simple Model Analyzer El m Launch SISSy SISSyRun cocome impl P MWE Workflow Operational QVT Interpreter Language 69 java cpp OSGi Framework PCM Solver r Java Settings Q PCM Solver Reliability lar Edid Y Q ImPrESS Reverse Engineering Reliability Analysis Libraries src S SimuBench Ju Task Context Plug in Test Libraries bin CAcocome impltlibyhibernatetantlr 2 7 6 jar C cocome implilil Juj Task Context Test Apply 5I55y Parameters System export the text of code comments into database Run Clone Analysis Eg Run Problem Pattern Detection Filter matched 24 of 24 items Now the launch configuration has to be adapted In the SISSy tab check Run Extraction SISSy uses a database to store code extraction results Based on these results the GAST file is created afterwards Check export model to database On the second tab Database Settings a database driver has to be selected SISSy can use a
4. ImPrESS SEVENTH FRAMEWORK PROGRAMME Guidelines and Tools Manuals Project name Q ImPrESS Contract number FP7 215013 Project deliverable Annex of D6 1 Author s Marco Masetti SFT Michal Malohlava Pavel Parizek Jan Kofron Tomas Poch Mauro Luigi Drago Antonio Filieri Ond ej David Lucia Kapova Michael Hauck Work package WP6 Work package leader SFT Planned delivery date Delivery date M25 Last change 18 01 2010 Version number 0 5 Abstract This document provides guidelines on the proper use of the different tools composing the Q ImPrESS platform It addresses the issue of finding the right abstraction level gives initial guidelines for certain application domains industrial telecommunication enterprise and contains manuals for all tools developed in Q ImPrESS Keywords Modeling Abstraction Guidelines Tools Manuals Working Method Q ImPrESS IDE Tool usage Q ImPrESS Consortium Dissemination level public Page 1 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS Revision history 18 01 2010 Added Maintainance prediction tool manual O O ImPrESS Consortium Dissemination level public Page 2 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Table of contents 1 AUT OU TNO eec QR 6 Ld OD eau AO E ed cs os esc Y NOU E PESO 6 1 2 Advantages of Q ImPrESS use during system design and software developmen
5. In the LoopCount property tab set the Loop Action reference to the LoopAction element from the SEFF model for which the number of iterations should be specified The actual QoS annotation can be a constant number a distribution a formula or a parametric formula They are created by selecting the LoopCount element select New Child and then Constant Number Distribution Formula or Parametric Formula respectively A constant number is the simplest way of specifying a QoS annotation It contains an attribute Value which allows for specifying a double value of the number This constant number can be used for example as a fixed value a mean or median value It 1s not decided yet how to specify formulas or distribution functions Parametric formulas can be specified by using the Specification attribute It contains a string which can hold a PCM StochasticExpression For more information about Stochastic Expressions have a look at the webinar at http fast fzi de index php pcm variables which shows the use of Stochastic Expressions in the PCM To add a QoS annotation for specifying the branch probability of a BranchAction branch right click on the QoS Annotations root element select New Child and BranchProbability Currently two kinds of BranchProbability QoS annotations exist one for SEFF BranchActions and one for GAST branch statements Unfortunately both currently have the same name BranchProbab
6. Metamodel has no classes inheriting this abstract class Composite Component CompositeCoemponent ID NAME doc gt DOCUMENTATION r reguired ri Lo interfacePort ELEM EE provided L L L interfacePort L operBehav m operationBehaviour aubComponenta gt subcomponentInstance ME I connector I connector m i r I I 1 O O ImPrESS Consortium Dissemination level public Page 75 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt Connector Connector ID dac DOCUMENTATION 7 endpoints e endPoint r EM DM 1 Container Container IB H NAME H I doc 2 DOCUMENTATION m z descr DESCRIPTION F I storageRes storageResource H z memRes H memoryHesource r exechRe3 H c executionHesource h p 1 Q ImPrESS Consortium Dissemination level public Page 76 139 D6 1 Annex Guidelines and Tools Manuals Version 0 5 Last change 18 01 2010 Endpoint subcomponentEndpoint componentEndPoi
7. i Main Alternative a22de5c Ly SES Name New configuration 1 samm hardware pepe cype riter text i samm qosannotation QImPrESS Alternative SimuCom samm repository m Acceleo Application Z T samm seff ATL Transformation rz samm servicearchitecture e Eclipse Application Maximum simulation time 150000 Simulated Seconds H E samm targetenvironment E Java Applet Maximum measurements count 10000 samm_usagemodel 3 Java Application s gt JET Transformation Experiment Run Ju JUnit Experiment Name MyRun Ju JUnit Plug in Test Y Launch Model Extraction Data Set Launch SAMM2PCM En SON CE Browse Mew configuration 1 Launch Simple Model Analyzer MM ten coniguatin Z AFTER gn Y El Launch SISSy ll I a D MWE workflow Operational QVT Interpreter osi Framework Q PCM Solver Q PCM Solver Reliability B Q ImPrESS Reverse Engineering Reliability Analysis 5 SimuBench i ju Task Context Plug in Test Juj Task Context Test Description 4 datasource stored in memory Changes are lost when unsafed Memory Datasource 4 datasource stored in memory C Add Remove Open Filter matched 24 of 24 items gt se n 1 items selected Q ImPrESS Consortium Dissemination level public Page 103 139 D6 1 Annex Guidelines and Tools Manuals eym Running the c
8. Node Node M ID NAME doc m 2 DOCUMENTATION m F descr amp DESCRIPTION cont L container processor processor H rz mem c memory mm eg ee I x I storBew storageDevice p p I I hetwrkIntf networkInterface H z 1 Q ImPrESS Consortium Dissemination level public Page 82 139 D6 1 Annex Guidelines and Tools Manuals e IMPreE gt Operation Operation ID NAME A T doc p 2 DOCUMENTATION output REFN STATICSTRUCTURE MESSAGETYPE mr throwsExceptions I operationException r a C a ieee Operation Behaviour seffBehaviourStub gastBehaviourStub Operation Exception h OperationException ID m NAME doc 2 DOCUMENTATION m excenptionMessage H STRING z 1 Parameter Parameter ID NAME doc 2 DOCUMENTATION type amp REFN DATATYPES TYPE Q ImPrESS Consortium Dissemination level public Page 83 139 D6 1 Annex Guidelines and Tools Manuals mm Passive
9. sse nennen eene enne nene rn nnn n nenne eese s essen nnns 58 6 270 Tool con HL OU Offis tieneccsereiovessiecacienacedatansvoustens perdete nn ede yR GG tasetan ww AAA Uyw YNO UN O Mn ww kodeksi Canes 59 O27 TOO LED UL ICS ugeyn UN ga no dy GYD paste sean dens estaba dum WE E UYS fn endete d Capes 59 2 AY AO i E NR ENWYN NF YF NEFYN ERFYN YN YF seta sas ENSURE YF NE AFAN EDN YN 60 6 2 9 Usage instructions and expected outputs uuuui rrr YY YY YLLLLLL LL YL ALLE EEEEEYY FFYN NN nenne sns nenne 60 6 2 10 Opening the editor is CT 61 6 2 11 Working with editor tools for repository elements esses 62 6 2 12 Working with Inner Elements eeeesesessessssesseeeeeee nennen nennen ee nennnnn nnn rrr nnne nennen nnns 63 6 2 13 Working with Data Types eeesseseeeeeeeeeeeeeeeeeeeennnn nnne nnn nn nn nnne LL LLE s nenne n nnn nnn nennen nnns 63 6 2 14 W on In wit Oper auon Bo aVIOE one CORR d uu GR Ux MEME UU Ue aa Up Rd 63 6 2 15 DSI TiS elements scorer td diner ve Dna Ede EDNA NER HEFFER FRON Y FERF RY NWFN 64 6 2 16 Moving cle monis irese ennir orca O YY ob GOG FYR SUM DRM E Va ND A SU ERROR 65 6 2 17 10 EE io S resisto Emma IE cee cs best ee pn pee ond Um EXC Nahe bus deaf ba D veoh suds SU RF ON bon E CES 65 6 2 18 Working with Composite Components ccccecccccccccecceceeeeeesseseeeeeccceeeeeeeeeeauaaasssseseeseeeeeees 65 6 2 19 c o P
10. y Filter matched Afterwards the basic configuration for the SISSy run is complete To run SISSy run the launch configuration Open the console view to get information about the SISSy run Java Eclipse Platform Mel x File Edit Source Refactor Navigate Search Project Net4jExamples Run Visualisations Window Help t le Jg oot oe mid oi m ot y O amp E3 amp Java Resource HU Y I FI El Console 23 SISSyRun cocome impl Launch SISSy Simulation Process a X X ER Bal ee r El 5 v P Database sissy Exporting to SQL Loading DB driver from class org apache derby jdbc EmbeddedDriver Found class org apache derby jdbc EmbeddedDriver Executing of scripts skipped due to derby usage Executing of scripts skipped due to derby usage Sorting model elements Done 0 Model export starts 5 Exporting id 1000 21083 5 Exporting id 2000 21083 amp Exporting id 3000 21083 5 Exporting id 4000 21083 5 Exporting id 5000 21083 5 Exporting id 6000 21083 e cocome impl Launching SISSyRun mpl 38 NN Q ImPrESS Consortium Dissemination level public Page 98 139 D6 1 Annex Guidelines and Tools Manuals ec ImPrESS Once the run completed successfully the GAST output file has been created Perform a refresh on the workspace if the file has been created in a workspace folder or copy the file to the workspace Afterwards the file contents can be displayed
11. Guidelines and Tools Manuals e IMPrESS 4 Specific Guidelines for the Industry domain Disclaimer At the current stage of O ImPrESS M24 it is hard to prescribe specific guidelines for the industrial automation domain because the Q ImPrESS tools for reverse engineering modeling and prediction have only recently been made available M21 24 The tools are still in a maturation stage and contain many issues Therefore the modeling and prediction for the industrial demonstrator cannot be considered finished Deriving generic guidelines for the industrial automation domain when using Q ImPrESS is thus not possible at this stage The following should be considered as a preview on how the guidelines could look like once the tool support has matured This section describes guidelines for applying the O ImPrESS method in the industrial automation domain In the following we discuss different aspects for guiding other companies from the same domain The chosen abstraction level for the industrial demonstrator Reverse Engineering Guidelines Performance Prediction Guidelines Reliability Prediction Guidelines Abstraction Level For the industrial demonstrator we have chosen a high abstraction of a distributed control system DCS The model is described in detail in D7 1 and Figure 2 illustrates a static view of the main component The included components such as Data Access Alarm amp Events and History are typical components in a D
12. ImPrESS Memory Memory ID NAME gt doc DOCUMENTATION Size INI descriptor gt REFN DEPL HARDWARE MEMORYDESCRIPTOR Memory Descriptor h MemoryDescriptor ID i doc DOCUMENTATION M descr I DESCRIPTION bw l c INT c tfsbEreq INT HcOcegSEreg i INI r burstLen INI J Q ImPrESS Consortium Dissemination level public Page 79 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt Memory Resource HemoryResource IB NAME I doc 2 DOCUMENTATION m descr DESCRIPTION z size 9 INT c mem REFN DEPL TARGETENV MEMORY 1 Message Type MessageType ID NAME doc 2 DOCUMENTATION m parameters Parameter r 1 r Network Element NetworkElement ID NAME gt doc DOCUMENTATION nodeConn H REFN DEPL TA
13. PostgresSQL database or the Java integrated Derby database PostgresSQL can only be used if such a database is available on the machine A Derby database can always be used since it comes with the Java JRE However SISSy runs slower when using Derby Q ImPrESS Consortium Dissemination level public Page 96 139 D6 1 Annex Guidelines and Tools Manuals mee When selecting Derby a database name user name and password have to be provided Insert sissy in all three fields Run Configurations x Create manage and run configurations Q m E Li X H m Mame SISSyRun cocome impl type Filter text SIS5y Database Settings gt GAST Output C Common P Acceleo Application ATL Transformation Select Database Driver DERBY Eclipse Application E Java Applet Database Connection Parameters 3 Java Application i gt JET Transformation ee J JUnit Ju JUnit Plug in Test a Launch JPF Check DB Password eee 0000 Y Launch Model Extraction Launch SAmIM2ZPCM m i Derby Specific Parameter Bl Launch Simple Model Analyzer Sisy Launch 5ISSy Derby DE Filesystem Base Path DB Mame sissy DB Llsername sissy El SIS5SyRun cacome impl File System Workspace MWE Workflow a Operational GWT Interpreter i 4 osi Framework o PCM Solver Q PCM Solver Reliability Y G ImPrES5 Reverse Engineering Reliability Analysis SimuBench n ju Task Context Plug in Test
14. This element has a reference to a SEFF behaviour stub that has been specified in the repository file Q ImPrESS Consortium Dissemination level public Page 29 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS Create a ResourceDemandingSEFF by right clicking on the SEFF Repository selecting New Child and Resource Demanding SEFF In the property tab of the ResourceDemandingSEFF element the Seff Behaviour Stub property has to be set Since the stub is defined in a different file 1 e in the examplesystem samm repository file the file has to be loaded as a resource as described in Section 0 Once the file has been loaded a stub can be selected in the property tab Choose a stub for which a behavior should be specified for example the whoisOperation of the GuiComponent SEFF Actions A SEFF consist of several actions which are executed in a row Therefore every action has a reference to its predecessor and its successor action Besides StartAction and StopAction elements exist A StartAction only has to have the successor action reference to be specified the ancestor reference can be empty A StopAction only has to have the ancestor action reference to be specified the successor reference can be empty In the following we create a simple SEFF containing a StartAction which is followed by an InternalAction Afterwards the SEFF contains an ExternalCallAction and finally a StopAction First crea
15. component Q ImPrESS Consortium Dissemination level public Page 24 139 D6 1 Annex Guidelines and Tools Manuals Lii Note that composite components holding other composite components as nested components can be created in the same way The subcomponent instance has to reference a composite component in this case However the example system does not contain composite components that contain other composite components Now all components have been created Finally set the name of the repository Select the repository root element and set its name in the properties view e g examplesystem Repository The example system repository should be complete now To make sure no necessary information is missing e g unset attributes right click on the Repository element and select Validate An OCL validation is performed that checks if all attributes are set correctly All validation errors should be fixed because further Q ImPrESS tools depend on valid model instances examplesystem samm repository i i Resource Set H P platform fresource Examplesystem alternatives cb6 ea90 2415 4460 b75a 91 1 300efe64e examplesystem samm repository 5 Mew Child d AU C Undo Set Chrl 7 Pm Pri Reda Chro 8 Prir enl cy Lo Ay Col ES Copy i Faste E K EM Delete 549 NETTE Control i m d Int per l Run amp s b D Prir i 5 Prir Peay hys aM Me Profile As b H Me va
16. Annex Guidelines and Tools Manuals e IMPrESS 6 6 Reliability Prediction User Manual 6 6 1 Purpose of the tool The Reliability Analysis tool helps engineers while computing reliability information about complex systems It enables engineers to extract from the description of a system the reliability of the global system and of single components for given usage scenarios The current implementation is integrated in the Eclipse framework and basic reliability analyses are supported 6 6 2 Tool relationship with the Q ImPrEss workflow The aim of this Reliability Analysis tool is to predict the quality of a system in terms of reliability About the relationship with the Q ImPrEss workflow depicted in figure of deliverable D6 1 our tool fits in Predict System Quality activity Q ImPrESS Consortium Dissemination level public Page 107 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 6 3 Tool Installation The Reliability Analysis Tool has been integrated in the Q Impress framework as an Eclipse plugin The plugin may be installed by using the standard installation functionalities of Eclipse eAdd the Q Impress Update Site to the list of software sources eSelect the Reliability Analysis plugin from the list of available software e nstall the plugin The installation process will also install all the needed dependencies for the Eclipse Q Impres environment To use the tool also the Prism Mod
17. Applied at Legend Best i Evolution A J Tool supported manual action ABB ERICSSON lt Z oe P Tool supported automatic action Implementation PA mp Bp Ericsson Nikola Tesla Development iterations Figure 26 Integration of consistency checking into the Q ImPrESS method Q ImPrESS Consortium Dissemination level public Page 129 139 D6 1 Annex Guidelines and Tools Manuals Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios 3 2 ESE scenarios eg ImPrESS lt lt iterate gt gt SAMWithResults M Y WHY 4 Model Change Scenario L af Predict System Quality 3 3 T T 3 4 hy rh B alternativeSAMsWithResults altemativeSAMsWithResults LET no viable alternative TradeOff Analysis Deploy System 3 5 3 8 E suited alternative exists selectedSAM CON aecial ya id LI Implement SAM de T Validate Model by Measurements YN 3 6 y CT 3 7 j bdel revision needed Figure 27 Integration of consistency checking into the Q ImPrESS working method 6 8 3 Tool Installation JPFChecker is a part of the Eclipse feature for the Q ImPrESS tool Since it utilizes the functionality of the backbone plug in it can be launched through the Run dialog as well as an any other kind of run analysis The recommended way of installation is using the the update site for the Q ImPrESS Eclipse feature All dependencies of the tool are bund
18. Component Endpoint This is the endpoint that belongs to the outer GuiInterface provided port In the properties view of this endpoint select the outer interface port ClientComposite Provided Guilnterface for the port attribute Q ImPrESS Consortium Dissemination level public Page 23 139 D6 1 Annex Guidelines and Tools Manuals Then right click on the connector select Add Child and Subcomponent Endpoint This is the endpoint that belongs to the inner Guilnterface provided port of the nested GuiComponent In the properties view of this endpoint select the corresponding interface provided port GuiComponent Provided GuiInterface for the port attribute Besides the subcomponent instance has to be specified for the subcomponent endpoint since a component can be deployed twice in the same composite component just specifying the interface port would be ambiguous here Set the Subcomponent attribute to the Subcomponent instance guiComponentInstance eg ImPrESS yN examplesystem samm_repository Xx H i Resource Set El r platFarm resaurceJExampleSystem alternatives ch67 amp a 80 2415 4460 b75a 9113 00eFe648 examplesvsbem samm repository E Repository H a Primitive Component Suilomponent PU s Primitive component DataR etriewer E Primitive Component Dataservice ZJ Primitive Component DatabaseManager Zg Primitive Component Database E Composite Component ClentComposite T Interface Port client Com
19. HWNN 45 OD ROO Ue S11 aseaine tm 45 6 1 10 POON Cy Ad o RY NN FSA EW YNYR FT TENNYN RR AT AF OFYN TYF FARF REY YF EN AN NADYNT 45 6 1 11 Usage instructions and expected outputs ccccccccccccccccccceeeeeesssseseeeecccceseeeeeeaaaasaeasseeeeeeeeeess 45 6 1 12 Creation OF a new alternative issues ud FFAFRIR FFF FYTH FT FFAN RR 46 6 1 13 Selecting default alternative ERTH qoid via cdi FFR FFOR FFEFRYN FFRAE E cda suu Uode bem an iR EUB eSI GE 48 6 1 14 Adding new model into alternative 2 0 0 ccsesesssseeeeccceceeeceeceaaeeeessseeeeececeeeeeeeesauaaaassseeeeeeeeeees 49 6 1 15 Etne IO GE PR TEE 53 6 1 16 Opening model artefact CCILOTS scc5cscvetessnsesrunanevecenceedaccaandendadsanbetgaddeeacidcuedadebandeadodiwimecsaeeeeeteaieal 55 6 2 Repository Editor User MAnud ccccccccccssccccccccctcneeeeseeeeeeeeaneeeeeeeeeeeaaeeneeeeeeeeaaaaeeseeeeeeeaaaaasseseeessaaaaaaeses 56 021 FOOSE olihe 00l sescent FFRI aT YF FF HN FAN 56 6 2 2 Tool relationship with the Q ImPrEss workflow sess 56 Q ImPrESS Consortium Dissemination level public Page 3 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS ss MEE vUN n ricorrere M Y 58 6 2 4 Installation prerequisites sessssssesesseeseeeeeeeeeeeeeeeen nn nnne nennen enne nnnnn n rrr nnn nennen enses sss n nnne 58 6 2 5 Detailed installation procedure
20. Manuals Preparation Page The first page which is presented after opening the KAMP file is the Preparation Page On the Preparation Page you can specify Architecture Alternatives and Change Requests In the left section you can load edit and remove architecture alternatives In the right section you can add edit and remove change request descriptions For demonstration purposes we assume the following preparations Preparation Architecture Alternatives Change Reguest Description Name Description Name Description AAI Basic Example CR DBS Change of Database Schema 0a Add Check Yvorkorganisation Annotation Go to Loading of Architecture Alternatives After pressing Load Button in the left section you can specify a new Architecture Alternative for maintainability analysis For this you can select an alternative from a drop down menu from the backbone Please also provide a name and a description Choose Architectural Alternatives to load Select architecture model exanpleServicearchitectureModel hal Mame AA1 Description Basic Example Specification of Change Requests Change requests specification are short description of changes that occur in the system The objective is to estimate the effort necessary for implementing change requests in architecture alternatives and if there are more than on alternatives to find out the alternative with the lowest implementation efforts You
21. O7 alee es oe TS Project Explorer I Package Explorer x a ERI SEU fr examplesystem samm repository XN EE Ei Example5ystem L5 Resource Set Ere amnes yN platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64e examplesystem samm_repository Fl ch67ea90 2415 4460 b75a 911300efe64e 8 yN examplesystem samm repository Open the file by clicking on it or right click Open With Staticstructure Model Editor In the following we create the Repository contents DataTypes First data types have to be created The example system contains interfaces with an operation that takes the user id integer as parameter and returns user data string Both parameter and return value data types have to be created We create the user id datatype by right clicking on the repository root element selecting New Child and selecting Primitive Data Type Q ImPrESS Consortium Dissemination level public Page 18 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS Ll examplesystem samn repository 2 4 I Resource Set El yN platForm JresourceJExampleSvstem alternatives cb67ea90 2415 4460 b75a 311300eFe64e examples Mew Child d Composite Component a Primitive Component Interface Collection Data Type cut a Complex Data Type Copy Paste lt unda Delete Ctrlt 2 Redo Eert 2 Primitive Data Type a Message Type Delete Validate Gontral Open Run As b Deb
22. SinkEventPort 3 CompositeComponent M amp Ur Outline 2 E Task List p BED X PrimitiveComponent V ms NA ecu Se SEP sg Mos E NA Inner Elements 4o o 59 v _ m a t SSS aS mm s Operation E i i Tasks Console Properties 53 m E eE Dn examplesystem samm repository diagram SAMM Example Instance Property Value 5 Resource enn WTO derived false editable true last modified 29 Oktober 2009 16 21 54 linked false We id examplesystem samm_repository_diagram SAMM Example Instance Figure 17 Editor showing the repository example diagram 6 2 9 Usage instructions and expected outputs The current section will explain how a user is expected to work with the tool It 1s assumed that this user already knows how to use a graphical editor 1 e knows how to select elements drag and drop elements or icons and the like It is assumed out of scope for the given document to explain such basic knowledge Y Ll SAMM Example Instance yN examplesystem samm_hardware y examplesystem samm_gosannotation yN examplesystem samm repository v d examplesystem samm repository diagram L4 re examplesystem Repository gt examplesystem samm seff y examplesystem samm servicearchitecturemodel id examplesystem samm servicearchitecturemodel dia
23. The PCM features are now being installed After a restart of the Eclipse IDE the PCM tool can be used Q ImPrESS Consortium Dissemination level public Page 101 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 5 6 Tool Usage 6 5 7 Tool configuration The PCM simulation might need a lot RAM Therefore make sure the O ImPrESS Eclipse instance is started with useful memory parameters In the eclipse ini in the root directory of the Q ImPrESS Eclipse installation add the following lines vmargs Xmesolzm XX PermSize 256M XX MaxPermSize 512M 6 5 8 Tool prerequisites A PCM performance analysis needs a valid PCM input model for input This model can be created automatically from a Q ImPrESS SAM model Therefore a Q ImPrESS alternative has to be created which holds the SAM model files 6 5 9 Tool activation To use the PCM tool just start the Eclipse instance holding the installed PCM and Q ImPrESS plugins 6 5 10 Usage instructions and expected outputs In the following we assume that a O ImPrESS SAM model is already available This SAM model has to be stored in a Q ImPrESS alternative in the IDE workspace Click Run gt Run as to create a run configuration for the SAM to PCM transformation and the PCM simulation _ On the left side view right click on Launch SAMM2PCM and click New A new run configuration 1s being created and can now be specified On the fir
24. Tools Manuals e ImPrESS Workplan Editing The workplan is shown in the workplan editor which is a tree table Each line represents an activity In the first column you see the tree structure and the symbol of the respective architecture element In the second column the type of the architecture element 1s shown The third column contains the name of the architecture element Finally in column four the basic activity 1s printed The tree structure depends on the selected relation mode in the top right corner Containment Relation Mode Containment Relation means that the tree structure represents the activity refinements on containment abstraction levels In this mode component activities contain interface port activities and these contain operation activities In the example below change to component serverComposite contains interface port change to Reguired DatabaselInterface etc Workplan Editor Show Activities in Containment Relation Follow Up Relation Architecture Element Type Architecture Element Name Basic Activity Composite Activity Complete Workplan Composite Activity Change Database Followups zs Component serverComposite CHANGE gk Interface Port seiviceComposite Required Databaselnterface CHANGE Operation getUserForUserld Database CHANGE zu Component databasePC CHANGE z Interface Port databasePC Provided Databaselnterface CHANGE Operation getUserForUserld Database CHANGE o Interface D
25. UNS aui Gyw Oi dwc RC nA OF YG RYG AD SOON 101 Goo Tool Usa PE 102 Dr TTO UU Oa E E E NOU EE AFON 102 05 TOLD e S RESET 102 uu a a T E E Um E E E E E E UF SR 102 6 5 10 Usage instructions and expected outputs sssssssssssseeeeeeressssssssssseseeterereesssssssssseseerereresssssss 102 6 5 11 c m 105 Q ImPrESS Consortium Dissemination level public Page 4 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS 6 5 12 Tool future extensions and planned activities eeeeeeessssssssssseeeeeeee nemen 106 6 6 Keliability Prediction User Manual sw sets tsegexsshneneseYuxe deese eua E e Nas ev qub S deve YF YO FWG DYNFA kar eae Un 107 6 6 1 Purpose of the tool NR E 107 6 6 2 Tool relationship with the Q ImPrEss workflow sees 107 sone MEM oro Rn inilio RET 108 6 6 4 Installation prerequisites vsiszaciacaacensnecansswowusdscanesnnsionewaadsicaniaaste gnawed veswoanesencesabameneanaagnnnsatananoaseseamast 108 OUS IW EE 90 WYRY E A FT NW EF EF E A 109 GOO o r ua WYFEFFYYN FFF DF EEEE FO FARF FN PE FFAR 109 00O MOGI RC i 22 27 39 0 69 00 0 00 7550080508000 FFY FFY FAD YFET FYRR EF YRR YF EN FF FR TAF AFF FYRFYFYR 109 O5 MM en YF FFEFRYN EF YRFEFFFETR YRR HR AF FRO EEF FN FN YRR REF AR FREE PH FFEIT 109 6 6 9 Usage instructions and expected outputs uuuuuui rrr YY YLLLLLLLL LLA L
26. cb amp zea930 2415 4460 b75a 3113 eFe64e examplesystem samm reposikory 8 Repository oe AG LLA MH RREFHHEHWH B 0 EE a Penes a Operation whoisOperation ien D Primitive Data Type userData Pu aU Primitive Data Type userID B en Message Type messageInput BAM Message Type messagecurlput Selection Parent List Tree Table Tree with Columns Tasks Properties Z3 l Property value D acumentatian l Id t PezzAcMypEd zuz esrmagg Interface Type amp 3 Interface GuiInterface Is Required ue False Marne amp Guicompanent Provided GuilnterFace In the example system the Guilnterface also requires an interface Since this interface contains the same operation the Guilnterface element is being reused To require the interface we add a Required Interface Port to the component This is done in a similar way as described above Right click on the component then select New Child and Required Interface Port Behaviours can be specified for components or component operations The example system contains SEFF behaviours for the primitive component operations The SEFF behaviour is specified in a SEFF Behaviour model see below However a behaviour stub has to be created in the component element which is then be referenced by the actul behaviour To add a SEFF behaviour stub to a component right click on the component and select New Child and Seff Behaviour Stub Set the operation in t
27. feature can be found at http q impress ow2 org updateSite The installation requires Eclipse version 3 5 SRI Galileo or higher with installed EMF plug ins The recommended version of Eclipse is Eclipse Modeling Tools which can be found at http www eclipse org downloads 6 1 5 Installation prerequisites There are no special prerequisites for the Backbone 6 1 6 Detailed installation procedure Backbone can be installed via Q ImPrESS update site http q impress ow2 org updateSite The installation follows Eclipse installation process instruction 1 From menu Help select item Install New Software 2 To the edit box Work with type the location of Q ImPrESS update site http g impress ow2 org updateSite 3 In the list of proposed Q ImPrESS features select feature called O ImPrESS Backbone Feature see Figure 3 a Note If no feature is shown make sure that option Group items by category is unchecked 4 Click on finish and follows installation instruction LU TH Ami xi Available Software Check the items that you wish to install D u work with bp fq inp ej Add Find more software by working with the Available Software Sites preferences L IV Show only the latest versions of available software IV Hide items that are already installed I Group items by category What is already installed IV Contact all update sites during install to find required s
28. for each component If the model is coherent the software engineer based on the required change scenario has to judge if the model abstraction level is enough or some components should be modelled at a finer resolution This depends on the system and the change scenario examined If the abstraction level is too high the user has to start again at phase 2 2 2 either modelling black box components as composite components or cycling more on the reverse engineering phase 2 2 9 System quality prediction A system model reflecting a change scenario is performed and results are collected back in the model Currently prediction analysis is composed by Performance prediction Reliability Prediction Maintainability prediction For a prediction analysis to take place the alternative model SAM has to be converted in the specific prediction tool format PCM for performance prediction KLAPER PRISM for the reliability analysis The time consumption of this phase depends on the complexity of the models 2 2 10 Results trade off analysis Alternatives can then be selected for the trade off analysis in order to select the most viable solution The Q ImPrESS ide provides a tool that performs Pareto analysis and derives the best alternative that meets change quality requirements If no alternatives meet quality requirements the system engineer has to identify new change scenarios and restart modeling them 2 2 11 Implement viable alternative and valida
29. in case of the HW resources are changed For each alternative model the corresponding deployment scheme has to be modelled 2 2 6 Model system usage The workload intensity caused by the users of the service oriented system can be potentially extracted during the runtime monitoring process anyhow the need for a manual update of this model is foreseen and therefore included in the workflow Moreover modelling alternatives for different usage schemes system quality attributes at different system usage settings can be investigated Q ImPrESS Consortium Dissemination level public Page 10 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS 2 2 7 Add quality annotations The software engineer has to provide quality annotations for the modelled components in order to predict the impact of a change requests on the selected components Quality annotations can be derived in different ways depending on their nature Regarding performance quality annotation they can be expressed defining a formula that relates the performance of a component or a part of it with other parameters the input throughput the quantity of RAM or the number of cpus used To derive it code and run the code has to be instrumented and executed against a reference scenario The Q ImPrESS tool set provides basic instrumentation suites but there are several more sophisticated tools available to perform fine resolution performance measurements The software en
30. level node in the alternative repository Further the user has to specify an alternative name Q ImPrESS Consortium Dissemination level public Page 47 139 D6 1 Annex Guidelines and Tools Manuals iok Create new alternative ec ImPreSS Select parent Far new alternative and its name H D ie demo E L s gt Alternatives repository lt ce scenario H E scenario B H E test ipfcheck Parent alternative Mame scenario 1 Cancel Figure 7 New alternative wizard 6 1 13 Selecting default alternative The action Make alternative default is shown in the pop up menu for each non default alternative see Figure 8 If the user selects the action the selected alternative becomes default and the Project view 1s updated Q ImPrESS Consortium Dissemination level public Page 48 139 D6 1 Annex Guidelines and Tools Manuals eg ImPreSS El za demo E i gt Alternatives repository lt a Ge scenario 942aa60f 42b8 4384 9912 185fb63d71ff 1 Jr d cx New alternative o scenar saa Sol s J4 Delete alternative Sal D Complethy delete alternative TT g A Pelete Model D Es Remove krom Gonbext Gbrl 4E Shitt Down sa sa SPC JRE 5y Refresh F5 test m cenning E E Br pg Import pg Export mu M g I Validate Team d Compare With Restore From Local History oo Make alternative default Alt Enter P
31. model The file name has to end with the edifice extension Click the finish button The wizard creates file having the entered file name and opens the SAMM model editor blank window Modifying existing SAMM models In the package explorer right click the SAMM model you want to modify and select the Open with xtext editor item The eclipse opens a text editor containing definitions of SAMM model elements of the selected SAMM model The following two pictures show the use case The first picture shows the package explorer containing the list of models and the second picture shows the editor containing definitions of SAMM model elements O O ImPrESS Consortium Dissemination level public Page 69 139 D6 1 Annex Guidelines and Tools Manuals Java test meeting generated clientComposite 284576 he File Edit Navigate Search Project Run e ImPrESS a 8 amp O a B amp G 5 I Package Explorer id Hierarchy fe Project Explorer ER n amp t P Estest v lei test meeting v s gt Alternatives repository lt v e main scenario 65821f03 b3a6 4720 9ea5 1ab3fa828d7a v amp scenari v11 bfdfc503 db51 4180 895c 20d39alfe9ba 6b scenario v21 29b52e2f 5f95 49ed bc3b 63d733a7c v eemain scenario 65821f03 b3a6 4720 9ea5 1ab3fa828d7a v examplesystem repository staticstructure v 8 Repository examplesystem Repository C Composite Component clientComposite P Con
32. public Page 72 139 D6 1 Annex Guidelines and Tools Manuals Cache kind cacheKind lvl 4 c INT size 4 L INT assoc i INI cacheLineSize H INI BccLatency INT cores m REFN DEPL HARDWARE PROCESSORCORE p J Cache Kind nn i a Note e OO instruction e data e unified Collection Data Type CollectionDataType ID NAME doc 2 DOCUMENTATION m z innertype REFN DATATYPES TYPE Q ImPrESS Consortium Dissemination level public Page 73 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS Complex Data Type ComplexDataType ID H NAME doc 2 DOCUMENTATION 1 Component Endpoint h ComponentEndPoint ID doc m i DOCUMENTATION port REFN STATICSIRUCIURE PORT Q ImPrESS Consortium Dissemination level public Page 74 139 D6 1 Annex Guidelines and Tools Manuals Version 0 5 Last change 18 01 2010 Component Type primitiveComponent compositeComponent Component Type Behaviour ComponentIypeBehaviour ID
33. the telecommunications domain The section describes the following relevant aspects of using Q ImPrESS in the telecommunications domain e The abstraction level for the telecommunications demonstrator e Black box legacy systems modelling guidelines e Performance prediction guidelines e Reliability prediction guidelines Abstraction Level Initial models of the telecommunications demonstrator are constructed as high abstraction or coarse grain level models The models are described in detail in D7 1 Here we mention one special setup of the demonstrator based on an evolution scenario described in D7 1 that was used for initial assessment if the chosen abstraction level has the potential to be the proper abstraction level The demonstrator setup is shown in Figure 2 as shown in Section 4 4 2 of D7 1 Here it 1s 1mportant to note that the experimental setup doesn t fully reflect the mentioned evolution scenario because at the time of experimentation some parts of the scenario were missing or were incomplete e g redundant elements of the scenario control console incomplete implementation of sensors incomplete use of OpenSAF etc The experimental setup like the planned demonstrator represents an extension of the basic telecommunications service of call control with a load balanced DIAMETER extension service The DIAMETER protocol is the standardized approach to AAA authentication authorization and auditing functionality The model
34. 3 Property Value Documentation Id IZ AlsazS5REd6M ap3ccE aGYQ Mame t quicemponentInstance Realized By amp Primitive Component GuiComponent Repeat the steps described above to specify a subcomponent instance for the DataRetriever component Finally the nested subcomponent instances have to be connected with the outer interfaces of the parent composite component The ClientComposite component has a Guilnterface provided port Calls that occur on this port have to be delegated to the Guilnterface provided port of the nested GuiComponent Calls on the GuiInterface required port of the GuiComponent have to be directed to the other nested primitive component ie the Guilnterface provided port of the DataRetriever component Finally calls on the GuiInterface required port of the DataRetriever Component have to be delegated back to the Guilnterface required port of the outer ClientComposite component All three kinds of interface connectors are specified by the Connector element First we create the delegation connector that connects the outer Guilnterface provided port of the ClientComposite with the inner GuiInterface provided port of the GuiComponent Right click on the ClientComposite component and select Add Child then Connector A new Conector element is being created For this connector two endpoints have to be specified that reference the both interface port Right click on the connector select Add Child and
35. 5966 SSMB classes 96 methods 1295 free 1161 search finished Task Composite Job Execution completed in 0 463122646 seconds Cleaning up Workflow engine completed task Last change 18 01 2010 gt gt queryCustomers gt gt queryCustomers gt gt getCustomerCategories gt gt queryCustomers 22 10 09 14 42 Figure 33 Output of the JPFChecker tool when no inconsistency was found Q ImPrESS Consortium Dissemination level public Page 137 139 D6 1 Annex Guidelines and Tools Manuals Java test jpf src gen CRMManager main java Eclipse e ImPrESS File Edit Source Refactor Navigate Search Project Run Window Help Ira 8S O G JB G os w 4e E i F Gi Oe Ej amp y Java I Packag Hierarch Project 3 X O PRESS O B TaskList 8 N ELI b GNE z amp c9 Y public void runEnvironemnt pa J o try E H test Y te 123 test jpf visitParsedRepetition Li x He i ES E Alternatives repository CRMManager getCountries CRMManager getCustomerTypes CRMManager getCus ay me while Verify getBoolean Find oo scenario 1 5c0295a3 b30f 4d2d 8493 H i c 7 E visitParsedhlternative Find gt All
36. Annex Guidelines and Tools Manuals e IMPreE gt Repository Repository ID NAME Seff Behaviour Stub R SeffBehaviourStub ID I 7 Storage Device Q ImPrESS Consortium Dissemination level public Page 86 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt StoragelDevice ID NAME I doc 2 DOCUMENTATION m z deacriptor gt REFN DEPL HARDWARE STORAGEDEVICEDESCRIPTOR ee ee ee ee _ ee Storage Device Descriptor StorageDeviceDescriptor ID iI doc 4 DOCUMENTATION M descr DESCRIPTION wrSpeed L INT rdSpeed gt INT gt regLatency p h FLOAT cacheSize INI 1 Q ImPrESS Consortium Dissemination level public Page 87 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt Storage Resource StorageResource ID NAME m doc 2 DOCUMENTATION z descr DESCRIPTION z storageDev REFN DEPL TARGETENV STORAGEDEVICE p Size L INI i 1 Subcomponent Endpoint Subcompone
37. CS Thus similar components should be available for the systems of other companies from the industrial automation domain We argue that this is a representative model of a DCS because the included components are described in industry standards such as OPC OLE for Process Control cf OPC DA A amp E HDA Whether the chosen abstraction level 1s sufficient for meaningful quality attribute predictions is unclear at this stage The model will be refined in M24 M36 of O ImPrESS 1f the achieved predictions accuracy is insufficient Conclusions about the suitability of the abstraction level for performance and reliability predictions can only be drawn once the tool support has matured Reverse Engineering The reverse engineering process requires source code which is processable by the SiSSy tool for GAST extraction Due to the widespread use of C in the industrial automation domains with many proprietary extensions and code conventions it can be difficult to prepare the source code accordingly In its current condition the SiSSy tool is not robust against certain non standard C features and is being adopted accordingly However it might be necessary to write system specific code conversion tools to enable the Q ImPrESS reverse engineering Performance Prediction The Q ImPrESS performance prediction process requires performance measurements to derive the necessary service specific resource demand annotations While many companies from the industr
38. FO search maxDepth 2 constraints 0 H spring 2 5 5 jar Worker 4 INFO choice generators thread 1 data 2 H E lib Worker 4 INFO heap gc 4 new 574 free 210 H E protocols Worker 4 INFO instructions 6004 H E src gen Worker 4 INFO max memory 60MB Worker 4 INFO loaded code classes 96 methods 1295 Worker 4 J INFO sssssssssssssssr search finished 22 10 09 14 43 Worker 4 INFO Task Composite Job Execution completed in 0 436168591 seconds Worker 4 INFO Cleaning up Worker 4 INFO Workflow engine completed task YT TEA HUFEN n Writable Smart Insert 29 42 m Start eng E Total Commander 6 55 Java test jpf src ge 9 Documenti Microsoft untitled Paint enf H 14 43 Figure 34 Output of the JPFChecker tool when an inconsistency between the service s Java implementation and its behaviour model in TBP was detected 6 8 10 Caveats The most common reason for the JPFChecker tool s failure is when it is applied to a service whose implementation in Java uses libraries containing such native calls that are not yet supported by Java PathFinder This is in particular the case of Java libraries for I O including logging via log4j networking and database access e g JDBC There are two possible workarounds removal of the library calls from the code for the purpose of consistency checking or developing so called native peer classes for Java PathF
39. FZEd67ccVrU Lv g clientComposite Provided GuiInterface det interfaceType GuiInterface I kh operBehav compTypeBehav sink source subComponents SubcomponentInstance 9843623 guiComponentInstance doc guiComponentInstance Documentation realizedBy guiComponentPC SubcomponentInstance 832356 dataRetrieverSI doc dataRetrieverSI Documentation realizedBy dataRetrieverPC Ke EE i2 Problems Javadoc Declaration El Properties 23 l items selected Documentation H clientComposite Documentation Id amp 284576 Name I clientComposite Figure 24 Text editor for composite component Q ImPrESS Consortium Dissemination level public Page 71 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS SAMM model elements modification Each element is defined according to its specific grammar The following list describes grammars of particular elements and additionally gives some explanatory information about them The next figure explains how to understand the grammars nonterminal nonterminal TERMINAL TERMINAL A A B B a H A TEN c A 2 t A i A Figure 25 Grammar rules visualization The grammars have several common terminal symbols ID DOCUMENTATION DESCRIPTION which represent a string value Q ImPrESS Consortium Dissemination level
40. IAMETER Servers active and redundant 5 i i mu o Sensors 1 1 DIAM 3 1 1 Open amp 3 i Actuators server SAF yd E J L j y o S i 89 i Load balancer redundant M i uc Load balancer active 1 Sensors 1 1 DIAM 5 1 1 Open amp a il 1 1 Actuators relay SAF B i Pes Ln y ki Control console j Control 5 console 7 a f DIAMETER clients active and redundant W i L i Sensors 1 1 DIAM 3 1 1 Open amp 3 i Actuators client SAF WM Sl E il S il 2 iy zm dl SN el d a4 amp a il Sensors 1 1 p 2 1 1 Open amp J i Actuators SAF ms i X M N y f bu Sensors geb meinen d T mn WEFO sl e Sensors Actuators Actuators r 4 14 Traffic SIP sp 8j Diam 3 1 1 Mi cp generator CP CP CP CP J aU RHU mr po O Access network call control node Core network call control node l A Basic service A e 8 8 I 0 8 EE 8 I EE EE EE EE EG 8 8 8 U 8 8 I ee u Figure 1 Experimental demonstrator setup used a subset of pictured deployment diagram The experimental setup was used for conducting measurements that gathered i
41. Java Eclipse Wi Document1 Microsoft E WY 14 36 Figure 29 Opening the Run Configurations dialog Q ImPrESS Consortium Dissemination level public Page 133 139 D6 1 Annex Guidelines and Tools Manuals Create manage and run configurations Run Configurations la 2S te test ine fRertoe 7 IS test jpf El g gt Alter Acceleo Application i ida ps ATL Transformation iod Eclipse Application HBA JRE Syst Java Applet H hibernat Java Application od jpfchec JET Transformation EET vip E i persister E go scenario ER sam i Bd Launch SAMM2PCM i Launch Simple Model Analyzer i New configuration aunch SISSy E SISSyRun test MWE Workflow Operational QVT Interpreter osi Framework Q ImPrESS Reverse Engineering Ju Task Context Plug in Test Jui Task Context Test it Filter matched 22 of 22 items de itemis gimpress showcase pricing_si EB de itemis qimpress showcase pricing si de itemis qimpress showcase pricing sii de itemis qimpress showcase pricing sii de itemis qimpress showcase pricing sii de itemis gimpress showcase pricing_si 09 spring 2 5 5 jar ae lib ae protocols HI src gen Figure 30 Selecting the Launch JPF Check run configuration Q ImPrESS Consortium Dissemination level public Page 134 139 D6 1 Annex Guidelines and Tools Manuals Check CRMManager com
42. Java type int long double String or Object All these methods except for putObjectSet have four arguments name of the service name of an interface name of a method and a set of values of a particular type determined by the put method name The putObjectSet method has five arguments the first argument is the name of the type and the other four arguments are the same as for the other put methods When the interface name supplied to the put method identifies a provided interface the given set of values is used for all method parameters of the supplied type When the supplied interface name identifies a required interface then the set of values is used for return values While it is recommended to specify parameter and return values for each method separately it is possible to define the parameter values of a specific type for all methods of all interfaces in a single call to a put method by providing empty interface name and method name O O ImPrESS Consortium Dissemination level public Page 131 139 D6 1 Annex Guidelines and Tools Manuals package de itemis qimpress showcase crm simulator public class TestCRMManager extends org ow2 dsrg fm tbpjava envgen Env ValueSets public TestCRMManager super putObjectSet de itemis qimpress showcase crm simulator be filter CustomerFilter de itemis qimpress showcase crm simulator be service CRMManager de itemis qimpress showcase crm simulator be serv
43. Jr Task Context Test Apply Revert Filter matched 24 of 24 items Finally the GAST output file has to be specified On the third tab GAST output select Write GAST outputfile and provide a file location If the file does not exist yet you can click File system and specify a file name in the file system In our example we specify a file gast output gast in the root directory of the CoCoMe implementation Q ImPrESS Consortium Dissemination level public Page 97 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS Run Configurations x Create manage and run configurations Q 5 amp gsx is5i type Filter text Mame SISSyRun cocome impl SISSy Database Settings GAST Parameters V Write GAST outputfile GAST File output p eof Acceleo Application be ATL Transformation Le Eclipse Application be a Java Applet 7 Java Application M Wwe JET Transformation Ju JUnit File System Workspace ae i JUnit Select a File FP i M Launc Suchen in E cocome impl o P L jw r gt Y Launc Zuletzt derbydb verwendete D lib Desktop src classpath cvsignore mt project Eigene Dateien E activemq log 2 Readme txt activemq data bin Ju Task wr Ea J vy Task Arbeitsplatz Revert K a Wen Dateiname gast_output gasl i Close bung Dateityp iu X Abbrechen
44. LE E YY nene n nennen nennen nnns 110 6 6 10 Tool future extensions and planned activities 9 uuuuu iY YY YY YY YYLLLLL LLE YA LEE EY YY YY YY Fon 111 0 7 SAM Maintainability Prediction User Manual oui RYG ett uv NOS ANDY YAR CON EU ex e HON FA G BN GO 112 Goel P rpose of the LOC MPH nn ere AEE RE SESENTA EENE 112 6 7 2 Tool relationship with the Q ImPrESS workflow sees 112 RS MEM ers SUNG Oars ascot a E A A AONA 113 6 7 4 Installation prerequisites sscsezssiacoadassrecanncvonsddanspbenesiannnstacsimassecsaasayeeersanedenewsatiane seasasqsnnsdisanneapesenies 113 Ca POT a EH 114 OS IH OY NU oce ere E EY E E R A 129 OSL PHEDO COL IO OG esen EEEE EEO 129 6 8 2 Tool relationship with the Q ImPrESS workflow sese 129 ims Mte Mucius FFF 130 6 5 4 Installation prerequisites vanoswevecconscaceasrocveccssinceuewessesinedtaccanenesacvencduontactatectneddnscenceyaasnestvactnedsiserinesd 130 Ooa FOOD 131 6 8 6 Tool COMM aD CULO FFF YN RR RR FFERI YF OFN FFEFRYN DYT FYRDER FNAN 131 6 5 7 Tool a SN FY HYR FAE FF EYN EF NEF ENAT NF NT DC ER WNEUD FN DF 131 Gee OO CHOT aan GG OO E S E A E EAA 132 6 8 9 Usage instructions and expected outputs sssssssseesssssssssssseseeeeseee enne nn nennen eene nsn nennen 132 6 8 10 dolo 138 6 5 11 Tool future extensions and planned
45. P Activat 6b scenario 2 7f63d012 6f00 4d9e be1a4 E C eda iment masta E mA JRE System Library JavaSE 1 6 CRMManager getCountries CRMManager getCustomerTypes CRMManager cget x Uncategorized nm hibernate annotations 3 2 0 GA jar int alternativeChoicel Verify random 4 08 jpfchecker tool jar Mm log4j 1 2 15 jar if alternativeChoicel 0 H es persistence jar visitParsed ccept CRMManager getCountries go scenario 1 5c0295a3 b30f 4d2d 8493 354 try t DZ Outline N a a g samm repository E comp dgetCountries RD ee rh m J 1 amp w e Repository Showcase repository 2 i dk A A T a nsi B o VEA catc e itemis gimpress showcase crm simulator be exceptions ice Jitemis gi Interface de itemis aimpress shi F a E m m de Mme Hielo o Interface de Keris cinpeess cR ex printStackTrace t import declarations i Interface de itemis qimpress shd ER Mr PERNE g 9 i cae ied i i ETE x d an tS AE AUU Y A Y Uu n envValues Envvalue Interface de itemis gimpress shc JPFChecker result DJ xj Ns etn CRMManagadi Interface de itemis gimpress shc i c An A n Interface de itemis g mpress shc TERIS re Genwi naar i ont ze JPFChecker Found counter example runEnvironemnt vc o9 Interface de itemis gimpress shc o i mein Strind vold Q Interface de itemis gimpress shd f Reason EE ot Sita a Q Interface de itemis gimpress shc 4 JPFCheck Fou
46. RGETENV NETWORKINIERFACE pr 7 i Q ImPrESS Consortium Dissemination level public Page 80 139 D6 1 Annex Guidelines and Tools Manuals e IMPreE gt Network Element Descriptor NetworkElementDescriptor ID I doc L DOCUMENTATION descr DESCRIPTION L z aggrBW INT Efwdlatency FLOAT z Network Interface NetworkInterface ID t NAME doc DOCUMENTATION bw c ts c INT 3 deacriptor REFN DEPL HARDWARE NETWORKINTERFACEDESCRIPTOR conn gt REFN DEPL TARGETENV NETWORKELEMENT Network Interface Descriptor HetworkInterfaceDescriptor ID doc p 2 DOCUMENTATION descr DESCRIPTION linkLatency FLOAT zz link5peed INT 1 Q ImPrESS Consortium Dissemination level public Page 81 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt Network Resource NetworkResource ID m NAME doc DOCUMENTATION p hw h Tat INI netwrkIntf REFN DEPL TARGETENV NETWORKINTERFACE
47. Resource PassiveResource r Primitive Component PrimitiveComponent ID H NAME doc 2 DOCUMENTATION F required interfacePort 1 Primitive Data Type FrimitiveDataType r ID NAME doc 2 DOCUMENTATION type 2 xSDPrimitiveDatatype 1 Processor Q ImPrESS Consortium Dissemination level public Page 84 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt Processor ID NAME y doc p DOCUMENTATION p deacriptor REFN DEPL HARDWARE PROCESSORDESCRIPTOR clkFreq L INT Processor Core ProcesasorCore coreld INT caches re cache m ts descriptor REFN DEPL HARDWARE PROCESSORDESCRIPTOR p 1 Processor Descriptor ProcesasorDeacriptor ID I doc kH nn in DOCUMENTATION m A ea descr I DESCRIPTION I caches t cache tlbs L tlb p 3s cores H processortore H 1 Q ImPrESS Consortium Dissemination level public Page 85 139 D6 1
48. S workflow Describe how the tool fits into the Q ImPrESS workflow Use a diagram to highlight its position in the overall process 6 3 3 Tool Installation The tool 1s a part of Q ImPrESS project update site 6 3 4 Installation prerequisites There are no special prerequisites 6 3 5 Detailed installation procedure The tool is a part of Q ImPrESS project update site and it should be installed via Eclipse installation manager 6 3 6 Tool Usage 6 3 7 Tool configuration There is no special configuration of the tool 6 3 8 Tool prerequisites The tool can be used only in projects having Q ImPrESS nature 6 3 9 Tool activation The tool 1s available in projects once they acquire the Q ImPrESS nature Each entity of SAMM model has action Open in text editor in its pop up menu If the user select the action editor for the selected entity is automatically opened 6 3 10 Usage instructions and expected outputs The tool 1s used for creating and modifying SAMM models using text editors These two use cases are described in the next two sections The last section gives instructions how to edit particular SAMM model elements Q ImPrESS Consortium Dissemination level public Page 68 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS Creating new SAMM model Right click the project folder in the Project Explorer view and select the New gt File item Enter the file name where you intend to store new SAMM
49. Summary in terms of Person Days is shown Q ImPrESS Consortium Dissemination level public Page 117 139 D6 1 Annex Guidelines and Tools Manuals eg ImPrESS Workplan Derivation You start a workplan derivation wizard by pressing the Derive button Specify Composite Activity In the first wizard page you have to specify a semantical rationale for the first composite task of the workplan e g the first milestone of the change For small there might be only a single composite task necessary For larger changes this provides a way to split up work into milestones In Keyword enter a short rationale for the change In Description enter a longer description of the change By specifying more than one composite activity you can describe larger changes in a more structured and detailed way Select Work Activities PEE Please describe why vou are going to change the software This description is needed to classify your changes Keyword Database Change Description the direct changes of the database component and Follow up activities Cancel Select Starting Point On the second wizard page you can select what kind of architecture model elements you can mark directly as affected by the change request You press Select Components if you know which components are affected You can press Select Interfaces if you know interfaces types which are affected You can press Change Datatype Defin
50. a DH LINES B Outline 53 lt gt Task List v rj amp Tasks x Aiu 5 Es o E yN platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a F E A platform resource ExampleSystem alternativesjcb67ea90 2415 4460 b75a Clock Frequency t 2000000000 Descriptor Documentation Id Processor Descriptor eyRTMc XEd6EArxrovRbSA Name gt ServerProcessor Finally a fraction of the CPU has to be assigned to the container Right click on the Container element select Add Child and Execution Resource Set its attribute Processor to the Processor element ServerProcessor specified in the Node If multiple Container share the same CPUs a fraction can be specified for each container This is done by the fraction attribute of the execution resource Similar model elements have to be created to model other hardware resources of the node Create a Memory element Storage Device element and Network Interface element in the Node and a Memory Resource element Storage Resource element and Network Resource element in the Container For a detailed description of the different element semantics refer to D2 1 Create a SEFF Behaviour Model Create a new element in the alternative Select Q ImPrESS Seff Model and set Seff Repository as root object The Seff Repository in the created file contains all SEFF behaviours of the model Each behavior is specified by a ResourceDemandingSEFF element
51. abaseManagerInterface Response Time of Call DataRetrieverInterface wh f Gb Response Time of Call DataServiceInterface whoi amp Response Time of UsageScenario ID 11 g Sensors 0 40 g 0 35 e 8 0 30 ce 300 35 350 375 400 425 450 4 5 500 525 550 Time 8 Response Time of UsageScenarip E7 Properties XR R Problems JFreeChart Histogram Viewer es Sensors Context Experiment Datetime Filters f ExperimentRun Run Thu Oct 29 23 53 5 Response Time of UsageScenario For a response time different result presentations are possible A meaningful display of results is the Response Time Histogram or the Response Time Histogram based CDF Double click on the response time sensor in order to select the kind of display Fora resource the utilization can be displayed as a pie chart 6 5 11 Caveats Describe here what possible obstacles a user can find during the normal usage of the tool or common reasons for the tool to fail and which are the possible workarounds Q ImPrESS Consortium Dissemination level public Page 105 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 5 12 Tool future extensions and planned activities Future enhancements include the automatic feedback of the PCM performance results into the O ImPrESS result model O O ImPrESS Consortium Dissemination level public Page 106 139 a D6 1
52. ace by right clicking on the interface then select New Child and Operation In the properties view set the name of the operation to whoisOperation Set the operation Input attribute to the messageType messageInput and the Output attribute to the messageType messageOutput PrimitiveComponents Q ImPrESS Consortium Dissemination level public Page 20 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE This interface is provided by the client component This is a composite component containing two primitive components the Gui component and the DataRetriever component We first create the two primitive components and then the composite component Create the primitive component GUI component by right clicking on the repository then select New Child and Primitive Component Provide a name for the component by setting its name attribute in the properties view e g GuiComponent To provide or require components a component has to contain ports Add a provided interface port to the component by right clicking on the component then select New Child and Provided Interface Port Set the name of the port by setting its name attribute in the properties view e g GuiComponent Provided Guilnterface Besides set the interface type to the interface GuiInterface yN examplesystem samm repository 2 5 i Resource Set E yN platFarm Jresaurce ExampleSysbem alternatives
53. activities eeesessssssssssseeeeeeeenn nemen 139 6 8 12 Sl ca T 139 Q ImPrESS Consortium Dissemination level public Page 5 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS Ne 1 Introduction This deliverable extends what detailed in D6 1 providing practical guidelines on the use of the Q ImPrESS tools platform and represents a reference manual for the software engineers This deliverable specifically address recommendation R7 of First Project Review This is a layout of the deliverable structure this chapter is a short introduction what the Q ImPrESS platform aims at and its main features Chapter 2 collects generic guidelines that cover most of the workflow process operations detailed in D6 1 Chapters 3 4 5 collect specific guidelines for the telecom industry and enterprise domains Chapter 6 collects specific tools manuals 1 1 Q ImPrESS overall workflow Q ImPrESS aims at helping software engineers in the quality evaluation of different system evolution alternatives Different quality metrics can be predicted before implementation takes place This leads to a shorter time to production while assuring a better quality of the target system This is an overview picture of the Q ImPrESS workflow as applied at ABB Ericsson amp te ImPrESS wu Q ImPrESS IDE Applied at A Wm ERICSSON Z B Tool supported manual action P Tool sup
54. allows selection of different models to create The user has to select one see Figure 10 Q ImPrESS Consortium Dissemination level public Page 50 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS New 1 B x Select a wizard x Create a new Skaticstruckure model I Wizards model Behaviour Model ie Ls Constraints Model ia Fs Datatypes Model Fs Datatypes Model pe Jl Hardware Model 3 its Ls Himpressgast Model n yN Qoasannotation Model ld Rdb Model md Ls Repository Model Editor a Ws Simpleuml Model 44 SourceCodeDecorator Model Staticstructure Model pot Targetenvironment Model of UML Model Re Fs Usagemodel Model LA View Model a EE S x5D Model E Graphical Modeling Framework ie LAI uida Mannina Madal Cra sabinan lg Figure 10 Selecting the type of model After selecting the desired type of the new model a model name has to be filled see Figure 11 Q ImPrESS Consortium Dissemination level public Page 51 139 D6 1 Annex Guidelines and Tools Manuals ec ImPreSS iol x Staticstructure Model h Create a new Staticstructure model ET Enter or select the parent Folder demoa alternatives a42aa amp 60F 42b8 4384 2912 185Fb63d71FF Es demo P0 A settings Fl gt alternatives pem gt G42aa6Df 42b8 4384 9912 185fb63d71FF oy ab3bea35 ez295 4586f afQ07 6ca1c6982e20 czZaadf 3062 4d09 b
55. amp UF 42b8 4384 9312 185Fb63d71FF Eb g samm hardware A 4 Descriptor Repository 0 samnm jnsannotation E samm repository l E Repository examplesystem Repository El mt a ee SSS aon fa H d Composite Component RF a r Y ib Open Primitiwe Component H Show properties view Interface F Collection Data Type Undo CHZ ae a Mm Complex Data Type Eu r E Primitive Data Type Delete Bl H1 XN e Message Tvpe E E Primitive Component dataRetriever H 2 Primitive Component dabaServicePCc a Frimitiwe Component quicamponenkPc HR ED Primitive Data Type userData CNN e D Primitive Data Type userID samm seff ce samrm servicearchibeckuremadel E samm Fargebenviroanmaent El Samim _usagemodel HES src H S JRE System Library JavaSE 1 6 B test mydsl Figure 13 Editing model Properties of a model can be edited via the Property view see Figure 14 Each change is also directly saved into a corresponding model file Q ImPrESS Consortium Dissemination level public Page 54 139 D6 1 Annex Guidelines and Tools Manuals 1items selected ImPrESS Resource IZ _bneAdLlFWwEde6heLwzla6ILa Interface Type Interface DataServiceInterface Is Required ive False Mame 1 ServerCamposite Provided DataServiceInterFace Figure 14 Property view for model entity 6 1 16 Opening model artefact editors Each model artefact can be opened via a predefined set
56. an be measured by monitoring incoming and outgoing network traffic of a certain node If source code is available monitoring probes can be inserted into code These probes report specified metrics e g service response time e ImPrESS Performance Prediction The model for performance prediction was constructed from the envisioned architecture of the experimental setup Certain processing elements and network elements of the experimental setup were represented with appropriate modelling constructs e g M M 1 queues in Mathematica Processor sharing processing units in Palladio etc The model was annotated with resource demand annotations that were specifically measured for the experimental setup during the phase of black box modelling In the retrospective we can estimate the time needed to create the Palladio performance model of the experimental demonstrator setup We cannot say what was the exact time needed because certain activities were performed for the Mathematica model and certain activities for the Palladio model which is heavily based on Mathematica model However based on this entire experience we can assume how much time it would take us for creating the Palladio model With this said we estimate it took us 64 person hours for making described initial assessment regarding the appropriateness of the chosen abstraction level with Palladio Of these 40 person hours 1 person week was spent on black box modelling and moni
57. atabaselnterface CHANGE Add Changing Domain Go back to Analysis Overview Follow Up Relation Mode In Follow Up Relation mode the activity hierarchy of the tree reflects the cause effect relationship e g interface change causes interface port change In the example a change to interface DatabaselInterface is followed by a change to interface ports for serviceComposite and databasePC Q ImPrESS Consortium Dissemination level public Page 124 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS Workplan Editor Show Activities in Architecture Element Type Architecture Element Name Basic Activity Composite Activity Complete Workplan Composite Activity Change Database Followups a Interface Databaselnterface CHANGE K Interface Port serviceComposite Required Databaselnterface CHANGE amp Interface Port databasePC Provided Databaselnterface CHANGE Add Chanaing Domain Go back to Analysis Overview In the second example you see a change to datatype definition userData that triggers a change of interface DatabaseInterface which itself triggers two interface port changes Workplan Editor Show Activities in Containment Relation Follow Up Relation Architecture Element Type Architecture Element Name Basic Activity B Composite Activity Complete Workplan Composite Activity DBS a0 Interface Databaselnterface CHANGE K Interface Port serviceComposite Required Da
58. ate Search Project Net4jExamples Targetenvironment Editor Run Visualisations Window Help z E E Dis ME E LHE dE He e EA ERE L FY I Resource Project Explorer Package Explorer 23 amp 2 V amp examplesystem samm repository 4j examplesystem samm hardware is examplesystem sa argetenv ent 25 E E ExampleSystem gt Resource Set Ee alternatives E rj platform fresource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64e examplesystem samm_targetenvironment El ch67ea90 2415 4460 b75a 91130Defe64e a 4 Target Environment j Mj examplesystem samm hardware El 4 Node ExampleSystemServer P examplesystem samm repository Container ExampleSystemContainer LA examplesystem samm targetenvironment BEES ocessor ServerProcessor New Sibling lt 2 Undo Set CtrH Z Reda Gr of Cut Copy Paste 2 Delete Validate Gontrol R Open Selection Tree with Columns Run As Profile As LA platform resource ExampleSystemjJalternatives cb67ea90 2415 4460 b75a Property LL H Clock Frequency Validate Descriptor Team Documentation Compare With Id Replace With Name WikiText Load Resource Refresh Show Properties View Remove from Context Ctrl Alt FShift Down In the upcoming dialog select Browse Workspace browse to the hardware file select it and click OK Resource EkxampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe64e examplesystem sa
59. ate the SISSY launch configuration with the steps described above Q ImPrESS Consortium Dissemination level public Page 99 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 5 SAM Performance Prediction User Manual 6 5 1 Purpose of the tool The Palladio Component Model PCM is a domain specific language that allows for modeling the design of component based software This design model can be transformed into a performance analysis model The PCM can be included into the Q ImPrESS toolchain to use it for performance predictions for Q InPrESS SAM models Therefore a SAM model has to be transformed into a PCM model and the PCM performance analysis has to be performed for the PCM output model The Q ImPrESS toolchain provides an automated workflow for this 6 5 2 Tool relationship with the Q ImPrEss workflow After a Q ImPrESS SAM model has been created either by reverse engineering or forward modeling different QoS attributes can be analysed by the Q ImPrESS toolchain For performance analysis the SAM model has to be transformed into a PCM instance The PCM performance analysis results can then be inspected in the integrated Q ImPrESS UI or be used as input for the tradeoff analysis Q ImPrESS Consortium Dissemination level public Page 100 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 5 3 Tool Installation Both the O ImPrESS toolchain and the PCM tool are provided as Eclipse feat
60. behavior model according to the type Those editors are considered separate tools and their operation is described in a separate manual 6 2 15 Deleting elements Deleting elements works as can be expected from such graphical editors After selecting one or more elements the mouse context menu right click opens up showing an entry Delete from Model see Figure 22 Q ImPrESS Consortium Dissemination level public Page 64 139 D6 1 Annex Guidelines and Tools Manuals Options Capture Window Help Q f7r95 Eoo Resource SAMM Example Instance examplesystem samm servicearchitecturemodel diagram Eclipse Platform ERES S 1Q G S o 3 B 1 Av Sr te gt i Bir o8 Ber M Fle tee 1005 je T aaa id examplesystem samm_servicearchitecturemodel_ diagram amp lt e Paleti 4 ServiceArchitectureMode Rae EJ clientCompositelnstance clientComposite Required DataServicelnterface Sut clientComposite Provided Guilnterface e Co model model diagram eS databaselnstance 4 Sul databasePC Provided Databaselnterface 4 Co Mg io Add Note Navigate gt ax File gt za serverCompositelnstance ServerComposite Provided Dai Edit gt atabaselnterface Format gt Filters b ts Bx c El WikiText gt X Show Properties View 7 Tasks El Console Properties 23 amp Connector Figure 22 Deletion of elements The delete operation deletes the selected element It may also dele
61. can also specify more than one change request A change request specification consists of a name and a textual description of the change Q ImPrESS Consortium Dissemination level public Page 115 139 D6 1 Annex Guidelines and Tools Manuals e IMPrESS Note A this point there is no explicit mapping from change request to architecture alternative needed This will be investigated in the first analysis step 1 e workplan derivation Add Change Request Mame C R DBS Description Change of Database Schema Analysis Instance Page We next proceed to the analysis instance page where you can specify the pairings of architecture alternatives and change requests for which the change effort should be determined Click on Add in top right corner in order to specify a new analysis instance Choose Analysis Instance Architecture Alternative AAl Change Request Q ImPrESS Consortium Dissemination level public Page 116 139 D6 1 Annex Guidelines and Tools Manuals Maintainability Analysis Overview Analysis Instance Architecture Alternative Change Request Workplan Effort Estimation Result Summary AM CR DBS 0 0 Back to Each line in the table represents an analysis instance In the columns the analysis steps are enumerated Each alternative has buttons for Deriving Work Plan Editing Workplan Bottom Up Effort Estimation In the last column a Result
62. ce the editor after setting up rules e g governing the possible combinations of elements in the model We assume that a future version of the editor may check the model for validity at least when the user saves the model she created A second issue as been found with using the editor on a Mac OS platform The Ports of components are not visible at all although they can be used selected connected etc when the mouse cursor is located over them This issue needs to be inquired to assess 1f 1t can be solved in the scope of O ImPrESS O O ImPrESS Consortium Dissemination level public Page 66 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 2 20 Tool future extensions and planned activities As already mentioned it is planned to implement additional validity checks and enhance the tool with more support to prevent the user from editing models that will be invalid It 1s not yet finally defined which checks will be necessary and how they can be implemented The current version will serve as a means to collect user feedback define the necessary enhancements and then plan their implementation in future version Q ImPrESS Consortium Dissemination level public Page 67 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 3 Text Editors User Manual 6 3 1 Purpose of the tool SAMM model text editors are used for manipulation of SAMM models using text editors 6 3 2 Tool relationship with the Q ImPrES
63. ctable as it is proportional to the LOC size but also depends on the technology used and the subtle language nuances of that technology example VisualC 6 with respect to C The level of details of the component structure can increase recursively applying reverse engineering This phase again needs some manual input and cannot be fully automated As explained in D6 1 3 3 3 4 the reverse engineering process is basically divided in 3 steps first code 1s analysed to obtain an abstract structure then information regarding components and interfaces 1s extracted and finally the user can add behaviour annotations 1n the form of Petri Nets or in other ways as the Q ImPrESS platform provide interfaces to include different plugins to work with As explained the software engineer iterates the previous phases until all system components have been modelled 2 2 4 Model system assembly At this point models for all individual components are available Now they need to be assembled to represent a Service Architecture Model Hence the system architect takes components from repository and plugs them together using connectors The graphical editor can be used for this phase this makes connection creation and handling much an easier task with respect to using the text editor 2 2 5 Model system deployment The deployment model needs to be updated if the assembly change scenario involves the creation of new components that need to be allocated or
64. e table similar to the workplan editor page New are the fifth and sixth column In the fifth column developer can enter effort estimates for respective work activity in Person Days In the sixth column the effort estimates are accumulated Q ImPrESS Consortium Dissemination level public Page 128 139 a D6 1 Annex Guidelines and Tools Manuals e ImPrESS aa D 6 8 JPFChecker Manual 6 8 1 Purpose of the tool JPFChecker is a tool for checking consistency between implementation of a service in the Java language and its behaviour model in the TBP formalism We say that the Java implementation is consistent with the behaviour model in TBP 1f the actual behaviour of the implementation reflects the behaviour model and vice versa The algorithm for consistency checking is described in Sect 3 of the D5 1 document in detail 6 8 2 Tool relationship with the Q ImPrESS workflow Consistency checking can be used to demonstrate that the implementation code and behaviour model are consistent after either the code or the behaviour model has been modified during evolution of the software system in any way supported by the Q ImPrESS method Integration of consistency checking into the overall Q ImPrESS working method is illustrated in Figure 26 red circles highlight the stages of the development process where consistency checking should be used More details are provided in the D6 1 document eet c BP Cimes Q ImPrESS IDE
65. e26 14F21b957e29 di C ce amp ccdaa da39 41 amp 0 871F 5a7bbcb1874d H test jpfcheck File name application samm_servicearchitecturemodel Advanced gt gt Figure 11 Associating a name with the model Then a top level modelling entity has to be selected see Figure 12 After finishing the wizard the new model is created in the selected alternative Q ImPrESS Consortium Dissemination level public Page 52 139 D6 1 Annex Guidelines and Tools Manuals ABl xi Staticstructure Model h Select a model object to create lt gt 1 Model Object aL Encoding UTF amp YT y lt Back ext Cancel Figure 12 Selecting top level modeling entity 6 1 15 Editing model The editing of a model follows a concept of generated EMF tree editors In its pop up menu each model artefact has actions to create child and sibling artefacts to delete an artefact and to show the property view see Figure 13 Each change is directly saved into the corresponding model file Q ImPrESS Consortium Dissemination level public Page 53 139 D6 1 Annex Guidelines and Tools Manuals HE Package Explorer fs Hierarchy L4 Project Explorer LZ E amp we V E Te gt Alternatives repository lt en oo scenario 342aa amp 0fF 42b8 4384 2912 185Fb amp 3d7 1FF E scenaria B ce amp ccda3 da33 4180 871F 587bbcb1974d Banis c scenario B1 czzaadf ane2 4d 09 bez6 14F21b957829 B oo scenario 942aa
66. ecific guidelines have been produced so far as the guality assessment on the enterprise showcase 1s still ongoing O O ImPrESS Consortium Dissemination level public Page 41 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 Tools Manuals This chapter collects the manuals of the tools as depicted in figure 1 at page 8 O O ImPrESS Consortium Dissemination level public Page 42 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 1 Backbone support manual 6 1 1 Tool Description The Backbone plug in is a core part of the O ImPrESS IDE It provides basic infrastructure for visualization and manipulation with models and their alternatives 6 1 2 Purpose of the tool The purpose of the tool is to provide a simplified layer publishing operations over Q ImPrESS projects repositories alternatives and models to other Q ImPrESS tools Backbone is also responsible for visualization of Q ImPrESS project artefacts 6 1 3 Tool relationship with the Q ImPrESS workflow Due to a general nature of Backbone as a corner stone for the rest of Q ImPrESS tools it participates in all parts of Q ImPrESS workflow Q ImPrESS Consortium Dissemination level public Page 43 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS 6 1 4 Tool Installation Backbone is a set of Eclipse plug ins grouped into Q mPrESS Backbone feature which 1s distributed as a part of Q ImPrESS IDE The update site for the
67. ed cache size or request latency Q ImPrESS Consortium Dissemination level public Page 26 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Units In the whole SAMM model no concrete unit model exits Thus when specifying attributes that carry a unit such a disk write speed or network bandwidth units are not specified Therefore such attributes have to be used in a consistent way If speed attributes are specified in a kb s unit QoS predictions should yield results that actually denote time If such attributes are not mapped to such a concrete unit prediction results can only contain relative values not absolute values Create a Target Environment Model A target environment is used to specify the actual environment of the SAM model that makes use of resources specified in the hardware descriptor Create a new element in the alternative Select Targetenvironment Model and set Target Environment as root object A target environment consists of nodes which correspond to physical servers On nodes execution environments can be modelled in which the software runs This is done by the Container element For a Container it can be specified which hardware resources are available For the example system we create one server node that contains one container Right click on the Target Environment root element select Add Child and Node A node is being created inside the target environment w
68. ed port has to be a required port that belongs to the component for which the behaviour is specified However it is not yet checked automatically if a valid port has been selected Selecting a provided port or a port that belongs to a different component must not be selected although this 1s not detected when validating the model Besides select the operation that has to be called This has to be an operation that 1s being provided by the interface the required port references Select the operation in the Called Service attribute in the property tab of the ExternalCallAction Q ImPrESS Consortium Dissemination level public Page 30 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS LoopAction BranchAction ForkAction Besides the actions explained above additional SEFF actions exist that allow for specifying additional SEFF control flow with nested SEFF behaviours A LoopAction allows for specifying a nested behaviour that is executed several times in a row before the successor action of the LoopAction 1s being executed After creating a LoopAction right click on the loop action select Add Child and Resource Demanding Behaviour This leads to the creation of a nested behavior element which is similar to the root ResourceDemandingSEFF element For this element nested actions can be specified again that form the nested behavior This set of actions must contain at least a StartAction and a StopAction All n
69. edit components required for a Service Architecture Model as shown in Figure 15 which has been copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 56 139 D6 1 Annex Guidelines and Tools Manuals mPrESS Process Model Change Scenario 3 3 Model Non Functional Requirements 3 3 1 Decide on Model Granularity 3 3 2 scenano a setOfComponents eens not all components modelled External model samm Repository n a Model System Assembly 3 3 4 samm ServiceArchitectureModel sam E Model System Deployment 3 3 5 samm Repository samm ServiceArchitectureModel samm Deployment E Model System Usage 3 3 6 samm Repository samm ServiceArchitectureModel samm Deployment Validate SAM 3 3 9 model valid samm Usage i Import model Add System Quality Annotations 3 3 8 3 3 7 p B sam External model model invalid Figure 15 Modelling change scenario workflow copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 57 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 2 3 Tool Installation The tool can be installed from an Eclipse update site using the standard Eclipse mechanisms For more information about these mechanisms please refer to the Eclipse documentation 6 2 4 Installation prereguisites The tool is being installed in its own bundle and does not requ
70. eeeeeeeeeeeeeeeene eene LLY nnne nennen sss s nsns n a GEUYN DL enses nsns senes 02 6 4 2 Tool relationship with the Q ImPrEss workflow sese 02 6 43 itv cb m 93 6 4 4 Installation prerequisites 20 0 ccccccsssssssssseseeeeccceeeeeeeeeaaaaeesseseseeeeeeeeeeeeeeeeasaaassaeseeeeeeeeeeeeeeeeeqaaas 93 6 4 5 Detailed installation procedure cccceessssssceccccccceeeeeccaasessssssseeeceeceeeeeeeesaaaaasssssseeeeeeeeeeeeeeeeqaaas 93 cass sets rw Go nse tre o NO O GOD 94 OAT EMA E FY nae nest aspen et Umi iR CE TYN ad Ee abbat saa dau crates diam YA FC YNN FEN 94 55 5 TOOlprercguis ES crac rn Y MR bera RNAI PUI Ru Y YAA FYN YNN FEN 94 OA TOO T CR RY FER EA RO CY ARFER FANER FE ERFYN FY A O 94 6 4 10 Usage instructions and expected OUEDUES ii Gi an bna he YU NOU WORN 94 6 4 11 o 1 YH HN 99 6 5 SAM Performance Prediction User Manual eese e nena aaa nnnn nnne ness e senes nnns 100 6 5 1 Purpose ofthe re UM UA ANN GU ANN CAA OY YD Ga a AA YB 100 6 5 2 Tool relationship with the Q ImPrEss workflow cccsseeessssseeeeeeeeeeeeeeeeaaeaeeesseeeeeeeeeeeeeeeeeeaaas 100 633 TOL TSENG FERF FYN FFR cin vv wins bap NWFN NEN FFRYND EAE AETA EE 101 GOA Justcallabol DECC MIS IC YR Cd e sumi D ed EEI GE DDUON AGOA NG UA 101 6 55 Detail d installation Pr OCCA
71. el Checker must be installed eDownload the binary distribution of Prism for your platform at http www prismmodelchecker org download php We suggest to use the latest version available at least version 3 3 beta2 eUnzip the downloaded archive in your preferred location on your hard disk for example var develop prism 3 3 beta2 linux remember such location as it is needed for Tool configuration 6 6 4 Installation prerequisites The Reliability Analysis Tool does not have particular hardware prerequisites The Prism Model Checker does We suggest to install Prism on a computer with at least 2Gb of memory to avoid problems during simulation If you experience such problems anyway see the FAQs of Prism where some hints about solutions are available http www prismmodelchecker org manual Frequently AskedQuestions Main Q ImPrESS Consortium Dissemination level public Page 108 139 D6 1 Annex Guidelines and Tools Manuals 6 6 5 Tool Usage This section describes how to use the tool to execute reliability analyses 6 6 6 Tool configuration Before running any analysis the Reliability Analysis Plugin must be configured In detail you need to tell the plugin where to find the Prism Model Checker executable To configure the plugin execute the following instructions eStart Eclipse e n the menu select Window gt Preferences eSelect the Prism field from the list Java Mote This preference may not take effect on all
72. encutessi 2 dod OEEFEFEF FFFRFFRNRNNFEFFRFFFFFYFFFR FFF AFF REF FFF FFF 12 2 3 1 An example on how to edit models using the textual editor eeessssssseeeeeeeeeeeeeee 13 3 Specific Guidelines for the Telecom domain c eere eee eere eene e one ee e rore eee e eee eee eee eee Pee eee PPP Pee nee 34 4 Specific Guidelines for the Industry domain ccce eee eee e eee eee eee e eee eee eee e eee e eese e O OODD DDOD DOD o Don 39 5 Specific Guidelines for the Enterprise domain ccccccccsssssssssssssssssscssccccccccccccccccsssssssscsscscccccsssssssssees 41 6 dU CRI ELE t 42 6 1 Backbone support manual eeesssssssseeeeeeeeesesesee nennen eeennn nnn eeni eeke dansai ereed esses a aer nne e essen nnne 435 OLL Tool DSS T NIETO HF FARF a FFON FFF FREE FFY FFFAF FY FD FO FRY FY FNAN 43 ab Farposeol Ihe OOM a iens FFAN FF RFNFRFFFO i AFFRFFIFR FFR FEN FEN FFF OFYN FFF FD ANF FYN FYW HN FYN 43 6 1 3 Tool relationship with the Q ImPrESS workflow sese 43 NC MEMBERS UNE o Em 44 OLS Jnstallatron DEOSCQUIS CS sierica aa FFF FFF dra orae brM ana FN FN 44 6 L6 Detailed installation procedure eret e nore eben s Ek OSLO Tate OO M a EU ene DER din Et OO 44 GM OO Ae rec HH 45 So MI COMES WEA OM sssrin EFYRNWY EWN EOFN NNFHYFA FAN
73. esource demand should occur Set the Internal Action attribute to the InternalAction element of the SEFF model for which the resource demand should be specified The actual QoS annotation can specified in the same way as described for a LoopCount QoS annotation O O ImPrESS Consortium Dissemination level public Page 33 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 3 Specific Guidelines for the Telecom domain Disclaimer At the current stage of Q ImPrESS M24 it is hard to define specific guidelines for the telecommunications domain because the Q ImPrESS tools for modelling and prediction have only recently been made available M21 24 The tools are still under development and contain many open issues On the other hand original DoW plans aforementioned guidelines to be the result of tasks that are planned to start in the third year of the O ImPrESS project M29 for evaluating and documenting demonstrator results and M32 for defining and documenting domain specific variations At that time we are confident that It will be possible to create specific guidelines on using the O ImPrESS method and tools for the telecommunications domain Hence the following text should be considered as a preview on how the guidelines could look like once the O ImPrESS tools become mature and the planned validation 1s done This section describes initial attempt of devising potential guidelines for applying the O ImPrESS method in
74. ess the javac compiler 6 8 5 Tool Usage 6 8 6 Tool configuration No special configuration has to be performed in order to setup the tool The tool can be run just after the installation from the update site given that all inputs are available and the prerequisites described in the Section 3 3 are fulfilled 6 8 7 Tool prerequisites The JPFChecker tool needs to get the following as an input e compiled Java implementation of a service a set of Java class files e behaviour model of the service in the TBP formalism obtained from G AST via the Q Abstractor plug in described in a separate document or created manually for new systems e definition of all external interfaces both provided and required of the service and e specification of method parameter values to be used by the abstract environment of the service subject to verification All the needed input data can be retrieved automatically from an instance of SAMM User is only required to manually create the specification of method parameter values and return values in the form of a Java class and put it into the SAMM instance An example of the specification for the CRMManager service from the Showcase application is displayed on Figure 28 The Java class with the specification has to be a subclass of the org ow2 dsrg fm tbpjava envgen EnvValueSets class Actual parameter values are supplied in calls to the put lt 7ype gt Set methods where Type can be the name of a primitive
75. ested actions have to be connected by specifying the Predecessor Abstract Action and Successor Abstract Action references The number of iterations of a LoopAction is specified in the OoSAnnotations model file A BranchAction allows for specifying several nested behaviors for which just one is taken in the control flow depending on the branch transition For every branch a Probabilistic Branch Transition element can be specified as a nested element in the BranchAction The branch probability is specified in the QosAnnotations model file The nested behavior is specified by adding a ResourceDemandingBehaviour as nested element to the ProbabilisticBranchTransition This element is comparable to the root ResourceDemandingSEFF in the way that nested actions can be specified that form the nested behavior A ForkAction allows for specifying several nested behaviors which are executed concurrently in the control flow For every concurrent nested behavior a Forked Behavior element can be specified as a nested element in the ForkAction This element is comparable to the root ResourceDemandingSEFF in the way that nested actions can be specified that form the nested behavior Create a Qos Annotation Model Create a new element in the alternative Select Qosannotation Model and set Qos Annotations as root object In the following we describe how to add the following QoS annotations to the model e SEFF Loop Action numbe
76. ewverP H Primitive Component dabaServicePC Bl amp Primitive Component quicamponentPc ird aD Primitive Data Type userData pod ED Primitive Data Type userID J D samm_selT H J samm_serwicearchitecturemodel E samm bargetenviranment H fj samm usagemaodel EB zr HBA JRE System Library JavaSE 1 6 m E test mydsl n 508 Figure 5 The project view with enabled Q ImPrESS nature 6 1 12 Creation of a new alternative The New Alternative action is located in the pop up menu of alternatives repository node and of each alternative see Figure 6 Q ImPrESS Consortium Dissemination level public Page 46 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS E Package Explorer fs Hierarchy L gt Project Explorer x Tl M s Fl ies demo Ets gt Alternatives repository a Dobe erepscenario 842aa60f 42b8 438 i Ec El go sce a p Delete alternative H Gompletiy delete alternative e Delete Model El U Remove hrom Context Cr alt Snirt Down H gg Import D p Export 3 src 2 Refresh F5 Hl BBA IRE validate IRE B Fel Team d Compare with d Restore From Local History Make alternative default Alk Enkter Properties Figure 6 New alternative action When the user selects the action New Alternative a wizard is shown see Figure 7 and the user can select a parent alternative If no parent alternative is selected a new alternative will be created as a top
77. executing the code under consideration under all relevant threads scheduling Q ImPrESS Consortium Dissemination level public Page 139 139
78. experimental measurements Instead of doing that we confirm that results obtained through Palladio performance prediction are very similar to experimental measurements and the results obtained through modelling in Mathematica This is to be expected since the used Mathematica and Palladio models are equivalent Instead of conclusion here we emphasize that this is just an initial assessment of the abstraction level The assessment was performed on a subset of an demonstrator evolution scenario from D7 1 Thus in spite of good results we deter from making any conclusions and just comment that chosen abstract level has the potential to be used in validation activities Of course if the validation activities show that used abstraction level is too high this will be manifested as a significant deviation between experimental measurements and results obtained through performance prediction we will construct lower level abstraction model eg ImPrESS 504 0 0 C y 4y o 20 an Dn 60 UM P 1 00 80 X a Figure 2 a Experimentally measured values b Predicted values through modelling in Mathematica note x axis represents CPU load 40 y axis represents number of completed authorizations of SIP calls N z axis represents network bandwidth KB s Black box modelling As stated in the previous text we used experimental demonstrator setup also for initial black box modelling We chose coarse grain high le
79. gineer has then to analyse the performance data timestamps and derive linear functions of the execution times with respect to the identified parameters Regarding reliability quality annotations a linear distribution representing the component reliability can be estimated analysing the data regarding bugs reported for the components covering a consistent time frame Other formula can be found in the literature regarding this topic The Q ImPrESS ide provides editors for editing quality annotations 2 2 8 System Model validation For any prediction analysis to be consistent and valid the model used to assess quality prediction has to adhere to the real system under investigation Model has to be verified and validated before being used to evaluate change scenarios design alternatives Model validation is not performed as a single step but usually model gets refined along a modeling loop where model comes closer to the system modeled at each loop cycle The already mentioned model abstraction is refined as well during these loops So usually the software engineer starts modeling the system at an high abstraction level and checks model consistency before refining the model and scale down to a lower abstraction level If the Q ImPrESS tool is used for prediction analysis checking model consistency means instrumenting the code and checking that system performance for a known use case closely match model performance prediction running the sa
80. gram L examplesystem samm targetenvironment yN examplesystem samm_usagemodel Figure 18 Selecting the repository diagram file O O ImPrESS Consortium Dissemination level public Page 60 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS When a diagram file 1s opened it shows the typical interface for every editor working in an Eclipse environment For the following explanations it is assumed that a user starts editing the diagram file she has created for the example Service Architecture Model as described in section 6 2 4 6 2 10 Opening the editor The user starts an editing session by Double Clicking on the repository element within the repository file entry examplesystem Repository as shown in Figure 18 The editor opens in the usual location in the Eclipse environment as shown in Figure 17 It should be noted that the diagram shown Figure 17 has been automatically generated and has not been changed yet The automatic placement of graphical elements may be not suited to allow viewing all elements in their entirety and the connections between them may be not clearly visible The tasks of improving this graphical representation will be explained in the following subsections fy Project Explorer 3 2 T S l examplesystem samm gosannotation ES v yN examplesystem samm repository v Repository examplesystem Repository gt st Composite Component clientComposite gt st Composite Component serverCompo
81. hardware 4j examplesystem samm_gosannotation gt FX examplesystem samm_r I examplesystem samm s New gt LA examplesystem samm s O gt E en F3 jd examplesystem samm_s ee With A examplesystem samm t pen Wit L examplesystem samm u 3 i gt Copy 88C 5 Paste 9g V 3X Delete po Hs Outline 3 Task List Move An outline is not available Rename F2 gs Import eA Export Refresh le El Properties 23 gt E Valid amm repository SAMM Exampl alidate GEU SAM M amp epository diagram file Run As P jerived Debug As P ditable Team ast modified i inked Compare With E Replace With p E Boe 44 examplesystem s WikiText Ee ing eu qimpress ide editors t DR E ysy eu qimpress ide editors t Figure 16 Creating a SAMM Repository darum file Selecting the menu entry highlighted in Figure 16 will result in a dialog opening Here it 1s sufficient to simply select Finish to confirm all default settings and create a diagram entry with them The Project Explorer will show a new entry and the editor for the diagram file automatically opens Q ImPrESS Consortium Dissemination level public Page 59 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS e 6 2 8 Tool activation The tool can be activated opening an appropriate diagram file e g by Double Clicking on it Section 6 2 7 already described in the prerequisites how a su
82. he property view for the stub This is the operation for which the behaviour is to be specified 1 e whoisOperation Q ImPrESS Consortium Dissemination level public Page 21 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt In the same way we can now create the other primitive components of the example system DataRetriever DataService DatabaseManager and Database Confer to D2 1 or the example system instance for details CompositeComponents Once all primitive components have been created composite components which hold encapsulated primitive components can be created We create a composite component that contains the two primitive components GuiComponent and DataRetriever This component holds the client logic of the example system Right click on the repository select New Child and Composite Component The composite component element is being created in the EMF tree Set its name in the property view to ClientComposite A composite component can provide or require interfaces in exactly the same way as primitive components do Add a provided and required interface to the ClientComposite component by adding a provided interface port and a required interface port Both times the GuiInterface can be used In the example system the ports of the ClientComposite component are called ClientComposite Provided Guilnterface and ClientComposite Required Guilnterface In addition the nested comp
83. hecker found an inconsistency and the cursor 1s placed to the source code line containing the statement that triggered the inconsistency If a violation of the protocol specified in the provision part of the behaviour model in TBP is detected then the cursor is put to the source code location where the service s method is invoked in the generated environment If a violation of a protocol specified in the reaction part of a TBP model 1s detected then the cursor is put to the Java source code location in the service s method implementation Q ImPrESS Consortium Dissemination level public Page 136 139 ImPrE55 ic test ES test jpf Ei fg gt Alternatives repository lt b scenario 2 7f63d012 6f00 4d9e bc1a BAL JRE System Library JavaSE 1 6 t 3 hibernate annotations 3 2 0 GA jar EET jpfchecker tool jar Hod log j 1 2 15 jar mcr persistence jar E go scenario 1 5c0295a3 b30f 4d2d 8493 35 Ee 0 samm repository Repository Showcase repository 0 Interface de itemis qimpress sh 0 Interface de itemis gimpress s 0 Interface de itemis gimpress s i o9 Interface de itemis qimpress s Interface de itemis gimpress s Interface de itemis gimpress sh interface de itemis qimpress s Q Interface de itemis gimpress sh a g Primitive Component CRMManag H E Primitive Component PricingMan 1g src BB de itemis qimpress showcase crm_simule i EB de itemis qimpress showcase crm simul 8 de itemis qimpress s
84. hich represents the server Set the name attribute of the node e g to ExampleSystemServer Add a Container to the node by right clicking on the Node element and selecting Add Child and Container Specify a name for the container as well To allocate hardware resources to container the actual hardware resources of the node have to be specified first In the following we specify a CPU resource that references a CPU Descriptor which has been specified before in the hardware model Then a share of the resource that is available to the container is specified Right click on the Node element select New Child and Processor Specify a name for the processor e g ServerProcessor Besides the clock frequency attribute can be set If the unit of the clock frequency is being regarded as GHz it has to be set to 2000000000 if the CPU is a 2GHz CPU What is missing is the link to the Processor descriptor in the hardware repository Therefore the hardware repository file has to be referenced by the target environment file To do so right click in a free part of the editor and select Load Resource in the context menu Q ImPrESS Consortium Dissemination level public Page 27 139 D6 1 Annex Guidelines and Tools Manuals Version 0 5 Last change 18 01 2010 Resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe654e examplesystem samm targetenvironment Eclipse Platform File Edit Navig
85. howcase crm simul 4 EB de itemis qimpress showcase crm simul EB de itemis qimpress showcase crm simul E EB de itemis qimpress showcase crm simul 4H de itemis qimpress showcase pricing si EB de itemis qimpress showcase pricing si AB de itemis qimpress showcase pricing si 8 de itemis qimpress showcase pricing si EB de itemis qimpress showcase pricing si 8 de itemis qimpress showcase pricing si i spring 2 5 5 jar E lib Z gt protocols D6 1 Annex Guidelines and Tools Manuals Version 0 5 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 WVorker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Worker 4 Vorker 4 Worker 4 Worker 4 Worker 4 LI L2 LJ LJ LJ LJ LJ LJ LO LJ LJ LJ LJ LJ LJ LJ LJ LJ LJ LJ Lu JPFChecker result DEBUG DEBUG DEBUG DEBUG Search finished Unigue states 11 Visited states de itemis gimpress showcase crm simulator be service CRMManagerImpl de itemis gimpress showcase crm simulator be service CRMManagerImpl de itemis gimpress showcase crm simulator be service CRMManagerImpl de itemis qimpress showcase crm simulator be service CRMManagerImpl StackDepth 1 results Statistics elapsed time states search choice generators heap instructions max memory loaded code new 11 visited 25 backtracked 35 end 5 maxDepth 9 constraints 0 thread 1 data 10 gc 26 new 1307 1
86. ial automation domain use system level performance monitoring tools their output cannot be used on Q ImPrESS which requires Q ImPrESS Consortium Dissemination level public Page 39 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt component level resource demands For the ABB system this means that certain measurement probes have to be inserted into the source code of the DCS manually at the component borders This requires the availability of the source code of the system which might prevent other companies from using the method The Q ImPrESS method does not offer support for the necessary performance measurements Therefore measurement tools have to be created and data analysis has to be done manually when applying the method Reliability Prediction The Q ImPrESS reliability prediction process requires reliability annotations for given software components While system level reliability or hardware related availability numbers are available at many industrial automation companies the component level reliability numbers are usually not available and have to be extracted manually The ABB demonstrator therefore relies on failure reports from the bugtracker databases of the DCS This means that other companies need similar information when applying the Q ImPrESS method Other than performance measurements reliability measures can hardly be produced based on analyzing the running system Logs of the bugs reported by test
87. ic Page 94 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Switch to the Eclipse Package Explorer view Window Show View 2Package Explorer Now right click on the project and select Create SISSy Launch Java Eclipse Platform B x Fie Edit Source Refactor Navigate Search Project Met4jExamples Run Visualisations Window Help m i 2 sy Ej a Java 4 Resource PkRao iq or xm 15 0 Q E G lee uw 1 E EE gt E SAn COCDIe 3 Mew 0 Into Open in Mew Window Open Type Hierarchy F4 Show In alE ShiFE Ww Fa tric An outline isnot 54 Copy Qualified Mame available Liz Paste Ctrl J amp Delete Delete Remove From context LEFT DDW Build Path i SOUrce Alt 5hift 5 b Refactor Alt 5hiFt T n cei Ex Import p Export Qe Refresh F5 Close Project assign Working Sets Sy Create SISSy Launch Run As d Debug As Validate Q Add R emoeve G Impress Nature Team b Compare With k Restore From Local History Configure k Properties AlE Enter Q ImPrESS Consortium Dissemination level public Page 95 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS A SISSy launch configuration is being created which already contains some necessary settings for example the input paths of the project and the referenced libraries Run Configurations P x Create manage and run configurations Q Mame SISSyRun cocome impl
88. ic activity In our example the Provided DatabaseInterface is affected We mark it and select basic activity CHANGE Select Work Activities Please check the interface ports which are affected by the changes in the previously selected components Component Name Interface Port CHANGE database C Provided Databaselnterface provided Q ImPrESS Consortium Dissemination level public Page 120 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Select Operation Activities The next wizard page asks you for another refinement step Here you should select the operations in the implementation of the previously selected components and interface ports which are affected by the change request 99 In our example we mark operation getUserForUserID together with basic activity CHANGE Select Work Activities InterfaceP ort Name Operations Basic Activity databasePC Provided Databaselnterface CHANGE getllserFarlserid Database Finish Q ImPrESS Consortium Dissemination level public Page 121 139 D6 1 Annex Guidelines and Tools Manuals eg ImPrESS Select Interface Activities As you can see in section 3 4 2 you can also chose starting point Select Interfaces if you know that an interface definition has to change in order to accomplish the change request Selecting interfaces directly gives KAMP tool the chance to derive proposals for follow up activ
89. ice CRMManager queryCustomers new Object null putObjectSet java util List de itemis qimpress showcase crm_simulator be service CRMManager de itemis qimpress showcase crm_simulator be dao CountriesDao all methods of the interface new Object new java util ArrayList parameters for other methods j j Figure 28 Specification of method parameter values in a Java class 6 8 8 Tool activation The following prerequisites have to be satisfied before it 1s possible to use the JPFChecker tool on a service s implementation in Java e The project has to have the Q ImPrESS nature set e At least one alternative has to be created e The alternative has to be filled with the models obtained either by executing the SoMoX tool or manually and e Source code of the service has to compile in the Eclipse IDE Other than that no special activation procedure is needed 6 8 9 Usage instructions and expected outputs The JPFChecker tool can be used on a service implemented in Java by performing the following four steps 1 The dialog for definition of the run configuration has to be opened by selecting the Run Configuration item in the Run menu Figure 29 Q ImPrESS Consortium Dissemination level public Page 132 139 D6 1 Annex Guidelines and Tools Manuals 2 The Launch JPF Check run configuration has to be selected in the Run Configurations dialog Figure 30 3 The run conf
90. iguration for the JPFChecker tool has to be completed In particular it 1s needed to select an alternative and the component to be checked Figure 31 and also the behaviour model of the service in TBP and the specification of method parameter values in the form of a Java class have to be selected Figure 32 4 The analysis is started by clicking on the Run button in the Run Configurations dialog Figure 32 The JPFChecker tool retrieves all inputs from the SAMM instance generates the abstract environment for the service subject to checking and runs Java PathFinder on the complete Java program composed of the service implementation and its abstract environment eg ImPrESS laix Fie Edit Navigate Search Project Run Window Help O Q amp o eov E x E Y EY amp Java f E Packag f te Tu fi no launch history c m E Task List 2 d EJ NA T t lk Bel E test jpf E te 7 Alternatives repository 4g oo scenario 1 5c0295a3 b30f 4d2d 8493 l co scenario 2 7f63d012 6f00 4d9e bc1a Find anes BA JRE System Library JavaSE 1 6 Z gt Uncategorized Im hibernate annotations 3 2 0 GA jar m jpfchecker tool jar log4j 1 2 15 jar m persistence jar Se scenario 1 5c02953 b30f 4d2d 8493 35 DE Outline 3 _ H E g samm repository l SZ E Ez Repository Showcase repository o9 Interface de itemis qimpress shc panana na m e 4n outline is not ava
91. ilable o9 Interface de itemis qimpress shc Q Interface de itemis gimpress shc Interface de itemis gimpress shc Interface de itemis gimpress shc Interface de itemis gimpress shc o9 Interface de itemis qimpress shc o9 Interface de itemis gimpress shc o Interface de itemis gimpress shc Q Interface de itemis gimpress shc z Primitive Component CRMManag 5 88 Primitive Component PricingMana 1 items selected a Problems Javadoc B Declaration 9 Error Log E Properties XN 3 PRI E1 88 src H 8 de itemis gimpress showcase crm_simul Resource 8 de itemis gimpress showcase crm simul H E de itemis qimpress showcase crm simul Propert Value Creation date Tue Oct 20 09 56 20 CEST 2009 Description scenario 1 ID 5c0295a3 b30f 4d2d 8493 354ef 3d6393F Is default False de itemis gimpress showcase crm_simul H E de itemis qimpress showcase crm simul H E de itemis qimpress showcase crm simul 8 de itemis gimpress showcase pricing_sin 8 de itemis qimpress showcase pricing sin H de itemis qimpress showcase pricing sin H de itemis qimpress showcase pricing sin H E de itemis qimpress showcase pricing sin H de itemis qimpress showcase pricing sin m spring 2 5 5 jar Z gt lib amp protocols amp src gen E E E E Foi eset n uu rr VN O cb 1 items selected A start eme Bj Total Commander 6 55 gt
92. ility and cannot be distinguished in the list Once created you can check if you have chosen the right BranchProbability element by having a look at its properties If it contains a property called Probabilistic Branch Transition you selected the SEFF BranchProbability If it contains a property called Branch Statement you selected the GAST BranchProbability In this case delete the element mark it and press DEL or right click and Delete and create the SEFF BranchProbability element In the BranchProbability property tab set the Probabilistic Branch Transition reference to the ProbabilisticBranchTransition element from a BranchAction specified in the SEFF model for which the branch probability should be specified The actual QoS annotation can specified in the same way as described for a LoopCount QoS annotation Note that certain analysis tools might require that all branch probabilities of the same BranchAction always sum up to 1 0 Q ImPrESS Consortium Dissemination level public Page 32 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS To add a QoS annotation for specifying CPU resource demands that occur in a SEFF InternalAction right click on the OoS Annotations root element select New Child and CpuResourceDemand In its property tab set the Execution Resource attribute to a CPU execution resource specified in the target environment model This is the resource on which the r
93. in Test p H He Juj Task Context Test E 9 src Apply Revert 8 de it Filter matched 23 of 23 items Gf de it 6 de it 9 Run Close H de it H E de i CoM msnm H E de itemis qimpress showcase crm simul I8 de itemis qimpress showcase pricing si ud de itemis gimpress showcase pricing_si H de itemis gimpress showcase pricing_si H de itemis gimpress showcase pricing_si EB de itemis gimpress showcase pricing_si ud de itemis qimpress showcase pricing si m spring 2 5 5 jar E lib H E protocols H E src gen 1 1 Oy cS 1 items selected p Start eme E Total Commander 6 55 Java Eclipse Wi Document Microsoft 1j untitled Paint EJ 14 41 Figure 32 Selecting the behaviour model in TBP and the Java class with the specification of method parameter values Running the JPFChecker tool The result of consistency checking is displayed in a way typical to the Eclipse IDE More specifically output of JPFChecker is printed to the console including a potential counterexample and some statistics and a message box with a short checking summary is displayed Figure 33 shows the output in the case that JPFChecker found no inconsistency while Figure 34 shows the output in case JPFChecker detected an inconsistency between the implementation and behaviour model A new edit window with the source of the component or the generated abstract environment is also opened if JPFC
94. inder Moreover the user has to carefully create the specification of method parameter values such that all execution paths in the service s Java implementation are covered When the coverage is incomplete then JPFChecker might miss some inconsistencies Q ImPrESS Consortium Dissemination level public Page 138 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 8 11 Tool future extensions and planned activities We plan to improve the presentation of consistency checking results in the Eclipse IDE We would also like to limit the effects of state explosion at least partially by developing optimizations of the Java PathFinder model checker 6 8 12 Glossary This section contains definition of special terms contained in the text above Service architecture meta model SAMM Common meta model which contains everything to describe the information needed for quality prediction analysis It serves as shared data repository for all quality analysis methods Service architecture model SAM an instance of the SAMM Threaded Behaviour Protocols TBP a behaviour model of a component service specifying traffic on service provided and required interface ports as visible from outside 1 e by other services communicating with this one Java PathFinder JPF a code model checker for java programs It is able to automatically detect certain errors in the Java code e g uncaught exceptions assertion violations via
95. ines and Tools Manuals From now on the hardware model is shown in the editor of the target environment as well In the property view of the attributes for the Processor element select the corresponding element to display the attributes the Descriptor attribute can now be set to a Processor Descriptor element that is available in the hardware descriptor model in the referenced file e ImPrESS File Edit Navigate Search Project Met4j Examples Targetenvironment Editor Run Visualisations Window Help ekan Tene Di amp Som e omm eke a lov laleo e es er 3 penes L Project Explorer I Package Explorer x ym B Ea A examplesystem samm_repository o examplesystem samm hardware yN examplesystem samm_targetenvironment x 5 a E gt ExampleSystem L gt Resource Set A 6 alternatives El cb67ea90 2415 4460 b75a 91130Defe64e yN examplesystem samm hardware yN examplesystem samm repository yN examplesystem samm_targetenvironment E yN platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe64e examplesystem samm_targetenvironment gt Target Environment El lt gt Node ExampleSystemServer Container ExampleSystemContainer 4 Processor ServerProcessor yN platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64e examplesystem samm_hardware Selection Parent List Tree Table Tree with Columns fo m E UN WI
96. ing on finish the EMF file is being created These steps are similar for the other Q ImPrESS models In the Q ImPrESS EMF Models category the corresponding element has to be selected and the appropriate root object has to be selected Resource Eclipse Platform File Edit Navigate Search Project Wet4j Examples Run Visualisations Wir wi LEL ALLU Fe Project Explorer E Ogle o E a Examplesystem EF Te Alternatives repository lt oo Example System Alternative ch 7ea90 2415 Ef ee Example System Alternative cb67ea90 2415 4460 i samm repository E Q ImPrESS Consortium Dissemination level O ImPrESS Consortium Dissemination level public Pagel7 139 Page 17 139 D6 1 Annex Guidelines and Tools Manuals ec ImPreSS If the model is not opened automatically it can be opened from within the Eclipse Package Explorer view currently it is not possible to open the file from within the Project Explorer Open the view Window Show View Other select Package Explorer from the Java category and navigate to the folder containing the EMF model element the folder name is the alternative 1d Resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe64e examplesystem samm repository Eclipse Platform File Edit Navigate Search Project Net4jExamples Staticstructure Editor Run Visualisations Window Help E le Bm JesuGueon PHREGT G
97. ing teams or the customers have to be available lt lt subsystem gt gt Process Control Server T lt lt component gt gt Service Dispatcher P x a n bd E k 4 s z s s 3 a ry Yy e IDataHistory E IDataAccess IDirectory component component lt lt component gt gt 2 lt lt component gt gt _ History Alarm Event Data Directory Dispatcher Dispatcher Dispatcher Dispatcher TIR 1 4 BE Ed Saag near 4 5 IEventHistory IHistory T composite lt lt composite AlarmProvider lt lt composite component gt gt component gt gt lt lt component gt gt component gt gt History Alarm Event Connection Data Manager Manager Manager Manager bebe ooo ee ge a ee OR pe GY ean P PH he te A tates rk PN tlt LD an ne I a ten ee et nk eee ey ale A components s Directory Manager V IController T Figure 2 Industry Demonstrator Static Architecture Q ImPrESS Consortium Dissemination level public Page 40 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 5 Specific Guidelines for the Enterprise domain No sp
98. ire any prerequisite installations apart from what can be determined from the above mentioned update site 6 2 5 Detailed installation procedure The process of installing Eclipse Bundles using an update site is described in the appropriate Eclipse documentation Thus 1t will not be repeated here O O ImPrESS Consortium Dissemination level public Page 58 139 D6 1 Annex Guidelines and Tools Manuals eg ImPrESS 6 2 6 Tool configuration Once installed the editor doesn t need any configuration to work properly 6 2 7 Tool prerequisites The tool needs a SAMM repository diagram file to work If such a file already exists it 1s sufficient to Double Click on it to open it and start the editor the tool In case such a file doesn t exist it 1s possible to automatically generate such a file from an existing SAMM repository A SAMM repository can be created using a textual editor or by other tools from the Q ImPrESS tool chain The following paragraphs will explain how to generate a diagram file from an existing directory First it is necessary to select the existing repository in the Eclipse Project Explorer Right Clicking on the entry shows a context menu similar to the one displayed in Figure 16 e Eclipse File Edit Navigate Search Project Run Visualisations Window Help e e e Resource Eclipse Platform F5 wa cil anl a iai Q lopli git gas ele o 5 zz Vv SAMM Example Instance yN examplesystem samm_
99. itable file can be obtained The screenshot in Figure 17 shows the diagram for the example SAMM repository A ex m OS Resource SAMM Example Instance examplesystem samm repository diagram Eclipse Platform d da Q a k j ws L7 rig o B sedge sSeUms s9q 1254 9 Gros Ej Resource Tahoma 9 3 BET Av Ste En 98 Ro pf X EI d 100 im id examplesystem samm repository diagram 33 _ ml Yu SAMM Example Instance Q messageOutput Q messagelnput o Guilnterface o DataRetrieverinterface lt gt Palette b i examplesystem samm hardware EAA r examplesystem samm qosannotation 9 9 e clientComposite Provided Guh gt rlwaRetrieverPC Provided DataRetrie ls SL examplesystem samm repository Interface e quiComponentPC Provided Guilnterface examplesystem samm repository diagram y interfaceinheritance examplesystem samm_seff yd 4j examplesystem samm servicearchitecturemodel Yi quiComporantpttiComponentPC Reauiged DateRetrsyerlpterfa e Composite Rentir d QW K RequiredinterfacePort id examplesystem samm servicearchitecturemodel diagram OperationBehaviourList amp guiComponentinstance OperationBe ProvidedinterfacePort YN examplesystem samm_targetenvironment ComgonentTypeBehaviaurList 3 datafetrieverSI ComponentTyp o MessageType yN examplesystem samm_usagemodel OperationBehaviourList ComponentTypeSchaviourList SourceEventPort H
100. ites of the Q ImPrESS toolchain 6 4 5 Detailed installation procedure SISSy is shipped with the Q ImPrESS toolchain Please refer to the installation procedure of the Q ImPrESS toolchain Q ImPrESS Consortium Dissemination level public Page 93 139 D6 1 Annex Guidelines and Tools Manuals eg ImPrESS 6 4 6 Tool Usage 6 4 7 Tool configuration After installation SISSy does not have to be configured 6 4 8 Tool prerequisites 6 4 9 Tool activation 6 4 10 Usage instructions and expected outputs In order to perform a SISSy run to derive a GAST file from source code the source code has to be available on the machine e g as a project In the following we describe how to apply SISSy on a Java project We use the CoCoMe java implementation for this The most convenient way to apply SISSy is to provide the source code as a workspace project first We import the CoCoMe project in the workspace Resource Eclipse Platform Bl x File Edit Navigate Search Project MetdjExamples Run Visualisations Window Help 2 EM Fy Lo Resource Je xui e nmm av LEE Description TODO Compare real equality TODO Compare real equality TODS error handling TODO Handle properly TODO implement SD TODO Introduce time out For multi threaded RMI TODO multi Ehread TODO parameters need to be Fixed TODS Pop up error dialog T Q ImPrESS Consortium Dissemination level publ
101. ities and UI Controls to specify in the Run Configurations window for the plugin which reliability values to compute for which components of the system Q ImPrESS Consortium Dissemination level public Page 111 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 7 SAM Maintainability Prediction User Manual 6 7 1 Purpose of the tool The tool is an implementation of the KAMP method 1 e Karlsruhe Architectural Maintainability Prediction The purpose of the tool is to enable software architects to predict the maintainability of a software system using its architectural model The core part 1s support for a guided estimation of change efforts 6 7 2 Tool relationship with the Q ImPrESS workflow The tool takes the position for maintainability prediction in the Q ImPrESS workflow As inputs it uses Architecture Alternatives which are located 1n the Q ImPrESS backbone More exactly it uses the created Service Architecture Model for description of change in maintenance activities as output it delivers effort estimates for Architecture Alternatives Q ImPrESS Consortium Dissemination level public Page 112 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 7 3 Tool Installation The tool consists of a set of Eclipse plugins which have relationships with other O ImPrESS plugins 1 e the backbone plugin meta models etc The tool can be achieved from the O ImPrESS update site http q impress o
102. ities automatically In the example we mark the interface DatabaseInterface and select basic activity CHANGE Select Work Activities Choose your interfaces please Basic Activity Guilnterface DataServicelnterace Databaselnterface CHANGE a The next wizard page is like in section 3 4 4 regarding the interface ports Here you can specify the interface ports which are affected due to the interface definition change marked before Select Datatype Activities As third possible starting point in section 3 4 2 you can select Change Datatype Definition You will get to a wizard page where you can mark the data types which are affected by the change request KAMP can derive proposals for follow up changes to interface definitions and as seen in the previous section interface port changes In the example we mark datatype userData with basic activity CHANGE Q ImPrESS Consortium Dissemination level public Page 122 139 a D6 1 Annex Guidelines and Tools Manuals e ImPrESS Select Work Activities Sle Please check the datatypes affected by your chan Datatype Basic Activity userlD userData CHANGE v In the following wizard pages you will then be asked to mark interface definition changes and interface port changes which are follow up activities to the marked datatype change Q ImPrESS Consortium Dissemination level public Page 123 139 D6 1 Annex Guidelines and
103. ition if you know directly affected data types Q ImPrESS Consortium Dissemination level public Page 118 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Select Work Activities Chonse the way ynu want to go through the derivation process Select Components Select Interfaces Change Datatype Definition Cancel Select Component Activities After pressing Select Components you will get to another wizard page where all components from the architecture model are listed Select Work Activities Please check the components which are affected by changes Component Basic Activity clientComposite serverComposite Cancel Q ImPrESS Consortium Dissemination level public Page 119 139 D6 1 Annex Guidelines and Tools Manuals eg ImPrESS Mark those components which will be changed by implementing the change request Additionally select what kind of basic activity ADD CHANGE REMOVE is done to the component In our example component databasePC is directly affected so we mark this component and specify basic activity CHANGE Select Interface Port Activities First Refinement of Component Changes The next wizard page shows interface ports which are provided or required by selected components of the previous wizard page Here you can refine the activity description by selecting the interface ports which are affected and selecting the kind of bas
104. led in the feature and installed automatically no special manual installation operations are needed if using this kind of installation 6 8 4 Installation prerequisites The JPFChecker tool has the following software dependencies JDK 1 6 or later the Java PathFinder model checker version 4 and libraries needed by Java PathFinder It can be downloaded from its webpage at http javapathfinder sourceforge net While JPFChecker imposes no strict requirements on the HW we recommend using a modern CPU and at least 1 GB of memory for non trivial services implemented in Java In general Q ImPrESS Consortium Dissemination level public Page 130 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS the memory reguirements of the consistency checking process depend on the complexity of Java implementation and behaviour model in TBP It is not needed to use multiple CPUs or a multi core CPU since Java PathFinder and the JPFChecker are single threaded programs The JPFChecker tool requires JDK version 1 6 or later since it uses the Java based compiler that is a part of the JDK It is not possible to use only JRE which does not contain the Java based compiler full JDK has to be installed on the system If you get an error message similar to unable to find a javac compiler usually on Windows OS make sure you have not installed the public JRE along with the JDK since the public JRE disallows the virtual machine acc
105. lidate Team k Selection Parent Compare With F Replace with i WikiTexk p is E a Property Load Resource Documentation Id Refresh demT6gq Mame Show Properties View Remove From Content Gbrl 4 E Shift Down Q ImPrESS Consortium Dissemination level public Page 25 139 D6 1 Annex Guidelines and Tools Manuals e ImPrE gt The other models are specified in a similar way Elements are created by selecting New Child or are being specified as attributes in the property view Create a Hardware Model Create a new element in the alternative Select Hardware Model and set Descriptor Repository as root object A Hardware model is used to specify hardware resources that referenced by resource definitions in the target environment model later All elements reside in a hardware descriptor repository Open the newly created file in the example it is named examplesystem samm hardware and make sure its root element is set to Descriptor Repository For the example system we create resource types for a processor a network a network interface a memory and a hard disk For the processor right click on the descriptor repository select New Child and Processor Descriptor A processor can contain multiple cores For every core right click on the processor descriptor select New Child and Processor Core Additionally elements that can be specified for a processor descriptor are TLB a
106. lysis is being run you can see the progress in the Progress Window of Eclipse Properties Progress 23 ie 7 O Launching My Reliability Analysis Launching Executing reliability analysis After the analysis has been executed an output folder the reliability out folder in the root of the project containing the analyzed model alternative is created Inside such folder you will find a sub folder named with the identifier of the alternative analyzed which contains the results of reliability analysis The current implementation of the tool saves the results in the analysis results file which contains the global reliability value for the system alternative under the specified usage scenario Q ImPrESS Consortium Dissemination level public Page 110 139 D6 1 Annex Guidelines and Tools Manuals ec ImPreSS Packa f Hierar ES x m analysis results 3 O amp id P true U s UzzloqdsEdG67LKYBXaQIFg success Result gt fs gt Alternatives repository lt gt oo MyAlternative e2e308f4 fcd4 43bf v reliability out v e2e308f4 fcd4 A3bf 8bO03 eSfasf out dtmc eut klaper Reliability analysis model pctl Reliability analysis model pm 6 6 10 Tool future extensions and planned activities In future releases of the tool we plan to e Integrate with the OW2 framework for analysis execution e Save reliability results not in txt files but with the results Q Impress metamodel e Add functional
107. me use case There is a relationship between the model abstraction level and the granularity of code instrumentation too at an high abstraction level code instrumentation can be rather sparse determining performance at component level As the level of details in the model increases instrumentation has to be performed at a finer resolution to check model consistency Each time the system has to perform a known execution and the same execution has to be predicted If prediction does not match system execution times the software engineer has to adjust the model before advancing to a new loop cycle To run the model we have first to complete it providing information regarding the component deployment scheme and user input The time spent configuring the model for a reference scenario depends on the complexity of the system but usually should be easier then running the entire system at least the model can run on one machine We collect quality prediction analysis results from model execution and we check how closely they match with real quality Q ImPrESS Consortium Dissemination level public Page 11 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS data we collected for the same reference model If differences exceed defined thresholds say system model performance differs for more than 20 the system performance measurements the software engineer has to go back to phase 2 2 4 checking again the quality annotations defined
108. mm_targetenvironment Eclipse Platform File Edit Navigate Search Project Net4jExamples Targetenvironment Editor Run Visualisations Window Help ar Je B m9 4 9 xxmeme 91mWM 1064 15x1 5 9 Z FY T Resource In x Package Explorer E E ExampleSystem j Resource Set E Z gt alternatives A 6 cb67ea90 2415 4460 b75a 911300efe64e yN examplesystem samm hardware je yN examplesystem samm_repository E yN examplesystem samm_targetenvironment E rj platform resourceJExampleSystem alternatives cb67ea9n 415 446n b76 3 01 130nesFa64a lav arnlacuckam camm barnakenvwironment Ei 4 Target Environment B Node ExampleSystemServer F S Container ExampleSystemContainer 4 Processor ServerProcessor E iz ExampleSystem Z gt generated alternatives El C gt cb67ea90 2415 4460 b75a 911300efe64e pes D examplesystem samm hardware i i lu examplesystem samm repository EE E ar examplesystem samm_targetenvironment Resource URIs Browse File System Browse Workspace oe db c ma X project Selection Parent List Tree Table Tree wth Columns ox s m W platform jresource ExampleSystem alternatives cb67e390 2415 4460 b75a Propert Value Clock Frequency 4 2000000000 Descriptor Documentation t Id akoJc eEd6EArxroyRbSA Name IZ ServerProcessor Q ImPrESS Consortium Dissemination level public Page 28 139 D6 1 Annex Guidel
109. n tool is applicable or not To give an example the creation of a PrimitiveDataType is possible if a ProvidedInterfacePort is chosen but impossible if a CompositeComponent 1s the target 6 2 14 Working with OperationBehavior One of the tools in the Inner Elements section shows a special behavior and will be explained in this paragraph Adding an element of type OperationBehavior opens a dialog box requiring the user to choose whether a SEFF behavior stub or a GAST behavior stub shall be created Q ImPrESS Consortium Dissemination level public Page 63 139 D6 1 Annex Guidelines and Tools Manuals i MessageType e ImPrESS 3y clientComposite Hb SourceEventPort e quiComponentinstance amp amp dataRetrieverSl ist 4 CompositeComponent H SinkEventPort OperationBehaviourlist n PrimitiveComponent reate SeffBehaviourStub ComponentType3eh m Create GastBehaviourStub T Y ywn antl Operationinput OperationOutput 9 Parameter OperationException E OperationBehavior 4 ComponentTypeBehaviour amp Subcomponentinstance Data Types ComplexDataType InnerElement PrimitiveDataType CollectionDataTypelnnertype CollectionDataType Figure 21 Create OperationBehavior Both options will result in a valid entry being created but will result in different types of behavioral models to be initialized After choosing an option the appropriate editor opens automatically and allows the user to edit the
110. nance Especially in domains where software solutions have a long life cycle Telecom Industry and are characterized by high quality standards the product evolution and maintenance phase is crucial This phase accompanies the product until its commercial end and may lasts years and often decades therefore very seldom is performed by the team involved in the initial product design and implementation Moreover shifting maintenance to a different location than production is becoming a normal procedure for medium large companies in an effort to cut down costs In this phase using a development tool that conveys design information and decisions is of utmost importance The Q ImPrESS platform lets perform a reverse engineering of existing code and can be used to easy maintenance of old software code while allowing to test alternative solutions without actually coding them Q ImPrESS Consortium Dissemination level public Page 7 139 D6 1 Annex Guidelines and Tools Manuals ane 2 Guidelines 2 1 Overview of the Q ImPrESS method The process of assessing the quality of large distributed component based software systems is quite complex The Q ImPrESS method outlined in D6 1 and depicted in the following picture splits the process in a sequence of phases easing the overall procedure The picture details the list of tools provided by the Q ImPrESS method at each process phase Process Q ImPrESS Toolbox Gather New Requi
111. nd Caches The Caches can be referenced then be processor cores use the Caches attribute If the software system that has to be modeled contains multiple servers which all run on the same processor only one processor descriptor needs to be specified The different instances are specified in the target environment then However if you need to model multiple processors that contain a different number of cores different processor descriptors have to be specified To specify a network element right click on the descriptor repository select New Child and Network Element Descriptor A network element contains several attributes that can be specified if needed This includes network properties such as latency and bandwidth A network interface element can be specified by right clicking on the descriptor repository and selecting New Child then Network Interface Element A network interface contains several attributes that can be specified 1f needed This includes network interface properties such as link latency and link speed To specify a memory element right click on the descriptor repository select New Child and Memory Descriptor A memory resource allows for specifying different attributes such as access latency bandwidth burst length and front side bus frequency To specify a hard disk element select New Child and Storage Device Descriptor Attributes that can be specified include read and write spe
112. nd counter example gt 4 2 Q Interface de itemis gimpress shc z 7 i amp Primitive Component CRMManag A Problems Javad OK lt lt Details Primitive Component PricingMan lt terminated gt Check CRI a 8 src Worker 4 J INI Counter example Found ES GBF de itemis gj h mud Vorker 4 INI de itemis gimpress showcase crm_simulator be service CRMManager_main runEnvirone E e itemis qimpress showcase crm simul Bl B de itemis gimpress showcase crm_simul Worker 4 INI E E de itemis qimpress showcase crm simu Worker 4 IN OE EH de itemis qimpress showcase crm simuk L Vorker 4 INI EH EH de itemis gimpress showcase crm_simul Worker 4 INI gt EH EH de itemis gimpress showcase crm_simul Worker 4 INI B de itemis gimpress showcase pricing_sin Worker 4 INFO zzzzzzzzzzz2zzz222zl22cl2ll2llzlzlllll2llllzlll2ll2ll2l2ll2ll2 2 2 results it de itemis qimpress showcase pricing_sin Worker 4 INFO error 1 org ow2 dsrg fm tbpjava checker ProtocolListener Tested component is not compliant with th E B de itemis qimpress showcase pricing sin Worker 4 INFO 22522222 2 2 2 2 2 2 2 2 2 2 2 statistics uh de itemis qimpress showcase pricing sin Worker 4 INFO elapsed time 0 00 00 iw de itemis qimpress showcase pricing sin Worker 4 INFO states new 4 visited 1 backtracked 2 end 1 i m EB de itemis qimpress showcase pricing sin Worker 4 IN
113. nector 55hjBUFbEd6atd gP41ECO P 44 amp Connector BzrGtOFdEd6atd gP41ECO b 4 amp Connector 3247645 amp Interface Port clientComposite Provided Guilnterfa K Interface Port clientComposite Required DataServi Subcomponent Instance dataRetrieverSI Subcomponent Instance guiComponentinstance b 5t Composite Component serverComposite Q Interface Databaselnterface Interface DatabaseManagerinterface Q Interface DataRetrieverinterface P Interface DataServicelnterface Interface Guilnterface b Message Type messagelnput b Message Type messageOutput Primitive Component P amp Primitive Component databaseManagerPC b amp Primitive Component databasePC P amp Primitive Component dataRetrieverPC P amp Primitive Component dataServicePC P amp Primitive Component guiComponentPC 5 Primitive Data Type userData H a 1 WM litems selected Figure 23 Project Explorer view with an instance of SAMM meta model O O ImPrESS Consortium Dissemination level public Page 70 139 D6 1 Annex Guidelines and Tools Manuals ifice Eclipse Platform Window Help e er amp t clientComposite 284576 hedifice 23 CompositeComponent 284576 clientComposite doc clientComposite Documentation required 1 InterfacePort MSOJNEFdEd6atd qP4lECQ clientComposite Required DataServiceInterface D e interfaceType DataServiceInterface E provided 1 InterfacePort CWGbIU
114. nformation on the number of successfully authorized calls in the DIAMETER extension services An equivalent of these measurements are the measurements that determine the service response time of the experimental setup Furthermore parts of the setup were used for monitoring and Q ImPrESS Consortium Dissemination level public Page 35 139 D6 1 Annex Guidelines and Tools Manuals measuring parameters used for describing black boxes e g processing throughput of an element for different background loads etc The model was implemented in Mathematica and Palladio Mathematica implementation is described in aforementioned paper Palladio model is based on Mathematica implementation meaning that M M 1 and M M cc queues were represented in Palladio with appropriate Palladio constructs e g Processor sharing processing units and Delay processing units The results obtained through experimental measurements and performance prediction modelling in Mathematica are shown in Figure 2 Comparison of the results shows deviation of less than 10 between experimental results and performance prediction Palladio prediction results aren t visible in the figure because used Palladio installation or our knowledge of the Palladio tools was only able to produce single prediction at a time an equivalent to a single measurement taken at a time This means that we could show results obtained through Palladio as an Excel based graph similar to the graph of
115. nt Event Port t EventPort IB NAME I doc p 2 DOCUMENTATION message REFN STATICSTRUCIURE MESSAGETYPE Execution Resource ExecutionResource INT frac L FLOAT z processor REFN DEPL TARGETENV PROCESSOR 1 Gast Behaviour Stub GastBehaviourStub ID I 1 Q ImPrESS Consortium Dissemination level public Page 77 139 D6 1 Annex Guidelines and Tools Manuals mo InnerElement InnerElement ID NAME doc p gt DOCUMENTATION m type REFN DATATYPES TYPE Interface Interface ID i NAME doc DOCUMENTATION M j Interface Port InterfacePort ID NAME doc DOCUMENTATION interfaceIype REFN STATICSTRUCIUBRE INTERFACE F requiringComponentIlIype REFN STATICSIRUCIURE COMPONENTTYPE DrovidingComponentlIype REFN STATICSIRUCIURE COMPONENTTYPE Q ImPrESS Consortium Dissemination level public Page 78 139 D6 1 Annex Guidelines and Tools Manuals e
116. ntEndpoint ID doc DOCUMENTATION z subComponent REFN STATICSTRUCTURE SUBCOMPONENTINSTANCE port p REFN STATICSTRUCTURE PORT z 7 Subcomponent Instance SubcomponentInstance i ID h NAME m o doc 2 DOCUMENTATION m F realizedBy REFN STATICSTRUCTURE COMPONENTTYPE Q ImPrESS Consortium Dissemination level public Page 88 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS TLB TLE kind cacheKind g entryPgSize INT ssoOc INT z entriesCount L L INT 1 r Target Environment m TargetEnvironment ID NAME m doc L DOCUMENTATION descr m DESCRIPTION 1 I I node La tat node ai 1 Type collectionDataType complexDataType primitiveDataType Q ImPrESS Consortium Dissemination level public Page 89 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS XSD Primitive Data Type nyn BEES nn a an s LE note e Q string e int e 2 float e 23 date e 4 4 time e 5 boolean 6 3 11 Caveats Describe here what p
117. of editors The possible open actions are shown in the pop up menu of each model entity Q ImPrESS Consortium Dissemination level public Page 55 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 2 Repository Editor User Manual 6 2 1 Purpose of the tool The tool described in the current document is a graphical editor for components of a Service Architecture Model SAM to be maintained subsequently in a repository It is intended as a complement for the textual editor for repository components Users being more familiar with graphical editing environments will prefer this to the textual editor Last but not least such an editor enables users to adapt the graphical representation of their models mostly resulting in a better visualization than what can be obtained from automatic visualization tools using the repository components The tool is completely integrated in an Eclipse development environment and is available in an initial version covering all the basic and some advanced features already 6 2 2 Tool relationship with the Q ImPrEss workflow The tool described in the current document belongs to the tool class Model editing Tools to update system models as described in section 2 1 in the document D6 1 This implies that it can be applied in any place in the tool chain where models of the appropriate type can be edited In the Q ImPrESS workflow described in document D6 1 the tool is intended to be used to
118. of the experimental setup is used for initial assessing the appropriateness of the level of service and component abstraction So for the initial assessment the model contains the legacy system represented as two nodes DIAMETER clients and servers clusters each client and server represented as a node load balancers in front DIAMETER clients and servers cluster load balancers are represented as a node with round robin scheduling and the network links between all aforementioned elements All elements are treated as black boxes and are denoted by their processing throughput Network elements are denoted by their link throughput Detailed description of modelling principles can be found in the paper Black box and Gray box Components as Elements for Performance Prediction in Telecommunications System published in the Proceedings of the 10th International Q ImPrESS Consortium Dissemination level public Page 34 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Conference of Telecommunications ConTEL 2009 pp131 134 also mentioned in D 5 Plan for the Use and Dissemination of Foreground N 4 Extension service aM DUIS IO AGO AIII GSG Un 7 3 7 T D
119. of the system will be affected Moreover the level of model details abstraction level can differ for different components The components more interested by the change scenario should be thoroughly modelled as the more fine grained the model is the more accurate the quality prediction on the alternative can be The abstraction level measures the level of details and accuracy of a model with respect to the system modeled At an high abstraction level a system 1s described by few composite components or sub systems As an example if the system under analysis is a plant PCS Process Control System the legacy ERP system at level 3 could be modeled as a single component providing daily production schedules maybe updated several times a day and requesting control data back without affecting the accuracy of the analysis method on the PCS system At a medium abstraction level the number of components increases but they still lack an adherent description of their internals as obtained reverse engineering components code and quality annotations are still manually inputted Composite components reveal details of their structure interfaces and connectors are fully described At a low abstraction level the model precisely adheres and describes the components under analysis There is a trade off to consider in choosing the right abstraction level While time spent in modeling decreases shifting toward an higher abstraction level the deviation bet
120. oftware o mas wer un eem Figure 3 Installation process of Backbone feature via O ImPrESS update site O O ImPrESS Consortium Dissemination level public Page 44 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS 6 1 7 Tool Usage 6 1 8 Tool configuration Backbone has no special configuration It is automatically activated via opening a project with the Q ImPrESS nature set 6 1 9 Tool prerequisites Backbone has no prerequisites 6 1 10 Tool activation The Backbone infrastructure 1s activated when the user associates Q mPrESS nature with a project To enable Q ImPrESS nature with a project the user has to right click on the project and selects the item Add Remove Q ImPrESS nature from the menu see Figure 4 Hi Package Explorer L3 Te Hierarchy Li Project Explorer o Go Inte Figure 4 Enabling project Q ImPrESS nature If a project has the M ImPrESS nature a small icon of O is shown in the bottom left corner of the project icon de if the Project explorer view is opened To remove the Q ImPrESS nature follow the same steps as adding the nature to a project 6 1 11 Usage instructions and expected outputs The view of a project with Q ImPrESS nature includes two new nodes The first node called Ts Alternatives repository see Figure 5 contains a repository of alternatives Alternatives are organized into a tree Each alternative is marked with icon co and the alternati
121. ols required to create elements internal to the ones shown in the repository lt gt Palette Raap Interface F Interfacelnheritance K RequiredinterfacePort ProvidedInterfacePort 1 MessageType Hb SourceEventPort MH SinkEventPort 3 CompositeComponent 3 PrimitiveComponent gt Inner Elements Operation Operationinput OperationOutput 9 Parameter OperationException OperationBehavior 4 ComponentTypeBehaviour Subcomponentinstance Data Types ComplexDataType InnerElement PrimitiveDataType CollectionDataTypelnnertype CollectionDataType Figure 20 Editor tools palette Q ImPrESS Consortium Dissemination level public Page 62 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS In order to create such an element a user has to perform the same action independently from the tool At first the appropriate entry in the palette must be selected from the upper section and will be shown highlighted Then the mouse cursor must be moved into the editor canvas The mouse cursor shape changes according to the tool selected to show the user that an element of a given type is going to be created The action needs to be finished by clicking at an appropriate location in the editor canvas resulting in the creation of a new element and its placement at that location 6 2 12 Working with Inner Elements The second section in the palette contains tools for the creation of inner elements S
122. onents have to be specified This means that instances of existing component types i e instances of the GuiComponent and the DataRetriever component have to be specified for the composite component Right click on the composite component select Add Child and Subcomponent instance The newly created subcomponent instance element has a property name which is to guiComponentInstance Besides its Realized by attribute 1s set to the primitive component GuiComponent Q ImPrESS Consortium Dissemination level public Page 22 139 D6 1 Annex Guidelines and Tools Manuals yw examplesystenm samm repository 5 N Fas Resource Set El lel platFarm resaurceJExampleSystem alternatives cb67eaa0 2415 4460 b75a 911300eFe64e examplesystem samm repository EB Repository H E Primitive Component Gu omponent 2 Primitive Component DataRetriever J Primitive Component Dataservice un Primitive Component DatabaseManager e ImPrESS pu Primitive Component Database ly Composite Component ClentComposite Ps r Interface Port client Composite Provided uiInterFace Interface Port clientComposite Required Guilnterface MEL bcomponent Instance guiComponentInstance m InterFace Suilnterface m D Primitive Data Type userData Primitive Data Type userID eM Message Type messageInput DAM Message Type message utput Selection Parent List Tree Table Tree with Columns Tasks E Properties 3
123. onfiguration starts the transformation of the SAM model into a PCM model Once the PCM model has been created the simulation starts immediately To see the simulation status make sure the Simulation Dock Status is being displayed This can be done by clicking Window gt Show View gt Other and select the view Simulation Dock Status in the Other category Resource Eclipse Platform EH anl xl File Edit Navigate Search Project Run Visualisations Window Help ti JE amp SH O st iikae Qa lov Y Y E z FY LC Resource ERS Project Explo xA B Package Expl cs E op B amp lev Example System E gt Alternatives repository lt Main Alternative 5de6c5ba 9c8b 4b El Main Alternative 5de6cS5ba 9c8b 4b76 t z gvtotrace t samm hardware t samm_qosannotation t samm_repository t samm_seff H A AA t samm_servicearchitecturemodel t samm_targetenvironment z samm_usagemodel 1 2 outpath Z Tasks 12 Simulation Dock Status 3 _ E console TE g Status Stop ID _aG4pAcTdEd6iUZNgbrOIBA Location lt local gt Simulation Time O Measurements O J_ gt I After the simulation run has finished the results can be displayed Open the simulation results perspectives by clicking Window gt Open Perspective gt Other Select the PCM Resul
124. ossible obstacles a user can find during the normal usage of the tool or common reasons for the tool to fail and which are the possible workarounds Q ImPrESS Consortium Dissemination level public Page 90 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 3 12 Tool future extensions and planned activities Describe future tool enhancements 1f already planned O O ImPrESS Consortium Dissemination level public Page 91 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 4 Reverse Engineering Tool User Manual SISSy 6 4 1 Purpose of the tool SISSy 1s a tool that can be used to reverse engineer source code Based on source code a GAST representation 1s being created 6 4 2 Tool relationship with the G ImPrEss workflow Describe how the tool fits into the Q ImPrEss workflow Use a diagram to highlight its position in the overall process Q ImPrESS Consortium Dissemination level public Page 92 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 4 3 Tool Installation SISSy is provided as an Eclipse feature that bundles several Eclipse plugins It is included in the Q ImPrESS toolchain and can be installed via the Eclipse update mechanism SISSy can installed by using the following update site URL http sissy sourceforge net SISSy Nightly 6 4 4 Installation prerequisites SISSy is shipped with the Q ImPrESS toolchain Please refer to the installation prerequis
125. ponent H test type filter text l a S rt componen E S test jpf yerum 2 70 Acceleo Application ATL Transformation e test Eclipse Application aie oa Java Applet s gt Alternatives repository lt Java Application d n JET Transformation 6b scenario 2 Ju JUnit ie persiste JU JUnit Plug in Test Eee scenario EF l Launch JPF Check B p sam IE Y Launch Model Extraction i B Launch SAMM2PCM Launch Simple Model Analyzer Jy New configuration Launch SISSy i mM SISSyRun test i B MWE Workflow i A Operational QVT Interpreter 9 OSGi Framework i Q ImPrESS Reverse Engineering SimuBench jy Task Context Plug in Test Juj Task Context Test 2 Primitive Component CRMManager o Primitive Component PricingManager de itemis qimpress showcase crm simulator be service CRMManagerImpl Filter matched 23 of 23 items B s de itemis qimpress showcase crm simul Eg de itemis qimpress showcase pricing si i EB de itemis gimpress showcase pricing_si AB de itemis gimpress showcase pricing_si i EB de itemis gimpress showcase pricing_si H de itemis qimpress showcase pricing sii EE de itemis gimpress showcase pricing_si spring 2 5 5 jar ae lib H protocols HI src gen Figure 31 Selecting an alternative and a component to be checked Q ImPrESS Consortium Dissemination level p
126. ported automatic action PA E p Ericsson Nikola Tesla Development iterations Q ImPrESS Consortium Dissemination level public Page 6 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS While the Q ImPrESS method is described in details in D6 1 this deliverable includes some practical guidelines on how to effectively use the platform and collects the user manuals of the different tools forming the platform The rest of the chapter describes the advantages of adopting the O ImPrESS tools and method with respect to conventional IDE tools 1 2 Advantages of Q ImPrESS use during system design and software development Q ImPrESS is based on the Eclipse and Eclipse EMF frameworks and can therefore be adopted easily and integrated 1n the development environment With the use of the O ImPrESS IDE the model of a large component based system can be handled efficiently Moreover several different evolving alternatives can be modeled and evaluated avoiding the implementation testing deployment phases of the traditional production cycle A key feature of the Q ImPrESS toolset 1s the notion of modeling abstraction level Q ImPrESS allows a software engineer to describe a component either as a gray black box in terms of quality attributes stopping at a high abstraction level while fully modeling main components using the analysis tools provided by the platform 1 3 Advantages of Q ImPrESS use during software evolution and mainte
127. posite Provided auiInterFace En HO Interface Port clientComposite Required auiInbterFace p E Subcomponent Instance guicempaonentInstance sm Subcomponent Instance dataRetrieverInstance Connector MdvH MeSEd amp Map3ccE GvQ ies lt gt Component Endpoint _gneaEcSsEd MGp3ccE Gyo Bling 2ocomponent Endpoint _1TS4MSsEd6MGp3cce GYQ m Interface suiInterf ace e D Primitive Data Type userData ub D Primitive Data Type userID espe I Message Type messageInput ET Message Type messageQutput S lection Parent List Tree Table Tree with Columns Tasks E Properties 8 Property Value Documentation I f Id _1Tch4MSS5Ed6MGpSecE oyq Port H Interface Port GuiComponent Provided Guilnterface Subcormponent ET Subcempanent Instance quiCampoenentInstance The connector connecting the two nested components has to be created in the same way It holds two subcomponent endpoints instead of one component endpoint and one subcomponent endpoint The last connector has a subcomponent endpoint referencing the required interface port of the nested DataRetriever component and a component endpoint referencing the required interface port of the ClientComposite endpoint Confer to D2 1 or the example system instance for details The other composite component called ServerComposite has to be created 1n the same way It contains subcomponent instances referencing the DataService and the DatabaseManager
128. r of iterations e SEFF Branch Action branch probability e SEFF Internal Action CPU resource demand All three kinds of QoS annotations need to reference a corresponding action of a SEFF model e g the examplesystem samm seff file Add the file as resource to the QoS annotations file as described in Section 0 Besides specified resource demands need to reference a resource from Q ImPrESS Consortium Dissemination level public Page 31 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS a SAM target environment e g the examplesystem samm_targetenvironment file Add the file as resource to the QoS annotations file as described in Section O To add a QoS annotation for specifying the number of iterations of a LoopAction right click on the QoS Annotations root element select New Child and LoopCount Currently two kinds of LoopCount QoS annotations exist one for SEFF LoopActions and one for GAST loop statements Unfortunately both currently have the same name LoopCount and cannot be distinguished in the list Once created you can check if you have chosen the right LoopCount element by having a look at its properties If it contains a property called Loop Action you selected the SEFF LoopCount If it contains a property called Loop Statement you selected the GAST LoopCount In this case delete the element mark it and press DEL or right click and Delete and create the SEFF LoopCount element
129. ramework Q PCM Solver Q PCM Solver Reliability E Q ImPrESS Reverse Engineering Reliability Analysis S SimuBench Selected Top Level Alternative Main Alternative Jul Task Context Plug in Test Juj Task Context Test Apply Revert Filter matched 24 of 24 items amp am Os 1 items selected On the second tab some necessary configuration for the PCM simulation engine has to be provided To provide a valid run configuration a data source has to be provided that stores the simulation results This can be a file data source or a memory data source New file data sources can be created in the subdialog If necessary the maximum simulation time and number of measurements taken in the simulation can be adjusted If the checkbox Enable verbose logging is checked extensive logging output of the simulation engine is provided B a Java Eclipse File Edit Navigate Search Project Run Window Help mi JEBD amp ut m i e o ER EE sHeo eorv ES amp Java acc eret ir Package Explorer EL Project Explored Run Configurations xi X Create manage and run configurations l gt Example System Data source is missing Q y gt Alternatives repository lt Main Alternative a22de5c Main Alternative 322de5c5 0
130. rements 3 1 1 Qabstractor 1 Reliability Analysis j 2 textual Editor 2 Performance Analysis de Ern ain 3 Graphical Editor 3 Maintainability Analysis 4 SoMoX LE scenarios i EC TH TO EHHE lt lt iterate gt gt ee Y ET oltematlveSAMSWIthResults alternatiweSAMsWithResults 20mm no viable dltemative nro an Deploy System 3 8 ym afbrnatlve exists T selectedSAM model valid 1 Trade Off analysis mos SAM Hia p Validate iis x w 3 6 model revision needed Q ImPrESS Backbone A h 1 Jptcheck 1 Jpmf Monitoring Framework Figure 1 the Q ImPrESS toolbox The overall workflow starts with the definition of different change scenarios alternatives each potentially suited to solve the new requirements Each assembly change scenario has to be modeled then prediction analysis 1s performed for each model results are then confronted pair wise unless a suitable scenario is elected as the best solution Q ImPrESS Consortium Dissemination level public Page 8 139 D6 1 Annex Guidelines and Tools Manuals The next sub chapters contain some guidelines on each identified method phase starting from D e ImPrESS 2 2 Model a change scenario Model creation detailed as process 3 3 in D6 1 is a recursive process where the main steps in the cycle are the ones that follows 2 2 1 Components selection Depending on the change scenario only some components
131. ress Add Changing Domain below the workplan table Select Work Activities Please describe why you are going to change the software This description is needed to classify your changes Keyword E Description Cancel Q ImPrESS Consortium Dissemination level public Page 127 139 D6 1 Annex Guidelines and Tools Manuals c Pr en Effort Estimation The efforts for an analysis instance are determined using a bottom up estimation approach This means that developers have to provide time effort estimates for subactivities in the workplan Therefore select Edit Effort Estimation in the analysis instance overview page Workplan Editor Show Activities in Lowest Abstraction Level Developer Structure Architecture Element Type Architecture Element Name Basic Activity Estimated Effort Person Days Accumulated Effort E Composite Activity Complete Workplan 0 0 Composite Activity DBS 0 0 Component serverComposite CHANGE 0 0 0 0 gk Interface Port serviceComposite Required Databaselnterface CHANGE 0 0 0 0 Operation getUserForUserld Database CHANGE 0 0 0 0 zs Component databasePC CHANGE 0 0 0 0 g Interface Port databasePC Provided Databaselnterface CHANGE 0 0 0 0 Operation getUserForUserld_Database CHANGE 0 0 0 0 o Interface Databaselnterface CHANGE 0 0 0 0 Datatype Definition userData CHANGE 0 0 0 0 iGo back to Analysis Overview In this screenshot you see a tre
132. roperties Figure 8 Make alternative default action 6 1 14 Adding new model into alternative To add a new model into an alternative the user has to select the default alternative and in the pop up menu choose the action New gt Other see Figure 9 Q ImPrESS Consortium Dissemination level public Page 49 139 D6 1 Annex Guidelines and Tools Manuals i Package Explorer s Hierarchy L4 Project Explorer ea El leh demo El s gt Alternatives repository lt beg scenario 942aa60f 42b8 4384 9912 185fb63d71 f El scenario B ce amp ccdas da39 4180 871F 587bbcbi974d idi scenario Bl c22aadf0 2D62 4d09 be26 14f21b957e29 e IMPrESS 144 aa piu Sarin et ee re ees du Cn 7 125 P 1 j 1 4 Project c New alternative NN rS Ej Delete alternative 1 Ecore Diagram completi delete alternative isi Ecore Tools Project Delete Model ri ML Remove From Gontext Sri Althin s xML Schema ow pg Import t Example uy Export Ctrl M Refresh F5 Validate Team d Compare With d Restore from Local History Make alternative default Properties Alt Enter yl D Primitive Data Type userData pel Primitive Data Type userID samm seFf D samm_servicearchitecturemodel U sammi targetenviranment H samm usagemadel H E erc H E IRE System Library JavaSE 1 6 a B test mydsl Figure 9 Action for creating new model The new wizard is shown and
133. site Interface Databaselnterface Q9 Interface DatabaseManagerinterface Interface DataRetrieverinterface Interface DataServicelnterface Interface Guilnterface gt M Message Type messagelnput e Message Type messageOutput Primitive Component databaseManagerPC S Primitive Component databasePC gt Primitive Component dataRetrieverPC amp Primitive Component dataServicePC Primitive Component quiComponentPC Primitive Data Type userData Primitive Data Type userlD v d examplesystem samm repository diagram da nawa omnlacwctam Dannciten Figure 19 Project Explorer showing repository elements Q ImPrESS Consortium Dissemination level public Page 61 139 D6 1 Annex Guidelines and Tools Manuals en 6 2 11 Working with editor tools for repository elements The editor allows using the same elements as the textual editor for the repository The screenshot in Figure 19 shows the contents of the example repository containing several of the possible components The editor allows the user to create the same set of elements simply by selecting the appropriate tool from the tool palette to the right of the editor window The palette and the available tools are shown in Figure 20 Comparing the elements shown in Figure 19 to the tools shown in Figure 20 we see that all of the elements shown in the example repository are available in the tools palette The palette contains some additional to
134. st tab of the configuration select the Q ImPrESS alternative for which a PCM performance analysis should be performed Q ImPrESS Consortium Dissemination level public Page 102 139 D6 1 Annex Guidelines and Tools Manuals Java Eclipse m xd o xl File Edit Navigate Search Project Run Window Help Ira JE mam mide mm ic l5s 0 Qq JBEG O E Java n We o Run Configurations x I Package Explorer fan Project Explore Create manage and run configurations W Example System e SimuCom Data source is missing Q gt Alternatives repository lt Main Alternative a22de5c Z Main Alternative a22de5c5 0 9 ES Ej 3 Mame New configuration 1 samm hardware T3 i type Filter text samm qosannotation samm_repository nm Acceleo Application samm seff ATL Transformation samm servicearchitecture Eclipse Application samm_targetenvironment Java Applet gt Alternatives repository lt l samm usagemodel E Java Application Main Alternative s gt JET Transformation Ju Junit JU JUnit Plug in Test gt gt Y Launch Model Extraction Launch SAMM2PCM New configuration 1 m Launch Simple Model Analyzer Mew configuration eg Launch SISSy E MWE workflow A Operational QVT Interpreter OSGi F
135. t scsseeeeeeeeeeeeeeees y 1 3 Advantages of O ImPrESS use during software evolution and maintenance sees 7 2 GL LC I er 8 21 Overview of the O ImPrESS Menod vvcisasiscixscaicecsaetevarwiesacesstus deus eee e o Evi hides a vin qute UE Id CN AA CS 8 2 2 Modela change SOCHATIO EFE FFEF YRR FR ERFYN FFF REY Ua Sen QN OON cian a DET ORI OON FFF AWR 9 22l Componcnis E CU OF gn GORDDU OTO t 9 2 2 2 Model components as grey black boxes esesessssssssssssssssesseseee nennen eene enne nnne nnn 9 2 2 3 Reverse engineering of selected components eeesssssssssssssseessesseeen nnne nnne eene enne nns 10 22 Made Systcni assembly NER m 10 22 Model system deploy lent ee iieb Y euo OO NID OYN LD NOA veu UO Uan GU ON O 10 220 Modelsystem o ESF YY FFR FFR TT A RNA EEF EFFRO ERFYN EAR ENTER FU EA NY HAN 10 2 2 7 Add quality annotations ai beb GA GAA AR AAA C EUR POE PP O AR GR R G4 GANA OUA AUU AAA DA wg CAA 1 2 24 5 System Model ANCAUOM sasesana aa a aeai aandaa 1 2 2 9 System quality predictIoTl coecascncsucdcaiuwareceaedcctountessadewadecduesdeegouantbucninadaneaddeekwacssadadibavibadsunnduesoieasd 12 2 2 10 Results trade off analysis ei Ia CUR doc Sev PIECE Rico RPM Gem pupa CLE RENTE Np R SAU D Ud pud IE ga 12 2 2 11 Implement viable alternative and validate model eeeeeeeeeeeeee 12 22 Workflow detailed OVeFPIOW usu
136. tabaselnterface CHANGE e Interface Port databasePC Provided Databaselnterface CHANGE ED Datatype Definition userData CHANGE o Interface Databaselnterface CHANGE K Interface Port serviceComposite Required Databaselnterface CHANGE amp Interface Port databasePC Provided Databaselnterface CHANGE Add Changing Domain Go back to Analysis Overview Q ImPrESS Consortium Dissemination level public Page 125 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS Context Menu for Editing of Activities You can add modify and delete activities in the workplan by applying commands in a context menu her Pe dd re Lee y hor Pe s mra Eg amat H Composite DEL LAU Component Lun Add Refinement Interface Port Operation In a dialog you can mark or unmark activities and modify basic activities Select further Work Activities If elements are grayed it is not possible to uncheck them or change basic activity Element Type Mame Basic Activity i lt m omponent serverCampoasite CHANGE w aT InterfaceP ort sererlomposite Provided DataSernicelnterface Operation quernLlser DataSaervice c m InterfaceP ort seniceComposite_ Required _Databaselnterface Operation getlserForUserld_ Database Q ImPrESS Consortium Dissemination level public Page 126 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS Adding Milestones Composite Activities If you want to add an additional milestone p
137. te model The alternative that is judged as the best match is implemented The JPFChecker tool can be used in this phase to verify the consistency of a behaviour model with the actual implementation of a service After deployment the quality of the system is assessed and compared to the predicted If analysis results offset exceeds a threshold the alternative modeled should be checked again and validated implementation may be checked as well for compliance with the model 2 3 Workflow detailed overview This chapter depicts in details all the practical steps for the creation and editing of different service models Q ImPrESS Consortium Dissemination level public Page 12 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 2 3 1 An example on how to edit models using the textual editor After adding the O ImPrESS nature model files can be inserted into the alternative by right clicking on the alternative In the following we create a Q ImPrESS Repository Model a Q ImPrESS Hardware Model a Q ImPrESS TargetEnvironment Model a Q ImPrESS SEFF Behaviour Model a Q ImPrESS SAM Model a Q ImPrESS Usage Model and a Q ImPrESS QosAnnotations Model The following figure shows how the different EMF model files are connected with each other Q ImPrESS Consortium Dissemination level public Page 13 139 D6 1 Annex Guidelines and Tools Manuals M cd
138. te some of the elements associated to the element to be deleted in case those elements cannot exist apart from the element to delete 6 2 16 Moving elements Elements in the editor can be moved as expected Simply select them and move them using the mouse cursor 6 2 17 Sizing elements When an element is selected that allows resizing appropriate handles are shown Selecting one of those handles and dragging it with the mouse will change the size of the element accordingly In rare cases resizing 1s not possible and the element will retain its size even after an attempt to resize it 6 2 18 Working with Composite Components Working with Composite Components is special in that they feature a separate editor of their own Double Clicking on a Composite Component opens a new editor window in the Eclipse environment displaying the contents of the Composite Component The editor can be used independently from the Registry Editor and 1s described in a separate manual Q ImPrESS Consortium Dissemination level public Page 65 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 6 2 19 Caveats In its current version the tool doesn t extensively check the semantics of models created by the user So it may be possible to draw models according to the rules set forth in the meta model SAMM which will not have any practical meaning as they show situations which cannot be reasonably expected to occur It may be necessary to enhan
139. te the four Action elements Right click on the ResourceDemandingSEFF element select Add Child and Start Action Internal Action External Call Action and Stop Action respectively In the property tab for each action specify the name attribute of the action Next the predecessor and successor references have to be set Select the StartAction and select the InternalAction in the StartAction Successor Abstract Action property Afterwards the predecessor reference of the InternalAction has been set automatically In the same way select the InternalAction and set its Successor Abstract Action property to the ExternalCallAction element Finally select the ExternalCallAction and set its Successor Abstract Action property to the StopAction element The InternalAction can be used to specify resource demands that occur at a certain step in the behavior Since resource demands are specified by QoS annotations they are not specified in this model file but in the QosAnnotations model file The External Call Action is used to specify calls to other components that occur at a certain step in the behavior Since a component does not know with which other component it is connected the action only references a component s required port and the operation of the required interface that is being called Select the ExternalCallAction and specify the required interface port in the Called Interface Port property The select
140. tem contains two message types simply named messageOutput and messageInput For a message type you can provide references to parameters the message type contains For the message type messagelnput right click on the message type and select New Child and Parameter For this parameter set a name in the properties view and the parameter type the userID parameter yv examplesystem samnm_repository 0 E fe Resource Set yw platform fresource Examplesystem alternatives cb6 ea90 24 15 4460 b754 91 1 500efe64e examplesystem sanmm_repository E Repository a D Primitive Data Type userData D Primitive Data Type userID EI D Message Type messageInput Parameter userID Selection Parent List Tree Table Tree with Columns Tasks Properties 2 5 b Propert Value Documentation l Id zm TIkKIMMynEd Zurdesrmagg Name userID Type 33 Primitive Data Type userID A messageType messageOutput referencing the userData parameter type has to be created in the same way Interfaces Once the message types are created we can create the interfaces The GUI component of the example system provides one interface containing a operation whoisOperation Create this interface by right clicking on the repository then select New Child and Interface Set the name of the interface in the properties view e g GuiInterface Add the operation to the interf
141. toring 8 person hours 1 person day on analysis of monitored data and transformation of that data into suitable input parameters for Palladio 8 person hours for creating Palladio models and 8 person hours for performance prediction simulation and analysis Reliability Prediction At this stage of the Q ImPrESS project we couldn t construct a model for testing reliability predictions The reason to this is two fold First the Q ImPrESS method and tools are not mature to be used for reliability modelling and prediction and we couldn t prepare feasible reliability models for the experimental setup in reasonable time with the low level reliability tools that deal with Discrete Time Markov Chains DTMC or similar technique Second we began collecting data regarding open source software reliability parameter which we plan to use for constructing reliability models The use of this data and accompanying transformation of the data into input parameters for Q ImPrESS reliability tools cannot be described at this time However we are confident such description will be possible in the following months from the month M29 onward after the Q ImPrESS Q ImPrESS Consortium Dissemination level public Page 37 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS reliability tools become mature and validation activites start according to the plans of the DoW O O ImPrESS Consortium Dissemination level public Page 38 139 a D6 1 Annex
142. ts perspective In the Experiments View the specified data sources are displayed Select the specified data source of the simulation run The data source contains the results of the simulation runs For a performance simulation these results are stored in sensors For all operations and usage scenario the response time is stored for all resources the utilization is stored Q ImPrESS Consortium Dissemination level public Page 104 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS NX PCM Results Eclipse Platform a loj x File Edit Navigate Search Project Run Visualisations Window Help E l tGQik moti rea t e O Qa Gv l s 2 lt gt EI S PCM Results fF cr JFreeChart Histogram Viewe x ELI S Experiments View 3 Ww Sampling Rate UO P o xX lBnm E H Memory Datasource 0 G A MyRun RunNo 1 E o Experiment Runs Q Run Thu Oct 29 23 53 50 CET 2009 ID 0 MyRun Runo 1 Demanded time at serverConta amp b MyRun RunNo 1 Demanded time at serverConta MyRun Runo 1 Utilisation of serverContainer C 1 1 Histogram 0 60 0 554 0 504 0 45 MyRun RunNo 1 Utilisation of serverContainer H db MyRun RunNo 1 Wait time at serverContainer C db MyRun RunNo 1 Wait time at serverContainer H Response Time of Call whoisOperation GuiInterfe Gb Response Time of Call DatabaseInterface whoisO amp b Response Time of Call Dat
143. ublic Page 135 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS Java Eclipse Run Configurations x i81 x File Edit Navigate i Create manage and run configurations Ira Q L E tava Packag fg Hie O E Task List 3 a ml d gt i d Ux Ea Mame Check CRMManager component Ite test type Filter text r z diii X Le Els test jpf Select component JPFCheck configuration B s gt Alterni m Acceleo Application ay o ATL Transformation Behavior protocol test jpf protocols CRMManager tbp Browse eoo scer Find x cb scer Eclipse Application env valuesets de itemis qimpress showcase crm_simulator TestCRMManager Pes M JRE Syst E Java Applet EX Uncategorized H 3 hibernat 3 Java Application tH T jpfcheck Ww JET Transformation H 3 log4j 1 Ju Junit amp BJ persistel JU Init Plug in Test z Bd scenario Launch JPF Check BE Outline 23 C E amp sam New configuration 1 og i Y Launch Model Extraction i Launch SAMM2PCM An outline is not available E Launch Simple Model Analyzer m Mew configuration E m Launch SISSy ER SISSyRun test MWE Workflow 2 Operational QVT Interpreter OSGi Framework a Q ImPrESS Reverse Engineering S SimuBench aE Jt Task Context Plug
144. uch elements can only be created within other elements already placed on the editor canvas The use of these tools is in no way different from the tools of the upper section To use such a tool its icon must be selected and will be shown highlighted Moving the mouse cursor into the canvas of the editor results 1n different cursor shapes depending whether the chosen tool can be applied to the given context or element or not As an example let s assume that we want to create a new Operation We select the tool and move the mouse cursor over the component clientComposite As it 1s not possible to create an Operation for an element of that type the cursor still shows a crosshair shape This changes when we move it over the element Guilnterface It is possible to add an element of type Operation to this element an Interface so the cursor changes into a hollow arrow with a plus sign to indicate that the operation can be performed The same behavior is implemented for the other inner elements shown in that section of the palette Depending on the type of tool selected and type of element the cursor is pointing to the cursor shape indicates the applicability of the chosen tool 6 2 13 Working with Data Types The tools for the creation of Data Types are shown in the lower section of the palette The tool behavior 1s following the same rules as explained for Inner Elements Here too the shape shown for the mouse cursor indicates whether the chose
145. ug As d Profile As d Validate Team Compare with Replace With WikiText r Y rF F F Load Resource Refresh Show Properties view Remove from context Grrl 4lb Shitt Bown For this datatype the type attribute has to be set to string Attributes can be set in the properties view If it is not displayed right click on the datatype element and select Show Properties View In the properties view set the type to string and the name to userData I examplesystem samm repository 23 ELI iS Resource Set El lo platform resourceJExampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe64e examplesystem samm repository z ep Repository 6 Primitive Data Type userData Selection Parent List Tree Table Tree with Columns ZF Tasks 71 Properties XN u gt prs Propert Value Documentation x Id I _Oh1zNcylEd6Zu7Desrmagg Name IS userData Type i string The same has to be done for the second primitive data type Set the name of this data type to userID and the type to int Q ImPrESS Consortium Dissemination level public Page 19 139 D6 1 Annex Guidelines and Tools Manuals e ImPrESS MessageT ypes For the operation parameters input and output message types have to be created Right click on the repository select New Child and Message Type Set the name of the message type in the properties view The example sys
146. ures that bundle several Eclipse plugins In order to use the PCM performance prediction both the O ImPrESS toolchain and the PCM tool have to be installed The Q ImPrESS toolchain can be installed by using the following URL http g impress ow2 org updateSite The PCM tool can be installed by using the following URL http sdqweb ipd uka de eclipse PCM_nightly 6 5 4 Installation prerequisites Please refer to the installation prerequisites of the Q ImPrESS toolchain The PCM tool might need a lot of memory Be sure to provide 512MB RAM to the Eclipse IDE see 3 1 6 5 5 Detailed installation procedure The PCM tool is installed in a similar way compared to the Q ImPrESS toolchain Open the Eclipse 3 5 instance that should hold the installation Click Help gt Install New Software Add the PCM update site URL http sdqweb ipd uka de eclipse PCM_nightly into the Work with field Make sure the Group items by category checkbox is not checked All PCM features should be displayed Select all features and click Next The features to be installed are displayed Click Next Review and accept the licenses and click Finish o Due to a bug in the Eclipse update mechanism Finish sometimes cannot be clicked once the licenses are shown In this case go back to the screen where to select the features Select the features and go on Then the Finish button should be enabled
147. ve label shows its name and internal ID One of alternatives in the repository is selected as a default one and it is marked by the icon i ee Q ImPrESS Consortium Dissemination level public Page 45 139 D6 1 Annex Guidelines and Tools Manuals The default alternative has a dedicated node in the Project view Under this node the contained models are shown B Each model includes model artefacts which can be edited in the same way as in the EMF tree editor e ImPrESS E Package Explorer fe Hierarchy L Project Explorer Xx E l EL S a Y cai oa El lee demo E A gt Alternatives repository lt 9 scenario 942a360f 42b8 4384 9912 186fb63d71ff scenario B ce amp ccdaa da398 4180 871F 587bbcb19 74d E c scenaria B1 cz2aadfF 9062 4d09 be26 14F21b957829 B 6o scenario 342aa amp DF 42b8 4384 3812 185fb amp 3d71FF E 0 samm hardware E 4 Descriptor Repository Samim qasannatatian fj samm repository E Repository examplesystem Repository p e Composite Component clienbCompoasibe at Composite Component serverlomposite mq Interface DatabaseInterface me Interface DatabaseManagerInterface m Interface DataRetrieverInterFace zy InterFace Data5erviceInterFace B o InterFace Guilnterface Z E Operation whoisOperation GuiInterface espe i Message Type messageInput EM Message Type message it put pi Primitive Component databaselManagerPiC m s Primitive Component dababasePC pi Primitive Component dataR etri
148. vel abstraction for modelling elements of the demonstrator call initiating legacy system node call processing Q ImPrESS Consortium Dissemination level public Page 36 139 D6 1 Annex Guidelines and Tools Manuals legacy system node a node that can process DIAMETER based AAA requests DIAMETER client and DIAMETER server Such grain level is commonly used in the telecommunications domain Finer grains lower level abstractioning of the elements of the demonstrator or any solution in general is possible but demands significantly more time and resources to be used and thus must be clearly justified In this initial assessment we modelled black boxes through monitoring their service response time for different conditions processor load network throughput etc Such monitoring was only necessary for non legacy parts of the experimental setup Legacy systems are well documented and this documentation contained information needed for conducted initial assessment of the appropriateness of the abstraction level As for the non legacy parts of the system we used our own performance monitoring tools This shouldn t pose any kind of constraint because every company in the telecommunications domain has a wide variety of different performance monitoring tools at its disposal this 1s one of the essential types of tools a company in telecommunications domain must have Source code availability isn t necessary because service response times c
149. views gt JET Transformations gt Model Validation gt Run Debug e nsert the root directory in which Prism has been installed for example var develop prism 3 3 beta2 linux eSave the configuration by clicking ok 6 6 7 Tool prerequisites To run an analysis a model of the system must be first designed In detail the Reliability Tool takes in input a specific Q Impress model alternative 6 6 8 Tool activation To run the analysis an a model alternative e Open the run configuration window of eclipse From the menu select Run gt Run Configurations e Double click Reliability Analysis from the left menu to create a new launch configuration e Select from the tree menu the alternative to analyze Q ImPrESS Consortium Dissemination level public Page 109 139 D6 1 Annex Guidelines and Tools Manuals P Acceleo Application v lei MyQimpress ATL Transformation v D fs gt Alternatives repository lt Eclipse Application E Java Applet 3 Java Application t JET Transformation Ju JUnit Ju JUnit Plug in Test MWE Workflow 2 Operational OVT Interpreter amp OSGi Framework Output Folder MyQlmpress reliability out e2e308f4 fcd4 43bf 8b03 eSfa8f3a225e v Reliability Analysis Reliability Analysis Ji Task Context Plug in Test Jv Task Context Test e Click apply to save the configuration e Click on run to launch the analysis 6 6 9 Usage instructions and expected outputs When the ana
150. w2 org The tool provides the following plugins de fzi kamp service de fzi kamp ui de fzi maintainabilitymodel de fzi maintainabilitymodel edit de fzi maintainabilitymodel editor 6 7 4 Installation prerequisites The tool additionally needs the Q ImPrESS backbone plugins and the Q ImPrESS metamodel plugins i e SAMM etc Q ImPrESS Consortium Dissemination level public Page 113 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS NX 6 7 5 Tool Usage Create New KAMP Model File In order to use KAMP you need to create a KAMP analysis model file by using a new file wizard Select the category KAMP models and the entry KAMP Maintainability Analysis Model The KAMP file contains everything which is necessary to manage maintainability analysis Select a wizard Create a new KAMP Maintainability Analysis Model model Wizards Z gt GMF Xpand l E Graphical Modeling Framework Z gt IvyDE z Java Z gt Java Emitter Templates E gt JET Transformations L amp KAMP Models KAMP Maintainability Analysis Model Maintainability Analysis Maintainability Prediction Wizards Z gt Model to Model Transformation Z gt Model to Text Transformation Z gt Modeling Workflow Engine Z gt openArchitectureWare Er E 5 HE HE Er E Q ImPrESS Consortium Dissemination level public Page 114 139 D6 1 Annex Guidelines and Tools
151. ween predicted and measured quality attributes increases Moreover complexity and size of models increase lowering the abstraction level This means that it 1s envisaged the need of another inner loop to consider a component model could not be yet at the right abstraction level and another cycle may be needed before passing to the next component to model The software engineer should choose this based on his experience 2 2 2 Model components as grey black boxes Components and services not touched by the change scenario do not need to be modelled in details The requirement is anyhow that quality annotations for these components meet requirements As only component external behaviour has to be defined we do not need any detail on the component s structure the quickest way to model it is to instrument it at its connectors deploy and run it on a reference suite test and monitor it Q ImPrESS Consortium Dissemination level public Page 9 139 a D6 1 Annex Guidelines and Tools Manuals e IMPrESS 2 2 3 Reverse engineering of selected components We can obtain a model complete of component structure for the selected components using reverse engineering technigues from component code which should be available otherwise the component cannot be changed Software could need some adaptations before being ready to be analysed by the reverse engineering tools provided by the O ImPrESS ide The time consumption of this phase is unpredi
152. with the GAST EMF editor Open the file and browse the file contents to view the results Java cocome impl gast output gast Eclipse Platform E ml x File Edit Navigate Search Project Met4j Examples GAST Editor Run Visualisations Window Help NE le ia sum e ns S41 5 Q0 q Fy Java Resource EEG Ql B 8 2 Package Explorer S IU EA oast outputigast 000 B8 i B n Resource Set El ie cacame impl H 4 Variable Access PHcOhMATEd amp vutFWwaglcjvA a B 48 src gt Directory FILE Fe rse Directory ARCHIVE C H JRE System Library ire amp 4 Directory UInknownDireckory Fah Referenced Libraries Package java i l gt activemq data 5 l gt derbydb i E doc E lib ps ackivemq log E gast_output gast Package javax Package org Package org junit Package org apache Package org netlib lt gt Package org cocome bs Package arg cocome tradingsyskEem E d Package org cocome tradingsystem external GAST Class org cacome tradingsystem external Bank GAST Class org cocome tradingsvstem external Debit GAST Class org cocome tradingsystem external TransackionID l Package nrg cocome tradingsystem external impl B gt Package org cocome tradingsystem cashdeskline E gt Package org cocome tradingsystem inventory ce gt Package info M Selected Nothing Bum i E Readme txt 6 4 11 Caveats If a SISSy run fails try to regener
153. y and select Repository model Q ImPrESS Consortium Dissemination level public Page 15 139 D6 1 Annex Guidelines and Tools Manuals ImPrESS jBix Select a wizard pr Wizards type Filter text Fl Model to Text Transformation E E Modeling Workflow Engine H E Palladio Modeling H E Plug in Development H E Q ImPrESS E di a ImPrES5 EMF Models Hardware Model LA O ImPrES5 ResultModel Model Wl Q ImPrESS Seff Model l l Qosannotation Model Lal Repository Model z Staticstructure Model v Targetenvironment Model Fs ic ioa Model E go ere n gd Provide a file name for the repository ioi xi Staticstructure Model N Create a new Skatiestructure model Wr Enter or select the parent Falder ExampleSvstemJalbernatives cb67eaa0 2415 4460 b75a 81130 eFe64e 3 i Examplesystem e alternatives mE cb67ea90 2415 4460 b75a 911300 amp fe amp 4e File name examplesystem samm _repository Advanced gt gt 2 e coes O O ImPrESS Consortium Dissemination level public Page 16 139 D6 1 Annex Guidelines and Tools Manuals an In the next dialog step select the root object of the EMF model In this case this has to be the Repository element Select Repository from the list E New inl xl Staticstructure Model Select a model object to create 3 Model Object ML Encoding LITF 8 lt Back Mext Cancel After click
Download Pdf Manuals
Related Search
Related Contents
RVS 5000 - 20000 Herbicide IMPACT® POUR UTILISATION SUR LE Wireless ACE - users manual Croyance - Loi - Transfert Compte rendu Après Philips SHAVER 9000 SensoTouch 3D Electric shaver HQ9170 bathyMetrec•X - User Manual 0.07.B.0020 I5 user guide insert-6Jul2012-NG NX L24-A - VeranstaltungstechnikMueller User`s Manual Copyright © All rights reserved.
Failed to retrieve file