Escolar Documentos
Profissional Documentos
Cultura Documentos
foodExpress
Documento de Arquitetura de Software
Verso <1.1>
LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>
Histrico da Reviso
Data Verso Descrio Autor
22/07/2014 1.0 - Willian
27/07/2014 1.1 - Vitor
18/08/2014 1.2 - Arthur
25/08/2014 1.3 - Igor
ndice
1. Introduo
1.1 Objetivo
1.2 Escopo
1.3 Referncias
1.4 Viso Geral
2. Representao Arquitetural
2.1 Arquitetura do Sistema Web
2.2 Arquitetura do Sistema Mobile
5. Viso Lgica
5.1 Viso Geral
5.2 Pacotes de Design Significativos do Ponto de Vista da Arquitetura
5.3 Realizaes de Casos de Uso
5.3.1 Mdulo Empresa 10
Adiciona Produto 12
Bloquear Produto 12
Cria Promoo 12
Atualizar Andamento do Pedido 12
Imprimir Pedido 13
5.3.2 Mdulo Cliente 14
Selecionar restaurante 14
Selecionar Produto 14
Adicionar dados entrega 15
Adicionar dados de pagamento 16
Acompanhar Andamento do Pedido 16
Interao com Redes Sociais 16
5.3.3 Mdulo Entrega 16
Menor caminho 16
6. Viso de Processos
7. Visualizao da Implantao
8. Viso da Implementao
10 Tamanho e Desempenho
11 Qualidade
1.1 Objetivo
Este documento fornece uma viso arquitetural abrangente do sistema, usando diversas vises de arquitetura para
representar diferentes aspectos do sistema. Ele pretende capturar e transmitir as decises arquiteturas significativas
que foram tomadas em relao ao sistema.
1.2 Escopo
O Projeto composto, por duas partes principais, que se comunicam, com o servidor da aplicao.
A parte Mobile estar diretamente ligada ao consumidor final, sendo responsvel por fazer as requisies dos
clientes para seus respectivos fornecedores.
A aplicao Web a responsvel por fazer a divulgao do produto na Internet, tambm uma rea de acesso restrito
acoplado, para que o usurio do sistema possa fazer o acesso para verificar as notificaes de seu estabelecimento,
realizar o gerenciamento dos pedidos, promoes e todas as informaes relacionadas ao estabelecimento que ser
disponibilizada para o usurio.
Servidor da aplicao o responsvel por gerenciar todas as informaes que trafegam na aplicao.
1.3 Referncias
No se aplica.
2. Representao Arquitetural
A arquitetura do software dividida em duas frentes, a arquitetura do sistema web e do sistema mobile.
5. Viso Lgica
Adiciona Produto
Ao adicionar um novo produto, o operador desse mdulo dever entrar na tela de Produto, opo Adicionar
Produto, e preencher os campos da tela ao produto correspondente. Os campos so:
- Nome: campo de texto que recebe o nome dado ao produto;
- Valor: campo de texto que recebe o valor de venda do produto;
- Descrio do produto: caixa de texto que recebe uma descrio textual livre do produto. Pode ser, por
exemplo, o espao destinado a colocar os ingredientes que compem o produto;
- Imagem: campo de texto e um boto browse que ao ser acionado abre uma tela para o operador do mdulo
empresa, para que o mesmo consiga selecionar uma imagem do produto que esteja na mquina, que ter o
seu caminho guardado no campo de texto.
- Disponvel: caixa de seleo que indicar se o produto est ou no disponvel pra venda.
Ao terminar necessrio clicar no boto confirmar para confirmar o cadastro, ou cancelar, para cancelar o
cadastro.
Bloquear Produto
Para bloquear um produto, por algum motivo temporrio, o operador desse mdulo poder entrar na tela de
Produto, opo Bloquear/Desbloquear Produto, e assim procurar um produto pelo nome ou nmero (id).
Assim que o produto for encontrado, poder alterar o campo Disponvel do pedido, desmarcando o mesmo
para evitar que aparea para o cliente efetuar uma compra, ou marcando, para voltar a coloc-lo em
disponibilidade para venda e consumo. Assim que terminar a operao ter que clicar no boto confirmar.
Cria Promoo
Para criar uma promoo o operador do mdulo deve entrar na tela de Produto, opo Criar Promoo.
Nela encontrar um campo para procurar o produto pelo nome ou nmero (id). Ao encontrar o produto
poder selecionar o seu novo valor, o valor da promoo e clicar num boto confirmar para terminar o
processo de criao de promoo. Aps essa sequncia de passos o campo interno da classe Produto,
promocao, ficar marcado com o valor verdadeiro, e a partir da ele aparecer com uma nfase maior em
relao aos outros produtos do mesmo estabelecimento no mdulo cliente.
Atualizar Andamento do Pedido
Para atualizar o andamento do pedido o operador desse mdulo dever entrar na tela de Pedidos. Nessa tela
haver um campo de lista com o nmero (id) dos pedidos do dia, para selecionar um pedido especfico, e
tambm uma grade mostrando os ltimos 20 pedidos. Se o pedido j no estiver na grade o operador poder
selecion-lo no campo de lista e assim que ele aparecer na grade, poder alterar o andamento na coluna
Status, atribuindo os possveis valores: Em preparo, Preparo finalizado e Enviado para entrega.
Imprimir Pedido
Para essa funo, o operador do mdulo dever entrar na tela de Pedidos, onde poder selecionar uma caixa
de seleo numa grade que mostra os ltimos pedidos feitos e clicar em Imprimir pedidos para que sejam
impressos os pedidos que ele selecionou na grade, para ento passar para o pessoal da cozinha preparar.
Selecionar restaurante
Ao entrar no aplicativo o cliente se depara com a seleo de possveis tipos de comida que poder comprar
em caixas de seleo, e a partir das que selecionar, poder escolher restaurantes correspondentes. Ao passo
que se selecionam os tipos de comida, cones relativos aos tipos de comida aparecem na tela.
Aps clicar no boto Procurar, o cliente visualizar os possveis restaurantes cadastrados para pedir em uma
lista, e assim que selecionar poder visualizar os produtos desse restaurante para fazer o pedido.
Selecionar Produto
Para selecionar um produto para compra, o cliente dever ter selecionado o tipo de comida, e em seguida o
restaurante, s ento conseguir visualizar esses produtos. Aparecer na tela uma lista de produtos do
restaurante selecionado para o cliente escolher e depois adicionar alguma observao em relao ao pedido
Menor caminho
O aplicativo mvel do mdulo entrega ter uma tela simples em que se pode selecionar os pedidos pelos
seus nmeros em uma grade e depois clicar no boto Gerar menor caminho, para que trace uma rota no
Google Maps com o menor caminho entre os diferentes pedidos. Aps entregar o pedido o entregador
dever sinalizar que o pedido foi entregue ao cliente.
6. Viso de Processos
7. Visualizao da Implantao
No se aplica.
8. Viso da Implementao
Para montar a arquitetura da aplicao, ser necessrio uma solution com 3 (trs) projetos, sendo eles:
8.1 FoodExpress.BLL
Estruturando primeiramente o Projeto FoodExpress.BLL, deveremos criar um arquivo com o nome de CrudBO.cs,
que ser responsvel por ser o arquivo genrico de todos os BOs, ou seja, todos os BOs como CardapioBO,
ClienteBO, entre outros devero implementar extends CrudBO.cs. nesse projeto que executar a comunicao com
o banco e executar as queries que viro do arquivo DataAccessParse.cs.
8.1.1 CrudBO.cs
Dever obter os dados e montar funes como, inserir, deletar, pesquisar, carregar. Assim que receber os
parmetros enviados pelo usurio, dever pass-los para a funo geracomando(), que faz parte do projeto
FoodExpress.DLL, responsvel por realizar as funes de banco, como insert, delete, search, entre outras e retornar
o resultado da consulta para esse projeto. Segue abaixo um exemplo das funes bsicas onde so montadas as
queries:
return sql;
}
{
string sql = "";
if (m.where != null)
{
sql += string.Format("DELETE FROM {0} ", config.nomeTabela);
if (config.where != null)
{
sql += string.Format("UPDATE {0} SET ", config.nomeTabela);
else
sql += (string)item.Name + " = '" + (string)item.Value + "',";
}
sql = sql.Remove(sql.Length - 1);
8.1.3 Util.cs
Esse arquivo responsvel por transformar o resultado das consultas com o banco em objeto json, atravs
da funo StringBuilder e JsonTextWriter que provm do C#. Abaixo segue um exemplo de como deve ser
basicamente o mtodo ConverToJson():
8.2 FoodExpress.DAL
O FoodExpress.DAL montar as consultas de banco, devendo posteriormente devolver o para o FoodExpress.BLL a
query montada para posteriormente serem executadas.
Dever possuir os arquivos DataAccessParse.cs, EnumComandos.cs.
8.2.1EnumComandos.cs
Esse arquivo serve para enumerar as funes, como 0 para inserir, 1 para deletar, 2 para atualizar, entre
outras. Apenas para controle de qual funo ser executada. Esse arquivo opcional.
8.2.2 DataAccessParse.cs
Contm mtodos como GeraComando() para direcionar a funcionalidade corretamente a cada funo.
Nesse mesmo arquivo, implementado as funes que constri as operaes de banco, como insert, delete, update,
entre outros atravs do string.Format do C#. Aps montar a consulta, a mesma funo retorna para o BLL.
8.3 FoodExpress.WebUI
8.3.1 Handler
O handler da nossa aplicao est presente no code-behind do arquivo Default.aspx, ao qual intercepta toda
e qualquer requisio vinda do client-side. Esse arquivo instancia via reflection todas as informaes, como qual BO
ser chamado, qual o nome do mtodo que ser executado, quais so os parmetros que sero enviados, e atravs do
mtodo Invoke do reflection, encaminha a responsabilidade para o devido BO. Abaixo segue um exemplo de como
devem ser carregados os BOs via reflection e como so as chamadas de mtodos:
// Carregando a dll
Assembly assem = Assembly.Load(nomedoprojeto);
// Invocando mtodo
method.Invoke(bo, parametro);
10 Tamanho e Desempenho
No se aplica
11 Qualidade
A arquitetura do software contribui com a segurana dos clientes, pois nunca so exigidas informaes
sigilosas como conta bancria ou CPF, contribui com a expanso dos restaurantes que fornecem servio de
entrega, porque aliviam o atendimento via telefone e fornece uma fcil organizao dos pedidos,
portabilidade, pois possvel fazer um pedido de qualquer restaurante cadastrado pelo aplicativo do celular,
sem perder tempo na linha e o aplicativo ainda oferece a opo de rastreamento do seu pedido via GPS.