Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6.

Tamanho: px
Começar a partir da página:

Download "Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6."

Transcrição

1 Conteúdo 1. Introdução 2. Levantamento de Requisitos 3. Análise Orientada a Objetos 4. Projeto Orientado a Objetos 5. UML 6. Métodos Ágeis

2 Projeto Orientado a Objetos Definição das Operações

3 Responsabilidade x Operação Responsabilidades de um objeto: são as suas obrigações em torno do seu comportamento (responsabilidades de fazer e responsabilidades de conhecer). Responsabilidades são implementadas usando operações que agem sozinhas ou colaboram com outras operações e objetos. As responsabilidades são atribuídas às classes de objetos durante o projeto de objetos: responsabilidades de fazer: fazer um cálculo, criar um objeto, inicializar uma ação em outros objetos, controlar atividades em outros objetos... responsabilidades de conhecer: dados privados, dados que precisam ser calculados, objetos relacionados... A definição das operações é uma parte crítica do desenvolvimento OO.

4 Definição das Operações As operações são definidas durante a realização dos casos de uso. Realização de um caso de uso: descreve como um caso de uso é realizado dentro do modelo de projeto, em termos dos objetos que colaboram. utilizam diagramas de interação :Registrador :Compra fazpagamento(dinheiro) create(dinheiro) :Pagamento autoriza

5 Definição das Operações Durante a definição das operações são considerados: Padrão de Projeto Criador Padrão de Projeto Especialista da Informação Princípio de Baixo Acoplamento Princípio de Alta Coesão Padrão de Projeto Controlador Outros Padrões de Projeto

6 Criador Durante a definição das operações são considerados: Padrão de Projeto Criador Padrão de Projeto Especialista da Informação Princípio de Baixo Acoplamento Princípio de Alta Coesão Padrão de Projeto Controlador Outros Padrões de Projeto

7 Criador Criador: Atribuir à classe A a responsabilidade de criar uma instância da classe B se: A contém ou agrega instâncias de B; ou A usa instâncias de B; ou A tem os dados de inicialização que serão para passados para B quando ele é criado.

8 Criador Exemplo - Ponto de Venda: Quem deverá ser o responsável pela criação de uma instância de ItemLinha? Compra data horario Modelo Conceitual 1 contem 1..* ItemLinha quantidade * descrito-por 1 EspecificacaoProdu descricao preco IDItem

9 Criador Exemplo - Ponto de Venda: Quem deverá ser o responsável pela criação de uma instância de ItemLinha? Como a classe Compra contém vários objetos do tipo ItemLinha, ela pode ser a responsável. :Registrador :Compra fazeritemlinha(qtidade) create(qtidade) :ItemLinha

10 Criador Exemplo - Banco Imobiliário: Quem deverá ser o responsável pela criação de uma instância de Casa (Square) do Banco Imobiliário? Modelo Conceitual

11 Criador Exemplo - Banco Imobiliário: Quem deverá ser o responsável pela criação de uma instância de Casa (Square) do Banco Imobiliário? Como a classe Tabuleiro contém vários objetos do tipo Casa, ela pode ser a responsável.

12 Especialista da Informação Durante a definição das operações são considerados: Padrão de Projeto Criador Padrão de Projeto Especialista da Informação Princípio de Baixo Acoplamento Princípio de Alta Coesão Padrão de Projeto Controlador Outros Padrões de Projeto

13 Especialista da Informação Especialista da Informação: Atribuir uma responsabilidade ao especialista da informação, ou seja, à classe que tem a informação necessária para cumprí-la.

14 Especialista da Informação Exemplo - Ponto de Venda: Quem deverá ser o responsável por saber o total de uma compra? Compra data horario Modelo Conceitual 1 contem 1..* ItemLinha quantidade * descrito-por 1 EspecificacaoProdu descricao preco IDItem

15 Exemplo - Ponto de Venda: Especialista da Informação Quem deverá ser o responsável por saber o total de uma compra? Para determinar o total da compra é necessário conhecer todas as instâncias de ItemLinha de uma compra e a soma de seus sub-totais. Como a classe Compra conhece todas as instâncias de ItemLinha, ela pode ser responsável por conhecer o total da compra. Como a classe ItemLinha conhece a quantidade dos itens e está associada com a especificação do produto, que possui o preço de cada item, ela pode ser responsável por determinar o sub-total de um item de linha.

16 Especialista da Informação Exemplo - Ponto de Venda: Compra 2: tot:=gettotal :Compra 1: * sub:=getsubtotal itenslinha[i]: :ItemLinha ItemLinha data horario gettotal 1.1: p:=getpreco :EspecificacaoProduto ItemLinha quantidade getsubtota EspecificacaoProdu descricao preco IDItem getpreco

17 Especialista da Informação Exemplo - Banco Imobiliário: Quem deverá ser o responsável por retornar uma casa (square), a partir de uma chave? Como o Tabuleiro agregará todos os objetos casas (squares), ele pode ser a classe responsável por retornar uma casa.

18 Especialista da Informação Vantagens: O encapsulamento das informações é mantido, pois os objetos usam suas próprias informações para cumprir as tarefas. O comportamento é distribuído através das classes que têm as informações necessárias.

