0% found this document useful (0 votes)
837 views

ch-10 Advanced Relationships

- A relationship is a connection between things and the four main types in object modeling are dependencies, generalizations, associations, and realizations. - Relationships are graphically shown as lines with different styles to distinguish the types. - Dependencies show a using relationship and are dashed lines, generalizations show subclasses/parents and constraints can apply, associations connect related objects, and realizations specify contracts between classifiers. - Relationships can have stereotypes, properties, and constraints applied to provide more details about the specific relationship.

Uploaded by

bhargavi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
837 views

ch-10 Advanced Relationships

- A relationship is a connection between things and the four main types in object modeling are dependencies, generalizations, associations, and realizations. - Relationships are graphically shown as lines with different styles to distinguish the types. - Dependencies show a using relationship and are dashed lines, generalizations show subclasses/parents and constraints can apply, associations connect related objects, and realizations specify contracts between classifiers. - Relationships can have stereotypes, properties, and constraints applied to provide more details about the specific relationship.

Uploaded by

bhargavi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

Ch-10 Advanced Relationships

 A relationship is a connection among things.

 In object-oriented modeling, the four most important


relationships are dependencies, generalizations,
associations, and realizations.

 Graphically, a relationship is rendered as a path, with


different kinds of lines used to distinguish the different
relationships.
Advanced Relationships
Dependency

 A dependency is a using relationship, specifying that a


change in the specification of one thing (for example,
class SetTopController) may affect another thing that
uses it (for example, class ChannelIterator), but not
necessarily the reverse.

 Graphically, a dependency is rendered as a dashed line,


directed to the thing that is depended on.
 UML defines a number of stereotypes that may be
applied to dependency relationships. There are 17 such
stereotypes.

 First, there are eight stereotypes that apply to


Dependency relationships among classes and objects in
class diagrams.

1. bind: Specifies that the source instantiates the target


template using the given actual parameters.

Bind includes a list of actual arguments that map to the


formal arguments of the template.
2. derive: Specifies that the source may be computed from
the target.

 Use derive when you want to model the relationship


between two attributes or two associations, one of which
is concrete and the other is conceptual.

3. friend: Specifies that the source is given special visibility


into the target.

4. instanceOf: Specifies that the source object is an


instance of the target classifier.
5. instantiate: Specifies that the source creates instances
of the target.

6. powertype: Specifies that the target is a powertype of


the source;
a powertype is a classifier whose objects are all the
children of a given parent.

7. refine: Specifies that the source is at a finer degree of


abstraction than the target.
8. use: Specifies that the semantics of the source element
depends on the semantics of the public part of the target.
 There are two stereotypes that apply to dependency
relationships among packages.

1. access: Specifies that the source package is granted


the right to reference the elements of the target
package.
2. import: A kind of access that specifies that the public
contents of the target package enter the flat
namespace of the source, as if they had been declared
in the source.
 Two stereotypes apply to dependency relationships
among use cases:

1. extend: Specifies that the target use case extends the


behavior of the source.

2. include: Specifies that the source use case explicitly


incorporates the behavior of another use case at a
location specified by the source.
 Three stereotypes when modeling interactions among
objects.

1.become: Specifies that the target is the same object as


the source but at a later point in time and with possibly
different values, state, or roles.

2. call: Specifies that the source operation invokes the


target operation.

3. copy: Specifies that the target object is an exact, but


independent, copy of the source.
 One stereotype in the context of state machines is

 send: Specifies that the source operation sends the


target event.

 Finally, one stereotype that will encounter in the context


of organizing the elements of your system into
subsystems and models is

 trace: Specifies that the target is an historical ancestor


of the source
Generalization
 A generalization is a relationship between a general thing
(called the superclass or parent) and a more specific kind
of that thing (called the subclass or child).
 Parents, such as InterestBearingItem and
InsurableItem, are called mixins because they don't
stand alone but, rather, are intended to be mixed in with
other parents (such as Asset).

 UML defines one stereotype and four constraints that


may be applied to generalization relationships.

 Implementation: Specifies that the child inherits the


implementation of the parent but does not make public
nor support its interfaces, thereby violating
substitutability.
 There are four standard constraints that apply to
generalization relationships.

 complete: Specifies that all children in the generalization


have been specified in the model (although some may
be elided in the diagram) and that no additional children
are permitted.

 incomplete: Specifies that not all children in the


generalization have been specified (even if some are
elided) and that additional children are permitted.
 disjoint: Specifies that objects of the parent may have
no more than one of the children as a type.

 overlapping: Specifies that objects of the parent may


have more than one of the children as a type.

 These two constraints apply only in the context of


multiple inheritance.
Association

 An association is a structural relationship, specifying that


objects of one thing are connected to objects of another.

 There are four basic adornments that apply to an


association: a name, the role at each end of the
association, the multiplicity at each end of the
association, and aggregation.

 other properties you can use to model subtle details,


such as navigation, qualification, and various flavors of
aggregation.
1. Navigation
 Given a plain, unadorned association between two
classes, such as Book and Library, it's possible to
navigate from objects of one kind to objects of the other
kind.

 Unless otherwise specified, navigation across an


association is bidirectional. There are some
circumstances in which we limit navigation to just one
direction.
Navigation
2.Visibility
 Given an association between two classes, objects of
one class can see and navigate to objects of the other,
unless otherwise restricted by an explicit statement of
navigation.
3. Qualification
 Given an object at one end of an association, to identify
an object or set of objects at the other end.
4. Interface Specifier
 An interface is a collection of operations that are used to
specify a service of a class or a component; every class
may realize many interfaces.
Collectively, the interfaces realized by a class represent
a complete specification of the behavior of that class.
5. Composition
6. Association Classes
 In an association between two classes, the association
itself might have properties.

 For example, in an employer/employee relationship


between a Company and a Person, there is a Job that
represents the properties of that relationship that apply
to exactly one pairing of the Person and Company.
Association Classes
 In the UML, you'd model this as an association class,
which is a modeling element that has both association
and class properties.
 An association class can be seen as an association that
also has class properties, or as a class that also has
association properties.
7. Constraints
 UML defines five constraints that may be applied to association
relationships.

 First, you can distinguish if the association is real or conceptual.

1. implicit: Specifies that the relationship is not manifest but, rather,


is only conceptual.

 Second, you can specify that the objects at one end of an


association (with a multiplicity greater than one) are ordered or
unordered.

2. ordered: Specifies that the set of objects at one end of an


association are in an explicit order
 Finally, there are three defined constraints that relate to
the changeability of the instances of an association.

3.changeable: Links between objects may be added,


removed, and changed freely.

4. addOnly: New links may be added from an object on the


opposite end of the association.

5. frozen: A link, once added from an object on the


opposite end of the association, may not be modified or
deleted.
 Finally, there is one constraint for managing related sets
of associations:

6. xor: Specifies that, over a set of associations, exactly


one is manifest for each associated object.
Realization

 A realization is a semantic relationship between


classifiers in which one classifier specifies a contract that
another classifier guarantees to carry out.
 Graphically, a realization is rendered as a dashed
directed line with a large open arrowhead pointing to the
classifier that specifies the contract.
 Realization is sufficiently different from dependency,
generalization, and association relationships that it is
treated as a separate kind of relationship.

 You'll use realization in two circumstances: in the context


of interfaces and in the context of collaborations.
 Realization is used to specify the relationship between an interface
and the class or component that provides an operation or service.

 An interface is a collection of operations that are used to specify a


service of a class or a component.

Therefore, an interface specifies a contract that a class or


component must carry out.

An interface may be realized by many such classes or components,


and a class or component may realize many interfaces.
 Note that you can represent realization in two ways: in the canonical
form (using the interface stereotype and the dashed directed line with
a large open arrowhead) and in an elided form (using the interface
lollipop notation).

Realization of an Interface
 You'll also use realization to specify the relationship between a use
case and the collaboration that realizes that use case,
 In this circumstance, you'll almost always use the canonical form of
realization.
Realization of a Use Case

You might also like