MAC0499 - Trabalho de Formatura Supervisionado

 

Monografia

Aluno: Marcelo Kenzo Yamada
Orientador: Prof. Alfredo Goldman vel Lejbman
Tipo de trabalho: IC


Primeira Parte

Introdução
Natureza da organização e da atividade
Motivação
Objetivos do trabalho
Definição/especificação do problema
Forma de organização da equipe de trabalho e atribuição de responsabilidades
Estimativa inicial de prazos e do andamento do projeto
Atividades realizadas
Métricas post-mortem do andamento do projeto
Tópicos/teorias/sistemas estudados ou desenvolvidos
    Treinamentos
    Ferramentas e técnicas utilizadas
    Técnicas relevantes para o problema em questão, mas que não foram exploradas por falta de tempo, recursos humanos ou apoio da organização
Forma de acompanhamento utilizada pelo gerente/administrador do projeto
Conclusão
Bibliografia utilizada

Segunda Parte

Desafios e frustrações encontrados
Lista das disciplinas cursadas no BCC mais relevantes para o projeto
Interação com membros da equipe que tenham agido como mentores do trabalho
Diferenças notadas entre a forma de cooperação com colegas do BCC nas tarefas em grupo das disciplinas e a forma de trabalho conjunto no laboratório
Observações sobre a aplicação de conceitos estudados nos cursos no contexto prático de aplicações reais
Se fosse continuar atuando na área do projeto, que passos tomaria para aprimorar os conhecimentos técnicos/metodológicos/comerciais/científicos/etc relevantes para esta atividade



Primeira Parte

Introdução

O trabalho é sobre a IC (iniciação científica) com bolsa do CNPq realizada de maio de 1990 a fevereiro de 1992, no Grupo de Computação Gráfica do LSI (Laboratório de Sistemas Integráveis da Escola Politécnica da Universidade de São Paulo), quando foi desenvolvido um sistema de computação gráfica para a geração de imagens tridimensionais sob a orientação do Professor João Antonio Zuffo e co-orientação do Professor Marcelo K. Zuffo.

Natureza da organização e da atividade

O laboratório faz parte da faculdade de engenharia elétrica da Escola Politécnica da USP, e portanto visa a pesquisa, o desenvolvimento de conhecimento científico, e a preparação e introdução de seus alunos à pesquisa acadêmica. O projeto foi exclusivamente de software, visando a integração com sistemas de hardware que estavam sendo desenvolvidos no laboratório naquela época.

Por se tratar de um projeto exclusivamente de software e desenvolvido a partir do zero não houve dependências significativas por recursos materiais ou resultados externos.

Motivação

A principal motivação para o desenvolvimento de um pacote de software desta natureza era o domínio do código fonte. Na época existiam pacotes prontos para ambientes de ponta (estações gráficas de alto desempenho), entretanto não eram abertos. Estavam sendo desenvolvidos projetos de hardware no laboratório (LSI) sobre paralelização maciça (na época, dezenas de processadores fortemente acoplados), e uma das principais aplicações em mente era a paralelização do processamento de imagens, onde se visava eventualmente alcançar o processamento em tempo real.

Objetivos do trabalho

O objetivo era naturalmente ter ao final um pacote de software totalmente desenvolvido no laboratório que pudesse ser rapidamente otimizado para diferentes plataformas de hardware, com o intuito claro de usar o conjunto como demonstração de poder de computação.

Definição/especificação do problema


Forma de organização da equipe de trabalho e atribuição de responsabilidades

<>O projeto foi desenvolvido individualmente sob a supervisão do orientador, o que eliminou diversas dificuldades pertinentes a sincronização de membros da equipe e divergências tanto técnicas como não, e pelo mesmo motivo a distribuição do trabalho foi trivial. Anterior ao início do projeto houveram reuniões onde o orientador averiguou a adequação do estagiário ao perfil desejado. O estagiário já estava desenvolvendo por conta própria sistemas semelhantes para uso pessoal, e este sincronismo de interesses foi determinante para o fluxo quase ideal no ritmo de desenvolvimento ao longo de todo o projeto.

Em determinadas ocasiões, entretanto, alguns resultados do trabalho foram postos a prova, quando dados gerados pelo software em desenvolvimento foram usados por outros desenvolvedores do laboratório para apresentações em eventos organizados pelo laboratório ou onde o mesmo estava presente, com modelos sendo gerados na hora e alimentados em geradores de images de alta definição para demonstração em stands. Nestas ocasiões a não-conformidade ou não-corretude das saídas geradas seria vergonhosa para o laboratório como um todo.

