• Non ci sono risultati.

Part III.Nome Disponibilità Tipo Di Versione

INTERARRIVAL TIME

10.2 Design di descrizioni XML

In questo paragrafo riportiamo, a titolo di esempio, una trasformazione da diagramma UML a file XML, questa è la premessa per la nostra interfaccia.

Figura 115: Diagramma UML da trasformare in file XML

162 Figura 116: Codice in XML che descrive le classi di Fig.115

163 Figura.: 117 Schema per validare l’istanza creata

164 L’interfaccia:

Figura 118: Schema logico dell'applicazione 10.2.1 Spiegazione dello schema:

User (analista) modella il processo da simulare con il tool basato su linguaggio BPMN; una volta che il modello è stato realizzato, è tradotto in Xml, poi tramite l'interfaccia sono passati i parametri di simulazione. La fase successiva consiste nell'estrarre le features del modello e inviarli al decisore il quale, prendendo in ingresso la matrice definita nel capitolo precedente e le features estratte al passo precedente, decide il miglior tool di simulazione da mandare in esecuzione e rimanderà all'User i reports di simulazione. La scelta dell'estrazione delle features, la decisione del tool e l'esecuzione della simulazione saranno trasparenti all'User.

165

10.3 Descrizione del Simulation Parameters

Figura . : 119 Oggetti che l’interfaccia utilizza per la simulazione

In figura sono rappresentati gli oggetti che l'interfaccia necessita per la simulazione, sono una rappresentazione concettuale dei parametri da passare al simulatore dato uno scenario di simulazione. Questi oggetti sono definiti XML come riportato di seguito:

:element name="parametri_di_task">

-<xs:complexType> -<xs:sequence>

<xs:element ref="risorsa_necessaria" /> <xs:element ref="durata" />

<xs:element ref="costo" /> <xs:element ref="priorita" /> <xs:element ref="stabilita" /> <xs:element ref="complessita" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="tempo_di_interarrivo">

166

-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> -<xs:element name="parametri_di_simulazione">

-<xs:complexType> -<xs:sequence>

<xs:element ref="parametri_di_pool" /> <xs:element ref="parametri_di_task" /> <xs:element ref="nuovi_KPI" />

<xs:element ref="parametro_di_gateway" /> <xs:element ref="validazione_diagramma" /> <xs:element ref="debug_diagramma" /> <xs:element ref="script_di_simulazione" /> <xs:element ref="statistiche_esportabili" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="parametri_di_pool">

-<xs:complexType> -<xs:sequence>

<xs:element ref="tempo_di_interarrivo" /> <xs:element ref="numero_di_istanze" /> <xs:element ref="risorse_disponibili" /> <xs:element ref="calendario" />

<xs:element ref="inizio_simulazione" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs s:complexType> -<xs:sequence>

<xs:element name="unita_di_misura" type="xs:string" />

<xs:element ref="informazioni_statistiche" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="numero_di_istanze"> -<xs:complexType>

-<xs:sequence>

<xs:element name="numero" type="xs:integer" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="risorse_disponibili"> -<xs:complexType>

-<xs:sequence>

<xs:element name="numero" type="xs:integer" /> <xs:element name="tipo" type="xs:string" />

<xs:element name="costo_orario" type="xs:decimal" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="calendario">

-<xs:complexType> -<xs:sequence>

167 <xs:element name="durata_anno" type="xs:integer" />

<xs:element name="durata_mese" type="xs:integer" />

<xs:element name="ore_lavorative_giornaliere" type="xs:integer" /> <xs:element name="durata_settimana" type="xs:integer" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="inizio_simulazione"> -<xs:complexType>

-<xs:sequence>

<xs:element name="inizio_data_ora" type="xs:string" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="risorsa_necessaria"> -<xs:complexType>

-<xs:sequence>

<xs:element name="nome" type="xs:string" /> <xs:element name="tipo" type="xs:string" /> <xs:element name="quantita" type="xs:integer" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="durata"> -<xs:complexType>

-<xs:sequence>

<xs:element ref="informazioni_statistiche" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="costo">

-<xs:complexType> -<xs:sequence>

<xs:element name="importo" type="xs:decimal" /> <xs:element name="valuta" type="xs:string" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="priorita"> -<xs:complexType>

-<xs:sequence>

<xs:element name="livello_priorita" type="xs:integer" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="stabilita"> -<xs:complexType>

-<xs:sequence>

<xs:element name="livello_stabilita" type="xs:integer" /> </xs:sequence>

</xs:complexType> </xs:element>

168

-<xs:element name="complessita"> -<xs:complexType>

-<xs:sequence>

<xs:element name="livello_complessita" type="xs:integer" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="informazioni_statistiche"> -<xs:complexType>

-<xs:sequence>

<xs:element ref="fissa" /> <xs:element ref="empirica" /> <xs:element ref="binomiale" /> <xs:element ref="gaussiana" /> <xs:element ref="uniforme" /> <xs:element ref="esponenziale" /> <xs:element ref="normale" /> <xs:element ref="lognormale" /> <xs:element ref="gamma" /> <xs:element ref="beta" /> <xs:element ref="erlang" /> <xs:element ref="weibull" /> <xs:element ref="poisson" /> <xs:element ref="triangolare" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="fissa">

-<xs:complexType> -<xs:sequence>

<xs:element name="fisso" type="xs:integer" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="empirica">

-<xs:complexType> -<xs:sequence>

<xs:element name="valore" type="xs:decimal" /> <xs:element name="probabilita" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="binomiale">

-<xs:complexType> -<xs:sequence>

<xs:element name="variabile" type="xs:decimal" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="gaussiana">

-<xs:complexType> -<xs:sequence>

169 <xs:element name="media" type="xs:decimal" />

<xs:element name="deviazione" type="xs:decimal" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="uniforme">

-<xs:complexType>

-<xs:sequence>

<xs:element name="min" type="xs:decimal" /> <xs:element name="max" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="esponenziale"> -<xs:complexType>

-<xs:sequence>

<xs:element name="media" type="xs:decimal" /> <xs:element name="negativa" type="xs:boolean" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="normale"> -<xs:complexType>

-<xs:sequence>

<xs:element name="troncata" type="xs:boolean" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="lognormale"> -<xs:complexType>

-<xs:sequence>

<xs:element name="variabile" type="xs:decimal" /> <xs:element name="base" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="gamma"> -<xs:complexType>

-<xs:sequence>

<xs:element name="parametro1" type="xs:decimal" /> <xs:element name="parametro2" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="beta">

-<xs:complexType> -<xs:sequence>

<xs:element name="variabile" type="xs:decimal" /> </xs:sequence>

</xs:complexType> </xs:element>

170

-<xs:complexType> -<xs:sequence>

<xs:element name="ordine" type="xs:decimal" /> <xs:element name="media" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="weibull"> -<xs:complexType>

-<xs:sequence>

<xs:element name="scala" type="xs:decimal" /> <xs:element name="forma" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="poisson">

-<xs:complexType> -<xs:sequence>

<xs:element name="numero_eventi" type="xs:integer" /> <xs:element name="media" type="xs:decimal" />

</xs:sequence> </xs:complexType> </xs:element>

-<xs:element name="triangolare"> -<xs:complexType>

-<xs:sequence>

<xs:element name="variabile" type="xs:decimal" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="nuovi_KPI">

-<xs:complexType> -<xs:sequence>

<xs:element name="tipo" type="xs:string" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="parametro_di_gateway">

-<xs:complexType> -<xs:sequence>

<xs:element name="percentuale" type="xs:integer" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="validazione_diagramma">

-<xs:complexType> -<xs:sequence>

<xs:element name="bpmn" type="xs:boolean" /> <xs:element name="tool" type="xs:boolean" />

</xs:sequence> </xs:complexType> </xs:element>

171

-<xs:element name="debug_diagramma"> -<xs:complexType>

-<xs:sequence>

<xs:element name="debug" type="xs:boolean" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="script_di_simulazione"> -<xs:complexType>

-<xs:sequence>

<xs:element name="linguaggio" type="xs:string" /> </xs:sequence>

</xs:complexType> </xs:element>

-<xs:element name="statistiche_esportabili"> -<xs:complexType>

-<xs:sequence>

<xs:element name="estensione" type="xs:string" /> <xs:element name="grafica" type="xs:boolean" />

</xs:sequence> </xs:complexType> </xs:element>

</xs:schema>

Fig. :120 File XmlSchema dell’interfaccia

Di seguito il file di un’istanza:

<?xml version="1.0" encoding="UTF-8" ?>

