From lechner@cs.uml.edu Wed Oct 5 13:40:10 2005 Received: from saturn.cs.uml.edu (saturn.cs.uml.edu [129.63.8.2]) by earth.cs.uml.edu (8.11.6/8.11.6) with ESMTP id j95He9c28602; Wed, 5 Oct 2005 13:40:09 -0400 Received: from saturn.cs.uml.edu (localhost [127.0.0.1]) by saturn.cs.uml.edu (8.12.9/8.12.9) with ESMTP id j95He9JQ282737; Wed, 5 Oct 2005 13:40:09 -0400 (EDT) Received: (from lechner@localhost) by saturn.cs.uml.edu (8.12.9/8.12.9/Submit) id j95He9FG284577; Wed, 5 Oct 2005 13:40:09 -0400 (EDT) From: Bob Lechner Message-Id: <200510051740.j95He9FG284577@saturn.cs.uml.edu> Subject: Re: BDE and CHGEN - that's great Scott. Here's some info - To: sfrye@cs.uml.edu (Scott Frye) Date: Wed, 5 Oct 2005 13:40:09 -0400 (EDT) Cc: lechner@cs.uml.edu (Bob Lechner) In-Reply-To: from "Scott Frye" at Oct 05, 2005 10:18:00 AM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Keywords: X-UID: 545 Content-Length: 3866 Lines: 82 Status: RO RJLRef: $PH/COOL-GEN/sfryeChgenUses051005.txt That's great, Scott. I'm happy that chgen is useful outside the class. I suspect gencpp/genjava would be better for you though. We may work on making them more compatible with each other and bde this semester. (4 of 5 students favor Java:-( I convinced them that genxml was merely a format converter (which could simplify style flexibility but is a lesser priority than robustness). Do you mind if I share your input with OOAD/SWE students and faculty? I hope GEN/LCP/BDE can become an open-source GPLicensed project When bde works again I'll add PKingston's WorkProc interface for DBDE ($PH/02s592?). $CASE holds an earlier chgen-based SQL project in which jomedina participated. Its goal was a Join operation using pfkeys. The test case was sparse matrix multiplication. See http://www.cs.uml.edu/~lechner/bde2sql/hrosario/user_manual.html Interactive acquisition of SQL queries instead of pre-compiled ones would be harder. Dynamic interpretation probably requires an interpreter of TT-->TA lists, like LCP inteerprets ST==>TR. Schema viewdefs could be extended with column (TA-subset) selection for display and report formatting. Then SQL parse trees could be converted to this VV--->VA<---TA association and interpreted dynamically. The interpreter like LCP could be a chgen-based application for query and report generation only (not DB update, which risks losing data irreversibly thru projection and selection, without more sophisication). Except for the importance of selection of TA_columns for projection (and graphic documentation?), I wonder what graphics adds to your application? E.g., for STDs and ERDs, both have hand-sketching plus text declaration workarounds that are faster than bde. It could be more productive to declare STDs and ERDs as text, then do the inverse map (sch2bde, SM2bde) to generate the documentation. Bob Lechner > From sfrye@cs.uml.edu Wed Oct 5 10:18:00 2005 > Date: Wed, 5 Oct 2005 10:18:00 -0400 (EDT) > From: Scott Frye > To: Professor Lechner > Subject: BDE and CHGEN > Professor, > > I am interested in what steps the class is taking with BDE and chgen this > year. I take am taking Graphics II this semester and one of your > students (Jing) is in my class. He tells me that there has been some > discussions about making chgen and bde communicate with XML. > > In the last several months, I have become more interested in code > generation, specifically as it could apply to automating much of the > repetative coding that I do at my job. > > I wrote a graphic interface version of chgen (though not as extensive) > that allows me to select the fields and datatypes of a class, (with > buttons and listboxes), name a class and then generate the VB.NET code to > implements that class. The implementation is limited to Create, Retrieve, > Update, Delete (CRUD) functions. Last week I added a button that allows > me to generate the SQL scripts to create the table and stored procedures > in the MS-SQL database that corresponds to the class I generated in VB. > > Though the code is limited (and still a bit buggy), and not round trip, it > provides me with a tool that gives me code I can modify quickly to meet m > y needs. Earlier this week, I used the code to generate three classes for > a project that landed on my desk. The generated code was about 1000 lines > and would have taken me 2-3 days to write and debug by hand. > I generate it inside of 15 minutes and only spent an hour debugging it. > > Eventually, I would like to extend my solution to be more like BDE, but > this is a side project and my day job and school limit my time. > > Anyway, I thought you would be interested to know that I am applying the > techniques you taught me. > > -Scott Frye >