Analysis, design, and implementation of PHENIX On-Line Computing Systems Software using Shlaer-Mellor Object-Oriented Analyis and Recursive Design

Paper: 272
Session: E (talk)
Speaker: Desmond, Edmond, Brookhaven National Laboratory, Upton
Keywords: C++, CASE, object-oriented methods, programming languages, software tools


Analysis, design, and implementation of PHENIX On-Line Computing
Systems Software using Shlaer-Mellor Object-Oriented Analyis and
Recursive Design.

Thomas Kozlowski

Physics Division, Los Alamos National Laboratory, Los Alamos, NM 87545
Ed Desmond, John Haggerty,
Hyon-Joo Kehayias, Martin Purschke, Chris Witzig

Physics Department, Brookhaven National Laboratory, Upton, NY, 11973

PHENIX Collaboration

We have adopted the The Shlaer-Mellor method for the development of the core
software for on-line computing systems for the PHENIX detector at RHIC,
and have used it through a complete development cycle.

According to the method, the software problem is first partitioned at the highest
level into relatively independent subject matter domains. A subset of these
domains is chosen to be developed according to the method, and the remainder
can be implemented using "traditional methods" or as imported existing software
pacages.
For each domain implemented according to the Shlaer-Mellor method, a series of
rigorous and complete models are created. The models are rigorous and complete
enough that they can be simulated ("executed") or transformed directly into
source code via a translation engine according to a specific "architecture"
(translation rules, supporting code templates and low level software libraries).
The foundation of the method is an Information Model specifying the real
and abstract objects that make up the system and their relations. Each object
with an interesting life-cycle is then modeled using a State Transition Diagram
(State Model). Processing is modeled through a Process (or Action) Model by
specifying the actions that are to occur on transitioning to a state.
Interactions between objects are modeled by events sent between states
of the object State Transition Diagrams, or sent to or from other domains.

We will report on our experiences in the complete implementation of major
components of a prototype PHENIX on-line system using the Shlaer Mellor
method, including the automatic generation of C++ source code using
a commerical translation engine and "architecture".