bde2fox and bde2gencpp refactoring project topics (My thoughts in response to Keith's Question 2 below) RJLRef: $PH/06f522/bde2fox_gencpp.txt I. Modern IDE tools. II. Tool vendors at Embedded Systems Conf/Boston III. Reverse-engineered bde and pr_util source code: --------------------------------- > From kbagley@us.ibm.com Wed Sep 27 22:38:11 2006 > To: Bob Lechner > Subject: Two questions.... > > Hi Prof Lechner, > Two quick questions: > [cut] > > 2. I'm wondering if it's possible to take some class time to survey and > review some of the current MDD and MDA tools being used in industry and > the approaches taken? If you want, I can put some skin in the game by > discussing/showing/whatever some of Rational's solutions (like our > Eclipse-based MDD products, and to a lesser extent our Executable UML > tool), but I have no visibility into some of the other thought leaders > like Kennedy-Carter or Telelogic -- the discussion you began this week on > action language vs. 3gl code in the model is an interesting one and I > think a discussion or review on what the industry leaders are doing in > this regard would be a fruitful one. > > Thoughts? > > Keith Bagley > Senior Solutions IT Specialist > IBM Software Group - Rational Solutions > IBM Certified: Rational OOAD Specialist > kbagley@us.ibm.com > phone: 603.216.3841 > fax: 845.264.6036 ===================================================== I. Modern IDE tools. --------------------- I would be glad to entertain reviews of such products, especially by students or others from these vendors. Perhaps Keith Bagley would like to give one for Rational/Eclipse? Balcer gave a seminar at UML the year we used his (commercial DP oriented) book: [Mellor & Balcer:: Executable UML: A Foundation for MDA, A-W 2002] It came with their xMDA tool on CD-ROM (without State Models, I believe). I have Kennedy-Carter/UK's text with their tool iUMLite on CD-ROM: [Raistrick et al: MDA with Executable UML, CambridgeUPress 2004] We may use that text in 91.523. Peter Fontana of Pathfinder Solutions (www.pathfinderMDA.com) announced that PathMATE v5 is integrated with Rational Deveeoper/Eclipse: E.g., www.pathfinderMDA.com/news_article_v2.php?ID=1: "Foxboro, MA, January 7, 2005 : Pathfinder Solutions announces PathMATE. version 5 for Model Driven Architecture on Eclipse." ... ====================================================== II. Tool vendors at Embedded Systems Conf/Boston ---------------------------------------------- Wed. I visited the Embedded Systems Conf/Expo in Boston. Telelogic was there - it absorbed iLogix which developed Rhapsody (including UML and David Harel's StateMate). Telelogic is now in Andover, I believe. Telelogic's Rhapsody is now offered free to universities. Using it for bde might be interesting. So was IBM/Rational the principal mover behind UML and Eclipse. So was Mentor Graphics, which absorbed Bridgeport that had merged with with Steve Mellor's Project Technology (Object Life Cycles) firm. I would like to invite them to present their insights to the class. However I believe more knowledge would accrue if we used FOX and Eclipse as a framework for bde (see III below). But this is AFTER extensive refactoring of bde/src as RAlmonte and I both recommend in III below. ======================================================== III. Reverse-engineered bde and pr_util source code: -------------------------------------------------- Last fall two 05f523 students both reverse-engineered bde/{src,pr-util} data structures into UML class and other diagrams with different tools at $PH/COOL-BDE or $PH/05f523: (Diagrams were very large - with lots of methods listed.) They were working on the bde2fox project. For an intro to FOX, see $PH/05f523/jtan/bde2fox/src/bdegui/README; FOX was down-loaded there. (1) Robert Almonte at $PH/05f523/ralmonte/ -> $CASE/05f523/ralmonte. (see $PH/05f523/ralmonte/bde_model_ra.051211.txt) using Enterprise Architect. (2) Jing Tan at $PH/COOL-BDE/BDE2MagicDraw_jt/magicdrawbde/*.jpg i(See $PH/06f522/05s523/05s523bde2foxProject/bdeRevEngDiagrams_jt.051118.txt) Results were varied but interesting. E.g., embedded list structure links were not properly understood as UML class associations - their parent and child ends were reversed. R Almonte also proposed a platform-independent GUI implementation using the FOX libraries. Layering these on top of bde/src is diagrammed in $PH/05f523/ralmonte/final_proj/docs/images/*.jpg (including a sequence diagram of bde init.cc and fileio.cc calls reverse-engineered by Enterprise Architect 5.0 and two Design Patterns.) See also his 27 .JPG files in $PH/05f523/ralmonte/documents/{diagrams,img}, produced by Enerprise Architect from bde source code and his own Design-Pattern-based diagrams. $PH/05f523/ralmonte/reference/mvp.pdf is a 1996 IBM/Taligent paper called MVP: Model-View-Presenter which generalizes MVC of Smalltalk (see http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html). Bde/src refactoring should come first, but layering bde over the FOX PI GUI (over both X11 AND MSWindows) could come after moving bde to the Eclipse IDE. Moving bde/pr_util from chgen to gencpp would simplify this migration: graphobject subclasses could then be added to bde's data model (.sch) and their access methods could be auto-generated to automate some refactoring.