mac 5715 - designfest 2003 the vending machine adão m. alexandre vidal carlos alexandre gustavo...

17
MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S.

Upload: iago-carneiro-escobar

Post on 07-Apr-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

MAC 5715 - DesignFest 2003The Vending Machine

Adão M.Alexandre VidalCarlos AlexandreGustavo Maia

José Ribamar BragaRaphael CamargoRenato S.

Page 2: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Resumo

Descrição do Problema Descrição dos Módulos do Sistema Diagramas de Seqüência Conclusões

Page 3: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Problema: The Vending Machine Objetivo: Criar o software para uma máquina de

venda de café. A parte mecânica será tratado por um grupo de projetistas mecânicos.

Será vendido café com ou sem creme e açúcar. Haverá um botão para cada uma das opções, além de um botão de troco.

O pagamento será feito em moedas e a máquina retornará troco.

Page 4: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Solução: Módulos do Sistema

O sistema está dividido em seis módulos: Dispositivos Financeiro Interface com Usuário Produto Transação de Compra Exceções

Page 5: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo Dispositivos É composto por quatro classes principais:

Misturador: Interface para o sistema que compõe e entrega os produtos

Coletor de Pagamento: Controla o crédito que foi inserido na máquina. Na parte 1, ela é instanciada por uma classe que controla a quantidade e tipo de moedas inseridas na máquina

Cofre: É onde o dinheiro é armazenado. Na parte 1 é instanciado como um cofre de dinheiro.

As instâncias destas e outras classes do sistema são criadas utilizando uma fábrica (padrão factory)

Page 6: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo: Dispositivos

Page 7: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo: Financeiro

Caixa: É responsável por controlar a parte financeira, como o crédito e a quantidade de troco disponível. Interage com classes do módulo

dispositivos, como cofre e coletor de pagamento.

Para garantir que sempre existe apenas uma instância de caixa no sistema, é utilizado o padrão Singleton.

Page 8: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo: Interface com Usuário É composto por duas classes principais:

Botão: Interface que pode ser instanciada como botões de seleção de produto e de troco.

Painel: Controla os botões para seleção dos produtos e de troco. Na parte 1 ela é instanciada como uma painel padrão.

Page 9: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo: Produto Possui uma classe Produto que é composta por uma

ou mais instâncias de Item.

Page 10: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo: Transação de Compra Para cada transação realizada é instanciado um novo

objeto do tipo Compra. Ele recebe informações provindas do painel, caixa e produto, e solicita a preparação do produto solicitado e o débito de seu valor.

Page 11: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Módulo: Exceções

As exceções são derivadas de uma superclasse Excecoes e correspondem aos diferentes tipos de erros que podem ocorrer no sistema. Em Java, a classe Excecoes corresponderia à classe Exception.

Page 12: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Diagrama de Sequência:Compra bem Sucedida

Page 13: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Produto Inexistente

Saldo Insuficiente

Page 14: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Falha no Dispositivo

Troco Indisponível

Page 15: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Extensões: Partes II e III

Parte II: Adicionar sopa a $0.25 como sendo mais uma opção de produto. Solução: Basta criar um novo tipo de produto de tipo sopa

e um item póSopa. Como o preço fica dentro da classe sopa o novo preço não causa dificuldades.

Parte III: Adicionar um leitor de cartão que cobra o valor do produto diretamente da conta do cliente. Solução: Criar um novo tipo de subclasse para

ColetorPagamento que lê o código do cartão e se comunica com um módulo de rede para obter crédito e subtrair os valores da conta do usuário.

Page 16: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Extensões: Parte IV

Parte IV: Adicionar pó de café expresso e milk steamer. Também estará disponível um produto da semana, como café expresso por $0.75. O painel será substituído por um display LCD.

Solução: A adição de novos produtos e itens é similar à parte II. Para substituir o painel tradicional pelo LCD, basta criar uma nova subclasse de painel denominada painelLCD com a funcionalidade deste painel.

Page 17: MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S

Conclusões

Foram utilizados dois padrões de projeto, o Singleton e Factory.

A adição de novos tipos de produtos e outras formas de pagamento foi bastante simples em nosso sistema em função do design OO flexível.