19 Baixo Acoplamento Durante a definição das operações são considerados: Padrão de Projeto Criador Padrão de Projeto Especialista da Informação Princípio de Baixo Acoplamento Princípio de Alta Coesão Padrão de Projeto Controlador Outros Padrões de Projeto

20 Baixo Acoplamento Acoplamento é uma medida da intensidade na qual um elemento (classe, subsistema, sistema, etc) está conectado a, depende de ou tem conhecimento a respeito de outros elementos. Formas comuns de acoplamento em linguagens OO: Classe X tem um atributo que referencia uma instância da classe Y. Classe X tem um método que referencia uma instância da classe Y. Classe X é uma subclasse direta ou indireta da classe Y. Y é uma interface e classe X implementa esta interface. Um elemento com baixo acoplamento não é dependente de muitos outros elementos.

21 Exemplo - Ponto de Venda: Baixo Acoplamento fazpagamento :Registrador :Pagamento buscainfo :Compra Suponha que a compra precise conhecer o pagamento para buscar algumas informações dele, ou seja, é necessário associá-la à instância de Pagamento. Suponha que o registrador é o responsável em fazer um pagamento e adicioná-lo à compra. Suponha que é necessário criar uma instância de Pagamento. Qual classe deverá ser a responsável pela criação de um pagamento?

22 Baixo Acoplamento Exemplo - Ponto de Venda: Opção 1: ct1 3: fazpagamento :Registrador 1: create p:pagamento buscainfo 2: adicionapagamento(p) :Compra Adiciona acoplamento de Registrador ao Pagamento e de Registrador à Compra.

23 Baixo Acoplamento Exemplo - Ponto de Venda: Opção 2: ect1 2: fazpagamento :Registrador :Pagamento buscainfo 1: adicionapagamento(p) :Compra 1.1: create Adiciona acoplamento de Registrador à Compra.

24 Baixo Acoplamento Exemplo - Banco Imobiliário: Por que não associar getsquare a Dog (ou a uma outra classe qualquer)? Porque tanto Dog como Tabuleiro (Board) devem conhecer os objetos Casa (Square) Dois objetos com acoplamento com Casa

25 Exemplo - Banco Imobiliário: Baixo Acoplamento Como Tabuleiro (Board) já conhece os objetos Casa (Square), se getsquare for associado a Tabuleiro, somente um objeto terá acoplamento à Casa.

26 Acoplamento Problemas das classes com alto acoplamento: Mudanças nas classes relacionadas podem gerar mudanças locais. São mais difíceis de serem entendidas isoladamente. São mais difíceis de serem reusadas pois o uso requer a presença adicional das classes das quais ela depende.

27 Baixo Acoplamento Use o Princípio de Baixo Acoplamento para avaliar alternativas de projeto. Se todo o resto está igual, prefira a solução com baixo acoplamento.

28 Alta Coesão Durante a definição das operações são considerados: Padrão de Projeto Criador Padrão de Projeto Especialista da Informação Princípio de Baixo Acoplamento Princípio de Alta Coesão Padrão de Projeto Controlador Outros Padrões de Projeto

29 Alta Coesão Coesão é uma medida da intensidade na qual as responsabilidades de um elemento (classe, subsistema, sistema, etc) estão relacionadas. Um elemento com responsabilidades altamente relacionadas e que não tem uma quantidade extremamente grande de trabalho, tem alta coesão.

30 Exemplo - Ponto de Venda: Alta Coesão fazpagamento :Registrador :Pagamento buscainfo :Compra Suponha que o Registrador será responsável por várias operações do sistema e que é necessário criar uma instância de Pagamento e associá-la a uma instância de Compra. Qual projeto suporta alta coesão?

31 Alta Coesão Exemplo - Ponto de Venda: Opção 1: t1 3: fazpagamento :Registrador 1: create p:pagamento 2: adicionapagamento(p) :Compra Supondo que o Registrador será responsável por várias outras operações do sistema, ele ficará sobrecarregado de tarefas.

32 Alta Coesão Exemplo - Ponto de Venda: Opção 2: ect1 2: fazpagamento :Registrador :Pagamento 1: adicionapagamento(p) :Compra 1.1: create Delega a responsabilidade da criação do Pagamento para a Compra, dando suporte a uma coesão mais alta no Registrador.

33 Exemplo - Banco Imobiliário: Alta Coesão Esquerda: PIOR - o próprio objeto BancoImobiliario (MonopolyGame) faz todo o trabalho Direita: MELHOR - o objeto BancoImobiliario (MonopolyGame) delega e distribui o trabalho entre outros objetos.

34 Coesão Problemas das classes com baixa coesão (classes que fazem muitas coisas não relacionadas ou fazem trabalhos demais): difícil de compreender; difícil de usar; difícil de manter; constantemente afetada por mudanças.

35 Alta Coesão Use o Princípio de Alta Coesão para avaliar alternativas de projeto. Se todo o resto está igual, prefira a solução com alta coesão.

36 Controlador Durante a definição das operações são considerados: Padrão de Projeto Criador Padrão de Projeto Especialista da Informação Princípio de Baixo Acoplamento Princípio de Alta Coesão Padrão de Projeto Controlador Outros Padrões de Projeto

