Bab 11 component diagram 2010

Post on 14-Jun-2015

3.391 views 2 download

Transcript of Bab 11 component diagram 2010

BAB XIBAB XIComponent DiagramComponent Diagram

Component Diagram

• Component diagram menggambarkan struktur danhubungan antar komponen piranti lunak, termasukketergantungan (dependency) diantaranya.

• Komponen piranti lunak : modul berisi code, baik berisisource code maupun binary code, baik library maupunexecutable, baik yang muncul pada compile time, link time maupun run time.

• Umumnya komponen terbentuk dari beberapa class danatau package, tapi dapat juga berupa interface, yaitukumpulan layanan yang disediakan sebuah komponenuntuk komponen lainnya.

Component DiagramComponent Diagram

-- BersifatBersifat statisstatis- Merancang produk

-- MemperlihatkanMemperlihatkan organisasiorganisasi sertasertakebergantungankebergantungan padapada komponenkomponen--komponenkomponen yang yang telahtelah adaada sebelumnyasebelumnya

-- BerhubunganBerhubungan dengandengan diagram diagram kelaskelas..

Component Diagram

• Menggambarkan alokasi semua class dan object kedalamkomponen dalam desain fisik system software, termasukpengaturan dan kebergantungan antar komponen software

• Component dapat terdiri dari– logical component, seperti business component, process

component, dll– Physical component (software arsitektur) , seperti Com+, dot

NET,CORBA, dll

• Component digambarkandengan bentuk pada UML versi 1.*:

• Pada UML versi 2 digambarkan dengan bentuk

atau atau atau

• Stereotypes yang dapat digambarkan pada bentuk component<<application>>,kumpulan aplikasi system <<executable>>,component yang jalan di client<<file>>, data file

<<infrastructure>>, technical component didalam system<<source code>>, source file<<table>>, table data dalam sebuah database

<<UI>>, User interface (screen, pages, report)dll

<<database>><<document>><<library>><<web service>><<XML DTD>>

Component Diagram

Dependencies• dimodelkan dengan garis terputus dengan panah terbuka • gambarkan dependencies dari kiri ke kanan

Contoh:<<ASP>> Source Code bergantung pada<<database>> MySQL

• Dimungkinkan sebuah component dependencies pada interfaces component lainnyaContoh:

Inheritance• inheriting/child component diletakkan dibawah parent component, dengan

arah panah menuju ke parent component• dimodelkan dengan garis dengan panah tertutup Contoh:

Interfaces - Component Diagram

• Interfaces adalah kumpulan >=1 methode dan >=0 attribute yang dapatdipakai pada class tanpa menjadi behavior suatu class.

• Jenis interface ada 2 macam yaitu :– Provide, digambarkan dengan bentuk lollipop

Pada UML 1.* bisa juga digambarkan dengan garis terputus d enganpanah tertutup

– Required, digambarkan dengan bentuk socket• Penggambaran

interfaces dapat jugadilakukan denganmenambah bagiancomponent seperticontoh dibawah ini

Bentuk grafik

Component Diagram

port• adalah bentuk object yang menjelaskan interaksi antara object dan

lingkungannya• digambarkan sebagai kotak kecil di pinggiran component <<component>>

OrderAssembly connector• Penghubung antara

2/lebih component dimanasebuah/beberapacomponent provides interfaces dancomponent lain required interfaces

• Digambarkan dengangabungan bentukinterfacescontoh:

Penggunaan Component Diagrams

• When you model the static implementation view of a system, you'll typically use component diagrams in one of four ways

– To model source code– To model executable releases– To model physical databases– To model adaptable systems

Modeling Source Code• Either by forward or reverse engineering, identify

the set of source code files of interest and model them as components stereotyped as files.

• For larger systems, use packages to show groups of source code files.

• Model the compilation dependencies among these files using dependencies. Again, use tools to help generate and manage these dependencies.

Modeling Source Code (cont.)

Modeling an Executable Release

• Executable Release– main executable (usually, a .exe file)– libraries (commonly .dll files if you are working

in the context of COM+, or .class and .jar files if you are working in the context of Java)

– Databases– help files, and resource files

Modeling an Executable Release

• To model an executable release– Identify the set of components you'd like to

model. – Consider the stereotype of each component

in this set. (such as executables, libraries, tables, files, and documents)

– For each component in this set, consider its relationship to its neighbors

Modeling an Executable

Release

Modeling a Physical Database• To model a physical database

– Identify the classes in your model that represent your logical database schema

– Select a strategy for mapping these classes to tables. Use one of three strategies :• Define a separate table for each class• Collapse your inheritance lattices so that all instances

of any class in a hierarchy has the same state• Separate parent and child states into different tables

Modeling a Physical Database

– To visualize, specify, construct, and document your mapping, create a component diagram that contains components stereotyped as tables.

– Where possible, use tools to help you transform your logical design into a physical design

Modeling a Physical Database

Modeling Adaptable Systems

• To model an adaptable system– Consider the physical distribution of the components