Estimativa inicial de prazos e do andamento do projeto

Teve-se como meta seguir o seguinte cronograma:



Maio/1990
  • Estudo de bibliografia.
Junho/1990
  • Estudo de bibliografia.
Julho/1990
  • Estudo de bibliografia;
  • Especificação do modelador.
Agosto/1990
  • Implementação do modelador.
Setembro/1990
  • Implementação do modelador.
Outubro/1990
  • Implementação do modelador.
Novembro/1990
  • Implementação do modelador.
Dezembro/1990
  • Testes do modelador e ajustes/correções.
Janeiro/1991
  • Testes do modelador e ajustes/correções.
Fevereiro/1991
  • Confecção de relatórios dos trabalhos realizados em 1990.
Março/1991
  • Estudo de bibliografia.
Abril/1991
  • Estudo de bibliografia;
  • Especificação do editor de cenas;
  • Ajustes na implementação do modelador para acomodar eventuais mudanças.
Maio/1991
  • Implementação do editor de cenas.
Junho/1991
  • Implementação do editor de cenas.
Julho/1991
  • Implementação do editor de cenas.
Agosto/1991
  • Implementação do editor de cenas.
Setembro/1991
  • Implementação do editor de cenas.
Outubro/1991
  • Testes do sistema e ajustes/correções.
Novembro/1991
  • Implementação das funções de animação (possivelmente).
Dezembro/1991
  • Implementação das funções de animação (possivelmente).
Janeiro/1992
  • Implementação das funções de animação (possivelmente);
  • Testes e ajustes/correções.
Fevereiro/1992
  • Confecção de relatórios finais dos trabalhos realizados.


Atividades realizadas

Resumo das atividades realizadas durante o projeto:



Maio/1990
  • Estudo de bibliografia.
Junho/1990
  • Estudo de bibliografia.
Julho/1990
  • Estudo de bibliografia;
  • Especificação do modelador.
Agosto/1990
  • Implementação do modelador.
Setembro/1990
  • Implementação do modelador.
Outubro/1990
  • Implementação do modelador.
Novembro/1990
  • Implementação do modelador.
Dezembro/1990
  • Implementação do modelador.
Janeiro/1991
  • Implementação do modelador;
  • Testes com a geração de imagens renderizadas a partir de sólidos modelados com o sistema KAD (nome dado ao sistema projetado).
Fevereiro/1991
  • Confecção de relatórios dos trabalhos realizados em 1990.
Março/1991
  • Ajustes na implementação do modelador;
  • Especificação do editor de cenas.
Abril/1991
  • Ajustes na implementação do modelador;
  • Especificação do editor de cenas.
Maio/1991
  • Implementação do editor de cenas.
Junho/1991
  • Implementação do editor de cenas.
Julho/1991
  • Implementação do editor de cenas.
Agosto/1991
  • Implementação do editor de cenas.
Setembro/1991
  • Implementação do editor de cenas.
Outubro/1991
  • Testes do sistema.
Novembro/1991
  • Estudo de pacotes de modelagem, renderização e animação para o então recém adquirido supercomputador Silicon Graphics (IRIS 4D/480VGX).
Dezembro/1991
  • Estudo de pacotes de modelagem, renderização e animação para o então recém adquirido supercomputador Silicon Graphics (IRIS 4D/480VGX).
Janeiro/1992
  • Estudo de pacotes de modelagem, renderização e animação para o então recém adquirido supercomputador Silicon Graphics (IRIS 4D/480VGX).
Fevereiro/1992
  • Confecção de relatórios finais dos trabalhos realizados.


Métricas post-mortem do andamento do projeto

Como pode-se observar na duas seções anteriores, o cronograma inicial foi seguido praticamente de ponta a ponta. Houve pequenos atrasos nas fases de implementação do modelador quando ainda havia menos experiência tanto de programação como em fazer estimativas por parte do desenvolvedor, mas a seqüência do trabalho mostra que essas deficiências foram superadas durante o processo.

Por ter cumprido com o cronograma proposto inicialmente até a mudança de foco em novembro de 1991 e ter produzido o pacote com o modelador de sólidos e o editor de cenas dentro do prazo previsto pode-se afirmar que o projeto foi concluído com sucesso.

