uml components zalunos: yfelipe desiderati e souza - [email protected] ybernardo faria...

27
UML Components Alunos: Felipe Desiderati e Souza - [email protected] Bernardo Faria de Miranda - [email protected]

Upload: internet

Post on 18-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

UML Components

Alunos: Felipe Desiderati e Souza -

[email protected] Bernardo Faria de Miranda - [email protected]

Page 2: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

Agenda

Arquitetura de sistemas e componentesWorkflow de RequisitosWorkflow de EspecificaçõesModelagem de componentes com UML

Page 3: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 4: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 5: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 6: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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%

Page 7: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 8: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 9: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 10: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 11: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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/

Page 12: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 13: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 14: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

Workflow de Especificação

Requisitos

Provisão

EspecificaçãoIdentificação deComponentes

Interação entreComponentes

Especificação deComponentes

Page 15: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 16: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 17: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 18: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 19: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

Arquiteturas de Componentes

<<Espec. Componente>>SistemaReserva

<<Espec. Componente>>SistemaPagamento

<<Espec. Componente>>ClienteMgr

<<Espec. Componente>>HotelMgr

IRealizaReserva

IRealizaCheckIn

IClienteMgt

IPagamento

IHotelMgt

Page 20: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

Arq. Mínima de Objetos Componentes

<<Espec. Componente>>:SistemaReserva

<<Espec. Componente>>:SistemaPagamento

<<Espec. Componente>>:ClienteMgr

<<Espec. Componente>>:HotelMgr

IRealizaReserva

IRealizaCheckIn

IClienteMgt

IPagamento

IHotelMgt

Page 21: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 22: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 23: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 24: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

*

Page 25: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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.

Page 26: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

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

Page 27: UML Components zAlunos: yFelipe Desiderati e Souza - felipedesiderati@terra.com.br yBernardo Faria de Miranda - bernardofm@yahoo.com.br

UML Components

FIM