Orientações para o Planejamento e
Realização do Projeto Final
Simone Diniz Junqueira Barbosa Versão: 1.0.4
Orientações para o Planejamento e Realização do Projeto Final Simone D.J. Barbosa 2
Sumário
1 Introdução ... 3 2 Projeto I ... 3 2.1 Proposta de Projeto... 32.2Relatório do Projeto I... 3
2.3Acompanhamento do Projeto I... 4
3 Projeto II ...5 3.1 Relatório Final ...5 3.2Código-Fonte ...5 3.3Apresentação... 6 3.4Acompanhamento do Projeto II ... 6 4 Datas ... 6 4.1 Projeto I ...7 4.2Projeto II ...7
Apêndice I – Roteiro para a Proposta... 8
Apêndice II – Roteiro para o Relatório de Projeto I... 13
Orientações para o Planejamento e Realização do Projeto Final
Simone D.J. Barbosa 3
1
Introdução
Este documento apresenta orientações gerais para o planejamento e realização das disciplinas Projeto I e Projeto II nos cursos de Engenharia de Computação e Bacharelado em Informática.
2
Projeto I
Os produtos do Projeto I são: Proposta de Projeto Relatório de Projeto I
2.1
Proposta de Projeto
Já nas primeiras semanas do Projeto I, deve-se identificar a visão e os objetivos gerais da aplicação a ser projetada. Por volta do segundo mês do Projeto I, o aluno deverá entregar uma proposta de projeto. Para elaborar a proposta, é necessário definir o domínio do problema, o escopo da solução e o ambiente computacional de desenvolvimento e execução da aplicação. É importante que o aluno conheça as tecnologias a serem utilizadas antes de finalizar a redação da proposta, para se certificar da viabilidade da execução do que está propondo, no tempo de que dispõe. Para auxiliar no planejamento do trabalho, o aluno deverá incluir na proposta um cronograma para as atividades do Projeto I.
A proposta deve seguir as recomendações feitas pelo prof. Arndt von Staa em documento anexo. O Apêndice I apresenta um roteiro sugerido para a proposta.
A proposta deve ser redigida de forma incremental desde a primeira semana de aula, conforme indicado na próxima seção, “Proposta de Projeto”. A versão completa da proposta deve ser entregue ao professor orientador com pelo menos uma semana antes do prazo estipulado pelo Departamento, para que haja tempo de efetuar eventuais correções ou ajustes no documento.
2.2
Relatório do Projeto I
Ao final da disciplina de Projeto I, o aluno deve entregar um relatório descrevendo as atividades realizadas, as tecnologias estudadas, os protótipos construídos, os
Orientações para o Planejamento e Realização do Projeto Final
Simone D.J. Barbosa 4
problemas encontrados e como foram contornados. Um roteiro sugerido para o Relatório de Projeto I é apresentado no Apêndice II.
O conteúdo de parte do relatório de Projeto I depende do processo de desenvolvimento seguido pelo aluno.
Caso o aluno opte por seguir um processo de desenvolvimento mais tradicional como em cascata, o relatório deve incluir os conteúdos completos relacionados à seção 5 do roteiro sugerido para o Relatório de Projeto Final, no Apêndice III.
Caso o aluno decida por seguir um processo de desenvolvimento em espiral ou por prototipação, o relatório deve incluir os ciclos (no mínimo 2) de projeto e desenvolvimento realizados durante o Projeto I onde, para cada ciclo, deve incluir os conteúdos parciais relacionados às seções 5 e 6 do roteiro sugerido para o Relatório de Projeto Final, no Apêndice III. Finalmente, se o aluno optar por um desenvolvimento incremental, deve incluir os incrementos (no mínimo 3) cada qual de acordo com as seções 4, 5 e 6 do Relatório de Projeto Final, no Apêndice III.
2.3
Acompanhamento do Projeto I
Toda semana o aluno deve fazer contato com o orientador para relatar o seu progresso no Projeto I (até a 5ª feira de cada semana). Este contato pode ser feito via e-mail ou presencialmente, conforme combinado na semana anterior. A cada contato, devem ser entregues dois produtos:
relato informal contendo as seguintes informações: − o que foi feito desde o último relato
− que dificuldades ou problemas foram encontrados − quais destes ainda estão sem solução
− qual é o planejamento para a próxima semana (relacionando o estágio atual do trabalho ao cronograma planejado)
versão parcial da proposta (ou do relatório de Projeto I, após a proposta ter sido entregue), incorporando as seções (parciais) correspondentes às atividades realizadas naquela semana
Em outras palavras, o relatório do Projeto I deverá ser redigido incrementalmente ao longo de todo o período.
Orientações para o Planejamento e Realização do Projeto Final
Simone D.J. Barbosa 5
A qualidade e regularidade desses relatos farão parte da nota do aluno em Projeto I.
3
Projeto II
Durante o Projeto II, o aluno deve realizar as etapas previstas no Projeto I. Propostas de modificação no planejamento ou no cronograma devem ser justificadas por escrito e aprovadas pelo professor orientador.
Ao longo de todo o período, o aluno deve redigir trechos do Relatório Final de Projeto. Um roteiro sugerido para este relatório é apresentado no Apêndice III.
Os produtos do Projeto II são: Relatório Final
Código-fonte da aplicação
Apresentação (slide show) para a banca examinadora
3.1
Relatório Final
Ao final da disciplina de Projeto II, o aluno deve entregar um relatório descrevendo todo o projeto. O relatório deve ser apresentado em duas versões: 1) versão digital gravada em CD-ROM; 2) versão impressa e encadernada.
Um roteiro sugerido para o Relatório Final é apresentado no Apêndice III.
3.2
Código-Fonte
O código-fonte da aplicação desenvolvida deve ser documentado e entregue em CD-ROM juntamente com o relatório final. Como todo trabalho acadêmico, esse código-fonte é de domínio público.
Sugere-se que a documentação do código-fonte siga o padrão proposto por Staa (2000).
Orientações para o Planejamento e Realização do Projeto Final
Simone D.J. Barbosa 6
3.3
Apresentação
O aluno deve preparar uma apresentação para apresentar seu trabalho à banca examinadora. A apresentação também deve ser gravada no CD-ROM do Projeto Final.
A estrutura da apresentação será planejada juntamente com o orientador, a partir do penúltimo mês do Projeto II.
3.4
Acompanhamento do Projeto II
Toda semana o aluno deve fazer contato com o orientador para relatar o seu progresso no Projeto II (até a 5ª feira de cada semana). Este contato pode ser feito via e-mail ou presencialmente, conforme combinado na semana anterior. A cada contato, devem ser entregues três produtos:
relato informal contendo as seguintes informações: − o que foi feito desde o último relato
− que problemas ou dificuldades foram encontrados − quais destes ainda estão sem solução
− qual é o planejamento para a próxima semana (relacionando o estágio atual do trabalho ao cronograma planejado)
versão parcial do Relatório Final de Projeto I, incorporando as seções (parciais) correspondentes às atividades realizadas naquela semana
código implementado e documentado até o momento
Em outras palavras, o Relatório Final deverá ser redigido incrementalmente ao longo de todo o período.
4
Datas
Consulte nos quadros abaixo as datas de entrega dos produtos elaborados a cada etapa, no período de 2005.2:
Orientações para o Planejamento e Realização do Projeto Final
Simone D.J. Barbosa 7
4.1
Projeto I
Produto Prazo Entregue a
Proposta de Projeto Final 01/out/2005 orientador Proposta de Projeto Final 10/out/2005 secretaria Relatório de Projeto I 5/dez/2005 orientador
4.2
Projeto II
Produto Prazo Entregue a
Relatório Final
Código-fonte da aplicação
Apresentação do Projeto (slideshow)
5/nov/2005 orientador
Relatório Final
Código-fonte da aplicação
Apresentação do Projeto (slideshow)
16/nov/2005 secretaria
5
Referências
Apêndice I – Roteiro para a Proposta
Este apêndice apresenta um exemplo de roteiro para a proposta a ser redigida nas primeiras semanas da disciplina Projeto I. Este roteiro deve ser adaptado conforme o tipo de projeto realizado.
Título do Projeto
Proposta
Aluno: Nome do aluno
Orientadora: Simone Diniz Junqueira Barbosa Período: 2005.2
Projeto Final – Proposta Nome do Aluno 10
Sumário
1 Introdução ... 11 2 Estado da arte ... 11 3 Objetivos do trabalho... 11 4 Atividades propostas... 11 5 Referências bibliográficas... 12Projeto Final – Proposta
Nome do Aluno 11
1
Introdução
domínio de aplicação definição do problema
justificativa da relevância do problema e da ausência de soluções satisfatórias (disponíveis na rede)
2
Estado da arte
tecnologias e aplicações existentes que endereçam o problema descrito na seção 1 conceitos e padrões relacionados ao domínio do problema ou da solução a ser
proposta
3
Objetivos do trabalho
objetivos específicos a serem alcançados, tendo em vista a definição do problema e os trabalhos relacionados.
− escopo da aplicação
− usuários, organizações e situações que se deseja apoiar − o que se busca avançar com relação ao estado da arte
4
Atividades propostas
estudos a serem realizados
método / processo de desenvolvimento que será seguido − atividades que serão realizadas
− modelos e representações que serão criados
Projeto Final – Proposta
Nome do Aluno 12
5
Referências bibliográficas
livros, apostilas artigos, websites e outras referências utilizadas na redação da proposta (utilize uma norma amplamente aceita para a padronização das referências bibliográficas)
Apêndice II – Roteiro para o
Relatório de Projeto I
Este apêndice apresenta um exemplo de roteiro para o relatório a ser redigido durante a disciplina Projeto I. Este roteiro deve ser adaptado conforme o tipo de projeto realizado.
Título do Projeto
Relatório de Projeto I
Aluno: Nome do aluno
Orientadora: Simone Diniz Junqueira Barbosa Período: 2005.2
Relatório de Projeto I Nome do Aluno 15
Sumário
1 Introdução ...16 2 Estado da arte ...16 3 Objetivos do trabalho...164 Atividades propostas e realizadas...16
5 Cronograma ...16
6 <Seções que dependem das atividades realizadas> ... 17
7 Esboço do relatório final... 17
Relatório de Projeto I
Nome do Aluno 16
1
Introdução
<< semelhante ao Relatório Final de Projeto, no Apêndice III>
2
Estado da arte
<< semelhante ao Relatório Final de Projeto, no Apêndice III>
3
Objetivos do trabalho
<< semelhante ao Relatório Final de Projeto, no Apêndice III>
4
Atividades propostas e realizadas
<< o que foi incluído na Proposta >> o que foi realizado de fato
apreciação e discussão sobre as diferenças entre as atividades propostas e realizadas: dificuldades encontradas, soluções para essas dificuldades e pendências para o Projeto II
5
Cronograma
cronograma de estudo, projeto e desenvolvimento
o cronograma planejado (o que foi incluído na proposta) o cronograma real (o que foi realizado de fato)
Relatório de Projeto I
Nome do Aluno 17
6
<Seções que dependem das atividades realizadas>
7
Esboço do relatório final
estrutura do relatório final, com uma breve descrição sobre o conteúdo de cada seção ou sub-seção que será redigida no Projeto Final (pode ser adaptado do roteiro apresentado no Apêndice III)
8
Referências bibliográficas
livros, apostilas artigos, websites e outras referências utilizadas no Projeto I (utilize uma norma amplamente aceita para a padronização das referências bibliográficas)
Apêndice III – Roteiro para o
Relatório Final de Projeto
Este apêndice apresenta um exemplo de roteiro para relatório final de projeto. Este roteiro deve ser adaptado conforme o tipo de projeto realizado.
Título do Projeto
Relatório Final
Aluno: Nome do aluno
Orientadora: Simone Diniz Junqueira Barbosa Período: 2005.2
Projeto Final Nome do Aluno 20
Sumário
1 Introdução ... 21 2 Estado da Arte... 21 3 Objetivos ... 22 4 Atividades realizadas ... 225 Projeto e especificação da aplicação ... 23
5.1 Cenários de uso ... 23
5.2Projeto da interação humano-computador ... 24
5.2.1 Modelo de interação ... 24
5.2.2Storyboards anotados ... 24
5.2.3Inspeção da interface projetada... 24
5.3Modelo de dados ... 24
5.4Projeto modular ...25
6 Implementação e avaliação...25
6.1 Planejamento e execução de testes funcionais ...25
6.2Planejamento e execução de testes com usuários...25
6.3Comentários sobre a implementação ...25
7 Considerações finais ...25
Projeto Final
Nome do Aluno 21
1
Introdução
Sobre a motivaçãoQual foi a motivação deste trabalho?
Sobre o domínio da aplicação
Qual é o domínio do problema? Por que é relevante? Que aplicações existem neste domínio? Quais as limitações destas aplicações?
Seu projeto é a extensão de um sistema existente, ou uma aplicação inteiramente nova? Caso seja um sistema existente, foi o uso continuado do sistema que gerou demandas de evolução e motivou este trabalho? Que demandas são essas?
Sobre os usuários-alvo
Deve-se descrever os perfis de usuários e situações a que a sua aplicação se destina: Quem utilizará o seu sistema? Quais são as características das pessoas e do ambiente de uso do sistema (e.g. escritório, lar, “em movimento (na rua)”)? Quais são os objetivos, necessidades e expectativas dos usuários e das organizações em que se encontram?
Sobre o ambiente computacional
Qual foi o ambiente tecnológico de desenvolvimento (plataforma computacional, sistema operacional)? E o ambiente de uso da aplicação?
Qual foi a plataforma tecnológica utilizada?
dispositivo (PC, handheld, celular, ...), sistema operacional, linguagem de programação, SGBD, e outros.
Sobre a adequação do trabalho como Projeto Final
Como esse trabalho se encaixa nos requisitos de projeto final? O que você vai aplicar do que você aprendeu em todo o curso?
2
Estado da Arte
Projeto Final
Nome do Aluno 22
tecnologias e aplicações existentes que endereçam o problema descrito na seção anterior
conceitos e padrões relacionados ao domínio do problema ou da solução a ser proposta
Descrição “objetiva” das aplicações existentes. Apreciação dessas aplicações buscando identificar pontos fortes e fracos, limitações e possibilidades de melhoria, integração ou extensão. Apreciação da utilidade da aplicação com relação aos problemas que o domínio apresenta e os usuários que se visa apoiar.
Descreva brevemente os tipos de avaliação realizados, incluindo o método, seus benefícios e suas limitações:
inspeção da arquitetura e código (caso se trate da extensão ou refactoring de uma aplicação existente); e
inspeção da interface com usuário.
3
Objetivos
Tendo em vista a definição do problema e os trabalhos relacionados, quais são os objetivos específicos a serem alcançados?
− escopo da aplicação
− usuários, organizações e situações que se deseja apoiar − o que se busca avançar com relação ao estado da arte
4
Atividades realizadas
Estudos preliminaresQual era o conhecimento prévio do aluno e experiência com o ambiente tecnológico de desenvolvimento?
Estudos conceituais e de tecnologia
Projeto Final
Nome do Aluno 23
Que linguagens de programação, APIs ou sistemas de apoio ao desenvolvimento precisaram ser aprendidos?
Protótipos para aprendizado e demonstração
Para auxiliar a fixar os estudos realizados e demonstrar a viabilidade da proposta, que protótipos foram gerados?
Método
Descreva o processo de projeto e desenvolvimento. Qual foi o método seguido? Considerando o método, quais foram as atividades desenvolvidas? Que modelos e representações foram elaborados?
Apresente o cronograma de projeto e desenvolvimento, incluindo as atividades do Projeto I.
5
Projeto e especificação da aplicação
Caso o processo de desenvolvimento tenha ocorrido de forma incremental ou em ciclos, cada ciclo deve ser descrito completamente, indicando o escopo de desenvolvimento de cada ciclo e decisões que afetam o ciclo seguinte (por exemplo, mudanças na definição do problema ou do escopo da solução). Isto significa ainda que as sub-seções abaixo podem ser apresentadas repetidas vezes (uma vez por ciclo), conforme as representações que foram definidas ou refinadas durante cada ciclo.
5.1
Cenários de uso
Descrever cenários de uso da aplicação, indicando os cenários que já são apoiados por aplicações existentes, cenários que contemplam novos objetivos, e cenários que apresentam novas formas de se alcançar objetivos que já eram possíveis nas aplicações atuais.
É importante considerar aqui variações sobre os cenários de uso, em particular as situações de erro que podem ocorrer em cada ponto de cada cenário. Deve-se considerar também cenários de configuração que tornem a aplicação flexível, útil a mais de uma classe de usuários e aplicável a um conjunto variado de situações.
Projeto Final
Nome do Aluno 24
5.2
Projeto da interação humano-computador
Nesta seção deve-se descrever a aplicação do ponto de vista do usuário. Isto significa definir a interface com usuário e o comportamento aparente da aplicação (as possíveis interações do usuário com o sistema).
5.2.1
Modelo de interação
Nesta etapa deve-se elaborar uma representação de todos os possíveis caminhos de interação do usuário com o sistema, do ponto de vista do usuário. Para isto, sugere-se utilizar a linguagem de representação MoLIC (favor pegar a versão preliminar do manual de uso da linguagem com a Profa. Simone).
5.2.2
Storyboards anotados
Para complementar o modelo de interação, deve-se definir em detalhes como será a interface com o usuário (e.g. as telas da aplicação), ainda antes da implementação. Esta interface pode ser representada na forma de storyboards ou rascunhos de tela, e devem incluir anotações que indiquem seu comportamento dinâmico e as relacionem com o modelo de interação.
5.2.3
Inspeção da interface projetada
Nesta seção deve-se apresentar uma avaliação por inspeção da interface com usuário e dos processos de interação apoiados pela solução proposta nas sub-seções anteriores. Recomenda-se utilizar técnicas de avaliação heurística e de percurso cognitivo.
5.3
Modelo de dados
Deve-se descrever cuidadosamente o modelo de dados utilizado. Pode-se representá-lo através de um diagrama de entidade e relacionamento ou diagrama de classes, complementados por um dicionário de dados.
Deve-se ainda relacionar os dados aos elementos de interface a que são mapeados, direta ou indiretamente. No caso de mapeamentos indiretos, deve-se indicar ainda qual é a função de mapeamento dos dados de/para a interface (tanto no modo de entrada quanto no modo de saída de dados). Por exemplo: dado = data de nascimento; elemento de interface na entrada = calendário (apresentado nas telas X, Y e Z na seção 5.2.2); elemento de interface de saída = número indicando a idade, f(data atual - data de nascimento).
Projeto Final
Nome do Aluno 25
5.4
Projeto modular
Esta seção deve apresentar o projeto modular da aplicação, descrevendo a arquitetura da aplicação, seus módulos e funções.
6
Implementação e avaliação
6.1
Planejamento e execução de testes funcionais
Independentemente do foco do projeto, a funcionalidade da aplicação deve ser cuidadosamente testada. Esta seção deve descrever como foi testado o sistema, indicando as técnicas de teste utilizadas, bem como os cenários e casos de teste utilizados, e os resultados obtidos.
6.2
Planejamento e execução de testes com usuários
Caso o foco do projeto seja na área de IHC, o aluno deve planejar e efetuar testes com usuários. O aluno deve descrever o método de teste utilizado, o material preparado para o teste, o teste-piloto, os dados coletados durante os testes e o resultado da análise desses dados.
6.3
Comentários sobre a implementação
Quais foram os problemas encontrados? Como eles foram contornados? Caso não tenham sido contornados, qual foi o motivo?
7
Considerações finais
Quais foram as contribuições deste trabalho (para a comunidade acadêmico-científica ou para comunidades de usuários)?
O que você aprendeu com este trabalho?
O que você faria diferente se fosse começá-lo agora (limitações do produto ou do processo)?
Projeto Final
Nome do Aluno 26
Quais são as oportunidades para trabalhos futuros que você identificou e que pode recomendar para um próximo aluno?
8
Referências bibliográficas
Quais foram os livros, apostilas, artigos, websites e outras referências consultados e que serviram de base para este trabalho?
Certifique-se de utilizar uma norma amplamente aceita para a padronização das referências bibliográficas.
Projeto Final
Nome do Aluno 27
Documentação final do projeto (AvS).
• mini-plano: seqüência de tarefas de desenvolvimento utilizadas junto com estatísticas de tempo e esforço por tarefa.
• especificação do programa
• objetivos, requisitos
• diagramas de especificação, por exemplo use-cases e diagrams de seqüência.
• projeto modular do programa
• critérios de projeto utilizados
• diagramas de arquitetura e/ou segmentação do programa, por exemplo UML.
• organização do programa (componentes, módulos, classes,...), por exemplo diagramas de classe UML.
• diagramas de organização dos dados, por exemplo diagramas de modelagem de dados, ou entidade e relacionamentos.
• código fonte cuidadosamente comentado
• comentários cabeçalho de módulos, classes e funções 3
• comentários de controle de versão
• assertivas para dados e procedimentos
• pseudo instruções
• procure estabelecer e/ou adotar padrões de programação. Os apêndices do livro Staa, A.v.; Programação Modular, Campus 2000; contêm uma extensa lista de padrões de programação que pode servir de exemplo para a adaptação às características específicas do trabalho.
Projeto Final
Nome do Aluno 28
• critérios de teste utilizado
• descrição dos casos teste
• na medida do possível procure utilizar testes automatizados
• scripts de teste automatizado
• logs gerados pelo teste automatizado
• documentação para o usuário