Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - jeshaw2

Pages: 1 ... 3 4 [5] 6
61
Uml Process / Modeling A Contingent Hyponymy
« on: May 20, 2006, 06:20:48 am »
In the context of modeling Class Inclusion using a hyponymy (aka. Is_A relationship), it has been recommended that hyponymy should only refer to core relationships.

For example:
  • Cow:Animal would be a core hyponymy, but
  • Cow:Food might not be, for it is contingent upon context and culture

What would be a Best Practice for modeling a contingent hyponymy so that MDA transformation rules could take advantage of this information?

How might such a transformation rule be written?

62
Uml Process / XOR vs Cardinality order of precedence
« on: May 02, 2006, 08:43:11 am »
In my part of the world, a radio is considered to be an intrinsic (mandatory) component of my car.  When I buy the car I get to choose among three types of radios:  AM/FM, AM/FM/tape cassette, or AM/FM/tape cassette/CD player.  Only one of these will fit into the hole in the dashboard of the car.  The new car dealer needs to know which radio I want in my new car.

When I trade in my car for a new one, the new car dealer will sell off my old car to a wholesaler.  The wholesaler does not care which radio is in the car, but considers the car as being incomplete with some type of radio in it;  he does not want an empty slot in the dash board.

So now I'm wondering how to diagram the static structure of my car.  Certainly a radio is a component of the car and the car owns the radio within it; so I have a composite relationship between each of the three radios and the car.  To show that the radios are intrinsic to the car, I show a cardinality of 1:1 on each radio option.  To show the exclusivity I add the XOR constraint among the three options.

So if the three radio types are intrinsic to the car, but only one can get past the XOR constraint;  seems I have a conflict among the terms.  Which term (cardinality or XOR) takes precedence?  UML Superstructure is silent on this issue.

63
Uml Process / Activity Parameter Node
« on: April 12, 2006, 08:38:46 pm »
The UML superstructure, section 12.3.9 provides for Activities to have Parameter Object Nodes with object edges connecting them to Pins on actions internal to the activity.  This is important for achieving re-usability of the Activity.

How can I diagram this in EA?

64
Uml Process / UML Repository
« on: March 18, 2006, 09:20:36 am »
The UML 2.0 Superstructure and other texts I'm reading, refer to the UML 2 Repository Specification.

Where can I find this document?

65
Uml Process / Activity vs Sequence Diagram at the BA level
« on: March 12, 2006, 06:34:45 pm »
I'm reviewing a UML textbook aimed at the Business/Requirements Analyst.  The author recommends the Activity Diagram over the Sequence Diagram on the basis that the Sequence Diagram is too complicated for users & stakeholders to understand.

What is your experience and practice?

66
Uml Process / Abstraction of the Portion_of Meronymy
« on: October 05, 2005, 07:21:32 am »
What would you consider to be a good abstraction of the Portion_of Meronymy?  

This is another thread in my concers about abstractions of the six types of meronymy.  The first thread of this series is the Part_of Meronymy .  The introductory and Background portions of that thread should be reviewed by readers new to this series.  Again, this is a request for comments.

Now to the Abstraction...A work in progress.

Portion / mass
We have in this class for example: slice/bread, centimeter/meter. This sub relation is often called a mereology.
• There is a complete similarity between the portions and between portions and the mass.
• Limits between portions are arbitrary and parts do not have any specific function a priori with respect to the whole.
• Portions belong to only one mass at a time, but are interchangeable with identical portions from identical masses.
• Division of a previously undivided mass into portions may mutate it into a new divided form. (e.g.;’ Bread Loaf’ vs ‘Cut Bread Loaf’) [Policy]
• Parts are exclusively owned by the mass.
• Portions are distinct, but they may not have distinctly unique names without being indexed.  ??? E.g.; Slice[n].  [Policy]
• Portions are not aware of each other.
• Portions need to know of which mass they are a portion.
• Portions may not self-remove themselves from the mass.
• Destruction of the mass destroys the portions.
• Destruction of a portion reduces the mass by a fraction. [Policy]
• Destruction of a last remaining portion destroys the mass.
• In some domains, it is possible to reconstitute the mass from the sum of its portions. [Policy]