37 Controlador / Fachada Controlador: Classe responsável pelo recebimento e manipulação de um evento do sistema (eventos gerados por atores externos). Ou seja, classe atrás da camada de interface com o usuário que deverá receber a mensagem da camada de interface com o usuário. Não é uma classe de interface com o usuário. objetos de interface com o usuário não devem conter lógica da aplicação ou negócio. Classe que representa o sistema como um todo ou um subsistema (Fachada). Classe que representa um manipulador de todos os eventos do sistema dentro de um caso de uso. Normalmente, o controlador deve delegar aos outros objetos o trabalho que precisa ser feito, coordenando e controlando este trabalho.

38 Exemplo - Ponto de Venda: Controlador? Sistema finalizacompra entraitem faznovacompr fazpagamento Quem deverá ser o controlador dos eventos do sistema, como entraitem e finalizacompra?

39 Exemplo - Ponto de Venda: Controlador Quem deverá ser o controlador dos eventos do sistema, como entraitem e finalizacompra? classe que representa o sistema como um todo ou um subsistema: Registrador classe que representa um manipulador de todos os eventos do sistema dentro de um caso de uso: ManipuladorProcessoCompra

40 Exemplo - Banco Imobiliário: Controlador Como conectar a camada de interface com o usuário com a camada de domínio? Qual objeto deverá receber a mensagem playgame da camada de interface com o usuário?

41 Exemplo - Banco Imobiliário: Controlador Como existem poucas operações do sistema, podemos definir uma classe que representa todo o sistema, BancoImobiliario (MonopolyGame).

42 Controlador Exemplo: Os objetos de interface não devem ter a responsabilidade de manipular os eventos do sistema. Interface com o Usuário Camada de Interface :FrameCompra 1:entrarItem (IDItem, qtidade) 1:fazerItemDeLinha (IDItem, qtidade) Camada de Domínio :Registrador :Compra 1.1:fazerItemDeLinha (IDItem, qtidade)

43 Exemplos de Definição das Operações do Ponto de Venda

44 Exemplos de Definição de Operações Exemplo - Ponto de Venda: caso de uso Processar Venda Fluxo Básico: 1. O cliente chega no caixa com os produtos e/ou serviços para comprar. 2. O caixa inicia uma nova venda. 3. O caixa entra com o identificador do item. 4. O sistema registra o item e apresenta a sua descrição, preço e o subtotal. O preço calculado é oriundo de um conjunto de regras de preço. O caixa repete os passos 3 e 4 até indicar que terminou. 5. O sistema apresenta o total com as taxas calculadas. 6. O caixa diz ao cliente o total e pergunta ao cliente a forma de pagamento. 7. O cliente paga e o sistema processa o pagamento. 8. O sistema registra que a venda foi completada e manda a informação da compra e do pagamento para o sistema externo de contabilidade (para a contabilidade e comissão) e para o sistema de estoque.

45 Exemplos de Definição de Operações :Caixa :Sistema faznovacompra entraitem (ident, quantidade) descrição, total * [mais itens] finalizacompra total fazpagamento (valor) troco, recibo

46 Exemplos de Definição de Operações Exemplo 1: faznovacompra Exemplo 2: entraitem Exemplo 3: finalizacompra Exemplo 4: Start Up

47 Definição da Operação faznovacompra Compra data horario Modelo Conceitual 1 contem 1..* ItemLinha quantidade * descrito-por 1 EspecificacaoProdu descricao preco IDItem

48 Definição da Operação faznovacompra :Caixa :Sistema faznovacompra entraitem (ident, quantidade) descrição, total * [mais itens] finalizacompra total fazpagamento (valor) troco, recibo

49 Definição da Operação faznovacompra Registrador escolhido como controlador porque existem poucas operações do sistema. Registrador pode ser visto como aquele que cria a Compra. Quando uma compra é criada, ela deve criar uma coleção vazia para registrar todas as instâncias de ItemLinha que serão adicionadas. Object1 :Registrador faznovacompra create :Compra create :ItemLinha itens : List<ItemLinha>

50 Definição da Operação entraitem :Caixa :Sistema faznovacompra entraitem (ident, quantidade) descrição, total * [mais itens] finalizacompra total fazpagamento (valor) troco, recibo

51 Definição da Operação entraitem Registrador continua como controlador. Compra cria um item de linha porque ela contém itens de linha. O item de linha criado pode ser armazenado na coleção de itens de linha. A criação de um item de linha precisa da quantidade (parâmetro fornecido na operação) e da especificação do produto. Registrador envia mensagem para o CatalogoProduto para buscar a especificação do produto, pois ele conhece as especificações dos produtos.

52 Definição da Operação entraitem ect1 3: entraitem(id, qtidade) :Registrador 2: fazitemlinha(espec, qtidade) :Compra 1: espec:=pegaespecificacao(id) :CatalogoProduto 2.1: create(espec, qtidade) 2.2: adiciona(it) it:itemlinha 1.1: espec:=procura(id) :EspecificacaoProduto : Map<Especificacao Produto> :ItemLinha itens : List<ItemLinha>

