exemplos especificação de software patrícia macedo joaquim filipe joão ascenso engenharia de...

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

Upload: internet

Post on 16-Apr-2015

109 views

Category:

Documents


5 download

TRANSCRIPT

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

Exemplos Exemplos Especificação de Software Especificação de Software

Patrícia MacedoPatrícia MacedoJoaquim FilipeJoaquim FilipeJoão AscensoJoão Ascenso

Engenharia de Software 2005/2006Engenharia de Software 2005/2006EST, SetúbalEST, Setúbal

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

Engenharia de Software 2

Indice GeralIndice Geral1ª Parte1ª Parte Especificação de Software Especificação de Software DFD’sDFD’s Maquinas de estadosMaquinas de estados Petri NetsPetri Nets

2ª Parte2ª Parte UMLUML

3ª 3ª ParteParte Exemplos (DFD’s, ME, PetriNets)Exemplos (DFD’s, ME, PetriNets)

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

Engenharia de Software 3

Exemplo com DFDSExemplo com DFDS

DFD mostra o DFD mostra o fluxo de dadosfluxo de dados ““o que acontece, o que acontece,

não como não como acontece”acontece”

Número infinito de Número infinito de interpretações interpretações possíveispossíveis

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

Engenharia de Software 4

Desenhar o DFDDesenhar o DFD

Primeiro refinamentoPrimeiro refinamento

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

Engenharia de Software 5

Desenhar o DFDDesenhar o DFD Segundo refinamentoSegundo refinamento Ordens em espera são vistas Ordens em espera são vistas

diáriamentediáriamente

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

Engenharia de Software 6

Desenhar o DFDDesenhar o DFD

Terceiro Terceiro refinamentorefinamento

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

Engenharia de Software 7

Desenhar o DFDDesenhar o DFD

DFD FinalDFD Final Maior, de fácil compreensão pelo Maior, de fácil compreensão pelo

clientecliente DFDs maioresDFDs maiores

HierarquiaHierarquia Uma caixa é um DFD num nível mais Uma caixa é um DFD num nível mais

baixobaixoP1

P11

P12

P13

Top-down

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

Engenharia de Software 8

Refinar os fluxos de dadosRefinar os fluxos de dados

Items de dados para cada fluxoItems de dados para cada fluxo Refinar cada fluxo Refinar cada fluxo Dicionário de dadosDicionário de dados

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

Engenharia de Software 9

Dicionário de dadosDicionário de dados

Entradas de exemploEntradas de exemplo

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

Engenharia de Software 10

Case studyCase study

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

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

Engenharia de Software 11

Case studyCase 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 Assumir: Introduzir um novo sistema “de forma a

obter mais lucros” obter mais lucros” Análise custos / benefícios para cada secção do negócioAná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 Primeiro fornecer a solução, só depois descobrir qual é o

problemaproblema

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

Engenharia de Software 12

Análise estruturada de Análise estruturada de sistemassistemas

Técnica semi-formal para especificar softwareTécnica semi-formal para especificar software Desenvolvida em 1970: [DeMarco,1978], [Gane/Sarsen,1979], Desenvolvida em 1970: [DeMarco,1978], [Gane/Sarsen,1979],

[Yourdon/Constantine,1979] [Yourdon/Constantine,1979] Utilização dos DFDs:Utilização dos DFDs:

Os dados são processados em cada passo antes de se passar Os dados são processados em cada passo antes de se passar para o próximopara 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 processadosPermite seguir e documentar como os dados são processados

Estes modelos permitem uma perspectiva funcional Estes modelos permitem uma perspectiva funcional de todo o sistemade todo o sistema

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

Engenharia de Software 13

Refinar os repositórios de Refinar os repositórios de dadosdados

Definir o conteúdo e a representação Definir o conteúdo e a representação (formato)(formato)

Definir a precisão dos dados numéricos, o Definir a precisão dos dados numéricos, o comprimento dos campos de texto etc.comprimento dos campos de texto etc.

