2010bEquipe01

De Wiki DAINF
(Diferença entre revisões)
(Alguns dados do mercado de pet-negócios no mundo)
(Registros)
 
(76 edições intermediárias de 3 usuários não apresentadas)
Linha 1: Linha 1:
 +
'''Atenção! ''Comentários e perguntas devem ser concentrados na [[Discussão:2010bEquipe01 | página de discussão]]!'''''
 +
 +
 +
 
'''Equipe''': [[BrunoCampera | Bruno Câmpera]] | [[ClaudioToledo | Claudio Toledo Filho]] | [[Renan Taizo | Renan Taizo Nakashima]] | [[RuiPimentel | Rui Pimentel Leite]]<br/><br/>
 
'''Equipe''': [[BrunoCampera | Bruno Câmpera]] | [[ClaudioToledo | Claudio Toledo Filho]] | [[Renan Taizo | Renan Taizo Nakashima]] | [[RuiPimentel | Rui Pimentel Leite]]<br/><br/>
  
= Plataforma para administração de empresas do setor de pet-serviços =
+
= Gerador de Sistemas Online para Cadastros Comerciais - ADMINISTRI!=
Orientação: '''Prof. Marlon de Oliveira Vaz'''
+
  
Baseados na necessidade das empresas do setor de pet-serviços (em franca expansão no Brasil, atrás apenas dos Estados Unidos), pretendemos desenvolver um sistema para gerenciamento desses negócios e também de geração de estatísticas, auxiliando os empresários no processo de administração. É seguro que a maioria deles desconhece até mesmo ferramentas simples do tipo.
 
  
Esse sistema seria implementado sobre uma plataforma que permitisse entrada e consulta dos dados num dispositivo móvel (celular Black Berry) e armazenamento dos mesmos em um servidor.
+
A  falta  de um  software  livre  que   auxilie  na  gestão de  ambientes  comerciais  pela Internet,  que possa vir a ser usado como incentivo para micro e pequenos empresários de qualquer  setor  da economia,  visando  inserir  de  forma simples a  informatização comercial básica. Além disso, acreditamos no uso pessoal e comercial de tecnologias da informação — principalmente as livres —  para o avanço tecnológico nacional e regional.
  
= Alguns dados do mercado de pet-negócios no mundo =  
+
= Objetivos =
  
Nos últimos dois anos o mercado pet tem crescido de uma maneira significativa. Hoje, a população canina e felina representa 36% dos consumidores de produtos para higiene animal.  
+
Conceber  por  completo  o   projeto  ADMINISTRI!:  “Ferramenta  para  criação  de sistemas de cadastros para micro e pequenos negócios”, gerando como exemplo um programa para o setor de Pet-Serviços. Tanto a ferramenta quanto o sistema exemplo serão distribuídos livremente a quaisquer interessados, sendo ambos possíveis de se modificar, para que possam 7
 +
ser compatíveis com qualquer outro sistema comercial.  A concepção de ambos os sistemas será usada como atribuição de nota parcial na disciplina de Oficinas de Integração I.
  
Segundo a Anfal Pet (Associação Nacional dos Fabricantes de Alimentos para Pequenos Animais), o Brasil é o segundo país do mundo com maior população de animais domésticos, ficando apenas atrás dos EUA. São 28,8 milhões de cães, 13,08 milhões de gatos e 4 milhões de outros pets. Dados do IBGE (Instituto Brasileiro de Geografia e Estatística) apontam que, nos últimos quatro anos, houve um aumento de 17,6% no número de cães e gatos no Brasil.
+
= Vantagens no uso da tecnologia da informação nos negócios =
  
Por conta disso, esse mercado só tem alavancado com empresas investindo em produtos destinados aos animais, mais especificamente cães e gatos. Os números revelam: o gasto médio com produtos e serviços per capta/ano é de R$ 390 entre pet food, produtos farmacêuticos, vacinas, embelezamento e acessórios, num total de R$ 16 bilhões de faturamento do setor no mercado. (Anfal pet)
+
*Automação de tarefas rotineiras; <br>
 +
*Melhoria de controle interno das informações; <br>
 +
*Melhoria no atendimento aos clientes; <br>
 +
*Possibilidade de prever problemas financeiros mais cedo; <br>
 +
