You are on page 1of 27

UML Components

Alunos:
Felipe Desiderati e Souza felipedesiderati@terra.com.br
Bernardo Faria de Miranda - bernardofm@yahoo.com.br

Agenda

Arquitetura de sistemas e componentes


Workflow de Requisitos
Workflow de Especificaes
Modelagem de componentes com UML

Camadas de Arquitetura de Aplicao


Apresentao
Cliente Web
HTTP
Cliente

Servio

Servidor Web

RMI / IIOP /
DCOM
Servidor de Aplicao

Dados

JDBC / ODBC /
SQL
Servidor de Banco de Dados

RMI / IIOP /
DCOM
Qualque
r

Sistema Existente
(Servidor)

Aplicao Blueprint
Servidor Web
A/JSP

Servidor de Aplicao
Objeto
Componente

Objeto
Componente

Foco da apresentao:
Como desenvolver esta parte?

Objeto
Componente

Banco de Dados

Objeto
Componente

Objeto
Componente

Sistema
existente

Camadas de Aplicao Finer-Grain


Apresentao
User Interface (UI)

Aplicao

User Dialog (UD)

UI Logic
O que o usurio v?
Dialog Logic (Casos de Uso)
Suporte mltiplos UIs
Estado de Dilogo Transitrio

Sistema

Servio

Servios de Sistema
Servios de Negcio

Dados

Transaes de negcio
Permite mltiplos Dilogos
(incluindo Batch)
Estado de Integridade do Negcio
Sub-transaes
Estado de Ocorrncia do Negcio

Gerenciamento e Desenvolvimento
Processos de gerenciamento

Planejamento do trabalho e prazos


Alocao de recursos
Monitor de progresso
Controle de risco

O%
Modelo de Conceito de Negcio
Modelo de Caso de Uso
Especificaes de Componentes
Componentes

% Completo

100%

Gerenciamento e Desenvolvimento
Processos de desenvolvimento
Criao de software de trabalho a partir de requisitos
Foco no desenvolvimento de software (artefatos)
Descrito independentemente dos processos de
gerenciamento
Define a ordenao das restries e dependncias
Organizado em Workflows
Modelos de
Casos de Uso
Modelos de
Conceitos de Negcio

Workflow de
Especificao

Especificaes de
Componentes e Arquiteturas

Workflows para o Processo de Desenv.


Requisitos de Negcio

Artefato
Recursos Existentes

Requisitos

User Interface

Modelo de
Conceitos
de Negcio
Modelo
de
Casos de
Uso

Restries
Tcnicas

Especificao

Componentes

Provisionamento

Montagem

Especificaes de Componente
e Arquitetura

Partes

Teste
Partes
Testadas

Workflow (c.f. RUP)

Deploy

Workflow de Requisitos
Problema de Domnio de
Conhecimento

Requisitos de Negcio

Workflow
Desenvolvimento de
Modelo de Negcio
Conceitual

Desenvolvimento de
Processos de
Negcio

Identificao de
Casos de Uso

Modelo de
Negcio Conceitual

Casos de Uso

Decises de
Limite de Software

Modelo de Conceito de Negcio


Rede Hoteleira

1..*

1..*
Hotel Contactado

Reserva
1

Endereo de Contato0..1

Alocao
0..1

1
0..1

0..1
Conta

1..*
Quarto
*

Endereo

Pagamento

1
1

1
*

*
Cliente

Hotel

Secretria

1
Tipo Quarto

Identificao de Casos de Uso


Um caso de uso descreve a interao que ocorre a partir de
um nico evento de negcio. Onde um evento dispara um
nmero de etapas de processos, todas as etapas de um
nico caso de uso.

Realizar Check In
Chegada do Cliente/

Verificar
Disponibilidade

Esperar por
Evento

[Seno]

Cancelar Reserva
Cancelar Requisio/

Incio Processo/

[Quarto Adequado]

Realizar Reserva

Confirmar Reserva

Refazer Requisio/

Refazer Reserva

No Show/
(Cliente no se apresentou)

Processar No Show

Notificar Sistema
de Pagamento

Identificao de Casos de Uso


Responsvel pela Reserva

