PROJETO PROCEDIMENTAL. Projeto de Programas PPR0001

Documentos relacionados
PROJETO PROCEDIMENTAL. Projeto de Programas PPR0001

PROJETO PROCEDIMENTAL. Projeto de Programas PPR0001

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Tópicos da Aula. Alguns Diagramas UML. Diagramas Principais. Diagramas de Interação: Sequência e Colaboração. Tipos de Diagramas de Interação

PROJETO DE DADOS PROJETO ARQUITETURAL BÁSICO. Projeto de Programas PPR0001

Engenharia de Software 2012/3 Aula 5 Modelagem de Sistemas

Diagrama de Máquina de Estados

Análise e projeto de sistemas

Análise e Projeto Orientados a Objetos Aula III Concepção Visão Geral do Sistema. Prof. Bruno E. G. Gomes IFRN

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Diagrama de Estados. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

ENGENHARIA DE SOFTWARE I AULA 3. Análise e diagramação. professor Luciano Roberto Rocha.

Análise Estruturada. Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Departamento de Engenharia Industrial. ENG Sistemas de Informação Gerenciais Caso de Uso - Exercícios

Teoria Geral dos Sistemas

:: aula 3. :: Desenvolveremos as seguintes habilidades nesta aula:

Diagrama de Atividades

Diagrama de Atividades

Diagrama de Sequência. Diagrama de Sequência. Atores. O que representam? Linha de Vida. Objetos

Análise e Projeto de Sistemas I. Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp.

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Diagrama de Fluxo de Dados - DFD. Prof.ª: Érika A. Barrado

Modelagem Dinâmica. Toda a ação é designada em termos do fim que procura atingir. Niccolo Maquiavel. O pensamento é o ensaio da ação.

Análise Clássica (Tradicional) X Análise Estruturada

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos

ENGENHARIA DE SOFTWARE

Fatec Ipiranga - Engenharia de Software I 18/02/2013. Agenda. 0. Relembrando os Relacionamentos do Diagrama de Classes

S15 - Engenharia de Requisitos continuação cap.6

Diagrama de Atividades

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

MODELAGEM DE SISTEMAS

Análise e Projeto de Sistemas

A modelagem de Negócio com UML

5 Diagrama de Estado. 5.1 Definição

INF1404 MODELAGEM DE SISTEMAS

MODELAGEM FUNCIONAL USANDO DIAGRAMA DE FLUXO DE DADOS. Professora: Fabíola Gonçalves.

Use Cases e Fluxo de Eventos. Use Case e Ator. Objetivos. Algumas Definições. Algumas Definições

Linguagem UML. Linguagem de Modelagem Unificada UML. Diagramas de Comportamento Parte 2. Rosemary Silveira Filgueiras Melo

DFD Diagrama de Fluxo de Dados. (Explosão das bolhas do DFD de nível 0) Aula 08

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

27/08/2013. Aula 05 Análise Estruturada de Sistemas

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Capítulo 5 Modelação do Sistema 1

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

09/10/2013. Conteúdo dessa aula

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

UML. Modelando um sistema

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

DIAGRAMAS DE CLASSE UML

Modelos de Sistemas Casos de Uso

Diagrama de Atividades. Professor: André Gustavo Bastos Lima

Especificação de Sistemas de Software e a UML

Diagrama de Comunicação

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Unidade 4 Projeto de Banco de Dados

Análise Estruturada de Sistemas 2012 / 1

Interações entre objetos

INF1013 MODELAGEM DE SOFTWARE

Prática interdisciplinar em desenvolvimento de software I

Diagrama de Fluxo de Dados

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Engenharia de Software

Engenharia de Software. Aula 2.4 Modelos de Casos de Uso. Prof. Bruno Moreno

Modelagem de Casos de Uso

Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO

Manutenção Leitura: Sommerville; Pressman

Como Modelar com UML 2

FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

Processo Unificado. Leonardo Gresta Paulino Murta

Gerar a NF-e. Opções disponíveis para gerar NF-e

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Panorama da notação UML

PCS3413 Engenharia de Software e Banco de Dados

Projeto Integrador II. Princípios de Análise e Projeto de Sistemas com UML (livro de Eduardo Bezerra)

Esse diagrama documenta o que o sistema faz do ponto de vista. do usuário. Em outras palavras, ele descreve as principais

Programação I Apresentação

Modelagem Orientada a Objeto

UML (Unified Modelling Language)

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

27/02/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE SEQUÊNCIA

Análise de Sistemas 3º Bimestre (material 2)

Requisitos de Sistemas

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Lista DFD. O diagrama de contexto pode ser considerado um DFD especial. ( ) Certo ( ) Errado

3. Modelação Evolução histórica

Requisitos de sistemas

