A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Exemplos Especificação de Software Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/2006 EST, Setúbal."— Transcrição da apresentação:

1

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

3 Engenharia de Software2 Indice Geral 1ª Parte Especificação de Software Especificação de Software DFDs DFDs Maquinas de estados Maquinas de estados Petri Nets Petri Nets 2ª Parte UML UML 3ª Parte Exemplos (DFDs, ME, PetriNets) Exemplos (DFDs, ME, PetriNets)

4 Engenharia de Software3 Exemplo com DFDS DFD mostra o fluxo de dados DFD mostra o fluxo de dados o que acontece, não como acontece o que acontece, não como acontece Número infinito de interpretações possíveis Número infinito de interpretações possíveis

5 Engenharia de Software4 Desenhar o DFD Primeiro refinamento Primeiro refinamento

6 Engenharia de Software5 Desenhar o DFD Segundo refinamento Segundo refinamento Ordens em espera são vistas diáriamente Ordens em espera são vistas diáriamente

7 Engenharia de Software6 Desenhar o DFD Terceiro refinamento

8 Engenharia de Software7 Desenhar o DFD DFD Final DFD Final Maior, de fácil compreensão pelo cliente Maior, de fácil compreensão pelo cliente DFDs maiores DFDs maiores Hierarquia Hierarquia Uma caixa é um DFD num nível mais baixo Uma caixa é um DFD num nível mais baixo P1P1 P 11 P 12 P 13 Top-down

9 Engenharia de Software8 Refinar os fluxos de dados Items de dados para cada fluxo Items de dados para cada fluxo Refinar cada fluxo Refinar cada fluxo Dicionário de dados Dicionário de dados

10 Engenharia de Software9 Dicionário de dados Entradas de exemplo Entradas de exemplo

11 Engenharia de Software10 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. 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.

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

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

14 Engenharia de Software13 Refinar os repositórios de dados Definir o conteúdo e a representação (formato) 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 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. Definir que dados irão ser necessários em que ficheiros, bases de dados etc.

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

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

17 Engenharia de Software16 Calcular parâmetros relevantes Dados numéricos relevantes Dados numéricos relevantes Volume dos dados de entrada (diariamente ou por hora) Volume dos dados de entrada (diariamente ou por hora) Tamanho, frequência, deadline para cada relatório impresso 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, número de campos que passam entre o CPU e o meio de armazenamento Tamanho de cada ficheiro, etc... Tamanho de cada ficheiro, etc...

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

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

20 Engenharia de Software19 Maquinas de estados Maquinas de estadosExemplo

21 Engenharia de Software20 Cofre com uma combinação [Brady,1977] [Brady,1977]

22 Engenharia de Software21 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 Safe locked AB Safe unlocked ALARM any other dial movement any other dial movement any other dial movement 1L3R2L Cofre com uma combinação

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

24 Engenharia de Software23 Produtor/Consumidor a) Produtorb) Consumidorc) Buffer

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

26 Engenharia de Software25 Produtor/Consumidor

27 Engenharia de Software26 Redes de Petri - Exemplos Redes de Petri - Exemplos

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

29 Engenharia de Software28 Exemplo: Máquina de Vendas 5c Take 15c bar Deposit 5c 0c Deposit 10c Deposit 5c 10c Deposit 10c Deposit 5c Deposit 10c 20c Deposit 5c 15c Take 20c bar

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

31 Engenharia de Software30 Exemplo: Máquina de Vendas 5c Take 15c bar Deposit 5c 0c Deposit 10c Deposit 5c 10c Deposit 10c Deposit 5c Deposit 10c 20c Deposit 5c 15c Take 20c bar

32 Engenharia de Software31 Outro exemplo Um sistema produtor-consumidor consistindo em um produtor, dois consumidores e um buffer; com as seguintes características: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 buffer pode conter até 5 items O produtor pode enviar 3 items em cada produção O produtor pode enviar 3 items em cada produção Ao mesmo tempo apenas um consumidor consegue aceder ao buffer Ao mesmo tempo apenas um consumidor consegue aceder ao buffer Cada consumidor remove dois items quando acede ao buffer Cada consumidor remove dois items quando acede ao buffer

33 Engenharia de Software32 Produtor/Consumidor ready p1 t1 produce idle send p2 t2 k=1 k=5 Storage p3 32 t3t4 p4 p5 k=2 accept accepted consume ready ProducerConsumers

34 Engenharia de Software33 Máquina de Vendas 5c Take 15c bar Deposit 5c 0c Deposit 10c Deposit 5c 10c Deposit 10c Deposit 5c Deposit 10c 20c Deposit 5c 15c Take 20c bar

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

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

37 Engenharia de Software36 Estados alcançáveis M2 é alcançável a partir de M1 e M4 é alcançável a partir de M0 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 De facto, no exemplo anterior, todas as marcas são alcançáveis M0 M1M2M3M0M2M4 t3t1t5t8t2t6 Uma sequência de disparo:

38 Engenharia de Software37 Produtor/Consumidor Nesta rede de Petri, cada lugar têm uma capacidade e cada arco têm um peso. 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. Isto permite que múltiplos tokens possam residir num lugar para modelar um comportamento complexo.

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

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

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

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

43 Engenharia de Software42 Exemplo: Num restaurante Cenário 1: Cenário 1: O criado recebe ordens do cliente 1; serve o cliente 1; recebe ordens do cliente 2; serve o cliente 2 O criado recebe ordens do cliente 1; serve o cliente 1; recebe ordens do cliente 2; serve o cliente 2 Cenário 2: Cenário 2: O criado recebe ordens do consumidor 1; recebe ordens do consumidor 2; serve o consumidor 2; serve o consumidor 1 O criado recebe ordens do consumidor 1; recebe ordens do consumidor 2; serve o consumidor 2; serve o consumidor 1

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

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


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

Apresentações semelhantes


Anúncios Google