Estudo de Caso Sistema de Caixa Automático



Documentos relacionados
Uma Abordagem usando PU

O Processo Unificado: Captura de requisitos

Engenharia de Software III

Modelagem de Casos de Uso (Parte 1)

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Orientação a Objetos

Engenharia de Requisitos Estudo de Caso

A Linguagem de Modelagem Unificada (UML)

Análise e Projeto Orientados por Objetos

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

2 Diagrama de Caso de Uso

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

Guia de Especificação de Caso de Uso Metodologia CELEPAR

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

APOO Análise e Projeto Orientado a Objetos. Requisitos

Resolução da lista de exercícios de casos de uso

ISO/IEC 12207: Gerência de Configuração

Manual Geral do OASIS

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

Processo de Desenvolvimento Unificado

Engenharia de Software

Engenharia de Software na Prática Hélio Engholm Jr.

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Modelagem de Casos de Uso! Um modelo funcional

Especialização em Engenharia de Software com Ênfase em Software Livre ESL2/2008. Projeto Agenda Saúde Requisitos e Modelagem UML

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

ViajarFácil Sistema de Reserva de Viagens

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

UML - Unified Modeling Language

Diagrama de Caso de Uso e Diagrama de Sequência

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Sumário. Uma visão mais clara da UML

Tarciane Andrade.

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Engenharia de Software I

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Uma visão mais clara da UML Sumário

ENGENHARIA DE SOFTWARE I

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

ESTÁGIO DE DOCÊNCIA II

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Modelagem de Sistemas Prof. Marcos Roberto e Silva

Especificação de Requisitos

Conceitos de Banco de Dados

GUIA INTEGRA SERVICES E STATUS MONITOR

UML Unified Modeling Language. Professor: André Gustavo Bastos Lima

Diagrama de Casos de Uso

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Introdução Diagramas de Casos de Uso Diagramas de Classes Estoque Fácil

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Histórico da Revisão. Data Versão Descrição Autor

Prof. Marcelo Machado Cunha

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Ciclo de Desenvolvimento de Sistemas de BD

Análise de Ponto de Função

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Engenharia de Software I: Análise e Projeto de Software Usando UML

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Notas de Aula 04: Casos de uso de um sistema

DMS Documento de Modelagem de Sistema. Versão: 1.4

Casos de Uso - definições

Processo de Desenvolvimento de Software. Engenharia de Software.

Casos de uso Objetivo:

Sistemas Distribuídos

Sumário. Capítulo 1 Introdução à UML Capítulo 2 Orientação a Objetos Agradecimentos... 6 Sobre o Autor... 6 Prefácio...

Projeto de Sistemas I

Concepção e Elaboração

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Exercício Pizzaria Análise de Casos de Uso

O Processo de Desenvolvimento de Software

Módulo 4: Gerenciamento de Dados

Introdução à Engenharia de Software

Documento de Análise e Projeto VideoSystem

Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Componentes do Diagrama

O modelo unificado de processo. O Rational Unified Process, RUP.

Aplicação Prática de Lua para Web

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Análise e Projeto Orientados a Objetos Aula IX Modelo Conceitual do Sistema (Modelo de Domínio) Prof.: Bruno E. G. Gomes IFRN

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Engenharia de Software I

Persistência e Banco de Dados em Jogos Digitais

Wilson Moraes Góes. Novatec

Notas de Aula 05: Aplicação de um caso de uso

Curso de Licenciatura em Informática

Rock In Rio - Lisboa

Manual Xerox capture EMBRATEL

Transcrição:

Estudo de Caso Sistema de Caixa Automático Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: 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 automátivo) Descobrir como aplicar UML como linguagem de modelagem Descobrir como aplica PU junto com UML 2

3 Ciclo de Vida PU

Concepção

Concepção -> Requisitos

Obtenção 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

Obtenção de Requisitos Passos: 1. Listar potenciais requisitos 2. Entender o contexto do sistema 3. Capturar requisitos funcionais 4. Capturar requisitos não funcionais 7

