Upload
vuongnhi
View
217
Download
0
Embed Size (px)
Citation preview
Análise e Projeto em SOA (Service Oriented Architecture)
Especificação do
modelo de negócios
Analisar serviços
Implementação
Teste
Avaliação
Planejamento
Inicial
Planejamento
Modelagem do
Negócio
Requisitos
Projetar Serviços
Arquiteto de Informação
Análise e Projeto OO
com UML e Padrões| 3
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista de Banco de Dados
Arquiteto de
Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas/ componentes
Projetar Base de Dados
Analista de Sistemas
Projetar classes
Prototipar Interface gráfica
Analisar Serviços
Projetar Serviços
Arquiteto de Informação
Análise e Projeto OO
com UML e Padrões| 5
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista de Banco de Dados
Arquiteto de
Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas/ componentes
Projetar Base de Dados
Analista de Sistemas
Projetar classes
Prototipar Interface gráfica
Analisar Serviços
Projetar Serviços
Analisar caso de uso |
6
Objetivos desta atividade
Gerar artefatos para facilitar e alinhar o entendimento entre os stakeholders
Prototipação e avaliação da GUI
– Organização das informações
– Input para Designers
– Teste de usabilidade
Analisar caso de uso |
7
Visão geral dos artefatos
Arquiteto da
informação
Prototipar Interface
Gráfica
Glossário Modelo de
Casos de Uso
Modelo de
Informação do
Negócio
Protótipo da
Interface Gráfica
Modelo
Navegacional
Documento de
Requisitos
Documento da
Arquitetura
Prototipação da
Interface Gráfica
Analisar caso de uso |
8
Passos para Prototipar a GUI
1. Modelar conceitos de negócios
- Modelo de Informação do Negócio
2. Projetar Fluxo de Informação
- Modelo Navegacional
3. Elaborar Protótipo de Interface
- Protótipo de Interface Gráfica
Analisar caso de uso |
9
1. Modelar conceitos de negócios
Modelo conceitual das informações/entidades manipuladas pelo sistema
Pré modelo E-R
Vai ajudar na organização das informações
Multiplicidade é opcional
Modelo independente de computação (CIM)
Actor A
UC 01
UC 02
UC 03
UC 04
I 1 I2
10..1
I2 I31 1..*
I 1 I2
10..1
I 1 I2
10..1
I 1 I2
10..1
I31 1..*
1. Modelar conceitos de negócios
QIB - Diagrama de Casos de Uso Usaremos o QIB como exemplo
Operadora do DOC
Desbloquear Talões
de Cheque
Efetuar Login
Alterar Senha
Consultar Saldo
Consultar Extrato
Consultar Qualiti CardRealizar Transferência
Consultar Cheques
Solicitar Talões de Cheque
Realizar DOC
ClienteAtor
Operadora Cartão de
Crédito
Efetuar Pagamento do
Qualiti Card
Mostrar Dados da
Consulta
<<include>>
<<include>>
Analisar caso de uso |
13
2. Projetar Fluxo de Informação
Gerar o modelo navegacional do sistema
– Fluxo de informação do sistema
Pode ser:
– Sitemap
– Interface flow diagram (Diagrama de fluxo)
– Screen Flow (Fluxo de Tela)
Modelo independente de computação (CIM)
Analisar caso de uso |
15
Modelo Navegacional do QIB
Home
Minha página
Conta corrente
Cartões Serviços
DOC
Analisar caso de uso |
16
3. Elaborar Protótipo de Interface
Modelo Navegacional + Modelo de Informação do negócio = “wireframe detalhado”
Layout completo das telas do sistema:
– Organização das informações
– Ações de links e botões
– Tratamento de erros e fluxos secundários
É útil?
Como criar os artefatos?
Ferramentas:
– Axure RP(wireframe), Smartdraw (sitemap), Netbeans (Fluxo de telas)
Exemplos:
– www.cin.ufpe.br/~vtb/wireframes
– http://www.axure.com/Samples/AxureRPFeaturesSample/AxureRPFeaturesSample_Start.html
– http://www.axure.com/Samples/RegistrationSample/RegistrationSample_Start.html
Prototipar Interface Gráfica
Exercício: – Baseado no Modelo Navegacional e no modelo de
informação, construa o protótipo da interface
Sugestão: Axure RP – http://www.axure.com/downloads.aspx
– http://www.axure.com/downloadThanks.aspx?version=50
– http://www.youtube.com/watch?v=xgUE3BuaKZ4&feature=related
– http://www.youtube.com/watch?v=sieYeDepdzA&feature=related
– http://www.youtube.com/watch?v=-NwsjE5LY1M&feature=related
Contexto
Arquiteto de Informação
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista de Banco de Dados
Arquiteto de Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas
Projetar
Base de Dados
Analista de Sistemas
decisões do arquiteto
<<subsystem>>
Check List bla bla
bla
blabla
Projetar classes
Prototipar Interface gráfica
Analisar Serviços
Projetar Serviços
»Visão inicial da arquitetura (orientada a serviços) do sistema
»Sistemática para identificação dos serviços e componentes
“Análise” diferente do RUP
Objetivos
Para Identificar Serviços:
1. Empacotar Casos de Uso
2. Construir Arquitetura de Serviços
3. Identificar Serviços de Entidade
4. Revisar Resultados
Para Identificar Serviços:
1. Empacotar Casos de Uso
2. Construir Arquitetura de Serviços
3. Identificar Serviços de Entidades
4. Revisar Resultados
Analisa
r Serv
iços
Exem
plo
do Q
IB
Operadora do DOC
Desbloquear Talões
de Cheque
Efetuar Login
Alterar Senha
Consultar Saldo
Consultar Extrato
Consultar Qualiti CardRealizar Transferência
Consultar Cheques
Solicitar Talões de Cheque
Realizar DOC
ClienteAtor
Operadora Cartão de
Crédito
Efetuar Pagamento do
Qualiti Card
Mostrar Dados da
Consulta
<<include>>
<<include>>
Exem
plo
do Q
IB
ClienteAtor
Realizar Doc
Realizar Transferência
Operadora Doc
Controle Cheque
Controle de Acesso
Controle Conta
Controle Qualit Card
Operadora de Cartão de Crédito
2. Construir Arquitetura de Serviços
Arquitetura de Serviços (Service Architecture) é gerada a partir do modelo de casos de uso
Passo inicial para identificação dos serviços do sistema
SOAML (Profile UML para modelar SOA)
Arquitetura de Serviços
Services architecture descreve como os participantes consomem e fornecem serviços para atender aos requisitos do negócio
Participant representa uma “parte” que consome e/ou fornece serviços. Pode representar pessoas, organizações ou sistemas
A service contract é a especificação do acordo entre provedores e consumidores de um serviço quanto às informações trocadas entre participantes
• Gerada estaticamente a partir do modelo de casos de uso “empacotados”:
• Atores => participant
• Sistema => participant
• Pacote de casos de uso => Service Contract
• Relação na direção caso de uso – ator => Service Contract
• Casos de uso no modelo principal=> Service Contract
Arquitetura de Serviços
Ator 1Ator 2
Pacote 1
Pacote 2
UC 1
UC2
UC3
UC 4
UC 5
Analisa
r Serv
iços
Pacote1<<Service Contract>>
Pacote2<<Service Contract>>
UC5<<Service Contract>>
UC5-Ator2<<Service Contract>>
Ator1<<Participant>> Ator2
<<Participant>>Sistema
<<Participant>>
consume
consume
consume
provide
provide
provide
consume provide
Arq
uit
etu
ra d
e S
erv
iços
Participants
ClienteAtor
Realizar Doc
Realizar Transferência
Operadora Doc
Controle Cheque
Controle de Acesso
Controle Conta
Controle Qualit Card
Operadora de Cartão de Crédito
Sistema back-end<<participant>>
Operadora DOC<<participant>>
Operadora Cartão<<participant>>
Cliente Front-end<<consumer>>
Services Contracts
Realiazr Transferencia<<Service Contract>>
ClienteAtor
Realizar Doc
Realizar Transferência
Operadora Doc
Controle Cheque
Controle de Acesso
Controle Conta
Controle Qualit Card
Operadora de Cartão de Crédito
Relizar Doc<<Service Contract>>
Controle de Acesso<<Service Contract>>
Controle de Cheque<<Service Contract>>
Controle de Conta<<Service Contract>>
Controle Qualiti Card<<Service Contract>>
Servico Operadora Doc<<Service Contract>> Servico Operadora Cartao
<<Service Contract>>
Arquitetura de Serviços
Cliente Front-end<<consumer>>
Sistema back-end<<participant>>
Operadora DOC<<participant>>
Operadora Cartão<<participant>>
Controle de Cheque<<Service Contract>>
Controle de Acesso<<Service Contract>>
Controle de Conta<<Service Contract>>
Controle Qualiti Card<<Service Contract>>
Realiazar Transferencia<<Service Contract>>
Relizar Doc<<Service Contract>>
consumer
consumer
consumer
provider
provider
provider
provider
consumer
consumer
Servico Operadora Cartao<<Service Contract>>
Servico Operadora Doc<<Service Contract>>
provider
comsumer
consumer
provider
provider
3. Identificar Serviços de entidades
Um tipo de serviço que é derivado de um ou mais entidades de negócio relacionadas
– São altamente reutilizáveis e usados por vários serviços
– Gerados a partir do Modelo de Informação do Negócio
Exemplo: Serviços para fazer CRUD
3. Identificar Serviços de entidades
ContaintInternetConta PagamentoCartãoComprovante
Serviço Conta<<Service Contract>>
Serviço Conta Internet<<Service Contract>>
Serviço PagamentoCartão<<Service Contract>>
Interação dos Serviços
Sistemática “semelhante” a Distribuir comportamento entre as classes
Para cada Serviço (service contract)
– Diagrama de seqüência (coreografia dos serviços)
– Surgimento de novas entidades
Atualizar as classes com atributos
Interação dos Serviços
Levar em consideração TODOS os casos de uso envolvidos
Diagrama de interação único
– Pelo menos 2 casos de uso por diagrama
Não possuem mensagens reflexivas – Por que?
ClienteAtor
Realizar Doc
Realizar Transferência
Operadora Doc
Controle Cheque
Controle de Acesso
Controle Conta
Controle Qualit Card
Operadora de Cartão de Crédito
Mensagens de retorno
: Cliente Front-end : Controle de Acesso
: Serviço Conta Internet
1 : logar(login,senha)
2 : existe(login, senha)
3 : ContaInternet
4 : sessão
5 : alterarSenha(login,senhaAntiga, SenhaNova)
6 : existe(login,senha)
7 : ContaInternet
8 : atualizar(ContaInternet)
9 : Conta Internet
10 : sessão
Atualizar atributos das entidades
Possíveis fontes: conhecimento do negócio, requisitos, glossário, modelo do negócio, mensagens do modelo de interação etc.
São propriedades/características das entidades identificadas – informação cujo valor é o aspecto crucial
– informação de propriedade exclusiva do objeto
Caso seja identificada nova entidade, verificar necessidade de criar novo serviço
Remover entidades desnecessárias
Modelo de Informação Refinado
ContaintInternet
+login+senha
Conta
+numero+saldo
PagamentoCartão
+numero da fatura+data+valor+numero da conta
Identificação de componentes
Sistemática para identificar os componentes
– Identificar os participants provedores
– Componentes “provedores” implementam os contratos de serviços
– Definir relacionamento entre componentes
Identi
ficar
Com
ponente
s Cliente Front-end<<participant>> Sistema back-end
<<participant>>
Operadora Cartão<<participant>>
ControleAcesso<<Service Contract>>
consumerprovider
ControleConta<<Service Contractt>>
consumerprovider
ControleQualitiCard<<Service Contract>>
consumerconsumer
OperadoraCartao<<Service Contract>>
comsumer provider
ContaInternet<<Service Contract>>
Transação<<Service Contract>>
ContaBancaria<<Service Contract>>
Cliente Front-end<<Front-end>>
Controle ContaControle de Acesso Controle Cartão
IControleAcesso IControleConta IControleCartão
Trasação
ITrasaçãoIContaInternet
ContaInternet ContaBancaria
IContaBancaria
IOperadoraCartão
OperadoraCartão
Arquiteto de Informação
Análise e Projeto OO
com UML e Padrões|
51
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista de Banco de Dados
Arquiteto de
Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas/ componentes
Projetar Base de Dados
Analista de Sistemas
Projetar classes
Prototipar Interface gráfica
Analisar Serviços
Projetar Serviços
Identi
ficar
Com
ponente
s Cliente Front-end<<participant>> Sistema back-end
<<participant>>
Operadora Cartão<<participant>>
ControleAcesso<<Service Contract>>
consumerprovider
ControleConta<<Service Contractt>>
consumerprovider
ControleQualitiCard<<Service Contract>>
consumerconsumer
OperadoraCartao<<Service Contract>>
comsumer provider
ContaInternet<<Service Contract>>
Transação<<Service Contract>>
ContaBancaria<<Service Contract>>
Cliente Front-end<<Front-end>>
Controle ContaControle de Acesso Controle Cartão
IControleAcesso IControleConta IControleCartão
Trasação
ITrasaçãoIContaInternet
ContaInternet ContaBancaria
IContaBancaria
IOperadoraCartão
OperadoraCartão
Lembrando o resultado
de Analisar Serviços …
1. Refinar Análise de Serviços
Baseado no: – Conhecimento do negócio – Modelo de interação dos serviços – Modelo de Componentes dos serviços
Analisar os contratos de serviços e componentes identificados até o momento – Empacotamento foi correto? – Todos os componentes de front-end foram
identificados? – Podemos “agrupar” serviços semelhantes? – Todas as funcionalidades foram identificadas?
ClienteAtor
Realizar Doc
Realizar Transferência
Operadora Doc
Controle Cheque
Controle de Acesso
Controle Conta
Controle Qualit Card
Operadora de Cartão de Crédito
ClienteAtor
Realizar Doc
Operadora Doc
Controle Cheque
Controle de Acesso
Controle Conta
Controle Qualit Card
Operadora de Cartão de Crédito
ServiçoControleAcesso<<Service Contract>>
+logar(login, senha)+alterarSenha(login, senhaAntiga, senhaNova)
Servico Cadastro ContaInternet<<Service Contract>>
+existe(login, senha)+atualizar(login, senha)
ServicoQualitiCard<<Service Contract>>
+EfetuarpagamentoQualitCard()
Componente ContaInternet
Componente Controle de Acesso
Componente Qualiti Card
Componente Cliente Front-end
Servico Operadora Cartao<<Service Contract>>
+enviar()
Serviço Pagamento cartão<<Service Contract>>
Compoente Operadora Cartão
Componente Pagamento cartão
Componente Cadastro ContaBancariaServiço Cadastro ContaBancaria
<<Service Contract>>
ServiçoControleAcesso<<Service Contract>>
+logar(login, senha)+alterarSenha(login, senhaAntiga, senhaNova)
Servico Cadastro ContaInternet<<Service Contract>>
+existe(login, senha)+atualizar(login, senha)
ServicoQualitiCard<<Service Contract>>
+EfetuarpagamentoQualitCard()
Componente ContaInternet
Componente Controle de AcessoComponente Qualiti Card
Componente Cliente Front-end
Servico Operadora Cartao<<Service Contract>>
+enviar()
Serviço Pagamento cartão<<Service Contract>>
Compoente Operadora Cartão
Componente Pagamento cartão Componente Cadastro ContaBancaria
Serviço Cadastro ContaBancaria<<Service Contract>>
2. Definir Padrão de Arquitetura
O arquiteto pode seguir um padrão existente para estruturar a aplicação
O arquiteto também pode definir novos padrões ou atualizar orientações existentes
Identificar oportunidades de reuso: – serviços e componentes disponíveis no mercado
– Serviços e componentes de aplicações já desenvolvidas
– Serviços e componentes que podem se tornar reusáveis para outros projetos
2. Definir Padrão de Arquitetura
O Arquiteto deve levar em consideração as tecnologias que serão usadas:
– Ex: .net, java, flash, C++
– Como será a integração do Front e back-end
Necessidades do
negócio
Além do sistema web
– Acessado por celular e desktop (windows, mac e linux)
– O ambiente de produção é Windows Server 2003 com .net framework 2.0 e banco de dados sql server 2005
Definição da Arquitetura
Interface web=> ASP.NET Dispositivos Móveis => Iphone (iOS) Desktop=> aplicação Java Integração com o front-end será feita via
web service Os componentes serão todos
implementados (e não adquiridos) Os componentes de acesso a dados deverão
implementar o padrão Bridge
Componente ContaInternet
Componente Controle de AcessoComponente Qualiti Card
Compoente Operadora Cartão
Compoente CadastrotransacaoComponente Cadastro ContaBancaria
Front-end Iphone<<front-end>>
Desktop<<Front-end>>
Front-end Web<<Front-end>>
IServicoQualitCard
+EfetuarpagamentoQualitCard()
ICadastroTransacao
+ConsultarSaldo()+ConsultarExtrato()+RealizarTransferencia()
IServicoControleAcesso
+logar(login, senha)+alterarSenha(login, senhaAtual, SenhaNova)
ICadastroContaBancaria
+inserir()+remover()+atualizar()+consultar()
IServicoOperadoraCartao
+enviar()
ICadastroContaInternet
+inserir(ContaInternet)+remover(ContaInternet)+atualizar(ContaInternet)+existe(login, senha)
FachadaWebservice
IFachadaWebServices
Projetar Back-end
• Envolve o projeto dos componentes do back-end
• Coincide com a atividade “Projetar Subsistemas” do RUP
• Será detalhada posteriomente (atividades comuns a RUP e SOA)
Projetar Front-end
Baseado no protótipo da interface, tecnologias utilizadas e integração front-back end
Front-end Iphone<<front-end>>
Desktop<<Front-end>>
Front-end Web<<Front-end>>
FachadaWebservice
IFachadaWebServices
Front-end - Exemplo