53 Definição da Operação finalizacompra :Caixa :Sistema faznovacompra entraitem (ident, quantidade) descrição, total * [mais itens] finalizacompra total fazpagamento (valor) troco, recibo

54 Definição da Operação finalizacompra Registrador continua como controlador. Compra calcula o valor total da compra porque conhece todos os itens de linha. Item Linha calcula o valor do sub-total do item de linha na compra porque conhece a quantidade de itens comprados. A Especificação do Produto retorna o preço de um produto (item de linha). 2: finalizacompra :Registrador 1: tot:=gettotal :Compra 1.1: *sub:=getsubtotal :ItemLinha itens [i]: ItemLinha 1.1.1: p:=getpreco :EspecificacaoProduto

55 Definição da Operação inicializar Exemplo 4: inicialização do sistema (Start Up) O diagrama de interação da operação de inicialização da aplicação é definido após todas as operações do sistema terem sido projetadas. São criados os objetos iniciais da aplicação. O objeto inicial é uma classe na raiz da hierarquia de agregação dos objetos do domínio (ou perto dela): um controlador ou um objeto que contém a maioria dos outros objetos. Se a aplicação tem interface gráfica, geralmente, o objeto inicial não controla o processo.

56 Exemplo de Definição de Operações Object 3: create :Loja 2: create(cat) :Registrado 1: create cat:catalogoprod 1.1: create 1.2.2:*[] adiciona(espec) :EspecificacaoProd : Map<Especificacao Produto> 1.2: carregaespecificacoes espec:especificacaoprod 1.2.1:*[] create(id,preco,descricao)

57 Exemplo de Definição de Operações Conexão da Camada de Interface com o Usuário e da Camada de Domínio A camada de interface com o usuário não deverá ter qualquer responsabilidade lógica do domínio. A camada de interface com o usuário deverá ser responsável somente pelas tarefas de interface com o usuário, como a atualização dos widgets. A camada de interface com o usuário deverá reenviar todas as requisições sobre as tarefas do domínio para a camada de domínio.

58 Exemplos de Definição das Operações do Banco Imobiliário

59 Exemplo do Banco Imobiliário Resultado do Modelo Conceitual será usado como inspiração para o projeto da camada de domínio do Modelo de Projeto

60 Definição da Operação Jogar Exemplo 1: Como projetar a operação de sistema jogar (playgame)? 1. Escolher o controlador: JogoBancoImobiliario satisfaz porque existem poucas operações do sistema e o controlador não tem muitas responsabiliades. 2. Escolher o responsável pelo algoritmo Game-Loop. for N rounds for each Player p p takes a turn round (rodada): todos os jogadores fazem uma jogada turn (jogada): um jogador rola os dados e move a peça

61 Definição do Algoritmo Game-Loop 2a. Quem será o responsável pelo algoritmo Game-Loop? É necessário conhecer o contador da rodada atual: nenhum objeto tem esta informação, mas, para ficar mais proximo da realidade, o BancoImobiliario poderia ter É necessário conhecer todos os jogadores: baseando-se no modelo de domínio, o BancoImobiliario é um bom candidato BancoImobiliario irá controlar o loop do jogo e coordenar as jogadas de cada rodada.

62 Definição do Algoritmo Game-Loop B. Quem será o responsável pela jogada (turn). É necessário conhecer a localização atual do jogador baseando-se no modelo de domínio, uma Peça conhece a sua Casa e um Jogador conhece a sua Peça. Portanto, um objeto Jogador poderia conhecer sua localização. É necessário conhecer os dois objetos Dados baseando-se no modelo de domínio, o BancoImobiliario é um bom candidato porque os dados podem ser vistos como parte do jogo. É necessário conhecer todas as casas (para mover para a nova casa) para ficar mais proximo da realidade, o Tabuleiro é um bom candidado

63 Definição do Algoritmo Game-Loop Qual classe escolher, Jogador, BancoImobiliario ou Tabuleiro? Guideline: Quando existem vários especialistas da informação, colocar a responsabilidade no objeto que tem a maioria das informações. nenhuma classe tem a maioria das informações Guideline: Quando existem alternativas de projeto, considerar o acoplamento e coesão. BancoImobiliario já possui responsabilidades, o que pode diminuir sua coesão, principalmente em relação a Jogador e Tabuleiro, que não possuem nenhuma responsabilidade

64 Definição do Algoritmo Game-Loop Qual classe escolher, Jogador, BancoImobiliario ou Tabuleiro? Guideline: Considerar uma evolução futura dos objetos de software. Mais tarde, executar uma jogada pode envolver a compra de uma propriedade, se o jogador tem dinheiro suficiente, ou se a cor da propriedade encaixa com a estratégia do Jogador. Qual o objeto indicado para saber do dinheiro do Jogador? O Jogador. Qual o objeto indicado para saber da cor do Jogador? O Jogador.

65 Definição do Algoritmo Game-Loop Jogador é um bom candidato, considerando as regras completas do jogo.

66 Definição do Algoritmo Game-Loop C. Execução de uma jogada (take a turn) Executar uma jogada significa: 1. Calcular um número random entre 2 e 12 (soma dos 2 dados) 2. Calcular a localização da nova casa 3. Mover a peça do jogador da casa antiga para a nova casa Estes passos serão coordenados pelo Jogador, já que ele é o responsável por executar uma jogada.