Sistema de Reserva
Cancelar Reserva

Client
e

Realizar Reserva

Atualizar Reserva

Sistema de Pagamento

Realizar Check In

Processar No Show

Adicionar,
alterar, remover
hotel, quarto,
cliente, etc
Administrador da Reserva

Diagramas de
Caso de Uso

Identificao de Casos de Uso


Nome
Iniciador
Objetivo
Etapas
Ou
Pontos de
Extenso

Realizar Reserva
Responsvel pela Reserva
Reservar um quarto no hotel
Cenrio Principal do Sucesso
1.
2.
3.
4.
5.
6.
7.
8.
9.

Responsvel pela Reserva pede para realizar uma reserva


Responsvel pela Reserva seleciona hotel, datas, e tipo de quarto
Sistema fornece a disponibilidade e preo
Responsvel pela Reserva concorda com o procedimento
Responsvel pela Reserva fornece o nome e cdigo postal
Responsvel pela Reserva fornece email para contato
Sistema realiza a reserva e gera um ticket
Sistema fornece o ticket ao Responsvel pela Reserva
Sistema cria e envia uma confirmao por email

Extenses
3. Quarto no disponvel
a) Sistema oferece datas alternativas e/ou outros tipos de quartos
b) Responsvel pela Reserva seleciona um alternativa
6. Cliente j em arquivo
a) Resumir 7

Workflow de Especificao
Requisitos
Especificao

Identificao de
Componentes
Interao entre
Componentes
Especificao de
Componentes

Proviso

Identificao de Componentes
Modelo de
Conceito de Negcio

Desenvolvimento de
Modelo de Tipo de
Negcio
Interfaces
Existentes

Recursos
Existentes

Modelo de
Tipo de Negcio

Identificar Interfaces
de Negcio

Modelo de
Caso de Uso

Identificao de
Componentes

Identificar Interfaces
de Sistema e Operaes

Criar Especificaes de
Componentes e Arquiteturas Iniciais
Interfaces de
Negcio

Especificaes de
Componentes e
Arquiteturas

Padres de
Arquitetura

Interfaces de
Sistema

Identificar Interfaces de Sistema e Op.


As Interfaces de Sistema atuam como uma fachada - Elas so
os pontos de contato entre os UIs e outros agentes externos.
So apoiadas pelo componentes na camada de servios de
sistema.

Caso de Uso

Etapas
Caso de
Uso

Realizar
Reserva

Identificar exigncias para o


quarto
Sistema fornece o preo
Requisita uma reserva

Realizar
Reserva

<<tipo interface>>
IRealizaReserva
getDetalheHotel()
getInfoQuarto()
realizaReserva()

Tipo de Dilogo

Interface do
Sistema

Desenv. de Modelo de Tipo de Negcio


Rede Hoteleira

1..*

1..*
Hotel Contactado

Reserva
1

Endereo de Contato0..1

Alocao
0..1

1
0..1

0..1
Conta

1..*
Quarto
*

Endereo

Pagamento

1
1

1
*

*
Cliente

Hotel

Secretria

1
Tipo Quarto

Identificar Interfaces de Negcio


<<tipo interface>>
IHotelMgt

<<core>>
Hotel

nome: String
1

1..*

<<tipo>>
Tipo Quarto

nome: String
preco(Date): Currency
precoEstadia(DateRange): Currency
disponivel(DateRange): Boolean
1

<<core>>
Cliente
nome: String
codPostal: String
email: String
*

*
<<tipo>>
Reserva
referencia: String *
datas: DateRange

1..*

*
<<tipo>>
Quarto
numero: String

Alocao 0..1

<<tipo interface>>
IClienteMgt

A responsabilidade pelos tipos


de negcio mostrada pelas
detenes

A responsabilidade por assegurar esta associao foi reservado para IHotelMgt

Arquiteturas de Componentes
<<Espec. Componente>>
SistemaReserva

IRealizaReserva
IRealizaCheckIn

<<Espec. Componente>>
SistemaPagamento

IPagamento

<<Espec. Componente>>
ClienteMgr

IClienteMgt
<<Espec. Componente>>
HotelMgr

