12428_Packages and Instances New

download 12428_Packages and Instances New

of 30

Transcript of 12428_Packages and Instances New

  • 7/28/2019 12428_Packages and Instances New

    1/30

    Packages

  • 7/28/2019 12428_Packages and Instances New

    2/30

    Packages

    Visualizing, Specifying, constructing, anddocumenting large system involves manipulating

    potentially large numbers of classes, interfaces,

    components, nodes, diagrams, and other elements. As we scale up the systems such as these, we will

    find it necessary to organize these things in to larger

    chunks.

    In the UML, the package is a general purpose

    mechanism for organizing modeling elements in to

    groups.

  • 7/28/2019 12428_Packages and Instances New

    3/30

    Packages are used to arrange your modelingelements in to larger chunks that you can

    manipulate as a group.

    One can control the visibility of theseselements so that some things are visible

    outside the package while are others are

    hidden.

    Packages can be used to present different

    views of your system architecture.

  • 7/28/2019 12428_Packages and Instances New

    4/30

    Well designed packages group elements that

    are semantically close and that tend to change

    together.

    Well structured packages are therefore loosely

    coupled and very cohesive, with tightly

    controlled access to the packages contents.

    Graphically a package is rendered as a tabbed

    folder.

  • 7/28/2019 12428_Packages and Instances New

    5/30

    Names

    Every package must have a name thatdistinguishes it from other packages.

    A name is a textual string. That name alone is

    known as a simple name.

    A path name is the package name prefixed by

    the name of the package in which that

    package lives, if any.

    Just as with classes we may draw packages

    adorned with tagged values or with additional

    compartments to expose their details.

  • 7/28/2019 12428_Packages and Instances New

    6/30

    Owned Elements A package may own other elements, including

    classes, interfaces, components, nodes,

    collaborations, use cases, diagrams, and even

    other packages.

    Owning is a composite relationship, which

    means that element is declared in the

    package.

    If the package is destroyed the element is

    destroyed.

    Every element is uniquely owned by exactly

    one package.

  • 7/28/2019 12428_Packages and Instances New

    7/30

    A package form a namespace, which meansthat elements of the same kind must be

    named uniquely within the context of its

    enclosing package.

    Elements of different kinds may have the

    same name within a package, thus you can

    have a class named timer as well as

    component named timer within the same

    package.

    Packages may own other packages.

  • 7/28/2019 12428_Packages and Instances New

    8/30

    Visibility

    You can control the visibility of the elements owned

    by the package just as you can control the visibility of

    he attributes and operations owned by the class.

    Typically a element owned by the package is public,which means that it is visible to the contents of any

    package that imports the elements enclosing

    package.

    Conversely protected elements can only be seen by

    the children and private elements cannot be seen

    outside the package in which they are declared.

  • 7/28/2019 12428_Packages and Instances New

    9/30

    Importing and Exporting

    Importing Grants a one way permission for the

    elements in one package to access the

    elements in another package.

    The public parts of a package are called its

    exports.

    The parts that one package exports are visible

    only to the contents of those packages that

    explicitly imports the package.s

  • 7/28/2019 12428_Packages and Instances New

    10/30

    Relationship

    There are two types of relationships you can

    have between packages: import and access

    dependencies, used to import into one

    package elements expressed from another.

  • 7/28/2019 12428_Packages and Instances New

    11/30

  • 7/28/2019 12428_Packages and Instances New

    12/30

  • 7/28/2019 12428_Packages and Instances New

    13/30

    Use Case Package Diagram:

    Use case Diagram Use case Package Diagram

  • 7/28/2019 12428_Packages and Instances New

    14/30

    Use Case Package Diagram:

  • 7/28/2019 12428_Packages and Instances New

    15/30

    Use Case Package Diagram:

  • 7/28/2019 12428_Packages and Instances New

    16/30

    Class Package Diagram

    class Diagram class Package Diagram

  • 7/28/2019 12428_Packages and Instances New

    17/30

  • 7/28/2019 12428_Packages and Instances New

    18/30

    When to use Package Diagram ???

    A large complex project can hundred of classes. Withoutsome way to organization those classes. It becomes

    impossible to make sense of tem all.

    Packages create a structure for you classes or other Uml

    element by grouping related elements.

  • 7/28/2019 12428_Packages and Instances New

    19/30

    Use of Package Diagram:

    When you want to show high level view of the system.

    To keep track of dependencies.

    With the large system to show its major element and how

    they relate to one another.

    To divide a complex system into module

    Package diagrams can use packages that represent the

    different layers of a software system to illustrate the layered

    architecture of a software system.

  • 7/28/2019 12428_Packages and Instances New

    20/30

    Instances

  • 7/28/2019 12428_Packages and Instances New

    21/30

    An instance is a concrete manifestation of an

    abstraction to which a set of operations can

    be applied and which has a state that stores

    the effects of the operations.

    Instance and object are largely synonymous.

    Graphically a instance is rendered b

    underlying its name.

  • 7/28/2019 12428_Packages and Instances New

    22/30

    Abstraction and Instances

    Instances dont stand alone; they almost

    always tied to an abstraction.

    Most instances with the UML will be instances

    of classes.

    In general an object is something that takes up

    space in the real or conceptual world and you

    do things to it.

  • 7/28/2019 12428_Packages and Instances New

    23/30

    Names

    Named Instance: t:Transaction

    Anonymous instance: in many cases the real

    name of an object is known only to the

    computer on which that object lives.

    :Multemedia::Audiostream

    Orphan Instance: agent: ( abstraction not

    known)

  • 7/28/2019 12428_Packages and Instances New

    24/30

  • 7/28/2019 12428_Packages and Instances New

    25/30

    Operations

    Not only is an object something that usually

    takes up space in the real world, it is also

    something you can do things to.

    The operations that you can perform on an

    object are declared in the object abstractions.

  • 7/28/2019 12428_Packages and Instances New

    26/30

    State

    When you operate on an object, you typically change its state; when you query an

    object, you don't change its state. For example, when you make an airline

    reservation (represented by the object r : Reservation), you might set the value of

    one of its attributes (for example, price = 395.75). If you change your reservation,

    perhaps by adding a new leg to your itinerary, then its state might change (for

    example, price = 1024.86). An object also has state, which in this sense encompasses all the properties of the

    object plus the current values of each of these properties.

    These properties include the attributes of the object, as well as all its aggregate

    parts.

  • 7/28/2019 12428_Packages and Instances New

    27/30

  • 7/28/2019 12428_Packages and Instances New

    28/30

    The UML defines two standard stereotypes that apply to the dependency relationships among

    objects and among classes:

    1. instanceOf : Specifies that the client object is an instance of the supplier classifier

    2. instantiate : Specifies that the client class creates instances of the supplier class

    There are also two stereotypes related to objects that apply to messages and transitions:1.Become: Specifies that the client is the same object as the supplier, but at a later time and

    with

    possibly different values, state, or roles

    2. Copy Specifies that the client object is an exact but independent copy of the supplier

    The UML defines a standard constraint that applies to objects:

    Transient : Specifies that an instance of the role is created during execution of the enclosing

    interaction but is destroyed before completion of execution

  • 7/28/2019 12428_Packages and Instances New

    29/30

    Object Diagram Shows a set of objects and their relationships at a point in time.

    You use object diagrams to model the static design view or static process view of a

    system.

    This involves modelling a snapshot of the system at a moment in time and

    rendering a set of objects, their state, and their relationships.

    Object diagrams are not only important for visualizing, specifying, and

    documenting structural models, but also for constructing the static aspects of

    systems through forward and reverse engineering.

    With the UML, you use class diagrams to visualize the static aspects of your

    system's building blocks.

    You use interaction diagrams to visualize the dynamic aspects of your system,

    consisting of instances of these building blocks and messages dispatched amongthem.

    An object diagram covers a set of instances of the things found in a class diagram.

    An object diagram, therefore, expresses the static part of an interaction, consisting

    of the objects that collaborate, but without any of the messages passed among

    them. In both cases, an object diagram freezes a moment in time

  • 7/28/2019 12428_Packages and Instances New

    30/30