*Melhoria no processo produtivo; <br>
 +
*Aumento de produtividade e competitividade <br>
  
(http://www.sebrae-sc.com.br/novos_destaques/oportunidade/default.asp?materia=11794)
+
= Tecnologias livres usadas na comcepção do projeto =
  
== Banco de Dados único em servidor de Internet ==
+
==Arquitetura Cliente/Servidor==
Pretende-se usar MySQL como Banco de Dados, por ser gratuito e dar suporte à consultas via JSP.
+
  
== Acesso do Cliente através de um Browser ==
+
Um servidor é um sistema computacional capaz de processar solicitações de recursos e
No dispositivo cliente (desktop / Black Berry), o acesso ao sistema se dará através de um navegador, que receberá dados do servidor e enviará atualizações para o banco (também através do servidor).
+
devolver respostas de maneira a disponibilizar arquivos e serviços — por exemplo correio
 +
eletrônico, arquivos, fax, impressão, DNS, proxy, FTP, entre muitos outros.
 +
Nesta descrição, a palavra “servidor” pode se referir tanto à máquina (computador)  
 +
de  maneira  genérica,   quanto  ao   seu  aplicativo  (software),   que   efetivamente  processa  a
 +
solicitação do cliente (usuário) do serviço / recurso.<br>
  
== Controle do Fluxo de Caixa ==
+
Em geral,  uma  interface cliente  (ou  simplesmente cliente)  é uma  interface gráfica
Todos os recebimentos e despesas serão declarados no sistema para facilitar consultas e permitir a geração de estatísticas.
+
usada por um usuário para visualizar e também enviar dados a um servidor. É a interface que
 +
faz requisições (pedidos) ao servidor e apresenta a resposta de maneira visualmente agradável.
 +
Esse  sistema  pedido-resposta  é  mediado por  um protocolo de   comunicação,  amplamente usado, o HTTP.
  
== Cadastro de clientes, animais, fornecedores e produtos ==
+
==Protocolo HTTP==
A plataforma contará com um sistema programado e automatizado para cadastro de clientes, cadastro de serviços (tais como pet-hotelaria, compra de produtos, banho, tosa, pet-taxi, etc). Tais informações serão consultadas em tempo real no banco de dados do servidor.
+
HyperText  Transfer  Protocol  (HTTP)   é  um  protocolo  de  comunicação  com
 +
propriedades  específicas  para  web.   É  através  desse  protocolo  que  se  faz  possível  a
 +
comunicação de um servidor com um cliente.<br>
  
== Controle de estoque ==
+
Métodos HTTP são como formatos de solicitações; para cada tipo, certos parâmetros
As entradas e saídas dos produtos serão declaradas no programa para a geração das estatísticas e controle de estoque.
+
se fazem necessários e, portanto, devem ser especificados na request HTTP. No total, existem
 +
oito métodos, mas os dois principais são:  GET e POST.<br>
  
== Gerenciamento de hospedagem e reservas ==
+
O método GET é o mais simples usado nas comunicações HTTP. É responsável por solicitar
Controle e planejamento da ocupação das baias.
+
do servidor um recurso qualquer, que é devolvido na forma de uma resposta HTTP.<br>
  
== Pontuação dos clientes (benefícios) ==
+
O método POST é mais complexo na comunicação para envio de dados para o servidor, para que estes
Acúmulo de pontos para os clientes por cada serviço encomendado ou compra feita.
+
possam ser processados. Ao contrário do GET, esse método pode ser usado para transmissão
 +
de dados sigilosos com relativa segurança,  pois as  informações submetidas são  listadas no
 +
corpo da  request  (juntamente com especificações sobre codificação e formato desejado de
 +
resposta) sem que fiquem explícitas no endereço da página (URL).
 +
 
 +
==Linguagem HTML==
 +
Nos protocolos de comunicação HTTP, o cliente geralmente solicita páginas HTML e
 +
o  servidor  as  envia.  HTML  significa  HyperText  Markup  Language  (Linguagem  para
 +
Marcação de  Hipertexto),  e  são  essas  páginas  HTML que  conhecemos  como páginas  da
 +
Internet. São elas, por exemplo, que nos disponibilizam formulários com campos de usuário e
 +
senha para nos autenticarmos em serviços, especificam onde começa e termina um título ou
 +
outro elemento dentro de um texto, como um hyperlink, entre outras funções.<br>
 +
 
 +
Essa linguagem de marcação é baseada em etiquetas (<tags>), e possui limitações com
 +
relação  ao  resultado  exibido.  Uma  página  HTML  é  exibida  sempre  da  mesma  maneira
 +
enquanto  não  for  modificada,  e  por  padrão  não  possui  recursos  interativos  (aplicativos
 +
inseridos dentro do contexto da página, como jogos por exemplo). Mesmo assim, o HTML
 +
permite que esses elementos sejam construídos em Flash, Java, Javascript e diversas outras
 +
linguagens e então inseridos dentro das páginas.
 +
 
 +
==Java e JavaScript==
 +
Em  computação,  uma  linguagem  é  basicamente  um  conjunto  de   palavras-chave
 +
organizadas em torno de regras com o objetivo de fornecer instruções de processamento para  
 +
uma máquina.<br>
 +
 
 +
De acordo com as necessidades dos programadores ou das aplicações, surgiram alguns
 +
tipos de linguagens,  cada uma com uma finalidade específica.  Algumas,  como o XML (de
 +
cuja  família se originou o HTML),  dedicam-se a marcar  texto de maneira a permitir  que
 +
softwares  consigam processar  e extrair  informações  a partir  do conteúdo dos documentos
 +
gerados com ela. Outras, como C e Java, geram programas de computador capazes de atender 
 +
a  praticamente  todas  as  finalidades  após  a  compilação  de  seus  códigos  (isto  é,  após  a
 +
transformação do código-fonte em um arquivo executável). Programas escritos em linguagem
 +
Java  podem  ou  não  possuir  interface  gráfica,  e  da  mesma  maneira,  podem  ou  não  ser
 +
controlados diretamente pelo usuário.<br>
 +
 
 +
Ainda,  existem  linguagens como o Javascript,  que permitem a criação de pequenos
 +
programas  (geralmente chamados de “scripts”)  dentro de páginas web.  Devido à  limitada
 +
capacidade que o HTML tem de processar conteúdo (o que se deve principalmente ao fato de
 +
esta ser uma linguagem de  marcação  e não de  programação), e a partir da necessidade de
 +
introduzir conteúdo  dinâmico  na Internet,  surgiram  linguagens com a habilidade de alterar
 +
elementos das páginas web que já estivessem abertas, sem alterar o código-fonte original das
 +
mesmas — ou seja, páginas que em teoria são estáticas (não são geradas “sob encomenda”
 +
para o usuário) acabam ganhando autonomia para se modificarem durante sua visualização no
 +
próprio  browser  do  usuário.  Cabe  ressaltar  que  scripts  não  são  compilados  (não  geram
 +
arquivos executáveis),  e por isso dependem do processamento de navegadores de Internet. 
 +
Ainda, esse tipo de código usa HTML como interface gráfica.
 +
 
 +
==Servlets e JSP==
 +
Um servlet é um aplicativo que roda no lado servidor, atuando como um controlador
 +
de requisições e respostas. Sua principal função é receber cada request HTTP (já transformada
 +
em um objeto Java pelo container
 +
) e encaminhá-las para os modelos (classes Java chamadas
 +
de models) corretos realizarem o processamento das
 +
informações  recebidas.  Caso os  modelos  retornem dados  que  precisem  ser  mostrados  ao
 +
usuário,  o  servlet  encaminha  então  esses  dados  para  a  página  JSP  (Java  Server  Page)
 +
correspondente,  que possui  um  template (layout) HTML para exibição das  informações.  O
 +
JSP é uma linguagem baseada em Java, que roda dentro de uma página web no lado servidor.
 +
 
 +
==Banco de Dados==
 +
 
 +
Um banco de dados é essencialmente um espaço de memória persistente reservado
 +
para  armazenamento  organizado  de  informações  de  maneira  a  permitir  consulta  a  elas.
 +
Geralmente, os bancos de dados são organizados em tabelas onde registros semelhantes são
 +
agrupados. Quando um sistema utiliza um banco, ele deve garantir que os dados não sejam
 +
adicionados nas tabelas erradas.<br>
 +
 
 +
Relacionamentos entre tabelas são importantes para aumentar o grau de complexidade
 +
dos sistemas, permitindo representações mais fiéis do domínio do problema estudado dentro
 +
da programação do software que será utilizado para resolvê-lo.<br>
 +
 
 +
A adição ou consulta de dados se dá através de uma linguagem de consulta (sendo a
 +
mais  conhecida  a  SQL  —  Structured  Query  Language,  ou  Linguagem  de  Consulta
 +
Estruturada). No nosso exemplo genérico, se o banco de dados suportasse consultas SQL e
 +
quiséssemos uma lista de todos os nomes de cachorros cadastrados, utilizaríamos a consulta:
 +
 
 +
SELECT Nome FROM Cachorros
 +
 
 +
Se quiséssemos apenas os cachorros de José, por exemplo:
 +
 
 +
SELECT Nome FROM Cachorros WHERE Código do Dono = 1
 +
 
 +
Como o  tamanho dos  bancos  utilizados  na  realidade  é  geralmente  maior  e  quase
 +
sempre estão relacionados a programas complexos, são necessárias ferramentas que auxiliem
 +
na administração deles — ferramentas estas chamadas de Sistemas Gerenciadores de Bancos
 +
de Dados (SGBD).<br>
 +
 
 +
O  SGBD  livre  e  gratuito  que  será  utilizado  neste  projeto  será  o  MySQL,  que
 +
implementa um Banco de Dados com suporte às consultas por Structured Query Language.
 +
 
 +
=Estrutura do Sistema=
 +
 
 +
==Model View Control - MVC==
 +
 
 +
Nosso sistema implementa um padrão de arquitetura conhecido como Model - View -
 +
Controller (MVC). Esse padrão tem como objetivo separar a “lógica de negócio” da “lógica
 +
de apresentação”, permitindo o desenvolvimento, teste e manutenção isolado de ambos.<br>
 +
 
 +
Ao receber uma solicitação HTTP de um cliente, o container (Tomcat, por exemplo)
 +
transforma  essa  solicitação  em  um  objeto  (Java),  e  o  envia  para  o  Controller,  que  é
 +
representado pelos servlets.  O Controller  é responsável  por processar  esse objeto recebido
 +
pelo container. Ele retira da solicitação do usuário os dados de entrada e interpreta o que eles
 +
significam para o modelo. Obriga o modelo a se atualizar e disponibiliza o estado do novo
 +
modelo para o “View”, que é representado pelos JSPs.<br>
 +
 
 +
O modelo contém a lógica e o estado do sistema. Em outras palavras, ele conhece as
 +
regras para obtenção e atualização do estado. O modelo é o unico que se comunica com um
 +
banco de dados.<br>
 +
 
 +
A  View  é  responsável  pela  apresentação.  Ela  recebe  o  estado  do  modelo  do
 +
controlador.  Também é  a parte  que  recebe  os  dados  de  entrada  do usuário que  volta  ao
 +
controlador.
  
 
= Registros =
 
= Registros =
Linha 47: Linha 173:
  
 
'''''28/08/2010, Sábado''''': '''estudos com Servlets e JSP''' iniciados. ~> [[RuiPimentel | Rui Pimentel]]
 
'''''28/08/2010, Sábado''''': '''estudos com Servlets e JSP''' iniciados. ~> [[RuiPimentel | Rui Pimentel]]
 +
 +
'''''30/08/2010, Segunda-feira''''': '''Conteúdo adicionado na wiki:''' ~> Análise do mercado de pet-serviços (com links externos para consulta) + links para projeções e defesa do projeto ~> [[Renan Taizo]]
 +
 +
'''''31/08/2010, Terça-feira''''': '''reunião na biblioteca''' com os 4 integrantes.
 +
 +
'''''31/08/2010, Terça-feira''''': início da abstração das '''[[2010bEquipe01: Telas do Sistema | telas do sistema]]'''.
 +
 +
'''''01/09/2010, Quarta-feira''''': '''estudo com HTML e CSS''' ~> [[Claudio Toledo | Claudio Toledo]]
 +
 +
'''''05/09/2010, Domingo''''': Finalmente! '''Web-server de casa e acesso remoto configurados''' com sucesso!!! [[Renan Taizo | Renan Taizo]]
 +
 +
'''''09/09/2010, Quinta-feira''''': '''Pré-monografia''' iniciada! ~> [[Renan Taizo | Renan Taizo]]
 +
 +
'''''09/09/2010, Quinta-feira''''': Estudos com '''TeX''' ~> [[RuiPimentel | Rui Pimentel]]
 +
 +
'''''15/09/2010, Quarta-feira''''': '''Monografia concluída''' com sucesso! ~> [[Renan Taizo| Renan Taizo]]
 +
 +
'''''16/09/2010, Quinta-feira''''': '''Inicio do desenvolvimento''' do sistema: Três principais modelos de cadastro!~> [[Renan Taizo | Renan Taizo]]
 +
 +
'''''17/09/2010, Sexta-feira''''': '''Revivendo a wiki'''.. depois de muito trabalho, estamos de volta! ~> [[Renan Taizo | Renan Taizo]]
 +
 +
'''''04/10/2010, Segunda-feira''''': '''Preparando a apresentação de slides''' para quarta-feira. ~> [[RuiPimentel | Rui Pimentel]]
 +
 +
'''''08/11/2010, Segunda-feira''''': '''Atualização Completa da Wiki'''~> [[Claudio Toledo | Claudio Toledo]]

Edição atual tal como 20h35min de 8 de novembro de 2010

Atenção! Comentários e perguntas devem ser concentrados na página de discussão!


Equipe: Bruno Câmpera | Claudio Toledo Filho | Renan Taizo Nakashima | Rui Pimentel Leite

Tabela de conteúdo

Gerador de Sistemas Online para Cadastros Comerciais - ADMINISTRI!

A falta de um software livre que auxilie na gestão de ambientes comerciais pela Internet, que possa vir a ser usado como incentivo para micro e pequenos empresários de qualquer setor da economia, visando inserir de forma simples a informatização comercial básica. Além disso, acreditamos no uso pessoal e comercial de tecnologias da informação — principalmente as livres — para o avanço tecnológico nacional e regional.

Objetivos

Conceber por completo o projeto ADMINISTRI!: “Ferramenta para criação de sistemas de cadastros para micro e pequenos negócios”, gerando como exemplo um programa para o setor de Pet-Serviços. Tanto a ferramenta quanto o sistema exemplo serão distribuídos livremente a quaisquer interessados, sendo ambos possíveis de se modificar, para que possam 7 ser compatíveis com qualquer outro sistema comercial. A concepção de ambos os sistemas será usada como atribuição de nota parcial na disciplina de Oficinas de Integração I.

Vantagens no uso da tecnologia da informação nos negócios

  • Automação de tarefas rotineiras;
  • Melhoria de controle interno das informações;
  • Melhoria no atendimento aos clientes;
  • Possibilidade de prever problemas financeiros mais cedo;
  • Melhoria no processo produtivo;
  • Aumento de produtividade e competitividade

Tecnologias livres usadas na comcepção do projeto

Arquitetura Cliente/Servidor

Um servidor é um sistema computacional capaz de processar solicitações de recursos e devolver respostas de maneira a disponibilizar arquivos e serviços — por exemplo correio eletrônico, arquivos, fax, impressão, DNS, proxy, FTP, entre muitos outros. Nesta descrição, a palavra “servidor” pode se referir tanto à máquina (computador) de maneira genérica, quanto ao seu aplicativo (software), que efetivamente processa a solicitação do cliente (usuário) do serviço / recurso.

Em geral, uma interface cliente (ou simplesmente cliente) é uma interface gráfica usada por um usuário para visualizar e também enviar dados a um servidor. É a interface que faz requisições (pedidos) ao servidor e apresenta a resposta de maneira visualmente agradável. Esse sistema pedido-resposta é mediado por um protocolo de comunicação, amplamente usado, o HTTP.

Protocolo HTTP

HyperText Transfer Protocol (HTTP) é um protocolo de comunicação com propriedades específicas para web. É através desse protocolo que se faz possível a comunicação de um servidor com um cliente.

Métodos HTTP são como formatos de solicitações; para cada tipo, certos parâmetros se fazem necessários e, portanto, devem ser especificados na request HTTP. No total, existem oito métodos, mas os dois principais são: GET e POST.

O método GET é o mais simples usado nas comunicações HTTP. É responsável por solicitar do servidor um recurso qualquer, que é devolvido na forma de uma resposta HTTP.

O método POST é mais complexo na comunicação para envio de dados para o servidor, para que estes possam ser processados. Ao contrário do GET, esse método pode ser usado para transmissão de dados sigilosos com relativa segurança, pois as informações submetidas são listadas no corpo da request (juntamente com especificações sobre codificação e formato desejado de resposta) sem que fiquem explícitas no endereço da página (URL).

Linguagem HTML

Nos protocolos de comunicação HTTP, o cliente geralmente solicita páginas HTML e o servidor as envia. HTML significa HyperText Markup Language (Linguagem para Marcação de Hipertexto), e são essas páginas HTML que conhecemos como páginas da Internet. São elas, por exemplo, que nos disponibilizam formulários com campos de usuário e senha para nos autenticarmos em serviços, especificam onde começa e termina um título ou outro elemento dentro de um texto, como um hyperlink, entre outras funções.

Essa linguagem de marcação é baseada em etiquetas (<tags>), e possui limitações com relação ao resultado exibido. Uma página HTML é exibida sempre da mesma maneira enquanto não for modificada, e por padrão não possui recursos interativos (aplicativos inseridos dentro do contexto da página, como jogos por exemplo). Mesmo assim, o HTML permite que esses elementos sejam construídos em Flash, Java, Javascript e diversas outras linguagens e então inseridos dentro das páginas.

Java e JavaScript

Em computação, uma linguagem é basicamente um conjunto de palavras-chave organizadas em torno de regras com o objetivo de fornecer instruções de processamento para uma máquina.

De acordo com as necessidades dos programadores ou das aplicações, surgiram alguns tipos de linguagens, cada uma com uma finalidade específica. Algumas, como o XML (de cuja família se originou o HTML), dedicam-se a marcar texto de maneira a permitir que softwares consigam processar e extrair informações a partir do conteúdo dos documentos gerados com ela. Outras, como C e Java, geram programas de computador capazes de atender a praticamente todas as finalidades após a compilação de seus códigos (isto é, após a transformação do código-fonte em um arquivo executável). Programas escritos em linguagem Java podem ou não possuir interface gráfica, e da mesma maneira, podem ou não ser controlados diretamente pelo usuário.

Ainda, existem linguagens como o Javascript, que permitem a criação de pequenos programas (geralmente chamados de “scripts”) dentro de páginas web. Devido à limitada capacidade que o HTML tem de processar conteúdo (o que se deve principalmente ao fato de esta ser uma linguagem de marcação e não de programação), e a partir da necessidade de introduzir conteúdo dinâmico na Internet, surgiram linguagens com a habilidade de alterar elementos das páginas web que já estivessem abertas, sem alterar o código-fonte original das mesmas — ou seja, páginas que em teoria são estáticas (não são geradas “sob encomenda” para o usuário) acabam ganhando autonomia para se modificarem durante sua visualização no próprio browser do usuário. Cabe ressaltar que scripts não são compilados (não geram arquivos executáveis), e por isso dependem do processamento de navegadores de Internet. Ainda, esse tipo de código usa HTML como interface gráfica.

Servlets e JSP

Um servlet é um aplicativo que roda no lado servidor, atuando como um controlador de requisições e respostas. Sua principal função é receber cada request HTTP (já transformada em um objeto Java pelo container ) e encaminhá-las para os modelos (classes Java chamadas de models) corretos realizarem o processamento das informações recebidas. Caso os modelos retornem dados que precisem ser mostrados ao usuário, o servlet encaminha então esses dados para a página JSP (Java Server Page) correspondente, que possui um template (layout) HTML para exibição das informações. O JSP é uma linguagem baseada em Java, que roda dentro de uma página web no lado servidor.

Banco de Dados

Um banco de dados é essencialmente um espaço de memória persistente reservado para armazenamento organizado de informações de maneira a permitir consulta a elas. Geralmente, os bancos de dados são organizados em tabelas onde registros semelhantes são agrupados. Quando um sistema utiliza um banco, ele deve garantir que os dados não sejam adicionados nas tabelas erradas.

Relacionamentos entre tabelas são importantes para aumentar o grau de complexidade dos sistemas, permitindo representações mais fiéis do domínio do problema estudado dentro da programação do software que será utilizado para resolvê-lo.

A adição ou consulta de dados se dá através de uma linguagem de consulta (sendo a mais conhecida a SQL — Structured Query Language, ou Linguagem de Consulta Estruturada). No nosso exemplo genérico, se o banco de dados suportasse consultas SQL e quiséssemos uma lista de todos os nomes de cachorros cadastrados, utilizaríamos a consulta:

SELECT Nome FROM Cachorros

Se quiséssemos apenas os cachorros de José, por exemplo:

SELECT Nome FROM Cachorros WHERE Código do Dono = 1

Como o tamanho dos bancos utilizados na realidade é geralmente maior e quase sempre estão relacionados a programas complexos, são necessárias ferramentas que auxiliem na administração deles — ferramentas estas chamadas de Sistemas Gerenciadores de Bancos de Dados (SGBD).

O SGBD livre e gratuito que será utilizado neste projeto será o MySQL, que implementa um Banco de Dados com suporte às consultas por Structured Query Language.

Estrutura do Sistema

Model View Control - MVC

Nosso sistema implementa um padrão de arquitetura conhecido como Model - View - Controller (MVC). Esse padrão tem como objetivo separar a “lógica de negócio” da “lógica de apresentação”, permitindo o desenvolvimento, teste e manutenção isolado de ambos.

Ao receber uma solicitação HTTP de um cliente, o container (Tomcat, por exemplo) transforma essa solicitação em um objeto (Java), e o envia para o Controller, que é representado pelos servlets. O Controller é responsável por processar esse objeto recebido pelo container. Ele retira da solicitação do usuário os dados de entrada e interpreta o que eles significam para o modelo. Obriga o modelo a se atualizar e disponibiliza o estado do novo modelo para o “View”, que é representado pelos JSPs.

O modelo contém a lógica e o estado do sistema. Em outras palavras, ele conhece as regras para obtenção e atualização do estado. O modelo é o unico que se comunica com um banco de dados.

A View é responsável pela apresentação. Ela recebe o estado do modelo do controlador. Também é a parte que recebe os dados de entrada do usuário que volta ao controlador.

Registros

25/08/2010, Quarta-feira: emprestados dois exemplares de "Use a cabeça! : Servlets & JSP" da biblioteca. ~> Rui Pimentel e Renan Taizo

28/08/2010, Sábado: conteúdo da Wiki criado. ~> Rui Pimentel

28/08/2010, Sábado: estudos com HTML/CSS iniciados. Falta definir layout do client! ~> Renan Taizo

28/08/2010, Sábado: estudos com Servlets e JSP iniciados. ~> Rui Pimentel

30/08/2010, Segunda-feira: Conteúdo adicionado na wiki: ~> Análise do mercado de pet-serviços (com links externos para consulta) + links para projeções e defesa do projeto ~> Renan Taizo

31/08/2010, Terça-feira: reunião na biblioteca com os 4 integrantes.

31/08/2010, Terça-feira: início da abstração das telas do sistema.

01/09/2010, Quarta-feira: estudo com HTML e CSS ~> Claudio Toledo

05/09/2010, Domingo: Finalmente! Web-server de casa e acesso remoto configurados com sucesso!!! Renan Taizo

09/09/2010, Quinta-feira: Pré-monografia iniciada! ~> Renan Taizo

09/09/2010, Quinta-feira: Estudos com TeX ~> Rui Pimentel

15/09/2010, Quarta-feira: Monografia concluída com sucesso! ~> Renan Taizo

16/09/2010, Quinta-feira: Inicio do desenvolvimento do sistema: Três principais modelos de cadastro!~> Renan Taizo

17/09/2010, Sexta-feira: Revivendo a wiki.. depois de muito trabalho, estamos de volta! ~> Renan Taizo

04/10/2010, Segunda-feira: Preparando a apresentação de slides para quarta-feira. ~> Rui Pimentel

08/11/2010, Segunda-feira: Atualização Completa da Wiki~> Claudio Toledo

Ferramentas pessoais