Projetar Subsistema Analisar Serviços Arquiteto de Software Projetar Arquitetura Projetar Serviços Revisor de projeto Prototipar Interface gráfica Arquiteto de Informação Analisar Casos de Uso Projetar Casos de Uso Analista de Sistemas Check List bla bla bla blabla Projetar Subsistemas <<subsystem>> decisões do arquiteto Projetar classes Projetar Base de Dados Projetista de Banco de Dados Análise e Projeto OO com UML e Padrões| 2 Revisar Projeto Objetivos desta atividade • Identificar elementos internos ao subsistema (classes e outros subsistemas) que realizem a interface do subsistema – O comportamento da interface deve ser distribuído entre estes elementos, de forma análoga à análise e ao projeto de casos de uso • Este processo pode gerar novas dependências do subsistema com elementos externos • A atividade é realizada uma vez para cada subsistema, podendo ser recursiva (gerando outros subsistemas) • Aplicável tanto ao RUP como a SOA Análise e Projeto OO com UML e Padrões| 3 Visão geral dos artefatos Realização de Caso de Uso Subsistemas Analista de Sistemas Projetar Subsistema Classes de Projeto Subsistemas (atualizados) Análise e Projeto OO com UML e Padrões| 4 Passos para Projetar Subsistema 1. Identificar elementos de projeto do subsistema (classes e/ou outros subsistemas) e distribuir o comportamento do subsistema entre eles 2. Documentar os elementos do subsistema 3. Descrever as dependências do subsistema com elementos externos Análise e Projeto OO com UML e Padrões| 5 Passo 1. Identificar elementos de projeto do subsistema e distribuir o comportamento do subsistema entre eles • Identifique novas classes e subsistemas que, cooperativamente, realizem o comportamento do subsistema – crie novos elementos de projeto, ou reuse elementos existentes • O comportamento do subsistema pode ser identificado a partir das operações na interface – As operações podem ser realizadas por classes internas ou subsistemas internos Análise e Projeto OO com UML e Padrões| 6 Passo 1. Identificar elementos de projeto do subsistema e distribuir o comportamento do subsistema entre eles • Desenvolva um ou mais diagramas de interação para cada operação da interface, alocando responsabilidades aos elementos de projeto – os diagramas ajudam a encontrar os elementos! • Incorpore persistência, quando aplicável Análise e Projeto OO com UML e Padrões| 7 Diagramas de interação para subsistemas Cliente subsistema Fachada subsistema Elemento de projeto1 Elemento de projeto2 responsabilidade() Op1() Responsabilidade do subsistema Op2() Op3() Interações internas do subsistema Op4() Note que a interface não faz parte do diagrama já que o objetivo é mostrar interações entre elementos internos Análise e Projeto OO com UML e Padrões| 8 QIB – Subsistema de Comunicação com a Operadora de Cartão Diagrama de seqüência Análise e Projeto OO com UML e Padrões| 9 QIB – Subsistema de Comunicação com a Operadora de Cartão Diagrama de colaboração Análise e Projeto OO com UML e Padrões| 10 Passo 2. Documentar os elementos do subsistema • A estrutura interna do subsistema é definida neste passo, através de diagrama(s) de classe incluindo os relacionamentos entre elementos de projeto • A técnica usada é a mesma usada na atividade Analisar caso de uso – As mensagens trocadas entre os objetos apontam as responsabilidades – Os links entre objetos indicam os relacionamentos Análise e Projeto OO com UML e Padrões| 11 QIB – Subsistema de Comunicação com a Operadora de Cartão Diagrama de classes <<Interface>> ISubsistemaComunicacaoOperadoraCartao enviar() PagamentoCartao FachadaComunicacaoOperadoraCartao ProtocoloOperadoraCartao ArquivoPagamento Análise e Projeto OO com UML e Padrões| 12 Passo 3. Descrever dependências do subsistema • Os passos anteriores identificaram os elementos internos, com as respectivas responsabilidades, e as associações entre esses elementos • O objetivo aqui é documentar associações com elementos externos necessários à realização da interface do subsistema Análise e Projeto OO com UML e Padrões| 13 Descrevendo Dependências: Notação • Dependência de um subsistema Cliente <<subsystem>> Fornecedor Dependência na interface! • Dependência de um pacote <<subsystem>> Cliente Suporte Análise e Projeto OO com UML e Padrões| 14 QIB – Subsistema de Comunicação com a Operadora de Cartão Dependências controladores <<subsystem>> subsistemaComunicacao OperadoraCartao transacao Análise e Projeto OO com UML e Padrões| 15 Exercício – Qualiti Internet Banking • Dado: – Os subsistemas envolvidos no caso de uso Realizar DOC, suas interfaces e seus relacionamentos com outros elementos de projeto • Produzir: – Diagrama de interação para cada operação na interface – Diagrama de classes para os elementos internos do subsistema Análise e Projeto OO com UML e Padrões| 16