03.08.2013 Views

PTOLEMY II - CiteSeerX

PTOLEMY II - CiteSeerX

PTOLEMY II - CiteSeerX

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Introduction<br />

1.5.2 Overview of Key Classes<br />

Some of the key classes in Ptolemy <strong>II</strong> are shown in figure 1.16. This is a UML static structure diagram<br />

(see appendix A of this chapter). The key syntactic elements are boxes, which represent classes,<br />

the hollow arrow, which indicates generalization (or subclassing), and other lines, which indicate associations.<br />

Some lines have a small diamond, which indicates aggregation. The details of these classes<br />

will be discussed in subsequent chapters.<br />

Instances of all of the classes shown can have names; they all implement the Nameable interface.<br />

Most of the classes generalize NamedObj, which in addition to being nameable can have a list of<br />

attributes associated with it. Attributes themselves are instances of NamedObj.<br />

Entity, Port, and Relation are three key classes that extend NamedObj, directly or indirectly. These<br />

classes define the primitives of the abstract syntax supported by Ptolemy <strong>II</strong>. They are fully explained in<br />

the kernel chapter of volume 2. ComponentPort, ComponentRelation, and ComponentEntity extend<br />

these classes by adding support for clustered graphs. CompositeEntity extends ComponentEntity and<br />

represents an aggregation of instances of ComponentEntity and ComponentRelation.<br />

The actor-oriented class mechanism is represented by the Derivable and Instantiable interfaces.<br />

Nearly all classes implement Derivable, which means that they can be contained in class definitions<br />

kernel<br />

kernel.util<br />

graph<br />

CPO<br />

DirectedAcyclicGraph<br />

DirectedGraph<br />

Edge<br />

Element<br />

ElementList<br />

Graph<br />

GraphActionException<br />

GraphConstructionException<br />

GraphElementException<br />

GraphException<br />

GraphStateException<br />

GraphTopologyException<br />

GraphWeightException<br />

Inequality<br />

InequalitySolver<br />

InequalityTerm<br />

LabeledList<br />

Node<br />

graph.analysis<br />

AllPairShortestPathAnalysis<br />

Analysis<br />

AnalysisException<br />

ClusterNodeAnalysis<br />

CycleExistenceAnalysis<br />

CycleMeanAnalysis<br />

InvalidAnalyzerException<br />

MaximumProfitToCostRatioAnalysis<br />

MirrorTransformation<br />

NegativeLengthCycleAnalysis<br />

SelfLoopAnalysis<br />

SinkNodeAnalysis<br />

SourceNodeAnalysis<br />

TransitiveClosureAnalysis<br />

ZeroLengthCycleAnalysis<br />

FIGURE 1.15. The graph package and related packages shown here provide graph-theoretic algorithms<br />

that operate on the Ptolemy <strong>II</strong> data model (figure 1.12) to support of static analysis and scheduling.<br />

Heterogeneous Concurrent Modeling and Design 29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!