IHotelMgt

Arq. Mnima de Objetos Componentes


<<Espec. Componente>>
:SistemaReserva

IRealizaReserva
IRealizaCheckIn

<<Espec. Componente>>
:SistemaPagamento

IPagamento

<<Espec. Componente>>
:ClienteMgr

IClienteMgt
<<Espec. Componente>>
:HotelMgr

IHotelMgt

Interao entre Componentes


Interfaces de
Negcio

Interfaces de
Sistema

Especificaes de
Componentes e Arquiteturas

Interao entre
Componentes
Descobrir Operaes
de Negcio

Refinar Interfaces e
Operaes

Interfaces

Refinar Especificaes
de Componentes e
Arquiteturas

Especificaes de
Componentes e Arquiteturas

Interao entre Componentes


/IClienteMgt
realizaReserva(
)

/IHotelMgt

1: getClienteCompatibilizado()
2: notificaCliente()

2:
realizaReserva()
<<tipo dados>>
DetalhesCliente
nome: String
codPostal[0..1]: String
email[0..1]: String

/IRealizaReserva:SistemaReserva

<<tipo interface>>
IRealizaReserva
getDetalheHotel (in hot: String) : DetalhesHotel []
getInfoQuarto (in res: DetalhesReserva, out disponivel: Boolean, out preco: Currency)
realizaReserva (in res: DetalhesReserva, in cli: DetalhesCliente, out referencia: String) : Integer
<<tipo interface>>
IHotelMgt
getDetalheHotel (in hot: String) : DetalhesHotel []
getInfoQuarto (in res: DetalhesReserva, out disponivel: Boolean, out preco: Currency)
realizaReserva (in res: DetalhesReserva, in cli: IdCliente, out referencia: String) : Boolean

Especificao de Componentes
Modelo de Tipo
de Negcio

Interfaces

Especificaes de
Componentes e Arquiteturas

Especificao de
Componentes
Descobrir Operaes
de Negcio

Especificar Operaes
Pr/Ps-Condies

Interfaces

Especificar Restries
para ComponenteInterface

Especificaes de
Componentes e Arquiteturas

Modelo de Interface de Informao


<<tipo interface>>
IClienteMgt
getClienteCompatibilizado (in dcli: DetalhesCliente , out idcli: IdCliente) : Integer
criaCliente (in dcli: DetalhesCliente, out idcli: IdCliente) : Boolean
getDetalheCliente (in cli: IdCliente) : DetalhesCliente
notificaCliente (in cli: IdCliente, in msg: String)

Define o conjunto de informaes presumidas a serem


assegurados por um objeto componente. Apenas para
propsitos de especificao.
As implementaes no necessitam guardar estas informaes, mas precisam ser capazes de obt-las.
O modelo necessita apenas explicitar os efeitos das operaes.
O modelo pode ser derivado a partir do Modelo de Tipo
de Negcio.

*
Cliente
Id: IdCliente
nome: String
codPostal: String
email: String

Pr e Ps-Condies
Se a pr-condio verdadeira, a ps-condio
precisa ser verdadeira.
Se a pr-condio falsa, a ps-condio no se
aplica.
Uma pr-condio perdida assumida como
verdadeira.
Pr e ps-condies podem ser escritas em uma
linguagem natural, ou em uma linguagem formal
como a OCL.

Diagramas UML
Diagrama de
Caso de Uso
Diagramas
de Caso de
Uso

Requisitos

Diagrama
de Modelo de
Conceito de
Negcio

Modelo de Conceito de Negcio

Diagrama de
Classe

Modelo de Caso de Uso

Diagrama de
Classe

Diagramas
de Espec. de
Interface

Diagrama
de Modelo de
Tipo de
Negcio

Especificao
Modelo de Tipo de Negcio

Diagramas
de Espec. de
Componente
Diagramas
de Arq. de
Componente

Especificaes de Interface

Diagrama
de Responsabilidade de
Interface

Especificaes de Componente
Arquitetura de Componente
Interaes
Diagrama de
Pacotes

Diagrama
de Interao de
Componentes

Diagrama de
Colaborao

UML Components

FIM

You might also like