I've been working on Recursive Design bridges, Process Model operations and Action Language statements. Over the last few weeks I've published a number of technical notes on synchronous communications, asynchronous communications and semantic shift in an effort to nail down exactly how operations of all kinds will be implemented in OOA09 projects. A number of bridge mapping variations were explored before I settled on what was discussed in the technical notes, e.g. watchpoint mappings have been replaced with domain observers. These technical notes will continue to be tweaked (e.g. there are a few counterpart mapping points which I skipped over that are worth discussing) until I have finishing implementing the discussed logic in OOA Tool which I am in the process of doing. I've also published a draft overview of the OOA09 Action Language. However, this won't be complete for a while yet since I want to implement some of the syntax first.
During this work, I've noticed that Mathematically Dependent Objects (which would be called derived classes in xtUML if the concept existed) exist in several subsystems of my OOA of OOA, i.e. objects with no user changeable attributes at all. The first example being completely predefined data types (not core types) which are automatically created when certain related objects are created, e.g. an
Object Instance Type is created whenever an
Object is created. The second example being predefined parameters which are automatically created when certain operation related objects are created. Now, I've already added Mathematically Dependent Relationships (called derived associations in xtUML) as a new concept to OOA09 after Mathematically Dependent Attributes were added in OOA96. Should I add Mathematically Dependent Objects as well? The concept definitely exists and is a logical extension of what already exists. What would the semantics be? What hooks would I need to add? When would the hooks be triggered? Could they be implemented efficiently? However, I'm not going to sidetrack the next build with this as a new feature but I will continue to explore it as a concept. Let me know if anyone has any related ideas.