Universidade Paulista Ciência da Computação Sistemas de Informação Engenharia de Software Análise Estruturada Sergio Petersen 22/4/2012
Sumário 1. Técnicas de Análise 3 2. Principais Autores 3 3. Análise Estruturada Yourdon 3 4. Convenções Diagrama de Contexto e DFD 3 5. Diagrama de Fluxo de Dados 4 5.1.DFD Componentes 5.1.1.Processo 5.1.2.Fluxo de Dados 4 4 5 5.1.3.Depósito de Dados 6 5.1.4.Terminador ou Entidade Externa 7 5.2.Diretrizes para Elaboração de DFD 7 5.3.DFD - Típico 8 5.4.DFD com Níveis 9 5.5.DFD Equilibrado 10 5.6.DFD Desequilibrado 11 6. Dicionários de Dados 12 6.1.Definição dos Elementos de Dados no Dicionário 12 6.2.Notação do Dicionário de Dados 12 6.3.Exemplo de Notação 12 6.4.Definição de Elemento de Dados 13 7. Especificações de Processos 14 7.1.Requisitos Essenciais das Especificações de Processos 14 7.2.Ferramentas 14 7.2.1.Linguagem Estruturada 14 7.2.2.Condições Pré/Pós 14 7.2.3.Tabelas de Decisões 15 2
1. Técnicas de Análise Análise Estruturada Análise Essencial Entidade e Relacionamento 2. Principais Autores Tom De Marco Chris Gane e Trish Sarson Eduard Yourdon Meilir Page-Jones Stephen McMenamin & John Palmer Peter Chen 3. Análise Estruturada Yourdon Diagrama de Contexto DFD Diagrama de Fluxo de Dados Dicionário de Dados Especificação de Processos Especificação de Fluxos de Dados 4. Convenções Diagrama de Contexto e DFD Modelos de Sistemas são Construídos: Para focalizar características importantes de sistemas deixando de lado as menos importantes. Para discutir alterações e correções nos requisitos do usuário a baixo custo e com mínimo risco. Para confirmar que entendemos o ambiente e o documentamos de uma tal forma que os projetistas de sistemas e programadores podem construir o sistema. Características das Ferramentas Ela deve se gráfica, com adequado detalhamento textual de apoio. Ela deve permitir que o sistema possa ser visualizado de forma subdividida, na modalidade top-down. Ela deve ter mínima redundância. 3
Ela deve ajudar o leitor a prognosticar o comportamento do sistema. Ela deve ser transparente para o leitor. 5. Diagrama de Fluxo de Dados Ferramenta de modelagem que nos permite imaginar um sistema como uma rede de processos funcionais, interligados por dutos e tanques de armazenamento de dados. É uma das mais utilizadas ferramentas de modelagem de sistemas, principalmente para sistemas operativos nos quais as funções do sistema sejam de fundamental importância e mais complexas do que os dados manipulados pelo sistema. Oferece apenas uma visão do sistema a visão orientada para funções. 5.1. DFD Componentes 5.1.1. Processo Processo, bolha, função e transformação. Mostra como uma ou mais entradas são convertidas em saídas. CALCULA IMPOSTO SOBRE VENDAS CALCULAR IMPOSTO SOBRE VENDAS CALCULAR IMPOSTO SOBRE VENDAS 4
5.1.2. Fluxo de Dados Utilizado para mostrar o movimento de fragmentos ou de pacotes de informações de um ponto a outro do sistema. Representa dados em movimento. FLUXO DE ENTRA FLUXO DE SAÍDA FLUXO DE DIÁLO 5
5.1.3. Depósito de Dados Utilizado para se modelar uma coleção de pacotes de dados em repouso. D 6
5.1.4. Terminador ou Entidade Externa Representam entidades externas com as quais o sistema se comunica. São pessoas, grupo de pessoas, sistemas ou uma organização dentro ou fora da empresa, mas que estão fora do controle do sistema. São externos aos sistemas Os analistas ou projetistas não podem modificar o conteúdo de um terminador ou o modo como ele funciona. Relacionamentos entre terminadores não serão mostrados no DFD. 5.2. Diretrizes para Elaboração de DFD Escolher nomes significativos para os processos, fluxos, depósitos e terminados. Numerar os processos. Refazer os DFD tantas vezes quantas forem necessárias até obter uma boa estética. Evitar DFD complexos demais. Certificar-se de que o DFD seja internamente consistente além de manter a consistência com os outros DFD. 7
5.3. DFD - Típico 8
5.4. DFD com Níveis 9
5.5. DFD Equilibrado 10
5.6. DFD Desequilibrado 11
6. Dicionários de Dados É uma listagem organizada de todos os elementos de dados pertinentes ao sistema, com definições precisas e rigorosas para que o usuário e o analista de sistemas possam conhecer todas as entradas, saídas, componentes de depósitos e cálculos intermediários. 6.1. Definição dos Elementos de Dados no Dicionário Descrevendo o significado dos fluxos e depósitos mostrados no DFD Descrevendo a composição de pacotes agregados de dados que se movimentam pelos fluxos Descrevendo a composição dos pacotes de dados nos depósitos Especificando os relevantes valores e unidades de partes elementares de informações dos fluxos de dados e depósito de dados Descrevendo os detalhes dos relacionamentos entre os depósitos realçados em um diagrama entidades-relacionamentos 6.2. Notação do Dicionário de Dados = é composto de + e ( ) opcional { } iteração [ ] escolha uma das opções alternativas ** comentário @ identificador (campo chave) de um depósito separa opções alternativas na construção 6.3. Exemplo de Notação Nome 12
Nome = título-cortesia + primeiro-nome + (nome-intermediário) + último-nome Título-cortesia Primeiro-nome = [Sr. Srta. Sra. Dr. Professor] = {caracter-válido} Nome-intermediário = {caracter-válido} Último-nome = {caracter-válido} Caracter-válido = [A-Z a-z 0-9 - ] 6.4. Definição de Elemento de Dados É apresentada com o símbolo = É definido como É composto de Significa O significado do elemento de dados no contexto desta aplicação do usuário. Normalmente apresentado como comentário **. A composição do elemento de dados, se ele for composto por componentes elementares significativos. Os valores que o elemento de dados poderá assumir, se ele for um elemento de dados elementar que não possa ser decomposto. 13
7. Especificações de Processos É a descrição do que ocorre dentro de cada bolha primitiva, do nível mais baixo, em um DFD. Define o que deve ser feito para transformar entradas em saídas. 7.1. Requisitos Essenciais das Especificações de Processos Deve ser expressa de uma forma que possa ser verificada pelo usuário e pelo analista de sistemas. Deve ser expressa de uma forma que possa ser efetivamente comunicada às diversas audiências envolvidas. 7.2. Ferramentas Linguagem estruturada. Condições pré/pós. Tabelas de decisão. 7.2.1. Linguagem Estruturada É um subconjunto da linguagem normal com algumas restrições quanto ao tipo de sentenças que podem ser utilizadas e à maneira como essas sentenças podem ser reunidas. LPP Linguagem de Projeto de Programas LEP Linguagem de Especificação de Problema. Têm o propósito de obter um razoável equilíbrio entre a precisão de uma linguagem de programação formal e a casual informalidade e legibilidade da língua que utilizamos normalmente. 7.2.2. Condições Pré/Pós Modo prático de descrevermos a função que deve ser executada por um processo, sem que seja necessário nos estendermos muito sobre o algoritmo ou sobre o procedimento que será empregado. 14
7.2.3. Tabelas de Decisões Exemplo 1 2 3 4 5 6 7 8 Idade > 21 S S S S N N N N Sexo M M F F M M F F Peso > 150 S N S N S N S N Medicação 1 X X X Medicação 2 X X Medicação 3 X X X Nenhuma medicação X X Vantagens da Tabela de Decisão Descobrir que o usuário nunca pensou em certas combinações de variáveis ou que elas nunca ocorreram anteriormente. Não implica qualquer forma de implementação em particular. Não determina qualquer algoritmo específico para executar as ações necessárias. Leitura YOURDON, Edward, Análise Estruturada Moderna, Editora Campus, 1990 Capítulo 12, Modelo Entidade-Relacionamento. 15