Casos de Uso. Leonardo Gresta Paulino Murta

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Programação Concorrente. Prof. Hugo Vieira Neto

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 7. Agenda

Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

ANÁLISE ESSENCIAL DE SISTEMAS

UML Diagrama de Estados

Marcelo Henrique dos Santos

Transcrição:

1 PROJETO PROCEDIMENTAL Projeto de Programas PPR0001

2 Introdução Primeiro estudamos e determinamos a estrutura estática Agora vamos completar a trípode de modelagem: o Modelo de Objetos: especifica a estrutura dos objetos o Modelo Funcional: especifica o que acontece aos objetos o Modelo Dinâmico: especifica quando acontecem eventos aos objetos O modelo de objetos é importante para qualquer sistema que envolva dados não triviais Os modelos dinâmico e funcional são mais importantes para um tipo específico de sistema computacional: o Em sistemas não-interativos, e.g. compiladores, o modelo dinâmico é trivial, ao passo que o modelo funcional é fundamental o Em um banco de dados geralmente o modelo funcional é trivial pois o propósito é armazenar e organizar dados e não transformá-los

3 Modelagem Dinâmica Inicialmente vamos estudar e escrever o relacionamento entre as entidades em relação ao tempo (modelo dinâmico) Diagrama de Eventos Diagrama de Estados o Descreve sequência de operações que ocorrem em resposta a um evento o Descreve os estados em que um objeto pode estar o Não há preocupação em como as operações são implementadas Devemos escrever apenas os diagrama de acordo com as necessidades e a complexidade do sistema

4 Evento e Estados Estado: representa um estado do sistema; um conjunto característico de valores dos atributos Evento: estímulo individual de um objeto para outro Eventos relacionados de forma causal (e.g. voo: saída chegada ) Eventos não relacionados ou concorrentes (e.g. dois voos distintos)

5 Diagrama de Eventos Representam cenários: uma sequência de eventos que ocorrem durante uma determinada execução do sistema o A abrangência do cenário pode variar Eventos podem transmitir informações de um objeto para outro Representamos o tempo de cima para baixo Distâncias são irrelevantes Foco na sequência de eventos Podemos usar a ferramenta ASTAH para gerar tal diagrama (usar diagrama de sequencia com mensagens assíncronas) o ASTAH Community é a versão gratuita da ferramenta

6 Diagrama de Eventos Exemplo Chamada Telefônica

7 Diagrama de Estados É um diagrama que representa os possíveis estados dos objetos e os eventos que levam de um estado a outro Um estado pode ser duradouro (intervalo de tempo) o e.g. viajar de uma cidade a outra, alarme soando, ou inatividade (telefone). Um estado está relacionado aos valores de objetos o e.g água líquida temperatura maior que 0 C e menor que 100 C; transmissão de um automóvel ré ponto morto primeira...; odeve-se concentrar nas qualidades (das entidades) que são relevantes ao sistema e abstrair as irrelevantes

8 Diagrama de Estados Diagramas de Estados podem representar: o Ciclos de vida (e.g. jogo de xadrez) Marcados por um início e um fim o Laços contínuos (e.g. linha telefônica) Estado inicial e final não existe, ou não se conhece, ou não é de interesse para a representação do sistema. Podemos utilizar o JUDE para desenhar estes diagramas também: o Diagrama de Máquina de Estados

9 Diagrama de Estados - Representação Estado Estado: o Representado por um retângulo arredondado com nome que o identifica; o Cada estado pode ter um ou mais eventos associados a ele; Transição: o Passagem de um estado para outro por meio de um evento; o Representada por uma seta direcionada e rotulada. Estado Inicial: o Indica um inicio e pode representar a criação de um objeto o Representado por um círculo cheio, pode ser rotulado. Início Estado Final: Indica uma possível terminação e pode representar a destruição de um objeto Representado por um olho-de-boi, pode ser rotulado. Terminação A

10

11

12 Diagrama de Estados Condições: o Podem ser utilizadas como guardas nas transições, garantindo que uma transição só ocorre sob certa condição; o Representadas de forma textual entre colchetes; o No JUDE utilize o campo guard das setas de transição; (ver próximo slide) Operações: o Descrição comportamental que especifica o que um objeto faz em determinado estado ou em resposta a eventos; o Representação textual após uma barra (/) em transições; o Representação textual após a expressão faça / (ou do / ) em estados;

Diagrama de Estados Condições 13

Diagrama de Estados Operações 14

Diagrama de Estados Operações 15

16 Diagrama de Estados Multinivelados Sistemas complexos podem requerer diagramas com muitos estados e eventos falta de legibilidade

17 Diagrama de Estados Multinivelados Para manter a qualidade de expressão e melhorar a legibilidade os diagramas são desenhados em vários níveis de detalhamento o A quantidade de níveis pode variar de sistema para sistema; o A relação entre os diagramas deve ficar clara; o Vários diagramas podem fazer parte de um mesmo nível de detalhamento;