Definir que dados irão ser necessários em Definir que dados irão ser necessários em que ficheiros, bases de dados etc. que ficheiros, bases de dados etc.

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

Engenharia de Software 14

Definir os recursos físicosDefinir os recursos físicos

Para cada ficheiro, especificarPara cada ficheiro, especificar Nome do ficheiroNome do ficheiro Organização (sequencial, indexada, etc.)Organização (sequencial, indexada, etc.) Meio de armazenamentoMeio de armazenamento Estrutura (até ao nível do campo)Estrutura (até ao nível do campo)

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

Engenharia de Software 15

Determinar Especificações Determinar Especificações I/OI/O

Especificar as entradas/saídas para as Especificar as entradas/saídas para as comunicações externas:comunicações externas: Esboço da interfaceEsboço da interface Esboço das saída de dadosEsboço das saída de dados Formato dos dados de importação/exportação Formato dos dados de importação/exportação

para outro softwarepara outro software

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

Engenharia de Software 16

Calcular parâmetros Calcular parâmetros relevantesrelevantes

Dados numéricos relevantesDados numéricos relevantes Volume dos dados de entrada Volume dos dados de entrada

(diariamente ou por hora)(diariamente ou por hora) Tamanho, frequência, deadline para cada Tamanho, frequência, deadline para cada

relatório impressorelatório impresso Tamanho, número de campos que passam Tamanho, número de campos que passam

entre o CPU e o meio de armazenamentoentre o CPU e o meio de armazenamento Tamanho de cada ficheiro, etc...Tamanho de cada ficheiro, etc...

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

Engenharia de Software 17

Requisitos de HardwareRequisitos de Hardware

Requisitos de armazenamentoRequisitos de armazenamento Definir forma de armazenamento para o back-up Definir forma de armazenamento para o back-up

de dadosde dados Input devicesInput devices Output devices Output devices O hardware existente serve ?O hardware existente serve ? Se não, recomendar compra/aluguerSe não, recomendar compra/aluguer

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

Engenharia de Software 18

No entanto... No entanto...

Tempos de resposta não podem ser Tempos de resposta não podem ser calculadoscalculados

Número de canais E/S apenas podem Número de canais E/S apenas podem ser adivinhadosser adivinhados

A capacidade de processamento A capacidade de processamento apenas pode ser adivinhadaapenas pode ser adivinhada

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

Engenharia de Software 19

Maquinas de estadosMaquinas de estados

ExemploExemplo

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

Engenharia de Software 20

Cofre com uma combinaçãoCofre com uma combinação

[Brady,1977][Brady,1977]

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

Engenharia de Software 21

• 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

Safelocked A B

Safeunlocked

ALARM

any otherdial movement

any otherdial movement any other

dial movement

1L 3R 2L

Cofre com uma combinaçãoCofre com uma combinação

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

Engenharia de Software 22

Teste de DiagnósticoTeste de Diagnóstico Estado 0 Estado 0 Inicialização Inicialização Evento b Evento b Inicialização OK Inicialização OK Estado 1 Estado 1 Estou activo Estou activo Evento a1 Evento a1 Sem Problemas Sem Problemas Evento a2 Evento a2 Problema detectado Problema detectado Estado 4 Estado 4 Verificação do estado concluído Verificação do estado concluído Estado 5 Estado 5 Erro no teste de diagnóstico Erro no teste de diagnóstico

Ocorre quando recebe uma entrada não esperadaOcorre quando recebe uma entrada não esperada

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

Engenharia de Software 23

Produtor/ConsumidorProdutor/Consumidor

a) Produtor b) Consumidor c) Buffer

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

Engenharia de Software 24

Produtor/ConsumidorProdutor/Consumidor

Consumidor: Consumidor: Processo que lê as mensagens e as remove do Processo que lê as mensagens e as remove do

bufferbuffer Buffer vazio Buffer vazio espera que uma mensagem seja espera que uma mensagem seja

