1 / 44

Exemplos Especificação de Software

Exemplos Especificação de Software. Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/2006 EST, Setúbal. Indice Geral. 1ª Parte Especificação de Software DFD’s Maquinas de estados Petri Nets 2ª Parte UML 3ª Parte Exemplos (DFD’s, ME, PetriNets).

tien
Download Presentation

Exemplos Especificação de Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exemplos Especificação de Software Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/2006 EST, Setúbal

  2. Indice Geral 1ª Parte • Especificação de Software • DFD’s • Maquinas de estados • Petri Nets 2ª Parte • UML 3ª Parte • Exemplos (DFD’s, ME, PetriNets) Engenharia de Software

  3. Exemplo com DFDS • DFD mostra o fluxo de dados • “o que acontece, não como acontece” • Número infinito de interpretações possíveis Engenharia de Software

  4. Desenhar o DFD • Primeiro refinamento Engenharia de Software

  5. Desenhar o DFD • Segundo refinamento • Ordens em espera são vistas diáriamente Engenharia de Software

  6. Desenhar o DFD Terceiro refinamento Engenharia de Software

  7. Desenhar o DFD • DFD Final • Maior, de fácil compreensão pelo cliente • DFDs maiores • Hierarquia • Uma caixa é um DFD num nível mais baixo P1 Top-down P13 P11 P12 Engenharia de Software

  8. Refinar os fluxos de dados • Items de dados para cada fluxo • Refinar cada fluxo • Dicionário de dados Engenharia de Software

  9. Dicionário de dados • Entradas de exemplo Engenharia de Software

  10. Case study • A loja ABCD Software compra software de vários fornecedores e vende ao público. O software mais popular é mantido em stock, mas o resto é pedido à medida que é necessário. A algumas instituições e associações são dadas facilidades no acesso ao crédito. Engenharia de Software

  11. Case study • Perceber as razões: • Qual é o objectivo do sistema informático no seu negócio ? • Apenas porque vende software? • Assumir: Introduzir um novo sistema “de forma a obter mais lucros” • Análise custos / benefícios para cada secção do negócio • Questões importantes: • Que secções informatizar ? Todas ? • Como ? Batch ? Online ? Para uso interno ? e-commerce ? • O perigo de muitas soluções: • Primeiro fornecer a solução, só depois descobrir qual é o problema Engenharia de Software

  12. Análise estruturada de sistemas • Técnica semi-formal para especificar software • Desenvolvida em 1970: [DeMarco,1978], [Gane/Sarsen,1979], [Yourdon/Constantine,1979] • Utilização dos DFDs: • Os dados são processados em cada passo antes de se passar para o próximo • Simples e intuitivo (os utilizadores participam no processo) • Permite seguir e documentar como os dados são processados • Estes modelos permitem uma perspectiva funcional de todo o sistema Engenharia de Software

  13. Refinar os repositórios de dados • Definir o conteúdo e a representação (formato) • Definir a precisão dos dados numéricos, o comprimento dos campos de texto etc. • Definir que dados irão ser necessários em que ficheiros, bases de dados etc. Engenharia de Software

  14. Definir os recursos físicos • Para cada ficheiro, especificar • Nome do ficheiro • Organização (sequencial, indexada, etc.) • Meio de armazenamento • Estrutura (até ao nível do campo) Engenharia de Software

  15. Determinar Especificações I/O • Especificar as entradas/saídas para as comunicações externas: • Esboço da interface • Esboço das saída de dados • Formato dos dados de importação/exportação para outro software Engenharia de Software

  16. Calcular parâmetros relevantes • Dados numéricos relevantes • Volume dos dados de entrada (diariamente ou por hora) • Tamanho, frequência, deadline para cada relatório impresso • Tamanho, número de campos que passam entre o CPU e o meio de armazenamento • Tamanho de cada ficheiro, etc... Engenharia de Software

  17. Requisitos de Hardware • Requisitos de armazenamento • Definir forma de armazenamento para o back-up de dados • Input devices • Output devices • O hardware existente serve ? • Se não, recomendar compra/aluguer Engenharia de Software

  18. No entanto... • Tempos de resposta não podem ser calculados • Número de canais E/S apenas podem ser adivinhados • A capacidade de processamento apenas pode ser adivinhada Engenharia de Software

  19. Maquinas de estados Exemplo Engenharia de Software

  20. Cofre com uma combinação • [Brady,1977] Engenharia de Software

  21. Cofre com uma combinação • Combination lock with 3 positions: 1,2,3 • The dial can be turned left L or right R • Any time there are 6 possible dial movements, 1L, 1R, 2L, 2R, 3L, 3R • The combination of the lock is: 1L, 3R, 2L • any other dial movement causes the alarm to go off ALARM any other dial movement any other dial movement any other dial movement Safe unlocked Safe locked A B 1L 3R 2L Engenharia de Software

  22. Teste de Diagnóstico • Estado 0  Inicialização • Evento b  Inicialização OK • Estado 1  Estou activo • Evento a1  Sem Problemas • Evento a2  Problema detectado • Estado 4  Verificação do estado concluído • Estado 5  Erro no teste de diagnóstico • Ocorre quando recebe uma entrada não esperada Engenharia de Software

  23. a) Produtor b) Consumidor c) Buffer Produtor/Consumidor Engenharia de Software

  24. Produtor/Consumidor • Consumidor: • Processo que lê as mensagens e as remove do buffer • Buffer vazio  espera que uma mensagem seja escrita • Produtor: • Produz mensagens e escreve-as no buffer • Buffer cheio  espera que uma mensagem seja removida • Buffer: suporta apenas 2 mensagens • Conjunto de estados <0,p2,c2>: • Buffer vazio, produtor no estado p2 e consumidor no estado c2 Engenharia de Software

  25. Produtor/Consumidor Engenharia de Software

  26. Redes de Petri - Exemplos Engenharia de Software

  27. Exemplo: Máquina de Vendas • Esta máquina dispensa dois tipos de consumíveis – 20c e 15c • Apenas dois tipos de moedas podem ser utilizadas– de 10c e 5c • A máquina não devolve nenhum troco Engenharia de Software

  28. Take 15c bar Deposit 10c 15c 5c Deposit 5c Deposit 5c Deposit 5c Deposit 5c 0c Deposit 10c 20c 10c Deposit 10c Take 20c bar Exemplo: Máquina de Vendas Engenharia de Software

  29. Exemplo: Máquina de Vendas • Cenário 1: • Deposita 5c, deposita 5c, deposita 5c, deposita 5c, retira o consumível de 20c • Cenário 2: • deposita 10c, deposita 5c, retira o consumível de 15c • Cenário 3: • deposita 5c, deposita 10c, deposita 5c, retira o consumível de 20c Engenharia de Software

  30. Take 15c bar Deposit 10c 15c 5c Deposit 5c Deposit 5c Deposit 5c Deposit 5c 0c Deposit 10c 20c 10c Deposit 10c Take 20c bar Exemplo: Máquina de Vendas Engenharia de Software

  31. Outro exemplo • Um sistema produtor-consumidor consistindo em um produtor, dois consumidores e um buffer; com as seguintes características: • O buffer pode conter até 5 items • O produtor pode enviar 3 items em cada produção • Ao mesmo tempo apenas um consumidor consegue aceder ao buffer • Cada consumidor remove dois items quando acede ao buffer Engenharia de Software

  32. Produtor/Consumidor k=2 k=1 accepted ready p1 p4 Storage p3 produce accept 3 2 t2 t1 t3 t4 consume send k=5 p2 p5 idle ready k=1 k=2 Producer Consumers Engenharia de Software

  33. Take 15c bar Deposit 10c 15c 5c Deposit 5c Deposit 5c Deposit 5c Deposit 5c 0c Deposit 10c 20c 10c Deposit 10c Take 20c bar Máquina de Vendas Engenharia de Software

  34. Estados... t8 p4 M0 = (1,0,0,0,0) t4 M1 = (0,1,0,0,0) p2 t1 M2 = (0,0,1,0,0) M3 = (0,0,0,1,0) p1 M4 = (0,0,0,0,1) t3 t7 t5 Initial marking:M0 t6 p5 t2 p3 t9 Engenharia de Software

  35. t8 p4 t4 M0 = (1,0,0,0,0) p2 M1 = (0,1,0,0,0) t1 M2 = (0,0,1,0,0) p1 M3 = (0,0,0,1,0) t3 t7 t5 M4 = (0,0,0,0,1) p3 t6 p5 Initial marking:M0 t2 t9 t1 t3 t5 t8 t2 t6 M0 M1 M2 M3 M0 M2 M4 Estados alcançáveis Engenharia de Software

  36. Uma sequência de disparo: t1 t3 t5 t8 t2 t6 M0 M1 M2 M3 M0 M2 M4 Estados alcançáveis • “M2 é alcançável a partir de M1 e M4 é alcançável a partir de M0” • De facto, no exemplo anterior, todas as marcas são alcançáveis Engenharia de Software

  37. Produtor/Consumidor • Nesta rede de Petri, cada lugar têm uma capacidade e cada arco têm um peso. • Isto permite que múltiplos tokens possam residir num lugar para modelar um comportamento complexo. Engenharia de Software

  38. Exemplo: Avaliação • Durante o semestre, o estudante têm de passar a: • Tutes • Pracs • Assignment e • Test • No fim do semestre o estudante, têm de passar no exame para obter aprovação na cadeira Engenharia de Software

  39. P passed Tutes F wait Partial pass P passed Ass Sit exam passed F pass Pracs Fail exam Enrol In ES P F Test P passed F Failed Hooray! Exemplo: Avaliação You have passed!! Engenharia de Software

  40. P passed Tutes F wait Partial pass P passed Ass Sit exam passed F pass Pracs Fail exam Enrol In ES P F Test P passed F Failed Hooray! Exemplo: Avaliação You have failed!! Engenharia de Software

  41. P passed Tutes F wait Partial pass P passed Ass Sit exam passed F pass Pracs Fail exam Enrol In ES P F Test P passed F Failed Hooray! Exemplo: Avaliação You have failed!! Engenharia de Software

  42. Exemplo: Num restaurante • Cenário 1: • O criado recebe ordens do cliente 1; serve o cliente 1; recebe ordens do cliente 2; serve o cliente 2 • Cenário 2: • O criado recebe ordens do consumidor 1; recebe ordens do consumidor 2; serve o consumidor 2; serve o consumidor 1 Engenharia de Software

  43. Waiter free Customer 1 Customer 2 Take order Take order wait Order taken wait eating eating Tell kitchen Serve food Serve food Exemplo: Num restaurante (Cenário 1) Engenharia de Software

  44. Waiter free Customer 1 Customer 2 Take order Take order wait Order taken wait eating eating Tell kitchen Serve food Serve food Exemplo: Num restaurante (Cenário 2) Engenharia de Software

More Related