18 Exemplo: Máquina de vender (Nível 1) Transição interna

Exemplo: Máquina de vender (Nível 2) Selecionando item 19

Exemplo: Máquina de vender (Nível 2) Entregando item 20

21 Diagrama de Estados Ações de Entrada: o Descrição de operações que devem ser realizadas assim que o fluxo alcança um dado estado; o Representação textual após a expressão entrada / (ou entry / ) Ações de Saída: o Descrição de operações que devem ser realizadas assim que o fluxo for sair de um dado estado para outro; o Representação textual após a expressão saída / (ou exit / ); Ordem execução: o Ações da transição que chega // Ação de entrada (entry) // Operações (do) // Ação de saída (exit) // ações da transição de saída

22 Diagrama de Estados Ações Internas: o Descrição de transição que ocorre sem causar uma mudança de estado; o Representação textual que aparece na parte inferior de um estado; o Parecido com uma auto transição, mas não igual! Qual a diferença?

23 Diagrama de Estados Ações Internas: o Descrição de transição que ocorre sem causar uma mudança de estado; o Representação textual que aparece na parte inferior de um estado; o Parecido com uma auto transição, mas não igual! Em ações internas as operações de entrada e saída não são realizadas Em auto transições as operações de entrada e saída são realizadas

24 Modelagem Funcional O modelo funcional especifica como os valores de saída de um processamento se transformam em valores de entrada Para a representação, utilizamos múltiplos Diagramas de Fluxo de Dados (DFD) DFD é um gráfico que mostra o fluxo dos valores de dados desde suas origens nos objetos, através dos processos que os transformam, até seus destinos em outros objetos.

25 Diagrama de Fluxo de Dados Um DFD pode ser visto como uma rede que ilustra a circulação dos dados no interior do sistema; Símbolos utilizados: Podemos criar DFDs apenas na versão paga do JUDE

26 Fluxo de dados Representado por setas direcionadas, indicam o fluxo de um determinado conjunto de dados. Pode-se representar a cópia ou a subdivisão dos componentes de um dado através de um garfo número endereço cidade

27 Processos (bolhas ou bolas) Transformam fluxos de dados: entrada saída São identificados com um nome (e opcionalmente um número) Os fluxos de dados envolvidos indicam os caminhos possíveis

28 Depósito de dados (arquivo) São reservatórios para os dados existentes no sistema o Variável em memória, arquivos, banco de dados Representados por duas linhas horizontais paralelas com o nome do depósito (nome único) no meio Setas direcionadas a um depósito indicam a inclusão ou modificação de dados Setas que saem de um depósito indicam a consulta/recuperação de informação CPF saldo pontos nome

29 Depósito de dados (arquivo) Exemplo: nome elemento dados elemento Tabela Periódica Pesos atômicos elemento peso atômico

30 Entidades exteriores - atores Elementos que fornecem as entradas ao sistema o Fontes Elementos que recebem saídas do sistema o Terminadores, terminais Representados por retângulos Existem fora da fronteira do sistema (externos ao sistema) Buffer da tela

31 Convenções adicionais Deve-se minimizar o cruzamento de fluxos Se for inevitável utilizar a notação: Repositórios e Atores podem ser desenhados mais de uma vez Continuam sendo o mesmo item (usar nome idêntico)

32 Elementos Sistemas de reservas em um Hotel: Um cliente efetua uma reserva num hotel através de uma agência; Verifica-se a disponibilidade do hotel escolhido e é atribuído um quarto; Calcula-se a conta; É emitido um voucher ao cliente e informado o hotel da reserva.

33 Exemplos Sistema de vendas

Exemplos 34

35 Decomposição Um DFD de um sistema pequeno é fácil de construir e é facilmente interpretado e entendido. Quanto mais complexo for o sistema modelado mais complexo o DFD poderá se tornar.

Decomposição de DFDs - Níveis 36

37 Convenções de decomposição Cada processo em um nível de DFD pode ser expandido para se tornar um novo DFD Cada processo de um nível inferior está relacionado com o nível superior e é identificado por um número composto (ex.: 2.1.3) Todos os fluxos de dados que entram e saem do nível superior devem aparecer no nível inferior (validação vertical)

38 Convenções de decomposição Em cada DFD, o limite superior recomendado para o número de processos é de aproximadamente 7 Diminui a complexidade no entendimento Processos que não são expandidos são denominados processos primitivos ou primitivas funcionais Somente processos muito simples não serão expandidos

39 Erros comuns Não são permitidos processos apenas com entradas; Processos só com saídas são suspeitos e a maior parte das vezes incorretos. Uma exceção: gerador de números aleatórios;