Tópicos/teorias/sistemas estudados ou desenvolvidos


Treinamentos


Ferramentas e técnicas utilizadas


Técnicas relevantes para o problema em questão, mas que não foram exploradas por falta de tempo, recursos humanos ou apoio da organização


Forma de acompanhamento utilizada pelo gerente/administrador do projeto

Eram feitas reuniões a cada dois a três meses para que o orientador pudesse verificar se o andamento do projeto estava de acordo com o cronograma previsto. Não houveram problemas nem grandes divergências ao longo de todo o processo, e por isso o acompanhamento em si tomou pouco tempo (diversas fatias muito pequenas de tempo). Havia um controle de horas trabalhadas por semana, que era flexível como para todos os demais estagiários do laboratório em função de épocas de provas e finais de semestre. Em épocas de férias escolares ou academicamente menos complicadas ao longo dos semestres era comum se trabalhar bem mais do que o estabelecido, assim como em épocas mais complicadas em termos acadêmicos era comum descontar dessas horas acumuladas para dedicar mais tempo aos estudos universitários, como hoje é conhecido esse sistema em diversas empresas pelo nome de banco de horas.

Conclusão

Ao final do período da IC o software (com exceção do módulo de animação) estava pronto e funcional. Era possível modelar sólidos e compor cenas tridimensionais em wireframe, assim como exportar ambos para programas de visualização existentes nas estações gráficas tanto da Sun como do então recém adquirido supercomputador gráfico da Silicon Graphics. Com a aquisição do supercomputador, os últimos meses da IC foram usados para o estudo e familiarização com este e alguns dos diversos pacotes gráficos disponíveis.

O projeto foi dado como concluído com sucesso, e além da grande quantidade de conhecimento técnico adquirida ao longo do processo houve o aprendizado com a participação em um projeto de maior duração onde é exigido maior grau de planejamento e comprometimento, o convívio com outros membros da comunidade acadêmica de quem muito foi assimilado tanto em conhecimento como em postura e ética de trabalho, pesquisa e atitude, e a obrigatoriedade de prestar contas tanto para superiores como para um órgão financiador.

Sem dúvida foi uma experiência de vida marcante que acrescentou muito à minha bagagem cultural e profissional.

Bibliografia utilizada

FOLE90  Foley, J., A. van Dam, S. Feiner, and J. Hughes, Computer Graphics: Principles and Practice - 2nd ed.


Segunda Parte


Desafios e frustrações encontrados


Lista das disciplinas cursadas no BCC mais relevantes para o projeto

Apesar de na época não estar cursando Ciência da Computação e portanto não ter podido tirar proveito de conceitos aprendidos ao longo do curso do BCC, é possível listar uma relação de conceitos vistos ao longo do curso que poderiam ter sido ou mesmo que foram aplicados no projeto.

MAC-
MAC-
MAC-

Interação com membros da equipe que tenham agido como mentores do trabalho

O desenvolvimento foi feito por uma equipe de um desenvolvedor apenas, e por isso não houve conflitos ou problemas de interação. Para simplificar ainda mais o andamento do projeto, em praticamente todos os tópicos o orientador e o orientado tinham posições/visões equivalentes ou muito próximas, e não houve necessidade de intervenção por parte do orientador. Havia interação com outros desenvolvedores do mesmo grupo (Grupo de Computação Gráfica) para ajuda mútua, e era comum trocar idéias e sugestões com colegas desenvolvedores. Com isso muitos erros eram descobertos com a ajuda de colegas (e vice-versa).

Em nenhum momento houve conflito ou atrito com outros membros do grupo, e o ambiente era de harmonia total, quase como um oásis cultural. (reestruturar aqui)

Diferenças notadas entre a forma de cooperação com colegas do BCC nas tarefas em grupo das disciplinas e a forma de trabalho conjunto no laboratório.

Nesse caso eu pretendo relacionar também experiências em outros locais de trabalho


Observações sobre a aplicação de conceitos estudados nos cursos no contexto prático de aplicações reais


Se fosse continuar atuando na área do projeto, que passos tomaria para aprimorar os conhecimentos técnicos/metodológicos/comerciais/científicos/etc relevantes para esta atividade



2004/11/10 Kenzo Yamada