Requisitos e Descrição (i) O sistema de caixa automático permite que clientes realizem saques e verifiquem seus saldos, de acordo com as seguintes regras de negócios: 1. Quando uma conta é criada no banco, o seu saldo é maior que zero. 2. Um cliente pode possuir várias contas no banco. 3. O cliente acessa uma conta através do terminal de um caixa eletrônico do seu banco. 4. Antes de executar qualquer operação da conta, o cliente deve fornecer o número da sua conta e a senha referente a mesma. 8

Requisitos e Descrição (ii) 5. Para a realização do saque, o cliente utiliza um terminal para solicitar um valor numérico de dinheiro. 6. O cliente pode sacar qualquer quantia do caixa, desde que a mesma seja igual ou inferior ao saldo disponível. 7. Vale a política do banco de que uma conta não aceita uma operação 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. Além de possuir o dinheiro disponível na conta, em uma operação de saque, a quantidade de dinheiro disponível no caixa eletrônico deve ser maior ou igual à quantia solicitada pelo cliente. 9

Requisitos e Descrição (iii) 9. Se o saldo de uma conta é zerado durante uma operação de saque, a conta deve se tornar inativa. 10. Os clientes que vão operar o caixa eletrônico devem estar devidamente cadastrados no banco e suas contas devem estar ativas. 11. Cada conta tem associado um número e uma senha. 12. Além disso, cada conta é associada a um cliente do banco, que possui informações como nome, RG, CPF, etc. 10

Requisitos e Descrição (iv) 13. As informações adicionais sobre as contas e seus clientes estão armazenadas em um Cadastro de Contas do Banco que interage com o Sistema de Caixa Automático. 14. Qualquer cliente cadastrado no banco pode efetuar depósitos em uma conta, quer a conta esteja ativa, quer ela esteja inativa. 15. Caso a conta esteja inativa e após o depósito seu saldo fique maior que zero, a conte deve ser reativada. 11

Modelo de Contexto (caso de uso nivel 0) 12

Descrição 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 (visão arquitetural) 13

14 Modelo de Casos de Uso

Caso de Uso: Consultar Saldo Breve Descrição: O cliente, já autenticado, escolhe a opção Consultar Saldo e o sistema apresenta o seu saldo. Atores: Cliente, Cadastro de Contas do Banco. Pré-condição: A conta deve estar ativa e o cliente já deve ter sido autenticado junto ao sistema, através do caso de uso Efetuar Login. Pós-condição: Estado da conta inalterado. Requisitos Especiais: nenhum. Fluxo 15

Caso de Uso: Efetuar Saque Breve Descrição: O cliente, já autenticado, escolhe a opção Efetuar Saque, informa a quantia desejada e, caso o saldo da conta seja suficiente e o caixa tenha o dinheiro necessário, a quantia é liberada. Atores: Cliente, Cadastro de Contas do Banco Pré-condição: O cliente deve estar logado no sistema, através do caso de uso Efetuar Login. Além disso, a conta deve estar ativa e o valor a debitar deve ser maior que zero e não pode ser superior ao saldo da conta nem a quantidade de dinheiro disponível no caixa. Pós-condição: O valor a ser sacado é subtraído do saldo da conta e do total disponível no caixa eletrônico e a quantia solicitada é fornecida ao cliente. Requisitos Especiais: nenhum. Fluxo 16

Caso de Uso: Efetuar Depósito Breve Descrição: O cliente, já autenticado, escolhe a opção Efetuar Depósito, informa a quantia desejada e, a conta que deseja enviar o dinheiro Atores: Cliente, Cadastro de Contas do Banco Pré-condição: O cliente deve estar logado no sistema, através do caso de uso Efetuar Login. Pós-condição: O valor a ser depositado é adicionado ao saldo da conta. Requisitos Especiais: nenhum. 17

