inf2102-projeto-final-de-programação-2012.2.doc
TRANSCRIPT
INF2102 Projeto Final de Programao
INF2102 Projeto Final de Programao
Perodo: 2012/2Coordenador: Prof. Carlos Jos Pereira LucenaInformaes gerais
Objetivo da disciplina
objetivo do projeto final de programao averiguar se o aluno sabe empregar tcnicas eficazes para especificar, projetar, desenvolver, controlar a qualidade e documentar programas, que tenham um nvel de complexidade pelo menos mediano. Os programas devem ser confiveis, teis e utilizveis e devem possuir elevada qualidade de engenharia. Natureza do trabalho
O resultado do projeto de programao pode ser qualquer programa que sirva para demonstrar a capacidade do aluno de desenvolver e testar racionalmente programas satisfazendo os objetivos acima.
O programa ser til na medida que realize um servio de interesse a algum que no seja exclusivamente o aluno. A utilidade do programa ser avaliada pelo professor orientador (ver mais adiante). Sugere-se que o trabalho tenha alguma relao com a dissertao de mestrado ou tese de doutorado a ser elaborada. So exemplos de aplicaes:
aplicaes para engenharia
componentes de compiladores
ferramentas de apoio ao desenvolvimento de software
frameworks
interfaces grficas animadas
jogos eletrnicos
produtos de software
programas re-engenheirados
sistemas e-qualquer coisa
sistemas de superviso e controle
sistemas web
transformadores, validadores, formatadores de representaes
A complexidade envolve tamanho e natureza do problema resolvido pelo programa. Cabe ao professor orientador (ver mais adiante) assegurar a satisfao deste requisito.
A garantia da qualidade depende do processo de especificao, projeto, programao e teste empregado. Depende ainda da forma da soluo adotada (programao lgica, procedural, OO, dirigida por tabela, etc.). No entanto, a documentao entregue ao final do projeto deve deixar nenhuma dvida quanto ao fato de ter sido empregado um processo de desenvolvimento racional, bem como ao fato que tenha sido empregado um processo de controle da qualidade (teste, inspeo) sistemtico. O ideal ter sido utilizada alguma forma de teste automatizado (JUnit, CPPUnit ou similares).
A linguagem de programao utilizada pode ser qualquer uma (ex. Lisp, Modula, C, C++, Lua, Java, Prolog etc.). Tambm pode ser qualquer uma a plataforma utilizada (ex. DOS, Windows, Mac, Unix, VM, etc.). Sendo de interesse do aluno, o trabalho pode ser desenvolvido utilizando alguma ferramenta CASE.
Como iniciar
Antes de mais nada encontre um professor orientador do projeto de programao. Este necessariamente um professor do Departamento de Informtica da PUC-Rio. No precisa ser o coordenador da disciplina.
Junto com o professor orientador defina o objetivo do trabalho. O ideal que isto seja feito antes do incio do semestre.
Envie ao professor coordenador da disciplina, prof.Carlos Jos Pereira Lucena, at o dia 21/setembro/2012, uma mensagem, contendo:
o nmero de matrcula e o nome do aluno
o nome do professor orientador
o nome do projeto
um resumo (um pargrafo) descrevendo o objetivo do projeto
O ttulo da mensagem deve ser INF2102-Proposta-NomeAluno
obviamente a parte NomeAluno deve ser substituda pelo respectivo nome, sem utilizar caracteres em branco ou diacrticos (acentos, cedilha).
Como terminar
Entregue ao coordenador da disciplina, at o dia 14/dezembro/2012:
1. uma folha contendo (ver apndice):
o nmero de matrcula e o nome do aluno
o nome do professor orientador
a avaliao do trabalho feita pelo professor orientador (tipicamente um pargrafo de texto). Esta avaliao deve dizer se:
o programa satisfaz os requisitos de complexidade assumidos
para projetos finais de programao
o programa confivel e utilizvel
o programa atende aos objetivos funcionais traados
se os testes foram abrangentes e satisfatrios
eventuais comentrios a respeito do trabalho
assinatura do professor orientador
2. a documentao final do projeto. Recomenda-se a entrega de tudo em um CD, neste caso no ser necessrio entregar qualquer documentao impressa. Os arquivos no CD no devem estar compactados (zip, tar, etc.). A documentao deve conter:
mini-acompanhamento da execuo: seqncia de tarefas de desenvolvimento utilizadas
junto com estatsticas de tempo e esforo por tarefa.
especificao do programa
objetivos, requisitos
diagramas de especificao, por exemplo use-cases.
projeto modular do programa
critrios de projeto utilizados
diagramas de arquitetura e/ou segmentao do programa, por
exemplo UML.
organizao do programa (componentes, mdulos, classes,...),
por exemplo diagramas de classe UML.
diagramas de organizao dos dados, por exemplo diagramas
de modelagem de dados, ou entidade e relacionamentos.
cdigo fonte cuidadosamente comentado
comentrios cabealho de mdulos, classes e funes
comentrios de controle de verso
assertivas para dados e procedimentos, procure utilizar design
by contract
pseudo instrues
procure estabelecer e/ou adotar padres de programao. Os
apndices do livro Staa, A.v.; Programao Modular, Campus
2000; contm uma extensa lista de padres de programao que
pode servir de exemplo para a adaptao s caractersticas
especficas do trabalho.
roteiro de teste efetuado, composto de:
critrios de teste utilizados
descrio dos casos de teste
na medida do possvel procure utilizar testes automatizados
scripts de teste automatizado
logs gerados pelo teste automatizado
documentao para o usurio
O formato da documentao tcnica varia em funo do domnio do problema e da linguagem de programao utilizada. No obstante, o programa dever ser especificado e projetado antes de ser implementado. Ou seja, a especificao, a organizao e a composio do programa devero estar definidas antes de iniciar a codificao. Da mesma forma os testes dependem da linguagem e do ambiente de execuo. Apesar disto, deve ser projetado um conjunto de experimentos sistemticos que sirvam para atestar que o programa atinge os objetivos a que se destina e que confivel.
Critrio de avaliao
No sero aceitos trabalhos sem a folha de avaliao produzida pelo professor orientador.
As notas mximas sero:
10 trabalho satisfatrio e entregue no prazo, ou seja at, no mximo,
17/dezembro/2012
8 trabalho satisfatrio e entregue aps a matrcula do semestre subseqente e antes da data limite imposta pela PUC: 28/dezembro/2012.
zero se no for entregue at no mximo dia: 28/dezembro/2012. Esta data est em sintonia com a data limite estabelecida pela PUC-Rio para preenchimento de graus IN do semestre anterior.
Atentem para a regra da CCPG: O aluno tem 60 dias a partir do final do semestre
(Trmino das atividades acadmicas do semestre) para completar o incompleto. Como so necessrias as avaliaes dos professores orientador e coordenador, a data limite
28/janeiro/2013 estabelecida de modo que se tenha folga para as avaliaes necessrias.
Se voc acha que no vai conseguir terminar no prazo, cancele a disciplina. No se matricule em Projeto Final de Programao sem saber quem ser o orientador e qual ser o trabalho!
Trabalhos que no forem entregues at 14/dezembro/2012, recebem automaticamente IN (incompleto).
Trabalhos que no forem entregues at a 28/janeiro/2013 recebem automaticamente
zero, com todas as implicaes que isto possa ter, como, por exemplo, jubilamento por falta de mdia no perodo.
Causam a perda de pontos:
entrega atrasada. Para evitar a perda de pontos s se matricule depois que souber quem o orientador, qual o trabalho, e se voc tem condies de terminar o trabalho no semestre. Afinal saber planejar faz parte da vida profissional do Informtico... Se durante o semestre voc perceber que no conseguir terminar, cancele a disciplina.
inexistncia de avaliao feita pelo orientador, o trabalho no ser aceito sem a avaliao do professor.
inexistncia de especificao.
inexistncia de projeto.
inexistncia de um roteiro de teste para fins de teste sistemtico. Deve estar explicitado o mtodo de teste utilizado. D preferncia a testes automatizados.
inexistncia de evidncia de que foram realizados testes segundo o roteiro. Procure produzir um laudo de teste. O teste automatizado deve produzir logs.
inexistncia de documentao para o usurio.
cdigo mal organizado e/ou mal comentado.
PONTIFCIA UNIVERSIDADE CATLICA DO RIO DE JANEIRO
DEPARTAMENTO DE INFORMTICA
INF 2102 - PROJETO FINAL DE PROGRAMAO
FOLHA DE AVALIAO
NOME DO ALUNO(A): _________________ N MATRCULA:
___________________________________
NOME DO ORIENTADOR: _______________________________________________________________
TTULO DO PROJETO: ___________________________________________________________________
PALAVRAS-CHAVE: _____________________________________
AVALIAO DO TRABALHO
Sim No Este trabalho satisfaz os requisitos de complexidade assumidos
para projetos finais de programao
Sim No O programa confivel e utilizvel
Sim No O programa atende aos objetivos funcionais traados
Sim No Os testes foram abrangentes e satisfatrios
OBSERVAES
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
NOTA SUGERIDA:
Rio de Janeiro,
Professor Orientador