67 Definição do Algoritmo Game-Loop 1. Calcular um número random entre 2 e 12 (soma dos 2 dados) para ficar mais proximo da realidade, criamos um objeto Dado com um atributo valorface. Calcular um novo valor da face random envolve mudar a informação no Dado e, pelo Especialista da Informação, o objeto Dado deveria ser capaz de rolar ele mesmo.

68 Definição do Algoritmo Game-Loop 2. Calcular a localização da nova casa para ficar mais proximo da realidade, é razoável que o Tabuleiro conheça suas Casas. Assim, pelo Especialista da Informação, um Tabuleiro será o responsável por conhecer uma casa nova, dado uma casa antiga e o valor dos dados.

69 Definição do Algoritmo Game-Loop 3. Mover a peça do jogador da casa antiga para a nova casa para ficar mais proximo da realidade, é razoável para um Jogador conhecer a sua Peça, e uma Peça conhecer sua Casa. Assim, pelo Especialista da Informação, uma Peça atribuirá sua nova localização, mas ela pode receber a nova localização do seu proprietário, o Jogador.

70 Exemplo do Banco Imobiliário

71 Definição da Operação Inicializar Definição da Operação do Sistema inicializar do caso de uso StartUp É necessário escolher o objeto raiz que criará alguns objetos BancoImobiliario é um bom candidato

72 ERROR: stackunderflow OFFENDING COMMAND: ~ STACK:

GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa

GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2016 1 RESPONSABILIDADE Responsabilidade um contrato ou

Leia mais

GRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé)

GRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) GRASP Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Introdução a padrões O que são? Por que utilizá-los? Padrões GRASP O que são? Quais serão apresentados na disciplina?

Leia mais

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático Padrões Básicos Information Expert Creator High Cohesion Low Coupling Controller Padrões Avançados

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 4 Design Baseado em Responsabilidades 1 Programa Capítulo 4 Design Baseado em Responsabilidades

Leia mais

Projeto Orientado a Objetos

Projeto Orientado a Objetos Projeto Orientado a Objetos Ivan Mathias Filho Toacy Cavalcante de Oliveira Design Orientado a Objetos Após a identificação dos requisitos e a criação do modelo de domínio, devemos adicionar os métodos

Leia mais

[ Arquitecturas Móveis ] 2017/2018

[ Arquitecturas Móveis ] 2017/2018 [ Arquitecturas Móveis ] 2017/2018 Relatório Chess Game Trabalho Prático de AMOV Hugo Santos, 21220593 Rafael Henriques, 21250203 2017/2018 [ Arquitecturas Móveis ] 1 Índice 1. INTRODUÇÃO 4 1.1. Descrição

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3)

ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3) ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3) Profª Andrea Padovan Jubileu Desenvolvimento Iterativo de Software (LARMAN, 2007) Desenvolvendo Software com UML 2.0 (MEDEIROS, 2004) Modelo de Projeto O

Leia mais

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

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,

Leia mais

PROJETO DE ARQUITETURA

PROJETO DE ARQUITETURA PROJETO DE ARQUITETURA Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Próximas aulas: Seminários de Padrões de Projeto GoF 1º Dia: 10/11/2017, 08h 10h, Sala 04 2º Dia:

Leia mais

Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6.

Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6. Conteúdo 1. Introdução 2. Levantamento de Requisitos 3. Análise Orientada a Objetos 4. Projeto Orientado a Objetos 5. UML 6. Métodos Ágeis Projeto Orientado a Objetos Projeto Orientado a Objetos Durante

Leia mais

Análise e Projeto de Software Parte II. Marcos Dósea

Análise e Projeto de Software Parte II. Marcos Dósea Análise e Projeto de Software Parte II Marcos Dósea marcosdosea@gmail.com Agenda Aula III Análise de Software Orientado à Objetos Motivação Marcos Dósea marcosdosea@gmail.com O que é análise e projeto?

Leia mais

Modelos de Sistemas Casos de Uso

Modelos de Sistemas Casos de Uso Modelos de Sistemas Casos de Uso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Casos de Uso Objetivos Principais dos Casos de Uso: Delimitação do contexto de

Leia mais

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Rede de computadores Cliente- servidor. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz Definição Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores.

Leia mais

Padrões para atribuir responsabilidades: Expert

Padrões para atribuir responsabilidades: Expert Padrão para atribuir responsabilidades: Expert Introdução Um sistema OO é composto de objetos que enviam mensagens uns para os outros Uma mensagem é um método executado no contexto de um objeto Escolher

Leia mais

Alguns Exercícios Resolvidos

Alguns Exercícios Resolvidos Princípios de Análise e Projeto de Sistemas com UML 3ª edição, 2015, Eduardo Bezerra Alguns Exercícios Resolvidos Capítulo 1 Exercício 1.1 Sim, porque ele representa graficamente um objeto do mundo real

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini   / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ARQUITETURA DE SOFTWARE ASWA4 Aula N : 07

