ebon-discuss Mailing List for The Extended BON Toolsuite
Status: Alpha
Brought to you by:
kiniry
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Joseph R. K. <ki...@ac...> - 2003-07-13 13:49:56
|
Hi all, Quality BON support for Eiffel, as well as other languages and systems, is=20 a subject near and dear to my heart. I have been working on-and-off for some time on the EBON tool suite. EBON=20 is currently a lexer, parser, and intermediate representation of an=20 extended version of BON. For more information, please see=20 <http://sourceforge.net/projects/ebon/> for more information. I am=20 attempting to have a first release finished in time for the International=20 Eiffel Programming Contest deadline this Halloween. The real issue with static vs. dynamic descriptions of systems is that, in=20 general, static views have a well-understood semantics and can be=20 automatically extracted and kept in sync with a system's source code, as=20 mentioned by Rapha=EBl in another email. On the other hand, for nearly all specification languages, dynamic diagrams = do *not* have a well-understood semantics, and thus their interpretation=20 (informally by the people using the model, i.e., programmers, designers,=20 and managers, as well as formally by the systems manipulating the model,=20 i.e., compilers, CASE tools, and theorem proving environments) are=20 ambiguous, are not automatically extractable, nor can be kept in sync with=20 a system. The standard example (and easy target) for these criticisms is UML. UML is = now on its fourth major revision, is nearing (over?) a 1000 pages of=20 "specification", 100,000s of pages of technical texts, and has legions of=20 expensive consultants and tools to help explain what each little box or=20 arrow means. BON is one of those rare specification languages that *does* have a=20 well-understood, though incompletely specified, dynamic semantics. I=20 suspect it is because there are still some ambiguities in BON's dynamic=20 semantics, and because supporting a dynamic view of a system is simply=20 *hard* to do, that EiffelStudio does not support BON dynamic diagrams as of = yet. My plan is to fully support them in EBON and I have been working on a = formal semantic of EBON for some time to achieve this goal. BON's dynamic diagrams let one describe the important scenarios of your=20 system (user-level use-cases, internal and external testing scenarios,=20 important sequences of events for particular functionality, etc.). They=20 also provide a refinement structure for client interactions via labeled=20 actions and call traces. Finally, they provide basic object structuring=20 notions such as object groups and stacks. Unfortunately, until a quality tool supports the full BON notation (both=20 textual, like the EBON package, and graphical, like EiffelStudio), and=20 until such time that more quality examples of dynamic diagram use are=20 available, the utility of dynamic diagrams is extremely limited. I highly suggest reading Walden and Nerson's "Seamless Object-Oriented=20 Software Architecture", available at <http://www.bon-method.com/>, for more = information. Best, Joe Kiniry --- Joseph R. Kiniry ID 78860581 ICQ 4344804 SOS Group, University of Nijmegen http://www.cs.kun.nl/~kiniry/ KindSoftware, LLC http://www.kindsoftware.com/ Board Chair: NICE http://www.eiffel-nice.org/ > Message: 3 > Date: Sat, 12 Jul 2003 11:09:47 -0400 > From: "Mark Bruscke" <br...@ab...> > Subject: BON diagrams - Static vs Dynamic > > Hi Colin (and anyone else who might comment), > Your remark: > >> > This is true, but the dynamic diagrams are the only useful ones. > > struck me as illuminating. I wonder if you would flesh-out my > understanding of your point of view. > > From the applications I've worked on, I would have written ". . . the > STATIC diagrams . . . ". I've always worked on applications where the > data in it's static state has been the dominant problem. If you could > figure out the right data structures, writing the algorithms to perform > the computations wasn't such a hard problem to solve and understand. > > Nevertheless, I recognize that my experience is not broadly > representative of the universe of application domains. I think it's > probably an accurate perception of most business applications, but there > must be many other domains where a static view is less useful than a > dynamic view. > > It seems to me that this debate is roughly analogous to a debate = among > mechanical draftsmen. The standard is that you draw a top and a side and > a face view of a 3-dimensional object (to be manufactured). Now, if the > object is a regular cube; then only one such view will suffice. If it's > an irregular cube (e.g., a shipping carton), then 2 views will suffice. > But, if it is an irregular shaped object (e.g., a pylon for mounting an > engine on a wing), then more than 3 views is probably required. Draftsmen > might reasonably disagree as to how many views need to be drawn of an > object with many irregular faces. > > If this analogy is appropriate, then the project manager needs to > size-up the application domain as being best represented by a static, > dynamic, or some other view. He might correctly judge that the static > view is not only dominant, this single view will suffice. In that case, > BON's limitation is entirely - or at least largely - acceptable. If a > small part of the application domain is characterized by interesting > dynamic behavior, then that small part might be diagrammed in, e.g., > Visio. That's a tragedy, albeit a small one, because that Visio diagram > has no hard link to the source (and, consequently, is vulnerable to being > not maintained). > > Conversely, if the dynamic view is dominant, then BON's limitation is > truely unfortunate. Most of one's diagrams will have to be drawn in = Visio > or some CASE tool with little or no integration with the Eiffel source. > > If most of the "work" (i.e., the application domains that present > themselves as candidate application development projects) are > characterized by primarily interesting static complexity, then BON's > class diagrams are the most important functionality to be provided. > Perhaps dynamic diagrams deserve to be the second functionality to be > provided. > > However, if the work is about equally divided between application > domains with interesting static and dynamic complexity, then BON's class > diagrams solve only half the problem. > > Am I on the right track here? Any sense whether the "work" is > predominatly characterized by static complexity? > > Regards, > Mark > >> >> ----- Original Message ----- >> From: "Colin Paul Adams" <co...@co...> >> To: <ise...@ya...> >> Sent: Wednesday, July 09, 2003 9:58 PM >> Subject: Re: [ise_users] BON Diagrams >> >> >> > >>>>> "Raphael" =3D=3D Rapha=EBl Simon [ES] <Rapha> writes: >> > >> > Raphael> EiffelStudio only supports static diagrams. One of the >> > Raphael> reasons why EiffelStudio does not support dynamic >> > Raphael> diagrams is the lack of reverse engineering support that >> > Raphael> they would imply. So you could have diagrams describing >> > Raphael> certain behaviors and have the code do something >> > Raphael> different with no ways for the tool to check for these >> > Raphael> discrepancies. With static diagrams you are guaranteed >> > Raphael> that the diagrams and the code are always in sync. >> > >> > This is true, but the dynamic diagrams are the only useful ones. >> > -- >> > Colin Paul Adams >> > Preston Lancashire > ________________________________________________________________________ > ________________________________________________________________________ > > Message: 7 > Date: 12 Jul 2003 21:43:31 +0100 > From: Colin Paul Adams <co...@co...> > Subject: Re: BON diagrams - Static vs Dynamic > >>>>>> "Mark" =3D=3D Mark Bruscke <br...@ab...> writes: > > Mark> Hi Colin (and anyone else who might comment), Your remark: > > >> > This is true, but the dynamic diagrams are the only useful > >> ones. > > Mark> struck me as illuminating. I wonder if you would flesh-out > Mark> my understanding of your point of view. > > Mark> Am I on the right track here? Any sense whether the > Mark> "work" is predominatly characterized by static complexity? > > I just find it very easy to visualise inheritance hierarchies in my > head, so I find the static diagrams of little use (at least, more > trouble to untangle than is worth the effort). > > On the other hand, I find it difficult to work out how different > clients are collaborating without a collaboration diagram (or > something similar). > > Note that it's not a deficiency in BON - BON has these diagrams - just > EiffelStudio doesn't implement them. > -- > Colin Paul Adams > Preston Lancashire > > ________________________________________________________________________ > ________________________________________________________________________ > > Message: 9 > Date: Sun, 13 Jul 2003 14:04:53 +1000 > From: Peter Horan <pe...@de...> > Subject: Re: BON diagrams - Static vs Dynamic > > Colin Paul Adams wrote: >> >> >>>>> "Mark" =3D=3D Mark Bruscke <br...@ab...> writes: >> >> Mark> Hi Colin (and anyone else who might comment), Your remark: >> >> >> > This is true, but the dynamic diagrams are the only useful >> >> ones. >> >> Mark> struck me as illuminating. I wonder if you would flesh-out >> Mark> my understanding of your point of view. >> >> Mark> Am I on the right track here? Any sense whether the >> Mark> "work" is predominatly characterized by static complexity? >> >> I just find it very easy to visualise inheritance hierarchies in my >> head, so I find the static diagrams of little use (at least, more >> trouble to untangle than is worth the effort). >> >> On the other hand, I find it difficult to work out how different >> clients are collaborating without a collaboration diagram (or >> something similar). > > I find the static view good to assess (in)consistencies in the code. > > I would like a dynamic view which allowed one to see objects - that is a > graphical mapping of the debug window in the IDE. In the IDE, it is > shown as a tree. I would like to look at objects as nodes and references > as arcs in a graph. I would like to pick an object and be able to > specify how many links to traverse from it. I would also like to be able > to show selected parameter values in the nodes. Effectively, this is a > collaboration diagram created from the runtime snapshot. > > A lot of my design thinking starts from this object view which is mapped > back to the static class view in order to create the code. > -- > Peter Horan School of Information Technology > pe...@de... Deakin University > +61-3-5227 1234 (Voice) Geelong, Victoria 3217, AUSTRALIA > +61-3-5227 2028 (FAX) http://www.cm.deakin.edu.au/~peter > > -- The Eiffel guarantee: From specification to implementation > -- (http://www.cetus-links.org/oo_eiffel.html) |
From: Joseph R. K. <ki...@ac...> - 2002-01-04 05:58:54
|
Dear EBON-interested parties, The following is a (partial) cut-and-paste of recent project news items available at http://sourceforge.net/projects/ebon/ If there any questions or comments, drop me a line. Best, Joe -- Joseph R. Kiniry Department of Computer Science California Institute of Technology KindSoftware, LLC --- 31 Dec 2001 Now that I'm done with my dissertation and job applications, the EBON project is restarting. To re-introduce myself to the current state of the scanner and parser, I'm using Gobo's getest to write a large number of unit tests for both. This has helped me discover a half dozen subtle bugs in the scanner specification after writing only 14 tests for a total of 307 assertions. --- 3 Jan 2001 We have release our first EBON package. It contains a full scanner (lexer) for the BON specification language, complete with over 400 unit test assertions. Also included is our partially complete BON parser which is about 80% complete. --- |
From: Joseph R. K. <ki...@ac...> - 2001-09-03 06:08:47
|
This message follows up my earlier issues with client relations. > The BON grammar specifies indirections in client relations with the > following rules: ...snip... > But the textual examples from the Wald=E9n/Nerson text seemingly violate > this grammar (from Figure B.8, pg. 371): > > NURSE client {patients: LIST[..., PATIENT_ID]} PATIENT > > Note that PATIENT_ID is a Class_name without any parameterized > Indirection_list. I suggest that the grammar is erroneous, not the > examples. At first blush, I take the meaning of the specification of the > classname in the parameter as a generic type-narrowing, kind of a type > currying. Of course, this leaves open the possible semantics for the > ellipses ("...") construct... > > I haven't yet re-read the appropriate parts of the text to understand the > intent of such constructs. Therefore, I'm not going to suggest a revised > grammar at this time. I've re-read Section 4.2 (pgs 69-86) again. It seems that I was wrong;=20 both the example in the test suite _and_ the grammar are incorrect. As seen in Figure 4.14, our test example 8 from Appendix B (Figure B.8) is actually an erroneous textual specification: the patients and duties features are actually of type TABLE[], not LIST[]. This explains the second type parameter, given that LIST only has a single parameter. Given the type parameter of a generic type can indeed be a generic type itself, I've modified the grammar rule Indirection_element from Indirection_element: ELLIPSES_TOKEN | Named_indirection ; to Indirection_element: ELLIPSES_TOKEN | Generic_indirection ; This slightly widens the potential type parameter to include Formal_generic_name as well, which are simply identifiers. While this solves the problems with the EBNF grammar and examples, it=20 doesn't help with the resulting problems with the LALR(1) grammar. Thus,=20 I'm currently wrestling with a shift/reduce conflict inherent in the=20 specification of Client_entities_expression. Right now it comes down to=20 the fact that a Formal_generic_name is indistinguishable from a Class_name. More details when they become available... Joe -- Joseph R. Kiniry http://www.cs.caltech.edu/~kiniry/ California Institute of Technology ID 78860581 ICQ 4344804 |
From: Joseph R. K. <ki...@ac...> - 2001-08-29 05:48:15
|
The BON grammar specifies indirections in client relations with the = following rules: Client_relation =3D Client client [ Client_entities ] [ Type_mark ] Supplier [ Semantic_label ] Client_entities =3D "{" Client_entity_expression "}" Client_entity_expression =3D Client_entity_list | Multiplicity Client_entity_list =3D { Client_entity "," ...} + Client_entity =3D Feature_name | Supplier_indirection | Parent_indirection Supplier_indirection =3D [ Indirection_feature_part ":" ] Generic_indirection Indirection_feature_part =3D Feature_name | Indirection_feature_list Indirection_feature_list =3D "(" Feature_name_list ")" Parent_indirection =3D "->" Generic_indirection Generic_indirection =3D Formal_generic_name | Named_indirection Named_indirection =3D Class_name "[" Indirection_list "]" Indirection_list =3D { Indirection_element "," ...} + Indirection_element =3D "..." | Named_indirection Type_mark =3D ":" | ":{" | Shared_mark Shared_mark =3D ":" "(" Multiplicity ")" But the textual examples from the Wald=E9n/Nerson text seemingly violate = this = grammar (from Figure B.8, pg. 371): NURSE client {patients: LIST[..., PATIENT_ID]} PATIENT Note that PATIENT_ID is a Class_name without any parameterized = Indirection_list. I suggest that the grammar is erroneous, not the = examples. At first blush, I take the meaning of the specification of the = classname in the parameter as a generic type-narrowing, kind of a type = currying. Of course, this leaves open the possible semantics for the = ellipses ("...") construct... I haven't yet re-read the appropriate parts of the text to understand the = intent of such constructs. Therefore, I'm not going to suggest a revised = grammar at this time. If anyone has input on this I'd appreciate hearing it. Note that, since we are extended the language anyway, if the extended BON = grammar covers (algebraically) the existing (possibly corrected) BON = grammar and doesn't violate the latter's semantics, then we can add = constructs like the above type currying if we choose. Joe -- Joseph R. Kiniry http://www.cs.caltech.edu/~kiniry/ California Institute of Technology ID 78860581 ICQ 4344804 |
From: Joseph R. K. <ki...@ac...> - 2001-08-29 05:47:53
|
The BON grammar specifies that, generally, (optional) indexing blocks = contain arbitrary property/value pairs called Index_lists: [ indexing Index_list ] Index_list =3D { Index_clause ";" ...} + Index_clause =3D Identifier ":" Index_term_list Index_term_list =3D { Index_string "," ...} + Index_string =3D Manifest_string Keywords are reserved words (pg. 361). Therefore, properties in index = clauses, and more generally, identifiers, should not be keywords. Contrary to this rule set, several example specifications from the = Wald=E9n/Nerson text violates this rule (see e.g. Figure B.1 on pg. 365). Therefore we have corrected the examples (and our testsuite) rather than = making more serious changes to the grammar and lexer. You'll see all = indexing properties called "cluster" renamed to "in_cluster". Joe -- Joseph R. Kiniry http://www.cs.caltech.edu/~kiniry/ California Institute of Technology ID 78860581 ICQ 4344804 |
From: Tom M. <yo...@st...> - 2001-08-24 17:33:54
|
I'll try to get some work done this weekend specifying GUI classes and get in as test cases. tm |
From: Joseph R. K. <ki...@ac...> - 2001-08-24 06:57:17
|
First, welcome to the EBON-discuss mailing list. Thanks for joining us. Second, Tom and Kim, you probably should signed up on the list(s) to keep track of what is going on around here. Goto http://sourceforge.net/mail/?group_id=33004 for more information. Finally, in brief, as posted on the project page: -- Date: 2001-08-23 23:41 Summary:EBON scanner is complete. I've rewritten the scanner to use the tokens generated by the grammar specification. The new scanner passes all test cases from the text as well as my two system specifications (Monitoring and Connector). Now I'm moving on to the parser to restructure the grammar rules for the new scanner. -- BON is a large language. Just getting the rules typed in (first-pass) from the text took me several nights. Currently the grammar has just over 300 rules. I expect that debugging the grammar will take a few nights. Checking for conformance and tuning will be another few nights. My current test suites (ebon/docs/testsuite and ebon/docs/examples) account for nearly 1800 lines of textual BON. While this sounds like a lot, it doesn't provide full coverage by any means. My plan, of course, is to specify the EBON toolsuite in EBON, thus getting better coverage and eating our own. After the parser is done I'll write the specifications for the scanner and parser. Then I will write the specification for the meta-object graph data-structures prior to starting a implementation. See the tasks on the SF.net pages for more information. If any of you (a) have an interest in learning textual BON better, (b) wish to contribute test EBON specifications, and/or (c) have existing BON specifications that can be release to the public, please consider contributing to help us get better coverage of the language. Finally, note that I'm fully using all the features of SourceForge, unlike the vast majority of the projects hosted there. In particular, tasks are documented and tracked, I am watching the tracker and forums for feedback, bug reports, etc., developers can support patches via the website, etc. If I'm not using a piece of SourceForge functionality I'll turn it off so it doesn't get in our way. Best, Joe Kiniry -- Joseph R. Kiniry http://www.cs.caltech.edu/~kiniry/ California Institute of Technology ID 78860581 ICQ 4344804 |