Professional Documents
Culture Documents
Architectural Modeling: 1. Components
Architectural Modeling: 1. Components
MODELING
1. Components
2. Deployments
3. Component diagrams
4. Deployment diagrams
COMPONENTS
• Important building blocks in modeling the
physical aspects of the system.
• A component is a physical and replaceable
part of a system.
• Used in modeling the physical things that
may reside on a node, such as executables,
libraries, tables, files and documents.
• A component physically represents the physical
packaging of logical elements such as classes,
interfaces, and collaborations.
• A component realizes a set of interfaces.
• Interfaces therefore bridge your logical and
physical models.
• You may specify an interface for a class in a
logical model and that same interface will carry
over to some physical component that realizes it.
• Ex: Object libraries, executables, COM +
components and EJB
• We can also use components to represent tables,
files and documents.
COM+ is an extension of Component Object Model
(COM), Microsoft's strategic building block
approach for developing application programs.
COM+ is both an object-oriented programming
architecture and a set of operating system services.
A DLL file, short for Dynamic Link Library, is a
type of file that contains instructions that other
programs can call upon to do certain things. This
way, multiple programs can share the abilities
programmed into a single file, and even do so
simultaneously.
Enterprise JavaBeans components. The
Enterprise JavaBeans (EJB) technology defines
a model for the development and deployment
of reusable Java server components, called EJB
components. An EJB component is a nonvisual
server component with methods that typically
provide business logic in distributed
application
Component Notation
Components and Classes:
In many ways components are like classes i.e.
• both have names.
• Both may realize a set of interfaces
• Both may participate in dependency, generalization, association,
relationships.
• Both may be nested
• Both may have instances.
• Both may be participants in interactions.
Differences between components and classes.
• classes represent logical abstractions ; components represent
physical things.
• components may live on nodes, classes may not.
• Classes may have attributes and operations directly, where as
components can not have attributes but can have operations
Relationship between the component and the classes
it implements can be shown explicitly by using a
dependency relationship.
COMPONENTS AND INTERFACES:
• An interface is a collection of operations that
are used to specify a service of a class or
component.
• we can show the relationship between a
component and its interfaces in one of two
ways.
1. most common style renders the interface in its
elided , iconic form.
2. rendering the interface in its expanded form
Export interface:An interface that a
component realizes is called export interface.
means the component provides it as a service
to other components.Example:Component.java
in the figure.
Component
Component Diagram
Diagram
Captures
Captures the
the physical
physical structure
structure of
of the
the
implementation
implementation
• Contents
Component diagrams commonly contain
• Components
• Interfaces
• Dependency, generalization, association,
realization relationships.
• It may contain notes and constraints,
packages, subsystems.
Common Uses:
• To model source code
• To model Executable releases
• To model physical databases
• To model adaptable systems
Modeling source code:the figure shows compilation
dependencies among source files.Render.h is used by
render.cpp,poly.h has compilation dependency to render.h
Modeling adaptable systems:In Adaptable systems,
a database is replicated across several nodes
Modeling physical database:The figure shows
that the database School.db is an Aggregation of five
other tables.
Modeling an executable release
Below figure models part of the executable release for an autonomous robot. The
figure focuses on the deployment components associated with the robots driving
and calculation functions.
DEPLOYMENT DIAGRAMS
• Shows the configuration of runtime processing
nodes and components live on them.
• used to model the static deployment view of a
system.
• Most part of this involves modeling the topology
of the hardware on which your system executes.
• It is essentially class diagrams that focus on a
system’s node.
DEPLOYMENT DIAGRAM
Contents of deployment diagrams
1. Nodes
2. Dependency and association relationships
Modeling
Embedded
system
2. To model client- server systems:
• Deployment diagrams can also be used to
document your decisions about the topology of
your client server system and how it’s s/w
components are distributed across the client
aand the server.
This diagram indicates that there may be two or more “
catching servers” in any deployed instance of the system.
It is a topology of a human resource system.the nodes are grouped into clients and servers.
3. To model fully distributed systems
• Globally distributed, typically encompassing
multiple level servers, in this, often hosts to
multiple versions of software components, some
of which may migrate from node to node.
Crafting these type of systems require you to
make decisions that enable the continuous
change in the system’s topology.
• We can use the deployment diagram to visualize
the system’s current topology and distribution of
components to reason about the impact of change
in topology.
THANK YOU