+ All Categories
Home > Documents > MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo...

MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo...

Date post: 07-Apr-2016
Category:
Upload: iago-carneiro-escobar
View: 213 times
Download: 0 times
Share this document with a friend
17
MAC 5715 - DesignFest 2003 The Vending Machine Adão M. Alexandre Vidal Carlos Alexandre Gustavo Maia José Ribamar Braga Raphael Camargo Renato S.
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.


Recommended