Você está na página 1de 21

LosHermanos

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

Confidencial LosHermanos, 2017 Pgina 2 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

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

3. Restries e Metas Arquiteturais

4. Viso de Casos de Uso


4.1 Mdulo Empresa
4.1.1 Adiciona Produto 8
4.1.2 Atualizar Andamento do Pedido 8
4.1.3 Bloquear Produto 8
4.1.4 Cria Promoo 8
4.1.5 Imprimir Pedido 8
4.2 Mdulo Cliente
4.2.1 Acompanhar Andamento do Pedido 8
4.2.2 Adicionar dados de pagamento 8
4.2.3 Adicionar dados entrega 8
4.2.4 Interao com Redes Sociais 8
4.2.5 Selecionar Produto 8
4.2.6 Selecionar Restaurante 8
4.3 Mdulo Entrega
4.3.1 Menor Caminho 8
4.4 Mdulo Integrao
4.4.1 Integrao com Sistemas Legados 8

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

Confidencial LosHermanos, 2017 Pgina 3 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

Menor caminho 16

6. Viso de Processos

7. Visualizao da Implantao

8. Viso da Implementao

9 Viso de Dados (opcional)

10 Tamanho e Desempenho

11 Qualidade

Confidencial LosHermanos, 2017 Pgina 4 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

Documento de Arquitetura de Software


1. Introduo
Este documento mostrar uma anlise geral da arquitetura do aplicativo proposto, descrevendo toda a tecnologia que
ser utilizada, como ser o relacionamento entre as camadas da aplicao e a funcionalidade das mesmas, por fim,
mostrar como sero todos os detalhes tcnicos desta aplicao.

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.

1.4 Viso Geral


Este documento de arquitetura foi organizado da seguinte maneira.
A seo 2 descreve a arquitetura geral das duas grandes divises do sistema: web e mbile. Encontramos as
tecnologias que essas duas grandes frentes vo dispor, como sero dividas as camadas desses grandes mdulos, bem
como uma viso inicial da comunicao entre as camadas.
A seo 3 mostra algumas restries que o sistema exige que sejam cumpridas para o seu funcionamento e tambm
algumas metas, objetivos que o produto final ter de oferecer para os seus usurios.
A seo 4 mostra uma reviso geral dos casos de uso do sistema.
O objetivo da seo 5 mostrar como dever ser o produto final, ela deve ser responsvel por ser o grande pilar de
orientao para a etapa de desenvolvimento da aplicao. Ela mostra e descreve nas suas subsees como as classes
a serem desenvolvidas no programa se comunicam, como deve estar distribuda a aplicao nos seus diferentes
meios de atuao, uma viso como dever ser desenvolvido cada caso de uso no programa em si, e ainda uma srie
de prottipos para ajuda no entendimento dessas explanaes.
Na sequncia, a seo 6 mostra a comunicao entre os diferentes processos do produto final.
Ao final, temos a seo 9 mostrando uma viso do modelo de banco de dados que ser utilizado e a seo 10
explanando sobre a qualidade atingida com o uso do software desenvolvido.

2. Representao Arquitetural
A arquitetura do software dividida em duas frentes, a arquitetura do sistema web e do sistema mobile.

Confidencial LosHermanos, 2017 Pgina 5 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

2.1 Arquitetura do Sistema Web


A arquitetura do sistema Web formada pela diviso em camadas, contendo camada de negcios, camada de
persistncia, e camada de viso. Como parte da camada de viso, iremos utilizar HTML 5, JQuery, Javascript e CSS
3, caracterizando o client-side (front-end) da nossa aplicao. Como back-end, ser usado a camada de negcios e a
camada de persistncia. Na camada de negcios (BO, do ingls Business Object), usaremos a linguagem C# para se
comunicar com o front-end, atravs de requisies AJAX que viro do Javascript da aplicao. Cada pgina possuir
seu BO.
A camada de persistncia ou camada de banco possuir todas as queries de consulta com o banco. O banco de dados
que ser utilizado no sistema web ser o SQL Server verso 2008 ou superior.
Todas as chamadas sero feitas do client-side para o server-side atravs de requisies AJAX, que passaro por um
handler do lado do servidor, que encaminhar a requisio para o BO correto. Do BO, caso haja alguma funo que
necessite de comunicao com o banco, o mesmo ir enviar uma chamada de funo para a camada de banco, que
realizar as interaes com o banco e retornar o resultado para o BO. O BO ento retornar para o client-side
sucesso ou erro.
Segue abaixo um desenho explicativo de como sero as chamadas e qual o fluxo de uma requisio na aplicao
Web.

2.2 Arquitetura do Sistema Mobile


O sistema mobile ser dividido em camadas, contendo camada de modelo, camada de persistncia e camada de
viso. O sistema como um todo ser desenvolvido em Android, atravs da linguagem Java. O front-end da aplicao
utilizar XML, HTML 5, CSS 3 e Javascript.
Segue abaixo um desenho explicativo de como ser o fluxo de requisies da aplicao mobile

Confidencial LosHermanos, 2017 Pgina 6 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

3. Restries e Metas Arquiteturais