Caso de Uso: Efetuar Login Breve Descrição: O cliente deve fornecer o número da conta e senha, essa informações devem ser autenticadas pelo Cadastro de Contas do Banco. Atores: Cliente, Cadastro de Contas do Banco Pré-condição: nenhuma Pós-condição: Após uma autenticação bem realizada, o usuário está apto a operar o sistema do caixa eletrônico Requisitos Especiais: nenhum. 18

Ao final dos requisitos Realizar uma proposta Estimativa de custos Definir Prioridades aos Requisitos levantados Análisar os Riscos Esperados 19

20 Concepção -> Análise

Análise Durante a etapa de Concepção, a análise se resume a definição de uma: Descrição Básica da arquitetura de objetos Identifica-se: objetos de negócio (pedidos, contas, contratos,..) objetos do mundo real (veículos, máquinas, trajetos,..) eventos básicos (chegada de um pedido, partida de um transporte,..) Esse trabalho deve ser realizado em paralelo a definição de casos de uso para melhor entender o dominio da aplicação 21

22 Elaboração

23 Elaboração - Requisitos

Requisitos A3) Detalhar cada Use-Case estruturar a descrição do use-case formalizar a descrição do use-case (usar diagramas de atividade ou diagramas de interação) descrever o Modelo Use-Case como um todo A4) Prototipar as interfaces com o usuário projeto lógico da interface do usuário projeto físico da interface do usuário e protótipo 24

Caso de Uso: Consultar Saldo Caso de Uso: Consultar Saldo Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção Consultar Saldo. 2. O sistema verifica se o login foi efetuado 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema obtém o saldo da conta do cliente e o imprime. 25

Caso de Uso: Consultar Saldo Fluxo Alternativo 1: No passo 2 do Fluxo Básico, se o login não foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema informa isso ao cliente e avisa que a consulta não pôde ser realizada. 26

27 Consultar Saldo - Sequencia

28 Consultar Saldo - Atividades

Caso de Uso: Efetuar Saque Caso de Uso: Efetuar Saque Fluxo Básico: 1. O cliente escolhe no menu principal do terminal a opção Efetuar Saque. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta está ativa, através 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 transação 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 disponével no caixa e libera a quantia solicitada, através do dispensador de notas. 29

Caso de Uso: Efetuar Saque Fluxo Alternativo 1: No passo 2 do Fluxo Básico, se o login não tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema avisa isso ao cliente e informa que o saque não pôde ser realizado. 30

Caso de Uso: Efetuar Saque Fluxo Alternativo 3 : No passo 6 do Fluxo Básico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou a quantidade de dinheiro disponível no caixa, o sistema informa que não é possível realizar o saque e o porquê. Em seguida, volta ao passo 4 do Fluxo Básico. Fluxo Alternativo 4 : Após o passo 7 do Fluxo Básico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 5 do Fluxo Básico, o cliente pode cancelar a operação. 31

32 Efetuar Saque - Sequencia

33 Efetuar Saque - Atividades

Requisitos - Elaboração A5) Estruturar o modelo Casos de Uso identificar funcionalidades comuns (generalizações) identificar funcionalidades adicionais ou opcionais (<<extends>>) identificar outros relacionamentos entre use-cases (<<include>>, inverso de <<extend>>) 34

35 Modelo de Casos de Uso

36 Requisitos - Elaboração Capturar requisitos não-funcionais Usabilidade requisitos de interfaces metáfora, frequência de uso,.. documentação Confiabilidade tolerância a falhas. Performance tempos de resposta volumes de transações Requisitos físicos equipamentos, material, espaços, configurações de rede, software

37 Concepção -> Análise

Análise Os requisitos externos são transformados em um modelo interno preciso e completo para desenvolver o projeto do sistema 38 MODELO USE-CASE linguagem do usuário Visão externa do sistema Estruturado por use-cases Captura a funcionalidade do sistema Usado para o contrato com o cliente Pode conter redundâncias, inconsistências, etc. MODELO DA ANÁLISE Linguagem do desenvolvedor Visão interna do sistema Estruturado por classes Descreve como realizar a funcionalidade Usado para o desenvolvedor entender o sistema Deve ser preciso e inambíguo

