Home

D6.1 Annex: Guidelines and Tool Manuals - Q

image

Contents

1. Q ImPrESS Client Server Example alternatives ddea2420 f86d 4455 940c 807ec4d616dc massQueryUser BusinessLogic samm seff diagram Eclipse Bl x File Edit Diagram Navigate Search Project Run Visualisations Window Help JE e m iq rc EE a AA EEE Ej S PCMResuls Q ImPress amp Java Tahoma vig Y Y Dep a ag RS 75 L Project Explorer Pa y Navigator amp m kag massQueryUser_BusinessLogic samm_seff_diagram X lt E a E tS Client Server Example aj 25 Palette b E fe gt Alternatives repository lt 5 O S LJ B 6o main alternative ddea2420 f86d 4455 940c 807ec4d616dc jio j changed database implementation 3ad4d1e6 0c5a 4e7 gt Actions 9 Oo with database cache 685bd7c4 743a 4e59 bd65 a77b9 My StartAction E go main alternative g examplesystem samm hardware g examplesystem samm qosannotation tusinesaL oe Locpctior ExternalCallAction g examplesystem samm repository e LoopAction g examplesystem samm repository diagram O examplesystem samm_seff a BranchAction g examplesystem samm_seff bak ilg ForkAction g examplesystem samm_servicearchitecturemodel Stopaction g examplesystem samm servicearchitecturemodel diagram e O examplesystem samm targetenvironment E AcquireAction j examplesystem samm usagemodel E ReleaseAction massQueryUser_BusinessLogic samm_seff_diagram z a A RESULTS
2. m 153 4 15 Random Program Generator M QW occasus estes 60e reete IE E a enu ERAN VE va Ue SR opo VI ed Lu beuS A ex R eR 154 4 15 1 PIO iode TNS r9 0 RR A E A 154 4 15 2 Tool relationship with the Q ImPrESS workflow eese 154 4 15 3 Tool DEC FS IIS 1 Bosecvseueoi dad tibt NTE estdeae e ud dedita dict ede EEEE 154 4 15 4 Ee Ere BRUSH IO NNUS T m e 155 Generating am APP NC ATION ocn i oatibetihiteb ie thue buit esti qu eb tde delis t tuse un unt TiTa 155 Measuring generated application 2c cscseanassnasnacagecxnatsiaesnadasacanadsedaguadaina SA AFINES RE ERA RE RAN SPEO ERES AMETS UNS EUES RES 156 Predicting performance of a generated application essere 156 4 15 5 Took eo HESS C sner annn or e A m 157 4 15 6 Expect OU OR iin a e E n E E saa sencsnaasaadsaaoeaees 158 sari eui idiari nee ea EEEE EEEE EAEE E EAE E EEEE EE EAEE EE OEE EE 158 Measuring a generated applicatio scassesneee sitom netta RR aE A EEEE AEE OE E DEAE EAR EUER ERE 160 4 15 7 Bn E E E N E N E savonucueteancedecdnee 160 5 Appendix A Getting Started Suide m 161 Jd dI sanne a E eE E qa auc E N E EEE 161 3L IOM SSD en EE E E E E E NE eee 161 B APE E DRE 165 25 4 Result viewer and trade off analysis sxxsieeoniddeussiadsien 05 itdaccseiceensc nate
3. Memory Memory Memory HH STRING HEHH srRING H pe tem STRING H 9 7 size INT P r T i 4 EE _ E b 7 H y tesniptoc MemonyDeseriptor 7 70 T H QualifiedName Hi E i F ExecutionResource ExecutionResource Oo ExecutionResource H iHa coreld UNT 2H aaa fraction H DOUBLE HH y yn Y por mu A G Gx i Hi rocessor z Processor a HI 4 ae QualifiedName Processor Processor uu E Processor HH STRING 4 STRING PH 099 9 doc H STRING 4 9 7 descriptor H ProcessorDescriptor T 7 7 T i Qualified Name Hi _ EEE es C p Tom m m fy y m1 P AY E um Fi clockFrequency INT H j 247 X j PassiveResource PassiveResource m panny p se M H PassiveResource H STRING HH STRING 20 i H doc 3 STRING HU H capacity HINT y 9 9 Lu b pr 7 6 2 Hardware package samm deployment hardware NetworkElementDescriptor NetworkElementDescriptor o o T NetworkElementDescriptor H STRING H STRING H H doe STRING Ph 9 7 Z La ra gt ageregateBandwidth INT amp gt 7 forwarding Latency DOUBLE I gt 7 20224 M 7 X f 7 HardwareDescriptor HardwareDescriptor p essittienenDeeripir 7 t eetinertediesciper 7 P Prosessorer S torageDeviceDescriptor Q ImPrESS Consortium Dissemination level public Page 201 2
4. Id _QhizNeylEd6Zu70esrmagg Type t 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 O Q ImPrESS Consortium Dissemination level public Page 175 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 6 3 MessageTypes 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 system 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 m examplesyskem samm repository e5 E fe Resource Set F platFarm resaurce ExampleSvstem albernatives cb67eaa 0 2415 4460 b75a 9311300eFe amp 648 examplesyskem samm repository E Repository RS D Primitive Data Type userData 2 uae D Primitive Data Type userID ZR Message Type messagelnput Parameter userID Selection Parent List Tree Table Tree with Columns 4 amp Tasks f Properties XN Property Value Documentation iil dt Id DkJMMynEdezuz esrma
5. PNI internal architecture model sourcecodedeci amp SISSy amp src gen SSS SS QD UETWE UO SSS ISSO Ty Oomer LTES testDemo Worker 19 choice generators thread 1 data 2 Worker 19 heap gc 2 new 402 free 54 Worker 19 instructions 3373 Worker 19 max memory 100MB Worker 19 loaded code classes 92 methods 1194 Worker 19 DO SIII search finished 19 11 Worker 19 Task Composite Job Execution completed in 0 311967829 seconds Worker 19 Cleaning up Worker 19 Workflow engine completed task lal Writable Insert 17 36 Figure 127 Output of the Consistency checker when an inconsistency between the service s Java implementation and its behaviour model in TBP was detected O Q ImPrESS Consortium Dissemination level public Page 141 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 13 6 Caveats The most common reason for the Consistency checker s failure is when it 1s 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 PathFinder Moreover the user has to
6. New Sibling gt lt 2 Undo Set Ctrl z Redo Gri Y of Cut Copy Paste J Delete Validate Control Open Selection Parent Tree with Columns BAS Be Outine 2N E taskust i 77D Ds Profile As gt LA platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a Property 0 Clock Frequency Validate Descriptor Team b Documentation Compare With E Id Replace With gt Nome WikiText gt Load Resource Refresh Show Properties View Remove from Gontext Ghrl Alt Shitt Down In the upcoming dialog select Browse Workspace browse to the hardware file select it and click OR Resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe64e examplesystem samm targetenvironment Eclipse F lat form E nj x File Edit Navigate Search Project Met4jExamples Targetenvironment Editor Run Visualisations Window Help r3 E Bm 959 5dudgs I9 1 9 921 M 106 3 31 2 5 e Y FY T Resource E iz ExampleSystem Resource Set alternatives E E cb67e390 2415 4460 b75a 911300efe64e z FS examplesystem samm hardware i le examplesystem samm repository FN examplesystem samm_targetenvironment El rs platform fresource ExampleSystem alternatives cb67ea9N 7415 4460 b75 5 011 30nisFa64 5 av amnlaceckam carom FaraeFanvironment El Target Environment El gt Mode ExampleSystemServer PU Container ExampleSystemContainer Processor Serv
7. i P d d 1 E l n M ES EE SIn GGUR S GENES a XGA a ee GENES GENUS GREEN GENES GENS GEZES REGEM GENS GENES GNGUR EE J Figure 2 Activities supported by the Q ImPrESS platfor The process starts with an evolution request Requirements for the evolution request are collected and formalised The first activity aims at building the Service Architecture Model of the system if not already available Automatic or semi automatic activities like reverse engineering or performance measurements are performed in order to derive the SAM representation of the system or manual editors can be used instead The requirements of the evolution request are used for manual modelling of alternatives representing different solutions for the evolution scenario Model alternatives can also be derived automatically e g by using evolutionary algorithms Various quality assessments are performed for each alternative and quality prediction results are obtained The trade off analysis can be performed in order to estimate the effectiveness of the alternatives with respect to the evolution scenario requirements The entire process loops until a suitable alternative is found Q ImPrESS Consortium Dissemination level public Page 11 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 1 3 Advantages of using Q ImPrESS during system design and software development Q ImPrESS is based on the Eclipse and Eclipse EMF frameworks and ther
8. H leg ExampleSystem El E gt Alternatives repository lt ple System Alternative che fea Mew d Project oy Mew alternative DU DTD Delete alternative i Ecore Diagram Gompletly delete alternative Lisi Ecore Tools Project Delete Model XP XML Remove from Gontext Cr Ad ER S hif EHE Drm sy xML Schema eg Import Example CAEDIS Chr Refresh F5 Run As j Debug 4s Profile As E Validate Team d Compare With j Restore from Local History Make alternative default Properties amp lt Enter In the following dialog select the Q ImPrESS EMF Models category and select Repository model O Q ImPrESS Consortium Dissemination level public Page 171 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS E New a nl x Select a wizard Wizards type Filter text Model to Text Transformation L gt Modeling workflow Engine L gt Palladio Modeling L gt Plug in Development gt Q ImPrESS gt Q ImPrESS5 EMF Models dim Lal Hardware Model Lg Q ImPrESS ResultModel Model gl Q ImPrESS Seff Model bes Fs G osannatatian Model m Fs Repository Model n Wa Staticstructure Model i lal Targetenvironment Model LA Usagemodel Model 1 Fr ee ZIE Loto 1 Provide a file name for the repository Enee anis Staticstructure Model Create a new Skatiestructure model lt gt Enter or select the parent Folde
9. ATL Transformation Weights NameResemblance Blacklist nd Clustering Merge Threshold Min Start Value 45 a E Eclipse Application idis Clustering Merge Threshold Max End Value 100 E5 Java Applet Clustering Merge Threshold Increment 10 E i 3 Java Application JET Transformation Merge ide Naa Violation Ju JUnit Chaat Ju JUnit Plug in Test 472 Launch SAMMZPCM multiple m Launch SISSy Y Launch SoMox Composition Interface Adherence P mw workflow Package Mapping Le Operational QVT Interpreter Should basic components int Clustering Composition Threshold Decrement 4 osi Framework Ere DOR i Q PCM Solver Highest Name Resemblance Eg PCM Solver Reliability High Name Resemblance Q ImPrESS Consistency Checker Mid Name Resemblance Q ImPrESS Performance Analysis Re Q ImPrESS Reliability Analysis Sl Q ImPrESS Reverse Engineering Y Q ImPrESS cocome impl Low SLAQ S SimuBench DMS Distance from the Main Sequence Ju Task Context Plug in Test Hioh Coupling Ju Task Context Test Low Name Resemblance High SLAQ Slice Layer Architecture Quality m Filter matched 25 of 25 items ae Figure 66 Reverse Engineering launch configuration SoMoX weights specification Each strategy has a single or multiple weights which need to be configured The default weights provide reasonable components for most systems 100 means Use this strategy 0 means
10. Q ImPrESS Eclipse mife o x File Edit Navigate Search Project Run Visualisations Window Help Im lB a Sd e q m r os m 13 0 Qq Is FY S PCM Results Q Impress 6 Java gt 3 Project Explorer x y Ra Navigator ImPrESS El eS Client Server Example te gt Alternatives repository lt 7 B So main alternative ddea2420 f86d 4455 940c 807ec4d61 amp changed database implementation 3ad4d1 amp 6 0c5a 4 cD with database cache 685bd7c4 743a 4e59 bd65 a7 main alternative examplesystem samm hardware g examplesystem samm_qosannotation g examplesystem samm repository E E Repository exampleSystemRepository I D Collection Data Type userDataCollection D Collection Data Type userIDCollection st Composite Component clientComposite interface BusinessLogicInterface Operation massQueryllser BusinessLogic H Q Interface DatabaseInterface Interface DataRetrieverInterface Interface Guilnterface ae Message Type massQueryUserInput e Message Type massQueryUserOutput M Message Type userIdInput M Message Type userOutput 2 MENS Component BusinessLogic I DR o o T E Properties 3 B Problems E Console pL f 1 items selected H E Propert Value Documentation The Business Logic Component QoS Annotations Id i 63237 EMF property editor m E Resource B
11. cccccccccccccccccccecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeeeeeees 3l O ImPrESS project VIEW Gees enn nme ee nb ossa ses EE ee eee ee a aUe 31 he AGM A VA NI Ye ert ttt E one dens RE 32 moto e111 1a Sa der mitralho nily e eee E ee ee mene eee en ene EE re eae eae ees 35 Adding a new model into an alternative cccccccccccccccceceeceeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 36 O Q ImPrESS Consortium Dissemination level public Page 3 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Last change 25 01 2011 Mode IC I E c 39 Opening model artefact COIOfS sessirnir eneee aean Ap EE ERU EDAD NNUS DAS EU RS CREER a aT DS 4 ZU OLI OM D ODOT IO Sous eset tounS fatal Sarees ONERE mE HRS n Np mM Ea TIRES NN DES Ede DNI 4 PATO PAI ME WI ZANE ENT m 42 QUA CAC A c 44 Problems with the O ImPrBSS Project jeter eter tee eene ee ente eo ene vanae uen eoe neben inakaa Rena ea sin Mp ea Kananen edat 44 25 KOO T al 80 10107711 PRESE c s 45 Zo Pupose ordi TOON censu epee we eee 45 4 3 2 Tool relationship with the Q ImPrESS workflow sse 45 4255 ToOOEDEEFEGUISIG S esa Cre Coe One Coe EA E E 47 2 4 JIoOhdetVdlioibsasssddoutn edunt xU deteriorate SED Un dade atone Died uUa A 47 4 3 5 Usage instructions and expected OUtputs ccccccccccccccccccccceceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 48 Working with e
12. Figure 23 Annotation wizard project selector O Q ImPrESS Consortium Dissemination level public Page 42 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS The next wizard dialog shows on the left side the list of provided annotation types By selecting an annotation type the right menu shows repository elements which can be annotated see Figure 24 by this annotation type The dialog also shows properties of the annotation type and the selected repository element at the bottom t Bel x Annotation Wizard Select project where annotatios should be changed Select Annotation Type Select Entities L4 Probabilistic Branch Transition dbcall amp Probabilistic Branch Transition nodbcall LoopCount CpuResourceDemand HddResourceDemand BlackBoxServiceResponseTime LoopCount BranchProbability ActivityFailureProbability PassiveResourceDemand v Show all Annotation prototype Selected entity Property Value Property Value Annotation Type I Requirement Documentation t Documentation t Id WMKkLAIEjEd lyeAynIoegA Id I _x304kPZ2XEd Ut4EUsvt dQ Name x dbcall Name aName Probabilistic Branch Transition Ll MM SL LLL Ej 7 lt Back Next gt Ens Cancel Figure 24 Annotation wizard annotating repository elements O Q ImPrESS Consortium Dissemination level public Page 43 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS When the Finish butt
13. df2 cdb0 4022 331c 218c39d64660 PC No 4 PricingManagerImpl tbp Browse JET Transformation Ju JUnit Ju JUnit Plug in Test siia Launch SAMM2PCM multiple EM Launch SISSy Y Launch SoMox P MWE Workflow amp Operational QVT Interpreter 4 OSGi Framework PCM Solver O Q ImPrESS Consistency Checker C3 ClientGUI O New configuration Select component Consistency checker configuration env valuesets org owd dsrg fm thpjava envgen EmptyValueSet Browse G PricingManagerJPF siia Q ImPrESS Performance Analysis iis Mew configuration 2 Fi Q ImPrESS Reliability Analysis Y Q ImPrESS Reverse Engineering Y Client Server Application Y PricingManager r1 Filter matched 29 of 29 items Figure 125 Selecting the behaviour model in TBP and the Java class with the specification of method parameter values running the Consistency checker The result of consistency checking 1s displayed in a way typical to the Eclipse IDE More specifically output of the Consistency checker is printed to the console including a potential counterexample and some statistics and a message box with a short checking summary is displayed Figure 126 shows the output in the case that the Consistency checker found no inconsistency while Figure 127 shows the output in case the Consistency checker detected an inconsistency between the implementation and the behaviour model A new edit window with the source of the component or the generated abstract envir
14. gt ExternaiCall getserForUserTd Database Links l c ChangedMassQueryImplementation kamp Control Flow t WithDatabaseCache kamp Composite e Ff ResourceDema amp ProbabilisticBra 6 gi n z r E Properties 3 ont Problems E Console oe 1 items selected Decne Property Value Resource gt 4 gt Figure 138 A SEFF behaviour diagram 5 3 Quality predictions For all three Client Server example alternatives performance and reliability analyses have been performed The results are stored in the Result Model see below For the two alternatives that have been derived from the main alternative i e the database cache alternative and the changed database implementation alternative a maintainability prediction is also available In Q ImPrESS service architecture models can be enriched with QoS annotations which contain quality properties of the model that are relevant for the analysis All QoS annotations are stored in the examplesystem samm_qosannotation file in the example system alternatives Such QoS annotations can be behaviour branch probabilities loop counts resource demands as well as component failure probabilities A detailed description of the QoS annotations can be found in chapter 4 6 To repeat the performance or reliability prediction similar steps have to be performed A detailed description of the prediction can be found in the SAM Performance Predi
15. A EOM o SEVENTH FRAMEWORK PROGRAMME IMPrESS Project Deliverable D6 1 Annex Guidelines and Tool Manuals Project name Q ImPrESS Contract number FP7 215013 Project deliverable Annex of D6 1 Author s Vlastimil Babka Andrea Ciancone Ond ej David Mauro Luigi Drago Antonio Filieri Michael Hauck Lucia Kapova Jan Kofron Klaus Krogmann Michal Malohlava Marco Masetti Pavel Par zek Tom Poch Andrej Podzimek Cristina Seceleanu Petr T ma Work package WP6 Work package leader SFT Planned delivery date M36 Delivery date 25 01 2011 Last change 25 01 2011 Version number 2 0 Abstract This document describes the use of the different tools composing the Q ImPrESS platform Keywords Modelling Abstraction Tools Manuals Working Method Q ImPrESS IDE Tool Usage Q ImPrESS Consortium Dissemination level public Page 1 207 A D6 1 Annex Guidelines and Tool Manuals ImPrESS Last change 25 01 2011 Revision history 0 6 06 09 2010 M Masetti Added todo list introductory section 0 8 29 11 2010 M Masetti Text editors manual updated 0 9 09 2 2010 M Masetti Maintainability manual updated Added Getting started guide 1 1 10 12 2010 M Masetti Reverse engineering and Performance Analysis manual updated 13 12 2010 M Masetti Reliability Analysis Trade Off Analysis Consistency Checker User manuals updated Chapter Design optimis
16. D6 1 Annex Guidelines and Tool Manuals ImPrESS PrimitiveComponent PrimitiveComponent H PrimitiveComponent STRING EH STRING 09 doc STRING HGH T Ceuired po X d InterfacePort po OQ Go inc 09 eara js HOHH source 1 gt I T f j e EventPort Ty WO operbenav l l 4 4 j a s rr a oo gt compTypeBehav ComponentTypeBehaviour 93 siehe rT PassrveResource Ty Orr Me e OO i 7 t0 e JJ 4 CompositeComponent CompositeComponent CompositeC omponent EventPort CompositeStructure CompositeStructure CompositeComponent Ke ServiceArchitectureMode SubcomponentInstance SubcomponentInstance Subeomponentnstanes v STRING gt C STRING gy des rimo 3 t realizedBy M ComponentType 1 D QualifiedName E O Q ImPrESS Consortium Dissemination level public Page 196 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS ServiceArchitectureModel ServiceArchitectureModel yo oy y oy in sy ServiceArchitectureModel a STRING ina uP STRING LU gt doe H STRING Fr T provided y E p E C VS F F o oo on eee ee FT ys a a r InterfacePort 77 1 1 7 7H required HH Hr InterfacePort 75 3H 4 9H source HH
17. E Console 5 SP ILU a Undefined Property Value 5 s S GNE Core Documentation Rulers amp Grid Id UjpveJbbEd6H IYftaqgug Appearance Mame exampleServiceArchitectureModel Figure 34 Composite Editor running in the Q ImPrESS IDE It should be noted that if the diagram has been automatically generated not all graphical elements might be placed in a suitable way Working with components After the automatic generation of the diagram the main element the ServiceArchitectureModel or composite component might require just enough space in the editor to show all the contained elements and their labels see Figure 35 To allow changing the placement of components we have to increase the area for this component When we click into an otherwise empty area inside the component or its header the whole component is selected The editor indicates this by showing handles around the exterior of the component see Figure 36 When the user moves the mouse cursor over one of these handles the pointer changes to another form indicating the action possible when selecting and holding the handle For the handles on the sides of the component this allows moving the selected side thus enlarging the area taken by the component For the handles on either edge it allows moving that edge thus enlarging the component by moving two sides simultaneously This is compatible with analogous behaviour
18. Figure 5 Perspective selection dialog Q ImPrESS project activation Every Q ImPrESS project is marked by a dedicated Eclipse nature When applied to a project the Q ImPrESS nature enables the use of Q ImPrESS tools This is indicated by a small icon of the Q letter shown in the bottom right moved to upper right in latest releases corner of the project icon lei There are two ways of associating the Q ImPrESS nature with a project 1 by creating a new Q ImPrESS project with the nature enabled by default or 11 by associating the Q ImPrESS nature with an existing project explicitly using the pop up menu O Q ImPrESS Consortium Dissemination level public Page 26 207 D6 1 Annex Guidelines and Tool Manuals Create new Q ImPrESS project A new Q ImPrESS project can be created from the main menu File gt New gt Project ImPrESS Selecting a Q ImPrESS project item from the list opens the Q ImPrESS project creation wizard see Figure 6 The wizard allows users to create a new Q ImPrESS project with a given name Q ImPrESS Eclipse File Edit Navigate Search Project Run Visualisations Window Help Alt Shift N P Q ImPrESS Project Open File 3 Project DS New alternative Glose All GErTHH ShiFE4 WV Rees trcs pepe cue 3 Example F Other Ctrl M ave All Gtr Shitt S Move Rename Fz Refresh F5 Convert Line Delimiters To gt
19. Please describe why you are going to change the software This description is needed to classify your changes Keyword E Description Cancel Figure 112 Adding milestones Effort estimation The efforts for an analysis instance are determined by using a bottom up estimation approach This means that developers have to provide time effort estimates for sub activities in the workplan To open the effort estimation screen select Edit Effort Estimation in the analysis instance Overview page Q ImPrESS Consortium Dissemination level public Page 126 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Workplan Editor Show Activities in Lowest Abstraction Level Developer Structure Architecture Element Type Architecture Element Name Basic Activity Estimated Effort Person Days Accumulated Effort Composite Activity Complete Workplan 0 0 Composite Activity DBS 0 0 zs Component serverComposite CHANGE 0 0 0 0 ak Interface Port serviceComposite_Required_Databaselnterface CHANGE 0 0 0 0 Operation getUserForUserld_Database CHANGE 0 0 0 0 zu Component databasePC CHANGE 0 0 0 0 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 Figure 113 Effort estimation in the workplan editor The screenshot in Figure 113 shows
20. Print Gtrl P Switch Workspace d Restart y Import L Export Properties Alt Enter 1 ProcessorDescriptor intelCPU test 2 UsageRepository aName test project 3 TargetEnvironment exampleTargetEnviro 4 HardwareDescriptorRepository exampleH Exit Figure 6 Create Q ImPrESS project If activated the Q ImPrESS perspective contains a dedicated menu action File gt New Q ImPrESS Project which also leads to the project creation wizard O Q ImPrESS Consortium Dissemination level public Page 27 207 D6 1 Annex Guidelines and Tool Manuals Associating the Q ImPrESS nature with an existing project ImPrESS To activate the Backbone infrastructure user has to associate the Q ImPrESS nature with a given project This can be done in the project pop up menu using menu item Add Remove Q ImPrESS nature see Figure 7 Similarly the same procedure is used to remove an existing Q ImPrESS nature from a project An activated Q ImPrESS nature is indicated by a small icon of Q letter shown in the 2l bottom left corner of the project icon amp within the Project Explorer view H E alternatives e E Eest mwydsl A il c 38 M Mew Ld H E So Into rcu Open in Mew window i re Open Type Hierarchy F4 aor mcs Show In Alt ShiFE H E H Copy Ctrl Z E E3 Copy Qualified Name i5 Paste Ctrl Delete Delete Re
21. i P MWE Workflow a La Operational QVT Interpreter OSGi Framework Q PCM Solver Mill een Solver Reliability P Q ImPrESS Consistency Check E Da Q ImPrESS Performance Analy za New configuration P Re Q ImPress Reliability Analysis Y Q ImPrESS Reverse Engineerir S SimuBench Fs Ji Task Context Plug in Test Juj Task Context Test Selected Alternative Evaluation none Create Alternative Evaluation Delet Bo e gt 1 Revert Filter matched 25 of 25 items xai type filter text Mame New configuration QImPrESS Alternative Q ImPrESS Usage Model Q ImPrESS Alternative Evaluation SimuCom C Common Select Alternative Evaluation TREN select ternative lt i Alternative Evaluation D Alternative Evaluati Name of an alternative evaluation ernative Evaluation D Alternative Evaluation Main Alternative Add Close 9 D Client Server Example amp fe gt Alternatives repository lt El so main alternative eg amp changed database implementation D with database cache p m Acceleo Application ATL Transformation P Te Completions 7 Eclipse Application E E E E E ED ED 2 AS 1 4 ChangedMassQueryImplementation kamp 4 WithDatabaseCache kamp Ds amp 1 items selected Figure 75 Selecting the alternative evaluation for storing the performance prediction results O Q ImPrESS Consortium Dissemination level public
22. EB Repository examplesystem Repository at Composite Component clientComposite m m Composite Component server Composite o Interface DatabaseInterfFace EI Interface DatabaseManagerInterf ace EI Interface DataRetrieverInterFace EI Interface DataServiceInberFace 9 Interface GuiInterFace Bin lal Operation whoisOperation Guilnterface E M Message Type messageInput eM Message Type messageocutput Primitive Component databasemanager PE H a Primitive Component databasePC H Primitive Component dataRetrieverPC m s Primitive Component dabaServicePCc Bl amp Primitive Component quicamponentPc Pe ED Primitive Data Type userData 2 X Primitive Data Type userID E t samm sett E samm servicearchitecturemodel E E samm_bargetenviranment E sam usagemadel HES sre H E JRE System Library Java5E 1 6 B test mydsl Figure 11 The project view with enabled Q ImPrESS nature Creation of a new alternative The New Alternative action is located in the pop up menu of the alternatives repository node and in the pop up menu of each alternative see Figure 12 O Q ImPrESS Consortium Dissemination level public Page 32 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Ha Package Explorer fe Hierarchy L Project Explorer RO EB 5 Eo Fl les demo E fs gt Alternatives repository lt a eo scenario 942aa60f 42b Ada El oe SCE Delete alternative H Complets delete alternative E g Pelete Mo
23. Gd pg nein gt me urout or Java J runs gt 8rn Out Predicting performance of a generated application To import the model of generated application to the Q ImPrESS IDE and predict its performance store the output of the generated application which contains the timings collected during the execution into a file called main out in the directory of the generated application Then import the architecture of the generated application into the Q ImPrESS IDE using the Import RPG Architecture entry from the Eclipse import menu see Figure 134 Import Multiple RPG Architectures Import multiple RPG architecture description files from the local file system into the selected alternative Select architecture directory O Generate random values 9 Use measured values O Use timing values from a shared context 9 Use timing values from an isolated context O Use annotations based on average values 9 Use annotations based on empirical distributions Limit maximum depth lo Back Next Cancel Finish Figure 134 Importing an RPG architecture into the Q ImPrESS IDE The import facility comes in two flavours one capable of importing a single architecture one for importing multiple architectures stored in individual subdirectories The second flavour is O Q ImPrESS Consortium Dissemination level public Page 156 207 D6 1 Annex Guidelines and Tool Manuals more suitable for mass prediction val
24. Ju JUnit Plug in Test 475 Launch SAMMZPCM multiple m Launch SISSy c Y Launch SoMox P MWE Workflow Le Operational QVT Interpreter 4 OSGi Framework Q PCM Solver Ml pcm Solver Reliability Q ImPrESS Consistency Checker igh Q ImPrESS Performance Analysis 3 Rz Q ImPrESS Reliability Analysis Y Q ImPrESS Reverse Engineering Y Q ImPrESS cocome impl S SimuBench Jii Task Context Plug in Test Juj Task Context Test Filter matched 25 of 25 items zd 2 x Figure 68 Reverse Engineering launch configuration SoMoX blacklist specification O Q ImPrESS Consortium Dissemination level public Page 89 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS If you want the tool to create behaviour model in the form of Threaded Behaviour Protocols TBP check the checkbox at the G AST2TBP Settings tab see Figure 69 Run Configurations Create manage and run configurations _ Name Q ImPrESS cocome impl type Filter text Q ImPrESS Alternative SISSy Database Settings SoMoX Configuration G AST2TBP Settings Common Py acceleo Application een ATL transformation IV Run G ASTZTEP transformation D Completions Eclipse Application E5 Java Applet i 3 Java Application oW JET Transformation J JUnit Ju JUnit Plug in Test Launch SAMMZPCM multiple m Launch SISSy Y Launch SoMox MWE Workfl
25. M MH networkInterface NetworkInterface 7 f m j QualifiedName a0 gt i gt J NetworkElement NetworkElement NetworkElement ES STRING HOHH STRING MCA RCM STRING HH H H nedeConnections H h i a b i Fis I HH descriptor NetworkElementDescriptor f d t Qualified Name H 3 J THG siblings p GO 2 j NetworkInterface MetworkInterface H NetworkInterface Ss ns G Ga SING pry remi BED f El Jescriptor a _NetworkInterfaceDescriptor SS od TE Qualified Name IS Qualified Name Node Node 7 m A _ gt Node STRING STRING H4 9 doe gt STRING P 99 rrm description STRING D 2 Y J X JIT ane SAF containers gt D gt T LConainer 0 Naa Baal processors gt Dy Processor Er Q HG memories Ah t 77 t 7 V 4 J 4 F J po Memory 7 storageDevices HH nanan StorageDevice 77 H i networklInterfaces HOR AUN TY j gt a V 4 x s 4 E P J L 7 NetworkInterface 7 gt gt J ri Yy 4 J Q ImPrESS Consortium Dissemination level public Page 199 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS e Container Container Container H STRING H STRING HH 9 d
26. SubcomponentEndPoints are used to connect components on the same level e g two components nested in a composite component or two components in the Service Architecture Model To create a connection between a port of a component with a port of a nested component the ComponentEndPoint is used to connect the connector with the port of the outside component Such connectors are called delegation connectors and are drawn with a thick line in the Composite Editor Figure 42 shows a delegation connector in the Service Architecture Model of the example project It connects the outside port ServiceArchitectureModel Provided Guilnterface of the Service Architecture Model with the port clientComposite Provided GuiInterface of the clientCompositeInstance composite component O Q ImPrESS Consortium Dissemination level public Page 61 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS M examplesystem samm servicearchibecturemodel diagram 2 3 Ej gt Palette gt Ajo em exampleServiceArchitect JC ReqavediniesfaceRrt ClientComposite_ Provide amp IdientcompositeInstance ProvidedInterfacePort SourceEyentPort SinkEventPort client Compost d Inner Elements ay r rm T q amp i SubcomponentInstance Fai 4 Connector Ld H BusinessLog E SubcomponentEndpaint P Fai Fa businessLogicInstance E ComponentEndPoint SF AEE TE EE e beatae tick BusinessLogic e Database Pr amp databa
27. ignore this strategy Any value between 100 and 0 is accepted The most important weights are those for Clustering and Merge Those define the minimal and maximal abstraction level of the reverse engineered system Each weight is explained in more detail in the when hovering the slider text Q ImPrESS Consortium Dissemination level public Page 87 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS The NameResemblance sub tab lets you specify pre and post fixes which should not be considered as indicators of similarity see Figure 67 If for example Event is a typical postfix which does not indicate that classes belong to a single component add Event as a postfix Run Configurations B a X Create manage and run configurations 4 gt i gt Li x El Name Q ImPrESS cocome impl type Filter text Lal Acceleo Application ATL Transformation Weights NameResemblance Blacklist S Completions Prefixes o gt Eclipse Application r E5 Java Applet r 3 Java Application oW JET Transformation JU JUnit Ac JUnit Plug in Test a a Launch SAMMZPCM multiple m Launch SISSy Y Launch SoMox F P MWE Workflow U Le Operational QVT Interpreter 4 OSGi Framework Remove selected Remove selected Q PCM Solver O Add prefix FO Add suffix E PCM Solver Reliability Q Q ImPrESS Consistency Checker sigh Q ImPrESS Performance Analysis Bet Q ImPrESS Reliab
28. modelling loop where model comes closer to the system modelled at each loop cycle The already mentioned model abstraction is refined as well during these loops Usually the software engineer starts modelling the system at a 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 same use case There is a relationship between the model abstraction level and the granularity of code instrumentation too at a 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 by 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 it should be easier then running the entir
29. such as usage model response time and throughput as well as resource utilizations For every result different statistical values are given mean median 10 quantile and 90 quantile A detailed description of the Q ImPrESS results viewer can be found in Section 4 12 ImPrESS igixi File Edit Navigate Search Project Run Window Help a lB d E um m 5 BRB 6n 81359 0 m M 105 9 15 re et Geo FY S PcMResuls Q ImPress amp j Java 5 Project Explorer 23 bh Navigator 2 Y 7HlBz outline 23 b El e Client Server Example 4n outline is not available x E te gt Alternatives repository lt r Go main alternative 3 0 RESULTS Ele gt Result Repository E gt Alternative Evaluation Main Alternative El gt Performance Prediction Result 3 lt gt Cpu Resource Utilization gt Result Distribution 8 634000000000015 Ele gt Hdd Resource Utilization gt Result Distribution 21 41199999999992 lt gt Response Time gt Result Distribution 21 46142857142908 E Throughput Po gt Result Distribution 0 014046822742474917 He gt Reliability Prediction Result lt gt Alternative Evaluation New mass query implementation Pl lt gt Alternative Evaluation With database cache f Properties a Probleme cones FF Result X4 c A owes ChangedMassQueryImplementation kamp gt
30. the four columns contain 1 Logical source of the output value This is either the whole application denoted app or an ID of a module instance Module X 2 Context of the value This is either config a value derived from configuration such as number of threads or whether a module is protected by a lock isolated for isolated module timings or shared for measurements obtained under simulated load both for the whole application and individual modules 3 Description of the value This is either a name of a configuration parameter for config context or a time value description For module sources this can be monotonic for wall clock time or threadtime for processor time duration of invocation For the app source monotonic_client gives the duration of the whole request as perceived by a simulated client monotonic end is a timestamp of when a request finishes monotonic is again the duration of request but excluding the time waiting for a thread to be acquired from the thread pool 4 The value described by the previous columns Times are given in nanoseconds 4 15 7 Caveats The tool relies on workload modules obtained from the SPEC CPU benchmark suite The license for the SPEC CPU benchmark suite does not permit redistribution of code the tool 1s therefore not redistributable in its entirety Negotiations with the SPEC consortium are underway to provide a licensing solution as the tool 1s deemed useful beyond the scope of the Q
31. C C C C C Second change scenario Utilization 80 00 First change scenario Utilization 96 00 C C C C C C C C Second change scenario Utilization 80 00 Original architeg Alternative evaluation First change scenario e effort 0 0 Utilization 10PercentQuantile 82 3 _90PercentQuantile 99 4 arithmeticMean 96 0 median 96 5 on coreId 567987 fraction 0 0 Original architeccare osc u u orc LEL onum morcos oo Time effort 0 0 First change scenario Cost 0 0 Time effort 00 C C C C C C Second change scenario Cost 0 0 Time effort 0 0 Original architecture Reliability 090 C C C C C C fe C First change scenario Reliability 0 00 Original architecture Reliability 090 C C C C C C C Second change scenario Reliability 0 78 First change scenario Reliability 000 C C C C C C C C Second change scenario Reliability 0 78 Figure 118 Value comparison stage Stage 3 Interpretation of Results Results of a trade off analysis are displayed as stacked bar graph In this graph shown in Figure 119 colours are used to represent qualities and heights of bars are total preference of one alternative evaluation over another The same data that is presented in stacked bar graph is also presented in a form of table below the bar graph When hovering over any part of bars in bar graph information about the value that is used to display that part of bar 1s presented There is a check box button Normalize
32. Engineering Simulation Process X E bhi E el AE INFO Setup Override Status for Methods INFO Establishing Inner Package Relation INFO Finished extracting i INFO Time elapsed so far 1 391 z INFO Task extract java code completed in 1 4631071652 seconds INFO Model exporter created Database sissy INFO Exporting to SOL INFO Executing of scripts skipped due to derby usage IMFO Sorting model elements INFO Done INFO 15 Exporting id 161 INFO 2 Exporting id 462 INFO 35 Exporting id 3804 INFO 4X Exporting id 1125 E 55 Exporting id 1446 4 Figure 70 Console view during a Reverse Engineering run Once the run completed successfully the output model files has been created The model files can be found in the folder of the alternative which had been selected for the run see Figure 71 Q ImPrESS Consortium Dissemination level public Page 91 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS Q ImPreEss CoCoMe Q ImPrESS alternatives 69abaa13 bc5c 4259 b265 47c474af5edc internal_architecture mo del sa s mi xi File Edit Navigate Search Project Staticstruckure Editor Run Visualisations Window Help wi A e taal tibet amp O Q 10 y Fy Q ImPress v E ay Java 4 Project Explorer x TS Navigator 5 MESE P internal architecture moedel samm repository 25 V Ee cocome impl Fi Resource Set 3 1 CoCoMe Q ImPrESS E FS platf
33. EventPort 75H 1H LA T3 j TX tt TY j Lu k E k mm k LS i E EN F A N F C m E _ f im E u a f l e us k sink H Vua u EventPort 7 Y Hr subt omponents H aa HU H HH connector H Uh a a A 4 E 4 J p L p I7 K 7x F7 F7 a _ ao Connector Woy 17H aH service HH v service rH Umum i 7 s b E A ha al 7 5 Behaviour package samm behaviour Behaviour Behaviour lo ComponentTypeBehaviour d OperationBehaviour ComponentTypeBehaviour ComponentTypeBehaviour ComponentTypeBehaviour STRING Metamodel has no classes inheriting this abstract class OperationBehaviour OperationBehaviour t SeffBehaviourStub M GastBehaviourStub SeffBehaviourStub SeffBehaviourStub SeffBehaviourStub QualifiedName operation O Q ImPrESS Consortium Dissemination level public Page 197 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS GastBehaviourStub GastBehaviourStub GastBehaviourStub STRING gt 4 eT 2 operation operation gt Operation fh r 20 y v H QualifiedName a0 gt S gt A TBPBehaviourStub TBPBehaviourStub TBPBehaviourStub H STRING H gt 7 6 Deployment package samm deployment The deployment package is divided into three packages target environment hardware and allocation 7 6 1 Target environment package s
34. If you get an error message similar to unable to find a javac compiler usually on Windows OS make sure you have not installed a public JRE along with the JDK since the public JRE disallows the virtual machine access to the javac compiler this is an issue of Java on Windows system not one of the consistency checker O Q ImPrESS Consortium Dissemination level public Page 135 207 D6 1 Annex Guidelines and Tool Manuals If you want to run the Consistency checker the following artefacts are needed as an input e Acompiled Java implementation of a service a set of Java class files e abehaviour 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 adefinition of all external interfaces both provided and required of the service and e aspecification 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 The 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 eSOA showcase application 1s displayed in Figure 121 The Java class with the specification has to be a subclass of the org ow2 dsrg fm tbpjava envg
35. ImPrESS project O Q ImPrESS Consortium Dissemination level public Page 160 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 5 Appendix A Getting started guide 5 1 Introduction The Q ImPrESS IDE ships with a simple Client Server example Here we use this example to give an introduction of the different parts of the Q ImPrESS IDE tooling Basic knowledge about the Q ImPrESS approach as well as a readily installed Q ImPrESS IDE 1s required This appendix covers all parts of the Q ImPrESS tooling that can be demonstrated with the Client Server example This includes the Q ImPrESS IDE the editors the QoS prediction tools the results viewer and the trade off analysis It does not cover the reverse engineering tooling For more information about the Q ImPrESS reverse engineering approach see the Q ImPrESS Reverse Engineering Manual 5 2 The Q ImPrESS IDE When starting the Q ImPrESS IDE the user has to select a workspace which should be used by the tooling If the user has installed the Q ImPrESS IDE by using the Q ImPrESS drop a workspace with the Client Server example system is already provided If the IDE has been installed via the Q ImPrESS update site the example system project can be downloaded at http www q impress eu wordpress client server example Q ImPrESS projects are organised as Eclipse projects In the workspace new projects can be created and existing projects can be imported A Q ImPrESS pr
36. New mass query implementation Utilization 14 49 C C C C C C C With database cache Utilization 49 10 Main Alternative Utilization 8 63 C C C C C C C With database cache Utilization 49 10 New mass query implementation Cost 6000 0 Time effort 6 0 C C C C C C C Main Alternative New mass query implementation Cost 6000 0 Time effort 60 C C C C C0 C C C With database cache Cost 3000 0 Time effort 3 0 Main Alternative C C C C C C C With database cache Cost 3000 0 Time effort 3 0 New mass query implementation Reliability 0 998800 C C C C C C C Main Alternative Reliability 0 992237 New mass query implementation Reliability 0 998800 C C C C C C C With database cache Reliability 0 974688 Main Alternative Reliability 0 992237 C C C C C C C With database cache Reliability 0 974688 New mass query implementation Response time 11 97 C C C C C C Main Alternative Response time 21 46 New mass query implementation Response time 11 97 C C C C C C C C With database cache Response time 16 28 Main Alternative Response time 21 46 C C C C C C A C With database cache Response time 16 28 Legend of quality ratings Ex Extreme VS Very Strong ST Strong MO Moderate EQ Equal D Ens Cancel ni x Interpet results AHP Analysis Results a aM E nx gt New mass query implementation Main Altemattv e With database cache Altemative Evaluations E Utilization 9 C
37. Page 97 207 D6 1 Annex Guidelines and Tool Manuals On the tab SimuCom some necessary configuration for the PCM simulation engine has to be provided see Figure 76 In the drop down field Persistence Framework select SensorFramework 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 1s checked extensive logging output of the simulation engine is provided If you want to include detailed simulation of the networking resources activate the check box Simulate linking resources ImPrESS E Q ImPrESS Eclipse MEX loj xl File Edit Navigate Search Project Run Window Help r JE amp m m i or m 3315 0 165 e EE conc EM E Run Configurations RU El gt Client Server Example fe gt Alternatives repository lt amp o main alternative ddea2420 F86d 445 Create manage and run configurations et oo main alternative e SensorFramework Data source is missing v E examplesystem samm_hardware examplesystem samm_qosannotation E examplesystem samm repository Name New configuration PB O examplesystem samm repository diac t
38. Primitive Data Type O Q ImPrESS Consortium Dissemination level public Page 174 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS s examplesvstem samm repository e i I5 Resource Set El FS platForm JresourceJExampleSvstem alternatives cb amp 7eas0 2415 4460 b75a 311300eFe64e examples Mew Child j Composite Component a Primitive Component C unda Delete Ctrlt 2 Reda Ctrl E Interface Collection Data Type Cut 4 Complex Data Type Copy 2 Primitive Data Type Paste u Message Type Delete Validate antro Open Run As d Debug 45 k Profile As d Validate Team Compare with Replace With WikiText OS 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 1s 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 in examplesystem samm_repository x X 5 Resource Set lo platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64e examplesystem samm_repository E Ez Repository Primitive Data Type userData Selection Parent List Tree Table Tree with Columns x Tasks Properties 3 gt En ib pr TI Propert Value Documentation i
39. 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 To add a QoS annotation for specifying CPU resource demands that occur in a SEFF InternalAction right click on the QoS 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 1s the resource on which the resource 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 Q ImPrESS Consortium Dissemination level public Page 188 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 7 Appendix C Concrete syntax for SAMM meta model The appendix contains definition of a concrete syntax for SAMM meta model elements The definition follows a structure of the SAMM meta model and its packages and declares how its elements are shown in a textual form The concrete syntax definition 1s visua
40. SISSy E D Client Server Example examplesystem samm se Y Launch SoMoX So E te gt Alternatives repository lt examplesystem samm se P MWE Workflow E Moo main alternative examplesystem samm se La Operational QVT Interpreter oO amp changed database implementation examplesystem samm_se OSGi Framework C S with database cache examplesystem samm ta Q PCM Solver examplesystem samm us Mili pcm Solver Reliability massQueryUser_Business Q ImPrESS Consistency Checker SULTS Q ImPrESS Performance Analysis angedMassQueryImplemer z Performance Prediction Main Alternative hDatabaseCache kamp FP Q ImPrESS Reliability Analysis Y Q ImPrESS Reverse Engineering Expand all collpse al SimuBench Ji Task Context Plug in Test Juj Task Context Test re I Filter matched 25 of 25 items Selected Top Level Alternative main alternative er 9 Close LN c c OS X SKIRT aas ci emer 1 items selected o Property Value Resource a 1 ikame calackad Figure 139 The Q ImPrESS launch configuration dialog for performance prediction O Q ImPrESS Consortium Dissemination level public Page 166 207 D6 1 Annex Guidelines and Tool Manuals The maintainability prediction works on basis of efforts for an alternative implementation The analysis works on a kamp file which is stored in the workspace project For the two derived example system alternatives maintainability predic
41. SinkEventPort g examplesystem samm repository H Inner Elements E g examplesystem samm repository diagram I Sl Sub H H examplesystem samm_seff i e wi COMPONENTES s g examplesystem samm seff bak l amp Connector examplesystem samm_servicearchitecturemodel H E SubcomponentEn O examplesystem samm_servicearchitecturemodel_diagram H E ComponentEndPoint t 6 massQueryUser BusinessLogic samm seff diagram O RESULTS o ChangedMassQueryImplementation kamp 4 WithDatabaseCache kamp S amp ldatabaseInstance f Properties x n Problems El Console rt H 1 items selected L Property Value Resource Figure 137 The Q ImPrESS Composite Editor for service architecture models The same diagram is also available for two derived alternatives of the Client Server example For example the service architecture model of the WithDatabaseCache alternative features an additional component in the system the database cache which is placed between the business logic component and the database component The SEFF behaviour diagram of the business logic component in the main alternative is shown in Figure 138 It features loops that consist of database calls O Q ImPrESS Consortium Dissemination level public Page 164 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS
42. a tree table similar to the workplan editor page The difference lies in the fifth and sixth column In the fifth column the developer can enter effort estimates for the respective work activity in person days In the sixth column the effort estimates are accumulated Note Place the cursor in the first cell and enter a value Press Return key to go directly to the cell below Result export On the bottom of the Maintainability Analysis Overview page a summary of the estimation results can be found In order to start exporting of the results to the result model of the current Q ImPrESS project select Export to result model see Figure 114 Architecture Alternative Effort aurmmmarny EMT Demonstrator 9n 0 Person Days Export bo result model Figure 114 Result model export O Q ImPrESS Consortium Dissemination level public Page 127 207 D6 1 Annex Guidelines and Tool Manuals In the Project Explorer you can check how results are added to the common result repository ImPrESS Before p E r COMMON MODELS S RESULTS gt Result Repository After eh COMMON MODELS a RESULTS Result Repository 2 3 Alternative Evaluation ENTDemonstrator main alternative gt Maintainability Prediction Result 50 0 PersanDays If there is no appropriate alternative evaluation already present KAMP will create a new one If an appropriate alternative evaluation is found then KAMP will simply add a Maintai
43. alternative TradeOff Analysis Deplay System 3 5 3 8 E suited alternative exists selectedSAM model valid Implement SAM dalla t Validate Model by Measurements j 3 6 3 7 model revision needed Figure 72 Predicting system quality copied from D6 1 4 9 3 Tool prerequisites The PCM simulation might need a lot RAM Therefore make sure the Q ImPrESS Eclipse instance is started with useful memory parameters In the file eclipse ini in the root directory of the Q ImPrESS Eclipse installation add the following lines vmargs Xms l2zm Xmx 760m note the provided instructions could vary depending on the target operating system 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 O Q ImPrESS Consortium Dissemination level public Page 94 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 9 4 Tool activation In the following we assume that a Q ImPrESS SAM model is already available This SAM model has to be stored in a Q ImPrESS alternative 1n the IDE workspace Click Run gt Run as to create a run configuration for the Q ImPrESS performance prediction platform On the left side view right click on Q ImPrESS Performance Analysis and click New A new run configuration is being created and can now be s
44. 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 the Consistency checker might miss some inconsistencies O Q ImPrESS Consortium Dissemination level public Page 142 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 14 Java Performance Measurement Framework Manual 4 14 1 Purpose of the tool The main purpose of the Java Performance Measurement Framework JPMF library is to simplify the process of obtaining performance data from running applications Instead of having to develop a performance measurement harness for each application the library provides a generic interface that allows the user to define performance event sources that emit performance events related to application execution The user then configures what performance are to be collected with particular performance events and the JPMF library takes care of the actual collection and storage of the data in an efficient fashion The user of the library thus only needs to concern herself with application instrumentation which can be performed either manually at the source code level or automatically at the Java byte code level using tools provided by the library 4 14 2 Tool relationship with the Q ImPrESS workflow Technically the JPMF library is a standalone tool independent of other tools found in the Q ImPrESS tool chain in the s
45. changes and interface port changes can be specified which are follow up activities to the marked datatype change Automatic workplan derivation from subalternatives The previous paragraphs covered the derivation of workplan by using a wizard dialog Another way is to calculate differences between architecture models and translate them automatically in change activities in the workplan For this the architect has to specify subalternatives where the appropriate changes are done Target and source alternative are specified accordingly when adding the analysis instance Moreover the change scenario should be set to automatic derivation The derivation itself is triggered by pressing the cogwheel button in the analysis instance row After derivation the work plan can be manually adapted as described in the next section Workplan editing The workplan is shown in the workplan editor which is a tree table widget 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 is shown The third column contains the name of the architecture element Finally in the last column 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 abstr
46. 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 speed cache size or request latency Q ImPrESS Consortium Dissemination level public Page 182 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 6 8 Units In the whole SAMM model no concrete unit model exits Thus when specifying attributes that carry a unit such as disk write speed or network bandwidth units are not explicitly specified Therefore such attributes have to be used in a consistent way If for example disk write speed attributes are specified with a value that conforms to kb s the time unit is assumed to be seconds and QoS predictions should yield results that actually denote time in seconds If attributes are specified with values denoting an abstract unit like an abstract time unit prediction results also can only be interpreted with abstract time units Here no absolute time results can be obtained but different prediction results can still be compared against each other e g the response time of one request takes twice as long as the response time of another request 6 9 Create a Target Environment Model A target environment is used to spe
47. 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 GuiInterface Besides set the interface type to the interface GuiInterface LA examplesyskem samm repository 5 L5 Resource Set El us platFarm JresoaurceJExampleSvstem alternatives ch67eas90 2415 4460 b75a 9113 00eFe6de examplesystem sarm repository EB Repository EP Interface Guilnterface Rea tee ee ee ba lal Operation whoisOperation dig D Primitive Data Type userData ad Primitive Data Type userID EMO Message Type messageInput ATi Message Type messageOutput Selection Parent List Tree Table Tree with Columns 4 Tasks 5 Properties X Propert Documentation l Id 1 Pe AcMypEd amp zuz esrmagg Interface Type 3 Interface GuiInterface Is Required ivi False Mame 12 GuiComponent Provided auiInterface In the example system the GuiInterface also requires an interface Since this interface contains the same operation the GuiInterface 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 componen
48. it is not possible to open the file from within the Project Explorer Open the view Window Show View Other gt 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 Ires JeJ8 amp Sud mat e om i me loy Jajar rt or es Project Explorer Package Explorer X Ww B des m fr examplesystem samm repository x lt E lS ExampleSystem is Resource Set alternatives H 6 cb67ea90 2415 4460 b75a 911300efe64e o examplesystem samm repository E o platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64efexamplesystem 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 6 2 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
49. lt oo main alternative ddea2420 F86d 4455 940c 807ec4d616dc main alternative Gg examplesystem samm_hardware 0 examplesystem samm qosannotation 0 examplesystem samm repository 0 examplesystem samm repository diagram g examplesystem samm_seff g examplesystem samm_seff bak examplesystem samm servicearchitecturemodel g examplesystem samm servicearchitecturemodel diagram g examplesystem samm_targetenvironment examplesystem samm_usagemodel 0 mass QueryUser_BusinessLogic samm_seff_diagram J RESULTS fe ChangedMassQueryImplementation kamp 4 WithDatabaseCache kamp 1 Qo m s HE p Ge Properties Rl Problems E Console B Simulation Dock Status 52N a pe Status ID 9bdNkO19Ed 8A5JXaFPT A Location local Simulation Time 0 Measurements 0 c 1 items selected IB Figure 77 The simulation status view for a performance prediction run O Q ImPrESS Consortium Dissemination level public Page 99 207 D6 1 Annex Guidelines and Tool Manuals After the simulation run has completed the results can be displayed Open the results repository in the Q ImPrESS project explorer by right clicking on RESULTS and selecting Open ResultViewer In the result viewer see Figure 78 different performance analysis results are displayed
50. 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 14 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 2 2 3 Reverse engineering of selected components We can obtain a model a complete component structure for the selected components from component code using reverse engineering techniques Software may need some adaptations before being ready to be analysed by the reverse engineering tools provided by the Q ImPrESS IDE The time consumption of this phase is unpredictable 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 manual input and cannot be fully automated As explained in D6 1 3 3 3 4 the reverse engineering process is basically divided into three steps first code is analysed to obtain an abstract structure then information regarding components and interfaces 1s extracted and finally the user can add behaviour annotations in the form of Petri Nets or in other ways as the Q ImPrESS platform can be extended to include different plugins to work with As explained the software engineer iterates the previous phases until all of the system components have been mo
51. oem teen Large eerte 3797101 ofthe Fe C4 Wenge Seo Aod fun Wine feb S eli s teowt MEELT 9o 0 a lor V Lewhrt i aa Gress 5 Pimi es CoPromet Explorer 17 Navigator dpi SO fangettrvonment mangitargettisronnent Cua wmc o OE ose 1 E S Dae bet test proget Comtainere sju tcn E rem or mt E gt Amrane repository Cant aimer i servetContsinet I ver verte oo mn ahermahve E doc serverCostainet J wentetion p d ocoampietieteori Cmn oo nan aerate deecription servercostainer Description D esmpiescstem cem hardest eche elingPoliey PROCESSOR SHARTNO D eese rhum anm gorris s oreqerinrsources 0 e amples stam anm reposttory Steraqelrsonrce 2 hardDtiveResource D empecen samm it der 3 gt Set Repogtory 4eacriptian Uf haare Domande EPP Cub Ree Qradut sevi sterageberieeni UT harer Deman ng SEPF Cb UO te oot er diski dist amp UY haara bendro SEPF nD EA al ET haora Demanding SEPP Crab ot A E Y hmas Demanding SEPT Cub Nba RYE O mpera umm amr aretes mod i O Seo Actes Pbdel esl Serve m y Chile ha ud me yo nourcen E Connector Srytecht mite oi ovo memo tylesontee centtaifemory E Connector 457705 doc 7 H Connector Semoim memory secverfemory O treet aco Port Srt ctetur od Prov det Gut gt Seton d Seve wert Seem pervert execut tonReewerces Subcomponent pearc clereCompocteiretarce FExecutionReessurce its opone het ace dar tee wwe corela Sut ompo
52. of iterations of a LoopAction right click on the QoS Annotations root element select New Child and SEFF LoopCount In the SEFF 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 Support for specifying formulas or distribution functions 1s not yet provided 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 fz1 de index php pcm variables which shows 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 SEFF BranchProbability In the SEFF BranchProbability property tab set the
53. property to the StopAction element The InternalAction can for example be used to specify resource demands that occur at a certain step in the behaviour 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 1s used to specify calls to other components that occur at a certain step in the behaviour Since a component does not know with which other component it 1s 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 selected port has to be a required port that belongs to the component for which the behaviour is specified However it 1s 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 is 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 O Q ImPrESS Consortium Dissemination level public Page 186 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 6 11 1 LoopAction BranchActi
54. public Page 148 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS public interface EventSource String id List Event events final class Event public Event final String localId final Class extends EventDelegate delegateClass public String localId public Class extends EventDelegate delegateClass void setTimerCounter TimerCounter timer void setEventDelegate int eventIndex EventDelegate delegate void enable void disable boolean isEnabled void enableEvent int eventIndex void disableEvent int eventIndex boolean isEventEnabled int eventIndex Figure 131 Overview of the EventSource interface Figure 131 lists the methods defined by the EventSource interface The first set of methods comprises the id and events methods which provide information about an event source and the events it supports Each event has a local identifier which combined with the global event source identifier makes up a fully qualified event name The fully qualified name must be unique and should be related to application architecture Each event also has an event type which determines the event delegate interface required by a particular event in order to provide JPMF with event notifications The second set of methods comprises the setTimerCounter TimerCounter and setEventDelegate int EventDelegate methods which the JPMF uses to provide the event source with im
55. public Page 37 207 D6 1 Annex Guidelines and Tool Manuals Before a new model is created it 1s necessary to specify the model name see Figure 17 ImPrESS iok otaticstructure Model Create a new Staticstructure model Lt Enter ar select Ehe parent Folder demaJalternatives a4zaa6Uf 412b8 4384 3912 185Fb amp 3d71FF ES demo Pu settings EH alternatives pes gt g42aa60f 42b8 4384 9912 185fb amp 3d7 1 FF HE 9b3bea35 e295 456f af07 6co1c6982820 File name application samm servicearchitecturemodel Advanced gt gt Figure 17 Associating a name with the model O Q ImPrESS Consortium Dissemination level public Page 38 207 D6 1 Annex Guidelines and Tool Manuals Finally a top level modelling entity has to be selected see Figure 18 After finishing the wizard the new model is created within the selected alternative IBL x Staticstructure Model Select a model object to create Model Object aL Encoding UTF Fay 2 z Back ext Cancel Figure 18 Selecting top level modelling entity Model editing Each model can be edited either using a generated EMF tree editor or directly from the Project Explorer view using the context pop up menu In other words each model artefact provides pop up menu to create child and sibling artefacts to delete an artefact and to show the property view see Figure 19 Changes are directly stored into the corresp
56. t Cost Utilization f amp f f C C C 0 C Reliability Utilization amp E s C C Response Time Cost I NEM MEE MEN MEN MEET MEE ENS Reliability ost C ie C Response Time Reliability i C C Response Time Legend of quality ratings Ex Extreme v5 Very Strong ST Strang MO Moderate EQ Equal ry ti lt Back Next gt Emish Cancel Figure 117 Quality comparison stage O Q ImPrESS Consortium Dissemination level public Page 131 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Stage 2 Value Comparison After clicking the Next button user will be presented with list of comparisons between values for Alternative Evaluations for qualities as presented in Figure 118 Within each quality all pairs of results are compared to select which is preferred This enables user to express any kind of preference for example user can choose to prefer higher response time Comparison method is the same as described in the previous section Note that by hovering over the value you will be presented with a tool tip that displays more information about currently observed value inox Assess alternatives Please rate actual values to be compared using AHP analysis EX v5 ST MO EO MO ST vS EX Value Value Original architecture Utilization 70 00 C C C C C C C C First change scenario Utilization 96 00 Original architecture Utilization 70 00 C C C
57. 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 1s a 2GHz CPU What is missing 1s 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 from the context menu O Q ImPrESS Consortium Dissemination level public Page 183 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Resource ExampleSystem alternatives cb67ea90 24 1 5 4460 b75a 91 1300efe64e examplesystem samm_targetenvironment Eclipse Platform File Edit Navigate Search Project Net4jExamples Targetenvironment Editor Run Visualisations Window Help c E E Sis DE ELH dE eE ae Ean z FY T Resource Project Explorer Package Explorer 53 E amp 4 75m lo examplesystem samm repository lo examplesystem samm hardware gt examplesystem sa argetenv ent e A Hs Eonpiesitn EF e alternatives El n platform fresource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64e examplesystem samm_targetenvironment El cb67ea90 2415 4460 b75a 911300efe64e B Target Environment F T examplesystem samm hardware El gt Node ExampleSystemServer E lh atl fancied fender Container ExampleSystemContainer ZI examplesystem samm_targetenvironment S O penpe
58. the data files without extension default data eventdata e event name selects only particular event default include all supports multiple occurrences f field name selects only particular field default include all supports multiple occurrences o output file default console S skip count skip first x results default 100 t table output mod separate headers default none prints unprocessed data in a textual form separate prints every event into a separate file headers events with the same header are printed into the same file Figure 132 JpmfStat command line arguments Three basic entities configurable via configuration file are events event sources and transports A sample configuration file named jpmfconf xml sample can be found in the JPMF doc directory Simple data analysis Output files produced by the JPMF are in binary format To process these files JPMF provides a simple tool called JpmfStat which can either convert the binary files to human or machine readable text output or calculate simple statistics The statistics are calculated for each named event see example below and contains computed values such as mean median variance median absolute deviation MAD and selected percentiles To execute the JpmfStat tool the JVM must be instructed to execute the org ow2 dsrg jpmf JpmfStat main class On Linux a simple wrapper script called jpmfstat sh can be used The J
59. three alternatives also have different performance results The Results Viewer provides usage scenario response times and throughput results as well as HDD and CPU utilisations In the Results Viewer alternatives can be selected for which the AHP trade off analysis should be performed After selecting alternatives by enabling the corresponding checkboxes the AHP trade off analysis wizard can be launched by selecting Run AHP The trade off analysis allows specifying a rating of the different quality criteria as well as a rating of the actual result values Based on these configurations it provides a ranking of the alternatives based on weighted quality attributes Figure 143 shows the two pages of the AHP trade off wizard for the Client Server example the ranking of the result values top and the trade off results bottom For the specified rankings the third alternative new database implementation yields the best results in the trade off analysis and should be preferred A detailed description of the Result viewer and the AHP wizard can be found in Section 4 12 Q ImPrESS Consortium Dissemination level public Page 169 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS E I lal x Assess alternatives Please rate actual values to be compared using AHP analysis VIE EX WS ST MO EQ MO ST VS EX Value New mass query implementation Utilization 14 43 C C C C C C C C Main Alternative Utilization 8 63
60. to Analysis Overview Figure 109 The workplan editor in follow up relation mode Q ImPrESS Consortium Dissemination level public Page 124 207 D6 1 Annex Guidelines and Tool 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 see Figure 110 her PP ree Nor Pe mmra Wig aesti i Composite Actmity Component g Add Refinement Interface Port Operation Figure 110 Context menu for editing of activities In a dialog activities can be marked or unmarked and basic activities can be modified see Figure 111 Select further Work Activities If elements are grayed it is not possible to uncheck them or change basic activity Element Type Mame Basic Activity mi Component serverComposite CHANGE aT InterfaceP ort sererlomposite Provided DataSernicelnterface Operation querLiser DataService c m InterfaceP ort seniceComposite_ Required Databaselnterface Operation getllserFarlserid Database Figure 111 Editing activities O Q ImPrESS Consortium Dissemination level public Page 125 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Adding milestones composite activities To add an additional milestone press Add Changing Domain below the workplan table shown in Figure 109 A milestone can then be specified in the dialog shown in Figure 112 Select Work Activities
61. tool is to automatically generate software systems composed from primitive components together with their models Then the generated systems can be directly executed with a simulated client load and their performance throughput response times measured The corresponding models can be transformed to a particular performance model and to predict the performance By comparing the predicted and measured results we can validate the quality predictions on a large number of systems and provided that the generated systems are representative enough achieve a relatively robust validation of the given prediction method In the current version the tool can generate software systems either from C components or from Java components A number of components were created by porting workloads from the SPEC CPU2006 and SPEC jvm2008 benchmark suites The models of the generated systems can be imported into the Q ImPrESS IDE where the usual workflow can then be applied for performance prediction For the purposes of validation a tool for transformation to SimQPN performance models has also been implemented Focusing more on developers than end users the tool has a mostly command line interface and requires a POSIX compliant system tested on Linux and Solaris to run The generated software systems have the same requirements For more details on the requirements see section 4 15 3 4 15 2 Tool relationship with the Q ImPrESS workflow The tool 1s not in
62. x Provides content From Ehe Q Impress Navigator Extension extension cml Figure 8 List of Project Explorer content extensions Q ImPrESS Consortium Dissemination level public Page 29 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Q ImPrESS project filters activation Each Q ImPrESS project includes a set of files and folders that can easily be managed by applying view filters within the Project Explorer To activate or deactivate filters select the Customize View item in the Project Explorer menu A window containing the list of available filters 1s depicted in the Figure 9 In particular there are two Q ImPrESS related items 1 Q ImPrESS alternatives folder which manages the rendering of a system folder containing storage of alternatives and ii Q ImPrESS Generic Content Filter which provides a group filter for Q ImPrESS related tools Available Customizations Ea Libraries From external CJ Local types C Non Java elements L Man Java projects C Non public members Non shared projects Package declarations O ImPrES5 alternatives Folder O O ImPress Generic Content Filter CJ Static Fields and methods Synthetic members Task List Elements Recommended Figure 9 List of content filters Q ImPrESS annotation properties activation Q ImPrESS annotation properties view is part of the Properties View This view can be activated for each model entity through
63. 0 RESULTS F 4 ChangedMassQueryImplementation kamp 4 WithDatabaseCache kamp a o o E A A EET EET EH L amp 1 items selected Run Configurations ni xj ES 2 Q ImPrESS amp Java pasami ee Create manage and run configurations Q ImPrESS Alternative Evaluation Select a single alternative evaluation 1 amp gmx oni type Filter text p A Acceleo Application ATL Transformation Se Completions 7 Eclipse Application i E5 Java Applet E 31 Java Application Se JET Transformation Ju JUnit Ju JUnit Plug in Test oi Launch SAMMZPCM multiple EE Launch sissy c Y Launch SoMox D mwe workflow i Operational QVT Interpreter OSGi Framework Q PCM Solver ll pcm Solver Reliability z O Q ImPrESS Consistency Check E igs Q ImPrESS Performance Analy B ja New configuration P R Q ImPrESS Reliability Analysis Y Q ImPrESS Reverse Engineerir m S SimuBench J Task Context Plug in Test Jui Task Context Test i dH Filter matched 25 of 25 items Name New configuration QImPrESS Alternative Q ImPrESS Usage Model RE Q ImPrESS Alternative Evaluation SimuCom Common Select usage model E Le Client Server E xample ee main alternative E 4 Usage Model UsageModel Main Alternative Selected usage model UsageModel Main Alternative in main alternative Apply Revert Figure 74 Selecting the Usage Model for performance p
64. 050 c dI etu 0E 020000 dsl IaadA ener 190 7 3 Datta types package samm datatypes eeeeeesessessssseeeee nennen enne nnn nee ssnna rr n nne e sss sa enn n ere esses nns 192 7 4 Static structure package samm staticstructure sssssssseeeeeeeee essen rnnt nens s nnne r nnn en ness nns 195 7 5 Behaviour package samm behaviour e eeeeeeesssseeeeeeeeee eese nnne nssnn rn n nens insi arn r essen nnns 197 7 6 Deployment package samm deployment esseeseeeeeeeesesee sese ssn aae r nnne ese n ann nns 196 7 6 1 Target environment package samm deployment targetenvironment eeeessss 198 7 6 2 Hardware package samm deployment hardware esee 201 7 6 3 Allocation package samm deployment allocation essen 203 7 7 Annotation package samm annotation eeeeesessse esee nnne snne tnn nene sensa arr n ree e sees n nnne 205 7 8 Usage model package samm usagemodel eeeeeeeesssssseeeeeeeee eese ees ennn e rrr nnne sien nnns 203 7 9 QoS Annotations package samm qosannotation isses eene nennen nnn nnn nenne nennen 205 8 PONS CIN X ria 207 O Q ImPrESS Consortium Dissemination level public Page 7 207 A D6 1 Annex Guidelines and Tool Manuals ImPrESS Last change 25 01 2011 Q ImPrESS Consortium Dissemination level public Page 8
65. 07 D6 1 Annex Guidelines and Tool Manuals ImPrESS CacheKind CacheKind INSTRUCTION d DATA UNIFIED TLB TLB TLB H kind CacheKind H MH kind 5 CacheKind I 9 7 99 entryPageSize HINT r e i kind Kind j ry L PINT T Y P fF C ff i ff espuma AN N 1 associativity gt UNT j 9 d ros F1 entriesCount gt INT gt i gt r gt Q d B t t 7 M b A M gt E ProcessorCore ProcessorCore i p F m F7 oum 78 js ProcessorCore H STRING PH STRING H 9 do j STRING FF LY f kr a Cache Cache gt Cache H 9 kind gt CacheKind e 9 7 level INT 7 size INT A n 7 c i an ae c NES J j j gt gt 7 gt i b gt associativity INT H H gt cacheLineSize INT amp 7 9 gt accessLatency INT amp 9 7 d M t ME gt m gt H W b Lato s VAT A A cores gt an ProcessorCore FOO a t H QualifiedName H gt e Processor Descriptor ProcessorDescriptor m BEN uu MEN EN mE 7 1 ProcessorDescriptor EI STRING r 1 HH STRING H 09 doc STRING H jH 7 caches H 1 mH Cache 7 19A fad i ii E DEM i P 4 iad iia gt w j 4 a A
66. 1 Q showcase samm_seff 2126 l Q showcase samm_servicearchite i showcase samm servicearchite i gt CreateDeleqateObiects Q showcase samm usagemodel Um somox default samm hardwar Q somox default samm targeten RESULTS 2151 B Changes txt 2147 z e mp 4 m j E Properties 23 e BE voB InternalAction 14 gt CallGetAllVolumeDiscounts n Associated annotations Core Appearance QoS Annotations m Annotation info Property Value Figure 50 The QoS annotations editor When starting with the editor no annotations are present in the model see Figure 50 Using the New button new QoS Annotations can be added to the SEFF model Create new annotation in default alternative Select annotation type imeDiscounts E ActivityFailureProbability gt Annotation eu qimpress qualityannotationdecorator seffdecorator ActivityFailureProbability E CpuResourceDemand gt ResourceDemand eu qimpress qualityannotationdecorator seffdecorator CpuResourceDemand H HddResourceDemand gt ResourceDemand eu gimpress qualityannotationdecorator seffdecorator HddResourceDemand gateObyec ts Oo 9 Figure 51 Adding new QoS annotations A pop up menu then offers the different Quality of Service QoS annotations which are valid for a certain model element see Figure 51 For InternalActions Failure Probabilities CPU Resource Demands and HDD Resource Demands can be adde
67. 137 shows the graphical model editor for the service architecture model of the main alternative Q ImPrESS Consortium Dissemination level public Page 163 207 D6 1 Annex Guidelines and Tool Manuals Q ImPrESS Client Server Example alternatives ddea2420 f86d 4455 940c 807ec4d616dc examplesystem samm servicearchitecturemodel diagram Eclipse E E ni xi examplesystem samm_targetenvironment g examplesystem samm usagemodel amp I businessLogicInstance File Edit Diagram Navigate Search Project Run Visualisations Window Help JE amp aE rc m 38159 0 105 49 i o o06 e Ej S PCMResuls Q impress amp Java Tahoma vla 3 536 rn 08 o Ro E Seat 100 li Project Explorer x TS Navigator x gt Qa st examplesystem samm_servicearchitecturemodel_diagram LN Im B 3t hace Example S 25 Palette b gt Alternatives repository lt PEE B Go main alternative ddea2420 f86d 4455 940c 807ec4d616dc Is a uL b changed database implementation 3ad4d1e6 0c5a 4e74 4 exampleServiceArchitectureModel K ReuuiredInterfa a amp with database cache 685bd7c4 743a 4e59 bd65 a77b3 ProvidedInterfa go main alternative maer a SJ clientCompositeInstanc g examplesystem samm hardware ra MCI eO pestes cnce SourceEventPort H examplesystem samm_gosannotation 7
68. 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 1 Introduction This deliverable extends D6 1 providing practical details on the use of the Q ImPrESS IDE and related tools and represents a reference manual for software engineers This deliverable specifically addresses recommendation R7 of the First Project Review The structure of the deliverable is as follows Chapter 2 provides a short summary of the Q ImPrESS method as detailed in D6 1 Chapter 3 provides in depth hints on SAM and how a system is modelled Chapter 4 contains a reference manual for each of the mentioned tools Appendix A contains a Getting started guide for beginners Appendix B provides a tutorial on how to modify SAM using tree editors Appendix C contains the SAMM grammar Appendix D provides a glossary 1 1 Q ImPrESS overall workflow Q ImPrESS provides a platform for software engineers for the quality evaluation of multiple evolution alternatives of a system Different quality attributes can be predicted before implementation takes place This leads to a shorter time to production while assuring a better quality of the target system Figure 1 shows an overview of the Q ImPrESS workflow as applied at ABB Ericsson O Q ImPrESS Consortium Dissemination level public Page 9 207 D6 1 Annex Guidelines and Tool Manuals e B ImPrESS p m p S xa E ai Q ImPrESS IDE Applied at Legend anm J Tool support
69. 23 WithDatabaseCache kamp Results m de uka ipd sdq codegen simucominstance Result io Qa io Qa i Check All Ii fMain Alternative hFaAYLwPEd NbbWUljDKaQ o Chekal E Performance Check None D CPU Resource Utilizations O Usage resource 567987 8 634 Invert Selection C Response Times C System Call Mainalternative 3 700 41 000 21 461 22 100 Run atte A HOD Utilizations Alternative ID I1 Storage Resource hardDriveResource 21 412 21 412 21 412 21 412 ddea2420 F86d 4455 940c 807ec4d616dc C Throughputs UsageModel UsageModel Main Alternative o Reliability 0 992237 0 992237 0 992237 0 992237 6 0 with database cache _k2td8LwQEd NbbWUljDKgQ 7 Maintainability 0 Performance oO Reliability 0 974688 0 974688 0 974688 0 974688 H O New mass query implementation J dMoLwREd Nbbwt Figure 78 Performance prediction results in the Q ImPrESS Results Viewer O Q ImPrESS Consortium Dissemination level public Page 100 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS If you want to have a detailed look on the performance simulation results you can open the PCM simulation results Open the simulation results perspectives by clicking Window gt Open Perspective gt Other Select the PCM Results 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
70. AM model which includes interfaces ports connectors component instances and composite component structures The reverse engineered model represents a complete component based software architecture Components are detected by various heuristics which can be configured and weighted Each heuristic represents a detection strategy which reacts to structures in software artefacts such as the structure in the code naming and communication styles 4 8 2 Tool relationship with the Q ImPrESS workflow Describe how the tool fits into the Q ImPrESS workflow Use a diagram to highlight its position in the overall process The reverse engineering toolchain can be used in the process of modelling an architecture scenario see Figure 60 In addition to the manual creation of models based on the editors described in Section 4 3 Section 4 7 the reverse engineering toolchain can be used to automatically create models based on existing software systems for which source code 1s available O Q ImPrESS Consortium Dissemination level public Page 80 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Process Q ImPrESS Overall Process Gather Mew Requirements 3 1 Define Change Scenarios 3 2 En sScenarnos scenarias lt Herate gt gt relayantQualityAttributes scenaro SAMWithResults Yn L3 hange S Predict System Quality 3 3 ZI 3 4 4 LTT altemativeSAMsWithRes altemativeSAMsWithResults LE I L n
71. Activation of the QoS annotations wizard 4 2 7 Usage instructions and expected outputs Q ImPrESS project view When Q ImPrESS nature view is associated with a project two additional nodes are shown The first node called 1s Alternatives repository see Figure 11 contains a repository of alternatives Alternatives are organised into a tree Each alternative is marked with an icon The alternative label shows the name and an internal identifier also used as a directory name where the alternative is persisted There is always one alternative from the repository selected as a default alternative This is indicated by the icon 2 The default alternative has a dedicated node in the Project Explorer view that also renders the associated models depicted by the icon B Each model comprises model artifacts that can be edited using a generic EMF tree editor graphical editor or syntax aware text editor with highlighting features O Q ImPrESS Consortium Dissemination level public Page 31 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS H Package Explorer Te Hierarchy L Project Explorer 3 ia mL ELE TUS C E lea demo EF B gt Alternatives ee z md A c scenaria B1 quideni an amp z 4d09 bez6 14f21b957829 B ee scenario 942aa60F 42b8 4384 3912 185Fb63d71FF 0 samm hardware ee Descriptor Repository samm qosannatLatian D samm repository
72. Annex Guidelines and Tool Manuals ImPrESS Create manage and run configurations A EJLER A type filter text E5 Java Applet 3 Java Application JET Transformation Ig gt Alternatives repository lt Ju JUnit oo main alternative J JUnit Plug in Test E test2 ia Launch SAMM2PCM multiple EF Launch Sissy Y Launch SoMoX P MWE Workflow Operational QVT Interpreter 4 OSGi Framework Q PCM Solver Primitive Component PC No 6 ProductPriceDaoImpl VolumeDiscountDaolmpl Q ImPrESS Consistency Checker amp Primitive Component SoMoX System Level Dummy Component ClientGUI New configuration Component PricingManagerJPF nica Q ImPrESS Performance Analysis Cin New configuration 2 Fi Q ImPrESS Reliability Analysis Y Q ImPrESS Reverse Engineering Comp impl de itemis qimpress showcase pricing simulator be service PricingManagerlmpl Y Client Server Application Y PricingManager Filter matched 29 of 29 items Q Figure 124 Selecting an alternative and a component to be checked Name PricingManagerJPF Select component Consistency checker configuration we PricingManager Alternative Q ImPrESS Consortium Dissemination level public Page 139 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS Name PricingManagerJPF type filter text En Java Applet MM 1 Java Application Behavior protocol
73. C f ION TN AN f N m re F rs M K tlbs ee TLB F7 9 p LU cores JH D 97771 ProcessorCore DO b HY Tt FY tX ty f x i J iu 4 e StorageDescriptor StorageDeviceDescriptor 1 StorageDeviceDescriptor H STRING H STRING H H doc STRING 4 E j eH writeSpeed gt INT HH rm read Speed MAINT pry requestLatency j DOUBLE H 4 Y 4 j T J L S gt 3 E gt r T a J a gt cacheSize amp INT amp 7 d Not 7 al a Q ImPrESS Consortium Dissemination level public Page 202 207 D6 1 Annex Guidelines and Tool Manuals MemoryDescriptor Memory Descriptor H MemoryDescriptor HH STRING HEHH STRING H PY ree STRING PG po bantwidth INT G 9 ms A Ll Ll ki d H fsbF req FH INT H Fe gt 4 H accessFreq FH INT HH A gt 4 H bursiLen HA INT HMH FC oe M S Oe Ww ll P LU L t t f he E LS E LN E HardwareDescriptorRepository HardwareDescriptorRepository HardwareDescriptorRepository gt STRING LSTRING 9 gt Woe STRING R HardwareDescriptor HO gt HO gt A 4 NetworkInterfaceDescriptor NetworkInterfaceDescriptor NetworkInterfaceDescriptor N linkLatency 7 6 3 Allocation package samm deployment allocation Service Service Service STRING j gt Q l 9 linkS
74. D6 1 Annex Guidelines and Tool Manuals ImPrESS ShowcaseModels 2151 svn ssh svn f 4 Qos Annotations Showcase_Qos_Annotations ta gt gt Alternatives repository 2151 gt 4 Cpu Resource Demand PricingDAOService findProductCountryPrice FetchData p gt main alternative 2126 gt 4 Cpu Resource Demand PricingDAOService findVolumeDiscountByQuantity FetchData A showcase samm_qosannotation gt 4 Cpu Resource Demand PricingDAOService find CustomerCategoryDiscountByCategory Type FetchData A showcase samm repository diagr gt 4 Cpu Resource Demand PricingDAOService find CustomerTypeDiscountByType FetchData a showcase samm repository 2126 gt 4 Cpu Resource Demand PricingManager_calculateVolumePriceForCustomerCategory_CalculateVolumePrice showcase samm_seff 2126 gt Loop Count OrderGenerator_CreateOrderltems shawcase samm servicearchitecti gt 4 Loop Count ShipmentGenerator ProcessOrderShippings showcase samm servicearchitecti gt Loop Count ShipmentGenerator ProcessOderShippings ProcessOrderltems showcase samm_usagemodel 209 gt gt Cpu Resource Demand PricingSimulatorWSFacade_GetPriceForProduct_CallOverhead somox default samm hardware 2 gt gt Cpu Resource Demand PricingSimulatorWSFacade_GetListPriceForProduct_CallOverhead 3 somox default samm_targetenvir gt 4 Cpu Resource Demand PricingManager calculateVolumePriceForCustomerCategory MO A RESULTS 2151 gt gt Cpu Resource Demand P
75. Editor Visualisations Window Help wi E e um m i n om i 135 0 105 o4 ro PS Project Explorer 3 is Navigator a S a 7H ES Client Server Example fH te gt Alternatives repository lt G ga main alternative H fj examplesvstem samm hardware H tj examplesysbem samm qosannotation New examples examples Open gi s examplesv E H examplesy ar Delete Model examplesy Remove From Context Chale Shift Down massQuery E ESULTS pg Import S 2 ChangedMass LA Export j m Gt My kamp Refresh F5 col WithDatabasec Initialize graphical model File rr Open ResulEviewer Validate cave Gbrl s a IAA Team Dz l p Outline si Compare With ls platform resource Replace With Repository Visualization r F F F Alt Enker Properties Figure 27 Generating a diagram file for a repository Selecting the menu entry highlighted in Figure 27 will result in a dialog opening Here it is sufficient to simply select Finish to confirm all default settings and create a diagram entry O Q ImPrESS Consortium Dissemination level public Page 47 207 D6 1 Annex Guidelines and Tool Manuals with them The Project Explorer will show a new entry the diagram has the file ending samm repository diagram and the editor for the diagram file automatically opens The Repository Editor can also be opened by double clicking on the repos
76. Modelling service architecture models and composite components 4 4 1 Purpose of the tool The Q ImPrESS IDE provides a graphical editor for a Service Architecture Model SAM and composite components As both structures share the same concepts the editor can be used for both It is intended as a complement for the standard Eclipse editor for EMF based models Users being more familiar with graphical editing environments will prefer this to the standard 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 SAM The editor is opened automatically whenever a user edits a composite component from the Repository Editor as well It is also possible to save diagrams of composite components and Service Architecture Models as diagram files 4 4 2 Tool relationship with the Q ImPrESS workflow The Composite Editor can be used to create edit or display Service Architecture Models SAM or composite components It can be used anytime during the Q ImPrESS workflow however the most relevant workflow step for using the editor is the step Model Change scenario see Figure 31 Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios 3 2 LET I ai Scenaros scenarios lt lt iterate gt gt _ m BEEN V scenario releyantQuality Attributes scenar
77. Page 157 207 D6 1 Annex Guidelines and Tool Manuals a random variable of several supported distributions to either randomly generate numbers or randomly select members of a list This random generation can be either performed during the application generation where the randomly selected value 1s fixed for all executions of the application or performed in the generated application itself typically on each invocation of a module ImPrESS Each module configuration describes at least a class of the module which refers to the actual code implementing it and the relative probability of the module to be selected during the generation There might be further parameters if the module class supports them Multiple module configurations can refer to the same class but with different probability and set of extra parameters For example modules of one of the architectural module classes sequence and branch have a slots parameter determining the number of submodules called in the sequence or selected from in the branch The remaining architectural module class 1oop hasan iterations parameter As an example the following configuration file fragment defines two parameters time millisec and time nanosec both for a module called waiter and a parameter loopcount for a Loop module The time nanosec parameter is a constant The time millisec parameter is a random value from a uniform distribution selected during application generation The loop
78. Port 7 Se pF s a M ps H InterfacePort HEH STRING Hh i P doc Or 1 interface Type Interface j Tr 2072 b E b a lm b Port Port y esteron 7 EventPort Interface Interface f z Fam pem oy n ey m e z m F2 Interface STRING MM On STRING He 09 9 doc STRING SAST dh it l Operation fi l PALA yp a pp _ li rd u 3 Cu sae ansa n rface fod WT E K inheritance FUTT 1i H Interface D HPV ies QualifiedName pr LS i al a Operation Operation m u Operation o STRING 22022 STRING H doc STRING d e input H Messagelype 7 77 gt 7 X 22 4 a gt QualifiedName gt j M gt output 2 MessageType 7 7 P ihrowsExceptions H 4 P OperationException ra 20 gt y d A a 0 00 7 4 d V WY 4 A n di j j H QualifiedName gt gt iN J J MessageType Message Type H ssage T s HH ST PEH IT iG po e doc 2 T IG Tm Ma p TH im MessageType H STRING PH STRING L pi doc STRING p M parameters py Parameter 77 UU qr T T Pt oz FF T 1 d Sel C Pi ae J K d d Parameter Parameter gt Parameter H STRING STRING HiH aoc STRING 5 57 type H Type 1 7 e o tL _ _ A Ft d H QualifiedName Ra Oaai a J e e OperationE
79. Repository in a Q ImPrESS project contains all analysis results for the project alternatives As for the alternative model files the results repository can be browsed in the project explorer see the project explorer view in Figure 142 A detailed results viewer can also be opened by right clicking on RESULTS and selecting Open ResultViewer Figure 142 shows the Result Viewer for the Client Server example system The shipped example includes performance and reliability prediction results for all three alternatives as well as maintainability results costs and time efforts for implementing the two derived alternatives O Q ImPrESS Consortium Dissemination level public Page 168 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Q ImPrESS Eclipse inl xl File Edit Navigate Search Project Run Visualisations Window Help i LB Hg e q m r c m 8135 0 m 10 9 Y FY S PCMResulks Q ImPress amp Java Project Explorer 3 _ 5 Navigator E amp oi eur E s Client Server Example fe gt Alternatives repository lt oo main alternative Tie Ely Result Repository E4 Alternative Evaluation Main Alternative H 4 Performance Prediction Result Ei gt Reliability Prediction Result El gt Reliability 4 Result Distribution 0 9922374721293388 gt Alternative Evaluation New mass query implementation Alternative Evaluation With database cache Q ChangedMas
80. SS Consortium Dissemination level public Page 123 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Workplan Editor Show Activities in Architecture Element Type Architecture Element Name Basic Activity Composite Activity Complete Workplan E Composite Activity Change Database Followups 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 Figure 108 The workplan editor in follow up relation mode The second example shown in Figure 109 also features a change to the datatype definition userData that triggers a change to the interface DatabaselInterface 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 Composite Activity Complete Workplan Composite Activity DBS a0 Interface Databaselnterface CHANGE K Interface Port serviceComposite_Required_Databaselnterface CHANGE el Interface Port databasePC Provided Databaselnterface CHANGE PD Datatype Definition juserData CHANGE a0 Interface Databaselnterface CHANGE K Interface Port serviceCompaosite Required Databaselnterface CHANGE amp Interface Port databasePC Provided Databaselnterface CHANGE Add Changing Domain Go back
81. _tectNemoa m t S ES test2 Worker 16 Worker 16 Worker 16 File Edit Navigate Search Project Run Window Help Feba TER mmm i tu ead O Q iGgv Gr rper Project Explorer 5 Navigator Package Explorer x a O E PC No 24 ClientGUL tbp xw Bae component _ PC No 24 ClientGUI EJ PricingManager types i E ReverseEngineeringDemo BS test2 ET 9 src provisions mA JRE System Library JavaSE 1 6 __PC No 24 ClientGUI e pas 2org somox test client gui ICui updatePresentation 6d90bd06 af88 4040 946e 46113232cfce 20rg somox test client gui IGui showView diagrams _PC_No_10_Database_ tbp B _PC_No_12_CBFramework_tbp PC No 18 ClientGUI tbp PC No 2 EmployeeManagement tbp B PC No 22 DatabaseManagerCore Acco JPFChecker found counter example PC No 24 ClientGUI tbp PC No 24 DataRetrieverCore Client tbp 5 PC No 26 LogicFacade DataServiceCore PC No 28 DatabaseManagerCore Acco j PC No 30 DataRetrieverCore Client tbp sy a Counter example found internal architecture model samm gastbel org somox test client gui PC No 24 ClientGUI PC No 24 ClientGUI runEnvironment or e internal architecture model samm qosannc jj internal architecture model samm reposita le internal architecture model samm seff le internal architecture model samm servicez Reason JPFCheck found counter example
82. abase implementation 3ad4d1 amp 6 Dc5a 4e7 v Preparation Show Activities in d with database cache 685bd7c4 743a 4e59 bd65 a77b9 Containment Relation Follow Up Relation E go main alternative Specify Architecture Alternative s H O examplesystem samm hardware Sn Architecture Element Type Architecture Element Name Basic Ac J examplesystem samm qosannotation Specify Change scenari E Composite Activity Complete Workplan J examplesystem samm repository E Composite Activity Add Cache component examplesystem samm_repository_diagram gt Specify Workorganisation zs Component aName ADD T O exemplesystem samm seff a Interface Port aName ADD g examplesystem samm_seff bak x g examplesystem samm_servicearchitecturemodel Aeae operanon aname RD g examplesystem samm servicearchitecturemodel diagram a 3 get Interface Port aName ADD B examplesystem samm_targetenvironment pistes overview Operation aName ADD B examplesystem samm_usagemodel Composite Activity Test E O massQueryUser BusinessLogic samm seff diagram L Export rests zs Component aName CHANGE H RESULTS ei Interface Port aName CHANGE c ChangedMassQueryImplementation kamp 22 WithDatabaseCache kamp m 4 b Analysis E Properties x ont Problems Z Console rtu SERE Propert Value Figure 141 The KAMP workplan editor 5 4 Result viewer and trade off analysis The Results
83. action levels In this mode component activities contain interface port O Q ImPrESS Consortium Dissemination level public Page 122 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS activities and these contain operation activities In Figure 107 a change to the component serverComposite contains a change to the interface port Required DatabaseInterface 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 eK Interface Port serviceComposite Required Databaselnterface CHANGE Operation getUserForlserld Database CHANGE zs Component databasePC CHANGE get Interface Port databasePC Provided Databaselnterface CHANGE z Operation getUserForlserld Database CHANGE o Interface Databaselnterface CHANGE Add Changing Domain Go back to Analysis Overview Figure 107 The workplan editor in containment relation mode 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 shown in Figure 108 a change to interface DatabaseInterface is followed by a change to interface ports for serviceComposite and databasePC Q ImPrE
84. aining a hierarchical structure of model alternatives e Model alternative represents one particular version of an application architecture The alternative includes various models describing the architecture e Default alternative only one alternative in the tree of alternatives is selected as a working alternative The other alternatives are not accessible their models cannot be accessed e Model model included in an alternative 4 2 5 Tool prerequisites The Backbone has no special prerequisites 4 2 6 Tool activation The Backbone is activated during the startup sequence of the Eclipse platform It publishes the Q ImPrESS perspective configuring the Eclipse environment in order to show Q ImPrESS related GUI elements views buttons projects content Q ImPrESS perspective activation The Q ImPrESS perspective can be activated by selecting it from the Eclipse perspective menu see Figure 5 The perspective activation causes reconfiguration of Eclipse platform layout to show Q ImPrESS related tools Q ImPrESS Consortium Dissemination level public Page 25 207 Y D6 1 Annex Guidelines and Tool Manuals x ImPrESS Open Perspective _ O Lug Acceleo at lacus Repository Exploring F Debug Q9 Ecore amp Java default 7 Java Browsing fet Java Type Hierarchy S PCM Results e Planning ip Plug in Development B C ImPrESS in SOUrCE Ac FPR Bo Team Synchronizing X XML
85. al editor for components of a Service Architecture Model SAM that ought to be maintained subsequently in a repository It is intended as a complementary tool for the textual editor of repository components primarily for the users who are more familiar with the graphical editing environments Last but not least such an editor enables users to reorganise the graphical representation of their models mostly resulting in a cleaner visualization of the model comparing to the automatically generated visual representations The tool is completely integrated into the Eclipse development environment and is available in an initial version covering a wide range of useful features 4 3 2 Tool relationship with the Q ImPrESS workflow The Repository Editor can be used to create edit or display repository elements such as components interfaces interface operations or data types It can be used anytime during the Q ImPrESS workflow However the most relevant workflow step for using the editor is the Model Change Scenario step see Figure 26 O Q ImPrESS Consortium Dissemination level public Page 45 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios 3 2 I H sScenarnos scenarios lt lt iterate gt gt scenario relayantCQuality Attributes scenario Y HE Predict System Quality 3 4 altemativeSAMsWithResults LE I m n
86. amm deployment targetenvironment TargetEnvironment Targetk nvironment m BENE mE i E i TargetEnvironment zz STRING 7 1 H STRING PHS doc STRING P gt 7 description gt STRING gt y gt nodes Node _ gt y e networkElements 1 NetworkElement ymy y Y Y TY 4 4 SoftwarePerformanceProfile Softw are PerformanceProfile H Softw arePerfomanceProfile H U softwareKind STRING H gt 7 gt f ram I gt a gt clocksPerInstructionAverage DOUBLE H gt 7 gt clocksPerInstructionDistribution 2 STRING H gt l m p gt gt gt tlbMissProb DOUBLE HH gt gt processor ProcessorDescriptor Pyy gt i L j BAY 11 h A Lf 4 d E QualifiedName gt gt FileSystemPerformanceProfile FileSystemPerformanceProfile gt FileSystemPerformanceProfile t bc storageResource StorageResource Hyr yen gt fileSystem b STRING gt gt gt pa 3 mI di aid 1 j H QualifiedName gt gt gt b O Q ImPrESS Consortium Dissemination level public Page 198 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS NetworkResource NetworkResource m i gt NetworkResource H STRING gt gt STRING gt 4 1 gt doc gt STRING P 9 l bandwidth INT r gt gt
87. 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 in the same way It contains subcomponent instances referencing the DataService and the DatabaseManager component Note that composite components holding other composite components as nested components Q ImPrESS Consortium Dissemination level public Page 180 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS 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
88. arameter YT SeffBehaviourStub lt Guilnterface whoisOperation_Guilnterface gt OperationBehaviourList Yf OperationBehavior M s _ gt co ComponentTypeBehaviourList ComponentTypeBehaviourList 4 ComponentTypeBeha o Outline Zi N ts ri 5 SubcomponentInstance gi Doo gt E Properties 2 Problems 23 a Console ERE 1 158 errors 66 warnings 0 others Filter matched 166 of 1224 items Description Resource Path Location Type Errors 100 of 1158 items Warnings 66 items Figure 28 Editor showing the repository example diagram 4 3 5 Usage instructions and expected outputs The current section will explain how a user is expected to work with the Repository Editor It is assumed that the user already knows how to use a graphical editor 1 e 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 When a diagram file 1s opened it shows the typical interface for every editor working in an Eclipse environment The following explanations make use of the Client Server Example project that is shipped with the Q ImPrESS IDE If the diagram has been automatically generated 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 Section 4 4 4 gives more information about how to improve the lay
89. ass list file javaagent opt jpmf jpmf agent jar tmp instrument cfg When the JVM is stared and the agent is activated it intercepts all attempts to load a class and redefines instruments it 1f necessary The instrumentation adds several fields and methods to the redefined class and also adds code at the beginning and at the end of each public method that will send performance event notifications to the JPMF runtime When an instrumented class is instantiated the instrumentation code first creates an EventSource implementation for this particular instance which will provide performance events for each instrumented method The event source 1s then registered within JPMF At the moment the downside of this approach is a limited ability to select the targets for instrumentation only whole classes can be instrumented and possibly slightly increased overhead compared to the manual instrumentation approach Configuration The JPMF library can be configured from an XML configuration file the location of which can be supplied through a Java system property specified on the command line Djpmf conf etc jpmfconf xml If the jpmf conf property is not set the JPMF library by default attempts to load the configuration from a file named jpmfconf xml for which it looks in the class path Q ImPrESS Consortium Dissemination level public Page 151 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS d data files name of
90. ataservice pu g Primitive Component DatabaseManager pe S Primitive Component Database B i Composite Component ClientComposite bo P Interface Port clientComposite Provided Guilnterface PU K aalas Fort palo nemo 2 0 mccum Jeera p MD Primitive Data Type userDaka pen 5 Primitive Data Type userID B n Message Type messageInput EE ME Message Type messageoukpul Selection Farent List Tree Table Tree with Columns Tasks El Properties 2 ts E r Property Value Documentation l Id IZ ADsazB5SREd amp MGp3ccE GYQ Mame L quicoemponentInstance 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 i e 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 s
91. ation deleted 1 9 06 01 2011 M Masetti QoS Editor Manual added updates in section 1 2 overall tidy up 17 01 2011 After internal review by ENT CUNI PMI FZLITE 24 01 2011 Incorporated MDU review 25 01 2011 O Q ImPrESS Consortium Dissemination level public Page 2 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Last change 25 01 2011 Table of contents dore cc l Tabler Cone RN A E me ee eee 3 1 Introduccion sorses E EN EEEE AAEE 9 li Q mPrESS overall WOTKMOW scsssescssisraierscessncoenedssunrwseasvnraiesscesinceboanadabsosdenussonseiesecavenesnnsdianssenuesosaieseevensh 9 L W ON O NR aera unease E E E E E E 11 1 3 Advantages of using Q ImPrESS during system design and software development 12 1 4 Advantages of using Q ImPrESS during software evolution and maintenance eese 12 2 The Q ImPrESS method RR C E E 13 2d QOVverview of ine OAMP iN IUIDTET M e 13 2 2 Model a chante SCOHUFIO aote ni ta A ANA AAE AT eee eRe eee ee ere ee ee 14 2 2 1 Components selection oo cccccccccccccccccccceeeeeeseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 14 2 2 2 Model components as grey black DOXES cccccccccccccccceeeceeeeeeeeeeeeeeseeeeeeeeeeeeeeeeeeeeseeeeeeeeeeeeeeees 14 2 2 3 Reverse engineering of select
92. ation Data Set R3 Q ImPrESS Reliability Analysis Memory Datasource 4 datasource stored in memory C Add i Y Q ImPrESS Reverse Engineerir Data source Remove 1 LS SimuBench Ji Task Context Plug in Test Logging Jv Task Context Test Enable verbose logging Networking o S 1 items selected Ha me Hj Filter matched 25 of 25 items 2 Close 9 Cancel IL Figure 76 Configuring the PCM simulation vert Q ImPrESS Consortium Dissemination level public Page 98 207 D6 1 Annex Guidelines and Tool Manuals 4 9 5 Usage instructions and expected outputs Running a created run configuration starts the performance prediction platform The SAM model is being transformed into a PCM model Once the PCM model has been created the simulation starts immediately ImPrESS 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 Figure 77 shows the simulation status view in the Q ImPrESS IDE Irc 9 ioi xi File Edit Navigate Search Project Run Window Help JE amp E m s i aual E ogle a LI Q ImPrESS amp Java Fo Project Explorer x Ts Navigator ue Client Server Example E gt Alternatives repository
93. ave a meanigFul name eu qimpress qu Ci Codelworkspace_ gimp WARNING Entity should have a meanigFul name eu qimpress qu Ci Codelworkspace_ gimp WORNING Entity should have a meanigful name eu qimpress qu Ci Codelworkspace_ gimp WARNING Entity should have a meanigful name eu qimpress qu Ci Codelworkspace gimp i WARNING Entity should have a meanigFul name eu gimpress qu C Codelworkspace qimp S WARNING Entity should have a meanigful name eu qimpress qu Ci Codelworkspace_ gimp amp WARNING Entity should have a meanigFul name eu qimpress sa CHCodelworkspace_gimp Details Severity ERROR Message System calls have to point to ports provided by a system Element eu qimpress samm usagemadel impl S5vsEemcCallImpliez61t088 id scersMvaEd r saHgwLlnLw documentation ml Figure 80 Detected warnings and errors for a Q InPrESS model during a performance prediction run O Q ImPrESS Consortium Dissemination level public Page 102 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS 4 10 Reliability Prediction Manual 4 10 1 Purpose of the tool The reliability analysis in Q ImPrESS supports engineers to compute reliability information about complex systems It enables engineers to extract the reliability of a service from the description of the system and a specific usage model The Q ImPrESS platform provides an automated workflow for that purpose starting from a Service Architectu
94. b ConstantNumber ConstantNumber DOUBLE Distribution Q ImPrESS Consortium Dissemination level public Page 205 207 D6 1 Annex Guidelines and Tool Manuals Distribution H Distribution J disrType H DistType H parameters 9 7 DOUBLE uM prO tx i X 3 AC Dist Type DistType Formula Formula Formula specification ParametricFormula ParametricFormula ParametricFormula 3 specification O Q ImPrESS Consortium Dissemination level public Page 206 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 8 Appendix D 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 executing the code under consideration under all relevant th
95. boe6 9 Fed main alternative E l H j examplesystem samm hardware p examplesysbem samrm qasannabation p examplesystem samm repository p examplesystem samm repository diagram p el sep D 5 irs Service germen Model S Sracle ser Ace Arch ecm emule p examplesystem samm servicearchibecturemadel diagram g examplesystem samm Eargebenvironment p examplesystem samm usagemadel p massQuervllser BusinessLagic samm seff diagram eg RESULTS en ot ChangedMassQueryImplementation kamp Same e My kamp z Gt withDatabasec ache kamp Figure 32 A Service Architecture Model file and the corresponding diagram file in the Project Explorer In the case shown a Service Architecture Model diagram file already exists and could be opened and edited If no such file exists in cases where the models have not been edited using the graphical editor before it can be automatically generated from an existing Service Architecture model To generate a diagram file right click on a Service Architecture Model file such files have the file ending samm servicearchitecturemodel in the Project Explorer and select Initialize graphical model file see Figure 33 A dialog opens in which the file location of the diagram file has to be specified O Q ImPrESS Consortium Dissemination level public Page 53 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS L Project Explorer 3 Dx ts Navigator El 1 Client Ser
96. brary a user must specify the desired event trigger interface in addition to the structured performance event name At the moment the library supports the following event triggers directly corresponding to the performance event types mentioned above e AtomicEventTrigger o IntervalEventTrigger e LoopEventTrigger e MethodEventTrigger 4 14 4 Basic API usage The JPMF library itself 1s application agnostic therefore it only provides API for registering performance events that must be used directly by user or by an automatic instrumentation tool Figure 128 shows the API provided by the Jpmf class which serves as an entry point to the library The first three methods provide control over the initialization and shutdown of the JPMF runtime while the other two methods allow registration of event sources and construction of event triggers Using any of the first three methods is optional public class Jpmf public static void init Properties properties public static void flush public static void shutdown public static void registerEventSource EventSource eventSource public static T extends EventTrigger T createEventTrigger Class T triggerType String triggerName j Figure 128 Basic JPMF API At runtime the JPMF library provides a singleton implementation which is initialised in a lazy manner when the first event source or event trigger is registered Explicit initialization of the JPMF library is onl
97. c B org somox test client dataretriever 8 org somox test client gui H3 org somox test database 4B org somox test framework 8 org somox test server 8 org somox test server databasemanager 4B org somox test server dataservice JRE System Library JavaSE 1 6 amp alternatives x amp sissy E Properties 2 Problems EJ Console xm Error Log ax e Exe SIGE mj Sl aj LE amp src gen terminated ClientGUI Q ImPrESS Consistency Checker Simulation Process amp org Worker 16 INFO search maxDepth 4 constraints 0 Select component Worker 16 INFO choice generators thread 1 data 10 WI reaction org somox test client dataretriever IDataRetriever Worker 16 INFO heap gc 20 new 760 free 574 Wl reaction org somox test client dataretriever IDataRetriever i Worker 16 INFO instructions 7413 WI reaction org somox test client gui IGui isUpToDate dot Worker 16 INFO max memory 98MB WF reaction org somoxtest client gui IGui showView dot Worker 16 INFO loaded code classes 92 methods 1196 WP reaction org somox test client gui IGui updatePresentation EET 2 Mis Bre E fetu qu aTa pi WEJ reaction org somox test server databasemanager IAccount T J ae EP T AERES INFO Cleaning up Wh ion org test reaction org somox test server databasemanager IDatabast INF 2 Workflow engine Go UEEH Jie WI reaction org somox test server databasemanager IDatabast 177
98. ces of the control flow Internally the module instances in a generated application are given an unique ID in the form of ModuleX where X is a number These ID s are used to identify the module instances in the main conf and main xml files The main conf file is read by the generated application It has the same format as the generator configuration files It contains parameter of the individual module instances prefixed by their ID and configuration of the measurement harness prefixed by app with parameters such as number of simulated clients threads number of isolated module measurements and whole app measurements to take Values of these parameters are taken directly from the generator configuration There is no need to modify this file unless a single generated application is to be measured with e g varying number of clients or threads The main xml file contains a description of the generated application s architecture It describes the module instances identified by their ID their parameters and for architectural modules which modules are called from these modules It contains the following XML elements e Root architecture element with root module id attribute identifying the root module of the architecture e For each module instance a module element with attributes id classname class of the module and name the name of the module in the generator configuration e For each module parameter there is a param
99. ch QoS Annotation can contain a number of specifications which can refine each other Constant numbers are the easiest case with the lowest expressive power parametric formula are the most complex and powerful specification In typical cases for rough models constant numbers are sufficient To add a specification right click on a QoS Annotation in the tree editor of the samm_qosannotation file and select the specification from the New Child submenu see Figure 54 New Child E Constant Number Constant Number New Sibling p 4 Distribution Distribution i Undo Mew Loo pCount Ctib Z je Formula Formula Redo Ctrl Y Figure 54 Adding a specification to a QoS annotation Parametric Formula Parametric Formula The values are again editable from the properties view In the following example shown in Figure 55 a loop 1s specified as being executed 3 times each time the control flow reaches it 4 Loop Count aMame gt Constant Number 3 0 A nlatform resource ShowcaseMuaodels alternatives 5faceB2a 436f 458c 96e1 049850828d65 showcase samm seff Selection Parent List Tree Table Tree with Columns Property Value nuin rae ar Value 1134 Figure 55 Specifying specifications for a Qos annotation O Q ImPrESS Consortium Dissemination level public Page 74 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Valid QoS Annotations include the ones listed in Figure 56 t Qos An
100. cify 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 then Node A node is being created inside the target environment which 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 1s specified Right click on the Node element select New Child and then Processor Specify a name for the processor e g ServerProcessor Besides
101. count parameter is a random value from a uniform distribution selected on each invocation of the Loop module Waiter time nanosec 0 waiter time millisec random range min 50 max 999 loopisloopcount parameter classname random range min 3 max 5 Two example configuration files are provided reliable single threaded and reliable multi threaded for both C and Java variants Check out the provided configuration files for descriptions of configuration options if overriding the defaults is desired 4 15 6 Expected outputs Generating an application The generated application directory contains e An executable binary main C or script run sh along with jars and class files in jars common and modules subdirectories Java e Input files for the modules in the input subdirectory e Runtime configuration for the modules and benchmark harness in main conf e Architectural description of the application in main xml Q ImPrESS Consortium Dissemination level public Page 158 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Sequence children 3 Sequence Branch Branch 429 mcf Loop children 3 count 100 ft bufsize 10K The figures above show an example architecture and control flow diagram of a generated application It consists of three instances of architectural modules sequence branch and loop and four instances of leaf modules The instance of namd module is called from two pla
102. ction Manual and the SAM Reliability Prediction Manual Both predictions can be launched by creating an Eclipse run configuration Select Run gt Run Configurations and create a new Q ImPrESS Performance Analysis or O Q ImPrESS Consortium Dissemination level public Page 165 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Q ImPrESS Reliability Analysis in the run configurations dialog Both types of run configurations have to be configured in a similar way A Q ImPrESS model alternative has to be selected as well as a usage model and an alternative evaluation which 1s part of the result model that stores the analysis results Figure 139 shows the run configuration dialog for the performance prediction analysis d sum s rh EE 0 QqQ 100 9 1 Geo FY S PCMResuks Q ImPrEss vila v H Y X og 29 G 100 oe X N SS Navigate islas uu s E E x server Example Create manage and run configurations Mternatives repository lt main alternative ddea24 c5 changed database im c with database cache in alternative examplesystem samm he Mame Performance Prediction Main Alternative type Filter text 5 QImPrESS Alternative Q ImPrESS Usage Model Q ImPrESS Alternative Evalu SimuCom Common examplesystem samm qc JE JUnit Plug in Test examplesystem samm re ea Launch SAMM2PCM multiple Select Q ImPrESS Alternative examplesystem samm re m Launch
103. ction element which allows specifying the nested behaviour Again at least a minimal behaviour has to be provided 1 e a connected start action and stop action StopAction The last action of a behaviour AcquireAction Denotes an acquire access to a passive resource A passive resource denotes some kind of limited resource e g a thread pool a semaphore etc It 1s specified for a component in the repository editor The mapping between acquire action and passive resource is provided as a QoS annotation ReleaseAction Denotes a release of a passive resource The mapping between release action and passive resource 1s provided as a QoS annotation see separate Chapter 4 5 6 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 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 enhance 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 Q ImPrESS Consortium Dissemination level public Page 69 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 6 QoS Editor Manual 4 6 1 Purpose of the tool The Quality of S
104. d for Loops the number of loop iterations and for Branches the branching probability other valid annotations are listed per model element Multiple QoS Annotations of different types can be added to a single O Q ImPrESS Consortium Dissemination level public Page 72 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS element of a model All annotations related to a certain model element are afterwards listed in the QoS Annotations property editor fields CallGetAllVolumeDiscounts T C reateDeleqateObjects I Problems Javadoc i Declaration _ Properties 53 Zl Console Error Log e Progress Console Bj History InternalAction Associated annotations Core Appearance QoS Annotations aMame Ee ee Annotation info Property Value Requirement Annotation Type Documentation Id Internal Action l f WN J4PfPEd QyehEev vbg nternal Action CreateDelegateObjects I aName a n Mame Figure 52 The QoS annotations editor containing annotations In order to re identify QoS Annotations in the next step use expressive names in the Name field instead of aName as indicated in the screenshot shown in Figure 52 Each QoS Annotation is stored in the samm_ qosannotation file of the selected Q ImPrESS alternative The file contains a decorator model for the other SAMM models see Figure 53 O Q ImPrESS Consortium Dissemination level public Page 73 207
105. d the entry KAMP Maintainability Analysis Model see Figure 90 The KAMP file contains everything which is necessary to manage maintainability analysis Q ImPrESS Consortium Dissemination level public Page 109 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Select a wizard Create a new KAMP Maintainability Analysis Model model Wizards eye fiker tex p med Plug in Praject H General E e cys H Eclipse Modeling Framework iS Example EMF Model Creation Wizards H Java gt KAMP Models Raa KAMP Maintainability Analysis Model H Palladio Modeling H Plug in Development gt Q ImPrESS L O ImPrESS EMF Models amp gt SISSy Model Creation Wizards gt User Assistance Cancel Figure 90 Creating a new KAMP model file Select the KAMP Maintainability Analysis Model Wizard On the next dialog page select the Q ImPrESS project for which a maintainability prediction should be performed and enter a file name for the analysis model file see Figure 91 r New ce E ew KAMP Maintainability Analysis Model de Create a new KAMP Maintainability Analysis Model model lt gt muc Enter or select the parent folder Client ServerExample c i gt Client ServerExample E ENTDemonstrator LS ENTDemonstrator old E ENTDemonstrator old2 i KAMPEntwicklungsprojekt t gt QlImPrESS Showcase E ShowcaseGeneratedModel LS ShowcaseModels E ShowcaseVa
106. del ET Remove kom Context Chl A EAS HEES Eam H Gj E gag Import H B peg Export a fj src E Refresh F5 JRE validate Pasada tesl Team d Compare with d Restore From Local History Make alternative default Alk Enkter Properties Figure 12 New alternative action Selecting the New Alternative action a wizard is shown see Figure 13 and the user can pick a parent alternative Provided no parent alternative is selected a new alternative will be created as a top level node in the alternative repository Further the user has to specify the name of a newly created alternative Q ImPrESS Consortium Dissemination level public Page 33 207 D6 1 Annex Guidelines and Tool Manuals Last change 25 01 2011 Enewakematve o Create new alternative ImPrESS Select parent Far new alternative and its name A 0 demo FO fe gt Alternatives repository lt e scenario H O ce scenario B Cie test ipfcheck Parent alternative Mame scenario 1 3 cea Figure 13 New alternative wizard O Q ImPrESS Consortium Dissemination level public Page 34 207 D6 1 Annex Guidelines and Tool Manuals Selecting default alternative ImPrESS The action Make alternative default is shown in the pop up menu for each non default alternative see Figure 14 Selecting the default alternative also updates the Project view E Package Explorer fe Hierarchy L Projec
107. delled 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 in case 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 however 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 O Q ImPrESS Consortium Dissemination level public Page 15 207 D6 1 Annex Guidelines and Tool Manuals 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 ann
108. depend on valid model instances m examplesystem samm repository 2 4 I Resource Set l Fs platform resource ExampleSystem alternatives ch6 78380 2415 4460 b75a 911300 amp fe6dejexamplesystem samm repository EB i Mew Child j a Prir 7 Undo Set Ctrl z we Prir i Redo Etrit S Prir Validate nra Open Run 45 Debug s Profile 4s Validate Team Compare With Replace With wikiTexE Propert WEE Load Resource Id Refresh dcmT amp g Mame SES mi E pi Show Properties View Remove Fom Gonbext Gbrl 4t Shift Down Q ImPrESS Consortium Dissemination level public Page 181 207 D6 1 Annex Guidelines and Tool Manuals The other models are specified in a similar way Elements are created by selecting New Child or are being specified as attributes 1n the property view ImPrESS 6 7 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 mem
109. ditor tools for repository elements esses 48 Working with Be ETC PHOEBUS ac deua R e Sv ees ERREUR Ee mob Eae ua eiectum ee 49 Working with Operation Behaviour cccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeeeeseeeeeeeeeeeeeeeeeeeeeeeeeeeeees 50 B VS CCUG i oe adis ece cancer na A E E tive ese A EE E E E besurtd vett m n uM Ue edue 50 Moving eene NN II EET 51 a VAL Ay UA S SEMIS RN EIE TT ES 5 Working with Composite Components ccccccccccccececeeeeeeeseseseseeeeseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 5 Fon Caoa C 5 44 Composite Editor Manual Modelling service architecture models and composite components 22 Al i109 078 101911010 RERO mm 52 4 4 2 Toolrelationship with the Q ImPrESS workflow sse eene 52 2 e MEME EUSEBIO NERONE 53 4 4 4 Usage instructions and expected outputs ssssssssssssseeeneeneeeeeeeee enne eene enne 54 Openin De UI OF oae esa a ego ER US EL RSEN DEOR Een GEM ES DIDIEL AMEN DA EDI RUN RN GUMD SED REL ENENNUS 55 Working WITH OMI O LAT STU ERI RR 55 IBIS ein Elene Mi EIE 59 Petala lla FTN NTIS essa EE e E OE E EEEE EREE e r 60 Adding Subcomponent InSlan COS isos acento reete tee oninia aka Eea Tinei erie gun eE ananena 62 R CA cU a E E E 63 Ao DLF IO VN a Tm EN 64 Aol PUTAS SE CNS g0 METTRE 64 4 5 2 Tool relationship with the Q ImPrESS workflow ss
110. dow when initiating a reliability prediction run see Figure 87 Displayed warnings can be ignored but should be fixed in order to enhance the comprehensibility of the models Errors cannot be ignored but must be fixed Validation Errors have been reported Severity Message 9 ERROR There are duplicated ActionFailureProbability for an Internal amp ction 9 ERROR The Distribution QoS expressions is not supported in BranchProbability amp WARNING Entity should have a meanigful name as WARNING Entity should have a meanigful name D WARNING Entity should have a meanigful name a WARNING Entity should have a meanigful name amp WARNING Entity should have a meanigful name amp WARNING Entity should have a meanigful name amp WARNING Entity should have a meanigful name a WARNING Entity should have a meanigful name Details Severity ERROR Message There are duplicated ActionFailureProbability for an InternalAction Element u gimpress samm qosannotation impl QosAnnotationsiImpl 7fafad lid 5kalloHIPEd vid zOoff0q documentation null mame Main Ignore Cancel Figure 87 Detected warnings and errors for a Q InPrESS model during a reliability prediction run O Q ImPrESS Consortium Dissemination level public Page 107 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 11 Maintainability Prediction Manual 4 11 1 Purpose of the tool The tool implements the KAMP method 1 e Karls
111. e JPMF reference documentation The AtomicEventTrigger represents the simplest of performance event triggers Atomic events are independent and in subsequent analysis atomic events can be used to determine count rate or delay between individual events The trigger interface inly provides a single Q ImPrESS Consortium Dissemination level public Page 146 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS method fire which delivers an event notification along with a high resolution time stamp to JPMF runtime The IntervalEventTrigger represents a pair of events delimiting the start and the end of a generic action or time interval The interface provides two methods start and stop which should be used to enclose code representing the action Both methods deliver an event notification to the JPMF runtime In addition to time stamp these two events are also marked as related so that the duration of the interval can be easily determined The MethodEventTrigger also represents a pair of events this time delimiting the start and the end of method invocation It is basically a variant of the interval event trigger intended specifically for instrumenting method invocations In addition to the enterMethod and leaveMethod methods which should be used to delimit the method invocation there is an additional method leaveMethod MethodExitCause which can be used to report abnormal return from a method 1 e exception L
112. e Model x YML Remove krom Context Certa SEES Dow Gi ML Schema py Import t Example LA Export Ctrl M a Refresh F5 Validate Team d Compare With k Restore From Local History Make alternative default Properties Alt Enter is D Primitive Data Type userData Big D Primitive Data Type userID H g samm seFf g samm servicearchibecturemadel E samm Largetenviranment samm usagemadel GH ere H A IRE System Library JavaSE 1 6 bs B test mydsl Figure 15 Action for creating new model Q ImPrESS Consortium Dissemination level public Page 36 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Using a wizard the user can create a new model by selecting the appropriate option from the provided types of models see Figure 16 New O x Select a wizard zs Create a new Skaticstructure model Wizards model Behaviour Model Constraints Model Datatypes Model Datatypes Model sa 44 Hardware Model am Ls Himpressgast Model m Ls Qosannotation Model ld Rdb Model sen Repository Model Editor bot Ws Simpleuml Model LA SourceCodeDecorator Model MICE aticstructure Model om Targetenvironment Model of UML Model Re Fs Usagemodel Model Ll View Model H E Graphical Modeling Framework b d ie Lal uida Mannina Madal Cra sabinan bd Figure 16 Selecting the type of model Q ImPrESS Consortium Dissemination level
113. e application features a business logic component and a database component Only a simple service has been modelled which can be used to query user data from the database The business component provides a service that queries a bulk of user data information from the database To enhance the QoS of the system two different alternatives have been identified One alternative consists in adding a database cache component which speeds up query response times as results can be buffered The second alternative features a changed database access Here the bulk information is not retrieved from the database with multiple simple database calls but with a single mass query database call The Q ImPrESS IDE displays all model elements for a selected alternative the default alternative To switch the default alternative right click on an alternative and select Make alternative default An alternative can contain different models as well as model diagrams Models have the file ending samm_ xy model diagrams have the file ending samm xy diagram Every model file can be inspected in the project explorer All model elements and attributes can be displayed and edited Figure 136 shows model elements of the component repository for the main alternative of the example system The model attributes are displayed in the Properties view Q ImPrESS Consortium Dissemination level public Page 162 207 D6 1 Annex Guidelines and Tool Manuals
114. e component it can be opened by double clicking on the composite component in the graphical Repository Editor 4 4 4 Usage instructions and expected outputs The current section will explain how a user is expected to work with the Composite Editor It is 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 When a diagram file is opened it shows the typical interface for every editor working in an Eclipse environment The following explanations are based on the Service Architecture Model of the Q ImPrESS Client Server Example project Q ImPrESS Consortium Dissemination level public Page 54 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Opening the editor The user starts an editing session by double clicking on the Service Architecture Model diagram file as shown in Figure 32 The editor opens in the usual location in the Eclipse environment as shown in Figure 34 Q ImPrESS Client Server Example alternatives ddea2420 f86d 4455 940c 807ec4d616dc examplesystem samm servicearchitecturemodel diagram Eclipse Bl xl File Edit Diagram Navigate Search Project Run Visualisations Window Help Ic G6 JE amp E m m iT 04 x mx 8135 0 160 gt T c QumPrEss S PCMResu
115. e engineering Run Configurations xl Create manage and run configurations e Select a single alternative EB Se l Q ImPrESS Alternative SISSy Database Settings SoMo Configuration G ASTZTBP Settings Common ATL Transformation J Eh completions Select Q ImPrESS Alternative S Eclipse Application El g CaCoMe G ImPrESS E Java Applet AO fs gt Alternatives repository lt 3 Java Application O o main alternative j Ww JET Transformation JU JUnit Ju JUnit Plug in Test Launch SAMMZPCM multiple Sy Launch 5155 W Launch SoMox j MWE Workflow j Lat Operational OVT Interpreter j osai Framework j ol PCM Solver Ml pen Solver Reliability G ImPrES5 Consistency Checker sa G ImPrES5 Performance Analysis PH oamPrESS Reliability Analysis E Y Q ImPrESS Reverse Engineering Expand all Collapse all 0 Y Q ImPrESS cocome impl Selected Top Level Alternative none Mame O ImPrES5 cacame impl Ju Task Context Plug in Test Jv Task Context Test amp pply Revert Filter matched 25 of 25 items Figure 63 Reverse Engineering launch configuration Selecting the Q ImPrESS alternative Q ImPrESS Consortium Dissemination level public Page 84 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS The second tab of the launch configuration contains SISSy configuration parameters see Figure 64 Some parameters have already been derived by the source code pr
116. e nennen 64 455 EPoOEDEEFEGUISIG S oousn qon Ce Cee E PA Q us MERIDONEE MI oe IA E E 66 Ae TOOR ORATORE mm 66 4 5 5 Usage instructions and expected OUtputs ccccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 66 DOr MA c 69 25 28 OS FO VI t e MH S 70 AM JPHDOSCOLUI COON sarc IEEE UNE ee ION ES 70 4 6 2 Tool relationship with the Q ImPrESS workflow sess 70 SOS MEE CO Hoi US EE 71 dU MEME US E en Oa as ee cc DS SES 71 4 6 5 Usage instructions and expected OUtputs ccccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeeeeeeeeeeeeeeeeees 71 A itera 75 LM oo Te AUS IV TTE PEE 6 4 7 1 Purpose of the tool eee 76 4 7 2 Tool relationship with the Q ImPrESS workflow esee 76 4 7 3 Tool prerequisites nennen nennen nennen nenne nenne nennen nene renes enne n enne nenne nennen enne 77 AA MOA OY OU a ar rece trta ta setae ELSE EE T3 4 7 5 Usage instructions and expected Outputs ccccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees TX Ao Creare new SAMM TOU osse eoo duras pue ia ciate abd ade nnd mM DR a d 4 7 7 Modifying existing SAMM models iei tr ton PEN NS oA PUN NOSE NUR ROS AR SRAY AERE RA aba GERA dE E NUARS T 4 86 Reverse Engineering Manual e eeeeesesssseeeeeeeeeeee essen nnne eessnnn rn nnr esee sese arr n r
117. e 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 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 Q ImPrESS Consortium Dissemination level public Page 16 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS measurements the software engineer has to go back to phase 2 2 4 checking again the quality annotations defined 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 predicti
118. eC 1 9 CollectionDataType CollectionDataType CollectionDataType STRING 2 STRING 20 e gt doc er STRING C gt y gt I QualifiedName f ComplexDataType ComplexDataType ComplesDatsType PHL STRING jv Cr STRING D y Hoe sR y 1 InnerElement 1 O Q ImPrESS Consortium Dissemination level public Page 192 207 D6 1 Annex Guidelines and Tool Manuals Cadres XSDPrimitiveDataTypes XSDPrimitiveDatatypes InnerElement InnerElement H InnerElement e STRING 7i Baa STRING FH 935 H doc HH STRING MHo 7 MH type H ype I 0 T 7 a o T4 Qualified Name ry ioe 7 4 Static structure package samm staticstructure Repository Repository Hu o P Repository H STRING HH STRING H PHH doc STRING component Type HGH A i tt tt K j i HHOH interface Hi Interface Ty Qo Gr ered Qr Type HEP Go messageType HOR Fi 4T NUT ype LN PRA X i Ty T w 4 A 4 N E V i n 4 F f f 7b Message lype O AH uH ai a l X i T ComponentType ComponentType PrimitiveComponent CompositeComponent PortEnabledEntity PortEnabledEntity i ServiceArchitectureModel E ComponentType Q ImPrESS Consortium Dissemination level public Page 193 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS InterfacePort Interface
119. eated 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 GuiInterface In addition the nested components have to be specified This means that instances of existing component types 1 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 O Q ImPrESS Consortium Dissemination level public Page 178 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS r examplesystem samm repository 5 N fe Resource Set E lel platForm resaurce ExampleSystem alkernativeschb67ea90 2415 4460 b75a 911300eFe amp 64e examplesvstem samm repository EB Repository E Primitive Component Guicomponent i J Primitive Component DataRetriever um Primitive Component D
120. ed components cc cccccccccccceseseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 15 2 2 4 Model system assembly ccccccccccccsesseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeees 15 229 M odelsystem deploy Ment ices sscegensecuedausutandenstuceieaduaandenntiuetaunutanjuntineesead aan uatauniengeesneeamiouens 15 ES EMERGERE SUNT EM I5 22 Addguality annotations eoo oro ee ene ee ene ene ne ene ete eee 16 2249 System Model valit Holl esisi Sa aes 16 229 SSvsterqualitv Phe OI LIGEH e 25 06055 5559905509 906560 T eet 17 2 2 10 Results tradc 0tf analysis ome desine uon Dt espe aE eet 17 22 Implement viable alternative and validate model ccccceeeeseseesseesessssessssssesssssesssssaaaas 17 3 The Q ImPrESS SAMM how a system is modelled ccccssssssssscsccccccccccccccsssssssssscscscccccccccsssssseees 19 4 Tool Manuals e M 21 4 1 Q ImPrESS IDE 1NStGQuaOn m E 22 4 1 1 Downloading Eclipse sssseseeeeeenenenenenene nennen nennen nennen nenne nennen nenne nennen nennen eene nennen nns 22 4 1 2 Installing the Q ImPrESS tools in Eclipse sese 2 4 2 IDE Basics Working with alternatives seseeeeeeeeeeeeeeeee eene eene nenne nennen nnn nnn ne EE EEE EEE esses n annees 24 PNE 019 BB osos ERR 24 22 2 PUTS OU COO rage cree veers i meer tete ema enesis t
121. ed manual action Ah mpap ERICSSON Z P Tool supported automatic action PA up Ericsson Nikola Tesla Development iterations Figure 1 Q ImPrESS workflow overview Several evolution alternatives of a system can be designed derived quality attributes are computed and a final trade off analysis is used to choose the best alternative O Q ImPrESS Consortium Dissemination level public Page 10 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 1 2 Workflow and tools Figure 2 depicts in details all the activities supported by the Q ImPrESS platform Bugtracker Running system g database 5 Gf f User Architecture Source code documentation documentation Java C I m 3 a g T a T j Document T analysis SSS 1 y E M Service Effect _ Target semet Hardware Repository Sher ltications ps Architectu d QoS An ES Usage _ ue tt i m ar 7 NN I T m on mii i E Q ImPrESS Service Architecture Model n x F E Evolution mE Predictions Ei scenarios 4 Perform Weighted it 7 Performance alternatives f L Alternative diii 4 Reliability po S Legend T ail l Ga i P a l cr z z I Activity Control flow Maintainability i I mmm _ Artifact gt Artifact flow l
122. efore can be easily adopted and integrated in the development environment With the use of the Q ImPrESS IDE the model of a large component based system can be handled efficiently Moreover several different evolving alternatives can be modelled and evaluated thus avoiding the implementation testing deployment phases of the traditional production cycle for several alternatives A key feature of the Q ImPrESS platform is the notion of modelling abstraction level Q ImPrESS allows a software engineer to describe a component either as a grey or black box in terms of quality attributes stopping at a high abstraction level while fully modelling main components using the analysis tools provided by the platform 1 4 Advantages of using Q ImPrESS during software evolution and maintenance Especially in domains where software solutions have a long life cycle Telecom Industry and are characterised by high quality standards the product evolution and maintenance phase is crucial This phase accompanies the product until its commercial end and may last years and often decades therefore very seldom it 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 T
123. element corresponding with an option in the main conf file These elements are grouped under a params element which is a child of a module element O Q ImPrESS Consortium Dissemination level public Page 159 207 D6 1 Annex Guidelines and Tool Manuals e For modules of sequence or branch class there is a slot element child of module ement with a carget id attribute holding the ID of module that is called from such module ImPrESS A graphic representation of the random application s architecture can be generated using the viz modules py script The script parses the main xml file created by the application generator and writes the resulting image into main png Provided that a shell variable RPG_ROOT contains the path to the RPG root directory and an application has been generated into the rpg directory a graphic representation of the application can be obtained as follows cd rpg amp amp SRPG ROOT bin utils viz modules py Measuring a generated application The random application first measures the invocation time both wall clock and processor time of individual modules Then the performance of the whole application is measured subjected to a simulated client load The output of the generated application is logically a table with four columns where the first three columns describe a value given in the fourth column This table is output line by line with the columns separated by semicolons In more detail
124. en EnvValueSets class Actual parameter values are supplied in calls to the put Type Set methods where Type can be the name of a primitive Java type int long double String or Object AII these methods except for put Ob jectSet 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 1s 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 4 13 4 Tool activation The following prerequisites have to be satisfied before it is possible to use the Consistency checker on a service s implementation in Java e The project has to be a Java project and have the Q ImPrESS nature set see Section 4 2 6 e at least one alternative has to exist e the alternative has to be filled with the models ob
125. ense that it neither processes input from other tools nor provides directly consumable output to other tools However it is meant to be used for measurement purposes The need to conduct performance measurements can arise either during the model validation phase when a model needs to be validated against implementation or during performance model design and performance prediction phases when some model parameters need to be determined through measurement or when a system usage profile needs to be determined 4 14 3 Key concepts The JPMF library aims to provide a generic framework for collecting performance data from Java applications without the need to tediously create a measurement infrastructure from scratch whenever there is a need to obtain performance data from some application To this end the JPMF library operates with several generic concepts that should be understood prior to using the library However since the purpose of this manual 1s to provide basic overview of the operation and usage of the library many technical details are omitted for clarity and can be found in the library reference documentation Performance Events The principle of the JPMF library operation is based on receiving named performance events from an application under test AUT and attaching performance data collected upon performance event reception to records describing the received events This allows the library to be used in any context as long as perf
126. ent e g a group of events can be enabled or disabled using a single command Each performance event also has a type which determines the basic data payload provided to the JPMF runtime and allows the user to use appropriate even type in different contexts At the moment the library supports the following performance event types e AtomicEvent which is intended for generic standalone events e IntervalEvent which is intended for pairs of events delimiting the start and the end of some generic action e LoopEvent which is intended for pairs of events delimiting the start and the end of a generic loop in the code including the number of loop iterations e MethodEvent which is intended for pairs of events delimiting the start and the end of a method invocation including optionally the cause for method return All performance event types carry a high resolution time stamp which allows extracting basic information such as duration of actions loops or method invocations from the events alone Event Sources since multiple related performance events will often originate from the same runtime entity object instance component or a class the JPMF library defines an EventSource interface which represents a management entity for a group of related events An event source is an application side entity that provides information on supported events and their types and control over which performance events should be emitted by the instr
127. erProcessor El iz ExampleSystem generated El alternatives B E cb678a90 2415 4460 b75a 911300efe64e ZEN examplesystem samm hardware 2 z N examplesystem samm repository BIE i i 2 examplesystem samm Eargetenvironment Resource URIs Browse File System Browse Workspace Pom E db cc cnm RES X project Selection Parent Tree with Columns amp EN Co c LA platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a _Propert Value Clock Frequency 4 2000000000 Descriptor Documentation Id akoJ4c eEd6EArxroyRbSA Mame amp ServerProcessor From now on the hardware model is shown in the editor of the target environment as well In O Q ImPrESS Consortium Dissemination level public Page 184 207 D6 1 Annex Guidelines and Tool Manuals 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 ImPrESS E Resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 9113 loj x File Edit Navigate Search Project Net4jExamples Targetenvironment Editor Run Visualisations Window Help Ini Golo lB amp ed mm aq o m 13m 10 9 ore E C5 Resource Project Explorer I Package Explorer x 1 H S ps fm o examplesystem samm reposito
128. erface X 1 A e simi qoe pue lic ace E Pal iterface Figure 36 Selecting inner components O Q ImPrESS Consortium Dissemination level public Page 56 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS After selecting the component we can move it to another location We repeat this with the two other components as well in order to see them without overlapping each other or any other element in the editor Figure 37 shows how this may look The next thing to notice is that some of the labels are overlapping as well preventing the user to read them n x e examplesystem samm_ servicearchitecturemodel diagram 3 TN gt exampleServiceArchitecturemadal amp I clientCo ch amp Composite Pronieetlcinintteabequired BusinessLogicInterface e n 4 s prae d pe i 1 Mure Pa j i business ID BusinessLobic Provitisdlirtbatbhgie Nara i database Database Provided DatabaseInterface Figure 37 Editor after moving components To overcome this we need to enlarge the components or move a label to another location Enlarging a component can be achieved by selecting it and dragging one of the handles until the components area is large enough to accommodate the label text O Q ImPrESS Consortium Dissemination level public Page 57 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS E M examplesystem samm servicearchiteckuremodel diagra
129. erfaceInherit K RequiredInterfa i ProvidedInterfa 2 MessageType DatabaseInterface SourceEventPart A zstring userData gt getLserForUserld Databaserint userID SinkEventPort sf CompositeComp M Database Provided_Databaselnterface e PrimitiveCompo Lo Inner Elements Operation Database OperationInput OperationBehaviourList OperationOutpuk YT seffBehavinurstub lt Databaselnterface getUserForUserld Databases Darangaker ComponentT ypeBbehaviourList Data Types ay ComplexDataType InnerElement PrimitiveDataT ype al F CollectionDataTvpe Figure 45 The Repository Editor showing a component with a SEFF behaviour stub 4 5 5 Usage instructions and expected outputs The SEFF Editor is used in the same way as the other graphical editors A SEFF behaviour O Q ImPrESS Consortium Dissemination level public Page 66 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS contains of a series of actions which are connected through control flow arrows The first action in a behaviour must be a start action the last action must be a stop action All actions and the control flow link can be selected from the palette Some actions such as branch actions loop actions and fork actions have nested behaviours which may contain all kinds of SEFF action elements Figure 46 shows the SEFF Editor with an example SEFF which contains of a start action loop action and stop action The loop action a
130. ers INT 7 Ho E X h OpenWorkload OpenWorkload Qs ig a gt OpenWorkload H STRING STRING 1 doc STRING Hiho H arrivalRate gt DOUBLE KHan f T To 13 p ar DER pm bs r1 l E a Q ImPrESS Consortium Dissemination level public Page 204 207 D6 1 Annex Guidelines and Tool Manuals SystemCall SvystemC all SystemCall Lo STRING zz i STRING 7H 79 HH doc HH STRING PH InterfacePort T a Qualified Name MH _ i a F eO ser i ere Hh operation Operation a ae callProbability F DOUBLE il L 1 3 po i b 7 9 QoS Annotations package samm qosannotation AnnotationType Annotation Type g REQUIREMENT d M ESTIMATED n MEASURED QosAnnotations QoSAnnotations QoSAnnotations H STRING gt QoS Annotation QoSAnnotation gt Annotation gt STRING b gt STRING H H annotation Type gt AnnotationType gt 2 7 p y A Y 7 L MESI A N constantNumber ConstantNumber H distribution 9 Distribution gt gt gt gt So t as LH 1 j Y i i 4 EM lt gt formula Formula a2 aa gt parametricFormula gt ParametricFormula 1 7h i d ox n p a
131. ervice QoS Annotations editor allows the specification of QoS attributes for single actions of a SAMM SEFF behaviour model Such annotations include failure probabilities CPU and HDD demands The editor represents a convenient and integrated way to edit the QoS Annotations which are stored in a decorator model for the SAMM SEFF model 4 6 2 Tool relationship with the Q ImPrESS workflow QoS Annotations are defined along with the behaviour of services Hence they are modelled during the definition of the change scenario see Figure 48 Process Q ImPrESS Overall Process Gather New Requirements 3 1 Dafine Change Scenarios 3 2 ann scenarios relevantQuality Attributes scenario SAMWithResults Re L3 1 Model Change Scenario d abs Predict System Quality 3 3 T T 3 4 n LIT alternatives AMsWithR alternatives AMs WithResults EE x L j ne kr d alternative TradeOff Analysis Deploy System 3 5 3 8 L suited alternative exists selectedSAM model valid E Implement SAM illite A Validate Model by Measurements 3 6 3 7 madel revision needed Figure 48 Modelling change scenario workflow copied from D6 1 O Q ImPrESS Consortium Dissemination level public Page 70 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 6 3 Tool prerequisites The QoS Annotations Editor requires existing SEFFs to be annotated These SEFFs must be part of a Q ImPrESS design alternative in the Q I
132. es scenario E THE ImPrESS Model Change Scenario Predict System Quality 3 3 m 3 4 E altemativeSAMsWithResults 1 alternative S AMsWithResulls no viable alternative TradeOff Analysis Deploy System 3 8 E suited alternative exists selected SAM madel valid E Implement SAM Impe Validate Model by Measurements a 3 8 a 3 7 a revision needed Figure 120 Validating model by measurements copied from D6 1 4 13 3 Tool prerequisites The Consistency checker 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 babelfish arc nasa gov trac jpf While the Consistency checker 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 the memory requirements of the consistency checking process depend on the complexity of the Java implementation and the behaviour model in TBP It is not needed to use multiple CPUs or a multi core CPU since Java PathFinder and the Consistency checker are single threaded programs The Consistency checker requires JDK version 1 6 or later since it uses the Java based compiler that 1s 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
133. ese essei aene rers s nnne nes SO Q ImPrESS Consortium Dissemination level public Page 4 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Last change 25 01 2011 25 8 EE 09 Ese MEE S TRE CeCe 80 4 8 2 Tool relationship with the Q ImPrESS workflow sse nennen 80 qd EOGOEDECFEQUISI G S ee ene E Ce Ce Ce nC ene 81 Aod ACU IDEM EEEE EEEE E EE R EEE A ES 81 4 8 5 Usage instructions and expected outputs sssssssssssssssseeneneneeneeenee enne nennen enne 82 P MEMESO C cc 92 AD Performance Prediction Manudluseeetstixsspnadtoet paient inmE SOUS POV ERI RR A 95 ZO PUNO OL UM TOU acs ecco pce owe eerste tees eo 93 4 9 2 Tool relationship with the Q ImPrESS workflow sse eene 93 495 JPOOEDEEFEGUISIG cic Cre Cee nO eC oe Ce 94 qd Iooghactiydlioibsasssdedutn eum bUd xot E nd nU iss Im EUEPEM THE 95 4 9 5 Usage instructions and expected OUtputs cccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 99 22 HG o N 102 4 10 Reliability Predioto n MOWHOL scade tuition to Eod aa aia Na a dub v Usa Ec du ada uode 103 4 10 1 Putbose or He IOOE onset nee te nee eer ene ane eee ean ee eee ee ee 103 4 10 2 Tool relationship with the Q ImPrESS workflow eeeeeeeeeeeeeeseeeeeseens 103 4 10 3 TOOL ORC tC ONS ICS 100009 PU E e risu S MU MEM M ME PM S 104 4 10 4 TEOOLOEUV OUO bois EE E eri mmo E E E do
134. eta model SAMM which will not have any practical meaning as they show situations which cannot be reasonably expected to occur It may be needed to enhance the editor after setting up rules e g governing the possible combinations of endpoints for a given connector Currently it is possible to connect two provided ports with a connector without indicating a required port We assume that a future version of the editor may check the model for validity at least when the user saves the created model O Q ImPrESS Consortium Dissemination level public Page 63 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 5 SEFF Editor Manual 4 5 1 Purpose of the tool The Q ImPrESS IDE features a graphical editor that allows for modelling service effect specification SEFF behaviours of primitive component operations a primitive component 1s a component that does not contain other components as opposed to composite components Each provided service of a primitive components comprises such a SEFF behaviour description In the Q ImPrESS toolchain components can have different kinds of behaviours The SEFF behaviour is an abstract behaviour of a component operation which includes relevant information for quality analysis offered by the Q ImPrESS IDE 4 5 2 Tool relationship with the Q ImPrESS workflow The Q ImPrESS graphical SEFF editor can be used both in reverse engineering and forward engineering approaches In a reverse engineering a
135. everse Engineering Launch see Figure 62 Q ImPrESS Consortium Dissemination level public Page 82 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Q ImPrESs Eclipse i El x File Edit Navigate Search Project Run Visualisations Window Help mi a EE ES Ev 2 amp t a a pn a i Qtmpress Java O0 a ev Ea E COCCI ips LES CacoMe New n Into Show In AlE4 ShiFE W d G Copy Ctrl 54 Copy Qualified Name E Paste Cri v 34 Delete Delete Remove From Gontext Cras EA SHiFES Dr TI Build Path Refactor Alr 5hiFE T gag Import pg Export 2 Refresh F5 Close Project Close Unrelated Projects Validate EM Create 5155 Launch M m krd Create Q ImPre55 Reverse Engineering Launch he 4 Enable Q ImPrESS nature Run As Debug As Save CErIH S Team Compare With d Restore From Local History Source Configure d Properties Alt Enter Figure 62 Creating a Reverse Engineering launch O Q ImPrESS Consortium Dissemination level public Page 83 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS A reverse engineering launch configuration is being created which already contains some necessary settings for example the input paths of the source code project and its referenced libraries Figure 63 shows the initial tab of the launch configuration in which the user has to select the Q ImPrESS project for revers
136. ferent 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 Figure 79 shows the response time of a usage scenario as a histogram For a resource the utilization can be displayed as a pie chart Q ImPrESS Consortium Dissemination level public Page 101 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 9 6 Caveats The performance analysis cannot be performed if the model to analyse is not valid In this case a list of error messages is shown in a pop up window when initiating performance prediction run see Figure 80 Displayed warnings can be ignored but should be fixed in order to enhance the comprehensibility of the models Errors cannot be ignored but must be fixed validation Errors have been reported Ioj x Element Resource TERROR System calls have bo point to ports provided by a system eu qimpress sa C ycodewwarkspace qimp ERROR System calls have bo point to ports provided by a system eu qimpress sa Ci Codelworkspace gimp i WARNING Entity should have a meanigFul name eu gimpress qu C Codelworkspace qimp WARNING Entity should have a meanigful name eu qimpress qu CirCodelworkspace_ gimp S WARNING Entity should have a meanigful name eu qimpress qu C ijcadewwarkspace qimp B WARNING Entity should h
137. gBehaviour from the Composite editor palette and click inside the loop action element A nested panel is being created inside the loop action element which allows specifying the nested behaviour Here at least a minimal behaviour has to be provided 1 e a connected start action and stop action The number of loop iterations 1s again specified as a QoS annotation ImPrESS BranchAction Contains multiple nested behaviours where only one behaviour is executed when the control flow reaches the branch action To add a branch behaviour after creating a branch action element select ProbabilisticBranchTransition from the Composite editor palette and click inside the branch action element A nested panel is being created Then select ResourceDemandingBehaviour from the Composite editor palette and click inside the nested panel Now nested behaviour elements can be created inside the panel Again at least a minimal behaviour has to be provided i e a connected start action and stop action For each branch behaviour a branch probability has to be provided as a QoS annotation ForkAction Contains multiple nested behaviours where all behaviours are executed in parallel when the control flow reaches the fork action To add a forked behaviour after creating a fork action element select ResourceDemandingBehaviour from the Composite editor palette and click inside the fork action element A nested panel is being created inside the fork a
138. gain contains a nested behaviour The loop action loops the nested behaviour qf _ANbycgdsEd67LEYBsaQIFg sarnm_seff_diagram xoc Emm lt e Palette gt iN a a um e l Actions a5 E StarkAckion f InternalActian i exampleLoop ExternalCallAction oe LoopAction k BranchActian nh ForkAckian a StopAction someNestedAction 89 AcquireAction f ReleaseAction Links E Control Flow a Composite E Ff ResaurceDema e L5 ProbabilisticBra um Er p Figure 46 A SEFF Editor example The editor allows the user to create the elements simply by selecting the appropriate tool from the tool palette to the right of the editor window For all action elements a name can be specified for better readability To specify the control flow actions can be connected by the Control Flow connector The palette and the available tools are shown in Figure 47 The different actions are explained in the following Q ImPrESS Consortium Dissemination level public Page 67 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS lt e Palette gt Raan Actions a ua StartAction InternalAction y Exbernalcallaction De LoopAction k BranchAckian ak ForkAckion a Stop 4 ction gA AcquireAction g ReleaseAction L gt Links as Control Flors L Composite as gef ResourceDemandingBehaviour FA ProbabilisticbranchTransition Figure 47 The SEFF Editor tools palette StartAction The first action of a behavio
139. gg Mame 1 userID Tvpe 33 Primitive Data Type userID A messageType messageOutput referencing the userData parameter type has to be created in the same way 6 4 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 Guilnterface Add the operation to the interface 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 O Q ImPrESS Consortium Dissemination level public Page 176 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 6 5 PrimitiveComponents 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
140. h C QImPrESS workspace cocome impl DerbyDB i Q PCM Solver File System Workspace Sqlite Specific Parameter E PCM Solver Reliability Q ImPrESS Consistency Checker ee oo ea igs Q ImPrESS Performance Analysis 2 l R Q ImPrESS Reliability Analysis sqlite DB Filesystem Base Path Ey Q ImPrESS Reverse Engineering File System Y Q ImPrESS cocome impl S SimuBench Fu Task Context Plug in Test Juj Task Context Test DB ServerUrl DB Mame sissy DB Username sissy DB Password Apply Revert Filter matched 25 of 25 items aee Figure 65 Reverse Engineering launch configuration SISSy database settings When selecting Derby a database name user name and password have to be provided Insert sissy in all three fields Q ImPrESS Consortium Dissemination level public Page 86 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS The tab SoMoX Configuration provides three sub tabs In the first sub tab Weights select weights for those component detection strategies which best match your preferred reverse engineering results see Figure 66 Run Configurations Create manage and run configurations Mame Q ImPrESS cocome impl type Filter text Q ImPrESS Alternative SISSy Database Settings SoMox Configuration G AST2TBP Settings Common Ln Acceleo Application
141. h alternatives 4 2 1 Tool Description The set of Backbone plug ins constitutes a core part of the Q ImPrESS IDE Backbone plugins integrate all the other tools by providing a uniform infrastructure for the modelling visualization and manipulation of models and their alternatives Leveraging the Q ImPrESS toolset over a backbone layer ensures a high IDE consistency and quality standards 4 2 2 Purpose of the tool The purpose of the Backbone infrastructure is to provide a layer for simplified access to various operations over Q ImPrESS projects repositories alternatives and models and to support the functionality of the other Q ImPrESS tools Backbone is also responsible for visualization of Q ImPrESS project artefacts within the Eclipse IDE 4 2 3 Tool relationship with the Q ImPrESS workflow Backbone plugins being the foundation participate in all the other parts of Q ImPrESS workflow by providing a uniform infrastructure O Q ImPrESS Consortium Dissemination level public Page 24 207 D6 1 Annex Guidelines and Tool Manuals 4 2 4 Tool Usage Q ImPrESS Backbone is an inherent part of Q ImPrESS IDE and its functionality is integrated and shown in various parts of the IDE Conceptually it manages five core Q ImPrESS IDE artifacts e Q ImPrESS project encapsulates source code as well as models stored in alternatives repository analysis settings and launch configurations e Alternatives repository is a repository cont
142. he JPMF library for manual instrumentation using event triggers the user 1s responsible for creating and storing the event trigger instances and invoking their methods that trigger performance event notifications The semantics of a particular trigger depends entirely on the user and her use of the trigger When defined as an instance variable its name should be different for different instances and the events emitted by the trigger are related to a particular instance When defined as a static class variable there will only be a single trigger instance per class and the events emitted by the trigger are related to the class or all instances of the class interface AtomicEventTrigger extends EventTrigger void fire interface IntervalEventTrigger extends EventTrigger void start void stop interface MethodEventTrigger extends EventTrigger void enterMethod void leaveMethod void leaveMethod MethodExitCause cause interface LoopEventTrigger extends EventTrigger void enterLoop void leaveLoop long loopCount Figure 129 Event trigger interfaces Currently the JPMF library supports four basic types of event triggers with their interfaces shown in Figure 129 The library can be extended to support additional trigger types by implementing and registering trigger providers with the framework this is currently beyond the scope of this manual description of the interfaces can be found in th
143. he Q ImPrESS platform lets perform a reverse engineering of existing code and can be used to ease maintenance of old software code while allowing testing alternative solutions without actually coding them O Q ImPrESS Consortium Dissemination level public Page 12 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 2 The Q ImPrESS method This chapter briefly introduces the Q ImPrESS method 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 Figure 3 splits the process in a sequence of phases making the overall procedure easy Process Q ImPrESS Overall Process Gather Mew Requirements 3 1 Define Change Scenarios 3 2 LIT scenarios A jterate scenario Y Model Change Scenario 3 3 m altemativeSAMsWithResults altemativesSAMsWithResults L na viable alternative TradeOff Analysis Deploy System 3 5 3 8 E suited alternative exists selected SAM madel valid E Implement SAM u Validate Model by Measurements F d 3 8 3 7 model revision needed Figure 3 The Q ImPrESS method The number reported in each process box is the chapter number in D6 1 describing the process The overall workflow starts with the definition of different change scenarios alternatives each potentially suited to sol
144. he second stage to Equal EQ This quality will not influence the final result then Q ImPrESS Consortium Dissemination level public Page 133 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 13 Consistency Checker Manual 4 13 1 Purpose of the tool The Consistency checker 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 if the actual behaviour of the implementation reflects the behaviour model and vice versa The algorithm for consistency checking is described in Section 3 of the D5 1 document in detail 4 13 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 The consistency checking participates in the process of validating a model by measurements in the Q ImPrESS workflow see Figure 120 More details are provided in the D6 1 document O Q ImPrESS Consortium Dissemination level public Page 134 207 D6 1 Annex Guidelines and Tool Manuals Process Q ImPrESS Overall Process Gather Mew Requirements 3 1 Define Change Scenarios 3 2 f iterate x relevantQuality Attribut
145. he whoisOperation of the GuiComponent 6 11 SEFF Actions A SEFF consist of several actions which specify the control flow of the called operation 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 create 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
146. hitecture Alternative Change Request Workplan Effort Estimation Result Summary Client ServerExample with database cache AddCache manu oj a r 0 0 Person Days Client ServerExample with database cache AddCache auto aj Fi Fa 0 0 Person Days Result Summary Client ServerExample with database cache 0 0 Person Days Figure 99 Analysis overview with added analysis instances The analysis steps are enumerated in the columns Each alternative has buttons for Deriving Work Plan wheel symbol Editing Workplan and Bottom Up Effort Estimation In the last column a Result Summary in terms of Person Days is shown Workplan derivation by wizard dialog At this point an analysis instance should be specified Hence in the analysis overview a line should be present providing buttons for derivation and editing of workplans and effort estimation The derivation itself 1s triggered by pressing the cogwheel button In this section we look at the case when workplan derivation 1s done by running a wizard dialog Automatic Workplan derivation is covered in the following section Pressing the cogwheel button opens a wizard dialog O Q ImPrESS Consortium Dissemination level public Page 116 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Specify composite activity In the first wizard page you have to specify a semantic rationale for the first composite task of the workplan e g the first mile
147. idation such as the prediction that has been carried out during the Q ImPrESS project The import process can be configured using the radio buttons of the import dialog The first pair of choices makes it possible to import an architecture whose measurements are not yet available Since Q ImPrESS models require annotations before predictions can be run the import plugin will generate random values for all annotations The predictions done on models with random annotations will naturally make little sense however the models can still be used to test various IDE features The next pair of choices determines whether the Q ImPrESS models will be annotated with measurements of quality attributes collected from one module at a time isolated context or from all modules executing together shared context This option is meaningful for validation and is explained in the Q ImPrESS deliverable D4 2 Prediction Validation In general it can be said that measurements from shared context lead to more precise predictions but are not always available in practice The third pair of choices tells whether the Q ImPrESS model annotations should contain mean timing values or complete distributions as observed during execution Finally it is possible to specify the maximum depth from the root component of the model During import all nested components below the maximum depth are coalesced into a single component in the model Zero means unlimited dep
148. ides performance data per instrumented object instance instead of class which is common with profiling tools This 1s intentional because the JPMF library was intended for collecting performance data from component based applications where component instances are usually named and even though they may be instances of the same class their performance characteristics may be different and need to be captured separately When aggregate performance data are required for the whole class they can be obtained either by aggregating the instance specific data provided by the library or by manually instrumenting the class using static triggers or by using a custom instrumentation tool At the moment the automatic instrumentation agent does not support fine grained selection of entities to instrument The configuration file can only list classes only lists classes that need to be instrumented and the agent will always instrument all public methods of given classes When other private or protected methods need to be instrumented triggers should be used to manually instrument the required code parts The JPMF library currently supports neither network based performance data transports nor multiple output files O Q ImPrESS Consortium Dissemination level public Page 153 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 15 Random Program Generator Manual 4 15 1 Purpose of the tool The purpose of the Random Program Generator RPG
149. ify Architecture Alternative s X Specify Change Scenario s Specify Workorganisation Name Description Automated a E v Analysis py Analysis Overview Export Results Figure 94 The editor page for specifying change scenarios O Q ImPrESS Consortium Dissemination level public Page 112 207 f D6 1 Annex Guidelines and Tool Manuals x ImPrESS In order to add a change scenario specification press add button Enter a name and a description of the change scenario see Figure 95 Add Change Request em Name AddCache Description Automated workplan derivation Cancel Figure 95 Adding a change request KAMP derives a workplan which contains the activities for implementing the change scenario This can be done in two different ways 1 The first way is to run through a wizard dialog that asks what changes occur and helps to identify follow up changes 2 The second way is to model the changes in a sub alternative in the Q ImPrESS editor KAMP then calculates the differences automatically and derives the workplan from the differences When adding a change scenario a checkbox Automated workplan derivation is provided for selecting whether the workplan should be automatically derived from a sub alternative or by running a wizard dialog Q ImPrESS Consortium Dissemination level public Page 113 207 D6 1 Annex Guidelines a
150. ike in the case of interval events the method invocation events are marked as related so that the duration of method invocation can be easily determined The LoopEventTrigger also represents a pair of events this time delimiting the start and the end of a loop It is also a specific type of an interval event intended specifically for instrumenting loops To this end the interface provides the enterLoop method which marks the start of a loop and leaveLoop long which marks the end of a loop and allows to associate the number of loop iterations with the event data Like in the case of interval events the loop start and end events are marked as related so that the duration of a loop can be easily determined Figure 130 shows the usage of atomic event triggers to instrument Java code There are two triggers one global for the whole class named __classTrigger and one local to a particular instance named instanceTrigger The global trigger is fired whenever a new instance of the class is created the instance local trigger is fired whenever the execution reaches a certain place in the bar method code When creating the triggers the class of the desired trigger type along with a unique trigger name is passed to JPMF which creates an internal event source implementation so that the event source can be controlled from outside for each trigger and returns a facade implementing the trigger interface The __getInstanceId method should be an i
151. ility Analysis El Y Q ImPrESS Reverse Engineering Y Q ImPrESS cocome impl S SimuBench Jy Task Context Plug in Test J Task Context Test Filter matched 25 of 25 items Figure 67 Reverse Engineering launch configuration SoMoX name resemblance specification Q ImPrESS Consortium Dissemination level public Page 88 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS In the Blacklist tab see Figure 68 a blacklist can be specified that holds packages which should not be part of the metrics calculation For example a GAST may contain references to java API classes organised in the java packages Hence the blacklist contributes in scoping a reverse engineering project Blacklist entries are regular expressions For example to remove all API classes just enter javaN javaxN is an infinite number of arbitrary characters is the escaped dot is the separator for multiple entries Run Configurations E x Create manage and run configurations Q Mame Q ImPrESS cocome impl type Filter text Q ImPrESS Alternative SISSy Database Settings SoMox Configuration G AST2TBP Settings Common Lan Acceleo Application ATL Transformation Weights NameResemblance Blacklist M Completions Eclipse Application java javax junitA org apache E Java Applet 3 Java Application JET Transformation JU JUnit
152. ing the JpmfStat tool to obtain either basic statistical properties from selected events or a text based output suitable for further processing using heavy duty statistical tools such as R Automatic load time instrumentation To simplify application instrumentation the JPMF distribution provides an implementation of a Java agent that can be used to instrument generic Java applications The user needs to provide a list of classes she wants to instrument and use a separate tool called ClassesToInstr to obtain a complete list of classed that will need to be modified by the instrumentation agent The input for the ClassesToInstr tool is a simple text file with one fully qualified class name per line an asterisk can be used as a wildcard to match multiple classes The ClassesToInstr tool will process all the classes reachable from the current class path and output a list of classes that will be instrumented by the agent which then needs to be supplied to the agent When launching the AUT the JVM needs to be instructed to load the JPMF instrumentation agent packaged in a single jar file using the javaagent command line switch and providing a complete path to the agent jar file Also the name of the file containing the complete list of classes to instrument needs to be passed to the agent The following example will instruct the JVM to load the JPMF agent from opt jpmft jpmft agent jar file and pass tmp instrument cfg as the name of the cl
153. io SAMMVVithResults 1 Ay Ed Model Change Scenario 3 3 alternative SAMsWithResults LES l L j Ino viable akormatiwe TradeOff Analysis Deploy System 3 5 3 8 E suited alternative exists selected SAM model valid Implement SAM iioii r Validate Model by Measurements 3 8 3 7 model revision needed Figure 31 Modelling change scenario workflow copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 52 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 4 3 Tool activation The Composite Editor can work on Service Architecture Model diagram files If such a file already exists double clicking on it will automatically open the editor The editor can also be opened from within the Repository Editor when a user wants to edit one of the composite components within the Repository Editor Please refer to the previous chapter for more information about it and the integration with the Composite editor The screenshot in Figure 32 shows the Project Explorer with an example Q ImPrESS project where a suitable Service Architecture Model file and its diagram file are available r3 Project Explorer 25 WES Navigator le TS Client Server Example E Te Alternatives repository lt D oo Em alternative ddeaz42z0 Fa amp d 4455 34 0c 807ec4d818dc His ee changed database implementation 3ad4di amp e6 Dc5a 4875 8fb5 d3 c with database cache 68S5bd7c4 743a 4e59 bd65 a7 7
154. ion systems area cannot be modelled having complete information Uncertainties can be found in many aspects of the architecture model Two main sources stem for example from the behaviour of users and time spans of method executions because we do not consider real time environments garbage collection etc The Result viewer is structured as follows it provides an overview of analysis or simulation results for performance reliability and maintainability metrics For each of the quality attributes the Result Viewer provides a set of stochastic values for the related metrics Firstly in the case of performance the response time for each system call scenario and utilisations for each CPU resource are provided Secondly in the case of reliability the failure probability of the system alternative 1s provided Thirdly in the case of maintainability cost and time efforts for developing a system alternative are provided Each of the analysed metrics can by expressed in a form of the mean or the median the 10 Quantile or the 90 Quantile For example the 90 Quantile means that in 90 of cases will the response time for analysed System Call scenario be smaller as the specified value provided by the Result viewer This way it is possible to identify the most probable system behaviour without including exceptional outlier cases in the further analysis Additionally the Result viewer provides mean the expected value of a random variable and media
155. is aiadisaua eo EN VUE AON NaN IR EAEN EON ENR S 168 6 Appendix B An example on how to edit models using the tree editor 171 0 redie a Reposuory Mode or E E HER aUe pu ES ERNAR Kx oM unu Uc douce ad eU RT UE EA 171 DO D S o DIERUM A E en Te eee rennet Seamer en E erent Me med MINCE UD 174 S COLE E RR A OPE TE OA RTE Ee ee AA ee ee ere ee eee ne eee ee eee 176 OA IT CE pene CREEPER RTT PT EEE EEUU 176 09 PPI CC OOM IIS croatecrr RR 177 00 2 000028000172 eateries area atest 9 178 OF OF ACh gee a NLA eh gen Ode PEE 182 Ts E 183 6 0 Create a Target Environment Model eese esee tht nene ssna ern n ness essen a nnne sse 183 6 10 Create d SERT Behaviour MOOGLievse tice etewic E E S S A EA 185 6 11 AY ELTE MERE Um T TTE 186 6 11 1 LoopAction BranchAction ForkA ction cccccceceeesesssssseeeseeeeseeeeeeessesssssssssssesssesesagags 187 6 12 Create a Uos Annotaton Model usc aoo ria toon ebria a a oP uds bo tinted cud Urb 0o ER boo obi Ede 187 O Q ImPrESS Consortium Dissemination level public Page 6 207 A D6 1 Annex Guidelines and Tool Manuals ImPrESS Last change 25 01 2011 7 Appendix C Concrete syntax for SAMM meta model eee eee ee eee eee eese e eee ee esses esee ess 189 uL HV COCO TOTTI Suscepit Md DIM eds vicud Mureti du eden 189 7 2 Core package SamilDCOFE x5 3552010
156. ith database cache AddCache manu of r ail 0 0 Person Days Client ServerExample with database cache AddCache auto of Fi p 0 0 Person Days Result Summary Client ServerExample with database cache 0 0 Person Days Figure 140 The KAMP editor analysis overview O Q ImPrESS Consortium Dissemination level public Page 167 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Next we look at the workplan and adjust it manually by clicking on the edit button in the workplan column When the workplan is adjusted we go back to the analysis overview and go to the effort estimation by clicking on the button in the effort estimation column For each workplan activity we enter the corresponding time effort estimations For a detailed description please refer to the Maintainability Prediction Manuel in Section 4 11 Q ImPrESS Client Server Example WithDatabaseCache kamp Eclipse Bl xl File Edit Navigate Search Project Run MainEditor Visualisations Window Help NO Sui m ric 39 81 55 0 Q 10 o se e Fy S PCM Results lt Q ImPress amp Java C3 Project Explorer 3 VS Navigator g 77E Re WithDatabaseCache kamp x ELE E u Client Server Example E ts gt Alternatives repository lt Navigation Workplan Editor oo main alternative ddea2420 F86d 4455 940c 807ec4d616dc_ c changed dat
157. itory diagram file The screenshot in Figure 28 shows the diagram for an example repository ImPrESS Q ImPrESS Client Server Example alternatives ddea2420 f86d 4455 940c 807ec4d616dc examplesystem samm repository diagram Eclipse Bl xl File Edit Diagram Navigate Search Project Run Visualisations Window Help I3 GG EM amp e m m iq 0 c m 3135 0 Q 105 9 c Gro EY Qimpress S PCMResults amp Java Tahoma Jb r or pr ee Bie ke keel oN Ge foe C5 Project Explorer Z3 us Navigator B m examplesystem samm_repository_diagram 3 A BEL ES uus Example al Palette b gt Alternatives repository lt AN M i e 66 main alternative Q Guilnterface Q Dat s s ALL H 0 RESULTS lt string collectionUserData gt whoisOperation GuiInterface int collectionUserId string collectionUserData gt wh Interface E ChangedMassQueryImplementation kamp A InterfaceInheritance My Kamp C WithDatabase Cache kamp K RequiredInterfacePort ProvidedInterfacePort clientComposite Provided Guilnterface Qi MessageType SourceEventPort SinkEventPort st CompositeComponent amp PrimitiveComponent K GuiComponent Required DataRetrieverInterface K clientcor I El t GuiComponent Provided Guilnterface Inner Elements clientComposite Operati E peration amp GuiComponent guiComponentInstance OperationBehaviourList amp dataRetrieverSI ef si P
158. ker run configuration has to be selected in the Run Configurations dialog Figure 123 3 The run configuration for the Consistency checker has to be completed In particular it is needed to select an alternative and the component to be checked Figure 124 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 125 4 The analysis is started by clicking on the Run button in the Run Configurations dialog Figure 125 The Consistency checker 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 O Q ImPrESS Consortium Dissemination level public Page 137 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS a aaa QImPr SS PricingManager altemnatives 3c08cdf2 cdb0 4022 931c 218c39d64660 _PC_No_4 PricingManagerimpl tbp Eclipse Platform Wm File Edit Navigate Search Project Run Window Help ry amp m B Eg Q Run Last Launched Ctrl F11 A r amp Debug Last Launched F11 E Project Explorer 25 S Navigator Run History gt I External Plug in Libraries Run As E PricingManager Run Configurations fg gt Al
159. l Figure 101 Selecting architecture model elements affected by a change request Q ImPrESS Consortium Dissemination level public Page 118 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS Select Component Activities After pressing Select Components you will get to another wizard page where all components from the architecture model are listed see Figure 102 Select Work Activities Please check the components which are affected by changes Component Basic Activity clientComposite serverComposite Figure 102 Selecting components affected by a change request 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 the running example component databasePC is directly affected so we mark this component and specify the 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 the activity description can be refined by selecting the interface ports which are affected and selecting the kind of basic activity In the running example the port Provided DatabaseInterface is affected We mark it and select the basic activity CHANGE O Q ImPrESS Consortium Disseminatio
160. level public Page 65 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 5 3 Tool prerequisites The SEFF Editor has no special prerequisites except for the existence of at least one provided service of a primitive component for which a SEFF is going to be created 4 5 4 Tool activation The SEFF Editor works on SEFF diagram files which are stored in the corresponding SAM alternative folder Diagram files have the file ending samm seff diagram the editor can be launched by double clicking the file All SEFF behaviours for an alternative 1 e the SEFF models not the diagram files are stored in a common SEFF Repository This file has the file ending samm seff and is located in the alternative folder as well If no SEFF behaviour diagram file for a component exists it can be created from within the graphical Repository Editor In the Repository Editor all components are displayed as well as behaviours that have been specified for a component Figure 45 shows the Repository Editor with a component Database implementing the interface DatabaseInterface For the interface operation getUserForUserld a SEFF behaviour stub has been specified The SEFF Editor can be opened by double clicking a SEFF behaviour stub For more information about the Repository Editor and behaviour stubs refer to the Repository Editor Manual 8 examplesvskem samm repasibory diagram X l lt e Palette Raag E Interface PF Int
161. lidation Filename basicexamplesystem kamp Advanced tee Je Figure 91 Creating a new KAMP model file Specify a file name Leave the next dialog page as it is Click Finish to create the model file Q ImPrESS Consortium Dissemination level public Page 110 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Navigation bar The file is opened in a separate editor that has a navigation bar on the left side see Figure 92 The navigation bar can be used to reach preparation and analysis steps of maintainability prediction Navigation Specify Architecture Alternative s Specify Change Scenario s Specify Workorganisation Analysis Analysis Overview hi Export Results Figure 92 The navigation bar in the maintainability model editor Q ImPrESS Consortium Dissemination level public Page 111 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Specify architecture alternatives The first button of the preparation section Specify Architecture Alternative s leads to a specification page for architecture alternatives see Figure 93 This page is per default filled with the alternatives present in the current Q ImPrESS project basicexample kamp 23 Navigation Specify Architecture Alternative s Preparation Architecture Alternatives m Specify Architecture Alternative s Name Description Client ServerExample
162. list of classes the user wants to instrument by scanning the class path and identifying all classes that need to be modified in order to perform the instrumentation 4 14 7 Tool activation For information about downloading the tool see http www q impress eu wordpress tool overview additional tools Being a software library rather than a standalone tool integrated in the Eclipse IDE no special activation steps are required apart from running the instrumented application For the JPMF library to collect performance data the AUT must be instrumented manually automatically or both and at least one of the registered performance events must be configured to emit notifications When using the automatic instrumentation agent the Java Virtual Machine used for executing the application must be instructed to load the agent using the javaagent command line option see section 0 4 14 8 Usage instructions and expected outputs No special steps are required when using the library to collect application performance data After executing the AUT let the application perform the desired workload to generate O Q ImPrESS Consortium Dissemination level public Page 150 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS workload specific performance events and shut down the application The JPMF library will produce output files containing the recorded performance events along with sampled performance data These can be processed us
163. lized with help of so call railroad diagram showing terminal and non terminal symbols of the associated grammar corresponding to the SAMM meta model The following list contains definition of each element for each SAMM package 7 1 Predefined terminals The concrete syntax contains several symbols representing particular sequences of characters Letter LETIER A Z p Number NUMBER 0 9 j gt Integer INTEGER pume Jy is Double DOUBLE prO rimam heo Char CHAR i NUMBER L S amp _ 4 O 9 O Q ImPrESS Consortium Dissemination level public Page 189 207 D6 1 Annex Guidelines and Tool Manuals Qualified name QualifiedName String SIRING cm 7 2 Core package samm core Identifier Identifier Entity Entity NamedEntity i H EndPoint O Q ImPrESS Consortium Dissemination level public Page 190 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Named entity NamedEntity TargetEnvironment OperationException CompositeStructure i HardwareDescriptor an HardwareDescriptorRepository Passi assiveResource Q ImPrESS Consortium Dissemination level public Page 191 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 7 3 Data types package samm datatypes Type Type T enmena 4 rimitiveDataType PrimitiveDataType PrimitiveDataType 6 oue P XsDPrinitiveDamypes
164. ls for follow up activities automatically In the running example the interface DatabaseInterface is marked and the basic activity CHANGE is selected see Figure 105 Select Work Activities Choose your interfaces please Basic Activity Guilnterface DataSericelnterface Databaselnterface CHANGE v Figure 105 Selecting interfaces affected by a change request The next wizard page is comparable to the page shown in Figure 103 regarding the interface ports Here the interface ports can be specified which are affected due to the interface definition change marked before Select Datatype Activities As third possible starting point Change Datatype Definition can be selected This leads to a wizard page where the data types can be marked 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 running example the datatype userData is marked with the basic activity CHANGE see Figure 106 Q ImPrESS Consortium Dissemination level public Page 121 207 D6 1 Annex Guidelines and Tool Manuals Select Work Activities PIE ImPrESS Please check the datatypes affected by your chan Datatype Basic Activity userld userData CHANGE w Cancel Figure 106 Selecting datatypes affected by a change request In the following wizard pages interface definition
165. lter text 5 H QlmPrESS Alternative E Q ImPrESS Usage Mode Q ImPrESS Alternativ 1 Ph Acceleo Application f Select Q ImPrESS Alternative ATL Transformation E Completions b Eclipse Application E5 Java Applet 3 Java Application v IS Client Server Example v fe gt Alternatives repository lt v amp main alternative oo changed database implementation JET Transformation amp with database cache Ju JUnit b Ju JUnit Plug in Test a Launch SAMM2PCM multiple m Launch SISSy Y Launch SoMoX B MWE Workflow b 2 Operational QVT Interpreter 4 OSGi Framework Q PCM Solver ll PcM Solver Reliability Q ImPrESS Consistency Checker ia Q ImPrESS Performance Analysis v R Q ImPrESS Reliability Analysis Rt New configuration Y Q ImPrESS Reverse Engineering el apply h pply Filter matched 30 of 30 items Expand all Collapse all Selected Top Level Alternative lt none gt Figure 84 Selecting the alternative evaluation for storing the reliability prediction results Q ImPrESS Consortium Dissemination level public Page 105 207 D6 1 Annex Guidelines and Tool Manuals Set the precision of the reliability result value in the text field of the Analysis parameters tab Save the configuration and launch it to run the reliability analysis ImPrESS 4 10 5 Usage instructions and expected outputs When the analysis is being run you can see the progress in the Progress Window of Ecli
166. lts amp Java Tahoma f E z r Y yomi E a Sd ad d RS gt E 100 Project Explorer 23 QA Navigator B U D 84 examplesystem samm servicearchitecturemodel diagram x X ELI El u Client Server Example Palette b fe gt Alternatives repository lt ihe i E oe N L J Ego main alternative leServiceArchitectureModel HO examplesystem samm hardware exampteservicenrenitec ture ode K ReuuiredInterFacePort H 8 examplesystem samm qosannotation ProvidedInterfacePort g examplesystem samm repository g examplesystem samm repository diagram ao a SinkEventPort g examplesystem samm_seff amp TdlientCo H O examplesystem samm_servicearchitecturemodel v mE l Inner Elements 1 J examplesystem samm_servicearchitecturemodel_diagram clientComposite_Pronieaatlcingintteakequired_BusinessLogicInterface H E EN J amp i SubcomponentInstance g examplesystem samm_targetenvironment g examplesystem samm usagemodel J Connector H massQueryUser_BusinessLogic samm_seff_diagram P E SubcomponentEndpoint H i amp RESULTS M amp amp business E ComponentEndPoint 44 ChangedMassQueryImplementation kamp ee Lr My kamp BusinessLogic ProvitiedirieatBbase Namur th testabiaseInterface l 4 WithDatabaseCache kamp v 4 qc amp Outline Z5 E d Sl database Database Provided DatabaseInterface x _ T xil C3 Properties 23 5 Problems
167. m 23 T gt exampleServiceArchitectureMadal clientComposite Provided Guilnterface clienta amp clientComposite Required BusinessLogicInterface e i R i i i 1 h amp BusineSS i BusinessLogic Required Databaselnterface I BusinessLogic Provided DatabaseManagerInterface amp Idatahase Database Provided DatabaseInterface Figure 38 Editor after fixing overlapping labels We can move labels the same way as we move components by selecting them and then dragging them to their new location The screenshot in Figure 38 shows the editor after both actions have been performed The next thing to do is to improve the layout of the connectors This can be achieved by dragging the connector Note that also the position of the component ports can be changed Figure 39 shows the resulting representation of the Service Architecture Model after adapting the connector layout Q ImPrESS Consortium Dissemination level public Page 58 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS r examplesystem samm servicearchitecturemodel diagram 23 B 3 exampleServiceArchitecturemodel UdientComposite Provided GuiInterface e s cdientcompaositeInstance amp clientComposite Required BusinessLogicInterface P amp Fal ra BusinessLogic Provided DatabaseManagerInterface rd a U amp i businessLogicInstance ri JF i BusinessLogic Required DatabaseInterface i Database Pr
168. mPrESS 3 The Q ImPrESS SAMM how a system is modelled The Q ImPrESS Service Architecture Meta Model SAMM provides the meta model for modelling a Service Architecture Model SAM A Service Architecture Model consists of different parts that are split up into several model files Figure 4 shows how the different EMF model files are connected with each other GAST Repository QoS Annotations Usage Repository Model SEFF Repository Service Architecture Model Target Environment Repository Hardware Repository Legend References element in other file SAM Model File Appendix B depicts in details all the practical steps for the creation and editing of different service models Figure 4 SAM files relationship O Q ImPrESS Consortium Dissemination level public Page 19 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS O Q ImPrESS Consortium Dissemination level public Page 20 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 Tool Manuals This chapter provides the documentation for all the tools of the Q ImPrESS platform The order tools are presented should reflect a typical usage scenario of the Q ImPrESS platform also described in D6 1 and summarised in chapter 1 2 Tools can be grouped by the activities they fulfil Service Architecture Model Handling these tools act as a foundation for the rest of the platform tools The Backbone tools extend
169. mPrESS IDE which is the case when following the tooling documentation 4 6 4 Tool activation The QoS Annotations Editor can be activated in from the context menu of graphical editors and is part of the properties view Right click on a model element and select Show Properties View on order to open the view see Figure 49 In the view the tab QoS Annotations shows the editor CallGetAllVolumeDiscounts lAction gt gt f CreateDeleq 7 Add Note File Edit e Delete from Diagram Delete from Model Format b Save Ctrl 5 Save Ctrl 5 Ej Show Properties View Properties Figure 49 Opening the properties view from the context menu 4 6 5 Usage instructions and expected outputs The QoS Annotations Editor can be accessed from the properties view if elements typically InternalActions Loops or Branches of a SAMM SEFF are selected O Q ImPrESS Consortium Dissemination level public Page 71 207 D6 1 Annex Guidelines and Tool Manuals m ImPrESS t Project Explore 23 amp z Navigator O showcase samm repository diagram Yf EKkJYJUEd dWbggLuOB8A samm seff diagram 23 EB e v es gt ShowcaseModels 2151 svn ssh s e ts gt gt Alternatives repository 2151 o gt gt main alternative 5face82a 4 Gy CachedExtendedInventory Gh ExtendedInventorySimulatc o gt gt main alternative 2126 Q showcase samm qosannotatio Q showcase samm repository di A showcase samm repository 2
170. main alternative Alternative from Workspace um Client ServerExample with database cache Alternative from Workspace Client ServerExample changed database implementation Alternative from Workspace Specify Change Scenario s p Specify Workorganisation v Analysis Check Workorganisation Annotation Analysis Overview d Export Results Figure 93 The editor page for specifying architecture alternatives Architecture alternatives can also be manually added edited or deleted via the corresponding button on the right side of the architecture alternative table As illustrated in the figure for our basic example the alternatives are automatically listed Note If architecture alternatives are not automatically listed try to open the KAMP file from the Project Explorer View Specify change scenarios The second button in the preparation section Specify Change Scenario s shows a specification page for change scenarios see Figure 94 Change scenario specifications are short descriptions of changes that occur in the system The objective is to estimate the effort necessary for implementing change scenarios in architecture alternatives A change scenario specification consists of a name and a textual description of the change basicexamplekamp i Navigation Specify Change Scenario s Preparation Change Request Description y Spec
171. move From Gontext bri _GlE Shifk Dowin Build Path k Source AlE4 ShiFE4 5 k Refactor AlE4 ShiFEJ T k tag Import gq Export cim Refresh F5 Clase Projeck Close Unrelated Projects Assign Working Sets Run As k Debug As k Validate Add Remove Q Impress Mature Team Compare Wilkh k Restore From Local History I4ubodac k Configure k AlE Enker Properties Figure 7 Enabling project Q ImPrESS nature Q ImPrESS Consortium Dissemination level public Page 28 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Q ImPrESS project content activation By default the Project Explorer view shows the content of a Q ImPrESS project It is possible to customise the list of visible items by using the Customize View item from the view s menu The Q ImPrESS navigator extension content provider is responsible for rendering the Q ImPrESS related information see Figure 8 Available Customizations Filters Select the available extensions to show unchecked extensions will nat display content Operational QVT Project i5 working Sets I4 c Q Impress Navigator Extension SAMM Model Family Content amp java Elements repository model contents composite diagram diagram contents H repository model contents H repository diagram diagram contents El resourceenvironment model contents El resourceenvironment_ diagram diagram contents M1 3f rennsitary model rnntents
172. mp scenari v11 bfdfcs03 db51 4180 885c 20d39alfeSba Go scenario v21 29b52e2f 5f95 48ed bc3b 63d733a7c v go Main scenario 65821f03 b3a6 4720 9ea5 lab3fa828d7a v j examplesystern repositary staticstructure v i Repository examplesystem Repository zw Composite Component clientComposite P 4 Connector SSh BUFbEd atd qP41ECQ P 4 amp Connector BzrGtOFdEd amp 6atd qgP41ECQ gt 4 amp Connector 3247645 Interface Port clientComposite Provided Guilnterta K Interface Part clientComposite Required DataServi amp Subcompanent Instance dataRetrieverS i Subcomponent Instance quiComponentlnstance P sf Composite Component serverComposite Interface Databaselnterface Interface DatabaseManagerlnterface Interface DataRetrieverInterface P Interface DataServicelnterface Interface Guilnterface P i Message Type messagelnput P Message Type messageOutput amp Primitive Component Primitive Component databaseManagerPC Primitive Component databasePC Primitive Component dataRetrieverPC Primitive Component dataServicePC 7O O F O F al Primitive Component guicomponentPC 5 Primitive Data Type userData naem 8 n St 1 items selected Figure 58 Project Explorer view with an instance of SAMM meta model Q ImPrESS Consortium Dissemination level public Page 78 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS E U ber feet meet generated emnes rl
173. mponentInstance ImPrESS Fs examplesysbem samm repository 53 S i Resource Set El FS platFarm resaurceJExampleSystem alternatives ch67 amp ea90 2415 4460 b75a 911300eFe648 examplesyskem samm repository Repository Primitive Component aGuicompaonent pon gJ Primitive Component DabaRetriever Primitive Component DataService pon Primitive Component DatabaseManager pus Primitive Component Database B i Composite Component ClientComposite Aa e Interface Fort clientComposite Provided auiInterFace H Interface Port clientComposite Required GuiInterface un z E Subcomponent Instance quicemponentInsktance i J Subcomponent Instance dataR etrieverInstance B amp Connector MdyH MSsEd amp Map3cecE aGYQ T te Component Endpoint gneaEcSSEdeMGp3ccE zie Subcomponent Endpoint 1Tc54MSSEd amp MGp3ccE GYO 10 Interface auiInterFace me ED Primitive Data Type userData DET lip Primitive Data Type userID B M Message Type messageInput eM Message Type messageOutput Selection Farent List Tree Table Tree with Columns J Tasks Properties HW ts E x ff Property Value n Documentation i Id m _1Tc54M55Ed 6MGp ccE GYQ Port wl InterFace Port GuiComponent Provided GuiInterFace Subcormponent zd Subcompanent Instance guiComponentinstance 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
174. n the numeric value separating the higher half of a sample from the lower half so called middle value values for each metric O Q ImPrESS Consortium Dissemination level public Page 130 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 12 6 Usage instructions and expected outputs Persistence The tool automatically saves the last choices that the user has made for certain selection of alternative evaluations These choices are automatically loaded at the moment the user activates the tool with the same set of Alternative Evaluations Note The tool does not store the content of alternative evaluations themselves so it is up to the user to make adjustments if the data within alternative evaluations got altered Stage 1 Quality Comparison When presented with the AHP Wizard interface as shown in Figure 117 enter your preferences for ranking of Q ImPrESS qualities Each of the qualities needs to be compared to each other quality Example if the user thinks that Utilization 1s very strongly preferred over Cost user should select second option button from the left in the first row Column name of that button 1s VS which indicates very strong preference and it leans towards Utilization quality iol xl Determine relative criteria priority Please rate pairwise the quality criterias according to their relative level of importance Quality EX vs 5T MO EQ MO ST VS EX Quality Utilization of ff fee O fo
175. n level public Page 119 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Select Work Activities Please check the interface ports which are affected by the changes in the previously selected components Component Name Interface Port Type Basic Activity CHANGE HatabasePC Provided Databaselnterface provided Figure 103 Selecting interface ports affected by a change request Select Operation Activities The next wizard page asks for another refinement step see Figure 104 Here the operations in the implementation of the previously selected components and interface ports can be selected which are affected by the change request In the running example the operation getUserForUserID is marked with the basic activity CHANGE Select Work Activities InterfacePort Name Operations Basic Activity databasePC Provided Databaselnterface CHANGE getUlserFarlserid Database Figure 104 Selecting interface operations affected by a change request O Q ImPrESS Consortium Dissemination level public Page 120 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Select Interface Activities Instead of selecting components as described above Select Interfaces can also be chosen as starting point if it is known that an interface definition has to be changed in order to accomplish the change request Selecting interfaces directly gives KAMP tool the chance to derive proposa
176. nability Prediction Result element Q ImPrESS Consortium Dissemination level public Page 128 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 12 Trade off analysis and results viewer AHP 4 12 1 Tool Description 4 12 2 Purpose of the tool The AHP Wizard enables the user to perform a trade off analysis The results of execution of different analysis tools in the Q ImPrESS IDE are saved within the Result Repository of the project for later refinement The AHP Wizard is an implementation of the Analytical Hierarchical Process that helps the user to choose the best alternative by comparing results of analyses stored in Result Repository 4 12 3 Tool relationship with the Q ImPrESS workflow In the Q ImPrESS workflow the trade off analysis takes quality prediction results of multiple service architecture alternatives to create an alternative ranking see Figure 115 Process Q ImPrESS Overall Process Gather Mew Requirements lt ziterate gt gt scenario relevantCQuality Attributes scenario Y WHE no viable alt TradeOff Analysis Deploy System 3 5 3 8 suited alternative exists selectedSAM model valid a Implement SAM eee Validate Model by Measurements 3 6 3 7 model revision needed Figure 115 Performing the trade off analysis copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 129 207 D6 1 Annex Guidelines and Tool Manuals ImP
177. nd Tool Manuals ImPrESS For illustration purposes we added two change scenarios one with and one without automatic derivation see Figure 96 Specify Change Scenario s Change Request Description Name Description Automated AddCache manual NO AddCache auta Ws Figure 96 Added change scenarios Note A this point there is no explicit mapping from change scenario to architecture alternative needed This will be investigated in the first analysis step 1 e workplan derivation Analysis overview The first button in the analysis section Analysis Overview of the navigation bar opens an overview of analysis instances see Figure 97 Each analysis instance specifies a pair made of an architecture alternative and a change scenario for which the change effort should be determined Each line in the overview table represents an analysis instance Analysis instances can be added and removed by using the buttons above the overview table respectively basicexample kamp i Navigation KAMP Analysis Overview v Preparation Analysis Instance ay Specify Architecture Alternative s ea ay Specify Change Scenario s Architecture Alternative Change Request Workplan Effort Estimation Result Summary ip Specify Workorganisation Analysis E Analysis Overview la Export Results Result Summary Figure 97 The analysis overview editor page Q ImPrESS Consorti
178. nd 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 input 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 while choosing the right abstraction level As time spent on modelling decreases shifting toward a higher abstraction level the deviation between predicted and measured quality attributes increases Moreover complexity and size of models increase at lower abstraction levels This implies considering another inner loop 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 her 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
179. ne e Cos rir SS Corea etary C ak ss Ge ImPrE55 Performance Aray Kia Nave curf egus ation Fc celm nES5 Kelabit Arabs oGelmihE 5 Reverie origami ir F Simubench Ju Ton Contest Pega Tesi xh Task Content Test Emand at 1 Jiasi Top Level Akernakrs mon Manat awe ce d Reemi elected AER dd soot Revert Filter matted 2 of 35 ems 3 im ww j Figure 73 Selecting a Q ImPrESS alternative for performance prediction O Q ImPrESS Consortium Dissemination level public Page 95 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS On the tab Q ImPrESS Usage Model all defined usage models for the selected alternative are displayed Select the usage model for which you want to analyse the SAM performance see Figure 74 Q ImPrESS Eclipse File Edit Navigate Search Project Run Window Help JE amp um m i tueadal s O Qa ler x BSlewvro CS Navigator Zl E Client Server Example i ig gt Alternatives repository lt amp o main alternative ddea2420 Fe6d 445 main alternative O examplesystem samm hardware 6 examplesystem samm qosannotation g examplesystem samm repository g examplesystem samm repository diac O examplesystem samm_seff O examplesystem samm seff bak examplesystem samm_servicearchitecil 5 examplesystem samm_servicearchitecl i g examplesystem samm kargetenvironm O examplesystem samm usagemodel mass QueryUser_BusinessLogic samm_
180. nent Pol aree senem potia ance preceerer serverPr ess g pieper m twgetecororeent Target oreert e agm T wga rt de hari fen om mp Ent j Node serverni netwerkBesoutces a Contre ver cen nt anm Wetwarkhresonrce setherretfesource Meer omrom mer y der 3 d teen Irt m ct mom umet rmt m PetworhInterfaces sorrosttotwvosgseInterfeoce Mocerc sm ommo mem gt Sage Deva debt j Soage Dever dekz empere cam unagemodel 0 auar D asar preceseore Ed EE 21 Pepetes 11 Prete C Canas O rer bog gt mM D wa Shom B fun 648 Quem tion cen B toed Command tt en tocar Barbore D 6n fontana tenttdeors gt edm SO tweets test proj wrtitied Pune MEZ Figure 59 Text editor for a composite component Refer to Appendix C for the SAMM model elements grammar Q ImPrESS Consortium Dissemination level public Page 79 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 8 Reverse Engineering Manual 4 8 1 Purpose of the tool The Q ImPrESS reverse engineering toolchain consists of two integrated tools SISSy and SoMoxX SISSy 1s a tool that can be used to reverse engineer source code Based on source code a GAST representation 1s being created SoMoX is a tool that can be used to detect components of software systems It takes a GAST representation as input and creates a SAM model containing the detected components Besides components SoMoX reverse engineers a full instance of the S
181. nne nnns 129 4 12 2 Purpose of the tool sssssssssssssssssssssseeeeeeee eene e nennen eee eeeeesesesessssses ese see sees esses seen nennen 129 4 12 3 Tool relationship with the Q ImPrESS workflow eeeeeeeeeeeeeesesseeeeeeennns 129 4 12 4 Tool prerequisites cccccceessesesssseeeeeeseseeseeseeesseeseeseeeeeeeeseeeeeeeeeeeeeeeeeseeeeeeeeeeeeeeeeeeeeeseaaas 130 4 12 5 aE ETEA S E E E E E EE E Tm 130 4 12 6 Usage instructions and expected outputs eene eene enne 131 POLSISIC HEB E E one edam NEU dU Frane irme des Steen UN NUNCA E V SUI M PPIA S MICE EUIS EIUE 131 Stage E Quality Comparison esaet muU ee eee RCM UR ND ee eee 131 Stage 2 Vale COHTIDOEISDE te eet eee NN RUN EFE NUMINI NNI IM MINE 132 Stage Ov Interpretation On Reula uenia irem cordibus NOU EEUU UIROS MUNIRI UMEN MESE UNUM IUE 132 Grai T o 133 4 13 Consistency Checker MOI cisnes dope Od Sonico Iuda ION dE U o acu e lado uds Mo ui 00D b cR TL Eod GAS ED iix DUAE 134 4 13 1 Purpose of the tool sse nennen eene eene eee eeeeeees ese sse ses se sese esses esses seinen nnns 134 4 13 2 Tool relationship with the Q ImPrESS workflow eese 134 4 13 3 Tool prerequisites cccccceeeeeessssssseesseesseeseeseeeseeseeseeeeeeseeeeseeeeeeeeseeeeeeeeeseeeseseeeeeeeeeeeseaaaas 135 4 13 4 I TUIENIVEDC RR 136 4 13 5 Usage instructions and expected output
182. no bos Anon SEFF BranchProbability New Child gt Cpu Ri Cpu Ri Undo Cirle 4 SEFF LoopCount Cou Re Redo Cirle V 4f SEFF CpuResourceDemand Ich gt Cpu ki 4 amp SEFF HddResourceDemand M n I 4 BlackBoxServiceResponseTime jo Yes E uid 4f GAST LoopCount Loop ERR RR 4 GAST BranchProbability gt gt Cpu Re Delete 4 SEFF ActivityFailureProbability gt Cpu Ri SEFF PassiveResourceDemand 4 Cou Ri Validate gt a Cou Ri Cnntrol CountwPrice calle PrcinaNAQService findPr Figure 56 All QoS annotations All loops branches and passive resources must carry QoS Annotations Otherwise the model is invalid and the analyses will fail For internal actions QoS Annotations are optional 4 6 6 Caveats Currently no integrated editing of the values of QoS Annotations is possible The extension of the editor is subject to future version of the tool Depending on the analysis not all QoS Annotations are supported For example currently black box service response times are not yet supported by any analysis Q ImPrESS Consortium Dissemination level public Page 75 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 7 Text Editors Manual 4 7 1 Purpose of the tool SAMM model text editor is used for manipulation of SAMM models using text editors 4 7 2 Tool relationship with the Q ImPrESS workflow SAMM model text editor participates 1n the
183. nstalled on top of an Eclipse Galileo development environment This way the Q ImPrESS IDE can be installed on any platform that supports the required Eclipse platform This section describes in detail how to install the Q ImPrESS IDE 4 1 1 Downloading Eclipse In order to install the Q ImPrESS IDE please download the Eclipse Modeling Tools distribution from the Eclipse download website http www eclipse org downloads To install the Eclipse Modeling Tools distribution simply unzip the downloaded ZIP file Note There may be issues when using the built in ZIP functionality of Windows OS We recommend the use of alternative ZIP decompression tools such as 7 zip http www 7 Zip org 4 1 2 Installing the Q ImPrESS tools in Eclipse Once you have installed Java 1 6 and the Eclipse Galileo Modeling Tools distribution please execute the following steps to get started with the Q ImPrESS IDE e Start Eclipse Select Help gt Install New Software from the menu e Make sure the Galileo update site is available It should be available with a fresh Eclipse Galileo Modeling Tools distribution Otherwise add the Galileo update site http download eclipse org releases galileo e Add the following update site by clicking on Add o Name Q ImPrESS Update Site o Location http q impress ow2 org release e You can now select the newly created update site Q ImPrESS Update Site using the Work with dropdo
184. nt which for the graphical representation implies connecting the Connector shape with a Port shape by a line We move the mouse cursor over the Connector and click and drag from there to the port with the label BusinessLogic Required DatabaseInterface Here we release the mouse and a new endpoint will be created The screenshot in Figure 41 shows the editor after the first endpoint has been created To complete the connector we have to create another endpoint that O Q ImPrESS Consortium Dissemination level public Page 60 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS connects the connector with the database component port Database Provided DatabaseInterface z P eee co E examplesystem samm_servicearchitecturemodel_diagram 3 Li c s amp m L2 exampleServiceArchitectureMacdel H RequiredInterfacePort clientComposite Provided GuiInterface el amp clientCompositeInstance H ProvidedInterfacePort SourceE yentPort SinkEventPart amp ClentComposite_ Required _BusinessLogicInterface Inner Elements ad rd s Pd i d e i SubcomponentInstance U 4 Connector U BusinessLogic Provided DatabaseManagerInterfa e E SubcomponentEndpoint M LEN amp i businessLogicInstance ComponentEndPoint Fi face BusinessLogic Required DatabaseInterface Database Provided DatabaseInterface amp IdatabaseInstance B L L El 4 SSS ak Figure 41 Editor after creating a SubcomponentEndPoint
185. nternal method that is able to assign an identifier to the instance specific trigger The other trigger types are used in a similar way the only difference is the interface type passed as an argument to the createEventTrigger method and the methods invoked on the trigger instance Q ImPrESS Consortium Dissemination level public Page 147 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS import org ow2 dsrg jpmf api AtomicEventTrigger class Foo private static final AtomicEventTrigger __classTrigger Jpmf createEventTrigger AtomicEventTrigger class nackage cClass Foo id InstanceCreated 3 private final AtomicEventTrigger instanceTrigger Jpmf createEventTrigger AtomicEventTrigger class package class Foo method bar id X getInstanceId 3 II x public Foo __classTrigger fire constructor code public bar method code before trigger instanceTrigger fire method code after trigger Figure 130 Using atomic event triggers to instrument Java code Instrumentation using event sources For bulk instrumentation of multiple methods in a class the JPMF library provides the EventSource service provider interface which needs to be implemented by the user and be registered within the JPMF runtime The interface allows JPMF to control multiple related events originating from a single place e g a class O Q ImPrESS Consortium Dissemination level
186. o resize it 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 the Composite Editor that displays the contents of the composite component The editor can be used independently from the Repository Editor and it is described in a Section 4 4 However subcomponent instances for composite components can also be created in the Repository Editor To add a subcomponent instance to a composite component select the tool SubcomponentInstance from the palette and click inside a composite component on the canvas A dialog opens which enables the user to select the subcomponent type for the subcomponent instance 4 3 6 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 enhance the editor after setting up rules e g governing the possible combinations of elements in the model A future version of the editor may check the model for validity at least when the user saves the model he created O Q ImPrESS Consortium Dissemination level public Page 51 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 4 Composite Editor Manual
187. o viable alternative TradeOff Analysis Deploy System 3 5 3 8 E selected 5AM suited alternative exists madel valid 4 fF Impleme t SAM Validate Model by Measurements 3 6 3 7 madel revisian needed implementation Figure 26 Modelling change scenario workflow copied from D6 1 O Q ImPrESS Consortium Dissemination level public Page 46 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 3 3 Tool prerequisites The Repository Editor has no special prerequisites 4 3 4 Tool activation 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 In case such a file doesn t exist it 1s possible to automatically generate such a file from an existing SAMM repository Information about how to create a repository model file can be found in Section 4 1 The following paragraphs will explain how to generate a diagram file from an existing repository model A repository model is stored in a file with the file ending samm repository 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 27 ImPrE55 Client Server EXample alternatives ddea2420 f865d 4455 340c 807ec4d6 16dc esamplesystem samm hardware File Edit Navigate Search Project Run Hardware
188. o viable alternative TradeOff Analysis Deploy System suited alternative exists selected SAM madel valid Implement SAM mpima Validate Model by Measurements d 3 6 3 7 model revision needed Figure 60 Modelling change scenario workflow copied from D6 1 4 8 3 Tool prerequisites In order to detect components of a software system the source code should be available as Eclipse workspace project to allow a smooth and straight reverse engineering run The source code project should compile without errors and all depending libraries need to be specified in the project settings The reverse engineering run of Q ImPrESS creates a SISSy GAST model from source code which then serves as input for SoMoX A valid Q ImPrESS project with the design alternative which is going to be reverse engineered needs to exist in the workspace For better performance regarding database speed we recommend using an installed database system like PostgreSQL Otherwise a Derby database can be used out of the box 4 8 4 Tool activation The tool doesn t need any activation After installation of the Q ImPrESS IDE reverse engineering functionality is directly available in the eclipse environment O Q ImPrESS Consortium Dissemination level public Page 81 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 8 5 Usage instructions and expected outputs In order to perform a reverse engineering run to derive a Q ImPrESS model f
189. oc STRING description gt STRING P 9 7 7 gt Ut a oS o 4 4 P e ee C chedulingPolicv SchedulinaPolicyKind gt s s 1 WH schedulingPolicy gt SchedulingPolicyKind gt G istorageResources 1 9 77 StorageResource 77 ri mS e gt d v p J MZ po T FM OQ XROOOMM A x memoryResources 09771 MemoryResource iy Ww 3 executionResources l ExecutionResource Tyre Oa A 4 E P J x J v networkResources 9 7d NetworkResource TY dD b _ SchedulingPolicy Kind SchedulingPolicyKind N FIRST COME FIRST SERVED E PROCESSOR SHARING StorageResource StorageResource H Re ema sme ry gt doe STRING v H StorageResource a a A storageDevices H l StorageDevice qo Q9 ce OF aaaeei mum P Qualified Name LI LU S b t StorageDevice StorageDevice StorageDevice H STRING H STRING Pr 7 doc STRING Pe j ar B C s descriptor H StorageDeviceDescriptor H II t size INT amp 9 y p J ra H QualifiedName O b MemoryResource MemoryResource MemoryResource HH STRING n size i memory HH Memory tu L H QualifiedName H hl Q ImPrESS Consortium Dissemination level public Page 200 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS
190. of other graphical editors and will allow users to become familiar with the editor in a short period of time In our example the component needs to be enlarged in order to allow changing the placement O Q ImPrESS Consortium Dissemination level public Page 55 207 D6 1 Annex Guidelines and Tool Manuals of the contained components and connections This will be achieved by selecting the lower right corner of our component and drag it to an appropriate location ImPrESS a m examplesystem samm servicearchibecturemodel diagram 3 n gt exampleServiceArchitectureMadel z E Uclentca a eos i s M eB ea a al BusiniessLogicInterface Provi rpa jaatabaseIntertace Ue oe C TOR Bae Dam Terrace terface Figure 35 Editor with main element selected After that we need to select one of the inner components to change its placement Currently the components are overlapping making it hard to distinguish them from one another The best way to select a component is by clicking once on its name It is possible as well to click into an otherwise empty area within the component although this proves difficult in our case with the overlapping components pnm s pw examplesystem samm servicearchitecturemodel diagram 33 b gt exampleServiceArchitecturemMacdal amp Icdlientca e EL Egi a Pronieetlotnintteabkequired BusinessLogicInterface E ohase f snequmeu d T he Provi amp eniripgtbbgi ffatabaselnt
191. oject for example the path to the source code files that is used for SISSy or paths to libraries that the source code requires If needed these parameters can be adapted for the reverse engineering run Run Configurations ES x Create manage and run configurations 35 Li X zE Name Q ImPrESS cocome impl type Filter text Q ImPrESS Alternative SISSy Database Settings SoMox Configuration G AST2TBP Settings L3 Common al Acceleo Application ATL Transformation SI55y Parameters E Completions C QImPrESS workspace cocome implisrc Eclipse Application y E Java Applet 3 Java Application JET Transformation Ju JUnit Ec JUnit Plug in Test Launch SAMMZPCM multiple m Launch SISSy Y Launch SoMox D mw workflow Java Settings Le Operational QVT Interpreter 49 OSGi Framework Q PCM Solver Libraries src E PCM Solver Reliability Input paths File System Workspace Language java cpp delphi Library Exclude Zt Q ImPrESS Consistency Checker C QImPrESS workspace cocome implilib hibernate antlr 2 7 6 jar ig Q ImPrESS Performance Analysis ta al at sala iade BA X i CioImPrESSworkspaceicocome implilibihibernatetasm jar i R Q ImPrESS Reliability Analysis Libraries bin C YOGImPrESSYworkspacelcocome impllibihibernatelc3p0 0 9 0 jar El Y Q ImPrESS Reverse Engineering CiYOImPrESSYworkspacelcocome implllibYhibernatelcalib 2 1 3 ja
192. oject displays the Q ImPrESS logo in the project explorer It contains an alternatives repository as well as additional model files All Service Architecture Models SAM for a modelled system alternative are located in one alternative in the IDE The alternatives repository displays all alternatives of the project and allows creating additional alternatives The Client Server example project is called Client Server Example The alternatives repository contains a main alternative as well as two additional alternatives which feature some model changes for which the QoS impacts can be analysed see Figure 135 O Q ImPrESS Consortium Dissemination level public Page 161 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS ImPrE55 Client Server Example alternatives ddea242 f86c File Edit Wavigate Search Project Run Usagemodel Editor Visualisa i A d m o fl Buea sz L Project Explorer 3 tS Navigator El e Client Server Example E 7 Alternatives repository lt Ele main alternative ddea2420 FG amp d 4455 940c 807ec4d amp 16dc Ld changed database implementation 3ad4d1 amp 6 Oc5a 467 Le with database cache 685bd7c4 743a 4e593 bd65 a7 7b3 Ele main alternative H 0 RESULTS pou t ChangedMassQuery Implementation kamp nol Wi thDatabaseCache kamp Figure 135 A Q ImPrESS alternative repository The Client Server example features a model of a small service oriented client server application Th
193. on ForkAction Besides the actions explained above additional SEFF actions exist that allow for specifying additional SEFF control flow elements with nested SEFF behaviours A LoopAction allows for specifying a nested behaviour that 1s executed several times in a row before the successor action of the LoopAction is 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 behaviour element which is similar to the root ResourceDemandingSEFF element For this element nested actions can be specified again that form the nested behaviour This set of actions must contain at least a StartAction and a StopAction All nested actions have to be connected by specifying the Predecessor Abstract Action and Successor Abstract Action references The number of iterations of a LoopAction 1s specified in the QoSAnnotations model file A BranchAction allows for specifying several nested behaviours 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 behaviour is specified by adding a ResourceDemandingBehaviour as nested element to the ProbabilisticBranchTransition This element is comparable to the _ roo
194. on 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 modelling them 2 2 11 Implement viable alternative and validate 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 modelled should be checked again and validated implementation may be checked as well for compliance with the model To effectively apply the Q ImPrESS method a user has still to comprehend how a system is modelled and which tools come into play in each of the method processes Q ImPrESS Consortium Dissemination level public Page 17 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS O Q ImPrESS Consortium Dissemination level public Page 18 207 a D6 1 Annex Guidelines and Tool Manuals I
195. on is clicked each selected element is associated with a default instance of the selected annotation type However when clicking the Next button the annotation properties can be fine tuned for every selected repository entity see Figure 25 e DE XI Annotation Wizard Annotation Editor Final Annotation editor Annotation Instance editor couple 1 annotation type ActivityFailureProbability entity eu qimpress seff impl Internal ctionImpl Propert Value Annotation Tvpe gt Requirement Documentation 1 Id _HwhZR_ZYEd Ut4EUsvt do Internal Action Name S gt aMame Propert Value Documentation Z Id _OW42MGywEd 1WIJHOVYPlg Name z wholsOperation_BeforeCall Predecessor Abstract Action w Start Action Start GUI Successor Abstract Action External Call Action ExternalCall whoisOperation DataRetriever Fey Figure 25 Annotation wizard specification of annotation properties for a selected element 4 2 8 Caveats Problems with the Q ImPrESS project In some cases e g due to an obsolete workspace structure the Q ImPrESS project can be shown in a wrong way This problem can be fixed by re opening the affected projects and by restarting the Eclipse platform O Q ImPrESS Consortium Dissemination level public Page 44 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 3 Repository Editor Manual 4 3 1 Purpose of the tool The Repository Editor tool described here 1s a graphic
196. onding model file Q ImPrESS Consortium Dissemination level public Page 39 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Package Explorer fs Hierarchy L4 Project Explorer el E amp e V El lea demo E Te gt Alternatives repository lt adi oo scenario 342aa amp 0f 42b8 4384 29212 185fFb amp 3d7 1FF E E scenaria B ce amp ccda3 da33 4180 871F 587bbcb1974d Banis c scenario B1 czzaadf ane2 4d 09 bez6 14F21b957829 B oo scenario 942aa amp UF 42b8 4384 9912 185Fb63d71FF Eb g samm hardware A 4 Descriptor Repository 0 Samm qosannotatian E samm repository l E Repository examplesystem Repository El mt a ee SSS aon fu H d Composite Component ib Open Ki Primitive Component H Show properties view Interface F Collection Data Type Undo CHZ a F UM 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 ele ED Primitive Data Type userData CNN e D Primitive Data Type userID samm seff ce samrm servicearchibeckuremadel E samm _targetenvironmenk l E Samim _usagemodel HES sre H S JRE System Library JavaSE 1 6 B test mydsl Figure 19 Editing model Q ImPrESS Consortium Dissemination level public Page 40 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS P
197. onding to interface method invocations However because of the support for event groups and event source configuration the interface is relatively complex for casual use when only a few unrelated performance events need to be defined In such cases the manual instrumentation using event triggers should be used instead For more information on the EventSource and related interfaces please see the reference documentation 4 14 6 Tool prerequisites The JPMF library itself requires a Java Runtime Environment version 1 5 or later and optionally the log4j logging library version 1 2 15 or later The instrumentation agent also requires ASM byte code manipulation library version 3 2 or later which 1s however included in the distribution in a JPMF specific package to avoid interference with other instances of the library that might be used by the instrumented application As for inputs the JPMF library itself does not require any explicit input and by default all the registered event sources are enabled However a user might wish to select a subset of performance events to record and the kind performance data to collect in addition to the data specific to performance event types For this purpose the library can be configured using a configuration file the path to which can be specified using the jpmf conf system property The instrumentation agent will also require a complete list of classes to instrument Such a list will be derived from the
198. onment is also opened if the Consistency checker found an inconsistency and the cursor is 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 is detected then the cursor is put to the Java source code location in the service s method implementation O Q ImPrESS Consortium Dissemination level public Page 140 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Version 2 0 Last change 25 01 2011 File Edit Navigate Search Project Run Window Help S Ho BP theo tl seh ead O Q oR gt Project Explorer 3 x Navigator Package Explorer Soi amp External Plug in Libraries EJ PricingManager p E ReverseEngineeringDemo ES test2 fg gt Alternatives repository lt o main alternative B PC No 30 DataRetrieverCore Client tbp B gastmodel gast O internal architecture model samm gastbehaviour g internal architecture model samm qosannotation Bj internal architecture model samm repository g internal architecture model samm seff O internal architecture model samm servicearchite O internal architecture model sourcecodedecorator 0 RESULTS o No error was found 88 sr
199. orm resource CoCoMe Q ImPr 55 alternatives 3absa13 bcSc 425 a E E gt Alternatives repository lt l ZA in alk ti amp 3abaal3 bcbc 4259 bz85 47c474af 58d d Gegen pene m A LE i icii d Primitive Component lt PC Wo 22 CashDeskEventHandler gt Eee Da alternate a a Primitive Component lt PC Na 44 PrinterEventHandler gt H mierna Architecture model gast l m s Primitive Component lt PC No 50 UserDisplayEventHandler gt E nieto ara bceture MOO k sai fasten m3 Primitive Component PC Na 52 Coordinator gt a U Miss A cM ee ciue LANs seis Le a H E Primitive Component PC No 54 CoordinatorEventHandler gt H uii Wen SSE Cee model samm creen a g Primitive Component PC No B EnterpriseQuervo mc i CE Tek SoU Se gece a cel Nae a a glare a g Primitive Component PC No 68 StoreQuery gt i H internal_architecture_model sourcecodedecorator a a Primitive Component PC No 86 Reportingapplication gt f 0 RESULTS a a Primitive Component PC Ma 108 ReportingConsole gt m Primitive Component zPC Mao 110 4ssert gt in Le ihi m e m m m m m mm a nm Bl 4 Teb Selection Parent List Tree Table Tree with Columns C Properties 2 Problems El Console x x Error Lag lt herminated gt Q ImPrES5 cocome impl Q ImPrES5 Reverse Engineering Simulation x E i e E Aari INFO Task Creating SEFF behaviour completed in al INFO Task Creating SEFF behaviour completed in INFO Cleaning
200. ormance events can be delivered to the library The user of the library must ensure that the AUT registers performance events needed to collect performance data relevant to the performance metrics that need to be determined Each performance event must have a unique name which should be somehow related to the origin of the event in the application For component based applications the architecture of the application provides a natural structure for naming performance events O Q ImPrESS Consortium Dissemination level public Page 143 207 D6 1 Annex Guidelines and Tool Manuals To provide support for hierarchical event naming schemes without prescribing a specific naming structure the library utilises the ObjectName format defined in the Java JMX specification An ObjectName is a string that comprises the following elements in order ImPrESS e The domain e Acolon e A list of key value pairs separated by a comma The boundaries of key value pair are determined solely by the initial colon and intermediate commas Whitespace characters have no special meaning 1 e they are considered to be part of a key or its value The following example represents an ObjectName with two keys where each of the keys and the value associated with key1 begin and end with a space domain key1 valuel key2 value2 This allows grouping related performance events together and simplifies navigation and runtime event activity managem
201. ory 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 and 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 if needed This includes network interface properties such as link latency and link speed To specify a memory element right click on the
202. ost Reliability Response Time Alternative Total Utilization 0 7622 Cost 0 4853 Reliability 0 6556 Response Time 2 0969 New mass query implementation 56 7322 1 6053 0 2037 0 8429 4 0802 Main Alternative 2 5892 0 5542 0 8352 0 8429 0 3569 With database cache 2 5786 0 1272 0 4170 0 2810 1 8534 Normalize values Export results as Browse 2 oed Figure 143 The AHP wizard O Q ImPrESS Consortium Dissemination level public Page 170 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 6 Appendix B An example on how to edit models using the tree editor In a Q ImPrESS project model files can be inserted into the alternative by right clicking on the alternative In the following we create a Q InPrESS 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 QosAnnotation Model by using the tree editor The tree editor is available for all Q ImPrESS models as they are based on the Eclipse Modeling Framework EMF The framework has been used to auto generate the EMF tree editors For general documentation on the EMF tree editor see http help eclipse org ganymede topic org eclipse emf doc tutorials clibmod clibmod html st ep4 6 1 Create a Repository Model Create a new object in the alternative Right click on the alternative gt New gt Other LPS Project Explorer xm HO
203. otations 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 CPU used To derive it 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 engineer 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 literature regarding this topic ImPrESS The Q ImPrESS IDE provides editors for editing quality annotations 2 2 8 System Model validation For a consistent and valid prediction analysis 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
204. out of model elements in a diagram file Working with editor tools for repository elements The editor allows using the same elements as the textual editor for the repository The editor allows the user to create elements simply by selecting the appropriate tool from the tool O Q ImPrESS Consortium Dissemination level public Page 48 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS palette to the right of the editor window The palette and the available tools are shown in Figure 29 lt a Palette D I e LL Q Interface J InterfaceInheritance HK RequiredinterfacePort i ProvidedInterFacePort 2 MessageType SaurceEventPort SinkEventPort H Composite _omponent amp Primitive Component Inner Elements i Operation 3 Parameter YT OperatianBehaviar gt ComponentTypeBeha amp I SubcomponentInstance Figure 29 Editor tools palette 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
205. ovided DatabaseInterface amp databaselnstance Figure 39 Editor after improving graphical representation Deleting elements In order to demonstrate a special feature of the editor we will re create a connector contained in the model To be able to do that we need to delete it first 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 40 Q ImPrESS Consortium Dissemination level public Page 59 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Et examplesystem samm_servicearchitecturemodel_diagram xy EE Ie e L examplesServiceArchitectureMacdel H RequiredinterfacePort ClientComposite Provided Guilnterface e aa ClentCompositelnstance ProvidedInterFacePort SourceEyentPort SinkEventPork ra clentComposite_ Required BusinessLogicInterface Inner Elements ao Fd es Fai amp I SubcomponentInstance E Fa 4 Connector d BusinessLogic Provided DatabaseManagerInterface B cubcomponentEndpoint P al e I businessLagicInstance 8 ComponentEndPoint I EusinessLogic Required DatabaseInterface 1 T M i Add Mote Navigate k s datat File Edit gt L Delete From Diagram a 3E Delete From Model m i k Format ge a M Oo EJ Properties 24 b I Problems zl Console Fiber B dr r4 Li 4 Connector
206. ow I Le Operational QVT Interpreter 4 OSGi Framework Q PCM Solver Ml pcm Solver Reliability Q ImPrESS Consistency Checker igh Q ImPrESS Performance Analysis Rz Q ImPrESS Reliability Analysis Y Q ImPrESS Reverse Engineering Y Q ImPrESS cocome impl S SimuBench Jr Task Context Plug in Test Jv Task Context Test Apply Revert Filter matched 25 of 25 items Figure 69 Reverse Engineering launch configuration G AST2TBP settings After a successful run a TBP file for each primitive component will be created in the alternative folder You can modify the text inside the IDE if needed The TBP models can be used for checking consistency between component implementation in Java and the TBP models O Q ImPrESS Consortium Dissemination level public Page 90 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Afterwards the basic configuration for the reverse engineering run is complete Run the launch configuration to perform the reverse engineering run Open the console view to get information about the run see Figure 70 Q ImPrES55 Eclipse 7 Ioj xj File Edit Navigate Search Project Run wisualsations Window Help LE JE 8 E m i ual 0A 10 y E a empress T oT E ay Java 4 Project Explor 3 Bl i cocome impl ls CocoMe G ImPrESS E Properties Lh Problems EG console 23 e Errar Lag mL terminated Q ImPrES5 cocome impl Q ImPrESS Reverse
207. pecified On the first tab Q ImPrESS Alternative of the configuration select the Q ImPrESS alternative for which a performance analysis should be performed see Figure 73 _ i xj Pie ct Nangxs Search Prowl Mun Widow Heb mMjesscS uasgS e 0 5 Eig ess ane it Du I x Hio af Em E e ees ES gS tener nnn Te gt Aenne repasiiory c D d GE Dreat p ari rin configurations main alterae dietat ted 4458 Alien ae i om j go Nan be T Fu e Qader ESS Longer Pese Uhi crete Fors li b pecker bend o D axumpleristem sain hardeme evampiesysterm summ onan 7 H TF i exunplecisbem cani repasibory menumpiesystem samm repository rv iets E exanplere stem camem esl m 4 exmmpkesysters samm ai boi J Areler Applcabon exevplasysters sume sereiceandhtes c E Transformati exangiepyster summ naeh Completions amp exanpleristere summ targstenvananes s Echea Apps exmmplerstern pamm ussgemodel 3 Java Applet T T Hi hen configuracion Select ESS A mihn i J massQuervuser Dusnasdoge tamm CF Java Fepcation L ce changed babati impersonation Q ngu EERW 3 Se JET Traraformatien L o wath database cache z ChangeditaesQueryImplesent lon Jump Jo ni Ju Junk Plug in Test x7 Launch SAMPMIPCH muna Laung SEES Lunch Sole MAE Workflow s Cpr sional CQVIT er anie d 060 Franek 2 Whaka ache lame PCM Sirer B nen
208. pecified 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 Component Endpoint This is the endpoint that belongs to the outer Guilnterface provided port In the properties view of this endpoint select the outer interface port ClientComposite Provided GuiInterface for the port attribute O Q ImPrESS Consortium Dissemination level public Page 179 207 D6 1 Annex Guidelines and Tool Manuals Then right click on the connector select Add Child and Subcomponent Endpoint This is the endpoint that belongs to the inner GuiInterface 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 guiCo
209. peed INT container Y E QualifiedName E f SubcomponentInstance subCompInst Qualified Name MB 7 7 Annotation package samm annotation Annotation There is no concrete syntax for annotation 7 8 Usage model package samm usagemodel UsageScenario Q ImPrESS Consortium Dissemination level public Page 203 207 D6 1 Annex Guidelines and Tool Manuals my PE a Ge 21 4 p E a UsageScenaria MH STRING LE i STRING UT H doc STRING Ur oq rese alls HH SystemCall fi d rt Y b E as b a t i J i ImPrESS UsageScenario C y ae A y E Y P workload Workload b b 3 b ki UsageModel UsageModel NEM H Usage H STRING b d STRING 1 b H doc z STRING j iq usageScenarios T _ MR M Gh oy ki d In C Y N G p 2 UsageScenario UsageScenario m La n ge x P a uem NE aes UsageScenario HH STRING HH H STRING DA doe H STRING Pr g rene alls FA l SystemCall Ty D p Mo vf F Y X b N A b N rn Sar c a m GO workload r Workload 9 d UU f X Workload Workload v ClosedWorkload E OpenWorkload Closed Workload ClosedWorkload ET i DEP ENA z Closed Workload H STRING KC d STRING 4 H doc H STRING a LE gt thinkTime HH DOUBLE 5 a lai MM f J C P numberOfUs
210. perationBehaviour In the Inner Elements section of the palette Operation Behaviours can be added to Primitive Components Adding an element of type OperationBehavior opens a dialog box requiring the user to choose whether a SEFF behaviour stub or a GAST behaviour stub shall be created After specifying the type of behaviour a dialog box opens that allows the user to select the operation interface for which the behaviour is to be specified By double clicking on a SEFF behaviour the graphical SEFF Editor opens which allows displaying and editing the SEFF behaviour This editor is explained in detail in chapter 4 5 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 30 B examplesystem samm repository diagram X EE n 22 Palette B C userIdInput DatabaseInterface R HLY 1essL agic int collectionUserid int userID amp zstring userData gt getUserForUserId Databasetint userID Interface P InterFaceInheritance nessLogic Provided DatabaseManagerInterface KC RequiredInterfacePort ProvidedInterFacePort BusinessLagic BusinessLogic Required DatabaseInterface OperationBehavicurList amp Database Provided DatabaseInterface 2 MessageType IsiriessLagicInterface masstQuerylser BusiniessLogic gt SourceEventPort Component Ty pebehayviourList SinkEven
211. plementations of interfaces required from the framework The framework may provide the event source with a common time source in form of a TimerCounter interface which allows the event source to obtain timing information that is compatible with other event sources and the rest of the framework However more important is to provide the event source with an EventDelegate interface reference for each event it supports The EventDelegate references will be used to submit event notifications to JPMF Finally the third set of methods comprises the enable disable isEnabled enableEvent int disableEvent int and isEventEnabled int methods which the JPMF uses to control the event notifications emitted by an event source The enable and disable methods serve as a master switch which allows JPMF to enable O Q ImPrESS Consortium Dissemination level public Page 149 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS na disable event source operation and consequently allow the event source to e g remove instrumentation from the class to reduce passive state overhead The enableEvent int and disableEvent int methods serve for fine grained control and allow JPMF to select events for which the event source should emit event notifications The EventSource interface 1s to be implemented by performance instrumentation code and allows creating a single event source entity for a set of related events such as e g events corresp
212. pmfStat tool accepts various command line arguments shown in Figure 132 Figure 133 shows sample output of from the JpmfStat tool The first part of the table contains statistical values for various types of sensors such as time in CPU clocks or application CPU time in seconds The second part contains the computed percentiles O Q ImPrESS Consortium Dissemination level public Page 152 207 D6 1 Annex Guidelines and Tool Manuals jpmf event package org cocome impl class StoreImpl1 id 0 event getProductWithStockItem 5 type mean median variance MAD time 40012664 643 33473648 500 2428576578625785 000 3284980 000 cpu iowait all 0 071 0 000 0 164 0 000 cpu nice all 0 000 0 000 e 000 e 000 cpu userst all 5 594 4 000 130 626 1 000 cpu system all 0 311 0 000 0 565 e 000 cpu softirg all 0 034 0 000 0 033 e 000 type percentiles 10 20 30 40 time 28917998 500 29580559 200 30577046 600 31885300 800 cpu iowait all 0 000 0 000 e 000 e 000 cpu nice all 0 000 0 000 e 000 e 000 cpu user all 3 000 3 000 3 000 3 000 cpu system all 0 000 0 000 0 000 e 000 cpu softirg all 0 000 0 000 0 000 e 000 Figure 133 Sample output from the JpmfStat tool 4 14 9 Caveats When used with the automatic instrumentation agent the JPMF library prov
213. pproach initial derived SEFF behaviours of component operations can be visualised and enhanced using the editor In a forward engineering approach the editor can be used to create and behaviour models from scratch The tool described in the chapter 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 It can be used anytime during the Q ImPrESS workflow However the most relevant workflow step for using the editor is the Model Change Scenario see Figure 44 O Q ImPrESS Consortium Dissemination level public Page 64 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios 3 2 mum SCENAS scenarios iterate scenari relevantGualitbyArtributes scenarno EAMWithResults HY Ed y Model Change Scenario L Predict System Quality 3 3 T 3 4 ch allemativeSAMs Wilh RBsull ino viable akemative TradeOff Analysis Deploy System 3 5 3 8 LJ Suited alternative exists selectedSAM model valid Implement SAM impiamarmaitan 4 Validate Model by Measurements 3 8 3 7 model revision needed Figure 44 Modelling change scenario workflow copied from D6 1 Q ImPrESS Consortium Dissemination
214. process of modelling an architecture scenario see Figure 57 It 1s used as an alternative to other modelling tools like graphical editors or specialised editors QoS Annotation editor Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios 3 2 ann sScenarnos scenarias iterate scenario relevantQuality Attributes scenarno SAMWithResults HY fd 1 i Model Change Scenario L zs Predict System Quality 3 3 Un 3 4 h LIT alternativeSAMsWithRes T altemativeSAMsWithResults no MAI alternative TradeOff Analysis Deploy System 3 5 3 8 E 7 suited alternative exists selected AN model valid E Implement SAM Md A Validate Model by Measurements 3 8 3 7 model revision needed Figure 57 Modelling change scenario workflow copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 76 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 7 3 Tool prerequisites The tool can be used only in projects having Q ImPrESS nature 4 7 4 Tool activation The tool is 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 4 7 5 Usage instructions and expected outputs The tool is used for creating and modifying SAMM models using text editors These
215. pse see Figure 85 Properties Progress 2 ge 7 7 O Launching My Reliability Analysis eee Launching Executing reliability analysis Figure 85 The analysis status view for a reliability prediction run After the analysis has been executed the result is saved into the result archive of the analysed Q ImPrESS project In particular the result is available under the chosen alternative evaluation as shown in Figure 86 The result value represents the predicted global reliability value for the system alternative under the specified usage scenario Ey Project Explorer 3 E 9 amp amp e H Client Server Example gt fe gt Alternatives repository lt gt ee changed database implementation v j RESULTS Result Repository 4 Alternative Evaluation Main Alternative a Reliability Prediction Result 7 Reliability Result Distribution 0 9922374721293388 gt Alternative Evaluation New mass query implementation gt 4 Alternative Evaluation With database cache a ChangedMassQueryImplementation kamp at WithDatabaseCache kamp 4 a Figure 86 The reliability prediction results in the Q ImPrESS project result model Q ImPrESS Consortium Dissemination level public Page 106 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 10 6 Caveats The reliability analysis cannot be performed if the model to analyse is not valid In this case a list of error messages 1s shown in a pop up win
216. r ExampleSvstemJ alternatives cb67eaa0 2415 4460 b75a 9113 0eFe64e E i Examplesystem Ae alternatives n cb678a90 2415 4450 b75a 9311300efe64e File name examplesystem samm _repository Advanced gt gt O Q ImPrESS Consortium Dissemination level public Page 172 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS 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 Staticstructure Model Select a model object to create Model Object ML Encoding LITF 8 anys lt Back Mex Ens Cancel After clicking 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 Win r5 E Dis dg gue projecties E S eV PO led Example5ystem iz gt Alternatives repository lt EE oo Example System Alternative ch z amp aa 7415 O Q ImPrESS Consortium Dissemination level public Page 173 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS If the model is not opened automatically it can be opened from within the Eclipse Package Explorer view currently
217. r Y Q ImPrESS cocome impl S SimuBench Ju Task Context Plug in Test Juj Task Context Test Filter matched 25 of 25 items 2 Figure 64 Reverse Engineering launch configuration SISSy configuration parameters Q ImPrESS Consortium Dissemination level public Page 85 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS In the third tab of the launch configuration the SISSy database settings have to be adapted see Figure 65 SISSy can use a PostgreSQL database or the Java integrated Derby database PostgreSQL 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 Run Configurations S E x Create manage and run configurations Q amp gx ui Name Q ImPrESS cocome impl type Filter text Q ImPrESS Alternative SISSy Database Settings SoMoX Configuration G AST2TBP Settings Common m Acceleo Application ATL Transformation Select Database Driver DERBY E Completions Eclipse Application Database Connection Parameters E Java Applet 3 Java Application We JET Transformation Ju JUnit Ju JUnit Plug in Test Launch SAMMZPCM multiple m Launch SISSy o Y Launch SoMox i MWE Workflow M Derby Specific Parameter Le Operational QVT Interpreter 4 OSGi Framework Derby DB Filesystem Base Pat
218. r reliability prediction O Q ImPrESS Consortium Dissemination level public Page 104 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Select the usage scenario to analyse from the tree menu in the Q ImPrESS Usage Model tab see Figure 83 Run Configurations Create manage and run configurations 3 Ba e gt Name New configuration type filter text QimPrESS Alternative Q ImPrESS Usage Model Q ImPrESS Alternative Evalua Analysis parameters Ww Acceleo Application ATL Transformation ye Completions gt Eclipse Application E Java Applet Number of decimal digit precision 12 3 Java Application Ue JET Transformation Ju JUnit b Jo JUnit Plug in Test C Launch SAMM2PCM multiple ER Launch sissy Y Launch SoMoX P MWE Workflow b Operational QVT Interpreter 4 OSGi Framework Q PCM Solver ll PcM Solver Reliability Q ImPrESS Consistency Checker Da Q ImPrESS Performance Analysis v Rs Q ImPrESS Reliability Analysis R New configuration Y Q ImPrESS Reverse Engineering Filter matched 30 of 30 items FSN D Figure 83 Selecting the Usage Model for reliability prediction Select the alternative evaluation where the analysis result will be stored from the tree menu in the QImPrESS Alternative Result tab see Figure 84 Run Configurations Create manage and run configurations Select a single alternative Name New configuration type fi
219. rESS 4 12 4 Tool prerequisites Results Repository of current working project needs to contain Alternative Evaluations for every Alternative that user wants to include in trade off analysis 4 12 5 Tool activation Access and configuration of the AHP Wizard is provided by another tool in the Q ImPrESS IDE the Result viewer To open the Result viewer simply right click on the Results folder in Project Explorer view of any Q ImPrESS project and select option Open Result Viewer This 1s shown in Figure 116 Properties 2 Problems Z Console RV Result Viewer 3 a Results us us Check all E Original architecture 2EWMODEiEd h di6KVCbhg E Performance HE zi E CPU Resource Utilizations C Usage resource 567987 0 000 0 000 70 000 70 000 Invert Selection EE Response Times C System Call scenarioA 0 000 0 000 10 000 10 000 Run AHP O Reliability 0 000 0 000 0 900 0 000 Alternative ID put in the alternative id here J Maintainability UsageModel Example System C costs 50 000 C Time Effort 10 000 E First change scenario g xu amp FhCEd WJMF24XxwFA E Second change scenario hlxzaFhCEd WJMf24XxwFA zl Figure 116 Result viewer In the Result viewer we can compare results from different architecture alternatives Results are expressed stochastically as random variables The rationale behind this is that many aspects of larger software systems especially in the business informat
220. ral Model 4 10 2 Tool relationship with the Q ImPrESS workflow The reliability prediction participates in the process of predicting the system quality in the Q ImPrESS workflow see Figure 81 After a Service Architectural Model has been created either by reverse engineering or forward modelling the reliability analysis can be performed by the Q ImPrESS platform The analysis results can be inspected in the integrated Q ImPrESS UI or be used as input for the trade off analysis Process Q ImPrESS Overall Process Gather New Requirements 3 1 i Define Change Scenarios 3 2 LIT scenarios lt iterate gt gt l scenario elevantQualityArtributes scenario SAMWithFEesults 1 YHY Ed Model Change Scenario L p Predict System Quality 3 3 T 3 4 X rh sar 1 rh EH u ee altemativeSAMsWithResults aa adsum TradeOff Analysis Deploy System 3 5 3 8 E suited alternative exists selectedSAM model valid i Implement SAM 7 REPRISE Validate Model by Measurements 3 6 3 7 model revision needed Figure 81 Predicting system quality copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 103 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 10 3 Tool prerequisites To run a reliability analysis a model of the system must be first designed In detail the reliability analysis takes as input a specific Q ImPrESS model 4 10 4 Tool activation To
221. random system generator as its input The scripts for visualization of results require the R project to be installed with additional optional R packages detailed in the README file The pydot package for Python can be used to generate human readable graphic representations of the generated application architectures This prerequisite 1s optional The tool provides two different sets of component implementations called modules one for the C and the other for the Java language An application can be generated using modules only from one of the sets not both at the same time The input of the generator tool is given by the means of configuration files as described below 4 15 4 Tool activation Generating an application The RPG tool is a command line utility Started using a shell script it generates and compiles an application according to the configuration options After checking out or downloading and extracting the source directory of the RPG tool the standard make command will compile the random application generator and all the components of which the generated applications will be composed The application generators for C and Java can be invoked from the RPG root directory using the bin generate application cpp java sh scripts Both scripts take one mandatory and one optional argument The first mandatory argument specifies the configuration file called profile to be loaded from the configuration directory For in
222. reads scheduling O Q ImPrESS Consortium Dissemination level public Page 207 207
223. rediction Q ImPrESS Consortium Dissemination level public Page 96 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS On the tab Q ImPrESS Alternative Evaluation select the alternative evaluation in the Result Model in which the analysis results should be stored By clicking on Create Alternative Evaluation you can specify new alternative evaluations in the subdialog see Figure 75 Q ImPrESS Eclipse ES 15 o x File Edit Navigate Search Project Run Window Help Ira F t su sqm rm i3l5 0 Qqm 10o y Fy cS QumPrss amp j Java 21 q2 e a Cs Navigator eS A re ia dl E ES ent sevr angie zi B ig gt Alternatives repository lt C t d fi ti hege main alternative ddea2420 f86d 445 eate manage and run contigurations Q EJ di main alternative Select a single alternative evaluation o Gg examplesystem samm hardware examplesystem samm qosannotation f 0 examplesystem samm_repository f examplesystem samm_repository_diac G examplesystem samm_seff g examplesystem samm_seff bak Z g examplesystem samm servicearchitecl J examplesystem samm servicearchitec Gg examplesystem samm_targetenvironm O examplesystem samm_usagemodel BD Java Applet O massQueryUser BusinessLogic samm 3 Java Application 0 RESULTS JET Transformation E Ju JUnit P Ju Unit Plug in Test aBa Launch SAMMZPCM multiple ER Launch sissy c Y Launch SoMox
224. ricingManager findProductCountryPrice calls PricingDAOService findProductCountryPrice MO Ej Changes be 2147 gt gt Cpu Resource Demand PricingSimulatorWSFacade GetPriceForProductRequest MO i Showcase kamp 2148 gt gt Cpu Resource Demand PricingSimulatorWSFacade GetPriceForProductRequest Marschaling Overhead Ej SingleUser launch 2151 gt gt Cpu Resource Demand PricingSimulatorWSFacade GetListPriceForProductRequest MO gt Cpu Resource Demand PricingSimulatorWSFacade GetListPriceForProductRequest Marschaling Overhead gt 4 Cpu Resource Demand DemoApplicationManager getProductPriceFor Country MO gt 4 Cpu Resource Demand DemoApplicationManager calculateVolumePriceForCustomerCategory MO 4 Cpu Resource Demand DemoApplicationWebFacade queryPrice MO gt 4 Cpu Resource Demand PricingDAOService find CustomerTypeDiscountByType FetchData MO gt 4 Cpu Resource Demand PricingDAOService find CustomerCategoryDiscountByCategory Type FetchData MO gt 4 Cpu Resource Demand PricingDAOService findVolumeDiscountByQuality FetchData MO gt 4 Cpu Resource Demand PricingDAOService findProductCountryPrice FetchData MO gt lj platform resource ShowcaseModels alternatives 5face82a 436f 458c 96e1 049850828d65 showcase samm seff Figure 53 The QoS annotations decorator file In the samm qosannotation file the values for the QoS Annotations can be edited QoS Annotations can be identified by their name To quantify the QoS Annotations ea
225. rom source code the source code has to be available on the machine e g as an eclipse workspace project In the following we describe how to apply the reverse engineering toolchain on a Java project We use the CoCoMe java implementation for this The CoCoMe implementation can be downloaded at http agrausch informatik uni kl de CoCoME The most convenient way to apply reverse engineering is to provide the source code as a workspace project first We switch to the Q ImPrESS perspective import the CoCoMe project into the workspace and create a Q ImPrESS project called Cocome Q ImPrESS in the workspace see Figure 61 Q ImPrE5S Eclipse F Ioj x File Edit Navigate Search Project Run Visualisations Window Help 1 Sy m ea of Ei Td el 33 Fy Qeimpress Java e nencs emu lu m ee2 E Properties E3 SER Problems EJ console Error Log r4 gt cocome impl EN Property Value Resource Info derived False editable true last modified 18 Januar 2011 14 42 28 linked False location CAQIMPrESS workspacelcocome impl name cocome impl path fcocome impl E m cocome impl Figure 61 Importing the Java project into the workspace If the Project Explorer view is not displayed switch to the view Window gt Show View gt Project Explorer Now right click on the imported Java project in the running example the CoCoMe project cocome impl and select Create Q ImPreSS R
226. roperties of a model can be edited via the Property view see Figure 20 Also these changes are automatically saved into the corresponding model file 3 Problems amp Javadoc Declaration E Console Error Log Properties 3 pt H 1 items selected lt Resource Documentation E Id Z nzA4LIFWwEdehzLewzla6IIA Interface Type 3 Interface DataServiceInterface Is Required s amp False Mame 2 ServerComposite Provided DataServiceInterFace Figure 20 Property view for model entity Opening model artefact editors Each model artefact can be opened via a predefined set of editors The possible open actions are shown in the pop up menu of each model entity Annotation properties Annotation properties can be shown for each model element For a selected element the annotation properties view shows a list of associated QoS annotations and the properties of the annotation see Figure 21 It further allows users to re associate existing annotations or create new annotations for a selected element B Properties 23 an Problems Console 0 Error Log EMF property editor Associated annotations aName BlackBoxServiceResponseTime QoS Annotations Resource Annotation info Property Value e Annotation Type Requirement Documentation Z Id l JOtGOPZHEd Ut4EUsvt dQ Operation Service gt Service serviceA Figure 21 QoS annota
227. rt IU MIS TUE DES Ium MIDI DUNG OE TUE 104 4 10 5 Usage instructions and expected outputs sssssssssssssssssseeeeeeeeee eene eene nennen nennen neis 106 4 10 6 Aog 107 4 1 Maintainability Prediction MONUG scssiscstcastacaccrcnaiecadeestaastststedadataderatatindshaseisaaedsaieiataceinteddeaindbachiods 108 4 11 1 Purpose of the tool ssssssssssssssssssssseeeeeee eene e nennen ene neeeeees esses sese senes ese ees esses seen EEE EH 108 4 11 2 Tool relationship with the Q ImPrESS workflow eese 108 4 11 3 FRI I 109 Create new KAMP model file ee ceceesssssssssssssssssececeececeeeeceeeeeeaeeeeeeeeeeeeeeeceeeeeeeaeeeeeaeceeeeeeeeeeeees 109 Navigation bat s 111 Specify architecture alierBdllVeS eec iir Rut t Us DRAN Ni SER RU TM RUPEM ute Pda Use etek GR C Env Re dUE 112 SPec Uy chante DEENA S emo iom Sor de um NUR RERUM ERNEUT RUN ENIM SU eee 112 Analys EOV VIEW oeste ou cats ca sae fesse tans INNEN se oa 114 Workplan derivation by wizard dialog eese nennen nnns 116 BTS CN S E E E E cU EUN IPIS EUREN E UM URDU E 126 IS iS 6 6 a MC CTS 127 4 12 Trade off analysis and results viewer AHP sss enne ener nnne sss n nnne nns 129 4 12 1 Tool Description eeseesssessssssesseeeeeeeeeeneneennennnnn nennen rennen nennen nennen e
228. ruhe 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 is support for a guided estimation of change efforts In order to predict maintainability the approach determines efforts estimates for implementing evolution scenarios 4 11 2 Tool relationship with the Q ImPrESS workflow The maintainability prediction participates in the process of predicting the system quality in the Q ImPrESS workflow see Figure 88 As inputs it uses the architecture alternatives that are located in Q ImPrESS projects within the workspace of the Q ImPrESS IDE More exactly it semi automatically derives maintenance activities based on a created Service Architecture Model As output it delivers a description of change in shape of a workplan and related effort estimates Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios scenarios lt lt iterate gt gt scenario elevantQualityAttributes scenario 1 Yr Model Change Scenario Predict System Quality 3 3 71 3 4 altemativeSAMsWithResults altemativeSAMsWithResults an I a a no viable alternative TradeOff Analysis Deploy System O 3 5 3 8 suited alternative exists selectedSAM model valid E Implement SAM NEEURUURITAIEN Validate Model by Measurements 3 6 3 7 model revi
229. run the reliability analysis for a model alternative the following steps have to be performed First open the run configuration window of eclipse From the menu select Run gt Run Configurations Create a new Q ImPrESS Reliability Analysis launch configuration In the launch configuration select the alternative to analyse from the tree menu in the OImPrESS Alternative tab see Figure 82 Run Configurations Create manage and run configurations Usage model has to be selected i E r X a Name New configuration type filter text QlmPrESS Alternative Q ImPrESS Usage Model E Q ImPrESS Alternative Analysis parameters Acceleo Application ATL Transformation Completions b Eclipse Application 5 Java Applet Select usage model v D amp Client Server Example amp main alternative 4 Usage Model UsageModel Main Alternative O Java Application JET Transformation Ju JUnit Ju JUnit Plug in Test C Launch SAMM2PCM multiple ER Launch sissy Y Launch SoMox D MWE Workflow Le Operational QVT Interpreter 4 OSGi Framework Q PCM Solver ll PcM Solver Reliability Q ImPrESS Consistency Checker E Q ImPrESS Performance Analysis Show all v R Q ImPrESS Reliability Analysis i Selected usage model lt none gt R New_configuration Y Q ImPrESS Reverse Engineering Filter matched 30 of 30 items Figure 82 Selecting a Q ImPrESS alternative fo
230. 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 PCM Results Eclipse i 0 x File Edit Navigate Search Project Run Visualisations Window Help wo sy amp kk EH s 59 hga O Q Ieg FY S PCM Results 2 Q ImPrESS amp Java S Experiments View Rm T E JFreeChart Histogram Viewer 5 g3X v ommu Sampling Rate 2 0 E 3 Memory Datasource 0 B MyRun Histogram Experiment Runs 1 j f f El Q Run Thu Nov 11 11 47 34 CET 2010 ID 0 Demanded time at serverContainer CPU lt Demanded time at serverContainer HDD Overall Utilisation of serverContainer CPU F Overall Utilisation of serverContainer HDD r Response Time of Call whoisOperation Gui Response Time of Call BusinessLogicInterfa I Response Time of Call DatabaseInterface c amp b Response Time of Call DatabaseInterface c Response Time of Call DatabaseInterface c Response Time of Call DatabaseInterface c Response Time of Call DatabaseInterface c i Response Time of Call DataRetrieverInterfe 88 Response Time of MainAlternative ID 11 g Sensors 40 50 60 70 80 30 100 110 120 130 Values 8 Response Time of MainAlternative SSS i Sensors Filters Figure 79 Detailed performance prediction results in the PCM results visualisation For a response time dif
231. ry o examplesystem samm hardware Fy examplesystem samm_targetenvironment xD ELI E gt ExampleSystem 0 Resource Set El alternatives G E cb67ea90 2415 4460 b75a 911300efe64e 2 examplesystem samm hardware examplesystem samm repository examplesystem samm_targetenvironment E IN platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 911300efe64e examplesystem samm targekenvironment Ele Target Environment gt Node ExampleSystemServer Container ExampleSystemContainer i 4 Processor ServerProcessor lo platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a 91 1300efe64e examplesystem samm_hardware T Selection Parent List Tree Table Tree with Columns fan fo c2 vi t SS vo B Outline 23 q5 Task List v 1 4j Tasks x Slt ge E o E y platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a F E A platform resource ExampleSystem alternatives cb67ea90 2415 4460 b75a Clock Frequency Descriptor Documentation Id Name 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 1s done by the fraction attribute of
232. s sssssssssssssseseeeeeee eene 137 4 13 6 So 142 4 14 Java Performance Measurement Framework Manual sees eene nnne nnne 145 4 14 1 Parpose OE the TOOL o nerit dii wed tmi E 143 4 14 2 Tool relationship with the Q ImPrESS workflow eeeeeeeeeeeeeeeeseeeeeenns 143 O Q ImPrESS Consortium Dissemination level public Page 5 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 14 3 hes dvesitl C M 143 Pororo nca B Vea enu miu EM USE EMEN Nei Sue Ep dE CR ASI REe ES e rap bU SUE re CREDE 143 Ey ne O Ch ch PN RR NE nee 144 Event DH5BOlS ncn Ee E A nT en en ee 145 4 14 4 e Fe E hl BL hc 2 ose nm NE E A EE EN ar nee ee 145 4 14 5 Instrumentation using event triggers cc ceeeeeceessessssseesseeeeseeeeeeeeeeeeeseeeeeeeeeeeeeeeeesseeeeeeagas 146 Instrumentation using event sources siesssssssssssssseeeeeeee eene eene een nnne enn n rre n nennen nennen eene enn 148 4 14 6 Tool pre Fs IAG e NT Em 150 4 14 7 GOUACHE Val IO RR T E E E E RN 150 4 14 8 Usage instructions and expected outputs eene 150 Automatic load time instrumentation ccccceceeeeseeeeeseeseeeeeeeeeeeeeeeeeeeeeseeseeeeeeeeeeeeeeeeeeeeeeeeeeeetsaaas 151 Con a O ea eE E E E E E E AA ee ee eer eee 151 Simple diranai SIS Loesccet tonat sanna a E EEE EE E EE EEE E Re adu EA EENES 152 4 14 9 o m
233. s Problems Console X Error Log Ej rj H No consoles to display at this time ve Writable Insert 26 72 Figure 122 Opening the Run Configurations dialog Create manage and run configurations Configure launch settings from this dialog type filter text Press the New button to create a configuration of the selected type ES Java Applet Press the Duplicate button to copy the selected configuration 3 Java Application Ww JET Transformation XX Press the Delete button to remove the selected configuration Ju JUnit 2 J JUnit Plug in Test b Da Launch SAMM2PCM multiple Edit or view an existing configuration by selecting it Sy Launch SISSy y Launch SoMox Configure launch perspective settings from the Perspectives preference page P MWE Workflow Operational QVT Interpreter 4 OSGi Framework PCM Solver gt K gt Q ImPrESS Consistency Checker 4 xs Q ImPrESS Performance Analysis ia New configuration 2 Fi Q ImPrESS Reliability Analysis Press the Filter button to configure filtering options 4 Y Q ImPrESS Reverse Engineering Y Client Server Application Y PricingManager 5 SimuBench J Task Context Plug in Test Ju Task Context Test Filter matched 29 of 29 items Figure 123 Selecting the Q ImPrESS Consistency Checker run configuration O Q ImPrESS Consortium Dissemination level public Page 138 207 D6 1
234. sQueryImplementation kamp Lg wihpstabassCache kamp C Properties 2 Problems E Console liv Result Viewer 2 N LI Results Result 1095 Q 9095 Q Mean Median Check All L Main Alternative hFaa YLwPEd NbbwUljDKgQ Performance Check None J CPU Resource Utilizations Usage resource 567987 8 634 8 634 8 634 8 634 Invert Selection zi E Response Times C System Call Mainalternative 3 700 41 000 21 461 22 100 SUITES amp E HDD Ltilizations Alternative ID r 1 Storage Resource hardDriveResource 21 412 21 412 21 412 21 412 ddea2420 F86d 4455 940c 807ec4d616dc Throughputs UsageModel UsageModel Main Alternative C System Call Mainalternative 0 014 0 014 0 014 0 014 oO Reliability 0 992237 0 992237 0 992237 0 992237 zi D with database cache _k2td8LwQEd NbbWUIiDKgQ J Maintainability O costs 3000 000 C Time Effort 3 000 H O Performance oO Reliability 0 974688 0 974688 0 974688 0 974688 E O New mass query implementation J dMoLwREd Nbbwt ci E Maintainability O costs 6000 000 C Time Effort 6 000 H E Performance oO Reliability 0 998800 0 998800 0 998800 0 998800 gi m J 1 items selected Figure 142 The Q ImPrESS results repository and result viewer By looking at the results we can for example see that alternative 3 changed database implementation provides the best reliability results However it also incurs the highest change efforts All
235. save Gbr 5 pen Propert Save terl S Care perty SAWE crl 5 Documentation WikiTexE 3 Appearance Id Is Delegation Show Properties View Properties Figure 40 Deletion of connectors The delete operation deletes the connector together with its associated endpoints Other elements are deleted the same way if necessary Adding elements Now we can add a new connector to show the special feature of the editor Adding elements is generally possible using the tool palette shown to the right of the editor window see Figure 34 We need to click on one of the elements shown to select it The selected element will be shown highlighted After that we can move the mouse cursor to the editor pane and it will change its shape indicating that a new element will be inserted We need to click in the location where we want to insert the element and the editor creates a new instance according to the tool we selected from the palette For our example we select the Connector tool and click in the editor somewhere between the businessLogicInstance component and the databaseInstance component A new Connector 1s being created We now need to specify its endpoints Endpoints are used to connect the Connector elements with component ports or provided ports of a Service Architecture Model We select the SubcomponentEndPoint tool from the palette and move the mouse into the editor pane The cursor shape changes to indicate that we are about to create an endpoi
236. seInstance ial 4 Figure 42 A delegation connector in the Service Architecture Model Adding Subcomponent Instances The editor allows the user to add new subcomponent instances First the tool must be selected in the tool palette and the mouse must be clicked in the desired location where the new subcomponent instance shall be located The editor so far only knows that a new instance shall be created but has no information as to from what component the instance shall be derived So the user has to choose this component from the available repositories A selection dialog opens and displays the components available in the currently used repositories see Figure 43 In case the component to be instantiated should not be contained in the list shown the user can load additional repositories that may contain the required component After a selection is made the appropriate element is created in the editor Q ImPrESS Consortium Dissemination level public Page 62 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Select Object inl x Select ComponentType pcc Selected object Primikive Component Database Load Repository TV 3 eve LC _ Figure 43 Selection of components to be instantiated 4 4 5 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 m
237. sion needed Figure 88 Predicting system quality copied from D6 1 Q ImPrESS Consortium Dissemination level public Page 108 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 11 3 Tool usage In the following we use the Client Server example project to illustrate how to use the KAMP tool for maintainability prediction Create new KAMP model file In the beginning one needs to create a KAMP analysis model file by using a new file wizard Select New gt Other in the context menu of a Q ImPrESS project see Figure 89 m Cow WM nt UM RR c r cem RU Client ServerExamole eii M 4 Te Alternatives New K F Project 4 G5 main alter Go Into sss eo chang iB OQ withd G Copy Ctrl C Ecore Diagram OO Py q Geo changed data Paste Ctrl V gi Ecore Tools Project B RESULTS 5x Delete Delete File a basicexample un E Fold m Move Folder Lg COCOME C1 CRM Simulator E Rename F2 X XML La CRM Simulator F a areata is XML Schema LJ Demo Applicatio um iude m LE Demo Applicatio Li Export eae Eoad id Embedded Serve Befresh F5 ex C Project Ej Embedded Serve Close Bioiect r4 Convert to a C C Project gt Ls ENTDemonstratol Jec E ENTDemonstrato Close Unrelated Projects r1 Example WE EMTDemonetrato E F5 Other Ctrl N Ta Enwickluna2000 Figure 89 Creating a new KAMP model file Open New dialog Select the category KAMP Models an
238. stance configuration files defining the reliable multi threaded profile for C and Java modules can be found in the bin conf java cpp reliable multi threaded conf configuration files Both the path and the conf suffix are automatically added to the command line argument The second optional argument specifies the target directory where the new random application will reside This directory will be created and must not exist beforehand If not given a random name starting with rpg is being generated The following command invoked in the RPG root directory will create a random Java application in the rpg directory using the reliable multi threaded configuration profile bin generate architecture java sh reliable multi threaded rpg O Q ImPrESS Consortium Dissemination level public Page 155 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Measuring a generated application The generated applications are invoked from command line as well which produces measurements using a built in benchmarking harness The random application can be executed using the main binary for C application or run sh script for Java applications This executes the built in benchmarking harness which first measures the individual modules in isolation and then the whole application using a simulated client load Measurement results will be written to standard output so it is recommended to redirect them to a file for later processing
239. stone of the change see Figure 100 For small changes 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 m EJ Please describe why you 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 Figure 100 Specifying activities Q ImPrESS Consortium Dissemination level public Page 117 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS 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 see Figure 101 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 Definition if you know the directly affected data types Select Work Activities Choose the way you want to go through the derivation process Select Components Select Interfaces Change Datatype Definition Cance
240. t ResourceDemandingSEFF in the way that nested actions can be specified that form the nested behaviour A ForkAction allows for specifying several nested behaviours which are executed concurrently in the control flow For every concurrent nested behaviour a Forked Behaviour 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 behaviour 6 12 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 eSEFF Loop Action number of iterations eSEFF Branch Action branch probability eSEFF 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 6 9 Besides specified resource demands need to reference a resource from a SAM target environment e g the examplesystem samm targetenvironment file Add O Q ImPrESS Consortium Dissemination level public Page 187 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS the file as resource to the QoS annotations file as described in Section 6 9 To add a QoS annotation for specifying the number
241. t 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 actual behaviour To add a SEFF behaviour stub to a component right click on the component and select New O Q ImPrESS Consortium Dissemination level public Page 177 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Child and Seff Behaviour Stub Set the operation in the property view for the stub This is the operation for which the behaviour 1s to be specified 1 e whoisOperation 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 6 6 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 then Composite Component The composite component element is being cr
242. t Explorer el Jr d El les demo E lt gt Alternatives repository lt A Ga scenario 242aa60F 42b8 4384 9912 185fb63d71IF Aem om Flee scenar cx New alternative sai 34 Delete alternative E i Completly delete alternative Fa B Pelete Mode H sa Remove from Context Cerl Alt Shift Dowrn sal B D sa pag Import ra e LA Export H E JRE 5y el Refresh F5 El testum Validate Team Compare With Restore From Local History oo Make alternative default Alt Enter Properties Figure 14 Make alternative default action O Q ImPrESS Consortium Dissemination level public Page 35 207 D6 1 Annex Guidelines and Tool Manuals 7 ImPrESS Adding a new model into an alternative To add a new model into an alternative the user has to select the default alternative and to choose the action New gt Other in the pop up menu see Figure 15 Hi Package Explorer te Hierarchy L4 Project Explorer EH El leh demo B fe gt Alternatives repository lt iv e scenario 942aa60f 42b8 4384 3912 85fbe3d71ff Sere at scenario B ce amp Gccdaa da39 41e0 871F 587bbcbi974d s scenario B1 c2 aadf0 9062 4d09 bez6 14f21b957e29 E o Du a mm m m Jo H pis urs ur 4772 49077780 n T C4 Project oe New alternative B5 o oe Delete alternative 1 Ecore Diagram completis delete alternative Lisi Ecore Tools Project Delet
243. tPort E Properties Z3 hon Problems E console PrimitiveComponent L amp Database OneratioanBehavinurLisk E SeffBehaviourStub f Add Mote Navigate File k Edit gt Delete From Diagram a Delete From Model Format k Filters k Save Gtrl 5 Save ars Show Properties View es l Property Valu Properties Core Documentation t 0D Appearance Id E Remove from Context Ctr Alte Shift Erown Name Database Figure 30 Deletion of elements WikiText mt Compositelompanent Prinitive Component gt Inner Elements lal Operation Q3 Parameter Jf OperationBehavior 3 ComponentTypeBeha 3 i SubcomponentInstance The delete operation deletes the selected element It may also delete some of the elements associated to the element to be deleted in case those elements cannot exist apart from the element to delete Q ImPrESS Consortium Dissemination level public Page 50 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Moving elements Elements in the editor can be moved as expected Simply select them and move them using the mouse cursor 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 t
244. tained 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 O Q ImPrESS Consortium Dissemination level public Page 136 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS package de itemis qimpress showcase crm simulator public class TestCRM Manager extends org ow2 dsrg fm tbpjava envgen Env ValueSets public TestCRMManager t 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 service 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 121 Specification of method parameter values in a Java class 4 13 5 Usage instructions and expected outputs The Consistency checker 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 122 2 The Q ImPrESS Consistency Chec
245. td ea et eMe UI EIE 24 4 2 3 Tool relationship with the Q ImPrESS workflow cc cccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 24 Ma TOONE OE E eee Creer 25 42 5 XOODDECLOQqUiIS ES oeeiiterckomimtantibestenesenertiostent div puta EEREN E ENA EAEEREN ATEEN EEEREN AKENE 25 2A CRM FO ESCLUSO ins eae E REEERE ENEE EENAA EERE ERER RE 25 Q ImPrESS perspective activation nonononnnoonnnosenssssenssesssssesssesnsnssosssssssrrsrrrrrrrrrrrrrrrrrrrrrrrrerrrrrreeeeeeeeent 25 Q ImPrESS project activation ccccceeesessssssesssssssseseeeseeseasassssasassaaesasseasasaaaaasaaasasasasaaaeaaaaaaaaaaaaaaaaaas 26 Create new Q ImPrESS project ssccssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssessssssssssssssssssssssees 241 Associating the Q ImPrESS nature with an existing project sse eene eene 28 Q ImPrESS project content acttvallOfi ere eee etre aae Uo rex eie ra ear ERE cE eU PE TX Pe IV PU ders OFO M DUI PeUSET KT GU es 29 OsImPrES5 project Alters activation sse aes ees otn EeExEEoSo osos er aet saeebnesoser tin seres sop Rit tiemoab v qan n UEM DUREE SES sse 30 Q ImPrESS annotation properties activation cc cceeeeeeesseesssseessssssssssssseceeeeeeeeeaeeeeeeeeeeeeeeeeeeeeeeeeeeaeaeas 30 Q ImPrESS annotation wizard activation essssssseeeeessseseeeeen nennen nnne nennen nnne essen nennen en 30 4 2 7 Usage instructions and expected OUtputs
246. tended to be part of the standard Q ImPrESS workflow It has been used for validation of performance prediction of Q ImPrESS models by comparing the measured and predicted performance of a large number of generated software systems in the Deliverable 4 2 This approach and the tool can however be useful to validate any future changes to the Q ImPrESS implementation or to validate virtually any other performance prediction methodologies and tools provided that a transformation to such tool s input is implemented 4 15 3 Tool prerequisites The random system generator tool can be built on a recent Linux system kernel 2 6 with standard build tools including GCC make and binutils and Java 1 6 The tool has been tested on x86 x86 64 and sparc architectures The implementation of the fft primitive component requires the FFTW library 3 0 or higher to be installed The same prerequisites apply for executing the generated systems in order to obtain their measurements The models of the generated systems can be imported to the Q ImPrESS IDE by a plugin which is a part of the standard Q ImPrESS IDE installation and uses the files produced by the random system generator as its input O Q ImPrESS Consortium Dissemination level public Page 154 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS The tool for transforming the models of the generated system to SimQPN models requires Java 1 6 and uses the files generated by the RPG tool
247. ternatives repository lt i 3 do main alternative i Debug As gt O _PC_No_6_ProductPricel g M No 4 PricingManagerImpl 0 gastmodel gast Debug Configurations CCCCCCCO de itemis qimpress showcase pricing simulator be service PricingManager g internal architecture mod 0 internal architecture mod a Boere i de itemis qimpress showcase pricing simulator be service PricingManager deleteV O internal architecture model samm repository g internal architecture model samm seff de itemis gimpress showcase pricing simulator be service PricingManager findPrc g internal architecture model samm servicearchitecturemodel O internal architecture model sourcecodedecorator de itemis qimpress showcase pricing simulator be service PricingManager saveVol Bj RESULTS gg src de itemis qimpress showcase pricing simulator be service PricingManager priceOr G src gen BA JRE System Library JavaSE 1 6 de itemis qimpress showcase pricing simulator be service PricingManager getAllC amp alternatives id amp SISSy de itemis qimpress showcase pricing simulator be service PricingManager calcule E ReverseEngineeringDemo or 5S test2 de itemis qimpress showcase pricing simulator be service PricingManager getAllY D lj testDemo de itemis qimpress showcase pricing simulator be service PricingManager findVol de itemis qimpress showcase pricing simulator be service PricingManager getAllC 4 E E D E Propertie
248. th The imported models are immediately usable for prediction 4 15 5 Tool configuration Both the application generator and the module instances in a generated random application use the same mechanism to access their configuration data This data 1s loaded from human readable text files The configuration files for the random generator tool are placed in the bin conf cpp or bin conf java directory depending on which type of components is to be used in the generated application Options that are shared by both variants are defined in the bin conf shared conf file In each language specific directory the configuration 1s again divided into shared part cpp shared conf or java shared conf defining available modules global and default options and specific configuration which include and override the shared defaults Each configuration file represents a set of parameters in the form of name value pairs Parameter names are divided in two parts separated by The first part can be either a name of a module defining a module specific parameter a special name default defining a fallback parameter for modules where a module specific one is not given or a special name core defining global parameters that control behaviour of either the generator or the generated applications Parameter values can specify either a constant string integer float or lists of these or define O Q ImPrESS Consortium Dissemination level public
249. that location Working with Inner Elements The second section in the palette contains tools for the creation of inner elements Such elements can only be created within other elements already placed on the editor canvas The use of these tools 1s 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 in 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 is 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 GuiInterface 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 O Q ImPrESS Consortium Dissemination level public Page 49 207 D6 1 Annex Guidelines and Tool Manuals The same behaviour 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 ImPrESS Working with O
250. the Eclipse platform and are responsible for handling new project types perspectives and other Eclipse elements From the user perspective the aim of the Backbone tools is to support the user in the usage of the platform and the management of SAM models Section 4 1 IDE basics 4 3 the Repository Editor 4 4 the Composite Editor 4 5 the SEFF Editor 4 6 the QoS Editor 4 7 the Text Editors describe the Backbone tools in detail Reverse Engineering This process phase is covered by section 4 8 Quality Prediction Analysis The usage of each analysis tool is provided in section 4 9 Performance prediction 4 10 Reliability prediction 4 11 Maintainability prediction Trade Off Analysis Practical details on how to perform a trade off analysis based on the prediction results are given in section 4 12 Alternative implementation check Although the implementation phase of the chosen alternative model is not covered by the Q ImPrESS platform a tool to check the adherence of the Java implementation with the selected alternative behavioural model is provided in section 4 13 Off line tools External tools are not included in the Q ImPrESS IDE but have proved to be useful during the development of the platform are described in sections 4 14 and 4 15 O Q ImPrESS Consortium Dissemination level public Page 21 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 1 Q ImPrESS IDE installation The Q ImPrESS IDE can be i
251. 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 6 10 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 behaviour is specified by a ResourceDemandingSEFF element This element has a reference to a SEFF behaviour stub that has been specified in the repository file O Q ImPrESS Consortium Dissemination level public Page 185 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS Create a ResourceDemandingS EFF 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 1n the examplesystem samm repository file the file has to be loaded as a resource as described in Section 6 9 Once the file has been loaded a stub can be selected in the property tab Choose a stub for which a behaviour should be specified for example t
252. the option Show properties view in the entity pop up menu Q ImPrESS annotation wizard activation The Backbone provides an implementation of an advanced annotation wizard which allows for associating QoS annotations with selected model entities The wizard can be activated via the Eclipse File menu File gt New gt Annotation Wizard see Figure 10 or by selecting File gt New gt Other and choosing the item Q ImPrESS Annotation Wizard in a list of wizards O Q ImPrESS Consortium Dissemination level public Page 30 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Q ImPrESS Eclipse File Edit Navigate Search Project Run Window Help Sd lt Q ImPrESS Project Open File 5 Project Close Er H c New alternative Glose All Gtrl Shift 0y Qari mae Annotation Wizard Save Ghn 5 r3 Example Save 4s Save All ctrl shift s Tj Other CuHN Revert Move tDesc Rename F2 esc Refresh F5 Convert Line Delimiters To gt e Print Gtrl P ce Switch Workspace id Restart ag Import ey Impor a itectureMod e Export Properties Alt Enter 1 ProcessorDescriptor intelCPU test ovided Guil 2 UsageRepository aName test project 3 TargetEnvironment exampleTargetEnviro 4 HardwareDescriptorRepository exampleH F tance Exit a Subcomponent Instance serverCompositeInstance Figure 10
253. tion files are available in the Client Server example project WithDatabaseCache kamp ChangedMassQueryImplementation kamp ImPrESS KAMP supports the user by estimating implementation effort for change scenarios In our example a database cache should be added to the basic client server example Time efforts for this change should be estimated using KAMP The KAMP file is opened in an editor that has a navigation bar on the left side that provides buttons for selecting preparation and analysis steps In the first preparation page Specify Architecture Alternatives the architecture alternative that should be estimated has to be specified This is done automatically On the second preparation page the change scenario has to be specified We add a change scenario specification with name Add Cache We also select automatic derivation Next we go to the analysis overview which is shown in Figure 140 Each line in the table represents a pair of architecture alternative and change scenario We add a new line by pressing the button A new line appears in the overview table We derive the workplan by pressing the button with the cogwheel symbol It opens the workplan editor shown in Figure 141 where activities in the workplan can be derived from differences between models KAMP Analysis Overview Analysis Instance LES r Architecture Alternative Change Request Workplan Effort Estimation Result Summary Client ServerExample w
254. tion properties O Q ImPrESS Consortium Dissemination level public Page 41 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Annotation wizard The annotation wizard can be used to annotate repository elements with various kinds of annotations The wizard can be activated via menu File gt New Annotation Wizard see Figure 22 File Edit Navigate Search Project Run Window Help SAL Q ImPrESS Project Open File 3 Project Close Core S New alternative Clase Al Chr Shift Annotation Wizard Giris 5j Example Save S ave All Ctrleshift s Other CtritN Revert Move tDesc Rename F2 esc Refresh F5 Convert Line Delimiters To d e Print Gtrl P ce Switch Workspace gt Restart 9 Import ey impor E itectureMod eg Export Properties Alt Enter 1 ProcessorDescriptor intelCPU test ovided Guill 2 UsageRepository aMame test project 3 TargetEnvironment exampleTargetEnviro 4 HardwareDescriptorRepository exampleH F tance Exit aj Subcomponent Instance serverCompositeInstance Figure 22 Annotation wizard activation When activated the wizard displays a dialog with a list of projects User then selects the desired subset of projects where the elements will be annotated see Figure 23 e BEE Annotation Wizard Select project where annotatios should be changed Select Project Finish Cancel
255. to the Q ImPrESS platform for performance predictions on Q ImPrESS 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 platform provides an automated workflow for this 4 9 2 Tool relationship with the Q ImPrESS workflow The performance prediction participates in the process of predicting the system quality in the Q ImPrESS workflow see Figure 72 After a Q InPrESS SAM model has been created either by reverse engineering or forward modelling different QoS attributes can be analysed by the Q ImPrESS platform For performance analysis the SAM model has to be transformed into a PCM instance Then the performance analysis results can be inspected in the Result Viewer and used as input for the trade off analysis Detailed PCM performance analysis results are available in the integrated PCM Results view in the Q ImPrESS UI O Q ImPrESS Consortium Dissemination level public Page 93 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Process Q ImPrESS Overall Process Gather New Requirements 3 1 Define Change Scenarios 3 2 ann scenarios lt iterate gt gt l scenario HevantQualtyAttributes scenario SAMWithFEesults AY Ed Y Model Change Scenario L m Predict System Quality 3 3 T i 3 4 tU Y LET ae E 8 E 88 E a G E alternativeSAMsWsthResults 1 altematveSAMsWithResults na sed
256. two use cases are described in the next two sections The last section gives instructions how to edit particular SAMM model elements 4 7 6 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 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 4 7 7 Modifying existing SAMM models In the package explorer right click the SAMM model you want to modify and select the Open with gt xtext editor item The eclipse opens a text editor containing definitions of SAMM model elements of the selected SAMM model The following two figures show the use case Figure 58 shows the Project Explorer containing the list of models Figure 59 shows the editor containing definitions of SAMM model elements O Q ImPrESS Consortium Dissemination level public Page 77 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Java test meeting generated clientComposite 284576 he Eile Edit Navigate Search Project Run s iy E O Q S 6 9 5 HF E Package Explorer t Hierarchy Project Explorer Wo uL E 1 wv T ie test je test meeting v fe gt Alternatives repository lt ge Main scenario 65821f03 b3a6 4720 9ea5 lab3fa828d7a v a
257. um Dissemination level public Page 114 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS In order to add an analysis instance press the add button in order to open the dialog shown in Figure 98 z Choose Analysis Instance Architecture Alternative target model Client ServerExample with database cache v Change Request AddCache manual Source model main alternative um om rm Figure 98 Adding an analysis instance to the analysis overview In the first combo box the target architecture model for which the changes are described has to be selected In the second combo box the change request that should be applied has to be selected In case of automatic derivation from sub alternatives KAMP calculates differences between source model and target model In this case in the third combo box the parent alternatives can be selected as source alternative Differences are calculated between source and target In the Client Server example visible in Figure 99 two analysis instances have been added Both instances use the system with database cache as target alternative The instance in the first line uses the manual change scenario whereas the instance in the second line uses the automatic change scenario O Q ImPrESS Consortium Dissemination level public Page 115 207 D6 1 Annex Guidelines and Tool Manuals KAMP Analysis Overview ImPrESS Analysis Instance l Arc
258. umented application entity During automatic instrumentation the instrumentation tool will typically create a single EventSource instance for each instrumented application entity such as interface implementation and register it with the JPMF library runtime The JPMF runtime will then query the event source implementation for the supported performance events and their types and configure the event source to emit performance events specified by the user in an external configuration file This method of performance event registration is mainly intended for automatic instrumentation tools because the cost of creating a custom EventSource implementation will be amortised by repeated use of the instrumentation tool O Q ImPrESS Consortium Dissemination level public Page 144 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS Event Triggers To simplify usage in situations where manual instrumentation is needed the JPMF library provides an alternative method to register performance events Instead of having to implement the EventSource interface a user can instead request the library to implement the interface internally and provide the user with a simple trigger interface that can be used to send performance event notifications to the JPMF library Unlike event source an event trigger only represents a single performance event and its interface depends on the represented event type When requesting an event trigger from the JPMF li
259. up INFO Workflow engine completed task fa Figure 71 Reverse Engineering output model files 4 8 6 Caveats Please note that SoMoX is only applicable to software systems which are component based or at least constructed with components in mind It will not be able to reverse engineer non component based software systems Furthermore the software architecture has to be somehow encoded into the software artifacts SoMoX is highly sensitive to merge and compose weights thresholds These values almost always influence the minimal and maximal abstraction level the number of reverse engineered components and the number of reverse engineered abstraction levels Stepwise refine these weights for merge and compose until the abstraction level meets your expectations SoMoX cannot guess the desired abstraction level In rare cases the TBP models might not be created for some components This is due to patterns that cannot be processed this includes most notably the recursion since it cannot be captured in the language of TBP Q ImPrESS Consortium Dissemination level public Page 92 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 9 Performance Prediction Manual 4 9 1 Purpose of the tool The Palladio Component Model PCM is a domain specific language that allows for modelling the design of component based software This design model can be transformed into a performance analysis model The PCM can be included in
260. ur InternalAction Denotes some internal work during an operation for which the control flow is not specified in more detail However different quality annotations can be attached to an internal action such as resource demands for performance analyses or failure probability for reliability analyses For more details refer to the guide for QoS Annotations ExternalCallAction Denotes a call to a required interface port of the component which results in a call to a control flow outside of the component When creating an external call action element a dialog appears that allows selecting the required interface port of the component If the dialog does not display any ports select Load Resource and then Browse Workspace In the following dialog browse to the SAM repository file in which the component is located and select it After closing the dialog all required ports should appear If still no ports appear the component of the operation s behaviour does not contain any required ports and a port has to be added in the component repository file This can for example be done with the textual Repository Editor or the graphical Repository Editor LoopAction Contains a nested behaviour that 1s repeated several times in a loop To specify the nested O Q ImPrESS Consortium Dissemination level public Page 68 207 D6 1 Annex Guidelines and Tool Manuals behaviour after creating a loop action element select ResourceDemandin
261. usi i amp Interface Port BusinessLogic_Provided_Datat Name BusinessLogic K Interface Port BusinessLogic_Required_Datat ef Seff Behaviour Stub massQueryUser_Busine Primitive Component Database EJ Primitive Component DataRetriever EJ Primitive Component GuiComponent Primitive Data Type userData Primitive Data Type userID g examplesystem samm repository diagram 4 8 examplesystem samm seff b B EH Ds amp 1 items selected Figure 136 Contents of a repository model For some model elements textual and or graphical editors are available These editors can be opened by right clicking on the model element in the project explorer and selecting Open in textual editor or Open in graphical editor For example a graphical model editor is available for component repositories composite component and service architecture models as well as for SEFF behaviours Textual editors are available for most model elements see Text Editors Manual Graphical models can also be saved in a separate diagram file For example for a composite repository a graphical model file can be created by right clicking on the samm repository file and selecting Initialize graphical model file For the example system a diagram file is available for the component repository the service architecture file as well as some SEFF behaviours Figure
262. values that enables the user to apply normalization to the final results of the trade off analysis The normalization will adjust all of the values so that sum of all qualities for all alternative evaluations is 1 O Q ImPrESS Consortium Dissemination level public Page 132 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS The user can choose an HTML file to export all of the settings that led to these results and results The export 1s executed upon pressing Finish button Besides a HTML file a PNG file with the same filename is going to be created that contains the graphical representation of the AHP analysis results E ri xj Interpet results AHP Analysis Results values r2 to RE Un ud Reliability First change scenario 2 351 L Original architecture First change scenaria Second change scenario Alternative Evaluations E Utilization amp Cost Reliability Response Time Alternative Utilization 1 38 Original architecture 3 1185 1 2865 5672 D 7617 D 5031 First change scenario 5 9055 2 0753 0 5672 2 238914 3106 Second change scenario 2 9761 73 39 S672 1 3578 2572 Export results as C test html Browse Fey kms Q Bk wet gt En cm Figure 119 Results interpretation stage Caveats The tool does currently not provide option to not use some of the qualities To leave out a quality from the AHP analysis simply leave the setting of this quality in t
263. ve new requirements Each assembly change scenario has to be modelled prediction analysis is performed for each model and results are then confronted pair wise unless a suitable scenario 1s elected as the best solution O Q ImPrESS Consortium Dissemination level public Page 13 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS The following sections contain a short description of each method phase starting from phase 3 3 Model a change scenario 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 as follows 2 2 1 Components selection Depending on the change scenario only some components of the system are affected Moreover the level of model details abstraction level can differ for different components The components involved in 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 modelled At a high abstraction level a system is described by few composite components or sub systems As an example if the system under analysis 1s a plant PCS Process Control System the legacy ERP system at level 3 could be modelled as a single component providing daily production schedules maybe updated several times a day a
264. ver Example E Tg Alternatives repository lt Lr n alternative ddea2420 Fa86d 4455 340c 807 amp c4d616dc pi c changed database implementation 3ad4d1 amp 6 Oc5a 4e75 8Fb5 d34 c with database cache B85bd7c4 743a 4859 hd65 a7 7bae amp 97Fzd ge main alternative H fj examplesysbtem samm hardware m tg examplesvsbem samm qasannatatian H fj examplesysbtem samm repository 2 ee examplesystem samm repository diagram m tg examplesvsbem samrm sett 2 irs mum Arched Model E EA ney p examplesvsbem sarmm _targetenvironment Open 0 examplesystem samm _usagemodel p mass QuervUser_BusinessLogic samm_seff _diag Im Delete Model i RESLILTS Remove from Gonbext Gor alE Shikt Down Be 4 ChangedMassQueryImplementatian kamp 2 My kamp jp Import 2 WithDatabaseCache kamp pay Export Refresh F5 Initialize graphical model File ru Open Resultviewer Validate Save Eris Team j Compare With k Replace With k Alt Enter Properties Property Resource Figure 33 Generate a diagram file for a Service Architecture Model Using a right Click on the selected entry shows the menu displayed in Figure 33 Selecting the highlighted entry will create a new entry in the workspace where the required model diagram file can be found The Composite Editor can be opened for a Service Architecture diagram file by double clicking on the file For a composit
265. wn list e Select the following items listed in the install window Palladio Component Model Q ImPrESS Tools EU FP7 Project and SISSy Then click Next e The following window shows all features that are to be installed Confirm the selection with Finish During the installation process a security warning might pop up notifying you that some of the software contains unsigned content Continue the installation process by press OK e After the installation is finished a window will pop up asking you to restart the Eclipse workbench Select No and shutdown Eclipse manually e Locate the eclipse installation folder and locate the file config ini in the configuration folder O Q ImPrESS Consortium Dissemination level public Page 22 207 D6 1 Annex Guidelines and Tool Manuals e Open the file and append the following line osgi framework extensions eu qimpress ide editors text xtextfix If a line starting with osgi framework extensions already exists just append eu qimpress ide editors text xtextfix to the line e Save and close the file start Eclipse The Q ImPrESS IDE is now installed For more information refer to the Download section at the Q ImPrESS website at http www g impress eu wordpress software Q ImPrESS Consortium Dissemination level public Page 23 207 a D6 1 Annex Guidelines and Tool Manuals ImPrESS 4 2 IDE Basics Working wit
266. xception OperationException OperationException H STRING H STRING H i aoc H STRING Ha gt X 7 J e 9 exceptionMessage H STRING 9 7 H y gt oi Y 7 M gt J Q ImPrESS Consortium Dissemination level public Page 194 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS EventPort EventPort m E H EventPort H STRING H STRING H UO doc STRING gt gt 7M message H MessageType Hr r H H 7 Ut ht d Ll E A gt a QualifiedName H gt Connector Connector gt Connector gt STRING H doc gt STRING H j gt 7 delegation gt 7 endpoints gt 7 EndPoint H 6 ex c ft 9 45 UM HY 4 be gt gt 0242240 gt EndPoint EndPoint SubcomponentEndpoint ComponentEndPoint SubComponentEndPoint SubcomponentEndpoint l l E E i SubcomponentEndpoint et STRING PUO doe HH STRING MH Jr MACH subComponent HH SubcomponentInstance ITI 2x E d j t QualifiedName H d G f j e 7 port J Port TrA E TT QualifiedName 7H 77 gt aa ComponentEndPoint ComponentEndPoint m rere A peg E we EE p ER A pum V reum T H ComponentEndPoint H STRING Er b doc H STRING A iq d 5 X port Forn d pO G T i T T s my ii H QualifiedName H 77 O Q ImPrESS Consortium Dissemination level public Page 195 207
267. y required when the user wants to provide different initialization context represented by the Properties class The flush method can be called by the user to force flushing of buffers containing performance data to disk And finally the Shutdown method can be called when the instrumented application is exiting The JPMF library registers a shutdown hook with the JVM in order to ensure flushing of data from buffers to disk but with manually instrumented applications where the user is expected to be in control of application startup and shutdown it is recommended to call the shutdown method explicitly O Q ImPrESS Consortium Dissemination level public Page 145 207 D6 1 Annex Guidelines and Tool Manuals ImPrESS The registerEventSource and createEventTrigger methods serve for performance event registration Each of those methods is targeted at different user The registerEventSource method is intended for automatic instrumentation tools which will automatically create instances of the EventSource interface and register them with the framework The createEventTrigger method is intended for manual instrumentation and provides an implementation of a simplified event source that only supports a single performance event When creating an event trigger the user has to specify the desired trigger interface that will be used to trigger performance event notifications 4 14 5 Instrumentation using event triggers When using t
268. ype filter text x O examplesystem samm seff QImPrESS Alternative Q ImPrESS Usage Model Q ImPrESS Alternative Evaluation SimuCom E Common H examplesystem samm seff bak P Acceleo Application cemacem A Red l examplesystem samm servicearchitecl i c ATL Transformation T y ACT 3 i B ex siplesidan soni serios ichited Te Completions Maximum simulation time 150000 Simulated Time Units examplesystem samm_targetenvironm 77 Eclipse Application Maximum measurements count 10000 H A examplesystem samm_usagemodel E Java Applet Fa B massQueryUser Dusnesstogessmm IB 3 Java Application Confidence Stop Condition 0 RESULTS We JET Transformation Stop when reaching confidence F 4 ChangedMassQueryImplementation kamp i Ju Init Confidence level 9 2 Q5 Ju JUnit Plug in Test x59 Launch SAMM2PCM multiple Gonfidence interval half width 9 2 10 EZ Launch sissy Monitor Response Time of select Model Elements c Y Launch SoMox ie MWE Workflow Experiment Run i Operational QVT Interpreter OSGi Framework 4 WithDatabaseCache kamp Experiment Name MyRun Select Datasource Bl xl Q PCM Solver Persistence nine Ml pen Solver Reliability c NL Description pe Q ImPrESS Consistency Check ersissence Framework Senso a datasource stored in memory Changes are lost when t Q ImPrESS Performance Analy SensorFramework unsafed EB i New configur

Download Pdf Manuals

image

Related Search

Related Contents

A-Boom Tech. Service Bulletin Manual  MANUAL DE USO E MANUTENÇÃO  V7 Laser Toner for select HP printer - replaces CE322A  9563H 9564H 9565H  D-Link Omni-directional Outdoor Antenna  JISマーク表示対象JIS作成ガイドライン (PDF 1.5MB)  Breuvage pour vaches vêlées  Documentation Kit de charge  Preliminary Manual  取扱説明書 - MotoGear.jp  

Copyright © All rights reserved.
Failed to retrieve file