Para o uso do software necessrio acesso constante a internet, tanto pela viso da empresa quanto a do cliente,
tambm necessrio informaes privadas dos clientes como seu telefone e endereo para a entrega dos produtos,
porm tais dados ficaram salvos em um banco de dados, de acesso restrito. O design do aplicativo voltado para
simplicidade e facilidade na utilizao, porque tem o objetivo de atingir um pblico alvo heterogneo.

4. Viso de Casos de Uso


O sistema consiste dos seguintes casos de usos:

Confidencial LosHermanos, 2017 Pgina 7 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

4.1 Mdulo Empresa


4.1.1 Adiciona Produto
Funo na qual se faz o cadastro de produtos no aplicativo, atravs de informaes enviadas para o servidor
4.1.2 Atualizar Andamento do Pedido
Funo responsvel por atualizar o status do pedido para o cliente final.
4.1.3 Bloquear Produto
No caso de falta de um produto o operador do mdulo na empresa poder bloquear um produto impedindo a sua
venda.
4.1.4 Cria Promoo
Funo na qual o fornecedor insira em sua page, no aplicativo, promoes que deseja realizar durante um
determinado perodo ou dia, e assim que o usurio entrar na page do fornecedor encontrar primeiramente as
principais promoes disponvel.
4.1.5 Imprimir Pedido
Responsvel por imprimir pedido, para que seja feita seu preparo.
4.2 Mdulo Cliente

4.2.1 Acompanhar Andamento do Pedido


Funo para que o usurio busque o seu produto que j foi comprado, para obter informaes sobre o produto como
se j saiu para entrega ou no ou se o pedido retornou, e se o restaurante oferecer a opo, rastrear a posio do
entregador por um gps.
4.2.2 Adicionar dados de pagamento
Funo para que o usurio insira as suas informaes de pagamento aps o produto ser escolhido por ele, de acordo
com o que ele deseja e com as opes oferecidas pelo restaurante.
4.2.3 Adicionar dados entrega
Funcionalidade em que o usurio preenche os dados de entrega dos pedidos previamente selecionados.
4.2.4 Interao com Redes Sociais
Descreve as aes que o usurio pode fazer em alguma Rede Social. O usurio poder curtir a pgina da aplicao,
pgina do restaurante e compartilhar o uso do aplicativo.
4.2.5 Selecionar Produto
Funcionalidade em que o usurio escolhe o seu pedido, de acordo com os produtos cadastrados na empresa em que
ele selecionou previamente.
4.2.6 Selecionar Restaurante
Funo para que o usurio escolha um restaurante seu gosto, de acordo com a comida desejada e os restaurantes
cadastrados no aplicativo que esto disponveis no momento.
4.3 Mdulo Entrega

4.3.1 Menor Caminho


Funcionalidade utilizada para dispor ao entregador dos pedidos uma melhor rota de entrega.
4.4 Mdulo Integrao

4.4.1 Integrao com Sistemas Legados


Funo a qual integra o sistema foodExpress algum sistema que a empresa contratante j possuir, para permitir que
a aplicao atualize sua lista de itens.

Confidencial LosHermanos, 2017 Pgina 8 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

5. Viso Lgica

5.1 Viso Geral

Confidencial LosHermanos, 2017 Pgina 9 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

5.2 Pacotes de Design Significativos do Ponto de Vista da Arquitetura


No se aplica.

5.3 Realizaes de Casos de Uso

5.3.1 Mdulo Empresa

Confidencial LosHermanos, 2017 Pgina 10 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

Confidencial LosHermanos, 2017 Pgina 11 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

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

Confidencial LosHermanos, 2017 Pgina 12 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

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.

Confidencial LosHermanos, 2017 Pgina 13 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

5.3.2 Mdulo Cliente

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

Confidencial LosHermanos, 2017 Pgina 14 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

numa caixa de texto.

Adicionar dados entrega


Aps selecionar o produto o cliente dever selecionar os dados de entrega, ento passar para uma tela em
que digitar algumas informaes.
- Nome: campo de texto em que o cliente digitar o seu nome;
- Telefone: campo de texto em que o cliente digitar seu telefone;
- Campos de endereo: campos de texto para o cliente especificar o lugar onde se encontra, ou ento
selecionar atravs do mapa do Google Maps.

Confidencial LosHermanos, 2017 Pgina 15 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

Adicionar dados de pagamento


Aps selecionar a sua localizao o cliente ter que selecionar a forma de pagamento. As opes de
pagamento aparecero para o cliente em caixas de seleo. Se o cliente selecionar pagamento vista,
dever informar numa caixa de texto quanto de dinheiro ir repassar para o entregador, para que seja
providenciado o troco, caso contrrio, o entregador levar a mquina de carto para o cliente.
Acompanhar Andamento do Pedido
Depois que o cliente terminou de fazer o pedido ele poder conferir qual o seu andamento, vendo o status
que definiram para o seu pedido no mdulo empresa. Na opo Acompanhar andamento o cliente ver uma
tela com essa informao (nmero do pedido, e status).
Interao com Redes Sociais
Na pagina inicial do aplicativo o usurio poder clicar no boto Like (Curtir) e ento o seu usurio do
Facebook ir curtir a pgina do food Express no Facebook.
Outra opo tambm ser clicar no boto Like(Curtir) aps ter selecionado o restaurante, para curtir a
pgina do restaurante do Facebook.
O cliente ter ainda a opo de clicar em Share(Compartilhar) quando tiver terminado o seu pedido, depois
de adicionar os dados de pagamento, e isso far que o usurio do facebook do cliente compartilhe que est
fazendo uma compra de algum produto, em algum determinado restaurante, usando o foodExpress.
5.3.3 Mdulo Entrega

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

