Atividade


Projeto Maternidade

Começei a participar do Projeto Maternidade no mês de agosto. É um projeto curto mas bastante trabalhoso, envolvendo montagem e instalação de grande números de computadores ligados em rede com fibras óticas num conjunto de 5 andares. No servidor, está prevista a instalação de aplicativos de Enterprise JavaBeans que utilizará banco de dados que permitem registrar todas as informações do paciente da Maternidade.

Cada andar possui os vários pontos terminais de conexões de computadores distribuídos em cada setor. Para cada setor, será instalado um certo número de computadores de acordo com suas necessidades, sendo que um computador consegue comunicar com os demais do conjunto maternidade, inclusive os do setor de alimentação. O funcionamento da comunicação entre computadores é bem semelhante com a arquitetura Common Object Request Broker Architecture (CORBA) que podem comunicar localmente ou com todos computadores instalados na maternidade através do uso de um "Naming Service" específico.

Este projeto contará com a participação do membro do Object Management Group e Latino Americano do CORBAMED, entidade internacional (o braço da área da saúde do OMG). Eles irão trabalhar neste projeto, colaborando como consultores. Todos os códigos a serem desenvolvidos serão utilizado sob a licença GNU.

Fizemos a visita da futura Maternidade, que fica em Guarulhos, junto com o coordenador do projeto e da maternidade. Passando em todos os andares, apresentaram-nos os serviços oferecidos em cada setor. Em seguida, deram uma abordagem dos requisitos e materiais técnicos disponíveis nas páginas de Internet:

Assistimos também uma palestra sobre Unified Modeling Language (UML), que é destinada a uniformizar, segundo os Engenheiros de Software e Analistas de Sistemas, os símbolos utilizados para se modelar entidades, relacionamentos, comportamentos, etc. A palestra foi dada na própria empresa contratada por Edmundo, diretor da área de informática da WebSee. Na palestra, chegamos a discutir o treinamento do curso UML administrado pelo palestrante e também os gastos que serão pagos por conta de Edmundo.

O prazo estabelecido inicialmente para o término de serviços prestados foi de cinco mês.

Não sei da qual circunstância, mas parece-me que o projeto ficou parado desde final de agosto/2000 e o curso de UML não será mais levado adiante. Talvez tenha sido a falta de negociação ou então a falta de verbas.

Se esse projeto fosse adiante, as disciplinas abaixo oferecidas no BCC seriam como pré-requisitos do projeto:



Projeto Dinheiro Grátis

