105 lines
5.4 KiB
Plaintext
Executable File
105 lines
5.4 KiB
Plaintext
Executable File
3.3.3.3 Il formalismo SAN, il tool Mobius e alcuni esempi di modelli sviluppati
|
|
|
|
Per definire e valutare i modelli proposti, è stato utilizzato il
|
|
flessibile e potente ambiente
|
|
di modellazione Möbius [DCC02] implementato dall'omonimo tool [CGK09]
|
|
(i cui componenti principali sono mostrati in Figura xx1),
|
|
che supporta una molteplicità di formalismi di modellazione e di
|
|
risolutori, con capacità di interagire tra loro.
|
|
Il modello complessivo dell'ambiente Möbius è ottenuto mediante uno o
|
|
più sottomodelli, atomici o a loro volta composti,
|
|
composti gerarchicamente (come mostrato in Figure
|
|
xx1) al livello di Abstract Functional Interface (AFI) [DCCDDDSW02,DKSC02]
|
|
utilizzando operatori, come Join e Rep [SM91], basati
|
|
sulla condivisione di variabili di stato o azioni.
|
|
Sul modello risultante vengono definite prima le variabili di
|
|
performance (che rappresentano le misure di interesse), basate su
|
|
strutture di guadagno, ed infine gli
|
|
studi da valutare in base alla variabilità dei parametri del modello.
|
|
Numerosi risolutori, basati su simulazione o tecniche analitiche,
|
|
sono disponibili per valutare il modello.
|
|
|
|
Tutti i formalismi e i risolutori supportati da Möbius sono basati sul
|
|
linguaggio di programmazione orientato ad oggetti C++, consentendo
|
|
l'utilizzo di codice C++ nei modelli.
|
|
Pertanto, lo strumento supporta strutture dati C++ esterne
|
|
staticamente definite al momento della compilazione e il collegamento
|
|
di librerie C++ esterne.
|
|
|
|
Tra i formalismi per la definizione dei modelli atomici, è stato
|
|
scelto quello delle Stochastic Activity Network (SAN) [SM01], una
|
|
estensione stocastica delle reti di Petri basata sulle seguenti
|
|
primitive grafiche: posti semplici o estesi (rappresentati da cerchi
|
|
blu e arancioni), attività temporizzate o istantanee
|
|
(barre verticali vuote o sottili, rispettivamente), porte di input
|
|
e di output (triangoli con la punta a sinistra o a destra). In
|
|
particolare, un posto semplice rappresenta il tipo "short" del
|
|
linguaggio C++, mentre un posto esteso representa tipi di dati di base
|
|
primitivi (come "short", "float", "double") e tipi "struct" o "array"
|
|
di tipi primitivi o di posti estesi.
|
|
Il tempo al completamento di
|
|
una attività può avere una qualunque delle numerose distribuzioni
|
|
supportate dal tool. Ad ogni attività può essere associato uno o più
|
|
case (piccoli cerchietti alla destra dell'attività) che rappresentano
|
|
l'incertezza probabilistica al completamento dell'attività. Infine i
|
|
gate permettono di specificare condizioni di abilitazione e regole di
|
|
completamento.
|
|
|
|
Il modello composto è ottenuto seguendo l'approccio modulare e
|
|
composizionale DARep [CDM17,CDM21] che estende Möbius con un nuovo
|
|
operatore D, basato su script Perl, per la replicazione indicizzata di
|
|
uno o più modelli atomici "template".
|
|
|
|
|
|
The system under analysis is modeled and evalu- ated following the
|
|
DARep compositional and mod- ular approach, as proposed in [25] and
|
|
also detailed in [5], by means of the tool M ̈obius [19].
|
|
|
|
|
|
|
|
formalization of the concept of named replication of template models,
|
|
|
|
The DARep approach is based on: i) template stochastic models, each
|
|
one representing a different generic component; ii) dependency-aware
|
|
State Variables (SVs), representing part of the state of a template
|
|
model; iii) a topology, associated to each dependency-aware SV; iv)
|
|
two functions Index() and Deps() that extend the template model; v)
|
|
the compositional operator D.
|
|
|
|
|
|
, o DARep
|
|
[CDM17,CDM21]
|
|
|
|
DARep is based on a new operator that explicitly sup- ports 2) and 4)
|
|
and on the Join operator that supports 5).
|
|
|
|
|
|
Very briefly, SANs are a variant of Stochastic Petri Nets (SPN) with a graphical
|
|
representation consisting of places, timed and instantaneous activities, and input
|
|
and output gates. Activities are equivalent to transitions in SPN. The amount of time
|
|
to complete a timed activity may be exponentially or nonexponentially distrib- uted.
|
|
Cases can be associated to activities (represented graphically as circles on the right
|
|
side of an activity) and permited to model uncertainty upon completion of an activity.
|
|
The use of gates permits a greater flexibility in specifying enabling conditions and
|
|
completion rules than simple SPN.
|
|
|
|
|
|
|
|
The Mo ̈bius modeling framework and its supporting tool Mo ̈bius [3] are briefly recalled in the following.
|
|
Our models are defined using the SAN formalism [28], a stochastic extension of Petri nets based
|
|
on the following primitives: plain and extended places (blue and orange circles) represent
|
|
SVs, timed and instantaneous activities (hollow and solid vertical bars) with linked input and output gates
|
|
(triangles pointing left or right) represent actions. Extended places represent complex data
|
|
types (like int, float, double, structures and arrays).
|
|
Input gates control when an activity is enabled.
|
|
The delay between enabling and completing of timed activities is a generally distributed random variable,
|
|
whereas enabling and completing of instantaneous activities take place at the same time.
|
|
SVs changes occur when an activity completes, as defined by the input and output gates.
|
|
The SAN primitives are defined by C++ statements, supporting external C++ data structures and
|
|
the linking to external C++ libraries.
|
|
In Mo ̈bius, the Join and Rep state-sharing compositional operators [28] are supported at level of
|
|
AFI [23, 3] as already described in Section 4. The auxiliary functions Index() and Deps(), and
|
|
the operator D are implemented through a Perl program [34, 20] which manipulates the xml files
|
|
describing the models defined in M ̈obius.
|
|
|