Exemplos Especificação de Software

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

DFD - Diagrama de Fluxo de Dados
Metodos de Especificação de Software 1ª Parte
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Introdução a Métricas de Software
Requisitos de Software
Engenharia de Software
UML Diagramas de Caso de Uso (USE-CASE)
PORTUGUÊS ESTRUTURADO E PSEUDOCÓDIGO
Engenharia de Software
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Diagrama de Fluxo de Dados – DFD
Diagrama de fluxo de dados (DFD)
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Engenharia de Software
> Fases de Engenharia de SW > Gestão de Projectos de SW
Gestão de transacções noções básicas modelo simples modelo elaborado
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.
Centrado na arquitetura
Exercícios de revisão sobre relógios lógicos e físicos
Exercícios de revisão sobre relógios lógicos e físicos Prof. Alcides Calsavara.
Modelagem Funcional.
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Sistemas Operacionais II
Modelos e Arquitecturas de SD
Professora: Aline Vasconcelos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aulas.
Sincronização de Processos (5)
Sincronização de Processos (3)
Sincronização de Processos (6) - Troca de Mensagens -
Gerência da Configuração de Software
Crineu Tres Daniel Perez Frederico... Roberto Hartke Neto
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Noções de Engenharia de Software COINFO – CEFET-PB 7.3 Diagrama de transição de.
6. Análise estruturada 6.1 DFD
Análise de Desempenho Analíticos Simulação Implementação real
Sincronização e Comunicação entre Processos
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
Gerência de Redes Áreas Funcionais de Gerenciamento
Classes e objetos Modelagem
UFRPE – Modelos de Qualidade Teresa Maciel
Componente de Software1 Desenhando um componente de software.
Análise Estruturada.
Análise Estruturada Diagramas de Fluxo de Dados
Expansão dos Casos de Uso
Abr-17 Projetar Cápsulas Aula de Laboratório Projetar classes.
Redes de Petri Sistema Fila-Máquina Aula 3
Engenharia de Software
Fase de Concepção (Início, Planejamento)
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Interpretação de Projetos de Software Professor: Cheli dos S. Mendes.
Analises de sistemas ESTRUTURADA Analise de sistema estruturada.
Comunicação de dados Protocolos básicos de enlace de dados.
Sistemas Digitais e Automação
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
1 Sincronização em Sistemas Distribuídos Alcides Calsavara.
Gestão de defeitos.
Laboratório de Programação
Requisitos de Software
Sistemas de informação (nome da nossa disciplina)
Engenharia de Requisitos
Expansão dos Casos de Uso
Expansão dos Casos de Uso
Cases InfoWorker – Julho 2015
Modelagem de Sistemas Orientada a Objeto Com UML
Aula 02 de Eng. de Requisitos
Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
PRINCIPAIS FERRAMENTAS DE MODELAGENS DIAGRAMA DE ENTIDADE E RELACIONAMENT(DER) DIAGRAMA DE TRANSIÇÕES DE ESTADO (DTE) DIAGRAMA DE FLUXO DE DADOS (DFD)
Prof. Thales Castro.  Histórico  Vantagens & Desvantagens  DFD’s  Exercício.
Transcrição da apresentação:

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

Engenharia de Software 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

Engenharia de Software 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

Engenharia de Software Desenhar o DFD Primeiro refinamento Engenharia de Software

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

Engenharia de Software Desenhar o DFD Terceiro refinamento Engenharia de Software

Engenharia de Software 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 P11 P13 P12 Engenharia de Software

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

Engenharia de Software Dicionário de dados Entradas de exemplo Engenharia de Software

Engenharia de Software 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

Engenharia de Software 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

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

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

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

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

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

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

Engenharia de Software 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

Engenharia de Software Maquinas de estados Exemplo Engenharia de Software

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

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 locked Safe unlocked A B 1L 3R 2L Engenharia de Software

Engenharia de Software 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

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

Engenharia de Software 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

Engenharia de Software Produtor/Consumidor Engenharia de Software

Engenharia de Software Redes de Petri - Exemplos Engenharia de Software

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

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

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

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

Engenharia de Software 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

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

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

Engenharia de Software 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

Engenharia de Software Estados alcançáveis t8 t1 p1 t2 p2 t3 p3 t4 t5 t6 p5 t7 p4 t9 Initial marking:M0 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) M0 M1 M2 M3 M4 t3 t1 t5 t8 t2 t6 Engenharia de Software

Engenharia de Software Estados alcançáveis M0 M1 M2 M3 M4 t3 t1 t5 t8 t2 t6 Uma sequência de disparo: “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

Engenharia de Software 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

Engenharia de Software 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

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

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

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

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

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

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