SHARPE (Symbolic Hierarchical Automated Reliability and Performance Evaluator) is a toolkit that provides a specification language and solution methods for most of the commonly used model types for performance, reliability and performability modeling.

SHARPE models were designed to answer the question: given time-dependent functions that describe the behavior of the components of a system and a description of the structure of the system, what is the behavior of the whole system as a function of time? The functions might be cumulative distribution functions (CDFs) for component failure times, CDFs for task completion times, or the probabilities that components are available at a given time.

The model types include combinatorial ones such as fault trees and queuing networks and state-space ones such as Markov and semi-Markov reward models and stochastic Petri nets. Steady-state, transient and interval measures can be computed. For most of the model types, SHARPE provides more than one analysis algorithm from which the user can choose.

SHARPE is "hierarchical" because it allows measures of a model to be used as parameters of other models. SHARPE allows the user to choose when to combine different model types, which ones to combine, and how to combine them.

The time-dependent functions describing the component behavior must be exponential polynomial in form. This is not a great restriction, because many of the most commonly used distribution functions have this form, and much of the work that has been done in fitting distributions to data has used exponential polynomials.

SHARPE has both a command-line interface and a graphical user interface. The GUI is implemented using Java. It implements description techniques for eight of the model types: reliability engineering: fault trees, Markov chains, reliability block diagrams, reliability graphs, generalized stochastic Petri nets, product-form queuing networks, multi-chain product-form queuing networks and series-parallel task graphs. It also supports the ability to combine models hierarchically. In the future, the rest of the SHARPE models (phased mission, multi-component fault trees, semi-Markov chains) will be available in the GUI.

The SHARPE program is useful both as an aid in learning about modeling and as a tool for use in modeling real systems. SHARPE has been installed at over 450 sites.