Leia mais

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java Grupo de Usuários Java do Noroeste Paulista Tópicos Avançados em Java Aula 1 Objetivos Programa exemplo; Programação Orientada a Objetos. Conceitos Orientada a Objetos Mundo real Conceitos Orientada a

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 03 Padrões de Projeto GRASP Edirlei Soares de Lima Padrões de Projeto de Software Problemas no desenvolvimento de software se repetem...

Leia mais

Projeto Orientado a Objetos

Projeto Orientado a Objetos Projeto Orientado a Objetos Conjunto de atividades que têm como objetivo a criação de um modelo orientado a objetos de um sistema de software de acordo com os requisitos especificados Estratégia geral

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML. Prof. Ricardo A. Ramos

Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML. Prof. Ricardo A. Ramos Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML Prof. Ricardo A. Ramos Engenharia de Software II 207. 04/07/207 UML Unified Modeling Language É uma linguagem para especificação, construção,

Leia mais

EA975 - Laboratório de Engenharia de Software

EA975 - Laboratório de Engenharia de Software EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 7 Componentes de Software Um componente de software é um segmento de código que pode ser reusado, eventualmente após um processo de

Leia mais

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos Análise e Projeto Orientados a Objetos Modelagem conceitual do domínio Diretoria Acadêmica de Gestão e Tecnologia da Informação Introdução A modelagem do domínio está relacionada à descoberta das informações

Leia mais

Estudo de Caso TPV Projetando uma solução com objetos e Padrões GRASP

Estudo de Caso TPV Projetando uma solução com objetos e Padrões GRASP UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Estudo de Caso

Leia mais

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo DCC / ICEx / UFMG Primeiro Diagrama de Classes Diagrama de Classes Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Professor Aluno matricula Outro Diagrama de Classes Diagrama de Classes Serve de

Leia mais

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc. Análise Estruturada Modelo Essencial ou Lógico constitui-se de dois sub-modelos (Modelo Ambiental e Modelo Comportamental) e um Dicionário de Dados. Linguagens: Fortran, Cobol, C, etc. Orientada a Objetos

Leia mais

Classes de Projeto. Prof. Anderson Cavalcanti UFRN-CT-DCA

Classes de Projeto. Prof. Anderson Cavalcanti UFRN-CT-DCA Classes de Projeto Prof. Anderson Cavalcanti UFRN-CT-DCA Linhas Gerais sobre as Classes de Projeto Especificação de Classes de Projeto Especificação de classes de fronteira Responsáveis pela interação

Leia mais

Projeto da Camada de Domínio. Diagramas de Colaboração/Comunicação Diagrama de Classes de Projeto (DCP)

Projeto da Camada de Domínio. Diagramas de Colaboração/Comunicação Diagrama de Classes de Projeto (DCP) Projeto da Camada de Domínio Diagramas de Colaboração/Comunicação Diagrama de Classes de Projeto (DCP) Projeto da Camada de Domínio Diagramas de Colaboração (Comunicação na UML 2) permitem realizar a modelagem

Leia mais

INE 5417 Engenharia de Software I

INE 5417 Engenharia de Software I INE 5417 Engenharia de Software I Prof a. Patrícia Vilain 2008.2 Conteúdo 1. Introdução 2. Levantamento de Requisitos 3. Análise Orientada a Objetos 4. Projeto Orientado a Objetos 5. UML 6. Métodos Ágeis

Leia mais

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Relacionamentos Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Dependência Generalização Associação Realização Relacionamentos - Dependência

Leia mais

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Matéria Introdutória Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Necessidade de acessar as informações de maneira eficiente e segura Evolução histórica: desenvolvimento

Leia mais

Técnicas de Identificação

Técnicas de Identificação Técnicas de Identificação Várias técnicas (de uso não exclusivo) são usadas para identificar classes: 1. Categorias de Conceitos 2. Análise Textual de Abbott (Abbot Textual Analysis) 3. Análise de Casos

Leia mais

Campeonato de Gamão. 1. Regras. 2. Servidor

Campeonato de Gamão. 1. Regras. 2. Servidor Campeonato de Gamão 1. Regras O campeonato de gamão será disputado de acordo com as regras tradicionais do jogo, facilmente encontradas na Internet. As duas cores tradicionais das pedras do jogo serão

Leia mais

Ferramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal

Ferramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal Ferramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal Patrícia Regina Ramos da Silva Seibt (FURB) patrícia@benner.com.br Marcel Hugo (FURB) marcel@furb.br Everaldo

Leia mais

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 4.1. Aplicações utilizando Programação Estruturada e Programação Orientada a Objeto.

Leia mais

Zooloretto. Um jogo de Michael Schacht para 2 a 5 jogadores dos 8 anos em diante

Zooloretto. Um jogo de Michael Schacht para 2 a 5 jogadores dos 8 anos em diante Zooloretto Um jogo de Michael Schacht para 2 a 5 jogadores dos 8 anos em diante Resumo: Cada jogador é o proprietário de um zoo. Os jogadores ganham pontos por atraírem tantos visitantes ao seu zoo quanto

Leia mais

Modelo do Mundo Real. Abstração. Interpretação

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia - CTC Departamento de Informática - DIN Programa de Pós-Graduação em Ciência da Computação PCC ESTÁGIO DE DOCÊNCIA II Disciplina: Engenharia

Leia mais

UML e seus diagramas