Confidencial LosHermanos, 2017 Pgina 16 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

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:

1. FoodExpress.BLL que contem os Business Objects (BO) de todas as pginas.


2. FoodExpress.DAL que contm as classes responsveis pela comunicao com o banco de dados.
3. FoodExpress.WebUI que contm os arquivos .html, .js e .css

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:

private string Insert(config)


{
string sql = "";

sql += string.Format("INSERT INTO {0} (", config.nome_tabela);

string values = "";


foreach (var item in config.campos)
{
if (item.Value != "")
{
sql += (string)item.Name + ",";
values += "'" + (string)item.Value + "',";
}
}
sql = sql.Remove(sql.Length - 1);
values = values.Remove(values.Length - 1);

sql += ") VALUES (";


sql += values + ")";

return sql;
}

public string SelectAll(config)


{
return string.Format("SELECT * FROM {0}", config.nomeTabela);
}

public string Delete(config)

Confidencial LosHermanos, 2017 Pgina 17 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

{
string sql = "";
if (m.where != null)
{
sql += string.Format("DELETE FROM {0} ", config.nomeTabela);

sql += " WHERE ";


foreach (var item in config.where)
{
sql += (string)item.Name + " = " + (string)item.Value;
}
return sql;
}
}

public string Update(config)


{
string sql = "";

if (config.where != null)
{
sql += string.Format("UPDATE {0} SET ", config.nomeTabela);

foreach (var item in config.campos)


{
if (item.Value.Type.ToString() == "String" && item.Value == "")
sql += (string)item.Name + " = null ,";

else
sql += (string)item.Name + " = '" + (string)item.Value + "',";
}
sql = sql.Remove(sql.Length - 1);

sql += " WHERE ";


foreach (var item in config.where)
{
sql += (string)item.Name + " = '" + (string)item.Value + "' AND ";
}
//Retira o AND
sql = sql.Remove(sql.Length - 5);
return sql;
}

8.1.2 Demais Business Object


Todos os demais BOs devero ser extends CrudBO. Devero ser acrescentadas aqui, apenas funes que
no so genricas, como um SQL com inner join de tabelas ou funes que no esto presentes no CrudBO.cs.

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():

StringBuilder sb = new StringBuilder();


StringWriter sw = new StringWriter(sb);

Confidencial LosHermanos, 2017 Pgina 18 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

using (JsonWriter jsonWriter = new JsonTextWriter(sw))


{
while (reader.Read())
{
jsonWriter.WriteStartObject();

int fields = reader.FieldCount;

for (int i = 0; i < fields; i++)


{
jsonWriter.WritePropertyName(reader.GetName(i));
jsonWriter.WriteValue(reader[i]);
} jsonWriter.WriteEndObject();
}
jsonWriter.WriteEndArray();
}
return sw.ToString();

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.

public string GeraComando(EnumComandos comando)


{
switch (comando)
{
case EnumComandos.INSERT:
return Insert(config);
case EnumComandos.UPDATE:
return Update(config);
case EnumComandos.DELETE:
return Delete(config);
case EnumComandos.SELECTALL:
return SelectAll(config);
case EnumComandos.SELECTALLPAGING:
default:
throw new Exception(string.Format("Comando no implementado {0}",
comando.ToString()));
}
}

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

Confidencial LosHermanos, 2017 Pgina 19 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

Esse projeto contm a pasta assets e os demais arquivos html ou aspx.


Pasta assets: A pasta assets contm os arquivos .css, .js e as imagens. Cada tipo desses arquivos esto em suas
respectivas pastas separadamente.
Cada pgina do sistema possui seu prprio html ou aspx, ao qual ir chamar seu respectivo arquivo .js. Por exemplo,
o arquivo cardapio.html, quando for solicitado uma funo de insero, por exemplo, dever ento passar a
responsabilidade para o arquivo cardapio.js, que atravs de uma chamada ajax, ir enviar uma requisio para o
handler.

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);

// Obtendo o tipo da classe que ser instanciada via reflection.


Type classType = assem.GetType(nomedoprojeto + "." + nomeBO);

// Instncia do BO instanciado via reflection


object bo = assem.CreateInstance(nomedoprojeto + "." + nomeBO);

// Invocando mtodo
method.Invoke(bo, parametro);

Confidencial LosHermanos, 2017 Pgina 20 de 21


LosHermanos Verso: <1.1>
Documento de Arquitetura de Software Data: <27/07/14>

9 Viso de Dados (opcional)

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.

Confidencial LosHermanos, 2017 Pgina 21 de 21