1 Análise & Projeto – Especificação de ProcessosProf. Thales Castro
2 Revisão Geral Documentação textualTransformação em Diagrama de Contexto DFD em níveis
3 Revisão Geral Fluxo de dados Processo Entidade externaDepósito de dados
4 DFD nível 0 – Diagrama de Contexto
5 DFD Nível 1 Dados da Empresa no Ministério Dados para CNPJDados da Nova Empresa P3 Emitir CNPJ Empresas Cadastro de P2 Cadastrar Empresas CNPJ (CGC) Dados de Empresas Pedido Aceito P1 Verificar pedido de inscrição Empresa Pedido de Inscrição Ministério da Fazenda Resposta de Pedido Relação de Empresas Restrições Restrições em Vigor P5 Atualizar Tabela de Restrições P4 Selecionar Empresas Novas Restrições Tabela de Restrições
6 DFD Nível 2 – Explosão do Processo P1Cadastro de Empresas Dados de Empresa P1.2 Verificar Existência de Razão social P2 Cadastrar Empresas Pedido completo Pedido Inválido Pedido Válido Pedido Aceito P1.1 Verificar preenchimento Empresa Pedido de Inscrição Pedido Indevido Pedido Recusado P1.3 Verificar Restrições em vigor Pedido incompleto Restrições em vigor P1.4 Gerar Ordem de Devolução Pedidos Rejeitados Pedidos Recusados Tabela de Restrições
7 Especificação de ProcessosTem como objetivo definir o que deve ser feito para transformar as entradas de um processo em saídas Necessidade de “ver” o processo como um todo Especificação do nível mais baixo do DFD Geralmente escrita pelo analista, mas... Deve ser especificada de uma forma que possa ser verificada tanto pelos analistas quanto pelos usuários (gerentes, diretores, etc...)
8 Especificação de processosNão deve ser utilizada a linguagem descritiva (textual) Irás voltarás nunca morrerás na guerra Irás , voltarás, nunca morrerás na guerra. Irás , voltarás nunca , morrerás na guerra.
9 Especificação de ProcessosExistem algumas técnicas para especificação de processos Linguagem estruturada Pré e Pós Condições Tabela de Decisão Árvore de Decisão NÃO SÃO APENAS ESSAS, EXISTE UMA DIVERSIDADE!!!
10 Especificação de ProcessosExistem algumas técnicas para especificação de processos Linguagem estruturada Pré e Pós Condições Tabela de Decisão Árvore de Decisão
11 Linguagem Estruturada"Subconjunto" da linguagem textual, com restrições: Tipos de sentenças que podem ser usadas Formas que podem ser usadas Formas como podem ser reunidas Equilibrio entre a precisão de uma linguagem de programação formal e a informabilidade de uma linguagem textual
12 Linguagem EstruturadaConsistem em: Verbos no imperativo (RECEBER, ENVIAR, MOVIMENTAR, etc...) Termos Locais Numerais Estruturas de controle
13 Linguagem EstruturadaEstrutura de Controle 1: SE SE
14 Linguagem EstruturadaEstrutura de Controle 2: FAÇA-CASO FAÇA-CASO CASO
15 Linguagem EstruturadaEstrutura de Controle 3: FAÇA-ENQUANTO FAÇA-ENQUANTO
16 Linguagem Estruturada - exemploCadastro de Empresas Dados de Empresa P1.2 Verificar Existência de Razão social P2 Cadastrar Empresas Pedido completo Pedido Inválido Pedido Válido Pedido Aceito P1.1 Verificar preenchimento P1.1 Verificar preenchimento Empresa Pedido de Inscrição Pedido Indevido Pedido Recusado P1.3 Verificar Restrições em vigor Pedido incompleto Restrições em vigor P1.4 Gerar Ordem de Devolução Pedidos Rejeitados Pedidos Recusados Tabela de Restrições
17 Linguagem Estruturada - exemplo[P1.1] - VERIFICAR PEDIDO DE INSCRIÇÃO COMPLETO completo = verdadeiro SE não existe razão social completo = falso SENÃO SE não existem socios SENÃO SE não existe endereco completo = falso SENÃO SE completo P1.2 VERIFICAR_RAZÃO_SOCIAL incluir pedido recusado (pedido incompleto)
18 Linguagem Estruturada - exemploCadastro de Empresas Dados de Empresa P1.2 Verificar Existência de Razão social P1.2 Verificar Existência de Razão social P2 Cadastrar Empresas Pedido completo Pedido Inválido Pedido Válido Pedido Aceito P1.1 Verificar preenchimento Empresa Pedido de Inscrição Pedido Indevido Pedido Recusado P1.3 Verificar Restrições em vigor Pedido incompleto Restrições em vigor P1.4 Gerar Ordem de Devolução Pedidos Rejeitados Pedidos Recusados Tabela de Restrições
19 Linguagem Estruturada - exemplo[P1.2] - VERIFICAR EXISTÊNCIA DE RAZÃO SOCIAL LER razão social de CADASTRO DE EMPRESAS SE existe razão social incluir pedido recusado (pedido inválido) SENÃO P1.3 VERIFICAR RESTRIÇOES EM VIGOR
20 Linguagem Estruturada - exemploCadastro de Empresas Dados de Empresa P1.2 Verificar Existência de Razão social P2 Cadastrar Empresas Pedido completo Pedido Inválido Pedido Válido Pedido Aceito P1.1 Verificar preenchimento Empresa Pedido de Inscrição Pedido Indevido Pedido Recusado P1.3 Verificar Restrições em vigor P1.3 Verificar Restrições em vigor Pedido incompleto Restrições em vigor P1.4 Gerar Ordem de Devolução Pedidos Rejeitados Pedidos Recusados Tabela de Restrições
21 Linguagem Estruturada - exemplo[P1.3] - VERIFICAR RESTRIÇÕES EM VIGOR existe_restricao = falso FAÇA-ENQUANTO existem socios OBTER próximo socio LER restricao para socio SE existe restricao para socio existe_restricao = verdadeiro FIM-ENQUANTO SE existe_restricao incluir pedido recusado (restricao para um ou mais socios) SENÃO P2 CADASTRAR EMPRESA
22 Linguagem EstruturadaAlgumas sugestões: Uma especificação de processos geralmente cabe em única folha Não usar mais de 3 níveis de alinhamento, principalmente em seleções Evitar confusões dos níveis de alinhamento, utilizando identação Examinar o documento para garantir que os utilizadores o entenderão facilmente
23 Especificação de ProcessosExistem algumas ferramentas que auxiliam na especificação de processos Linguagem estruturada Pré e Pós Condições Tabela de Decisão Árvore de Decisão
24 PRÉ/PÓS CONDIÇÕES Sugestão prática sem o detalhamento do algoritmo que será utilizado Muito útil quando: O usuário tende a especificar uma algoritmo muito específico O analista tem a segurança no assunto e sabe que diversos algoritmos podem ser usados O analista deseja deixar a definição do algoritmo para o programador, não preocupando em defini-lo ao usuário
25 PRÉ - CONDIÇÕES Definem o que deve ser verdade antes do início da execução do processo Podem ser consideradas como garantia do usuário
26 PRÉ - CONDIÇÕES Normalmente descrevem :Entradas para que o processo seja iniciado "O elemento X ocorre" Relacionamentos entre as entradas ou no interior delas "Pedidos e detalhes de remessas" "Pedido com entrega superior a 60 dias" Relacionamento entre entradas e depósito de dados "Pedido com um número de cliente existe no depósito de clientes"
27 PÓS - CONDIÇÕES Descrevem o que é verdadeiro quando o processo é finalizado Podem ser consideradas como garantia do sistema pelo usuário
28 PÓS - CONDIÇÕES Normalmente descrevem : Saídas geradas pelo processo"Será produzida uma fatura" Relacionamentos entre valores originais de entradas e valor de saída "Total calculado com base na quantidade e valor dos itens" Alterações que devem ser feitas nos depósitos "Pedido será acrescentado ao depósito de pedidos"
29 PRÉ/PÓS CONDIÇÕES - exemploCadastro de Empresas Dados de Empresa P1.2 Verificar Existência de Razão social P2 Cadastrar Empresas Pedido completo Pedido Inválido Pedido Válido Pedido Aceito P1.1 Verificar preenchimento P1.1 Verificar preenchimento Empresa Pedido de Inscrição Pedido Indevido Pedido Recusado P1.3 Verificar Restrições em vigor Pedido incompleto Restrições em vigor P1.4 Gerar Ordem de Devolução Pedidos Rejeitados Pedidos Recusados Tabela de Restrições
30 PRÉ/PÓS CONDIÇÕES - exemploPRÉ-CONDIÇÕES Dados de Pedido de Inscrição, contendo os sócios, nome da razão social e endereço PÓS-CONDIÇÕES Inclusão de pedido em PEDIDOS RECUSADOS por pedido incompleto OU Geração de informação de PEDIDO COMPLETO
31 PRÉ/PÓS CONDIÇÕES - exemploCadastro de Empresas Dados de Empresa P1.2 Verificar Existência de Razão social P1.2 Verificar Existência de Razão social P2 Cadastrar Empresas Pedido completo Pedido Inválido Pedido Válido Pedido Aceito P1.1 Verificar preenchimento Empresa Pedido de Inscrição Pedido Indevido Pedido Recusado P1.3 Verificar Restrições em vigor P1.3 Verificar Restrições em vigor Pedido incompleto Restrições em vigor P1.4 Gerar Ordem de Devolução Pedidos Rejeitados Pedidos Recusados Tabela de Restrições
32 PRÉ/PÓS CONDIÇÕES - exemploP VERIFICAR EXISTÊNCIA DE RAZÃO SOCIAL PRÉ-CONDIÇÕES Informação de PEDIDO COMPLETO PÓS-CONDIÇÕES Inclusão de pedido em PEDIDOS RECUSADOS por existência de razão social OU Geração de informação de PEDIDO VÁLIDO P VERIFICAR RESTRIÇÕES EM VIGOR PRÉ-CONDIÇÕES Informação de PEDIDO VÁLIDO Informação de TABELA DE RESTRIÇÕES PÓS-CONDIÇÕES Inclusão de pedido em PEDIDOS RECUSADOS por pedido indevido OU Geração de informação de PEDIDO ACEITO
33 Especificação de ProcessosExistem algumas ferramentas que auxiliam na especificação de processos Linguagem estruturada Pré e Pós Condições Tabela de Decisão Árvore de Decisão
34 TABELAS DE DECISÃO Técnica não procedural que permite especificar processos que produzem uma saída dependendo de avaliações complexas Formato tabular para visualização e compreensão do problema Normalmente requer condicionais (IF's/CASE's) alinhados Não implica em uma implementação específica
35 TABELAS DE DECISÃO ESTRUTURA: Condições Ações Entrada de CondiçõesEntrada de Ações
36 TABELAS DE DECISÃO Criação de uma Tabela de DecisãoIdentificar todas as condições ou variáveis na especificação Identificar todos os valores possíveis para cada condição ou variável Calcular o número de combinações possíveis Identificar as ações Criar uma tabela de decisões vazia Preencher as condições e ações Especificar as ações de acordo com as condições especificadas GRANDE DESVANTAGEM: QUANTIDADE GRANDE DE VARIÁVEIS (EX.: SUPERIOR A 4)
37 Especificação de ProcessosExistem algumas ferramentas que auxiliam na especificação de processos Linguagem estruturada Pré e Pós Condições Tabela de Decisão Árvore de Decisão
38 ÁRVORE DE DECISÃO Representação gráfica de tomada de decisões complexas Por ser uma técnica gráfica, torna mais fácil entender e discutir
39 ÁRVORE DE DECISÃO Criação de uma Árvore de DecisãoIdentificar todas as condições ou variáveis na especificação Identificar todos os valores possíveis para cada condição ou variável Determinar o número de regras do problema (ramos da árvore) Identificar as ações Fazer as simplificações necessárias
40 FIM Prof. Thales Castro