UML Components
Alunos: Felipe Desiderati e Souza -
[email protected] Bernardo Faria de Miranda - [email protected]
Agenda
Arquitetura de sistemas e componentesWorkflow de RequisitosWorkflow de EspecificaçõesModelagem de componentes com UML
Dados
Serviço
Apresentação
Camadas de Arquitetura de Aplicação
Cliente Servidor Web
Cliente Web
Servidor de Aplicação
Servidor de Banco de Dados
Sistema Existente(Servidor)
HTTP
RMI / IIOP / DCOM
RMI / IIOP / DCOM
JDBC / ODBC / SQL
Qualquer
Aplicação Blueprint
Foco da apresentação:Como desenvolver esta parte?
Banco de DadosSistema
existente
Servidor de Aplicação
Servidor Web
A/JSP
ObjetoComponente
ObjetoComponente
ObjetoComponente
ObjetoComponenteObjeto
Componente
Camadas de Aplicação Finer-Grain
Apresentação
Serviço
Dados
• Dialog Logic (Casos de Uso)• Suporte à múltiplos UI’s• Estado de Diálogo Transitório
• UI Logic• O que o usuário vê?
• Sub-transações• Estado de Ocorrência do Negócio
• Transações de negócio• Permite múltiplos Diálogos (incluindo Batch)• Estado de Integridade do Negócio
Sis
tem
a
Aplic
açã
o
User Interface (UI)
User Dialog (UD)
Serviços de Negócio
Serviços de Sistema
Gerenciamento e Desenvolvimento
Processos de gerenciamento Planejamento do trabalho e prazos Alocação de recursos Monitor de progresso Controle de risco
Modelo de Conceito de Negócio
Especificações de Componentes
Componentes
Modelo de Caso de Uso
O% % Completo 100%
Gerenciamento e Desenvolvimento
Processos de desenvolvimento Criação de software de trabalho a partir de requisitos Foco no desenvolvimento de software (artefatos) Descrito independentemente dos processos de
gerenciamento Define a ordenação das restrições e dependências Organizado em Workflows
Workflow de Especificação
Modelos deCasos de Uso
Modelos deConceitos de Negócio
Especificações de Componentes e Arquiteturas
Workflows para o Processo de Desenv.
Requisitos
Especificação Provisionamento Montagem
Teste
Deploy
User Interface
RestriçõesTécnicas
Componentes
Requisitos de Negócio
Recursos Existentes
Modelo de Conceitos
de Negócio
Modelo de
Casos de Uso
Especificações de Componentee Arquitetura
Workflow (c.f. RUP)
Artefato
Partes
PartesTestada
s
Workflow de Requisitos
Workflow
Desenvolvimento deModelo de Negócio
Conceitual
Desenvolvimento deProcessos de
Negócio
Identificação deCasos de Uso
Casos de UsoModelo deNegócio Conceitual
Requisitos de NegócioProblema de Domínio de
Conhecimento
Decisões deLimite de Software
Modelo de Conceito de Negócio
Hotel
ReservaCliente Quarto
Endereço
Pagamento Conta
SecretáriaRede Hoteleira
Tipo Quarto
Hotel Contactado
Alocação
Endereço de Contato
1
1
1
1
1
1
11
1..*
1..*
1..*
1
0..1
0..1
0..1
0..1
* **
* *
*1
Identificação de Casos de Uso
Um caso de uso descreve a interação que ocorre a partir deum único evento de negócio. Onde um evento dispara umnúmero de etapas de processos, todas as etapas de umúnico caso de uso.
VerificarDisponibilidade
Realizar Reserva
Confirmar Reserva
Esperar porEvento
Notificar Sistemade Pagamento
Cancelar Reserva
Refazer Reserva
Processar No Show
Realizar Check In
[Senão]
[Quarto Adequado]
Chegada do Cliente/
Cancelar Requisição/
No Show/(Cliente não se apresentou)
Início Processo/
Refazer Requisição/
Identificação de Casos de Uso
Sistema de Reserva
Cancelar Reserva
Realizar Reserva
Adicionar, alterar, remover
hotel, quarto,cliente, etc
Diagramas deCaso de Uso
Realizar Check In
Processar No Show
Atualizar Reserva
Cliente
Sistema de Pagamento
Administrador da Reserva
Responsável pela Reserva
Cenário Principal do Sucesso1. Responsável pela Reserva pede para realizar uma reserva2. Responsável pela Reserva seleciona hotel, datas, e tipo de quarto3. Sistema fornece a disponibilidade e preço4. Responsável pela Reserva concorda com o procedimento5. Responsável pela Reserva fornece o nome e código postal6. Responsável pela Reserva fornece email para contato7. Sistema realiza a reserva e gera um ticket8. Sistema fornece o ticket ao Responsável pela Reserva9. Sistema cria e envia uma confirmação por email
Extensões3. Quarto não disponível
a) Sistema oferece datas alternativas e/ou outros tipos de quartosb) Responsável pela Reserva seleciona um alternativa
6. Cliente já em arquivoa) Resumir 7
Identificação de Casos de Uso
Nome Realizar Reserva
Iniciador Responsável pela Reserva
Objetivo Reservar um quarto no hotel
Etapas
OuPontos deExtensão
Workflow de Especificação
Requisitos
Provisão
EspecificaçãoIdentificação deComponentes
Interação entreComponentes
Especificação deComponentes
Identificação de Componentes
Identificação deComponentesDesenvolvimento de
Modelo de Tipo deNegócio
Identificar Interfacesde Negócio
Criar Especificações deComponentes e Arqui-
teturas Iniciais
Interfaces deNegócio
Modelo deTipo de Negócio
Modelo deCaso de Uso
Padrões deArquitetura
Modelo deConceito de Negócio
Identificar Interfacesde Sistema e Operações
InterfacesExistentes
RecursosExistentes
Especificações deComponentes eArquiteturas
Interfaces deSistema
Identificar Interfaces de Sistema e Op.
As Interfaces de Sistema atuam como uma fachada - Elas sãoos pontos de contato entre os UI’s e outros agentes externos.São apoiadas pelo componentes na camada de serviços desistema.
RealizarReserva
RealizarReserva
Identificar exigências para o quartoSistema fornece o preçoRequisita uma reserva
<<tipo interface>>IRealizaReserva
getDetalheHotel()getInfoQuarto()realizaReserva()
Caso de Uso
EtapasCaso de
Uso
Tipo de Diálogo
Interface doSistema
Desenv. de Modelo de Tipo de Negócio
Hotel
ReservaCliente Quarto
Endereço
Pagamento Conta
SecretáriaRede Hoteleira
Tipo Quarto
Hotel Contactado
Alocação
Endereço de Contato
1
1
1
1
1
1
11
1..*
1..*
1..*
1
0..1
0..1
0..1
0..1
* **
* *
*1
Identificar Interfaces de Negócio
<<core>>Hotel
nome: String
<<tipo>>Quarto
numero: String<<tipo>>
Reserva
referencia: Stringdatas: DateRange
<<core>>Cliente
nome: StringcodPostal: Stringemail: String
<<tipo>>Tipo Quarto
nome: Stringpreco(Date): CurrencyprecoEstadia(DateRange): Currencydisponivel(DateRange): Boolean
<<tipo interface>>IClienteMgt A responsabilidade pelos tipos
de negócio é mostrada pelasdetenções
A responsabilidade por asse-gurar esta associação foi re-servado para IHotelMgt
1
11
1
1
1
*
*
*
*
*
*
* 1..*
1..*
0..1Alocação
<<tipo interface>>IHotelMgt
Arquiteturas de Componentes
<<Espec. Componente>>SistemaReserva
<<Espec. Componente>>SistemaPagamento
<<Espec. Componente>>ClienteMgr
<<Espec. Componente>>HotelMgr
IRealizaReserva
IRealizaCheckIn
IClienteMgt
IPagamento
IHotelMgt
Arq. Mínima de Objetos Componentes
<<Espec. Componente>>:SistemaReserva
<<Espec. Componente>>:SistemaPagamento
<<Espec. Componente>>:ClienteMgr
<<Espec. Componente>>:HotelMgr
IRealizaReserva
IRealizaCheckIn
IClienteMgt
IPagamento
IHotelMgt
Interação entre Componentes
Interação entreComponentes
Descobrir Operaçõesde Negócio
Refinar Especificaçõesde Componentes e
Arquiteturas
Refinar Interfaces eOperações
Interfaces
Interfaces deNegócio
Especificações de Componentes e Arquiteturas
Especificações de Componentes e Arquiteturas
Interfaces deSistema
Interação entre Componentes
/IClienteMgt
/IRealizaReserva:SistemaReserva
/IHotelMgt
<<tipo dados>>DetalhesCliente
nome: StringcodPostal[0..1]: Stringemail[0..1]: String
2: realizaReserva()
realizaReserva() 1: getClienteCompatibilizado()
2: notificaCliente()
<<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
Especificação de Componentes
Especificação deComponentes
Descobrir Operaçõesde Negócio
Especificar Restriçõespara Componente-
Interface
Especificar OperaçõesPré/Pós-Condições
Interfaces
Modelo de Tipode Negócio
Especificações de Componentes e Arquiteturas
Especificações de Componentes e ArquiteturasInterfaces
Modelo de Interface de Informação
<<tipo interface>>IClienteMgt
getClienteCompatibilizado (in dcli: DetalhesCliente , out idcli: IdCliente) : IntegercriaCliente (in dcli: DetalhesCliente, out idcli: IdCliente) : BooleangetDetalheCliente (in cli: IdCliente) : DetalhesClientenotificaCliente (in cli: IdCliente, in msg: String)
Define o conjunto de informações presumidas a seremassegurados por um objeto componente. Apenas parapropósitos de especificação.
As implementações não necessitam guardar estas infor-mações, mas precisam ser capazes de obtê-las.
O modelo necessita apenas explicitar os efeitos das ope-rações.
O modelo pode ser derivado a partir do Modelo de Tipode Negócio.
Cliente
Id: IdClientenome: StringcodPostal: Stringemail: String
*
Pré e Pós-Condições
Se a pré-condição é verdadeira, a pós-condição precisa ser verdadeira.
Se a pré-condição é falsa, a pós-condição não se aplica.
Uma pré-condição perdida é assumida como verdadeira.
Pré e pós-condições podem ser escritas em uma linguagem natural, ou em uma linguagem formal como a OCL.
Diagramas UML
Requisitos
Modelo de Conceito de Negócio
Modelo de Caso de Uso
Especificação
Modelo de Tipo de Negócio
Especificações de Interface
Especificações de Componente
Arquitetura de Componente
Interações
Diagramasde Caso de
Uso
Diagramasde Espec. de
Interface
Diagramasde Espec. deComponente
Diagramasde Arq. de
Componente
Diagrama deCaso de Uso
Diagrama deClasse
Diagramade Modelo deConceito de
Negócio
Diagramade Modelo de
Tipo deNegócio
Diagramade Responsa-bilidade deInterface
Diagramade Interação deComponentes
Diagrama deClasse
Diagrama deColaboração
Diagrama dePacotes
UML Components
FIM