Xref: utzoo comp.specification:212 comp.protocols.iso:1377 comp.protocols.iso.dev-environ:438 comp.std.internat:730 alt.sources.d:1132 comp.graphics:14779 comp.lang.smalltalk:2389 comp.protocols.tcp-ip:13998 Path: utzoo!utgpu!cs.utexas.edu!wuarchive!udel!ee.udel.edu From: new@ee.udel.edu (Darren New) Newsgroups: comp.specification,comp.protocols.iso,comp.protocols.iso.dev-environ,comp.std.internat,alt.sources.d,comp.graphics,comp.lang.smalltalk,comp.lang.visual,comp.protocols.tcp-ip Subject: 1990 version of GROPE now available Keywords: protocol visualization graphics estelle formal description techniques animation Message-ID: <38273@nigel.ee.udel.edu> Date: 5 Dec 90 23:51:27 GMT Sender: usenet@ee.udel.edu Reply-To: grope@udel.edu Followup-To: comp.specification Organization: University of Delaware Lines: 317 Nntp-Posting-Host: snow-white.ee.udel.edu University of Delaware is pleased to announce the availability of GROPE - Graphical Representations of Protocols in Estelle GROPE (Graphical representation of protocols in Estelle) is a tool for graphically animating the dynamic execution of an Estelle formal specification. Developed in Smalltalk-80 and based on a SUN 3/110 workstation, GROPE is a window-based system that pictorially represents a protocol's architecture, animates transitions firing and the exchange of interactions between modules, graphically displays a module's extended finite state machine and the changing of states, and so on. It is expected that the GROPE tool will assist the original protocol specifier in the design and debugging process, promote faster understanding of a protocol by those using it for the first time, and facilitate the development of effective test scenarios. GROPE runs on Sun-3s, Sun-4s, Macintoshes, IBM PCs, and others (tm's). It requires ParcPlace Smalltalk-80(tm) Version 2.5 and works best with NIST's WISE interpreter. Full details of system requirements may be found in the Grope-Readme file. GROPE is available via EMail by anyone sending their email address to grope@udel.edu. If possible, please send your name and affiliation for the purpose of allowing me to support claims of usefullness. The actual code is available, as are Postscript versions of articles describing GROPE and its operation. Also available via email is a collection of ``real world'' Estelle specifications, many of which have been made to work with GROPE. Send mail to "Est-Specs@udel.edu" for more information. Contributions welcome! If you have any comments, questions, problems, or suggestions for improvement, please feel free to contact us at GROPE@UDEL.EDU or USA phone number (302) 451-8013 (Darren New) or (302) 451-1944 (Paul Amer, CIS dept). GROPE can also be obtained by those without email access: contact us. Our mailing address is Paul Amer c/o Department of Computer and Information Science 103 Smith Hall University of Delaware Newark, DE 19717 FAX: 302-451-8000 A complete description of GROPE is appeared in Information Software and Technology in March of 1990 under the title "Adding Graphics and Animation to Estelle". Also, an update on the status of GROPE was presented at FORTE'90 in Madrid, Spain and will appear in those proceedings. These papers are available in Postscript form to those who request it. A LaTeX version of these papers are also available for those without Postscript, but lacking issulstrations suffer in their presentation. Thank you for your time. -- Darren New (new@udel.edu) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- New features since FORTE~'89: GROPE can currently interface to the NIST WISE interpreter, which is also written in Smalltalk, and can display the results of WISE interpreting an arbitrary Estelle specification. At FORTE'89, GROPE was only capable of receiving information from WISE and outputting graphical information to the screen: there was no communication path established from GROPE back to WISE. This restricted GROPE's applicability. Now, GROPE includes a mechanism whereby GROPE can respond not only to WISE but to any program to which it is interfaced, again maintaining the flexibility of using GROPE with a variety of other tools. The ability of a user to select and examine the contents of queues, the ability to resolve non-determinism, and the ability to inspect the bodies of transitions are all available in GROPE at this time. It should be stressed that GROPE can interface to any Estelle interpreter implemented in any language. The University of Delaware is prepared to work with other tool builders to enhance their tools by adding GROPE as a graphical front-end. At FORTE'89, reducing the size of a GROPE window caused the contained information to be scaled to a smaller size. This reduction sometimes made complex FSMs illegible. A feature has been added to GROPE whereby windows can be ``zoomed'' in to display only local areas of an FSM. As transitions fire, these windows scroll to remain centered on the currently active state or transition. This allows many more state machines to be viewed simultaneously without any becoming illegible due to a small window size. Needless to say, most of the annoying bugs have been fixed. Future Research: We are investigating GROPE's ability to visually display a FSM at varying levels of detail, i.e., not showing all states and transitions at once. This would allow complex machines to be studied incrementally, aiding the visualization process. It is expected that this feature will also allow improved first-guess graphics of a finite state machine and may even lead to automatic modularization of poorly written specifications. In addition, investigation of a graphical Estelle editor based on GROPE is in progress, as is investigation of an automatically-generated test case visualizer. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Availability: GROPE is available for Smalltalk-80 VI2.5 (ParcPlace ObjectWorks) and Smalltalk-80 VI2.2. This file contains the code for VI2.5. The Grope-Wise-Driver (which allows WISE to call GROPE during execution) also is available for VI2.5. It is untested for the latest version of WISE under VI2.2. WISE is available directly from National Institute of Standards and Technology (NIST, formerly NBS), without whose help GROPE would never have come to be. >From: Rachid Sijelmassi >Organization: National Institute of Standards and Technology (NIST) >Sub-Organization: National Computer Systems Laboratory > >The latest version of WISE is available by anonymous FTP >from osi.ncsl.nist.gov. The code for WISE is part of >the OSIkit package, so you can take all or part of it. >Once you are on osi.ncsl.nist.gov, go to pub/osikit. >You will find the Estelle-to-C compiler (estpc.tar), >the ASN1 tool (asnfvt.tar), Wizard (estwizard.tar), >WISE (estwise.tar) and the manuals (mansrc.tar). Please note that to translate from Estelle to Smalltalk, estwizard.tar will be needed in addition to estwise.tar. The Smalltalk-80 interpreter is available from ParcPlace Systems at a cost of several hundred dollars (depending on the machine) for educational institutions. ParcPlace Systems 1550 Plymouth Street Mountain View California 94043 Info@ParcPlace.com Info@ParcPlace.uucp Please read the comments in the Grope-Display classes for documentation of the menus available within GROPE. Please note that Smalltalk-80 is a liscenced product and a registered trademark of ParcPlace Systems. GROPE is copyright 1988 1989 1990 by the University of Delaware (All Rights Reserved) but may be freely redistributed in its original form and without modification, addition, or deletion. GROPE may NOT be redistributed for a fee except media costs, small handling charges, and normal downloading fees. GROPE may be posted to private or commercial bulletin-boards within these restrictions. Please contact us before charging fees for commercial support of GROPE. Please contact us if you make any improvements or bug-fixes to GROPE in order that we may incorporate your changes (with thanks!) into our "official" version. GROPE is supported, in part, by the US Army CECOM Center of Software Engineering and the Office of Naval Research (N14-83-K-0320, N14-88-K-0253). WISE is in the public domain (as far as I know) as is most material developed by NIST. I would like to thank the people at NIST who encouraged me and made valuable suggestions about the structuring of GROPE and who provided the WISE interpreter that makes GROPE worthwhile in the first place. I would also like to thank Dr. Paul Amer who supplied the original ideas for GROPE, as well as the funding. ------------------------------------------------------ Note that you MUST have Smalltalk-80 Virtual Image version 2.5 to run this version of GROPE. Please contact GROPE@UDEL.EDU if you have an older version (2.2, 2.3, or 2.4). To install GROPE into your Smalltalk-80 image, follow these steps: 1) If you have a postscript printer and you wish GROPE to be able to print, file in the printer support stuff. 2) You MUST file in the FStream.st file from the Smalltalk utils directory in order to run WISE under VI2.5. 3) FileIn the wise.st code to load WISE. Note that the wiseForm* must be in the current directory (not the same as the Wise directory) before trying to FileIn wise. Note that two methods will fail to compile and that many warnings will be generated. On the failing methods, just select "proceed" to ignore the erroneous methods. 4) FileIn the wise-patches-for-25.st file, which will fix the incorrect methods, will eliminate the warning messages, and will fix a couple of bugs in the WISE routines. Exactly what changes are made is documented at the beginning of that file. 5) FileIn the grope code. During the GropeView class>initialize code, the Grope-Queue-Forms.st file will be sought. If you get no queues displaying, reinitialize GropeView and make sure that the file is found. Also, the files Grope-Driver-Form.st and Grope-Background-Form.st will be read. These should probably be renamed before filing in GROPE unless you enjoy gaudy backgrounds. These can be deleted safely and are used primarily when the UDel GROPE team demos GROPE to others. The Grope-ABP* files include the forms for the GROPE demo. If you select not to install the standard GROPE screen menu (a BinaryChoice will appear during filein) you may need to press break (Ctrl-C) and close the notifier to regain control. 6) To actually interpret an Estelle spec with wise, you must do the following: 6a) Edit the Estelle spec (say "plover.e"). End the name with .e To avoid confusion, name the specification body "plover". 6b) Due to restrictions of the current Grope-Wise driver, all transitions must be expanded and named with the "name :" clause. That is, each transition body must correspond to exactly one arc in the FSM drawing and each must have a unique (within the body) name. This is not a restriction of WISE, but only of the current version of GROPE, and will eventually be lifted. You need to name transitions even if the only state is the default state; however, if there are no named states then you will see no FSM pictures. 6c) Copy the Estelle spec to a Smalltalk name: cp plover.e plover.st 6d) Start the wizard program: wizard plover.st 6e) type "escape e" to translate to smalltalk. If you get an error message instead of smalltalk on the screen, type "escape e control-x control-w escape s control-x control-c" and look in the plover.st file for the string "===" which will mark error messages. If you got "Syntax error on line XX" then just "control-x control-c escape s" to exit wizard and fix the offending lines. If you got smalltalk code, type "control-x control-w escape s control-x control-c" to save the smalltalk code. P.S., this takes several minutes. 6f) Start ST80, choose "wise" from the screen controller, and choose "add a spec" from the upper-left pane. Then, add a site, select the spec and the site, and start the selected spec. Fiddle around. 7) To interpret it with GROPE, you must file in Grope-Wise-Driver.st after loading WISE and GROPE (in that order) but before loading specifications with WISE. Then simply choose "build grope" from the specification menu before starting the specification under wise. Note that WISE has some serious user-interface problems, primarily in the scheduling of views. GROPE also needs some work, but not as much. Both of these are prototypes, so don't expect to use them in a "production" environment. Known bugs in Grope-Display: 1) Sometimes when multiple Processes update at the same time (multiple transitions firing at once, multiple outputs, etc.) reverse-video spots will be left on the screen. This is new since VI2.5 and I suspect that something has become non-atomic. If you find out what is causing this, please let me know. 2) Doing "restore display" while transitions are in the middle of firing can cause updates to lock up the scheduler. This is due to the way that refreshing is handled; basically, I busy-loop waiting for updates to complete. I'll work on this. Known bugs in Grope-Wise-Driver: 1) You need names on the transitions even if you have no states and thus can't display the FSM. Since I plan to eventually not require expansion of the transitions, I don't plan to fix this one soon. Known bugs in Wise: 1) Due to the way WISE views are added to ScheduledControllers, sometimes moving the pointer from one view to another and trying to use the menu does not work. To work around: move to the background, bring up the screen menu (to unselect all views) and then move off that menu, release the mouse button, and move to the WISE view you wish to work on. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- File in the Grope-Display.st class. (Grope-other stuff will be drivers for Grope) It will add the category Grope-Display. It will also add several graphical operations to the Path, Point, Curve, Form, DisplayObject classes. It will add some functionalty to ScreenController and BlockContext as well; the ScreenController>>openGrope will display an example of AlternatingBit protocol. Use "Smalltalk browseAllCallsOn: #GropeDisplay" to see all changes outside of the Grope-Display category. The GropeSpec class has several examples. The GropeView class has several parameters which can be modified by the user; some are constants and some are initialized class variables. GropeView version will return a string describing the current version, currently 0.95. To run a demo of GROPE, send the current screen controller the message openGrope (like by putting it in the screen menu or by typing that method into a workspace). Open out the window, which will show the architecture of the AlternatingBitExample. Click anywhere in the window away from other things, which should make the border turn gray. Select "load" off the yellow menu, and AlternatingBitExample.gr should be loaded (if in the current directory). This should cause the window to redraw. Make sure your transcript is open, and then use "test" from the yellow menu while the specification body is selected to "simulate" a driver (with informative messages going to the transcript). Due to Smalltalk's lack of clipping, GROPE windows which are overlapped by other windows will not be updated. My preference is to open the transcript at the bottom, the specification body on the left side, AlternatingBit[1] on the top right (showing FSM), AlternatingBit[2] on the bottom right (showing FSM). Leave the AlternatingBit modules in the specification showing the architectures (for the queues). Note that the rectangle that would be overlapped were the label of a window to be extended fully to the right is considered part of the window; thus, a GROPE window overlapping this area will not be updated. To exit this demo, hold all three mouse buttons down until you get an "ABORTED" message in the Transcript (appologies to thos with one- and two-button mice). To pause, move the cursor to the upper-left corner. Please see the class comments for GropeDBody, GropeDSpecBody, GropeDLink, GropeDIP, GropeDState and GropeDTransition for explainations of the menus. ------------------------------------------------------ -- --- Darren New --- Grad Student --- CIS --- Univ. of Delaware --- ----- Network Protocols, Graphics, Programming Languages, Formal Description Techniques (esp. Estelle), Coffee, Amigas ----- =+=+=+ Let GROPE be an N-tuple where ... +=+=+= Brought to you by Super Global Mega Corp .com