escritaescrita Produtor:Produtor:

Produz mensagens e escreve-as no bufferProduz mensagens e escreve-as no buffer Buffer cheio Buffer cheio espera que uma mensagem seja espera que uma mensagem seja

removidaremovida Buffer: suporta apenas 2 mensagensBuffer: suporta apenas 2 mensagens Conjunto de estados <0,p2,c2>:Conjunto de estados <0,p2,c2>:

Buffer vazio, produtor no estado p2 e Buffer vazio, produtor no estado p2 e consumidor no estado c2consumidor no estado c2

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

Engenharia de Software 25

Produtor/ConsumidorProdutor/Consumidor

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

Engenharia de Software 26

Redes de Petri - ExemplosRedes de Petri - Exemplos

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

Engenharia de Software 27

Exemplo: Máquina de Exemplo: Máquina de VendasVendas

Esta máquina dispensa dois tipos de Esta máquina dispensa dois tipos de consumíveis – 20c e 15cconsumíveis – 20c e 15c

Apenas dois tipos de moedas podem Apenas dois tipos de moedas podem ser utilizadasser utilizadas– de 10c e 5c– de 10c e 5c

A máquina não devolve nenhum A máquina não devolve nenhum trocotroco

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

Engenharia de Software 28

Exemplo: Máquina de VendasExemplo: Máquina de Vendas

5c

Take 15c bar

Deposit 5c

0c

Deposit 10c

Deposit 5c

10c

Deposit 10c

Deposit5c

Deposit 10c20c

Deposit5c

15c

Take 20c bar

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

Engenharia de Software 29

Exemplo: Máquina de VendasExemplo: Máquina de Vendas

Cenário 1: Cenário 1: Deposita 5c, deposita 5c, deposita 5c, deposita Deposita 5c, deposita 5c, deposita 5c, deposita

5c, retira o consumível de 20c5c, retira o consumível de 20c Cenário 2:Cenário 2:

deposita 10c, deposita 5c, retira o consumível deposita 10c, deposita 5c, retira o consumível de 15cde 15c

Cenário 3:Cenário 3: deposita 5c, deposita 10c, deposita 5c, retira o deposita 5c, deposita 10c, deposita 5c, retira o

consumível de 20cconsumível de 20c

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

Engenharia de Software 30

Exemplo: Máquina de VendasExemplo: Máquina de Vendas

5c

Take 15c bar

Deposit 5c

0c

Deposit 10c

Deposit 5c

10c

Deposit 10c

Deposit5c

Deposit 10c20c

Deposit5c

15c

Take 20c bar

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

Engenharia de Software 31

Outro exemploOutro exemplo

• Um sistema produtor-consumidor Um sistema produtor-consumidor consistindo em um produtor, dois consistindo em um produtor, dois consumidores e um buffer; com as consumidores e um buffer; com as seguintes características:seguintes características:• O buffer pode conter até 5 itemsO buffer pode conter até 5 items• O produtor pode enviar 3 items em cada O produtor pode enviar 3 items em cada

produçãoprodução• Ao mesmo tempo apenas um consumidor Ao mesmo tempo apenas um consumidor

consegue aceder ao bufferconsegue aceder ao buffer• Cada consumidor remove dois items quando Cada consumidor remove dois items quando

acede ao bufferacede ao buffer

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

Engenharia de Software 32

Produtor/ConsumidorProdutor/Consumidor

ready

p1

t1

produce

idle

send

p2

t2

k=1

k=1

k=5

Storage p3

3 2 t3 t4

p4

p5

k=2

k=2

accept

accepted

consume

ready

Producer Consumers

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

Engenharia de Software 33

Máquina de VendasMáquina de Vendas

5c

Take 15c bar

Deposit 5c

0c

Deposit 10c

Deposit 5c

10c

Deposit 10c

Deposit5c

Deposit 10c20c

Deposit5c

15c

Take 20c bar

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

Engenharia de Software 34

