next up previous contents
Next: Bibliography Up: YAON, a Static Diagram Technique Systems Previous: 5.2 The Automatic Teller Machine

  
6. Conclusions and Ongoing Work

A new graphic, Object-Oriented notation based on ION and UML has been presented. The notation includes primitives for static definitions of classes, packages and virtual nodes. Classes can have different flavors in YAON. They can be declared as standard, active, final, abstract and synchronized. Also visibility class modifiers such as public, private and protected can be used in order to declare a class. Methods and attributes can be declared with the same semantics as in Java. That is, YAON supports the same visibility and special modifiers for classes, methods and instance variables as the Java programming language.

For classes, the client/server relationship has been defined as well as the subclass relationship. Different flavors of client/server relationships are supported and relationships can be further detailed with annotations. For a remote client/server relationship it can be specified if the communication will be done using sockets or if it is intended to be done using remote method invocation. For modules the import relationship has been defined.

The syntax of YAON has been informal introduced by examples of its use and later has been formal defined by a graphic BNF in a generation model way. Also its graph structure has been formally defined in an elimination model way.

The notation captures the essential concepts of OO-programming and design allowing an automatic translation into the Java language. For this notation, a drag and drop graphic-editor is under construction. It generates a file from the graphic input which is parsed and translated to Java code. This translation will be based on a transformational semantics which is currently under development. Some typical examples of the use of the notation have been shown. Also a comparison with other similar works has been presented.

It is worth mentioning that the YAON notation, complemented by CEDs (see [Mai97]), has been successfully used to model a real-life distributed system as the Live scoring of the Compaq Grand Slam Cup 1997 (see [MM97]). More case studies are under development.

In a future work a denotational semantics of the notation must be given. For this semantics a stream based approach as in [BDD+92] will be used.

Note: Writing papers on Java in the Internet age is hard. The sand on which we are standing is constantly shifting. At the time this paper was written, the state of the art of Java and security, cryptography, certificates, digital signatures, etc. was not completely documented. Therefore, graphic notations of such concepts are still missing in YAON. It is clear that security features must be supported and they will be added as soon as the documentation about them is available. Such features are of capital importance, for example in the ATM example presented before. We hope that future revisions of YAON will have upgrades in this direction. The notation is still under construction and will be changing during the ongoing project.

Acknowledgment: We would like to thank Rudi Hettler and Martin Wirsing for fruitful discussions about the subject and Hasangi Nandasena for spell checking and English corrections.