home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / case / ood.1 / ood / README.linux < prev   
Encoding:
Text File  |  1994-10-28  |  16.2 KB  |  370 lines

  1. This README contains 2 parts:
  2.  
  3.   - my own (buytaert@innet.be) annotations to the Linux version of OOD
  4.   - the original README that can be found with the sources. This README
  5.     contains some notes, warnings and plea's. If you can do something to
  6.     help professor Kim, please respond...
  7.  
  8. First, a disclaimer. I compiled the original sources, with some tweaking
  9. (nothing heavy), for Linux and compiled the objects to a statically linked
  10. executable, since it contains Motif calls for its GUI and few people have
  11. Motif installed ($). I hope it works for you, but if it doesn't, I can't
  12. do much about it. My Linux distribution is sort of 'own build' and is 
  13. about 14 months old... So, if you have problems, try to locate them in
  14. the source itself and report them to me, and I'll see what I can do...
  15.  
  16. Secondly, this software is very much work in progress !! It can crash 
  17. and isn't fully operational yet. But please do try it and provide feedback
  18. for professor Kim. In my e-mail conversiations with him, he has been 
  19. very responsive and helpfull. 
  20.  
  21. If you want to have a look at the sources, or try to port them to the
  22. Xlib only, you can find references to the source in the second part of 
  23. this README.
  24.  
  25. If you have any remarks... you can contact me at buytaert@innet.be.
  26.  
  27. Stef
  28.  
  29. P.S. Sorry for this 'quick and dirty' work. After my announcement to
  30. c.o.l.m, several people have asked me to upload it ASAP. So, all this
  31. is done in a few minutes, literally :-)
  32.  
  33. ---- Included README from OOD ----------------------------
  34.  
  35.        **************** Object Oriented Designer ***************
  36.  
  37.             Prof. Taegyun Kim [ktg@taejo.pufs.ac.kr]
  38.               Pusan University of Foreign Studies
  39.                   Pusan, Korea
  40.  
  41.                  Version : Version 1.3.1
  42.                  Revised : October 6 1994
  43.  
  44.        *********************************************************
  45.  
  46. Let me introduce myself. I am an assistant professor working at Department of
  47. Computer Engineering in Pusan University of Foreign Studies which resides in
  48. Pusan, Korea. My major interest is in software engineering especially in the
  49. area of object oriented methodologies. In teaching courses in systems analysis
  50. and software engineering I found a need for a good case tool that could be used
  51. by my students. Unfortunately, commercial case tools are too expensive for a
  52. university to purchase so I developed OOD. I have spent 17 man months building
  53. OOD. Because this is my first project combining object oriented methods, Motif,
  54. and C++, some of the source code may be a little clumsy. However, it does work
  55. well and it is still evolving.  This project is very hard but is also very
  56. interesting. Let's enjoy it together.
  57.  
  58. P.S.: I am anxious for your criticism or comment on this product. So, if it
  59. works on your system, please respond to me with even a one line (very short)
  60. message.  It will give me some encouragement. Moreover please inform me your
  61. status (student, professor etc.) if possible.
  62.  
  63. -Taegyun Kim
  64.  
  65.  
  66.  
  67.  
  68.              --------------- Contents --------------
  69.                      0. Summary
  70.                      1. System Environment
  71.                      2. Building OOD
  72.                      3. Initializing the Working Environment
  73.                      4. Functions
  74.                      5. Examples
  75.                      6. Reference Books
  76.                      7. Cautions
  77.                      8. FAQ
  78.             ----------------------------------------
  79.  
  80. 0. Summary
  81. ----------
  82.  
  83. The Object Modeling Technique [OMT] by James Rumbaugh et al. is a methodology
  84. for object oriented development with a graphical notation for representing
  85. object oriented concepts.  Object Oriented Designer [OOD] is a case tool for
  86. constructing the object diagrams defined in OMT. In order to use OOD it is
  87. necessary to understand OMT and its graphical notation. See reference (2).
  88.  
  89. Why "OMT"? OMT evolved from the Extended Entity Relationship [EER] model which I
  90. have studied since the mid 80's. There are a number of other approaches to
  91. expressing object oriented concepts but I believe that OMT is superior to most
  92. of these. Yourdon's Object Oriented Analysis [OOA] notation, for example, is
  93. another excellent approach to the problem but has some limits in functionality,
  94. particularly with respect to data modeling, that are present in OMT.
  95.  
  96. Currently, OOD has following primary functions:
  97.  
  98.     - general graphics editor (with limited functionality)
  99.  
  100.     - object diagram layout (with some additions w.r.t. original OMT notation)
  101.  
  102.     - C++ code skeleton generation (header file + source file)
  103.       The comments and codes for individual member functions can be documented,
  104.     or edited within OOD directly.
  105.       The C++ code generator supports inheritance. 
  106.  
  107. I have attempted to make OOD as user-friendly as possible. My students learn to
  108. use it in a day even without a manual. The user-friendliness of OOD is due to my
  109. own object oriented, user interface mechanisms.
  110.  
  111. Currently OOD generates a C++ code skeleton from an object diagram.  I have a
  112. short term final goal to develop an object oriented "environment" with
  113. flexibility and portability. I think that about additional 20 man months effort
  114. could lead me to the final goal. Because I am currently working very hard to
  115. enhance its functionality, I am not especially concerned with system portability
  116. issues at the moment so building OOD on your particular platform may require a
  117. little work on your part. Please inform me of any changes that you need to make
  118. to build OOD on your system.
  119.  
  120.  
  121. 1. System Environment
  122. ---------------------
  123. OOD was built on a SPARC station running OS4.1.x, X11-R5 and Motif-1.2 and
  124. C++-2.0. OOD has also been successfully built on a SPARC using gcc-2.5.8 and
  125. libg++-2.5.3. It should build on most UNIX systems with X11-R5, Motif-1.2 and a
  126. "reasonable" C++ compiler.
  127.  
  128. 2. Building OOD
  129. ---------------------
  130.     1) In ood directory edit the Makefile to reflect your environment
  131.     2) run "make depend"
  132.     3) run "make"
  133.  
  134. 3. Initialize Working Environment
  135. --------------------------------
  136. OOD requires the user to select a working repository in which to store various
  137. output files. If this is the first time you are running OOD:
  138.  
  139.     1) point at the top-menu,
  140.     2) select "Environment",
  141.     3) select "Setup",
  142.     4) define your working repository.
  143.  
  144. If a working repository has been previously defined, select it:
  145.  
  146.     1) point top-menu
  147.     2) select "change to"
  148.     3) set your working repository 
  149.  
  150. 4. Functions
  151. --------------
  152. Menu items:
  153.  
  154. Most of the menu choices are self-explanatory. Not all of the menu choices are
  155. operational at this time. The project menu selects which popup menu will appear
  156. when the pointer is in the background of the OOD window and button3 is
  157. pressed. Currently, only "main Popup" and [drawing] "primitives Popup" are
  158. operational. 
  159.  
  160. Mouse buttons:
  161.  
  162. The behavior of the mouse buttons is context sensitive. Generally:
  163.  
  164.     Button1 : draw, move, copy ... some object
  165.     Button2 : edit some text object
  166.     Button3 : popup a menu
  167.  
  168. Button3 can popup several different menus depending upon the current selection
  169. from the Project menu and the location of the cursor. For example, select "main
  170. Popup" from the Project menu, move the pointer to an empty region of the OOD
  171. window and click button3.The "Primary Popup" will appear. From this menu select
  172. "Class Template" to place a class template on the screen. Move the pointer onto
  173. the class template and notice the object becomes highlighted. While the pointer
  174. is on the class template, click button3 again. This time the "Class" popup
  175. appears which will allow you to select operations that can be performed on
  176. that object.
  177.  
  178. Now select "Primitives Popup" from the Project menu, move the pointer to an
  179. empty region of the OOD window and click button3 to popup the drawing 
  180. Primatives menu. Select "box", hold down button1 and drag the mouse to draw a 
  181. box. When you are satisfied with the size and shape of the box release button1.
  182. Move the pointer onto the box and notice that the box becomes highlighted.
  183. While the pointer is on the box click button3 to popup a menu that lists the 
  184. operations that you can perform on the box.
  185.  
  186. Button2 is used to edit text. If button2 is clicked in an empty region of
  187. the OOD window text may be added to the background at that point. To teminate
  188. text entry click button1 or press Esc key. Note that the text may be "re-edited"
  189. by placing the pointer over the text and clicking button2.
  190.  
  191. Experiment with the buttons and menus to explore the functions of OOD.
  192.  
  193. Note: class template is slightly different from original notation,
  194.       but if you generate C++ code skeleton, its meaning will be clear.
  195.  
  196. 5. Examples
  197. ------------
  198. An example is uploaded to Examples directory.
  199.  
  200. 6. Reference Books
  201. -------------------
  202.     1) "Object-Oriented Programming with C++ and OSF/Motif"
  203.             - Douglas A. Young
  204.     2) "Object-Oriented Modeling and Design"
  205.             - James Rumbaugh et al.
  206.  
  207. 7. Cautions
  208. ------------
  209. OOD will be released from this site intermittently. Please take note of the
  210. release date above.  Because OOD is evolving rapidly, some part of the code may
  211. not work correctly or cause segmentation faults. Let me know what you find. The 
  212. problem may already have been fixed by the time you find it. If not, I will 
  213. see if I can fix it.
  214.  
  215.     - check ChangeLog file out carefully
  216.     - please don't ask me about compiler complaints
  217.         I have no experience with other systems (OS,Compiler,..) except SUN,
  218.             I can't help you with such problems.
  219.     - please don't complain me about absence of the manual
  220.         I can't use English naturally, 
  221.             so it's very very very big burden for me to make the manual.
  222.         If you want it really, how about you making it (partially) and sharing it ?
  223.         For example, you can make a manual for a specific popup or pulldown,
  224.         and send it to me, then I revise it and collect it,
  225.         and distribute it. Could it be possible ? 
  226.         Are there any volunteers ?
  227.             How about you, Vitaly ?
  228.                        Axel ?
  229.                        Thierry ?
  230.                        Phil ?
  231.                        Ian ?
  232.                        .... [Sorry for menting your names :-)]
  233.             I don't think that this will happen. 
  234.             It may be a dream of my own.
  235.             Most of you seem to be very selfish with 
  236.                 even Not-For-Sale software. :-) :-) :-( :-(
  237.             I know that most of you are accustomed to use OOD already.
  238.             But think about some one who is just ready to use it,
  239.                 like you before. :-) :-)
  240.     - please don't complain me about not-yet-implemented features
  241.         For example, qualification, link attribute, even functional model ...
  242.             (qualification, link attribute is completed in 1.3.0)
  243.         I know most of them, 
  244.         OOD is still immature and evolving
  245.         I will make them ... but I am not sure when it will be completed.
  246.     - I want to know the differences with other CASE tools.
  247.       If you have some experiences with other CASE tools, 
  248.         would you let me know the comparisons ?
  249.     - Is it clear to you, the below request of my own ?
  250.         I could evaluate how many people go on with OOD by examples you upload,
  251.         there is only one person who upload example, so far.
  252.         (I deleted this example because it was made by old version)
  253.         Is really there only one person who is interested in or using OOD ?
  254.         If it is, then I may do very obsolete work. 
  255.         But it was very interesting for me.    
  256.     - When you send me a mail, please let me know your status
  257.       (for example, nation, student or professor, position in company ...)
  258.     - I will take some rest for a while. Duration may be about 4 months.
  259.         During this resting time, I will just concentrate on fixing bugs (if you
  260.         let me know the existence of runtime segmentation faults).
  261.         So although I will use same version name 1.3.1, 
  262.         it will may be different when it would be patched. 
  263.         Check date of this file always or take a look at PatchCountX.
  264.         In the beginning of the next year, I will be back.
  265.         It has been very interesting time to talk with some of you.
  266.         --- Bye everyone !!! ---
  267.  
  268. *******************************************************************************
  269. * If OOD works at your site, would you share some of documents made by OOD.   *
  270. * Some of examples (named *.OD) are needed to demonstrate the functionalities *
  271. * of OOD. Just put them at export.lcs.mit.edu : IP-address 198.112.44.100     *
  272. * (directory : /contrib/devel_tools/OOD/Examples).                  *
  273. *******************************************************************************
  274.  
  275. 8. FAQ
  276. -------
  277.  
  278. - A bigger problem is that classes cannot be edited if a link
  279.   to them is defined. This forces you to almost have the design
  280.   finished in the head before putting it down. What is the reason for
  281.   such a behaviour? Is there a workaround? Eliminate all links,
  282.   edit and recreate the links is quite annoying.
  283.  
  284. Ans) Allowing edition class template which is linked is too complicated to
  285. maintain the diagram. So I circumbent this problem by allowing edition class
  286. template linked when it is minimized. So you had better start to draw (or analyze,
  287. design) class template "minimized". For minimized class template, it is possible
  288. to modify, and after modification, it is reshaped as minimized. To trigger 
  289. modification (or displaying) for minimized class template, just push Button2 in
  290. the class template.
  291.  
  292. - What are the X resources that one can define? Fonts for classes,
  293.     attributes, methods, etc.
  294.  
  295. Ans) Fonts for these can not be customized using resource file Ood. If you dislike
  296. fonts previously specified, change font name explicitly in source file.
  297. The exact position to change font is line no. 567 in MyInit.C file.
  298. At the line :
  299. "-misc-fixed-medium-r-normal--15-*"  ---> change this font to what you want
  300. I think that variable size font may make some serious problems.
  301.  
  302. - How can I fix the bugs of this kind ?
  303.   "floating point exception" (division by zero in your graphical modules,
  304.   always while calculating "atan (x/y)", it can be avoided by replacing with
  305.   "y?atan(x/y):0")
  306.  
  307. Ans) These style of runtime segmentation faults was reported a little times. 
  308. I think that this problem is very related to <math.h> header file 
  309. and libm.a archived library.
  310. But what you patched is wrong. Think about the meaning of atan() function.
  311. It is the inverse function of tan(). So keep in mind the following mathematical
  312. properties.
  313.     tan(0) = 0 means atan(0) = 0
  314.     tan(pi/4) = 1 means atan(1) = pi/4
  315.     tan(pi/2) = infinite_number means atan(?/0) = atan(infinite_number) = pi/2
  316. So you have to fix it as follows,
  317.     y ? atan(x/y) : M_PI/2.
  318. It must be same for any case of divide by zero with x/y.
  319. If you have to make a fix for x/y, do not modify it simply as follow,
  320.     y ? x/y : 0.
  321. but modify as follow,
  322.     y ? x/y : VERY_VERY_LARGE_NUMBER_DEFINED_IN_YOUR_SYSTEM
  323. I don't want to insert this modification to source code, because I have no problem
  324. with it, and I like the original style.
  325. *** I made some fixes for these problem, but I am not sure because I can't test it.
  326. Would you let me know if these problems disappeared ?
  327.  
  328. - How can I customize the diagram size generated by OOD.
  329. Ans) It's possible to change diagram shape manually.
  330. Just modify *.ps file as you want like this,
  331. ----------- in the beginning part of *.ps file ----------
  332. %!PS-Adobe-1.0
  333. 1 {
  334. x-position y-position translate
  335. x-scale y-scale scale
  336. ...
  337. ---------------------------------------------------------
  338.  
  339. - About statically linked binary for OOD.
  340. Ans) I am not confident to distribute statically linked binary for OOD. I think
  341. that it may make legal troubles with Motif. Actually I don't know about it.
  342. But if you are sure that it makes no problem, 
  343. how about you (someone who can compile OOD with no trouble) uploading it ?
  344. Your help will be greatly appreciated by others who wish to use it without Motif.
  345. Making statically linked binary for OOD needs only "-Bstatic" option in LDFLAG.
  346.  
  347. - Make depend here can't find <osfcn.h>. What's that ?
  348. Ans) Somebody said that he used <unistd.h> other than <osfcn.h>.
  349. I included this file for the use of fork() function.
  350.  
  351. HELP ME PLEASE !
  352. I WANT TO MAKE REVERSE ENGINEERING FACILITY NEXT TIME.
  353. IF OOD CAN MAKE CLASS TEMPLATE FROM EXISTING C++ SOURCE FILE,
  354. WE CAN DO THE BETTER MAINTENANCE JOB.
  355. SO I NEED C++ SYNTAX FOR PARSING WITH YACC.
  356. IF YOU HAVE C++ SYNTAX (IT WILL BE WELCOME ALSO, ALTHOUGH IT IS COARSE
  357. SYNTAX), PLEASE SEND IT TO ME BY E-MAIL.
  358.  
  359. ONE MORE HELP PLEASE !
  360. I WANT TO MAKE A SEARCH FACILITY TO FIND CLASS WITH KEYWORDS TOO.
  361. BUT WHAT I REALLY WANT TO MAKE IS FACETED SEARCH FOR A CLASS.
  362. SO I WILL DO DEFINE SOME FACET ATTRIBUTES AND IT'S VALUES,
  363. FOR EXAMPLE,
  364. <Application Domain> <- one example of class facet
  365. Mathematics, Statistics, Data Processing ... <- values for this facet
  366. I WANT YOU TO LET ME KNOW WHAT YOU THINK ABOUT THESE ITEMS.
  367.  
  368. ANY HELP FROM YOU WILL BE GREATLY APPRECIATED.
  369. THANK YOU.
  370.