Notation: An Association stereotyped as <<portionOf>>.  Association ends may be adorned with navigation arrowheads and ownership diamonds.  A link name (formed by the conjunction of two verbs, or verb phrases, separated by a slash) assists the reader in verbalizing the association from either of its ends. Serious consideration should be given to the use of an Association Class to provide information about, and methods to manage, the nature of the association.

67
Uml Process / Abstraction of the Location_Of Meronymy
« on: October 05, 2005, 06:38:57 pm »
What would you consider to be a good abstraction of the Location_of Meronymy?   This is a request for comments.

This is another thread in my concers about abstractions of the six types of meronymy.  The first thread of this series is the Part_of Meronymy .  The introductory and Background portions of that thread should be reviewed by readers new to this series.

Now to the Abstraction...A work in progress.

Precise place (Location) / area
Locations do not really contribute to an area in a functional way. This sub relation expresses spatiality and temporality, as in : oasis/desert, Alps/Europe, month/day/year.

• Area boundary coordinates are dynamic., [Policy}
• Areas form a system of overlays based on their granularity.
• Areas may partially, or completely, overlap each other.
• Areas may participate as locations in a larger area.
• Locations may span more than one area, as in mountains ranges within states.[Policy]
• Areas and locations may have several aliases. [Policy]
• There is always an area at the most granular levels of the spatial or temporal hierarchy that fully contains a given location.
• Destruction of an area destroys its associated locations unless those locations have a mapping into another area.
• Destruction of all areas into which a location may be mapped  also destroys the location.
• Locations need to know what areas they are in.
• Areas need to know what locations are within their boundaries.
• Locations may be in several areas at the same time.
• Mapping rules allow conversion of a location’s coordinates in one area into the coordinate system of an overlapping area.
• Areas do not own locations within their boarders.

Notation: An Association stereotyped as <<locationOf>>.  Association ends may be adorned with navigation arrowheads and ownership diamonds.  A link name (formed by the conjunction of two verbs, or verb phrases, separated by a slash) assists the reader in verbalizing the association from either of its ends. Serious consideration should be given to the use of an Association Class to provide information about, and methods to manage, the nature of the association.

68
Uml Process / Thoughts about Collections
« on: October 21, 2005, 12:46:12 pm »
In another thread, Paolo asserted:
Quote
Collections collect (group) things.

I'm not sure, but I don't think he was using the word group in the same way we do when discussing the <<memberOf>> meronymic relationship.  At least, I hope not, for I'm thinking that the term Collection is better reserved and used for a gathering of objects, in a simple association, which are not part of a meronymic relationship.

However, I've seen in other texts that in order for two objects to be associated, messages must pass between them.  I kind of like that thought, but I can also visualize a vector of objects that do not intercommunicate that I might also call a collection (e.g.; things in a shopping cart).  Perhaps, this latter context, the vector is a container of objects that are not in a collection?  But then I must reconcile myself to another truthful assertion:
Quote
All containers define collections (even if only implicitly - the objects contained)

I seem to be caught in a Catch-22 with this.  Can anyone help me clarify this?


69
Uml Process / Thoughts about Containers & Containment.
« on: October 09, 2005, 10:30:39 pm »
I'm having some trouble getting a proper mental grip on the concepts of Container & Containment.  Can you help?

