Construção Projeto Final - APGS Adriana P. de Medeiros Construção Objetivo Projeto (continuação) Projeto de Banco de Dados Projeto da Interface com Usuário Implementação (Prototipação) Teste Manual do Usuário Documentação Análise, Projeto e Gerência de Sistemas Projeto Final 2 Objetivo Tornar o sistema executável Necessário: construir o projeto do banco de dados construir o projeto da interface com usuário implementar o protótipo preparar o plano de testes começar a construir o manual do usuário Análise, Projeto e Gerência de Sistemas Projeto Final 3 Construção Análise e Projeto (Continuação) Análise, Projeto e Gerência de Sistemas Projeto Final 4 Projeto de Banco de Dados Definir: Nomenclatura para nomes de tabelas, campos, visões, triggers, etc. Modelo de Dados Relacional Projeto Lógico Projeto Físico das Tabelas Mapeamento das Classes para Tabelas Regras de Integridade Dicionário de Dados Limpeza das Tabelas Políticas de Backup Utilizadas Análise, Projeto e Gerência de Sistemas Projeto Final 5 Projeto de Banco de Dados Definir as Entidades, Relacionamentos e Atributos (Peter Chen) Considerar mapeamento das classes para tabelas mapear várias classes para uma só tabela ou mapear uma classe para cada tabela inclusão de chaves para cada tabela conversão de atributos multivalorados em tabelas utilização de tabelas para modelar as associações muitos-para-muitos Análise, Projeto e Gerência de Sistemas Projeto Final 6 Nomenclatura Definir a lei de formação para os nomes das tabelas, campos de tabela, visões, triggers, etc. Exemplo: T_N_nnn, onde: T = tabela N = nome lógico nnn = numeração sequencial ex: T_Pedido_001 Análise, Projeto e Gerência de Sistemas Projeto Final 7 Modelo de Dados Relacional código Cliente número (1,1) (0,N) solicitação data matrícula (0,N) Pedido de Venda (1,1) preenche nome Funcionário (1,1) nome e-mail cargo composição quantidade (1,N) código Item de Pedido valor (0,N) referência Análise, Projeto e Gerência de Sistemas Projeto Final código (1,N) descrição Produto 8 Projeto Lógico Cliente (codCliente, nome, e-mail) PedidoVenda(numPedido, data, codCliente) ItemPedido(codProduto, numPedido, quantidade, valor) Produto(codProduto, descricao) Funcionario(matricula, nome, cargo) Análise, Projeto e Gerência de Sistemas Projeto Final 9 Projeto Físico das Tabelas Descrever a estrutura das tabelas do modelo de dados relacional Exemplo: Nome Lógico Nome Físico Volume inicial Crescimento previsto Contrato T_Contrato_001 2000 100/mês Descrição: Tabela que armazena informações dos contratos assinados para o atendimento de um determinado pedido Estrutura Chave Item Tipo (tamanho) Nulo PK NR_Contrato char (11) NOT NULL FK CD_Empresa int NOT NULL FK NR_Pedido char(10) NOT NULL VL_Contrato numeric(10,2) DT_Assinatura datetime Análise, Projeto e Gerência de Sistemas Projeto Final 10 Quadro de Classes vs Tabelas Classes Tabelas Contrato T_Contrato_001 Empresa T_Empresa_001 Pedido T_Pedido_001 Nota Fiscal T_Nota_Fiscal_001 Análise, Projeto e Gerência de Sistemas Projeto Final 11 Limpeza das Tabelas Explicitar os critérios para limpeza das tabelas do sistema Exemplo: A limpeza das diversas tabelas do sistema será realizada de acordo com os critérios indicados na tabela abaixo. Tabelas Fatura Pedido Cliente Limpeza Histórico No primeiro trimestre, das faturas do ano anterior Fita magnética DDS2 4mm por 5 anos No início de cada mês, de todos os pedidos atendidos no mês anterior Fita magnética DDS2 4mm por 1 ano No início de cada ano, dos clientes que não compraram no ano anterior Fita magnética DDS2 4mm por 1 ano Análise, Projeto e Gerência de Sistemas Projeto Final 12 Projeto da Interface com o Usuário Definir: Nomenclatura para telas, controles, relatórios, formulários, etc. Padronização Níveis de Ajuda (help) necessários e Parametrizações permitidas Projeto da Interface Diagrama de Navegação Desenho das Janelas Descrição das Janelas Mini-Especificação das Janelas Especificação dos Campos Análise, Projeto e Gerência de Sistemas Projeto Final 13 Padronização Definir padrão para Uso das teclas <ESC> = retorna <ENTER> = aceita o dado/seleciona a opção <F1> = aciona a tela de ajuda do sistema Efeitos especiais Mensagens apresentadas ao usuário sons, piscante, tipo de ícone, etc. definir os tipos de situação nas quais serão apresentadas mensagens ao usuário (ajuda, erro, confirmação, etc) Críticas na entrada de dados críticas campo a campo ou do conjunto inteiro Análise, Projeto e Gerência de Sistemas Projeto Final 14 Níveis de Ajuda e Parametrizações Identificação dos níveis de ajuda necessários Parametrização para atender os diferentes ambientes e usuários Análise, Projeto e Gerência de Sistemas Usuário ocasional: necessita de ajuda passo a passo Usuário novato: necessita de ajuda detalhada, passo a passo Usuário experiente: prescinde de ajuda e requer flexibilidade para navegação pelo sistema Configuração de buffers Configuração de cores Configuração de impressora Configuração de uso/não uso de mouse Projeto Final 15 Projeto da Interface Deve conter as seguintes documentações Revisão do Sistema Revisão da Aplicação Diagrama de Navegação Descrição da Janela Análise, Projeto e Gerência de Sistemas Mini-Especificação da Janela Projeto Final Desenho da Janela Especificação de Campos 16 Diagrama de Navegação Janela A M Janela B função/restrição Janela C Ação Ir p/ B Resultado Análise, Projeto e Gerência de Sistemas Projeto Final 17 Desenho da Janela Manutenção da Lista de Preços Região Sudeste Produto Preço Produto Vigência Preço Novo Análise, Projeto e Gerência de Sistemas Editar Pesquisar Gravar Projeto Final Cancelar Sair 18 Descrição da Janela Título da Barra: Manutenção da Lista de Preços Menu: Nenhum Tipo de Janela: Filha A janela de Manutenção da Lista de Preços é usada para ……… A janela é aberta a partir da janela Principal. Se o usuário tiver aberto anteriormente a janela ………. Será apresentado ……. Caso contrário, a janela é aberta com a …… O campo Região é uma combo que apresenta os valores das regiões cadastradas. A parte inferior da janela apresenta uma lista de …….. Para excluir um item da lista o usuário marca ………. O botão Gravar atua sobre……. O botão Sair retorna o usuário para a janela Principal. Análise, Projeto e Gerência de Sistemas Projeto Final 19 Mini-Especificação da Janela Janela: Manutenção da Lista de Preços Parâmetros: Modo [ valores = abertura, inclusão, alteração, ...] Abertura: Modo = abertura Todos os campos em branco. Estarão habilitados Produto e Preço e botões Novo, Pesquisar e Sair. Controle Grid Produto Botão Novo Habilitado Evento Comportamento Se Modo = resposta pesquisa Double Click Apresenta o Grid classificado por Produto ou Preço, dependendo da coluna em que for efetuado o Double Click Click Modo = inclusão Habilita todos os campos para digitação de dados Habilita os botões ... Modo = abertura Análise, Projeto e Gerência de Sistemas Projeto Final 20 Especificação de Campos Para áreas de display, a especificação pode conter: • nome do campo da tabela correspondente • estilo de apresentação (tabular, livre) • se tabular, ordem de apresentação, filtros, supressão de valores repetidos, critério de seleção, critério de agrupamento Para elementos de dados presentes na interface, a especificação pode conter: • nome do campo • indicação se o campo é obrigatório ou não e em que condições; • indicação se o campo é visível ou não e em que condições; • indicação se o campo pode ser atualizado pelo usuário e quando deixará de poder ser atualizado • definição e como o campo é calculado, editado e das regras aplicáveis Análise, Projeto e Gerência de Sistemas Projeto Final 21 Construção Implementação Análise, Projeto e Gerência de Sistemas Projeto Final 22 Implementação Implementar: A árvore de telas (usadas no protótipo) O sub-conjunto de funções que for combinado com o(a) orientador(a) Aspectos a considerar: Produtividade Eficiência Portabilidade Controle de Versões Controle de Concorrência Controle de Acesso Análise, Projeto e Gerência de Sistemas Projeto Final 23 Implementação Produtividade Depende do uso de técnicas de programação e da linguagem utilizada Ferramentas de desenvolvimento podem encurtar o tempo necessário para gerar código fonte e melhorar a qualidade do código. Análise, Projeto e Gerência de Sistemas Projeto Final 24 Implementação Eficiência Torna-se crítica quando se trabalha com grandes volumes de dados ou com sistemas em tempo real Analisar: Acesso a arquivos Uso de buffers Acesso ao banco de dados Algoritmo utilizado Análise, Projeto e Gerência de Sistemas Projeto Final 25 Implementação Portabilidade Importante quando se deseja ter versões do mesmo programa em equipamentos (ambientes) diferentes Análise, Projeto e Gerência de Sistemas Projeto Final 26 Implementação Controle de Concorrência Importante quando se tem acesso concorrente a dados do sistema Quando necessário, definir mecanismos para o controle de concorrência. Análise, Projeto e Gerência de Sistemas Projeto Final 27 Implementação Controle de Acesso Especificar os perfis de usuário e as operações permitidas Exemplo: O acesso ao sistema deve ser efetuado mediante a identificação do usuário e a validação de sua senha. A operações que o usuário pode executar depende da classe que lhe foi associada, conforme a tabela abaixo: Classes de Usuário Atividades Administrador Gerente Registrar Pedido X Listar total de vendas por vendedor X Gerar back-up Técnico X X Serão criadas atividades de auditoria para o controle de operações realizadas pelos usuários no sistema e para detectar possíveis violações ao sistema. Análise, Projeto e Gerência de Sistemas Projeto Final 28 Construção Teste Análise, Projeto e Gerência de Sistemas Projeto Final 29 Teste do Sistema Um processo de avaliação do sistema que pode ser manual automático Objetivo: encontrar erros ainda não descobertos e verificar se o sistema atende às necessidades especificadas Identifica eventuais diferenças entre os resultados esperados e os resultados reais Um meio de assegurar a qualidade do sistema Análise, Projeto e Gerência de Sistemas Projeto Final 30 Fases de Teste Teste de unidade verifica uma fração do sistema isoladamente, podendo ser um programa ou um módulo Teste de integração verifica o funcionamento de um conjunto de programas ou módulos Análise, Projeto e Gerência de Sistemas Projeto Final 31 Fases de Teste Teste de sistema verifica se as funcionalidades especificadas estão corretamente implementadas no sistema envolve diferentes testes teste de recuperação teste de segurança teste de desempenho teste de carga Teste de aceitação verifica a disponibilidade do sistema para entrada em produção (teste do usuário) Análise, Projeto e Gerência de Sistemas Projeto Final 32 Técnicas de Teste Caixa Branca Verifica a estrutura lógica do código-fonte Testa-se os IF, WHILE e todas as estruturas de controle, acesso a dados e interface Caixa Preta Verifica os requisitos funcionais do sistema Testa-se as funcionalidades do sistema, verificando sua correta operação segundo uma ótica externa a implementação Análise, Projeto e Gerência de Sistemas Projeto Final 33 Plano de Testes do Sistema Define o plano para execução dos testes do sistema e deve conter: Introdução objetivos do plano de testes, escopo, estratégia e técnicas de teste utilizadas Responsabilidades de cada integrante do teste Cronograma para as atividades Ambiente de teste (hardware e software necessários) Necessidade de treinamento Funcionalidades a serem testadas descrição dos casos de testes e dos resultados esperados Análise, Projeto e Gerência de Sistemas Projeto Final 34 Plano de Testes do Sistema Exemplo Introdução Este plano de testes tem como objetivo definir as atividades e as técnicas utilizadas para a validação de todas as funcionalidades implementadas para o Sistema de Gestão de Pedidos. O escopo de testes deve abranger todas as funções desenvolvidas para atender os requisitos funcionais descritos na documentação de projeto do sistema. Serão realizados os seguintes testes: teste de unidade, teste de integração, teste de sistema, teste de recuperação, teste de desempenho e teste de aceitação. Estes testes serão realizados utilizando-se as técnicas de teste de caixa branca e de caixa preta. Os testes de unidade serão realizados pelos programadores ... Responsabilidades ... Análise, Projeto e Gerência de Sistemas Projeto Final 35 Plano de Testes do Sistema Exemplo (cont.) Responsabilidades Ação Responsável Data Prevista Elaborar casos de teste Analista 08/08 a 10/08/2003 Preparar dados para testes Analista e DBA 12/08/2003 Configurar ambiente de testes Programador 13/08/2003 Testar Analista e Programador 15/08 a 20/08/2003 Ambiente de teste Hardware – 2 microcomputadores Pentium III, ... Análise, Projeto e Gerência de Sistemas Projeto Final 36 Plano de Testes do Sistema Exemplo (cont.) Funcionalidades (Casos de Teste) Consulta de Pedidos: Casos Resultados esperados Informa número de um pedido cadastrado Mostra linha com os dados do pedido Informa número de um pedido não cadastrado Exibe mensagem “Pedido não cadastrado” Atualizar dados do Pedido: ... Análise, Projeto e Gerência de Sistemas Projeto Final 37 Construção Manual do Usuário Análise, Projeto e Gerência de Sistemas Projeto Final 38 Manual do Usuário Informação geral sobre o sistema Descrição dos usuários Instruções para entrar no sistema Layouts das telas e relatórios Descrições das telas Instruções de uso Instruções para navegação Instruções para sair do sistema Instruções sobre como obter ajuda Instruções sobre procedimentos de segurança e recuperação de dados (no caso dos micros) Análise, Projeto e Gerência de Sistemas Projeto Final 39 Manual do Usuário Caso exista algum usuário que não interage diretamente com o sistema automatizado, acrescentar Informação geral sobre o sistema e seu funcionamento Definição das responsabilidades de cada usuário Modelos de documentos e instruções de preenchimento Instruções de encaminhamento para processamento Instruções para análise do processamento e correção de erros Cronograma de execução Como proceder para esclarecimento de dúvidas Análise, Projeto e Gerência de Sistemas Projeto Final 40 Manual de Operação Informação geral sobre o sistema e seu funcionamento Especificação dos procedimentos em lote, cronogramas de execução e pré-requisitos No caso de sistemas com informação de dados em lotes, deve conter instruções sobre recepção, transcrição de dados e devolução de documentos Especificação do encaminhamento dos relatórios produzidos em lotes Especificação dos critérios para avaliação da execução dos procedimentos em lote Especificação dos procedimentos para recuperação de falhas Identificação do mantenedor Análise, Projeto e Gerência de Sistemas Projeto Final 41 Documentação Gerada Introdução Apresentação da empresa (o cliente) Objetivos gerais do projeto Estrutura do documento Modelagem de Negócio Características da empresa (descrição, estrutura organizacional, processo atual, recursos de informática e expectativa do cliente) Processos de negócio (Casos de uso de negócio) Problemas identificados Necessidades detectadas Requisitos Diagrama de Casos de Uso de sistema e Descrições Requisitos Suplementares Alternativas de Solução Descrição de cada alternativa Análise comparativa das alternativas Alternativa recomendada pela equipe Alternativa escolhida pelo usuário e critério de escolha Análise, Projeto e Gerência de Sistemas Projeto Final 42 Documentação Gerada Análise e Projeto Modelo Conceitual Modelo de Projeto - Diagrama de Classes de Projeto • tipos de atributos e operações • classes abstratas e interfaces • padrões de projeto • pacotes, etc. - Justificativa para uso de Padrões de Projeto - Diagramas de Sequência - Diagrama de Estados (se necessário) -Proposta de Componentes Projeto de Banco de Dados Projeto de Interface com o Usuário apenas para as telas do protótipo Análise, Projeto e Gerência de Sistemas Projeto Final 43 Documentação Gerada Implementação Nomenclatura utilizada Controle de Concorrência Controle de Acesso Teste Plano de Teste Glossário Anexos + Manual do Usuário Análise, Projeto e Gerência de Sistemas Projeto Final 44