Análise e Projeto de Sistemas Renato O. Violin Porque modelagem? Os modelos ajudam a visualizar como o sistema é ou como desejamos que ele fosse. Os modelos permitem especificar a estrutura ou o comportamento de um sistema. Os modelos proporcionam um guia para a construção do sistema. Os modelos documentam as decisões tomadas. Atenção! Deve-se descrever o sistema sem considerar qualquer tipo de restrição tecnológica. Linguagem de programação. Framework. Sistema operacional. Banco de dados. Técnicas de Análise Análise tradicional: Apenas perspectiva funcional. Utilizava como ferramentas textos e fluxogramas. Análise estrutural: Perspectiva funcional e de dados. Utilização de DFD, dicionário de dados etc. Análise essencial: Perspectiva funcional, de dados e controle. Utiliza tabelas de eventos e diagramas de transição. O Modelo Essencial Introdução Modelo essencial está focado nos aspectos mais essenciais e fundamentais do problema. Organiza o estudo do problema em: Modelagem ambiental (visão externa). Modelagem comportamental (visão interna). Atividades da Modelagem Ambiental A1. Elaborar a declaração dos objetivos do sistema. A2. Elaborar o diagrama de contexto. A3. Construir a lista de eventos. Atividades da Modelagem Comportamental C1. Elaborar o Diagrama do Modelo EntidadeRelacionamento; C2. Elaborar o Diagrama de Estrutura de Dados; C3. Normalizar as Estruturas de Dados; C4. Elaborar o Dicionário de Dados; C5. Elaborar o Diagrama de Fluxo de Dados; C6. Elaborar as Miniespecificações; C7. Elaborar o Diagrama de Transição de Estados. A1. Declaração dos objetivos do sistema Especificar o que o sistema deverá responder frente aos problemas existentes na organização. Deve refletir os principais desejos dos usuários. Primeiro contato com o cliente. Entrevistas com os principais usuários. A1. Declaração dos objetivos do sistema O analista deve redigir um texto breve para a: A gerência; A equipe de desenvolvimento do projeto; Os representantes da empresa que solicitaram o sistema; Os futuros usuários. A1. Declaração dos objetivos do sistema Exemplo: O objetivo deste sistema é apoiar o controle acadêmico da Escola de Línguas Fale Fácil, atuando nos processos de matrícula, acompanhamento de alunos e controle de caixa, disponibilizando informações estratégicas para que a Diretoria administre a instituição. A2. Diagrama de Contexto Apresenta uma visão de alto nível do sistema analisado, mostrando-o como uma “caixapreta”. Ainda não sabemos o que ocorre internamente. Mostra os limites de atuação do sistema. A2. Diagrama de Contexto Entidade externa: Fonte ou destino do fluxo. Algo situado fora do sistema. Pode ser usuários ou outros sistemas. Fluxo de dados: Mostra os dados que estão entrando/saindo. Utiliza breves descrições. A2. Diagrama de Contexto A3. Lista de Eventos Baseado no levantamento de requisitos. Entrevistas com usuários. Observação da execução dos processos. Análise de documentos. Brainstorm. O requisito deve ser descrito na forma: O sistema deve emitir relatório de vendas. O sistema deve cadastrar notas do aluno. O sistema deve cadastrar faltas do aluno. O sistema deve emitir boletim do aluno. A3. Lista de Eventos O sistema deve responder às solicitações (estímulos). Os estímulos são os ativadores do sistema. Cada estímulo é associado um evento externo. Todo estímulo dispara uma função do sistema. Todo estímulo produz uma resposta. A3. Lista de Eventos Exemplo: Quando uma secretária matricula um aluno, temos um evento. A matrícula do aluno é o estímulo. A resposta do sistema é responder se o aluno foi ou não matriculado A3. Lista de Eventos Tipos de eventos: Eventos orientados a fluxo de dados. Eventos temporais. Eventos orientados a fluxo de controle. A3. Lista de Eventos Eventos orientados a fluxo de dados: São aqueles disparados por entidades externas que enviam solicitações de manutenção de dados (inclusão, alteração ou exclusão), consultas ou relatórios. Exemplos: Secretária matricula aluno; Secretária altera dados de aluno; Gerente emite relatório de fechamento de caixa. A3. Lista de Eventos Eventos temporais: São disparados por uma informação relativa a um determinado intervalo de tempo predefinido. Exemplo: É hora de cancelar a reserva do hospede. É hora de gerar relatório de fechamento de despesas do hóspede. A3. Lista de Eventos Eventos orientados a fluxo de controle: Tem como característica a ativação por um fluxo de controle na forma de uma variável binária. Exemplos: A diretoria autoriza o pagamento de uma fatura; O nível mínimo do estoque é atingido. A3. Lista de Eventos C1. Modelagem Entidade-Relacionamento É um dos instrumentos de análise mais importante do modelo essencial, e apresenta três construtores para a representação da semântica dos dados: Entidades. Atributos. Relacionamentos. C1. Modelagem Entidade-Relacionamento C1. Modelagem Entidade-Relacionamento Para começar, devemos tomar todas as funções de entrada/processamento/saída. Essas funções foram levantadas na lista de eventos e requisitos do sistema. C1. Modelagem Entidade-Relacionamento Lista de eventos Funções encontradas 1. A secretária cadastra professor 1. Cadastro de professores. 2. A secretária cadastra turma 2. Cadastro de turmas. 3. A secretária cadastra aluno 3. Cadastro de alunos. 4. A secretária matricula aluno em turma 4.Cadastro de matrículas. 5. A secretária recebe mensalidade e emite recibo 5. Registro de recebimento e emissão de recibo. 6. A secretária registra as presenças e faltas dos alunos 6. Registro de presença/falta dos alunos. 7. A secretária registra as notas das avaliações 7. Registro de notas. 8. A secretária emite o boletim do aluno 8. Emissão do boletim. 9. O diretor emite relatórios de fechamento de caixa 9. Emissão de relatórios de fechamento de caixa. C1. Modelagem Entidade-Relacionamento Da lista anterior, localizar quais seriam as possíveis entidades. Professores. Turmas. Alunos. Matrículas. Recebimentos. Presença. Notas. C1. Modelagem Entidade-Relacionamento N N Modelo Entidade-Relacionamento C1. Modelagem Entidade-Relacionamento Outro exemplo: Modelo Entidade-Relacionamento C2. Diagrama de Estrutura de Dados Também conhecido como modelo lógico de dados. É um esquema que representa o projeto de um banco de dados, especificando sua estrutura lógica: Atributos chave. Chave estrangeiras. Relacionamentos. C2. Diagrama de Estrutura de Dados Exemplo: Usuários = {Código do usuário, nome do usuário, login, senha, perfil do usuário} Cursos = {Código do curso, nome do curso} Turmas = {Código da turma, Ano, Semestre, Data de início, Código do Curso, Código do Professor} Professores = {Código do professor, nome do professor} C3. Normalização dos Dados É um processo para derivar tabelas e eliminar ambiguidades. Objetivos: Garantir a integridade dos dados. Organizar e dividir as tabelas de maneira eficiente, eliminando redundâncias. Formas normais: 1FN, 2FN, 3FN, 4FN, 5FN. C4. Dicionário de Dados É um repositório de informações sobre os componentes do sistema Detalhamos cada atributo das entidades. C5. Diagrama de Fluxo de Dados (DFD) No Diagrama de Contexto temos uma visão gráfica do modelo funcional do sistema. No DFD, vamos detalhar melhor o processo de entrada/processamento/saída dos dados: Entidades externas. Processos. Fluxo de dados. Depósito de dados. C5. Diagrama de Fluxo de Dados (DFD) Entidades externas: É um elemento do ambiente que atua como fonte ou destino de dados e informações que entram ou saem do sistema. Pode ser uma entidade Pessoa, outro Sistema ou outro Setor dentro da empresa. C5. Diagrama de Fluxo de Dados (DFD) Fluxo de Dados: Representa os dados que entram e saem dos processos para uma entidade externa ou um repositório. C5. Diagrama de Fluxo de Dados (DFD) Processos: É a entidade mais importante do diagrama. É a partir dela que as entradas são transformadas nas saídas desejadas. Deve ser descrito em uma única palavra ou sentença simples e com verbos no infinitivo. C5. Diagrama de Fluxo de Dados (DFD) Depósito de Dados: Representa uma estrutura para armazenamento e recuperação de dados. Pode ser consultado ou pode receber novos dados, mas não pode exercer nenhuma ação por si próprio. Seta em direção ao depósito, é sinal de inclusão, alteração ou exclusão de dados. Seta em direção ao processo, é sinal de consulta ou leitura de dados. C5. Diagrama de Fluxo de Dados (DFD) Exemplo: C5. Diagrama de Fluxo de Dados (DFD) Outro exemplo: C5. Diagrama de Fluxo de Dados (DFD) Outro exemplo: C5. Diagrama de Fluxo de Dados (DFD) Outro exemplo: C6. Miniespecificações Tem como objetivo descrever os processos em uma linguagem que os envolvidos no projeto, especialmente programadores, possam entender facilmente. Trata especificamente das regras de negócio. Enquanto o DFD mostra como as entidades interagem, a especificação diz exatamente o que o processo faz. C6. Miniespecificações Técnicas de especificação: 1. Português Estruturado. 2. Pseudocódigo. 3. Tabela de decisão. 4. Arvore de decisão. C6. Miniespecificações 1. Português estruturado: Uma versão adaptada do nosso idioma, com ênfase em verbos – de preferência no modo imperativo. Sintaxe Português estruturado Instruções Obtenha, calcule, coloque... Repetição Para cada... faça o que segue Seleção/decisão Se ... então faça o que segue Caso 1: ... faça o que segue C6. Miniespecificações Exemplo: Emitir aviso de situação do aluno Para cada aluno no arquivo de alunos: 1. Coloque a matrícula, nome e endereço do aluno no formulário de aviso. 2. Para cada código da disciplina cursada pelo aluno, existente no arquivo de avaliações: Obtenha, a partir do arquivo de disciplinas, o nome da disciplina. Obtenha, a partir do arquivo de avaliações, a média final do aluno na disciplina. Coloque, no formulário de aviso o código, o nome e a média final da disciplina cursada pelo aluno. 3. Calcule o total de disciplinas em que o aluno obteve média final menor que 5 (CASO 1) nenhuma disciplina com média final menor do que 5. • Coloque no formulário a expressão "APROVADO". (CASO 2) mais de três disciplinas com médias finais menores que 5. • Coloque no formulário a expressão "REPROVADO". (CASO 3) menos de quatro disciplinas com médias finais menores que 5. • Coloque no formulário a expressão "EM RECUPERAÇÃO". C6. Miniespecificações 2. Pseudocódigo: Mais popular e bem próxima de uma linguagem de programação. Estrutura de sequência INÍCIO ação 1 ação 2 FIM. Estrutura de decisão INÍCIO SE condição ENTÃO ação 1 SENÃO ação 2 FIM. C6. Miniespecificações 3. Tabela de decisão: Expressar em forma de tabela um conjunto de condições necessárias para executar determinada ação. C6. Miniespecificações 4. Árvore de decisão: Representação alternativa para a tabela de decisão. C7. Diagrama de Transição de Estados Utilizado para modelar sistemas em tempo real, onde depende-se do tempo e estado de execução: Controle de tráfego aéreo. Sistemas militares. Sistemas de navegação de automóveis. Concluindo... Vimos as ferramentas que permitem examinar o sistema do ponto de vista de funções e de fluxo de dados. Modelagem ambiental: visão geral do sistema e sua comunicação com entidades externas. Modelagem comportamental: visão detalhada de como implementar as funções do sistema. Próximo assunto: UML e a abordagem Orientada a Objetos.