In a physical sense, I can understand the concept of a castle being a container, and being within a castle as a form of containment.  While in the castle, I am nurtured by the master of the castle and protected from forces exterior to the castle; the master is the steward (i.e.;  the careful and responsible management of something entrusted to one's care ) of my existence.

Where I get into trouble is when I abstract these concepts into a logical realm and try to think crisply about them in a CIM way. I think the [size=13]Java Tutorial[/size] on Collections provides a good starting point for clearing up my thoughts.  Please, take a look (two pages ought to do it) and let me know if you agree that the abstract concepts presented there map well into the UML Context as a CIM.  Don't spend time on the Java implementation code unless it it helpful to you;  I'm only interested in the abstract concepts presented therein.  

My concerns are:
  • Are Collections a specialization of Container? (Default = no, they are synonyms.)
  • Do you agree that a Nest is a specialization of physical Container (default = yes), and further, can a Nest be a specialization of a logical Collection (Default no, this is a mixed metaphor)?
  • With the possible exception of a nest, saying that a object "A" is contained by object "B" does not mean we are modeling the concept that "A" is physically within a "B", but that we are saying that "A"s features fall within a defining boundary criteria allowing it to participate, along with other objects, in an association that is logically hosted by an object named "B".  Am I making the distinction clear here? Is there a better way to say this?
  • Do you accept the abstractions of the Collections Framework at the CIM level? (Default = yes)
  • If all of this is good so far, then my questions have been answered.



70
Uml Process / Abstraction of the Substance_Of Meronymy
« on: October 05, 2005, 09:20:58 pm »
What would you consider to be a good abstraction of the Substance_of Meronymy?   This is a request for comments.

This is another thread in my concers about abstractions of the six types of meronymy.  The first thread of this series is the Part_of Meronymy .  The introductory and Background portions of that thread should be reviewed by readers new to this series.

Now to the Abstraction...A work in progress.

Commodity / Substance
This type of relation describes the material substances from which a commodity is constructed or created, or the constitutive elements of an commodity, e.g. alcohol/wine, steel/car.

• There is a clear structural relation between the commodity and its constitutive elements (substances). [Policy}
• Commodities define the types of their substances.
• Commodities are not defined by the type of their substances.
• Substances loose their distinction when they enter the relationship.
• The substances are generally not of the same type as the commodity.
• Instances of the substances loose their distinction when they enter the relationship. [Policy]
• Destruction of the commodity destroys the instances of its substances. [Policy]
• A substance instance can only be in one commodity instance at a time.
• Once in a commodity, a substance can not be removed from the association.
• Substances may need to know which commodity they are in. [Policy]
• The multiplicity of the substances must be equal to or greater than 1.
• Any given substances may, or may not, be dereferenced through an attribute containing the referencing information. [Policy]
• A commodity may have its substances ‘wired in’ at instantiation or execution time.  For example:  under Inversion of Control (IoC), commodity s may be given their part references via constructor and/or setter methods. [Policy}
• Commodities hold exclusive ownership title to instances of their substances. [Policy]

Notation: An Association stereotyped as <<substanceOf>>.  Association ends may be adorned with navigation arrowheads and ownership diamonds.  A link name (formed by the conjunction of two verbs, or verb phrases, separated by a slash) assists the reader in verbalizing the association from either of its ends. Serious consideration should be given to the use of an Association Class to provide information about, and methods to manage, the nature of the association.

71
Uml Process / Abstraction of the Member_of Meronymy
« on: October 05, 2005, 05:58:57 am »
What would you consider to be a good abstraction of the Member_of Meronymy?

This is another thread in my concers about abstractions of the six types of meronymy.  The first thread of this series is the Part_of Meronymy .  The introductory and Background portions of that thread should be reviewed by readers new to this series.

Now to the Abstraction...A work in progress.

Member / set or group
In this meronymy class fall, for example: tree/forest, student/class.

• parts do not necessarily have a structural or functional relation with respect to the group.
• Parts are distinct from each other.
• Members may belong to more than one group at a time.
• Destruction of the group does not destroy the members. [Policy]
• Destruction of a member does not destroy the group. [Policy]
• The group does not own its members. [Policy]
• The group does not provide space for its members.
• The types of the members do not define the type of the group.
• The constitution of the membership list is dynamic. [Policy]
• Parts achieve membership in one of three ways:  1)  Common values of a shared subset of their attributes; or, 2) Are arbitrarily declared to be members  by a policy implementation; or, 3) A common need for the services of the container which hosts the group. [Policy]
• Parts may choose to self-remove themselves from the group. [Policy]
• Members implement a common interface.
• Members are not aware of each other. [Policy]
• The group (as a lexical collective) is a concept different and apart from the group’s hosting context.  For example:  there is a difference between an elevator and those_who_are_on_the_elevator.  We may speak of the elevator_people as either being on the elevator or awaiting_arrival of the elevator at their floor.