Análise - Artefatos 1. MODELO DA ANÁLISE Classe de fronteira EXEMPLO Interface de Saque 2. CLASSE DE ANÁLISE Classe de controle Realizar Saque Classe de entidades Cliente 39

Análise - Artefatos 3. CONCRETIZAR A REALIZAÇÃO DE UM USE-CASE fluxo de eventos Descrição textual do diagrama de colaboração requisitos especiais Descrição textual de requisitos não-funcionais 4. PACOTES DE ANÁLISE Devem ter coesão e fraco acoplamento Candidatos a subsistemas do projeto PACOTE DE SERVIÇOS: é um conjunto de ações coerentes, indivisíveis para uso em vários use-cases 5. DESCRIÇÃO DA ARQUITETURA 40

41 Uma abordagem para análise OO

42 Modelagem Estática

Identificando Classes de Análise As especificações dos casos de uso fornecem as informações necessárias. Primeiro identifica-se os conceitos, dentro do domínio do problema, que são relevantes para o sistema que se pretende construir. Esses conceitos se tranformam posteriormente em classes de análise. Em seguida pode-se fazer uma análise textual da descrição do problema e das especificações dos casos de uso para complementar as classes relevantes para o sistema Importante: o diagrama de classes de análise é uma descrição de coisas no domínio do problema do mundo real, não no do projeto de software! 43

Caso de Uso Consultar Saldo (objetos) Breve Descrição: O cliente, já autenticado, escolhe a opção Consultar Saldo e o sistema apresenta o seu saldo. Atores: Cliente, Cadastro de Contas do Banco. Pré-condição: A conta deve estar ativa e o cliente já deve ter sido autenticado junto ao sistema, através do caso de uso Efetuar Login. Pós-condição: Estado da conta inalterado. Requisitos Especiais: nenhum. 44

Caso de Uso Consultar Saldo (objetos) Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção Consultar Saldo. 2. O sistema verifica se o login foi efetuado 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema obtém o saldo da conta do cliente e o imprime. 45

Caso de Uso Consultar Saldo (objetos) Fluxo Alternativo 1: No passo 2 do Fluxo Básico, se o login não foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema informa isso ao cliente e avisa que a consulta não pôde ser realizada. 46

Caso de Uso: Efetuar Saque Breve Descrição: O cliente, já autenticado, escolhe a opção Efetuar Saque, informa a quantia desejada e, caso o saldo da conta seja suficiente e o caixa tenha o dinheiro necessário, a quantia é liberada. Atores: Cliente, Cadastro de Contas do Banco Pré-condição: O cliente deve estar logado no sistema, através do caso de uso Efetuar Login. Além disso, a conta deve estar ativa e o valor a debitar deve ser maior que zero e não pode ser superior ao saldo da conta nem a quantidade de dinheiro disponível no caixa. Pós-condição: O valor a ser sacado é subtraído do saldo da conta e do total disponível no caixa eletrônico e a quantia solicitada é fornecida ao cliente. Requisitos Especiais: nenhum. Fluxo 47

Caso de Uso: Efetuar Saque Caso de Uso: Efetuar Saque Fluxo Básico: 1. O cliente escolhe no menu principal do terminal a opção Efetuar Saque. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta está ativa, através 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 transação 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 disponével no caixa e libera a quantia solicitada, através do dispensador de notas. 48

Caso de Uso: Efetuar Saque Fluxo Alternativo 1: No passo 2 do Fluxo Básico, se o login não tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2: No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema avisa isso ao cliente e informa que o saque não pôde ser realizado. 49

Caso de Uso: Efetuar Saque Fluxo Alternativo 3 : No passo 6 do Fluxo Básico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou a quantidade de dinheiro disponível no caixa, o sistema informa que não é possível realizar o saque e o porquê. Em seguida, volta ao passo 4 do Fluxo Básico. Fluxo Alternativo 4 : Após o passo 7 do Fluxo Básico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 5 do Fluxo Básico, o cliente pode cancelar a operação. 50

