Methodologies and the GEANT4 Project

The 1st GEANT4 Workshop by Video Conference
Dec. 6, 1994

Katsuya Amako (KEK)


Why do we need a methodology?

Ref. : G. Booch, "Object-Oriented Analysis and Design with Application"


Is there a "best" design method ?

Ref. : G. Booch, "Object-Oriented Analysis and Design with Application"


Methodologies in the World

Booch's statement is absolutely right. There are variety of OO methodologies available now. and more are coming, for example,

and also some of them are evolving.



Then a question is what should we do?




Similarity in Methods

Essential components in various methods are similar.

Major methodologies consist of the following critical components.

D. E. Monarchi and G.I Puhr: "A Research Typology for Object-Oriented Analysis and Design"
Commun. ACM 35, 9 (Sept. 1992) 35

OOA: Problem Domain Analysis Process

  1. Identification of
    • semantic class
    • attributes
    • behavior
    • relationship (e.g., generalization, aggregation, association)
  2. Placement of
    • classes
    • attributes
    • behavior
  3. Specification of dynamic behavior

    OOD: Solution Domain Design Process

    1. The above three processes for the following kinds of classes:
      • Interface
      • Application
      • Base/Utility
    2. Optimization of classes

    OOA/OOD Representations
    1. Static View:
      • Objects
      • Attributes
      • Behavior
      • Relationship
          Generalization
          Aggregation
          Association
          etc.
    2. Dynamic View:
      • Communication
      • Control/Timing
    3. Constraints:
      • On structure (attribute values, relationship cardinalities)
      • On dynamic behavior
    
    

    Methodology Proposal for GEANT4

    Because essential components in various methodologies are similar, a practical selection for our project is :

    • to start from a relatively familiar one - in out case, the Rumbaugh methodology,

    • then, to import appropriate features from other methodologies - mainly Booch and Fusion.
    
    

    Does the introduction of OOA/OOD really help our project?

    From our experience of the "ProdiG" project,

    • It helps to guide how do we proceed the program design - not straight forward of course,

    • it helps to identify ourselves where we are in the design process,

    • it helps to exchange various design ideas by many people,

    • it helps to summarize the software design.

    However, we cannot quantify the above merits.

    
    

    Do we need to introduce a CASE tool which matches the OOA/OOD?

    • We don't know how much a CASE tool helps.

    • From our experience, OMTool is just for the diagram drawing.

    • However, J. Rumbaugh said in his talk at OOPSLA'94 that:
      "I was actually the original designer behind OMTool. I had the feeling that well, fine, other people would use it, but I didn't need it. When I finally had it operational, I find that in fact, I needed it just as much as everybody else. Not only that, but it changed the way I thought. And I think that's what people see when they work with good tools. It doesn't just bring the methodology to life; it actually changes the methodology."

    • We need some experience on this issue.