Prof. Geraldo Braz Junior Estudo de Caso Sistema de Caixa Automtico Referncias: Notas de Aula Ulrich Schiel Notas de Aula Ariadne Receita de bolo Utilizar os conceitos de Processo Unificado Objetivo: Modelar um sofware de teste (caixa automtivo) Descobrir como aplicar UML como linguagem de modelagem Descobrir como aplica PU junto com UML 2 Ciclo de Vida PU 3 Concepo Concepo -> Requisitos Obteno de Requisitos Artefatos (produtos a serem gerados) Requisitos Modelo de Contexto Modelo de Casos de Uso Atores Quem vai utilizar de alguma maneira o sistema Casos de Usos Funcionalidades Percebidas do Sistema 6 Obteno de Requisitos Passos: 1. Listar potenciais requisitos 2. Entender o contexto do sistema 3. Capturar requisitos funcionais 4. Capturar requisitos no funcionais 7 Requisitos e Descrio (i) O sistema de caixa automtico permite que clientes realizem saques e verifiquem seus saldos, de acordo com as seguintes regras de negcios: 1. Quando uma conta criada no banco, o seu saldo maior que zero. 2. Um cliente pode possuir vrias contas no banco. 3. O cliente acessa uma conta atravs do terminal de um caixa eletrnico do seu banco. 4. Antes de executar qualquer operao da conta, o cliente deve fornecer o nmero da sua conta e a senha referente a mesma. 8 Requisitos e Descrio (ii) 5. Para a realizao do saque, o cliente utiliza um terminal para solicitar um valor numrico de dinheiro. 6. O cliente pode sacar qualquer quantia do caixa, desde que a mesma seja igual ou inferior ao saldo disponvel. 7. Vale a poltica do banco de que uma conta no aceita uma operao de saque quando a conta est com o saldo zerado. O dinheiro liberado no dispensador de notas do caixa e debitado do saldo da conta. 8. Alm de possuir o dinheiro disponvel na conta, em uma operao de saque, a quantidade de dinheiro disponvel no caixa eletrnico deve ser maior ou igual quantia solicitada pelo cliente. 9 Requisitos e Descrio (iii) 9. Se o saldo de uma conta zerado durante uma operao de saque, a conta deve se tornar inativa. 10. Os clientes que vo operar o caixa eletrnico devem estar devidamente cadastrados no banco e suas contas devem estar ativas. 11. Cada conta tem associado um nmero e uma senha. 12. Alm disso, cada conta associada a um cliente do banco, que possui informaes como nome, RG, CPF, etc. 10 Requisitos e Descrio (iv) 13. As informaes adicionais sobre as contas e seus clientes esto armazenadas em um Cadastro de Contas do Banco que interage com o Sistema de Caixa Automtico. 14. Qualquer cliente cadastrado no banco pode efetuar depsitos em uma conta, quer a conta esteja ativa, quer ela esteja inativa. 15. Caso a conta esteja inativa e aps o depsito seu saldo fique maior que zero, a conte deve ser reativada. 11 Modelo de Contexto (caso de uso nivel 0) 12 Descrio 13 A1) encontrar os atores e use-cases encontrar os atores encontrar e descrever cada use-case descrever o Modelo Use-Case como um todo A2) Priorizar Use-Cases (viso arquitetural) Modelo de Casos de Uso 14 Caso de Uso: Consultar Saldo 15 Breve Descrio: O cliente, j autenticado, escolhe a opo Consultar Saldo e o sistema apresenta o seu saldo. Atores: Cliente, Cadastro de Contas do Banco. Pr-condio: A conta deve estar ativa e o cliente j deve ter sido autenticado junto ao sistema, atravs do caso de uso Efetuar Login. Ps-condio: Estado da conta inalterado. Requisitos Especiais: nenhum. Fluxo Caso de Uso: Efetuar Saque 16 Breve Descrio: O cliente, j autenticado, escolhe a opo Efetuar Saque, informa a quantia desejada e, caso o saldo da conta seja suficiente e o caixa tenha o dinheiro necessrio, a quantia liberada. Atores: Cliente, Cadastro de Contas do Banco Pr-condio: O cliente deve estar logado no sistema, atravs do caso de uso Efetuar Login. Alm disso, a conta deve estar ativa e o valor a debitar deve ser maior que zero e no pode ser superior ao saldo da conta nem a quantidade de dinheiro disponvel no caixa. Ps-condio: O valor a ser sacado subtrado do saldo da conta e do total disponvel no caixa eletrnico e a quantia solicitada fornecida ao cliente. Requisitos Especiais: nenhum. Fluxo Caso de Uso: Efetuar Depsito 17 Breve Descrio: O cliente, j autenticado, escolhe a opo Efetuar Depsito, informa a quantia desejada e, a conta que deseja enviar o dinheiro Atores: Cliente, Cadastro de Contas do Banco Pr-condio: O cliente deve estar logado no sistema, atravs do caso de uso Efetuar Login. Ps-condio: O valor a ser depositado adicionado ao saldo da conta. Requisitos Especiais: nenhum. Caso de Uso: Efetuar Login 18 Breve Descrio: O cliente deve fornecer o nmero da conta e senha, essa informaes devem ser autenticadas pelo Cadastro de Contas do Banco. Atores: Cliente, Cadastro de Contas do Banco Pr-condio: nenhuma Ps-condio: Aps uma autenticao bem realizada, o usurio est apto a operar o sistema do caixa eletrnico Requisitos Especiais: nenhum. Ao final dos requisitos 19 Realizar uma proposta Estimativa de custos Definir Prioridades aos Requisitos levantados Anlisar os Riscos Esperados 20 Concepo -> Anlise Anlise 21 Durante a etapa de Concepo, a anlise se resume a definio de uma: Descrio Bsica da arquitetura de objetos Identifica-se: objetos de negcio (pedidos, contas, contratos,..) objetos do mundo real (veculos, mquinas, trajetos,..) eventos bsicos (chegada de um pedido, partida de um transporte, ..) Esse trabalho deve ser realizado em paralelo a definio de casos de uso para melhor entender o dominio da aplicao 22 Elaborao 23 Elaborao - Requisitos Requisitos 24 A3) Detalhar cada Use-Case estruturar a descrio do use-case formalizar a descrio do use-case (usar diagramas de atividade ou diagramas de interao) descrever o Modelo Use-Case como um todo A4) Prototipar as interfaces com o usurio projeto lgico da interface do usurio projeto fsico da interface do usurio e prottipo Caso de Uso: Consultar Saldo 25 Caso de Uso: Consultar Saldo Fluxo Bsico : 1. O cliente escolhe no menu principal do terminal a opo Consultar Saldo. 2. O sistema verifica se o login foi efetuado 3. O sistema verifica se a conta est ativa, atravs do Cadastro de Contas do Banco. 4. O sistema obtm o saldo da conta do cliente e o imprime. Caso de Uso: Consultar Saldo 26 Fluxo Alternativo 1: No passo 2 do Fluxo Bsico, se o login no foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o sistema informa isso ao cliente e avisa que a consulta no pde ser realizada. Consultar Saldo - Sequencia 27 Consultar Saldo - Atividades 28 Caso de Uso: Efetuar Saque 29 Caso de Uso: Efetuar Saque Fluxo Bsico: 1. O cliente escolhe no menu principal do terminal a opo Efetuar Saque. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta est ativa, atravs do Cadastro de Contas do Banco. 4. O sistema solicita que o cliente informe a quantia desejada. 5. O cliente informa a quantia desejada. 6. O sistema verifica se o saldo da conta suficiente para realizar a transao e, em caso afirmativo, se h dinheiro em quantidade suficiente no caixa. 7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor disponvel no caixa e libera a quantia solicitada, atravs do dispensador de notas. Caso de Uso: Efetuar Saque 30 Fluxo Alternativo 1: No passo 2 do Fluxo Bsico, se o login no tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o sistema avisa isso ao cliente e informa que o saque no pde ser realizado. Caso de Uso: Efetuar Saque 31 Fluxo Alternativo 3 : No passo 6 do Fluxo Bsico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou a quantidade de dinheiro disponvel no caixa, o sistema informa que no possvel realizar o saque e o porqu. Em seguida, volta ao passo 4 do Fluxo Bsico. Fluxo Alternativo 4 : Aps o passo 7 do Fluxo Bsico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 5 do Fluxo Bsico, o cliente pode cancelar a operao. Efetuar Saque - Sequencia 32 Efetuar Saque - Atividades 33 Requisitos - Elaborao 34 A5) Estruturar o modelo Casos de Uso identificar funcionalidades comuns (generalizaes) identificar funcionalidades adicionais ou opcionais (<<extends>>) identificar outros relacionamentos entre use-cases (<<include>>, inverso de <<extend>>) Modelo de Casos de Uso 35 Requisitos - Elaborao Capturar requisitos no-funcionais Usabilidade requisitos de interfaces metfora, frequncia de uso, .. documentao Confiabilidade tolerncia a falhas. Performance tempos de resposta volumes de transaes Requisitos fsicos equipamentos, material, espaos, configuraes de rede, software 36 37 Concepo -> Anlise Anlise Os requisitos externos so transformados em um modelo interno preciso e completo para desenvolver o projeto do sistema 38 MODELO USE-CASE MODELO DA ANLISE linguagem do usurio Linguagem do desenvolvedor Viso externa do sistema Viso interna do sistema Estruturado por use-cases Estruturado por classes Captura a funcionalidade do sistema Descreve como realizar a funcionalidade Usado para o contrato com o cliente Usado para o desenvolvedor entender o sistema Pode conter redundncias, inconsistncias, etc. Deve ser preciso e inambguo Anlise - Artefatos 39 2. CLASSE DE ANLISE Classe de fronteira Classe de controle Classe de entidades EXEMPLO Interface de Saque Realizar Saque Cliente 1. MODELO DA ANLISE Anlise - Artefatos 40 3. CONCRETIZAR A REALIZAO DE UM USE-CASE fluxo de eventos Descrio textual do diagrama de colaborao requisitos especiais Descrio textual de requisitos no-funcionais 4. PACOTES DE ANLISE Devem ter coeso e fraco acoplamento Candidatos a subsistemas do projeto PACOTE DE SERVIOS: um conjunto de aes coerentes, indivisveis para uso em vrios use-cases 5. DESCRIO DA ARQUITETURA Uma abordagem para anlise OO 41 Modelagem Esttica 42 Identificando Classes de Anlise 43 As especificaes dos casos de uso fornecem as informaes necessrias. Primeiro identifica-se os conceitos, dentro do domnio do problema, que so relevantes para o sistema que se pretende construir. Esses conceitos se tranformam posteriormente em classes de anlise. Em seguida pode-se fazer uma anlise textual da descrio do problema e das especificaes dos casos de uso para complementar as classes relevantes para o sistema Importante: o diagrama de classes de anlise uma descrio de coisas no domnio do problema do mundo real, no no do projeto de software! Caso de Uso Consultar Saldo (objetos) 44 Breve Descrio: O cliente, j autenticado, escolhe a opo Consultar Saldo e o sistema apresenta o seu saldo. Atores: Cliente, Cadastro de Contas do Banco. Pr-condio: A conta deve estar ativa e o cliente j deve ter sido autenticado junto ao sistema, atravs do caso de uso Efetuar Login. Ps-condio: Estado da conta inalterado. Requisitos Especiais: nenhum. Caso de Uso Consultar Saldo (objetos) 45 Fluxo Bsico : 1. O cliente escolhe no menu principal do terminal a opo Consultar Saldo. 2. O sistema verifica se o login foi efetuado 3. O sistema verifica se a conta est ativa, atravs do Cadastro de Contas do Banco. 4. O sistema obtm o saldo da conta do cliente e o imprime. Caso de Uso Consultar Saldo (objetos) 46 Fluxo Alternativo 1: No passo 2 do Fluxo Bsico, se o login no foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o sistema informa isso ao cliente e avisa que a consulta no pde ser realizada. Caso de Uso: Efetuar Saque 47 Breve Descrio: O cliente, j autenticado, escolhe a opo Efetuar Saque, informa a quantia desejada e, caso o saldo da conta seja suficiente e o caixa tenha o dinheiro necessrio, a quantia liberada. Atores: Cliente, Cadastro de Contas do Banco Pr-condio: O cliente deve estar logado no sistema, atravs do caso de uso Efetuar Login. Alm disso, a conta deve estar ativa e o valor a debitar deve ser maior que zero e no pode ser superior ao saldo da conta nem a quantidade de dinheiro disponvel no caixa. Ps-condio: O valor a ser sacado subtrado do saldo da conta e do total disponvel no caixa eletrnico e a quantia solicitada fornecida ao cliente. Requisitos Especiais: nenhum. Fluxo Caso de Uso: Efetuar Saque 48 Caso de Uso: Efetuar Saque Fluxo Bsico: 1. O cliente escolhe no menu principal do terminal a opo Efetuar Saque. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta est ativa, atravs do Cadastro de Contas do Banco. 4. O sistema solicita que o cliente informe a quantia desejada. 5. O cliente informa a quantia desejada. 6. O sistema verifica se o saldo da conta suficiente para realizar a transao e, em caso afirmativo, se h dinheiro em quantidade suficiente no caixa. 7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor disponvel no caixa e libera a quantia solicitada, atravs do dispensador de notas. Caso de Uso: Efetuar Saque 49 Fluxo Alternativo 1: No passo 2 do Fluxo Bsico, se o login no tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o sistema avisa isso ao cliente e informa que o saque no pde ser realizado. Caso de Uso: Efetuar Saque 50 Fluxo Alternativo 3 : No passo 6 do Fluxo Bsico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou a quantidade de dinheiro disponvel no caixa, o sistema informa que no possvel realizar o saque e o porqu. Em seguida, volta ao passo 4 do Fluxo Bsico. Fluxo Alternativo 4 : Aps o passo 7 do Fluxo Bsico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 5 do Fluxo Bsico, o cliente pode cancelar a operao. Entidades Candidatas Identificadas 51 Caso de Uso Consultar Saldo Saldo Terminal Saldo da conta Login Consulta Quantia de dinheiro disponvel emcaixa Entidades Candidatas Identificadas 52 Caso de Uso Efetuar Saque Caixa Dinheiro Quantia Valor a debitar Quantia de dinheiro disponvel emcaixa Valor a ser sacado Quantia solicitada Quantia desejada Transao Entidades Candidatas Identificadas 53 Caso de uso Efetuar Login Caixa eletrnico Cliente Nmero da conta Senha Acesso Sistema Cadastro de Contas do Banco Opo Menu Principal Conta Banco Estado da conta Criptografia Operao Estado do Caixa eletrnico Entidades Candidatas Identificadas 54 Caso de uso Efetuar Depsito Valor a depositar Valor a ser depositado Valor depositado Estado da conta Quantia informada pelo cliente Conta destino do depsito Refinar a Lista de Classes 55 Classes Redundantes: quando duas palavras significam a mesma coisa, escolha a palavra mais significativa. Classes Irrelevantes: aquelas classes que no esto diretamente relacionadas com o problema. Atributos: alguns atributos podem ser descritos por substantivos. Operaes: alguns substantivos podem ser operaes. Papis: nomes de papis so de fato nomes de processos dinmicos ao invs de classes propriamente ditas. Construes de Implementaes: qualquer coisa que faa referncia a estruturas de dados, etc. Classes Candidatas Eliminadas 56 Classes redundantes: Valor a ser depositado, Valor depositado e Quantia informada pelo cliente: equivalentes a Valor a depositar. Caixa: idntica a classe Caixa eletrnico. Valor a ser sacado, Quantia desejada, Quantia solicitada, Quantia: equivalentes a Valor a debitar. Saldo da conta, Saldo da conta do cliente: equivalentes a Saldo. Operao e Opo: equivalente a Transao. Conta destino do depsito: equivalente a Nmero da conta. Classes Candidatas Eliminadas (ii) 57 Classes Irrelevantes: Nmero da conta: atributo da classe Conta. Senha: atributo da classe Conta. Estado do caixa: termo genrico para os atributos da classe Caixa eletrnico. Quantidade de dinheiro disponvel no caixa: atributo da classe Caixa eletrnico. Estado da conta: termo genrico para os atributos da classe Conta. Saldo: atributo da classe Conta. Classes Candidatas Eliminadas (iii) 58 Classes Vagas: Acesso Menu Principal Criptografia Login Consulta Valor a debitar Valor a depositar Lista revisada de classes 59 CaixaEletrnico Cliente (diferente do ATOR dados do cliente) Sistema Cadastro de Contas do Banco (ATOR) Conta Banco Terminal Transao Atualizar dicionrio de dados! Identificar/Refinar Relacionamentos 60 As classes identificadas at o momento devem ser analisadas com o intuito de identificar as associaes e os relacionamentos de agregao/decomposio e de generalizao/especializao entre elas A classe Sistema representa o sistema como um todo e, desta forma, todas as outras classes podem ser consideradas partes dela Para simplificar a representao do modelo, a classe Sistema pode ser substituda por um pacote que contenha todas as classes que compem o sistema Agregaes Encontradas 61 Um Banco possui uma ou mais Contas Um Banco contm vrios clientes (DadosCliente) Um Banco possui vrios Caixas Eletrnico Um Caixa Eletrnico possui um Terminal Um cliente (DadosCliente) pode possuir vrias Contas Em um terminal podem ser realizadas vrias transaes Agregaes Encontradas 62 Identificar Atributos 63 Identificar/Refinar Classes (MVC) 64 Classificar as classes em (Fronteira, Controle e Entidade) Identificar novas classes (Fronteira e Controle) Novas Classes: FronteiraCadastroContas (interagir com o ator Cadastro de contas) ControladorCaixa (controla a lgica interna do caixa eletrnico) Classes do Sistema 65 CaixaEletronico << entity >> Conta << entity >> Banco << entity >> Terminal << boundary >> DadosCliente << entity >> Transacao << entity>> FronteiraCadastroContas << boundary >> ControladorCaixa << control >> Atualizar Dicionrio de Dados Identificar/Refinar relacionamentos 66 Adicionar as associaes com as novas classes do modelo MVC, obedecendo a relao: Diagrama de Classes de Anlise (sem operaes) 67 Modelagem Dinmica 68 Modelagem Dinmica 69 Identifica e modela os aspectos do sistema de software que podem mudar durante a sua execuo, devido a ocorrncia de eventos. Foco no comportamento que o sistema deve apresentar. Usa os diagramas dinmicos da UML (sequncia, colaborao, estados). Especifica uma verso inicial das interfaces pblicas das classes de anlise. Sub-etapa de Anlise OO - Foco no domnio do problema! Eventos 70 Ocorrncias dignas de nota relativas ao sistema e envolvendo algum tipo de troca de informao. O evento no a informao trocada e sim o fato de alguma informao ter sido trocada. O tipo de evento mais comum encontrado durante a anlise a interao entre um ator e o sistema. Outros tipos tambm so possveis. Modelamos o comportamento do sistema atravs de eventos e das aes executadas em resposta a eles. Atividades Modelagem Dinmica 71 Identificar Eventos do Sistema 72 Deve ser realizada uma nova anlise textual nas especificaes dos casos de uso, prestando-se ateno aos pontos nos quais trocas de informao ocorrem. Normalmente, esses pontos esto associados a verbos. Informaes relevantes: verbos e os contextos nos quais aparecem. Caso de uso Efetuar Login (i) 73 Caso de Uso: Efetuar Login Fluxo Bsico: 1. O cliente solicita a opo de Efetuar Login no sistema. 2. O sistema pede que o cliente informe o nmero da conta. 3. O cliente fornece o nmero da conta. 4. O sistema pede que o cliente informe a sua senha. 5. O cliente fornece a senha. 6. O sistema verifica se a conta vlida e se a senha est correta, atravs do Cadastro de Contas do Banco. Em caso positivo, o sistema atualiza o estado do caixa eletrnico com as informaes de login. 7. O sistema exibe no terminal o menu de opes que o cliente pode acessar. Caso de uso Efetuar Login (ii) 74 Fluxo Alternativo 1: No passo 6 do Fluxo Bsico, se a conta fornecida no existir ou se a senha estiver errada, o sistema informa que alguma das informaes fornecidas est incorreta e que no possvel autenticar o cliente. Em seguida, volta ao passo 2 do Fluxo Bsico. Fluxo Alternativo 2: Nos passos 3 e 5 do Fluxo Bsico, o cliente pode cancelar a operao. Eventos Identificados 75 De responsabilidade do Sistema Verificar se a conta vlida. Verificar se a senha est correta. Atualizar o estado do caixa eletrnico com as informaes de login Verificar se o login foi efetuado. Verificar se a conta est ativa. Obter o saldo da conta. Verificar se o cliente tem saldo suficiente para realizar a transao. Eventos Identificados 76 De responsabilidade do Sistema Verificar se h dinheiro em quantidade suficiente no caixa. Subtrair o valor solicitado do saldo da conta do cliente. Desativar a conta. Adicionar o valor depositado ao saldo da conta. Verificar se a conta deve ser reativada. Reativar a conta. Construir Diagramas de Sequncia 77 Baseado nos eventos encontrados. Cada evento pode corresponder a um ou mais fluxos no diagrama de sequncia. Deve-se ter em mente as classes descobertas na anlise esttica, pois a partir da interao dos seus objetos que as funcionalidades so implementadas Diagrama de Classes de Anlise 78 Sequncia Consultar Saldo 79 Sequencia Efetuar Saque 80 Diagrama de Comunicao 81 Centraliza a representao dos eventos dos diagramas de sequncia Explicita as associaes entre as classes e facilita a identificao das operaes Comunicao Saque/Consulta 82 Identificao das Operaes 83 Cada evento recebido pode ser Uma operao que a classe deve oferecer O retorno de uma operao executada Diagrama de Classes final de Anlise 84 Estados da Classe Conta 85 Elaborao ->Projeto 86 Projeto Adquirir uma compreenso de aspectos de requisitos no funcionais e restries sobre linguagens de programao, sistemas operacionais, SGBDs, aspectos de distribuio, etc. Criar informaes suficientes para a implementao, descrevendo subsistemas, interfaces e classes. Estar apto a dividir a tarefa de implementao em equipes Determinar mais cedo as interfaces entre os subsistemas Criar um modelo que possibilite uma implementao que preencha as estruturas definidas sem altera-las 87 Projeto 88 MODELO DE ANLISE MODELO DE PROJETO conceitual fsico Genrico (c.r. projeto) especfico 3 tipos de classes Depende da implementao Menos formal Mais formal Mais rpido (1/5 do projeto Mais demorado (5 x anlise) Poucos nveis Muitos nveis Menos dinamica Mais dinmica, foco na sequencia No se mantm no ciclo Se mantm em todo ciclo
Projeto - Artefatos 1. Modelo de Projeto hierarquia de subsistemas contendo classe de projeto, projetos de use-cases e interfaces 2. Classes de Projeto na linguagem de programao da implementao visibilidade dos atributos (ex. publico, protegido, privado) generalizaes e herana; associaes e agregaes e atributos mtodos em pseudo-cdigo 89 Projeto - Artefatos 3. Realizao dos Casos de Uso Diagrama de classes Diagrama de interaes (diagramas de sequncia) Fluxo de eventos (textual) Requisitos de implementao 90 Projeto - Artefatos 4. Subsistema de Projeto (pacotes de anlise, componentes, produtos de software, sistemas existentes) - SUBSISTEMAS DE SERVIO 5. Interface (separa funcionalidade de implementao) 6. Arquitetura (VISO DO PROJETO) (1. Subsistemas, interfaces e dependncias 2. Classes chave, classes ativas 3. Realizao de use-cases centrais ao sistema 7. Modelo de Distribuio (Diagrama de componentes) 8. Arquitetura (VISO DO MODELO DE DISTRIBUIO) (Diagrama de Implantao) 91 Projeto - Arquitetura A1) Identificar ns e suas configuraes determinar os ns envolvidos e suas caracterstica determinar os tipos de conexes entre os ns verificar necessidades de processamentos redundantes, backups, etc. A2) Identificar subsistemas e suas interfaces subsistemas da aplicao identificar middleware (SO, SGBD, software de comunicao, pacotes GUI, distribuio, etc.) definir dependncias entre os subsistemas identificar as interfaces entre os subsistemas 92 Projeto - Arquitetura A3) Identificar classes de projeto significativas a partir das classes de anlise classes ativas (requisitos de concorrncia, performance, inicializao, distribuio, preveno de deadlocks) A4) outros requisitos de projeto (persistncia, transparncia de distribuio, segurana, recuperao de erros, gerncia de transaes) 93 Projeto - Classe A1) Definir uma classe de projeto a partir de classes de fronteira : depende da linguagem classes de entidades persistentes podem produzir tabelas relacionais classes de controle podem gerar vrias classes de projeto (distribuio) ou serem encapsuladas em classes de entidades A2) Definir operaes realizar as responsabilidades da classe requisitos especiais (e.g. acesso ao banco de dados) atender s necessidades das interfaces da classe A3) Definir atributos considerar os atributos da anlise os tipos dos atributos so determinados pela linguagem de programao valores de atributos usados por vrios objetos devem ser transformados em objetos 94 Projeto - Classe A4) Identificar associaes e agregaes dependendo da linguagem, transform-los em relacionamentos tentar transformar cardinalidades, papis, etc. em atributos ou em novas classes para realizar a associao analise a navegabilidade pelas associaes A5) Identificar generalizaes A6) Descrever mtodos realizao de operaes por pseudo-cdigo, diagramas de atividades, linguagem natural,.. A7) Descrever estados diagrama de estados 95 Projeto - Subsistema 1. Rever as dependncias entre subsistemas 2. Rever as interfaces 3. Rever o contedo 96 97 Elaborao -> Implementao Implementao 1. MODELO DA IMPLEMENTAO 2. COMPONENTE 3. SUBSISTEMA DE IMPLEMENTAO 4. INTERFACE 5. ARQUITETURA (viso da implementao) 6. PLANO DE INTEGRAO 98 Implementao MODELO DA IMPLEMENTAO uma hierarquia de subsistemas de implementao contendo componentes e interfaces COMPONENTE UM PACOTE CONTENDO ELEMENTOS DO PROJETO Diagrama de Componentes <<executable>> (programa executvel) <<file>> (arquivo contendo cdigo fonte ou dados) <<library>> (biblioteca esttica ou dinmica) <<table>> (tabela do banco de dados) <<document>> (um documento) 99 Implementao SUBSISTEMAS DE IMPLEMENTAO um package em Java um project em Visual Basic um diretrio de C++ INTERFACES Implementam as interfaces do projeto ARQUITETURA (viso da implementao) Decomposio em subsistemas, compostos de interfaces e componentes e Componentes chave PLANO DE INTEGRAO Primeira verso executvel: testes localizados de integrao para facilitar a deteco de erros:=>verso final 100 101 Elaborao -> Teste Teste Planejar os testes em cada iterao, tanto os testes de integrao quanto os testes de sistema preparar casos de teste, criar procedimentos de teste e procedimentos executveis Realizar os testes e analisar os resultados 102 Teste - Artefatos Modelo de Teste Casos de Teste 103 Ciclo de Vida PU 104