Com a paralisação temporária do Projeto Maternidade, fui transferido ao Projeto Dinheiro Grátis.

  • Especificação do problema
  • Criação de uma homepage Dinheiro Grátis conforme as requisições do cliente:

    - Permitir uma maneira em que as empresas forneçam cupons de descontos na Internet. Podem ser oferecidos descontos em lojas e na Web. Assim, os usuários cadastrados poderão imprimir os cupons e adquirir os descontos.

    - Os usuários poderão fazer buscas por estado (no momento só está cadastrado o Estado de São Paulo e, futuramente, haverá possibilidade de se fazer a busca por outros estados), cidade, categoria (restaurante, esporte, etc) e sub-categoria (restaurante italiano, academia, etc). A busca também pode ser refinada por bairros, shoppings, palavras-chave, somente na Web, Lojas ou em ambos.

    - As informações sobre as preferências do usuário serão coletadas para que posteriormente possa-se oferecer cupons personalizados.

    - Os usuários ganharão pontos ao efetuarem determinadas ações e um ranking de pontuação deverá ser atualizado sempre. As ações são: impressão de cupons, preenchimento de dados cadastrais e resposta de questinários.

    - Os dez cupons mais impressos nos últimos 30 dias deverão ser listados de forma destacada.

    - Ao indicar uma empresa para o site, os usuários ganharão uma certa quantia de dinheiro. O usuário deverá ser capaz de visualizar o seu extrato atual, isto é, quanto e quando ganhou ou resgatou dinheiro.

    - Os usuários também poderão sugerir descontos.

    - As empresas poderão veicular descontos na Web ou em Lojas, veicular Banners, verificar os cupons/banners cadastrados e fazer a compra, para isso deve ser apresentado um relatório de quantos itens (cupom/banner) a empresa comprou, seus respectivos preços e o valor total. A empresa também deve ser capaz de manipular sua compra, isto é, retirar ou inserir itens antes de fecha-lá.

    O prazo foi estipulado, inicialmente, para a data de entrega do projeto de três meses, que foi estabelecido pelo presidente da empresa que não tem as mínimas noções de informática e programação. Porém, devido a falta de conhecimentos e experiências, tanto na utilização das ferramentas de novas tecnologias quanto instalações e configurações de software na rede interna e externa, o prazo foi prorrogado a um tempo indeterminado. Outro fator importante, que contribuiu para a prorrogação do projeto, foi o surgimento de novas idéias do cliente e as novas alterações da descrição durante o andamento.

    Para visualizar o produto final, que já está no ar, basta entrar na página http://www.dinheirogratis.com.br

  • Como fazer e quais ferramentas?
  • O projeto Dinheiro Grátis não é muito extenso e complexo, porém trabalhoso. Ele foi inicializado em maio de 2000.

    Antes de exercer meu estágio na empresa WebSee, o projeto foi desenvolvido por uma equipe de dois programadores (dois colegas da faculdade, Thiago Lourençoni e Rachel de Paula) e dois designers sob a orientação do diretor da área de informática da empresa.

    Como é uma empresa nova no mercado, sem adotação de muitas metodologias consistentes, o projeto foi desenvolvido sem aplicação das técnicas de conceitos de Engenharia de Software. A equipe de trabalho desenvolveu muito rapidamente o projeto, uma vez que o prazo de entrega era bastante curto, mas a pressa era tanta que nem sequer haviam compreendido totalmente as requisições feitas pelo cliente e, além disso, ficaram perdidos por falta de conhecimentos e experiências sobre o funcionamento das ferramentas das novas tecnologias propostas. Inicialmente, foi pedido pelo diretor da área de informática a estudar RFC de LDAP (Lightweight directory Access Protocol) para utilizar no lugar da busca a ser realizada. Com o decorrer do tempo, os programadores ainda tiveram problemas de RFC's, tanto no uso quanto na configuração de LDAP.

    Mais tarde, depois de muitas batalhas, perceberam que essa ferramenta não ajudaria praticamente em nada para se alcançar os objetivos. Desde então, passaram a utilizar JNDI (Java Naming Directory Interface) para substituir LDAP. JNDI é uma interface Java que permite um nome de diretório ou arquivo associar numa tabela de contexto. Seu principal desempenho é criar, manipular e remover diretórios ou arquivos de forma mais otimizada.

    Escolharam a utilização de Java por ser uma linguagem mais familiar aos programdores e, por outro lado, podemos encontrar nela várias ferramentas, rotinas e bibliotecas prontas na Internet. Com isso, ajudaram muito para o término do projeto dentro do prazo.

    Outras ferramentas utilizaram para proseguir o projeto:

    [1] Java Servlet

    A escolha da interface Java Servlet nos permite a construção de páginas HTML dinâmica de acordo com a requisição do cliente. Essa ferramenta explora o lado servidor do Java. É um modelo de ping-pong, ou melhor solicitação-resposta, comumente utilizado e no qual navegadores da World Wide Web comunicam-se com servidores da World Wide Web a medida que os usuários navegam na Internet. Quando um usuário seleciona um site da Web para navegar por um navegator da Web (isto é, aplicativo do cliente), uma solicitação é enviada junto com formulário HTML com os personalizados do cliente para o servidor da Web apropriado (isto é, o aplicativo servidor) que normalmente responde ao cliente enviando a pagina HTML apropriada da Web para ser exibida pelo navegador do cliente. Neste modelo de rede, a comunicação entre o cliente e o servidor é tratada automaticamente pela Java Servlet.

    Incluem também o tratamento de uma solicitacao HTTP GET quando o cliente quer uma página , tratando de uma solicitação HTTP POST quando o cliente envia os dados ao servifor e monitoramento de sessão (que permite àqueles que desenvolvem as aplicações de suite da Web manter informações específicas sobre o cliente como itens em um carrinho de compras da Web ou preferências pessoais de site da Web).

    [2] Perl

    Os códigos de HTML são produzidos inicialmente pelos designers, e depois passados aos programadores para que possam incluir nos códigos de JavaServlet. Porém, é necessário acrescentar um tipo "printf" em todas as lihas de HTML para funcionar no Servlets. Como os códigos em HTML, normalmente, resultam em muitas linhas, e numa sequência de códigos de forma ilegível, decidiram então desenvolver um script em Perl para acrescentar um "printf" em cada linha de HTML.

    Exemplo:

    Código HTML:
          ....
          <img src="http://www.dinheirogratis.com.br/imagem.jpg">
          <P>Hello World!<P>
          ....

    Código JavaServlet:
          ....
          void service (HttpServletRequest request, HttpServletResponse) {
                PrintWriter printf = responde.getWriter();
                ...
                 printf("<img src=\"http://www.dinheirogratis.com.br/imagem.jpg\">");
                 printf("<P>Hello World!<P>");
                ...
          }
          ....

    [2] JSP

    Tiveram bastante problemas com Servlet. Servlet é uma ferramenta que descreve e monta todos os códigos em HTML de acordo com as requisições do cliente. Tudo significa que, qualquer modificação feita no visual da página gerada automaticamente, implicará em reescrever os códigos na maioria das vezes. E, como muitas vezes, as alterações feitas pelos designers e pelo diretor da área de informática sem aviso prévio, implicará então em muitas dores de cabeça para os programadores.

    Para evitar esse tipo de problema, adotaram o uso de outra ferramenta JSP (Java Server Page), que permite misturar os códigos HTML e JavaServlet. A única diferença entre HTML e JavaServlet são os "tags".

    Os "tags" como <% .... %>   <%! .... %> e <%@ ... %> são tipicamente pertinentes aos cógigos JSP e os demais aos HTML. A idéia da ferramenta JSP é semelhante ao ASP (Active Server Page) que apresenta como uma opção para fazer a divisão entre código de VBScript e web design.

    [3] Java Beans

    Outro problema surgido logo depois do abandono de JavaServlet: códigos de Servlet que já foram escritos não poderão ser mais reutilizados por não encontrarem uma solução para "importar" os códigos, como por exemplo, rotinas de manipulação de acesso de Banco de Dados, que utilizará para cada requisição do usuário da Internet.

    Através das pesquisas na Internet e dos colegas da faculdade, a melhor solução para esse problema é transformar essas rotinas em forma de componentes utilizando a arquitetura de JavaBean.

    JavaBeans é um empacotamento de classes que você define como componentes de software reutilizáveis. os JavaBeans podem ser manipulados e personalizados graficamente em vários ambientes de desenvolvimento integrados de Java. No caso, basta empacotar um aplicativo como um arquivo Java Archive (JAR) de modo que possa executar um aplicativo simplesmente dando um nome do arquivo em seu gerenciador de arquivo sistema.

    [4] Cookie

    O uso de Cookie foi pedido pelo clinte de tal forma consegue identificar o usuário já cadastrado quando acessar a página desse projeto. Se for um usuário reconhecido, então aparecerá uma mensagem de saudação com o nome do usuário no Browser. Caso contrário, uma mensagem simples.

    A técnica do uso de Cookie não foi difícil, logo conseguiram fazer com rapidez e sem problemas.

    [5] mySQL

    Decidiram o uso de mySQL, ao invés de SQLServer ou outros produtos conhecidos no mercado, por ser um software extremamente barato, compatível com Java e que talvez, nós programadores, já tenhamos visto na disciplina Banco de Dados, oferecida pelo curso de BCC do IME. Talvez, por essa razão, não tenham sentido sérias dificuldades.

    [6] JDBC

    JDBC (Java Database Connectivity) é uma interface utilizada para fazer a conexão com banco de dados.

    Para cada requisição do usuário, no código JavaServlet ou JSP, será estabelecida um driver para conexão de banco de dados, para que possamos acessar e manipular os dados da base e realizar as buscas.

    Não tiveram muitos problemas com JDBC, pois reutilizaram os códigos já implementados no projeto da disciplina Banco de Dados do IME.

    [7] PHP

    PHP (Programming Hypertext Preprocessor) é uma única ferramenta com pouco uso nesse projeto. Utilizaram-o somente para o envio de e-mails automáticos aos usuários, no caso de esquecerem a senha de acesso e ao dono do site, sugestões, dúvidas e informações.

    O comando para envio de e-mail em PHP é bastante simples, que é bem parecido com o comando "mail" do shell em LINUX.

    [8] JavaScript

    JavaScript é mais utilizado nesse projeto para verificar a validação dos dados digitados pelos usuários e a reconfirmação da remoção de base de dados.

    [9] phpMyAdmim

    phpMyAdmin é ferramenta destinada à adiministração de MySQL rodando em qualquer Browser.

    Manipulações de phpMyAdmim em interface gráfica:

    É uma ferramenta razoavelmente fácil para quem não conhece SQL. A empresa disponibiliza essa ferramenta ao cliente do projeto para que ele possa visualizar, acompanhar e realizar consultas ao próprio banco de dados.

    ...

  • Continuidade do projeto
  • Um dos programadores foi afastado do projeto, justamente no mesmo mês que entrei no equipe. Assumi o lugar dele, e fiquei encarregado de estudar as ferramentas utilizadas e os códigos desenvolvidos. Atualmente, sou um dos reponsáveis do projeto Dinheiro Grátis. Qualquer problema sobre a programação dele é redirecionado para mim ou Rachel.

    Estava quase na fase final do projeto, faltando, no máximo, um mês de serviço, tanto no design quanto na programação. Porém, foi decidido pelo cliente a expansão de novos serviços na sua homepage. Então, foi redefinido o prazo de entrega.

  • Novos serviços adquiridos
  • Depois de surgimento de novos concorrentes de website no mercado, o cliente sentir a necessidade de crescer e estabelecer novos serviços ou melhorar o visual da página.

    As disciplinas abaixo oferecidas no curso de BCC são as mais relevantes ao projeto Dinheiro Grátis:



    Projeto POPBanco

    O projeto PopBanco é um serviço novo da empresa que foi inicializado no final do mês de novembro 2000. É um projeto muito enorme e bastante trabalhoso que conta com a participação de quase todos funcionários da empresa.

    Atualmente (dez/2000) o projeto está na fase de planejamento e divisão de tarefas. Cada participante se encarrega uma ou duas partes do projeto e procure utilizar as ferramentas mais adequadas e fazer uma estimação de tempo necessário para a entrega.

  • Objetivo
  • Desenvolvimento de um projeto de e-business objetivando a captura de comunidade, transações de bens de consumo, serviços e venda de produtos financeiros.

  • Descrição do projeto
  • - Os serviços no portal PopBanco será voltado preponderantemente às classes C, D e E. O projeto contempla a instalação de máquinas de atendimento em estabelecimentos comerciais, notadamente padarias, sendo que o referido portal será acessado destes estabelecimentos.

    - uso de conceitos avançados em programação e gestão de banco de dados, cuja funcionalidade maior será a capacidade de escalabilidade de usuários e parceiros de e-Commerce. O portal será desenvolvido utilizando-se uma ferramenta de management content o que possibilitará a atualização diretamente pelo servidor central.

    - No ambiente bancário, será estimulado a adesão dos usuários aos serviços e produtos financeiros, notadamente no tocante a oferta de crédito.

    - Disponibiliza uma ferramenta de e-mail escalável a ser implantada nos servidores e administrada por WebSee.

  • Equipe de trabalho
  • Para o desenvolvimento das atividades relatadas estamos disponibilizando uma equipe composta de:

  • Estimativa inicial de entrega
  • A presente proposta considerará a utilização total de 1.200 horas de trabalho da referida equipe para a realização dos serviços mencionados.

  • Minha Responsabilidade
  • Sou um dos três programadores / administradores que encarregam a parte de ferramenta de e-mail. Escolhemos o uso de JavaMail para construição de uma página webmail que suporta a funcionalidade de captura e attachment de mensagens de voz e imagem de cada usuário.

    Como não chegamos a parte de programção, talvez as disciplinas abaixo ajudariam bastente ao projeto:





    [ apresentação | empresa | objetivo | cronograma | atividade | relatório | conclusão | bibliografia ]



    Last Modified: