-----------------------------------------------------------
Hierarchy feature as a parameter:
----------------------------------------------------------

So far, we have shown how to use non-state-space models (reliability block diagrams, fault trees, 
series-parallel graphs and product-form queueing networks) and Markov, semi-Markov and GSPN models 
for performance and reliability analysis. The advantage of using non-state-space models (like block 
diagrams and fault trees) is that they are efficient to specify and analyze. 

However, the analysis of these models assumes the components are independent. For instance, in a block 
diagram, fault-tree or reliability graph, the components must be completely independent of one another 
in their failure and repair behavior. A failure in one component cannot affect the operation of another 
component, and components cannot share a repair facility. 

Certain restrictions must be satisfied for a queueing network to have product-form or for a task graph 
to be series-parallel.

Markov and semi-Markov models provide the ability to model systems that violate the assumptions made by 
the non-state-space models, but at the price of a state space explosion. A system having n components may 
require up to 2^n states in its Markov chain representation.  

This problem can be handled in two ways:
it can be tolerated or it can be avoided.

Large model tolerance must apply to specification, storage and solution of the model.  If the storage and 
solution problems can be solved, the specification problem can be solved by using more concise (and smaller) 
model specifications that can be automatically transformed into Markov models.

SHARPE supports Generalized Stochastic Petri Nets (GSPN) as a specification technique for largeness tolerance; 
GSPN models are transformed into Markov chains for analysis. The Generalized Stochastic Petri net is the only 
model type in SHARPE that requires a conversion to a different model to be solved.

Large models can be avoided by using hierarchical model\inxx{Hierarchical composition}composition. The ability 
of SHARPE to combine results from different kinds of models makes it possible to use state-space methods for 
those parts of a system that require them, and use non-state-space methods for the more ``well-behaved'' parts 
of the system. In this chapter, we present examples that show how different model types can be combined.

We also show how different kinds of models can be combined hierarchically and illustrate the fact that there 
is more than one way to set up and analyze a model correctly.  A modeler might choose one way over another 
because it is more efficient, because it corresponds more closely to the way people think about the system 
being modeled, or simply because of personal preference.  It is often a good idea to choose two or more 
equivalent models for the system to validate both the construction and analysis of the models.


- From a "fault tree" model 

	Click on an event with the right button then click on "Hierarchy" in the popup. A frame is displayed. You can 
	call a model, which is already in the current package, or call a new model. For a new model, you need to give 
	the type and the output used for the SHARPE code. 

	See the paragraph "Hierarchy dialog box". 

	A red square represents an event, which called another model. 


- From a "Reliability block diagram" model 

	Click on a block with the right button then click on "Hierarchy" in the popup. A frame is displayed. 
	You can call a model, which is already in the current package, or call a new model. For a new model, 
	you need to give the type and the output used for the SHARPE code. 

	(See the paragraph "Hierarchy dialog box"). 

	A block, which called another model, is represented by a red rectangle. 


- Hierarchy structure 

	To visualize the hierarchy structure's tree among all the models created in the current 
	project, click on the "Model Editor" menu and then on the "Information" menu. Click on 
	the "Hierarchy" tab. 


- Hierarchy dialog box 
	Click on "Validate" to confirm the call from the current event to the specific model. Click on "No Hierarchy" 
	to erase the link from the current event to a specific model. Click on "Cancel" to exit this dialog box without 
	any changes. 