Entidades Candidatas Identificadas Caso de Uso Consultar Saldo Saldo Terminal Saldo da conta Login Consulta Quantia de dinheiro disponível em caixa 51

Entidades Candidatas Identificadas Caso de Uso Efetuar Saque Caixa Dinheiro Quantia Valor a debitar Quantia de dinheiro disponível em caixa Valor a ser sacado Quantia solicitada Quantia desejada Transação 52

Entidades Candidatas Identificadas Caso de uso Efetuar Login Caixa eletrônico Cliente Número da conta Senha Acesso Sistema Cadastro de Contas do Banco Opção Menu Principal Conta Banco Estado da conta Criptografia Operação Estado do Caixa eletrônico 53

Entidades Candidatas Identificadas Caso de uso Efetuar Depósito Valor a depositar Valor a ser depositado Valor depositado Estado da conta Quantia informada pelo cliente Conta destino do depósito 54

Refinar a Lista de Classes Classes Redundantes: quando duas palavras significam a mesma coisa, escolha a palavra mais significativa. Classes Irrelevantes: aquelas classes que não estão diretamente relacionadas com o problema. Atributos: alguns atributos podem ser descritos por substantivos. Operações: alguns substantivos podem ser operações. Papéis: nomes de papéis são de fato nomes de processos dinâmicos ao invés de classes propriamente ditas. Construções de Implementações: qualquer coisa que faça referência a estruturas de dados, etc. 55

Classes Candidatas Eliminadas Classes redundantes: Valor a ser depositado, Valor depositado e Quantia informada pelo cliente: equivalentes a Valor a depositar. Caixa: idêntica a classe Caixa eletrônico. 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. Operação e Opção: equivalente a Transação. Conta destino do depósito: equivalente a Número da conta. 56

Classes Candidatas Eliminadas (ii) Classes Irrelevantes: Número da conta: atributo da classe Conta. Senha: atributo da classe Conta. Estado do caixa: termo genérico para os atributos da classe Caixa eletrônico. Quantidade de dinheiro disponível no caixa: atributo da classe Caixa eletrônico. Estado da conta: termo genérico para os atributos da classe Conta. Saldo: atributo da classe Conta. 57

Classes Candidatas Eliminadas (iii) Classes Vagas: Acesso Menu Principal Criptografia Login Consulta Valor a debitar Valor a depositar 58

Lista revisada de classes CaixaEletrônico Cliente (diferente do ATOR dados do cliente ) Sistema Cadastro de Contas do Banco (ATOR) Conta Banco Terminal Transação Atualizar dicionário de dados! 59

Identificar/Refinar Relacionamentos As classes identificadas até o momento devem ser analisadas com o intuito de identificar as associações e os relacionamentos de agregação/decomposição e de generalização/especialização 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 representação do modelo, a classe Sistema pode ser substituída por um pacote que contenha todas as classes que compõem o sistema 60

Agregações Encontradas Um Banco possui uma ou mais Contas Um Banco contém vários clientes (DadosCliente) Um Banco possui vários Caixas Eletrônico Um Caixa Eletrônico possui um Terminal Um cliente (DadosCliente) pode possuir várias Contas Em um terminal podem ser realizadas várias transações 61

62 Agregações Encontradas

63 Identificar Atributos

Identificar/Refinar Classes (MVC) 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 lógica interna do caixa eletrônico) 64

Classes do Sistema CaixaEletronico << entity >> Conta << entity >> Banco << entity >> Terminal << boundary >> DadosCliente << entity >> Transacao << entity>> FronteiraCadastroContas << boundary >> ControladorCaixa << control >> Atualizar Dicionário de Dados 65

Identificar/Refinar relacionamentos Adicionar as associações com as novas classes do modelo MVC, obedecendo a relação: 66

Diagrama de Classes de Análise (sem operações) 67

68 Modelagem Dinâmica