UML e seus diagramas UML e seus diagramas A UML Unified Modeling Language (Linguagem de Modelagem Unificada), como o próprio nome já diz, é uma linguagem para modelagem de objetos do mundo real, usada para especificar, construir,

Leia mais

Diagrama de Comunicação. SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa

Diagrama de Comunicação. SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa Diagrama de Comunicação SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2013 1 2 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador) Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto

Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe

Leia mais

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

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001 PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções

Leia mais

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

Televisao tamanho tela emitirsom. conectarperifericos

Televisao tamanho tela emitirsom. conectarperifericos 1 - Introdução a Programação Orientada a Objeto Para tentar solucionar o problema do baixo reaproveitamento de código, surgiu a idéia da Programação Orientada a Objeto (POO). A POO não é nova, sua formulação

Leia mais

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que: Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,

Leia mais

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02 . CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02 Créditos: alguns itens desta lista são adaptados do material da disciplina CS188 - Artificial Intelligence

Leia mais

Modulo II Padrões GRASP

Modulo II Padrões GRASP Modulo II Padrões GRASP Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões de Projeto

Leia mais

Padrões de Projeto. Factory Method

Padrões de Projeto. Factory Method Padrões de Projeto Padrões de Criação Factory Method Prof. Eduardo N F Zagari Prof. Ivan Granja Factory Method Também conhecido como Construtor Virtual Em muitas aplicações OO, um objeto cliente precisa

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Introdução a UML (Unified Modeling Language)

Introdução a UML (Unified Modeling Language) Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de

Leia mais

O que é um sistema distribuído?

O que é um sistema distribuído? Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores

Leia mais

DIAGRAMA DE COMUNICAÇÃO

DIAGRAMA DE COMUNICAÇÃO Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DIAGRAMA DE COMUNICAÇÃO SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015 O

Leia mais

Exercícios: Vetores e Matrizes

Exercícios: Vetores e Matrizes Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor

Leia mais

Interações entre objetos

Interações entre objetos Interações entre objetos 1 Interações! Interações mostram os aspectos dinâmicos de um sistema, enfatizando a troca de mensagens entre objetos! Dois diagramas podem ser usados para modelar as interações:

Leia mais

DIAGRAMAS DE CLASSE UML

DIAGRAMAS DE CLASSE UML DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar

Leia mais

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros Modelagem de Classes Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@id.uff.br Resumo Introdução Conceitos em Orientação a Objetos Diagrama

Leia mais

Introdução à Análise e Projeto de Sistemas

Introdução à Análise e Projeto de Sistemas Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise

Leia mais

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011 Banco de Dados Aula 2 - Prof. Bruno Moreno 19/08/2011 Aula passada.. Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Introdução Alguns conceitos importantes Orientação a Objetos Alguns conceitos importantes Programação Estruturada X Programação OO Classes Objetos Construtores e Destrutores

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Hashing: conceitos. Hashing

Hashing: conceitos. Hashing Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado

Leia mais

Modelagem Orientada a Objetos

Modelagem Orientada a Objetos DCC / ICEx / UFMG Modelagem Orientada a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Atividades de Modelagem OO 1. Definir o contexto do sistema 2. Projetar a arquitetura 3. Identificar

Leia mais

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio

Leia mais

UML (Unified Modelling Language)

UML (Unified Modelling Language) UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide

Leia mais

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer BANCO DE DADOS I Prof. Luiz Antônio Vivacqua C. Meyer Projeto de Banco de Dados Etapas do Desenvolvimento de um Projeto de Sistemas: 1. Levantamento de Requisitos a. Requisitos Funcionais b. Requisitos

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETO

ANÁLISE E PROJETO ORIENTADO A OBJETO ANÁLISE E PROJETO ORIENTADO A OBJETO Profª Andrea Padovan Jubileu Desenvolvimento Iterativo de Software (LARMAN, 2007) Modelo de Domínio O que aconteceu na fase de Concepção? Duração: no máximo semana

Leia mais

Modelagem de Sistemas Web. Modelagem de BD

Modelagem de Sistemas Web. Modelagem de BD Modelagem de Sistemas Web Aula 9 Modelagem de BD OBS: Pré-requisito: noções intermediárias em BD e de modelo ER Fonte: Proj. e Mod. BD 4/E Capítulo: Análise de Req. E Mod. Dados Conceit. - Toby Teorey

Leia mais

DCC004 - Algoritmos e Estruturas de Dados II

DCC004 - Algoritmos e Estruturas de Dados II Conceito de especificação de software Renato Martins Email: renato.martins@dcc.ufmg.br https://www.dcc.ufmg.br/~renato.martins/courses/dcc004 Material adaptado de PDS2 - Douglas Macharet e Flávio Figueiredo

Leia mais

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

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

1) Defina os principais conceitos de orientação a objetos. 4) Porque é desejável programar com foco em interfaces?

1) Defina os principais conceitos de orientação a objetos. 4) Porque é desejável programar com foco em interfaces? Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Técnicas de Programação Avançada Primeira lista de exercícios - 2013.2 Conceitos Básicos de O.O 1) Defina os principais conceitos

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Engenharia de Software I 2013.2 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo

Leia mais

