Disciplina: IF570 - Engenharia de Software
Professor: Roberto Souto Maior de Barros
Esta é uma disciplina eletiva, bastante prática, ministrada no oitavo período do curso de graduação em Ciência da Computação da UFPE.
Os principais objetivos da disciplina são fazer uma revisão geral sobre o que é Engenharia de Software e tudo que se relaciona com este tópico, dando a oportunidade aos alunos de aplicarem em um projeto prático estes conhecimentos, bem como outros conhecimentos adquiridos em diversas outras disciplinas do curso de Ciência da Computação.
Preferencialmente os alunos devem desenvolver um projeto real, para atender às necessidades dos clientes de uma empresa real. Os projetos devem ser desenvolvidos em grupos de 2 ou 3 alunos, de acordo com a complexidade do projeto escolhido. Não há nenhuma imposição em relação à plataforma de implementação dos projetos, nem mesmo do modelo de Banco de Dados a ser utilizado, se for o caso. A escolha de uma plataforma adequada ao problema a ser resolvido faz parte do trabalho da disciplina.
Durante o semestre, informações gerais sobre o andamento do curso serão postadas no newsgroup da disciplina ( depto.cursos.grad.if570 ), de modo que os alunos da disciplina devem lê-lo regularmente. As respostas a dúvidas que não sejam específicas a um trabalho serão também respondidas através do newsgroup .
Os arquivos contendo as transparências das aulas escritas usando o Powerpoint serão sempre disponibilizadas no diretório http://www.di.ufpe.br/~roberto/ES-Grad . Porém, cada aula só ficará disponível por um período de 7 a 10 dias, de modo que os alunos devem se acostumar a copiá-las e imprimi-las à medida que as aulas forem acontecendo. Inclusive, é aconselhável que os capítulos correspondentes dos livros indicados sejam lidos à medida que as aulas forem acontecendo, uma vez que não dará tempo de ler tudo na semana da prova.
Fases da disciplina
Além das aulas, o andamento da disciplina durante o semestre prevê as seguintes fases:
Escolha dos grupos e dos temas dos projetos.
Entrega da primeira parte do projeto, contendo sua descrição geral, o documento de análise de requisitos, e a descrição da plataforma a ser utilizada na implementação do projeto.
Entrega de todo o resto da documentação do projeto, incluindo o projeto da interface das aplicações.
Aulas livres para o desenvolvimento dos projetos.
Apresentações informais em salas de aulas, onde cada grupo conta para os outros como foi a sua experiência com o projeto, pontos positivos, pontos negativos, dificuldades encontradas, etc.
Apresentações das implementações em laboratório.
A primeira avaliação e a avaliação final (para os que não forem aprovados por média) serão baseadas em provas discursivas sobre alguns dos assuntos das aulas.
A segunda nota será baseada no projeto. A maior parte da nota será baseada na documentação do sistema, com uma pequena parte baseando-se nas apresentações em sala e no laboratório.
O critério de avaliação das provas e dos trabalhos é comparativo. Em geral, a melhor resposta a cada uma das questões da prova recebe a pontuação máxima e as outras respostas são julgadas em função dela. De maneira similar, o melhor trabalho da turma normalmente recebe nota 10,0 (Dez) e os outros são julgados em função deste.
Em outras palavras, não há um limite máximo pré-estabelecido para a qualidade das provas e dos trabalhos, o que diminui o espaço para acomodação por parte dos alunos. Este tipo de avaliação já vem sendo utilizada há algum tempo e os trabalhos produzidos têm sido de muito bom nível.
Posso entregar versões preliminares dos vários documentos do curso para o professor ler e criticar?
Pode. Os grupos podem entregar versões preliminares de cada um dos documentos do projeto para receber críticas e correções antes da data final da entrega.
Posso implementar meu sistema usando Delphi, VisualBasic, SQLWindows, Java, etc.?
Pode usar qualquer sistema que você quiser, desde que esteja instalado nos laboratórios do DI. Outros sistemas podem também ser utilizados se você conseguir autorização para instalá-lo no DI ou se você dispuser de um Laptop e puder trazê-lo para fazer a apresentação do projeto.
Posso usar banco de dados relacional, Orientado a objetos, distribuído, etc.?
Pode usar qualquer modelo de banco de dados.
Posso usar Paradox, Access, Interbase, SQL Server, O2, etc. como meu banco de dados?
Pode usar qualquer SGBD que você quiser, desde que esteja instalado nos laboratórios do DI. Outros SGBDs podem também ser utilizados se você conseguir autorização para instalá-lo no DI ou se você dispuser de um Laptop e puder trazê-lo para fazer a apresentação do projeto.
As notas referentes ao trabalho são sempre iguais para todos os membros de cada equipe?
Não. No caso específico dos trabalhos, não há qualquer garantia de que todos os membros de uma equipe receberão a mesma nota, uma vez que estarei observando atentamente para detectar participações diferenciadas.
O projeto desenvolvido pode ser o mesmo da disciplina Projeto de Banco de Dados?
Não. Inclusive, apesar de não haver prerequisisto, é interessante que os alunos só se matriculem em Projeto de Banco de Dados após terem cursado Engenharia de Software. Em particular, os alunos não deveriam cursar estas disciplinas em paralelo.