Modelagem Dinâmica Identifica e modela os aspectos do sistema de software que podem mudar durante a sua execução, devido a ocorrência de eventos. Foco no comportamento que o sistema deve apresentar. Usa os diagramas dinâmicos da UML (sequência, colaboração, estados). Especifica uma versão inicial das interfaces públicas das classes de análise. Sub-etapa de Análise OO - Foco no domínio do problema! 69

Eventos Ocorrências dignas de nota relativas ao sistema e envolvendo algum tipo de troca de informação. O evento não é a informação trocada e sim o fato de alguma informação ter sido trocada. O tipo de evento mais comum encontrado durante a análise é a interação entre um ator e o sistema. Outros tipos também são possíveis. Modelamos o comportamento do sistema através de eventos e das ações executadas em resposta a eles. 70

71 Atividades Modelagem Dinâmica

Identificar Eventos do Sistema Deve ser realizada uma nova análise textual nas especificações dos casos de uso, prestando-se atenção aos pontos nos quais trocas de informação ocorrem. Normalmente, esses pontos estão associados a verbos. Informações relevantes: verbos e os contextos nos quais aparecem. 72

Caso de uso Efetuar Login (i) Caso de Uso: Efetuar Login Fluxo Básico: 1. O cliente solicita a opção de Efetuar Login no sistema. 2. O sistema pede que o cliente informe o número da conta. 3. O cliente fornece o número 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 é válida e se a senha está correta, através do Cadastro de Contas do Banco. Em caso positivo, o sistema atualiza o estado do caixa eletrônico com as informações de login. 7. O sistema exibe no terminal o menu de opções que o cliente pode acessar. 73

Caso de uso Efetuar Login (ii) Fluxo Alternativo 1: No passo 6 do Fluxo Básico, se a conta fornecida não existir ou se a senha estiver errada, o sistema informa que alguma das informações fornecidas está incorreta e que não é possível autenticar o cliente. Em seguida, volta ao passo 2 do Fluxo Básico. Fluxo Alternativo 2: Nos passos 3 e 5 do Fluxo Básico, o cliente pode cancelar a operação. 74

Eventos Identificados De responsabilidade do Sistema Verificar se a conta é válida. Verificar se a senha está correta. Atualizar o estado do caixa eletrônico com as informações 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 transação. 75

Eventos Identificados 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. 76

Construir Diagramas de Sequência Baseado nos eventos encontrados. Cada evento pode corresponder a um ou mais fluxos no diagrama de sequência. Deve-se ter em mente as classes descobertas na análise estática, pois é a partir da interação dos seus objetos que as funcionalidades são implementadas 77

78 Diagrama de Classes de Análise

79 Sequência Consultar Saldo

80 Sequencia Efetuar Saque

Diagrama de Comunicação Centraliza a representação dos eventos dos diagramas de sequência Explicita as associações entre as classes e facilita a identificação das operações 81

82 Comunicação Saque/Consulta

Identificação das Operações Cada evento recebido pode ser Uma operação que a classe deve oferecer O retorno de uma operação executada 83

84 Diagrama de Classes final de Análise

85 Estados da Classe Conta

86 Elaboração ->Projeto

Projeto Adquirir uma compreensão de aspectos de requisitos não funcionais e restrições sobre linguagens de programação, sistemas operacionais, SGBDs, aspectos de distribuição, etc. Criar informações suficientes para a implementação, descrevendo subsistemas, interfaces e classes. Estar apto a dividir a tarefa de implementação em equipes Determinar mais cedo as interfaces entre os subsistemas Criar um modelo que possibilite uma implementação que preencha as estruturas definidas sem altera-las 87

