Professional Documents
Culture Documents
Alunos:
Felipe Desiderati e Souza felipedesiderati@terra.com.br
Bernardo Faria de Miranda - bernardofm@yahoo.com.br
Agenda
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
Aplicao
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
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
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
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
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
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
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
Realizar Reserva
Responsvel pela Reserva
Reservar um quarto no hotel
Cenrio Principal do Sucesso
1.
2.
3.
4.
5.
6.
7.
8.
9.
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
Caso de Uso
Etapas
Caso de
Uso
Realizar
Reserva
Realizar
Reserva
<<tipo interface>>
IRealizaReserva
getDetalheHotel()
getInfoQuarto()
realizaReserva()
Tipo de Dilogo
Interface do
Sistema
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
<<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
Arquiteturas de Componentes
<<Espec. Componente>>
SistemaReserva
IRealizaReserva
IRealizaCheckIn
<<Espec. Componente>>
SistemaPagamento
IPagamento
<<Espec. Componente>>
ClienteMgr
IClienteMgt
<<Espec. Componente>>
HotelMgr
IHotelMgt
IRealizaReserva
IRealizaCheckIn
<<Espec. Componente>>
:SistemaPagamento
IPagamento
<<Espec. Componente>>
:ClienteMgr
IClienteMgt
<<Espec. Componente>>
:HotelMgr
IHotelMgt
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
/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
*
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
Diagrama de
Classe
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