<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Wed, 30 May 2012 04:17:15 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>News</title><subtitle>News</subtitle><id>http://www.miuml.org/news/</id><link rel="alternate" type="application/xhtml+xml" href="http://www.miuml.org/news/"/><link rel="self" type="application/atom+xml" href="http://www.miuml.org/news/atom.xml"/><updated>2012-04-13T19:45:49Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.11.81 (http://www.squarespace.com/)">Squarespace</generator><entry><title>Cmd line interpreter</title><id>http://www.miuml.org/news/2012/4/13/cmd-line-interpreter.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/4/13/cmd-line-interpreter.html"/><author><name>Leon Starr</name></author><published>2012-04-13T19:20:29Z</published><updated>2012-04-13T19:20:29Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>To ease testing, and make the overall interface easier to play with, I am building an interactive command interpreter in Python 3.2. &nbsp;The user will be able to type in a simple command (or load a file) using a vocabulary like: &lt;metamodel class&gt; [&lt;op&gt; [&lt;prop&gt;]],... &lt;scope&gt; with some helpful scoping commands so that you don't have to keep re-entering the same domain name. &nbsp;An example session might look like this:</p>
<p>* scope domain 'Banking'</p>
<p>* id add attr 'Branch name' class</p>
<p>(the second of which will invoke the UI_add_attr_to_id(...) db function)</p>
<p>And, of course, a simple help system.</p>
<p>Should have it working by the end of the weekend if all goes well.</p>]]></content></entry><entry><title>2.0 API Code Posted</title><id>http://www.miuml.org/news/2012/4/2/20-api-code-posted.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/4/2/20-api-code-posted.html"/><author><name>Leon Starr</name></author><published>2012-04-03T01:21:43Z</published><updated>2012-04-03T01:21:43Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>The 1.0 API supported class model editing only. &nbsp;The 2.0 update, now avaiable from the 'All The Code' link to the right, includes support for state model editing. &nbsp;Basically, the code just doubled in size.</p>
<p>I have just written an extensive README file at the top of the file tree to help you get everything installed and working on your platform.</p>
<p>There is still an issue we are resolving with respect to the way polymorphic events should be handled. &nbsp;And a couple of other issues just surfaced which may lead to some interesting changes in the next month or two. &nbsp;I will keep you posted.</p>
<p>Also, I am starting work on a Python3 wrapper to provide a non-SQL interface to the metamodel. &nbsp;This will also give me a more robust testing environment.</p>
<p>&nbsp;</p>]]></content></entry><entry><title>Latest Progress</title><id>http://www.miuml.org/news/2012/3/20/latest-progress.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/3/20/latest-progress.html"/><author><name>Leon Starr</name></author><published>2012-03-20T16:45:44Z</published><updated>2012-03-20T16:45:44Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Work on the State/Poly API/Editor was slowed a bit this month with many distractions. &nbsp;And the delegation issue (see previous posts) didn't help things either! &nbsp;That said, it's still progressing nicely. &nbsp;I've got all of the key edit functions working yesterday and now need to backfill the queries (see the State API spreadsheet) and do a little more testing all around. &nbsp;It looks like I'll be posting all the code by the end of the month, if all goes well.</p>]]></content></entry><entry><title>Updated Poly Subsystem</title><id>http://www.miuml.org/news/2012/3/15/updated-poly-subsystem.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/3/15/updated-poly-subsystem.html"/><author><name>Leon Starr</name></author><published>2012-03-15T23:47:22Z</published><updated>2012-03-15T23:47:22Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>To accommodate polymorphic delegation along compound generalizations (supporting case 2 as described in the previous post), the Polymorphism Subsystem has been updated. &nbsp;Note the inclusion of the Delegation Direction class. &nbsp;Also R551 was removed since it's now a many-many association between a Poly Event Spec's Class and any Generalizations stemming from it. &nbsp;This multiplicity is handled by R569 now.</p>
<p>The State API has been updated accordingly, note differences in the UI_delegate_event, UI_delete_event and UI_new_polymorphic_event calls.</p>]]></content></entry><entry><title>Testing Polymorphism</title><id>http://www.miuml.org/news/2012/3/11/testing-polymorphism.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/3/11/testing-polymorphism.html"/><author><name>Leon Starr</name></author><published>2012-03-12T01:32:33Z</published><updated>2012-03-12T01:32:33Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>A conversation with Andrew Mangogna revealed that he and I had two different, and conflicting interpretations of how polymorphic events are supposed to be delegated on a compound generalization (multiple specializations from the same class as illustrated). &nbsp;Unfortunately, the Mellor-Balcer Executable UML book, specifically rule 6, p228 is ambiguous:</p>
<blockquote>
<p class="p1">6. If a superclass has multiple specializations, the polymorphic&nbsp;signal occurrence is received by at most one state machine instance in&nbsp;<em>each</em> specialization hierarchy.</p>
</blockquote>
<p class="p1">The question being: &nbsp;Must an Event Specification declared as polymorphic on a Class be delegated down (1) ALL Generalizations rooted in that Class or (2) AT LEAST ONE. &nbsp;Both cases satisfy rule 6. &nbsp;In either case, a run-time event is guaranteed to be processed by at least one Subclass instance. &nbsp;In a given Generalization, again, in either case, each Subclass must define an Event Response for the delegated Event Specification unless there deeper delegation is specified (thorugh another level of Generalization).</p>
<p class="p1"><span class="full-image-block ssNonEditable"><span><img style="width: 450px;" src="http://www.miuml.org/storage/graphics/screenshots/Screen Shot 2012-03-11 at 6.30.14 PM.png?__SQUARESPACE_CACHEVERSION=1331517169250" alt="" /></span></span></p>
<p class="p1">Until we get this resolved (meeting with Stephen Mellor here in SF in a couple of weeks), the API will assume case (2) as it is the least restrictive and can be readily extended to case (1) if necessary.</p>]]></content></entry><entry><title>Collaboration Diagrams</title><id>http://www.miuml.org/news/2012/3/9/collaboration-diagrams-1.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/3/9/collaboration-diagrams-1.html"/><author><name>Leon Starr</name></author><published>2012-03-09T18:34:53Z</published><updated>2012-03-09T18:34:53Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>If, for some morbid reason, you find yourself poking through my API code, you may find these collaboration diagrams helpful. &nbsp;I have added them to the document register as td15. &nbsp;Link to them from there, or here in this post.</p>
<p><span class="full-image-block ssNonEditable"><span><a href="http://www.miuml.org/storage/downloads/class-model-subsystem/pdfs/miUML%20td15%20Class%20Model%20Editing%20Collaboration%20Diagrams.pdf"><img style="width: 450px;" src="http://www.miuml.org/storage/graphics/download-thumbnails/Class%20Subsys%20Collab.png?__SQUARESPACE_CACHEVERSION=1331318382658" alt="" /></a></span></span></p>
<p>PDF (click thumbnail) or <a href="http://www.miuml.org/storage/downloads/class-model-subsystem/omnigraffle/miUML%20td15%20Class%20Model%20Editing%20Collaboration%20Diagrams.graffle">Omnigraffle</a>.</p>
<p>&nbsp;</p>]]></content></entry><entry><title>Weekend Updates</title><id>http://www.miuml.org/news/2012/3/4/weekend-updates.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/3/4/weekend-updates.html"/><author><name>Leon Starr</name></author><published>2012-03-04T18:48:43Z</published><updated>2012-03-04T18:48:43Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>The following files have been updated: &nbsp;Polymorphism Subsystem Class Diagram/Descriptions, Relationship Subsystem Class Diagram/Descriptions, Class and Attribute Subsystem Descriptions only. &nbsp;Changes: &nbsp;Poly - see previous news post, Relationship Subsys - Thanks to Dave Moten's eagle eyes for spotting R25 which should have been R23, Class / Relationship Descriptions, 'Specialized Class' description moved from Class to Relationship Subsystems (descriptions were out of sync with diagrams). &nbsp;As always, just use the existing links, they now point to updated files.</p>]]></content></entry><entry><title>Delegation Constraint Added</title><id>http://www.miuml.org/news/2012/3/3/delegation-constraint-added.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/3/3/delegation-constraint-added.html"/><author><name>Leon Starr</name></author><published>2012-03-04T03:55:24Z</published><updated>2012-03-04T03:55:24Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>In the process of coding up the API, I've discovered a missing constraint in the Polymorphism Subsystem. &nbsp;Due to rule #4 in Mellor-Balcer regarding polymorphism, it is critical that delegation of a polymorphic event proceed down exactly one Generalization. &nbsp;This is important when we have a compound generalization where multiple hierarchies sprout from the same Class. &nbsp;I will be posting an updated model by the close of the weekend with this constraint added.</p>]]></content></entry><entry><title>State Signature</title><id>http://www.miuml.org/news/2012/2/28/state-signature.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/2/28/state-signature.html"/><author><name>Leon Starr</name></author><published>2012-02-29T01:04:33Z</published><updated>2012-02-29T01:04:33Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>In the process of coding up the API, I realized that R564 on the Poly Subsystem should be going to Destination and not State. &nbsp;Therefore, a Deletion Pseudo State also has a signature since, like a State, it may specify a Procedure (not yet modeled) and that Procedure will accept parameters. &nbsp;I will post an updated model later in the week. &nbsp;Back to coding...</p>]]></content></entry><entry><title>Poly Test Pattern</title><id>http://www.miuml.org/news/2012/2/24/poly-test-pattern.html</id><link rel="alternate" type="text/html" href="http://www.miuml.org/news/2012/2/24/poly-test-pattern.html"/><author><name>Leon Starr</name></author><published>2012-02-25T02:37:54Z</published><updated>2012-02-25T02:37:54Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Here is a test pattern I am testing against this weekend on the poly subsystem API / Editor.<span class="thumbnail-image-block ssNonEditable"><span><a href="javascript:showFullImage('/display/ShowImage?imageUrl=%2Fstorage%2Fgraphics%2Fscreenshots%2FPoly%2520Test%2520Pattern.png%3F__SQUARESPACE_CACHEVERSION%3D1330137608365',693,1194);"><img src="http://www.miuml.org/storage/thumbnails/11750816-16793303-thumbnail.jpg?__SQUARESPACE_CACHEVERSION=1330137608366" alt="" /></a></span></span></p>]]></content></entry></feed>