-<parametri_di_simulazione xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:noNamespaceSchemaLocation="simulation.xsd">

-<parametri_di_pool>

-<tempo_di_interarrivo>

<unita_di_misura>ora</unita_di_misura>

-<informazioni_statistiche> -<fissa> <fisso>5</fisso> </fissa> -<empirica> <valore>3</valore> <probabilita>3</probabilita> </empirica> -<binomiale> <variabile>1.5</variabile> </binomiale> -<gaussiana> <media>1.5</media> <deviazione>1.5</deviazione> </gaussiana> -<uniforme>

172 <min>1</min> <max>3</max> </uniforme> -<esponenziale> <media>1.5</media> <negativa>1</negativa> </esponenziale> -<normale> <troncata>1</troncata> </normale> -<lognormale> <variabile>1.5</variabile> <base>3</base> </lognormale> -<gamma> <parametro1>1.4</parametro1> <parametro2>1.6</parametro2> </gamma> -<beta> <variabile>1.5</variabile> </beta> -<erlang> <ordine>3</ordine> <media>1.5</media> </erlang> -<weibull> <scala>1.5</scala> <forma>1.4</forma> </weibull> -<poisson> <numero_eventi>5</numero_eventi> <media>1.5</media> </poisson> -<triangolare> <variabile>1.6</variabile> </triangolare> - <!-- PROVA DI INFOSTATISTICHE --> </informazioni_statistiche> </tempo_di_interarrivo> -<numero_di_istanze> <numero>100</numero> </numero_di_istanze> -<risorse_disponibili> <numero>10</numero> <tipo>user</tipo>

<costo_orario>25</costo_orario> </risorse_disponibili>

-<calendario>

<durata_anno>1</durata_anno> <durata_mese>4</durata_mese>

173 <ore_lavorative_giornaliere>8</ore_lavorative_giornaliere> <durata_settimana>5</durata_settimana> </calendario> -<inizio_simulazione> <inizio_data_ora>24/09/2014</inizio_data_ora> </inizio_simulazione> </parametri_di_pool> -<parametri_di_task> -<risorsa_necessaria>

<nome>Utente</nome> <tipo>user</tipo>

<quantita>10</quantita> </risorsa_necessaria> -<durata> -<informazioni_statistiche> -<fissa> <fisso>5</fisso> </fissa> -<empirica> <valore>1.5</valore> <probabilita>1.5</probabilita> </empirica> -<binomiale> <variabile>1.5</variabile> </binomiale> -<gaussiana> <media>1.5</media> <deviazione>1.5</deviazione> </gaussiana> -<uniforme> <min>1.5</min> <max>1.5</max> </uniforme> -<esponenziale> <media>1.5</media> <negativa>1</negativa> </esponenziale> -<normale> <troncata>1</troncata> </normale> -<lognormale> <variabile>1.5</variabile> <base>5</base> </lognormale> -<gamma> <parametro1>1.5</parametro1> <parametro2>1.5</parametro2> </gamma> -<beta> <variabile>1.5</variabile> </beta> -<erlang>

174 <ordine>1.5</ordine> <media>1.5</media> </erlang> -<weibull> <scala>1.5</scala> <forma>1.5</forma> </weibull> -<poisson> <numero_eventi>5</numero_eventi> <media>1.5</media> </poisson> -<triangolare> <variabile>1.5</variabile> </triangolare> </informazioni_statistiche> </durata> -<costo> <importo>10</importo> <valuta>euro</valuta>

</costo> -<priorita> <livello_priorita>1</livello_priorita> </priorita> -<stabilita> <livello_stabilita>3</livello_stabilita> </stabilita> -<complessita> <livello_complessita>3</livello_complessita> </complessita> </parametri_di_task> -<nuovi_KPI>

<tipo>personale</tipo> </nuovi_KPI> -<parametro_di_gateway> <percentuale>50</percentuale> </parametro_di_gateway> -<validazione_diagramma> <bpmn>1</bpmn> <tool>0</tool> </validazione_diagramma> -<debug_diagramma> <debug>1</debug> </debug_diagramma> -<script_di_simulazione> <linguaggio>c++</linguaggio> </script_di_simulazione> -<statistiche_esportabili> <estensione>xls</estensione> <grafica>1</grafica> </statistiche_esportabili> </parametri_di_simulazione>

175

Documenti correlati