Notation: An Association stereotyped as <<memberOf>>.  Association ends may be adorned with navigation arrowheads and ownership diamonds.  A link name (formed by the conjunction of two verbs, or verb phrases, separated by a slash) assists the reader in verbalizing the association from either of its ends. Serious consideration should be given to the use of an Association Class to provide information about, and methods to manage, the nature of the association.


72
Uml Process / Abstraction of the SubActivity_Of Meronymy
« on: October 08, 2005, 04:19:15 pm »
What would you consider to be a good abstraction of the SubActivity_of Meronymy?

This is another thread in my concerns about abstractions of the six types of meronymy.  The first thread of this series is the Part_of Meronymy .  The introductory and Background portions of that thread should be reviewed by readers new to this series.

Now to the Abstraction...A work in progress.

Sub activity / Process

This sub relation describes the different sub-activities that form a process in a structured way, for example in a temporally organized way. Into this class fall examples such as : pay/buy, give exams/teach.
• A sub-activity instance may be a part of more than one process at the same time.
• Destruction of a sub-activity destroys the processes of which it is a part.
• Destruction of the process does not always destroy its sub-activities. [Policy]
• The types of the sub-activities do not define the type of the process.
• A sub-activity may have its own thread of control (Concurrent) or execute within the control thread of its client process (Sequential).
• A process may activate a sub-activity by the use of a message or by raising an exception.
• Messages may, or may not, contain data.
• The raising of an exception results in an instantiation of an Exception Object which is made available to a sub-activity which deals with the raised exception.
• A sub-activity may, or may not, return a value.
• A sub-activity may, or may not, have access to the process’s attributes and behaviors.
• A sub-activity may, or may not, have side effects.
• Messages come in three main types, with regard to concurrency and threads of control:  sequential, synchronous, and asynchronous.  The sub-activity determines which of these three types of messages may be sent.
• A sequential message involves only a single thread of control and can only be sent to a sequential sub-activity;  The thread of control is passed from the client process to the sub-activity until the corresponding sub-activity is completed, at which point the thread of control is returned to the process.
• A synchronous message involves two threads of control that must synchronize during the execution of the sub-activity;  it can only be sent  by a concurrent process.
• An asynchronous message does not involve synchronization and is essentially a fire-and-forget message;  such a message can only be sent by a concurrent process.
• The process is responsible for assuring the availability of a sub-activity prior to sending it a sequential or synchronous message.
• Both Processes and Sub-activities may be specialized and/or derived.

Attributes of the association

/isTransient - Transient processes and sub-activities may be created and destroyed while the program runs and are therefore not guaranteed to exist for the duration of the program run. Default is True.
/isTemporary - Temporary processes and sub-activities persist while the program runs but cease to exist when the program stops.  Default = False.
/isPersistent - Persistent processes and sub-activities are stored in permanent storage, such as an object-oriented database. Default = false.
/isOrdered : Boolean Specifies whether the return parameter is ordered or not, if present. This is derived.
/isQuery - Boolean Specifies whether an execution of the Sub-activity leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false). The default value is false.
/isUnique - Boolean Specifies whether the return parameter is unique or not, if present. This is derived.
/lower - Integer[0..1] Specifies the lower multiplicity of the return parameter, if present. This is derived.
/upper - UnlimitedNatural[0..1]Specifies the upper multiplicity of the return parameter, if present. This is derived.

Notation: An AssociationClass  stereotyped as << subActivityOf >>.  Association ends may be adorned with navigation arrowheads and ownership diamonds.  A link name (formed by the conjunction of two verbs, or verb phrases, separated by a slash) assists the reader in verbalizing the association from either of its ends. AssociationClass may show the Attributes of the association. The Process and Sub activity classes should show an isConcurrent attribute.