Projeto MODELO DE ANÁLISE MODELO DE PROJETO conceitual físico Genérico (c.r. projeto) específico 3 tipos de classes Depende da implementação Menos formal Mais formal Mais rápido (1/5 do projeto Mais demorado (5 x análise) Poucos níveis Muitos níveis Menos dinamica Mais dinâmica, foco na sequencia Não se mantém no ciclo Se mantém em todo ciclo 88

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 programação da implementação visibilidade dos atributos (ex. publico, protegido, privado) generalizações e herança; associações e agregações e atributos métodos em pseudo-código 89

Projeto - Artefatos 3. Realização dos Casos de Uso Diagrama de classes Diagrama de interações (diagramas de sequência) Fluxo de eventos (textual) Requisitos de implementação 90

91 Projeto - Artefatos 4. Subsistema de Projeto (pacotes de análise, componentes, produtos de software, sistemas existentes) - SUBSISTEMAS DE SERVIÇO 5. Interface (separa funcionalidade de implementação) 6. Arquitetura (VISÃO DO PROJETO) (1. Subsistemas, interfaces e dependências 2. Classes chave, classes ativas 3. Realização de use-cases centrais ao sistema 7. Modelo de Distribuição (Diagrama de componentes) 8. Arquitetura (VISÃO DO MODELO DE DISTRIBUIÇÃO) (Diagrama de Implantação)

Projeto - Arquitetura A1) Identificar nós e suas configurações determinar os nós envolvidos e suas característica determinar os tipos de conexões entre os nós verificar necessidades de processamentos redundantes, backups, etc. A2) Identificar subsistemas e suas interfaces subsistemas da aplicação identificar middleware (SO, SGBD, software de comunicação, pacotes GUI, distribuição, etc.) definir dependências entre os subsistemas identificar as interfaces entre os subsistemas 92

Projeto - Arquitetura A3) Identificar classes de projeto significativas a partir das classes de análise classes ativas (requisitos de concorrência, performance, inicialização, distribuição, prevenção de deadlocks) A4) outros requisitos de projeto (persistência, transparência de distribuição, segurança, recuperação de erros, gerência de transações) 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 várias classes de projeto (distribuição) ou serem encapsuladas em classes de entidades A2) Definir operações 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 análise os tipos dos atributos são determinados pela linguagem de programação valores de atributos usados por vários objetos devem ser transformados em objetos 94

Projeto - Classe A4) Identificar associações e agregações dependendo da linguagem, transformá-los em relacionamentos tentar transformar cardinalidades, papéis, etc. em atributos ou em novas classes para realizar a associação analise a navegabilidade pelas associações A5) Identificar generalizações A6) Descrever métodos realização de operações por pseudo-código, diagramas de atividades, linguagem natural,.. A7) Descrever estados diagrama de estados 95

Projeto - Subsistema 1. Rever as dependências entre subsistemas 2. Rever as interfaces 3. Rever o conteúdo 96

97 Elaboração -> Implementação

Implementação 1. MODELO DA IMPLEMENTAÇÃO 2. COMPONENTE 3. SUBSISTEMA DE IMPLEMENTAÇÃO 4. INTERFACE 5. ARQUITETURA (visão da implementação) 6. PLANO DE INTEGRAÇÃO 98

Implementação MODELO DA IMPLEMENTAÇÃO É uma hierarquia de subsistemas de implementação contendo componentes e interfaces COMPONENTE É UM PACOTE CONTENDO ELEMENTOS DO PROJETO Diagrama de Componentes <<executable>> (programa executável) <<file>> (arquivo contendo código fonte ou dados) <<library>> (biblioteca estática ou dinâmica) <<table>> (tabela do banco de dados) <<document>> (um documento) 99

Implementação SUBSISTEMAS DE IMPLEMENTAÇÃO um package em Java um project em Visual Basic um diretório de C++ INTERFACES Implementam as interfaces do projeto ARQUITETURA (visão da implementação) Decomposição em subsistemas, compostos de interfaces e componentes e Componentes chave PLANO DE INTEGRAÇÃO Primeira versão executável: testes localizados de integração para facilitar a detecção de erros:=>versão final 100

101 Elaboração -> Teste

Teste Planejar os testes em cada iteração, tanto os testes de integração quanto os testes de sistema preparar casos de teste, criar procedimentos de teste e procedimentos executáveis Realizar os testes e analisar os resultados 102

Teste - Artefatos Modelo de Teste Casos de Teste 103

104 Ciclo de Vida PU