Monografia
Aluno: Marcelo Kenzo Yamada
Orientador: Prof. Alfredo Goldman vel Lejbman
Tipo de trabalho: IC
Primeira Parte
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.
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.
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
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 |
|
Junho/1990 |
|
Julho/1990 |
|
Agosto/1990 |
|
Setembro/1990 |
|
Outubro/1990 |
|
Novembro/1990 |
|
Dezembro/1990 |
|
Janeiro/1991 |
|
Fevereiro/1991 |
|
Março/1991 |
|
Abril/1991 |
|
Maio/1991 |
|
Junho/1991 |
|
Julho/1991 |
|
Agosto/1991 |
|
Setembro/1991 |
|
Outubro/1991 |
|
Novembro/1991 |
|
Dezembro/1991 |
|
Janeiro/1992 |
|
Fevereiro/1992 |
|
Resumo das atividades realizadas durante o projeto:
Maio/1990 |
|
Junho/1990 |
|
Julho/1990 |
|
Agosto/1990 |
|
Setembro/1990 |
|
Outubro/1990 |
|
Novembro/1990 |
|
Dezembro/1990 |
|
Janeiro/1991 |
|
Fevereiro/1991 |
|
Março/1991 |
|
Abril/1991 |
|
Maio/1991 |
|
Junho/1991 |
|
Julho/1991 |
|
Agosto/1991 |
|
Setembro/1991 |
|
Outubro/1991 |
|
Novembro/1991 |
|
Dezembro/1991 |
|
Janeiro/1992 |
|
Fevereiro/1992 |
|
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.
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.
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