73
Uml Process / isOrdered & isUnique Attributes?
« on: October 07, 2005, 06:19:27 pm »
In the UML 2 Superstructure document, Section 7.3.36 (page 105) under the heading Attributes (of Operation) The following text appears:
Quote
• /isOrdered : Boolean Specifies whether the return parameter is ordered or not, if present. This is derived.
• isQuery : Boolean Specifies whether an execution of the BehavioralFeature leaves the state of the system
unchanged (isQuery=true) or whether side effects may occur (isQuery=false). The default
value is false.
• /isUnique : Boolean Specifies whether the return parameter is unique or not, if present. This is derived.
The definitions of isOrdered and isUnique are semi-circular.

Can anyone tell me what ordered and unique mean in the context of this section of the UML?


74
Uml Process / Ownership
« on: October 03, 2005, 06:33:24 am »
It is said that there are some questions that should only be asked by little children or great philosophers.  My hope is that this is not one of them.  :)

Precisely what does the term owner, and or ownership mean in the UML 2 context? The UML 2 Structure Specification often speaks of one element owning another, but it does not provide me a definition that is useful in thinking about Object Oriented design.  

A need to clarify ownership became apparent in a discussion on Collections, Containers, Composites and Nests

Some of my concerns about owning and ownership are:
  • What rights does an owner have over an owned element?
  • Is own like owning an automobile where I have a title of ownership that I may transfer to others; control who may use the car; destroy the car if I choose; modify the car's behavior, etc.?
  • When speaking of creation and destruction, it is often noted that we are speaking about objects that hold information about the modeled entity, not the real-world entity itself. Does this hold for all ownership discussions in UML modeling?
  • In the UML, ownership seems to be so closely associated with other concepts, such as Composites, that a bit of metonymy (Using one aspect of something to stand for the whole) begins to set in.  Does a composite, by definition, own its component parts?  One might be tempted to unequivocally say "Yes".  However, if ownership implys rights of creation and destruction, this becomes blurred under Inversion of Control (IoC) designs.
  • Specifying the AggregationKind on an Association results in a diamond decorator at one end of the line where (shared|not owned =>unfilled diamond) or composite (not shared|owned => filled diamond).  In my mind, this blurs the distinction of ownership with aggregation and composition.  As I assert in the parent thread, these concepts stand apart from each other and are not synonyms nor antonyms.
  • If one class is said to own another, what are we implying about the behavior of those classes?  Is the owning class responsible for any behavior in regards to the owned class?  Is the owned class expected to defer to the owning class (as a slave does to its master) in any way?
  • In a portioning type of association, does a bread loaf intrinsically own its slices?
  • In a substance_of type of association does the bread loaf intrinsically own the flour from which it is made?
  • If one element owns another, how is that implemented in the generated code?  I think this goes beyond the coding of attributes, constructors, etc.  I suspect that implementing ownership requires more logic than that.  Perhaps the coding of behaviors that enforce ownership or perhaps stewardship in someway.  I'm speaking of the code that is needed beyond what a code generator might produce to that produced by a human programmer.

I would like to hear everyone's thought on this.

75
Uml Process / Abstraction of the Part_of Meronymy
« on: October 03, 2005, 09:57:03 am »
What would you consider to be a good abstraction of the Part_of Meronymy?

This question arises out of a desire to have code generators produce outputs that are enriched by the meronymic attributes specified in a UML model and to more clearly express the realization goals of the software development process (as communicated by a software engineer to a programmer).  That is, once I stereotype an association as a <<Part_of>>, and having published the conclusions from this discussion, what may I reasonably expect a programmer to code in response to that specification; and, what additional policy information do I need to communicate in, perhaps, another communication medium.

This discussion thread has been forked from a discussion on Collections Containers, Composites and Nests and conclusions drawn here can be brought back to the parent discussion.

Background Information