Estados...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

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

Engenharia de Software 35

Estados alcançáveisEstados alcançáveist8

t1

p1

t2

p2

t3

p3

t4

t5

t6 p5

t7

p4

t9

Initial marking:M0

M0 M1 M2 M3 M0 M2 M4t3t1 t5 t8 t2 t6

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)

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

Engenharia de Software 36

Estados alcançáveisEstados alcançáveis

• ““M2 é M2 é alcançável alcançável a partir de M1 e M4 a partir de M1 e M4 é é alcançávelalcançável a partir de M0” a partir de M0”

• De facto, no exemplo anterior, todas De facto, no exemplo anterior, todas as marcas são alcançáveisas marcas são alcançáveis

M0 M1 M2 M3 M0 M2 M4t3t1 t5 t8 t2 t6

Uma sequência de disparo:

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

Engenharia de Software 37

Produtor/ConsumidorProdutor/Consumidor

• Nesta rede de Petri, cada lugar têm Nesta rede de Petri, cada lugar têm uma capacidade e cada arco têm um uma capacidade e cada arco têm um peso.peso.

• Isto permite que múltiplos Isto permite que múltiplos tokenstokens possam residir num lugar para possam residir num lugar para modelar um comportamento modelar um comportamento complexo.complexo.

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

Engenharia de Software 38

Exemplo: AvaliaçãoExemplo: Avaliação

Durante o semestre, o estudante têm de Durante o semestre, o estudante têm de passar a:passar a: TutesTutes PracsPracs Assignment eAssignment e TestTest

No fim do semestre o estudante, têm de No fim do semestre o estudante, têm de passar no exame para obter aprovação na passar no exame para obter aprovação na cadeiracadeira

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

Engenharia de Software 39

Exemplo: AvaliaçãoExemplo: Avaliação

P

F

P

F

P

FP

F

Tutes

Ass

Pracs

Test

passed

passed

passed

passed

Partial pass

Failed

Sit exam

EnrolIn ES

wait

passFailexam

Hooray!

You have passed!!

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

Engenharia de Software 40

Exemplo: AvaliaçãoExemplo: Avaliação

P

F

P

F

P

FP

F

Tutes

Ass

Pracs

Test

passed

passed

passed

passed

Partial pass

Failed

Sit exam

EnrolIn ES

wait

passFailexam

Hooray!

You have failed!!

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

Engenharia de Software 41

Exemplo: AvaliaçãoExemplo: Avaliação

P

F

P

F

P

FP

F

Tutes

Ass

Pracs

Test

passed

passed

passed

passed

Partial pass

Failed

Sit exam

EnrolIn ES

wait

passFailexam

Hooray!

You have failed!!

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

Engenharia de Software 42

Exemplo: Num restauranteExemplo: Num restaurante

Cenário 1:Cenário 1: O criado recebe ordens do cliente 1; O criado recebe ordens do cliente 1;

serve o cliente 1; recebe ordens do serve o cliente 1; recebe ordens do cliente 2; serve o cliente 2cliente 2; serve o cliente 2

Cenário 2:Cenário 2: O criado recebe ordens do consumidor 1; O criado recebe ordens do consumidor 1;

recebe ordens do consumidor 2; serve o recebe ordens do consumidor 2; serve o consumidor 2; serve o consumidor 1consumidor 2; serve o consumidor 1

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

Engenharia de Software 43

Exemplo: Num restaurante (Cenário 1)Exemplo: Num restaurante (Cenário 1)

WaiterfreeCustomer 1 Customer 2

Takeorder

Takeorder

Ordertaken

Tellkitchen

wait wait

Serve food Serve food

eating eating

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

Engenharia de Software 44

Exemplo: Num restaurante (Cenário 2)Exemplo: Num restaurante (Cenário 2)

WaiterfreeCustomer 1 Customer 2

Takeorder

Takeorder

Ordertaken

Tellkitchen

wait wait

Serve food Serve food

eating eating