Análise Estruturada de Sistemas para Aplicações Convencionais Profa. Thelma Elita Colanzi Lopes [email protected] Prof. Emerson Silas Dória [email protected] 1 Análise Estruturada de Sistemas Conjunto de técnicas e ferramentas cujo objetivo é auxiliar na análise e definição de sistemas Conceito fundamental construção de um modelo do sistema utilizando técnicas gráficas A metodologia envolve a construção “top-down” do sistema por refinamentos sucessivos Não é um método único aplicado constantemente por todos que a usam Foi e ainda é um método de modelagem de requisitos amplamente usado 2 Componentes do modelo lógico 3 Diagramas de Fluxo de Dados (DFD) Técnica gráfica que descreve o fluxo de informação e as transformações que são aplicadas à medida que os dados se movimentam da entrada para a saída Um sistema baseado em computador é representado como uma transformação de informação 4 DFD de nível 0 Modelo de contexto informação de saída Entidade externa informação de entrada Entidade externa sistema Entidade externa Entidade externa Entidade externa 5 Refinamento do Fluxo de Informação O DFD de nível 0 é dividido em partições para revelar mais detalhes. A continuidade do fluxo de informação deve ser mantida A A V f6 f2 X f1 W B F f3 X Y Z f4 Y f5 f41 X1 f42 Z1 Y1 f43 X2 Z3 Z2 f7 B f45 Z Y2 f44 6 Notações Básicas do DFD Processo Entidade externa Fluxo de dados Depósito de dados 7 Notações Básicas do DFD Processo PROCESSO representa um transformador de informações que resida dentro dos limites do sistema a ser modelado Exemplos de Processo: •Uma sala repleta de pessoal de escritório computando descontos •Um procedimento de cartão de controle •Uma combinação de atividades manuais e automatizadas 8 Notações Básicas do DFD Entidade externa ENTIDADE EXTERNA representa um produtor ou consumidor de informações que resida fora dos limites do sistema a ser modelado Exemplos de Entidade Externa: •Clientes •Empregados •Fornecedores •Departamento de Contas •Receita Federal, etc... 9 Notações Básicas do DFD Fluxo de dados FLUXO DE DADOS representa o deslocamento de um item de dado ou coleção de itens de dados DEPÓSITO DE DADOS representa um repositório de dados que são Depósito de dados armazenados para serem usados em um ou mais processos. Pode ser tão simples quanto um buffer ou tão sofisticado quanto um banco de dados relacional 10 Exemplos de DFD Mistura para Bolos Ovos Preparar Bolo Bolo Leite Número de Telefone Validar Número de telefone Número-detelefone-válido Número-detelefone-inválido 11 Exemplo de DFD Transformação das informações Pedidos dados de cliente Cliente Processar Pedido Clientes Faturas com pedidos Dados Consultando dos livros Depositando informações Dados do pedido informações Livros Pedidos 12 Fluxo de Dados Os Fluxos de Dados representam o deslocamento de informações entre: um Processo e uma Entidade Externa dois Processos um Processo e um Depósito de Dados São ilícitos os Fluxos de Dados entre: duas Entidades Externas dois Dépositos de Dados uma Entidade Externa e um Depósito de Dados 13 Diretrizes Básicas 1) O DFD de nível 0 deve descrever o software como uma única bolha 2) O input e o output iniciais devem ser cuidadosamente anotados 3) O refinamento deve iniciar-se isolando-se possíveis processos, itens de dados e depósitos de dados a serem representados no próximo nível 4) Todas as setas e bolhas devem ser rotuladas com nomes significativos 5) A continuidade do fluxo de informação deve ser mantida de nível em nível. 6) Deve ser refinada uma bolha de cada vez. 14 DFD nível 0 – Diagrama de Contexto P e d id o d e In sc riç ã o E m p re sa C N P J (C G C ) R e la ç ã o d e E m p re sa s S iste m a d e C a d a stra m e n to d e E m p re sa s R e striç õ e s M in isté rio d a Fazenda 15 DFD Nível 1 E m p re sa s S e le c io n a d a s D a d o s p a ra CNPJ C N P J (C G C ) P4 E m itir C N P J C a d a stro d e E m p re sa s D a d o s d a N o va E m p re sa D ados de E m p re sa s P e d id o d e In sc riç ã o E m p re sa P1 V e rific a r p e d id o d e in sc riç ã o P2 C a d a stra r E m p re sa s P e d id o A c e ito M in isté rio d a Fazenda R e la ç ã o d e E m p re sa s P5 A tu a liz a r T a b e la d e R e striç õ e s R e striç õ e s e m V ig o r P3 S e le c io n a r E m p re sa s N o va s R e striç õ e s T a b e la d e R e striç õ e s R e striç õ e s 16 DFD Nível 2 – Explosão do Processo P1 C a d a stro d e E m p re sa s D a d o s d e E m p re sa P e d id o c o m p le to P 1 .2 V e rific a r E xistê n c ia d e R a z ã o so c ia l P e d id o In vá lid o P e d id o d e In sc riç ã o E m p re sa P 1 .1 V e rific a r p re e n c h im e n to P e d id o R e c u sa d o P 1 .4 G e ra r O rd e m d e D e vo lu ç ã o P e d id o V á lid o P e d id o A c e ito P e d id o In d e vid o P e d id o in c o m p le to P e d id o s R e je ita d o s P2 C a d a stra r E m p re sa s P e d id o s R e c u sa d o s P 1 .3 V e rific a r R e striç õ e s e m vig o r R e striç õ e s e m vig o r T a b e la d e R e striç õ e s 17 Exemplo: safehome O Software possibilita que: – – – o dono da casa configure o sistema de segurança quando ele for instalado monitora todos os sensores ligados ao sistema de segurança interage com o dono da casa através de um teclado e teclas de função contidas no painel de controle A cada sensor é atribuído um número e tipo, uma senha de gerente para armar e desarmar o sistema, e número(s) de telefone (entrada para discagem quando o evento sensor ocorrer); 18 Exemplo: safehome (cont.) Quando o evento sensor é reconhecido, o software invoca um alarme; depois de um tempo de espera que é especificado pelo dono da casa durante a configuração do sistema, o software disca um nr de telefone de um serviço de monitoramento, produz informação sobre a localização e relata a natureza do evento que foi detectado. O nr será discado novamente a cada 20 segundos até que a conexão de telefone seja obtida; Toda interação com o SafeHome é gerenciada por um subsistema de interação-usuário que lê a entrada produzida pelo teclado ou teclas de função, edita mensagens de pronto e status do sistema sobre um LCD. 19 Safehome (painel de controle) 20 DFD 0 em nível de contexto Painel de controle Comandos e dados do usuário Display do informações de Painel de display controle Software Tipo de alarme Alarme safehome Sensores Status do sensor Nro.telefônico Linha telefônica 21 Abordagem de Expansão do DFD Efetuar uma "análise gramatical" sobre a narrativa de processamento que descreva a bolha isolar nomes e locuções nominais, verbos e locuções verbais os nomes e verbos que são sinônimos ou que não tem nenhuma relação com o processo de modelagem são omitidos todos os verbos são processos, ou seja, em última análise, eles são representados como bolhas num DFD subsequente 22 Abordagem de Expansão do DFD todos os nomes são entidades externas, itens de dados ou depósitos de dados. nomes e verbos podem estar ligados uns aos outros. Por conseguinte, ao se realizar uma análise gramatical, pode-se gerar muitas informações úteis sobre como prosseguir com o refinamento até o próximo nível 23 Exemplo O software SafeHome possibilita que o dono da casa configure o sistema de segurança quando ele for instalado, monitora todos os sensores ligados ao sistema de segurança e interage com o dono da casa por meio de um teclado e teclas de função contidas no painel de controle do SafeHome. Durante a instalação, o painel de controle é usado para programar e configurar o sistema. A cada sensor é atribuído um número e tipo, uma senha de gerente para armar e desarmar o sistema, e número(s) de telefone (entrada para discagem quando o evento sensor ocorrer). 24 Exemplo (cont.) Quando o evento sensor é reconhecido, o software invoca um alarme. Depois de um tempo de espera que é especificado pelo dono da casa durante a configuração do sistema, o software disca um nr de telefone de um serviço de monitoramento, produz informação sobre a localização e relata a natureza do evento que foi detectado. O nr será discado novamente a cada 20 segundos até que a conexão de telefone é obtida. Toda interação com o SafeHome é gerenciada por um subsistema de interação-usuário que lê a entrada produzida pelo teclado ou teclas de função, edita mensagens de pronto e status do sistema sobre o LCD. 25 safehome Dados e comandos do usuário Configurar sistema Painel de Solicitação de controle configuração Interagir com usuário Sensor Dados de configuração Informações de configuração Monitorar sensores 26 DFD - nível 1 de expansão dados de configuração Painel de Configurar sistema controle comandos e dados do usuário Interagir c/ usuário Informação de configuração solicitação de configuração dados de configuração Display do painel de controle iniciar/parar Ativar/ senha Processar senha Desativar o sistema a/d msg. informações de display Emitir mensagens e status mensg. id válida informação do sensor Alarme tipo de alarme Linha Sensores status do sensor Monitorar sensores telefônica nr telefônico 27 Especificação de Processo A especificação de processo é usada para descrever todos os processos do DFD que aparecem no nível de refinamento final Pode incluir: texto narrativo descrição do algoritmo do processo (usando linguagem de projeto de programas - pdl) equações matemáticas, tabelas, diagramas ou gráficos 28 Exemplo de Especificação de Processo (Narrativa de Processamento) Diagrama de Fluxo de Dados Dimensões dos lados de um triângulo Mensagem de erro Tipo de triângulo Analisar Triângulo Especificação do Processo O processo analisar triângulo aceita valores A, B e C que representam as dimensões dos lados de um triângulo. O processo testa os valores dimensionais para determinar se todos os valores são positivos. Se um valor negativo for encontrado, uma mensagem de erro é produzida. O processo avalia os dados válidos para determinar se as dimensões definem um triângulo válido e, se assim for, qual tipo de triângulo – equilátero, isósceles ou escaleno. O tipo de triângulo determinado é a saída do processo. 29 Exemplo de Especificação de Processo (Português Estruturado) Analisar Triângulo Especificação do Processo Procedimento analisar triângulo; Ler dimensões dos lados; Se qualquer dimensão for negativa Então Produza mensagem erro Se a maior dimensão for menor que a soma das demais Então Se três lados forem iguais então o tipo é equilátero; Se dois lados forem iguais então o tipo é isósceles; Se nenhum dos lados forem iguais então o tipo é escaleno; Imprima tipo de triângulo; Senão imprima tipo=0, indicação de que não existe nenhum triângulo 30 Problemas que a ambigüidade pode gerar!!! 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. 31 Exemplo de Especificação de Processo Diagrama de Fluxo de Dados pressão absoluta do tanque pressão convertida checa e converte pressão pressão máxima Especificação do Processo Se pressão absoluta do tanque > pressão máxima então setar pressão alta para “verdadeiro”; senão setar pressão alta para “falso”; iniciar o algoritmo de conversão x-01a; computar a pressão convertida; fim-se 32 O Dicionário de Dados Proposto como gramática quase formal para descrever o conteúdo de objetos definidos durante a análise estruturada. Geralmente implementado como parte de uma "ferramenta de projeto e análise estruturada" CASE. A maioria dos DD contém as seguintes informações; Nome: o nome principal do item de dados, do depósito de dados ou de uma entidade externa Alias: outros nomes usados para a primeira entrada Onde é usado / Como é usado: listagem dos processos que usam o item de dados e como ele é usado. Ex: entrada ao processo, saída do processo, como um depósito de dados, como uma entidade externa Descrição de Conteúdo: notação para representar o conteúdo Informação Complementar: outras informações sobre tipos de dados, valores previamente estabelecidos (se conhecidos), restrições ou limitações 33 Exemplo DD Coleção de itens de dados individuais Item(s) de dados E m p re sa s S e le c io n a d a s D a d o s p a ra CNPJ C N P J (C G C ) P4 E m itir C N P J C a d a stro d e E m p re sa s D a d o s d a N o va E m p re sa D ados de E m p re sa s P e d id o d e In sc riç ã o E m p re sa P1 V e rific a r p e d id o d e in sc riç ã o P2 C a d a stra r E m p re sa s P e d id o A c e ito M in isté rio d a Fazenda R e la ç ã o d e E m p re sa s P5 A tu a liz a r T a b e la d e R e striç õ e s R e striç õ e s e m V ig o r P3 S e le c io n a r E m p re sa s N o va s R e striç õ e s T a b e la d e R e striç õ e s R e striç õ e s 34 Notação para Descrição de Conteúdo Possibilita a representação de itens de dados e dados compostos numa das 3 formas fundamentais em que eles podem ser construídos: 1- Como uma seqüência de itens de dados 2- Como uma seleção dentre um conjunto de itens de dados 3- Como um agrupamento repetido de itens de dados Cada entrada de item de dados que é representada como parte de uma seqüência, seleção ou repetição pode, em si mesma, ser outro item de dados composto que precisa de refinamento adicional dentro do dicionário. 35 Notação para Descrição de Conteúdo FORM AS DE R EPR ESEN TA Ç Ã O NOTAÇÃO = S e q u ê n c ia S e le ç ão R e p e tiç ão + [|] { }n S IG N IF IC A D O é c o m p o sto d e e o u ... o u n re p e tiç õ e s d e ( ) d ad o s o p c io n ais * * d e lim ita c o m e n tário s 36 Exemplo: item de dado NRO TELEFÔNICO nom e a lia s o n d e é u sa d o / c o m o é u sa d o n ú m e ro te le fô n ico nenhum a va lia r co m o p la n e ja m e n to (sa íd a ) d isca r n ú m e ro te le fô n ico (e n tra d a ) d e s c riç ã o n ú m e ro te le fô n ico = [ e xte n sã o lo ca l | n ú m e ro e xte rn o ] e xte n sã o lo ca l = [2 0 0 1 | 2 0 0 2 | ... | 2 9 9 9 ] n ú m e ro e xte rn o d istâ n cia ] = 9 + [n ú m e ro lo ca l | n ú m e ro d e lo n g a n ú m e ro lo ca l = p re fixo + n ú m e ro d e a ce sso n ú m e ro d e lo n g a d istâ n cia = (1 ) + có d ig o d e á re a + n ú m e ro lo ca l p re fixo = [7 9 5 | 7 9 9 | 8 7 4 | 8 7 7 ] n ú m e ro d e a ce sso = *q u a lq u e r sé rie d e q u a tro n ú m e ro s* 37 Descrição de Conteúdo É ampliada: 1- até que todos os itens de dados compostos tenham sido representados como itens elementares ou 2- até que todos os itens compostos sejam representados em termos conhecidos e inequívocos 38 Exemplos Nome= titulo-cortesia+ primeironome+(nome-intermediario) +ultimo-nome titulo-cortesia=[Sr. | Srta.| Sra. | Dr. | Professor] primeiro-nome= [caracter-valido] nome-intermediario= [caracter-valido] ultimo-nome= [caracter-valido] Caracter-valido = [A-Z| a-z| 0-9| ‘ | - | | ] 39 Exemplos Pedido= nome-cliente + endereco-deremessa+ {item} Pedido= nome-cliente + endereco-deremessa+ 1 {item} 10 Pedido= nome-cliente + endereco-deremessa+ (endereco-de-cobranca) + {item} Sexo= [Masculino | Feminino] 40 Diagrama de Transição de Estados (DTE) O Diagrama de Transição de Estados serve para especificar o comportamento do sistema em relação aos eventos que ele recebe. Elementos do diagrama: estado, transição e ação. As setas de transição rotuladas indicam como o sistema reage aos eventos quando eles passam pelos estados do sistema. 41 Elementos do DTE Estado In a tivo sta rt p re ssio n a d o / E xib ir In se rir C a rtã o Condiçã o/ Ação Transição A g u a rd a n d o C a rtã o 42 Estados Típicos Aguardando o usuário introduzir sua senha Aguardando o próximo comando Aguardando dados para instrumento Acelerando o motor Aquecendo uma mistura química Misturando ingredientes Enchendo o tanque Ocioso 43 R e se t p re ssio n a d o / lim p a r te la In a tivo R e se t P re ssio n a d o sta rt p re ssio n a d o / E xib ir In se rir C a rtã o T ra n sfe rir Fundos A g u a rd a n d o C a rtã o C a rtã o in se rid o / E xib ir In tro d u z a se n h a D e p o sita r D in h e iro R e se t p re ssio n a d o o u se n h a e rra d a / L im p a r T e la A g u a rd a n d o Senha se n h a in tro d u z id a / e xib ir se le c io n e fu n ç ã o A g u a rd a n d o E sc o lh a / E xib ir Q u a n to d e se ja ? D in h e iro d isp o n íve l / E xib ir p o r fa vo r, re c o lh a o d in h e iro A g u a rd a n d o R e c o lh im e n to d o D in h e iro E xib ir S a ld o A g u a rd a n d o E n tra d a E n tre g a n d o D in h e iro C lie n te in tro d u z im p o rta n c ia / E xib ir P o r fa vo r, a g u a rd e , d in h e iro se n d o p ro vid e n c ia d o 44