Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the...
-
Upload
phamnguyet -
Category
Documents
-
view
233 -
download
0
Transcript of Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the...
![Page 1: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/1.jpg)
Modelling the CoCoME withthe Java/A Component Model
Rolf Hennicker, Alexander KnappLudwig-Maximilians-Universitat Munchen
August 2007
![Page 2: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/2.jpg)
The Java/A TeamI Ludwig-Maximilians-Universitat Munchen
I UML modelling, qualitative analysis
I Florian HacklingerI Rolf HennickerI Stephan JanischI Alexander KnappI Martin Wirsing
I University of EdinburghI quantitative analysis
I Allan ClarkI Stephen Gilmore
I Danmarks Tekniske Universitet, LyngbyI UML modelling, qualitative analysis
I Hubert Baumeister
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 2/43
![Page 3: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/3.jpg)
Overview
I Java/A component modelI Modelling the CoCoMEI Analysis of our model for the CoCoMEI ToolsI Open issues
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 3/43
![Page 4: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/4.jpg)
The Java/A Component Model (1)
Feature
0..1
required
0..1
providedInterface
Port
Behavior
Operation
Property
operationsoperations
*
properties
*
behavior
1
*
*
operations
PortProperty
type
1 properties}
behavior
1
Operation
Behavior
Property
Port
SimpleComponent
properties
*
ports
{subsets
*
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 4/43
![Page 5: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/5.jpg)
Simple Components: Example
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 5/43
![Page 6: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/6.jpg)
The Java/A Component Model (2)
Component
ComponentSimple
PropertyComponent
PropertyProperty
Port
PropertyConnector
*
connectors
Connector Port
type
1
ComponentComposite components
*
relayPorts
*
ports2
type1
2
ports
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 6/43
![Page 7: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/7.jpg)
Composite Components: Example
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 7/43
![Page 8: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/8.jpg)
Modelling the CoCoME — Procedure (1)
1. Primary scenarios from CoCoME descriptionI static structure of simple componentsI port and component behaviourI analysis of behaviour (embedded system part)I integration of simple components into composite components
2. Alternative and exceptional scenarios from CoCoMEdescription
3. Iteration
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 8/43
![Page 9: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/9.jpg)
Modelling the CoCoME — Procedure (2)I Deriving state machines from interactions
: CashDeskApplication
ref payment mode card
expressModeEnabledopt
: Coordinator
saleStarted
saleFinished
paymentMode(CASH)
cashAmountEntered
changeAmountCalculated
cashBoxClosed
saleRegistered
alt
Process salesd
: CashBox
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 9/43
![Page 10: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/10.jpg)
Modelling the CoCoME — Procedure (3)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 10/43
![Page 11: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/11.jpg)
Modelling the CoCoME — OverviewCashDeskLine Store::CashDeskLine
CashDesk CashDeskCardReaderController CardReaderCashBoxController CashBoxCashDeskApplication CashDeskApplicationCashDeskGUI CashDeskGUILightDisplayController LightDisplayPrinterController PrinterScannerController Scanner
Coordinator CoordinatorEventBus Not modelled
Inventory Not explicitly; distinguished Enterprise/StoreApplication Ditto due to distinct Enterprise/Store
Reporting Enterprise::ReportingStore Store::Inventory
Data DataEnterprise Data instantiated in EnterpriseStore Data instantiated in StorePersistence integrated in ports of Data
GUI modelled as operator portsReporting ports of Enterprise::ReportingStore ports of Store::Inventory
DataBase DataBase
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 11/43
![Page 12: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/12.jpg)
TradingSystem — Static Structure
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 12/43
![Page 13: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/13.jpg)
Store — Static Structure
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 13/43
![Page 14: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/14.jpg)
CashDeskLine — Static Structure
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 14/43
![Page 15: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/15.jpg)
Coordinator — Static Structure
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 15/43
![Page 16: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/16.jpg)
Coordinator — Port Behaviour
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 16/43
![Page 17: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/17.jpg)
Coordinator — Component Behaviour
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 17/43
![Page 18: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/18.jpg)
CashDesk — Static Structure
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 18/43
![Page 19: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/19.jpg)
Functional Analysis
Interested in:Behaviour of ports and components (simple and composite)
Basis:Given behaviour specifications of ports and simple components
Properties to be checked:I Deadlock-freeness of port and component behavioursI Correctness of components w.r.t. their ports
Focus of our analysis: Embedded system part
Analysis process:I Starts with the analysis of simple components and their portsI Derives results for composite components
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 19/43
![Page 20: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/20.jpg)
Composite Component CashDeskLine (revisited)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 20/43
![Page 21: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/21.jpg)
Behaviour Specifications and their Formalisation
State machines 7→ I/O-transition systems
with input, output, internal labels + τ -action
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 21/43
![Page 22: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/22.jpg)
I/O-transition System for Component Coordinator
Notation: beh(Coordinator)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 22/43
![Page 23: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/23.jpg)
Behaviour of Port Coordinator–CashDesk
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 23/43
![Page 24: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/24.jpg)
Analysis of Simple Components
Steps:I Check the deadlock-freeness of ports and simple componentsI Check the compliance of component and port behaviours
Definition (Component correctness)
Observable behaviour of a component C at port p : P
obsp(beh(C)) ≈ beh(P)
Example: obscd(beh(Coordinator)) ≈ beh(C-CD)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 24/43
![Page 25: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/25.jpg)
Analysis of Composite Components
Assume given: Correct and deadlock-free subcomponents
Analysis steps:I Examine (pairwise) the interaction behaviour of connected
portsI Check the deadlock-freeness of the composite componentI Check the correctness of the composite component w.r.t. its
ports
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 25/43
![Page 26: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/26.jpg)
Interaction Behaviour of Connected Ports
Example:Interaction behaviour of the Coordinator and CashDesk ports
beh(CDA-C)
beh(C-CD)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 26/43
![Page 27: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/27.jpg)
Port product beh(CDA-C)⊗ beh(C-CD)
Definition (Behavioural compatibility of ports)
beh(P)⊗ beh(Q) is deadlock-free.
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 27/43
![Page 28: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/28.jpg)
Important Observation
c : Cb : B
«component»
CC
a : A
Behavioural compatibility of the connected ports+ deadlock-freeness of all subcomponents
6⇒deadlock-freeness of the composite component
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 28/43
![Page 29: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/29.jpg)
Reflection of Port Behaviour
Definition (Reflection of port behaviour)
The interaction behaviour of P and Q reflects the behaviour of P, if
beh(P) ≈ beh(P)⊗ beh(Q)
Example:
The interaction behaviour of the CashDesk and the Coordinator portsreflects the behaviour of the CashDesk port
beh(CDA-C) ≈ beh(CDA-C)⊗ beh(C-CD)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 29/43
![Page 30: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/30.jpg)
Deadlock-freeness of Composite Components
Assume:I Deadlock-freeness and correctness of all subcomponentsI Behavioural compatibility of all connected portsI Behaviour reflection for n− 1 connected ports
Then the composite component CC is deadlock-free.R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 30/43
![Page 31: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/31.jpg)
Deadlock-freeness of the CashDesk Component
I All subcomponents are deadlock-free and correctI All connected ports are behaviourally compatibleI Only the connection between the CashDeskApplication and the
CashBox is not behaviour reflecting
Hence the CashDesk component is deadlock free.R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 31/43
![Page 32: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/32.jpg)
Deadlock-freeness of the CashDeskLine
I The subcomponents Coordinator and CashDesk aredeadlock-free and correct
I The connected ports are behaviourally compatible (and evenbehaviour reflecting)
Hence the CashDeskLine component is deadlock free.R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 32/43
![Page 33: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/33.jpg)
Implementation Model with Event Bus (1)
ClaimI If the event bus works in FIFO manner, communication order is
preserved.I Deadlock-freeness is preserved.
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 33/43
![Page 34: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/34.jpg)
Implementation Model with Event Bus (2)
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 34/43
![Page 35: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/35.jpg)
Non-Functional Analysis
I Assessment of Service-Level AgreementsI currently to be done manually (PEPA)I only exemplified for express checkout
I Assessment of advantage of using express checkoutI customers with eight items or fewer may also use normal
checkout
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0 1 2 3 4 5 6 7 8 9 10
Pro
babi
lity
Time
Differences between the express checkout and a normal checkout
express checkoutnormal checkout
0
0.1
0.2
0.3
0.4
0.5
0.6
0 5 10 15 20 25 30 35 40 45 50
Pro
babi
lity
Time
Differences between the express checkout and a normal checkout
express checkoutnormal checkout
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 35/43
![Page 36: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/36.jpg)
Tools
I MagicDrawI UML modelling
I Labelled Transition System Analyser (LTSA)I based on process algebra FSPI used for analysis of deadlock and observational equivalence
I Hugo/RTI UML model translator for model checking (SPIN, UPPAAL),
theorem proving (KIV), and code generation (Java, SystemC)I used for code generation for Java/A
I Imperial PEPA Compiler (IPC)I based on Performance Evaluation Process Algebra (PEPA)I used for quantitative analysis with Continuous-Time Markov
Chains
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 36/43
![Page 37: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/37.jpg)
Java/A: Architectural Programming
I Architectural programming languageI integration of architectural notions into JavaI avoiding architectural erosion in implementation
composite component SimplifiedStore {assembly {components {Inventory, CashDesk
}connectors {Inventory.Sale, CashDesk.CDAI;
}}constructor SimplifiedStore() {initial configuration {active component Inventory inv = new Inventory();active component CashDesk cd = new CashDesk();connector Connector con = new Connector();con.connect(inv.Sale, cd.CDAI);
}}
}
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 38/43
![Page 38: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/38.jpg)
Java/A: Components and Ports
simple component CashDeskApplication {int itemCounter = 0; ...port CDACB {provided { async saleStarted();
async productBarCodeEntered(int barcode);async saleFinished();async paymentModeCash(); ... }
required { async changeAmountCalculated(double amount);async saleSuccess(); }
protocol <! behaviour {states { initial init;
simple a; simple b; simple e; ... simple h; }transitions { init -> a;
a -> b { trigger saleStarted; }b -> b { trigger productBarCodeEntered; }...e -> h { effect out.saleSuccess(); }h -> b { trigger saleStarted; }
} } !>}...
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 40/43
![Page 39: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/39.jpg)
Java/A: Interface Implementation
void saleStarted() implements CDACB.saleStarted() {Event event = Event.signal("send saleStarted",
new Object[]{});this.eventQueue.insert(event);
}...void processSaleStarted() {try {CDAP.saleStarted();CDACDG.saleStarted();
}catch (ConnectionException e) {e.printStackTrace();
}}...
}
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 42/43
![Page 40: Modelling the CoCoME with the Java/A Component Model Contest Common Component... · Modelling the CoCoME with the Java/A Component Model Rolf Hennicker, Alexander Knapp Ludwig-Maximilians-Universitat](https://reader030.fdocuments.net/reader030/viewer/2022040623/5d4a712188c99313138bd727/html5/thumbnails/40.jpg)
Open Issues
I Extension of functional analysisI integration of pre- and post-conditions for synchronous
operationsI n-ary connectors
I Integration of non-functional analysisI annotation of state machines and sequence diagrams by
performance properties
I Runtime reconfigurationI e.g., opening and closing cash desks
I Deployment view
R. Hennicker, A. Knapp: Modelling the CoCoME with the Java/A Component Model 43/43