40 Recomendações Processos com nomes ambíguos ou muito genéricos revelam falta de conhecimento sobre o sistema (ex. manipulação de entrada, gera saída); Fluxos de dados com nomes como itens de entrada, ou vários dados revelam um conhecimento pobre do sistema; Cruzamento de fluxos indicam que é potencialmente necessário decompor o DFD; Primitivas funcionais com grande número de entradas e saídas indicam a necessidade de decompor o DFD;

41 Regras e Heurísticas de projeto 1. Estabelecer o contexto do DFD indicando todas as entidades externas do sistema; 2. Identificar todas as saídas e entradas do sistema. Desenhar o diagrama de contexto (abstração geral); 3. Selecionar um ponto de partido para o projeto. Desenhar os fluxos que são necessários para ir de um ponto a outro: o De entrada para saída; o De saída para entrada; o Partindo do centro para as pontas.

42 Regras e Heurísticas de projeto 4. Identificar os fluxos de dados e depósitos de dados 5. Rotular todos os processos com verbos operacionais que relacionem as entradas com os fluxos de saída; 6. Omitir detalhes de programação como verificação de erros, inicializações e finalizações. 7. Evitar cruzar fluxos de dados o Se necessário utilizar entidades ou arquivos duplicados, ou a notação especial.

43 Regras e Heurísticas de projeto 8. Reavaliar a consistência do DFD. Se necessário, refazer Validação vertical: os fluxos que entram e saem de um processo, devem entrar e sair do DFD resultante da explosão Validação horizontal: Todo o que entra num processo é utilizado e tudo o que sai desse processo foi produzido. 10. Verificar, preferencialmente com o utilizador, se o DFD representa o sistema 11. Depois de estabelecido o DFD, explodir cada processo. Repetir a decomposição até obter o detalhe suficiente

44 Exemplo Sistema de Hotelaria Requisitos funcionais 1. O sistema deve permitir que o Cliente faça reserva de quarto(s) em determinado(s) período(s). Neste momento, é averiguado se existe quarto disponível no período solicitado. Caso positivo, é feita a reserva do quarto e enviada a confirmação para o Cliente; para isto, são necessários os seguintes itens de informação: nome do Cliente, telefone e tipo de quarto (solteiro, casal). Caso negativo, é informado ao Cliente a não disponibilidade do quarto; 2. O sistema deve permitir o cancelamento da reserva, disponibilizando o quarto, caso o Cliente solicite; 3. O sistema deve cancelar automaticamente a reserva, caso o Cliente não compareça no hotel para hospedar-se até às 12 horas do dia da reserva, disponibilizando o quarto;

45 Exemplo Sistema de Hotelaria 4. O sistema deve permitir o registro do cliente ao ocupar um quarto, reservado previamente. Caso o quarto não esteja reservado, uma mensagem de rejeição será emitida. Caso contrário, a confirmação será fornecida ao Cliente; 5. O sistema deve permitir a emissão da conta ao Cliente e a disponibilização do quarto para limpeza, no momento em que ele solicitar a sua saída; 6. O sistema deve permitir o registro do pagamento da conta. Ao efetivar o pagamento é gerado um recibo para o cliente; 7. O sistema deve permitir a disponibilização do quarto, por parte do Gerente, quando este estiver limpo.

46 Exemplo Sistema de Hotelaria Eventos do Sistema 1. Cliente reserva quarto 2. Cliente cancela reserva 3. É hora de cancelar reserva 4. Cliente registra-se no hotel 5. Cliente solicita saída do hotel 6. Cliente paga a conta 7. Gerente disponibiliza o quarto

47 Diagrama de contexto Definir em uma abstração geral as entradas e saídas.

48 DFD nível 0 Visão mais específica das funcionalidades

49 DFD Nível 1 Processo 1 detalhado

50 DFD Nível 1 Processo 2 detalhado

51 DFD Nível 1 Processo 3 detalhado

DFD Nível 2: Refinamento de P1.1 52

DFD Nível 2: Refinamento de P2.1 53

DFD Nível 2: Refinamento de P2.2 54

55 Bibliografia Básica: BEZERRA, E. Princípios de Análise e Projetos de Sistemas com UML. Rio de Janeiro: Campus, 2003. PRESSMAN, R.S. Engenharia de Software. São Paulo: Makron Books, 2002. SOMMERVILLE, I. Engenharia de Software. São Paulo: Addison Wesley, 2003. Complementar: WARNIER, J. Lógica de Construção de Programas. Rio de Janeiro: Campus, 1984. JACKSON, M. Princípios de Projeto de Programas. Rio de Janeiro: Campus, 1988. PAGE-JONES, M. Projeto Estruturado de Sistemas. São Paulo: McGraw-Hill, 1988.