Meronimies
Meronimies describe the part-whole (a.k.a., Has-a) relation. It is a fairly complex relation which attempts to take into account the degree of differentiation of the parts with respect to the whole and also the role that these parts play with respect to their whole. For example, elements such as spatial cohesion and spatial differentiation, functional differentiation and nature of the links between the parts are crucial elements for determining meronomies. In fact, depending on the quality of these elements, we may have different kinds of meronomies, with different types of properties.
The meronomy relation has itself some properties (or attributes) which must be taken into account in any realistic model:
• optionality of a part,
• cardinality of a part with respect to the whole, e.g. a human has 2 legs, a car has 4 wheels,

There are 6 kinds of meronomies which differ according the functionalities, the spatial cohesion and the degree of dissimilarity between the parts and their whole.  In this thread, we are discussing the Part_of meronymy  I'll be setting up similar discussions for the other 5 meronymyies.

Policies
Some aspects of the following attributes and behaviors may be controlled by the adoption of various policy directions and their accompanying policy variant implementation.  For example, it can be a policy decision as to whether an item may self-remove from a collection or grouping.  The policy would be entitled: Item self-removal.  The two implementations would be: Item can self-remove and the other Item cannot self-remove.  As each instance of the whole is created, the appropriate policy implementations are applied and the behavior adjusted accordingly.

Where a behavior may be policy controlled the denotation [Policy] is added.  Policies allow for differences in the nature of the domain being modeled.  See:  sargasso

Now to the Abstraction...A work in progress.

Composite / integral Part
The Part_of meronymy describes a relation between a composite and its parts.  A Composite is a structure or an entity made up of distinct components.  In this context, Composite is similar to, but shouldn’t be constrained to the UML 2 definition of a composite.  Here, composite is a higher level abstraction that also includes the concepts  of UML 2 composites with inner structures, separately deployable components (as in J2EE or *.NET), browsers and the like.
• There is a clear structural and functional relation between the composite and its parts and possibly between the parts themselves, e.g. handle/cup, engine/wheel, etc. [Policy}
• The Parts are generally not of the same type as the Composite.
• When the Parts are of the same type as the Composite, there is a potential for recursion. [Policy]
• Instances of Parts can only be in one Composite instance at a time.
• Parts may need to know which composite object they are in. [Policy]
• Parts may collaborate with each other to effect the overall behavior of the Composite. [Policy]
• Some Parts are intrinsically part of the composite; others are extrinsically in the relationship for adornment. [Policy]
• If the part is intrinsic to the composite, the multiplicity of the component must be equal to or greater than 1.
• Destruction of the composite destroys the instances of its parts. [Policy]
• An integral part is not necessarily an intrinsic part.
• Destruction or modification of an intrinsic part always destroys the composite.   Question:  If the vocal chords of a goose (the part) are transplanted into a duck (the composite) so that the duck now ‘honks’ instead of ‘quacking’, has the duck been sufficiently modified to be considered destroyed?
• Destruction of an extrinsic part does not destroy the Composite. [Policy]
• Composite objects define the types of the intrinsic parts.
• Any given part may, or may not, be dereferenced through an attribute containing the referencing information. [Policy]
• Components may have their parts ‘wired in’ at instantiation or execution time.  For example:  under Inversion of Control (IoC), components my be given their part references via constructor and/or setter methods. [Policy}
• A Composite may, or may not, own its parts; but it does have exclusive stewardship responsibilities for, and usage rights to, the parts while they participate in the association. [Policy]

Notation:  An Association stereotyped as <<partOf>>.  Association ends may be adorned with navigation arrowheads, cardinallity and Ownership Diamonds.  An optional link name (formed by the conjunction of two verbs, or verb phrases, separated by a slash) assists the reader in verbalizing the association from either of its ends. Serious consideration should be given to the use of an Association Class to provide information about, and methods to manage, the nature of the association.

And back to the question...
This thread is a Request For Comments (RFC). I would like to hear your thoughts on this abstraction of the Part_of meronymy.  Is it valid?  Are parts of it invalid or missing?  Do you have a contribution to make?  Feel like pontificating?  ;)  What??

Pages: 1 ... 3 4 [5] 6