Analisar Serviços Vítor Braga – [email protected] Platform Platform Specific Independent Model (PSM) Model (PIM) Computation Independent Model (CIM) MDA Terms S O A M D E Analisar serviços Visão inicial da arquitetura do Sistema Sistemática para identificação dos serviços e componentes “Análise” diferente do RUP Fluxo de Atividades Passos para Identificar Serviços 1. Empacotar Casos de Uso 2. Construir Arquitetura de Serviços 3. Identificar Serviços de Entidades 5. Revisar Resultados Exemplo do QIB Desbloquear Talões de Cheque Efetuar Login Solicitar Talões de Cheque Alterar Senha Consultar Cheques ClienteAtor Consultar Saldo <<include>> <<include>> Realizar DOC Consultar Extrato Realizar Transferência Consultar Qualiti Card Efetuar Pagamento do Qualiti Card Operadora do DOC Operadora Cartão de Crédito Mostrar Dados da Consulta 5 mim... Desbloquear Talões de Cheque Efetuar Login Solicitar Talões de Cheque Alterar Senha Consultar Cheques ClienteAtor Consultar Saldo <<include>> <<include>> Realizar DOC Consultar Extrato Realizar Transferência Consultar Qualiti Card Efetuar Pagamento do Qualiti Card Operadora do DOC Operadora Cartão de Crédito Mostrar Dados da Consulta Controle de Acesso Controle Cheque Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc 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) Sistemática para construir a Arquitetura de Serviços • Gerada estaticamente a partir do modelo de casos de uso “empacotado”: 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 QIB Controle de Acesso Controle Cheque Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito Participants <<consumer>> Cliente Front-end Controle de Acesso Controle Cheque Controle Conta <<participant>> Sistema back-end Realizar Transferência ClienteAtor Realizar Doc Controle Qualit Card <<participant>> Operadora DOC <<participant>> Operadora Cartão Operadora Doc Operadora de Cartão de Crédito Services Contracts <<Service Contract>> Controle de Acesso <<Service Contract>> Controle de Cheque <<Service Contract>> Controle de Conta Controle de Acesso Controle Cheque Controle Conta <<Service Contract>> Realiazr Transferencia Realizar Transferência ClienteAtor Realizar Doc Controle Qualit Card <<Service Contract>> Controle Qualiti Card <<Service Contract>> Relizar Doc <<Service Contract>> Servico Operadora Doc Operadora Doc Operadora de Cartão de Crédito <<Service Contract>> Servico Operadora Cartao Arquitetura de Serviços <<Service Contract>> Controle de Cheque consumer <<Service Contract>> Realiazar Transferencia consumer consumer <<participant>> Operadora Cartão provider <<participant>> Sistema back-end provider consumer consumer provider comsumer <<Service Contract>> Controle de Acesso <<consumer>> Cliente Front-end <<Service Contract>> Servico Operadora Cartao provider <<Service Contract>> Controle de Conta provider <<Service Contract>> Servico Operadora Doc provider <<Service Contract>> Controle Qualiti Card <<Service Contract>> Relizar Doc consumer provider <<participant>> Operadora DOC 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ável e usados por vários serviços Exemplo: Serviços para fazer CRUD 2 mim ... 3. Identificar Serviços de entidades Conta <<Service Contract>> Serviço Conta ContaintInternet <<Service Contract>> Serviço Conta Internet PagamentoCartão Comprovante <<Service Contract>> Serviço PagamentoCartão Fluxo de Atividades Interação dos Serviços Sistemática “semelhante” Distribuir comportamento entre as classes Para cada Serviço (service contract) Diagrama de seqüência (coreografia dos serviços) Surgimento de novas entidades Atualizar negócio o Modelo de Informação do Interação dos Serviços Levar em consideração TODOS os casos de uso envolvidos Diagrama de interação único* Não possuem mensagens reflexivas Por que? Controle de Acesso Controle Cheque Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito 5 mim... http://www.cin.ufpe.br/~if718/aulaspratic as/aula2010.2/ : Serviço Conta Internet : Controle de Acesso : Cliente Front-end 1 : logar(login,senha) 2 : existe(login, senha) 3 : Conta Internet 4 : sessão 5 : alterarSenha(login,senhaAntiga, SenhaNova) 6 : existe(login,senha) 7 : Conta Internet 8 : atualizar(Usuario) 9 : Conta Internet 10 : sessão Atualizar o Modelo de informaçã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 atualizado Conta +numero +saldo ContaintInternet +login +senha PagamentoCartão +numero da fatura +data +valor +numero da conta Fluxo de Atividades Identificação de componentes Sistemática 1. 2. 3. para identificar os componentes Identificar os participants provedores Componentes “provedores” implementam os contratos de serviços Definir relacionamento entre componentes 5 mim... Arquitetura componentizada <<Service Contract>> Controle de Acesso Componente Controle de Acesso +logar(login, senha) +alterarSenha(login, senhaAntiga, senhaNova) <<Service Contract>> Controle de Cheque Componente Cliente Front-end << C +e +a Componente Cheque +Operation1() +..() <<Service Contract>> Controle Qualiti Card Componente Qualiti Card <<Servi Servico Op +Operation1() +..() <<Service Contract>> Realiazar Transferencia Componente Transferencia +Operation1() +..() <<Service Contract>> Relizar Doc +Operation1() Componente Realizar Doc <<Service Cont Servico Operad Apresentação para o projeto Especificação do Modelo de Negócio: Modelo de Informação do Negócio Modelo Navegacional Protótipo de Interface Gráfica (pelo menos as principais telas do sistema) Quanto mais completo melhor Análise de Serviços: Arquitetura dos Serviços Modelo de Interação dos Serviços (pelo menos 5 serviços) Quanto mais completo melhor Modelo de Informação Refinado Diagrama de Componentes dos Serviços Dúvidas ?