Introdução ao POO (Projeto Orientado a Objetos)

Introdução ao POO (Projeto Orientado a Objetos) Introdução ao POO (Projeto Orientado a Objetos) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta

Leia mais

(Engenharia de) Requisitos. Cheesman Cp 4

(Engenharia de) Requisitos. Cheesman Cp 4 (Engenharia de) Requisitos Cheesman Cp 4 Visão do Sistema Deseja-se desenvolver um sistema de reserva de hotel a ser feito para qualquer hotel de uma cadeia. Presentemente cada hotel tem seu próprio sistema

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos flavio@facom.ufu.br 80 Por que a Orientação a Objetos? As abstrações podem corresponder às "coisas" do domínio do problema, facilitando o entendimento Esta

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br O que é?? 2 A UML

Leia mais

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs

Leia mais

Análise e Projeto Orientados a Objetos. Casos de Uso

Análise e Projeto Orientados a Objetos. Casos de Uso + Análise e Projeto Orientados a Objetos Casos de Uso Introdução 2 n Casos de uso são narrativas em texto, amplamente utilizadas para descobrir e registrar requisitos (Larman) n Casos de uso são uma maneira

Leia mais

Identificação de Componentes

Identificação de Componentes Identificação de Componentes Introdução É o primeiro passo do processo de especificação de componentes Objetivo: criar um conjunto inicial de interfaces e de especificação de componentes. Produz: modelo

Leia mais

Contratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que

Contratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que Contratos Contratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que descreve o que uma operação promete cumprir As pré-

Leia mais

Resumo de TCC: MAGIC: Um framework para jogos de cartas. Ademir Coelho

Resumo de TCC: MAGIC: Um framework para jogos de cartas.  Ademir Coelho Resumo de TCC: MAGIC: Um framework para jogos de cartas http://www.lisha.ufsc.br/~robert/tcc/relatorio.pdf Autores: André Luís Knabben Thiago Robert Orientador: Professor Doutor Ricardo Pereira e Silva

Leia mais

RUP Unified Process. Profª Jocelma Rios

RUP Unified Process. Profª Jocelma Rios RUP Unified Process Profª Jocelma Rios Nov/2012 O que pretendemos: Reforçar os aspectos que caracterizam o processo iterativo e incremental Identificar como atingir os objetivos dos projetos de software

Leia mais

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Modelagem de dados usando o modelo Entidade- Relacionamento (ER) Modelagem de dados usando o modelo Entidade- Relacionamento (ER) slide 1 Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Tópicos Usando modelo de dados conceituais de alto nível

Leia mais

Domínios, grau de dependência e coesão. Unipampa Bagé/RS Engenharia de Computação Disciplina de Engenharia de Software

Domínios, grau de dependência e coesão. Unipampa Bagé/RS Engenharia de Computação Disciplina de Engenharia de Software Domínios, grau de dependência e coesão Unipampa Bagé/RS Engenharia de Computação Disciplina de Engenharia de Software Domínios de Classe e Objetos Sistema OO conterá classes dos 4 domínios: Domínio de

Leia mais

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Paradigma Simbólico Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Revisão da aula anterior: definição de IA Podemos associar o termo IA com: Parte da ciência da computação

Leia mais

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas Processamento de Consultas em Bancos de Dados Distribuídos Visão geral do processamento de consultas IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias

Leia mais

Modelagem de Sistemas. Análise de Requisitos. Modelagem

Modelagem de Sistemas. Análise de Requisitos. Modelagem Modelagem de Sistemas Teoria Geral de Sistemas TADS 2. Semestre Prof. André Luís Para abordarmos de forma mais profunda os conceitos de Modelagem de Sistemas de Informação, precisamos também falar na Engenharia

Leia mais

Processos ca 3 pítulo

Processos ca 3 pítulo Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém

Leia mais

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz Aula 4 Encapsulamento e Relacionamento Cleverton Hentz Sumário } Encapsulamento } Propriedades } Relacionamentos } Composição } Herança 2 O que é encapsulamento? } O que vocês entendem por encapsular?!

Leia mais

M V C P R O F. M E. H É L I O E S P E R I D I Ã O

M V C P R O F. M E. H É L I O E S P E R I D I Ã O M V C P R O F. M E. H É L I O E S P E R I D I Ã O A P L I C A Ç Õ E S M O N O L Í T I C A S Na época dos computares independentes um aplicativo era desenvolvido para ser usado em uma única máquina. Este

Leia mais

PDS. Aula 1.9 SCRUM. Prof. Dr. Bruno Moreno

PDS. Aula 1.9 SCRUM. Prof. Dr. Bruno Moreno PDS Aula 1.9 SCRUM Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br 2 Introdução O nome SCRUM é derivado do Rugby É um método de reinício de jogada; Os jogadores se empurram para pegar a bola; Envolve o

Leia mais

Lista de Exercícios de Programação Orientada a Objetos

Lista de Exercícios de Programação Orientada a Objetos Exercícios básicos Lista de Exercícios de Programação Orientada a Objetos 1. Determine as raízes de uma equação de 2º grau: ax 2 + bx + c = 0 (recordar que o discriminante Δ = b 2 4ac, e que a raiz r =

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais