Unit 5 Part 2
Unit 5 Part 2
Architectural Modeling: 6.1 Component, 6.2 Component diagrams, 6.3 Deployment, 6.4
Deployment diagrams. 6.5 Case Study: The Unified Library application
Components
Introduction:
A component is a physical replaceable part of a system that complies with and provides the
realization of a set of interfaces. We use components to model the physical things that may reside
on a node, such as executables, libraries, tables, files and documents. A component typically
represents the physical packaging of otherwise logical elements such as classes, interfaces and
collaborations.
We do logical modeling to visualize, specify, and document our decisions about the vocabulary of
our domain and the structural and behavioral way those things collaborate. We do physical
modeling to construct the executable system. Object libraries, executables, COM+ components and
Enterprise Java Beans are all examples of components.
An interface is a collection of operations that are used to specify a service of a class or a component.
We can show the relationship between a component and its interfaces in one of the two ways. The
first style renders the interfaces in its elided, iconic form. The component that realizes the interfaces
is connected to the interface using an elided realization relationship. The second style renders the
interface in its expanded form, perhaps revealing its operations. The component that realizes the
interface is connected to the interface using a full realization relationship. In both cases, the
component that accesses the services of the other component through the interfaces is connected
to the interface using a dependency relationship.
Binary Replaceability:
The basic intent of every component-based operating system facility is to permit the assembly of
systems from binary replaceable parts. This means that we can create a system out of components
and then evolve the system by adding new components and replacing the old ones, without
rebuilding the system.
Third, a component is part of a system. A component rarely stands alone. Rather, a given component
collaborates with other components and in so doing exists in the architectural or technology context
in which it is intended to be used.
Kinds of Components:
Three kinds of components may be distinguished.
First, there are deployment components. These are the components necessary and sufficient to form
an executable system, such as dynamic libraries (DLLs) and executables (EXEs).
Second, there are work product components. These components are generally the residue of the
development process, consisting of things such as the source code files and data files from which
deployment components are created.
Third are execution components. These components are created as a consequence of an executing
system, such as COM+ object, which is instantiated from a DLL.
Standard Elements:
All the UML’s extensibility mechanisms apply to components. Most often, we’ll use tagged values to
extend the component properties and stereotypes to specify new kind of components.
Modeling an API:
To model an API:
Identify the programmatic seems in the system and model each seem as an interface.
Expose only those properties of the interface that are important to visualize the given
context. Otherwise, hide these properties, keeping them in the interface’s specification for
reference, as necessary.
Model the realization of each API only as it is important to show the configuration of a
specific implementation.
Component Diagrams
Introduction:
Component diagrams are one of the two kinds of diagrams for modeling the physical aspects of
object-oriented software systems. A component diagram shows the organization and dependencies
among a set of components. We use component diagrams to model the static implementation view
of a software system.
Common Properties:
A component is just a special kind of a diagram and shares the same common properties as the
other diagrams like: a name and graphical contents. What distinguishes a component diagram from
the rest of the diagrams is its content.
Content:
Component diagram commonly contain:
Components
Interfaces
Dependency, generalization, association and realization relationships.
Like all other diagrams, component diagrams may contain notes and constraints. Component
diagrams may also contain packages.
Common Uses:
When modeling the static implementation view of a system, we will typically use component
diagrams in one of four ways:
1. To model source code.
2. To model executable releases.
3. To model physical databases.
4. To model adaptable systems.
location by drawing the same instance more than once, but with different values for its
location tagged value.
Deployment
Introduction:
A node is a physical element that exists at runtime and represents a computational resource,
generally having atleast some memory and, often, processing capability. We use nodes to model the
topology of the hardware on which our system executes. A node typically represents a processor or
a device on which components may be deployed.
In UML, a node is represented as a cube as shown below. Using stereotypes we can tailor this
notation to represent specific kinds of processors and devices.
A set of objects or components that are allocated to a node as a group is called a distribution unit.
Connections:
The most common kind of relationship we’ll use among nodes is an association. In this context, an
association represents a physical connection among nodes, such as an Ethernet connection, a serial
line, or a shared bus as shown below. We can even use associations to model indirect connections,
such as a satellite link between distant processors.
Deployment Diagrams
Introduction:
Deployment diagrams are one of the two kinds of diagrams used in modeling the physical aspects of
an object-oriented system. A deployment diagram shows the configuration of run time processing
nodes and the components that live on them.
We use deployment diagrams to model the static deployment view of a system. A deployment
diagram is a diagram that shows the configuration of run time processing nodes and the
components that live on them.
Common Properties:
A deployment is just a special kind of diagram that shares the same properties as all other diagrams
like: a name and graphical contents. What distinguishes a deployment diagram from the rest of the
diagrams is its content.
Contents:
A deployment diagram commonly contains:
Nodes
Dependency and association relationships
Like all other diagrams, deployment diagrams may contain notes and constraints.
Deployment diagrams may also contain components, each of which must live on some node.
Deployment diagrams may also contain packages and subsystems.
Common Uses:
When modeling the static deployment view of a system, we’ll typically use deployment diagrams in
one of the three ways:
1. To model embedded systems.
2. To model client/server systems.
3. To model fully distributed systems.
Pay close attention to logical groupings of nodes, which you can specify by using packages.
Model these devices and processors using deployment diagrams.
If you need to focus on the dynamics of the system, introduce use case diagrams to specify
the kind of behavior you are interested in, and expand on these use cases with interaction
diagrams.
INTRODUCTION
Unified Library Application System emphasizes on the online reservation, issue and
return of books. This system globalizes the present library system. Using this application the
member can reserve any book from anywhere in the world. Still in nascent stages, this application
soon revolutionizes present library system.
Class diagram
Statechart diagram
Activity diagram
Component diagram
Deployment diagram