that may migrate from node to node can specify the location of a component instance by marking it with a location tagged value, which you can then render in a component diagram (although, technically speaking, a diagram that contains only instances is an object diagram).

– If you want to model the actions that cause a component to migrate, create a corresponding interaction diagram that contains component instances.

Modeling Adaptable Systems

Forward and Reverse Engineering

• When you forward engineer a class or a collaboration, you really forward engineer to a component that represents the source code, binary library, or executable for that class or collaboration

• when you reverse engineer source code, binary libraries, or executables, you really reverse engineer to a component or set of components that, in turn, trace to classes or collaborations.

Predefined Component Diagram Stereotypes

• File– Usually a source code file

• Binary / Library– Usually a compiled segment directly linkable into other

compilations• Executable

– Usually a directly executable module• Table

– Usually a database table• Page

– Usually a Web page• Document

– Usually a documentation file (as opposed to compilable code)

Example of a UML Component Diagram

Example of Source Code Dependencies

<<page>>home.html

<<file>>aProg.java

<<document>>aProg.doc

<<document>>anotherProg.doc

<<file>>anotherProg.java

Runtime Component Example

<<library>>comms.dll

<<library>>graphics.dll

<<library>>dbgate.dll

<<executable>>viewer.exe

Component Diagram

• Shows an encapsulated class and its interfaces, ports, and internal structure consisting of nested components and connectors

• Addresses the static design implementation view of a system

Component Diagram Example in UML 1.4

Component Diagram Example in UML 2

Copyright © 1997 by Rational Software Corporation

Course CourseOffering

Student Professor

contoh

Course.dll

People.dll

Course

User

Register.exeBilling.exe

BillingSystem

NOTE :Component and Composite

Structure Diagrams

Component and Composite Structure Diagrams

• A component diagram shows the internal parts, connectors, and ports that implement a component

• A composite structure diagram shows the internal structure of a class or a collaboration

• The difference between component and composite structure is small and we will treat them both as component diagrams

Terms and Concepts

• An interface is a collection of operations that specify

a service that is provided by or requested from a

class or component

• A component is a replaceable part of a system that

conforms to and provides the realization of a set of

interfaces

• A port is a specific window into an encapsulated

component accepting messages to and from the

component conforming to specified interfaces

Terms and Concepts (con’t)

• Internal structure is the implementation of a

component by means of a set of parts that are

connected together in a specific way

• A part is the specification of a role that composes

part of the implementation of a component.

– In an instance of the component, there is an instance

corresponding to the part

• A connector is a communication relationship between

two parts or ports within the context of a component

Components

• A component is a replaceable part of a

system that conforms to and provides

the realization of a set of interfaces

• Graphically, a component is rendered

as a rectangle with a small two-pronged

icon in its upper right corner

Components and Interfaces

• An interface is a collection of operations

that are used to specify a service of a

class or a component

• An interface that a component realizes

is called a provided interface

– An interface that the component provides

as a service to other components

Components and Interfaces• An interface that a component uses is called

a required interface

– An interface that the component conforms to when requesting services from other components

• A given interface may be provided by one component and required by another

• A component that uses a given interface will function properly no matter what component

realizes that interface

Components and Interfaces

Binary Replaceability• The basic intent of every component-

based operating system facility is to

permit the assembly of systems from

binary replaceable parts

– Can create a system out of components

and then evolve that system by adding new

components and replacing old ones

Characteristics of A Component

• It is replaceable

• It is part of a system

• It conforms to and provides the realization of a set

of interfaces

• Component diagrams can be used for both logical

and physical modeling

– Component diagrams are often used for physical

modeling of the software architectures of systems

Organizing Components

• Can organize components by grouping

them in packages in the same manner

in which one organizes classes

• Can organize components by specifying

dependency, generalization, association

(including aggregation), and realization

relationship among them

Ports• A port is an explicit window into an

encapsulated component• A port has identity

• Ports permit the interfaces of a component to be divided into discrete packets and used independently

• A port is shown as a small square straddling the border of a component– It represents a hole through the encapsulation

boundary of the component

Ports (con’t)• Both provided and required interfaces may be

attached to a port

– A provided interface represents a service that can be requested through that port

– A required interface represents a service that the port needs to obtain from some other component

• Each port has a name so that it can be uniquely identified given the component and

the port name

• Ports are part of a component

Ports

Internal Structure• The internal structure of a component is

the parts that compose the implementation of the component together with the connections among them

• A part is a unit of the implementation of a component

– A part has a name and a type

Parts within A Component

Parts of the Same Type

Connector• A wire between two ports is called a

connector• Show connectors in two ways

– If two components are wired explicitly, draw a line between them or their ports

– If two components are connected because they have compatible interfaces, use a ball-and-socket notation

• A delegation connector wires internal ports to external ports of the overall component

Connectors

Component Diagrams

• A component diagram shows an

encapsulated class and its interfaces,

ports, and internal structure consisting

of nested components and connectors

• Component diagrams address the static

design implementation view of a system

Example of Component Diagram