Licenciatura em Engenharia Informática e Computação
Laboratório de Engenharia de Software
Ano lectivo de 2002/2003

Ficha de Disciplina

Ano:
Semestre:
Créditos: 2
Horas/Semana: 1h teórica, 3h práticas
Nº de Turmas: 1 teórica, 4 práticas
Aulas Teóricas: João Correia Lopes (JCL), Professor Auxiliar
Aulas Práticas: João Correia Lopes (JCL), Professor Auxiliar e João Pascoal de Faria (JPF), Professor Auxiliar

1. Objectivos

Possibilitar a aplicação e integração dos conhecimentos adquiridos pelos alunos em disciplinas nas áreas de Engenharia de Software, Bases de Dados, Interfaces Gráficas, Compiladores, Sistemas Operativos, Linguagens de Programação e Inteligência Artificial.
Dotar os alunos da capacidade de aplicar um processo de Engenharia de Software ao desenvolvimento completo de uma aplicação usando uma metodologia aceite para especificação de requisitos e desenho de software e que possibilite a obtenção de relatórios de requisitos e de projecto.
Dotar os alunos de conhecimentos sobre a utilização de ferramentas de desenvolvimento de software adequadas à metodologia em uso e que permitam o acompanhamento do desenvolvimento do produto durante todo o seu ciclo de vida, incluindo a depuração, testes e documentação.
Permitir a utilização de APIs de grande escala contendo pacotes de classes, introduzir a computação baseada em componentes e problemas relacionados com a integração aplicacional.

2. Programa

Levantamento de requisitos, desenho, implementação, teste, documentação e apresentação de uma aplicação. Estudo e aplicação de processos de desenvolvimento de software. Aprofundamento de conhecimentos e aplicação da linguagem de modelação Orientada aos Objectos (UML, "Unified Modeling Language"). Utilização de ferramentas e de ambientes de programação (TogetherJ). Utilização de APIs de larga escala (API Java e framework .NET). Desenho e desenvolvimento baseado em componentes de software. Testes unitários (JUnit), de integração e de validação. Arquitecturas de software, nomeadamente arquitecturas P2P e Web-services (Tomcat e .NET).

3. Bibliografia

4. Aplicações informáticas

5. Métodos de Ensino

As aulas teóricas serão usadas para a apresentação e acompanhamento dos projectos e para a exposição dos processos de desenvolvimento de software. As aulas de laboratório serão usadas para o desenvolvimento do projecto, através do uso dos sistemas, linguagens e ferramentas escolhidos para a implementação da aplicação.
O desenvolvimento do projecto será dividido em 3 fases: (1) levantamento e especificação de requisitos, resultando num "Relatório de Especificação de Requisitos" e num "Relatório de Análise de Tecnologias"; (2) projecto de alto nível, resultando num "Relatório de Desenho de Alto Nível" e num "Protótipo" implementando uma parte da aplicação para validar a arquitectura; (3) projecto detalhado, implementação e teste da aplicação, resultando num "Relatório de Desenvolvimento" e num "Produto" incluindo o pacote de instalação, manual de utilizador e código fonte.
O trabalho é realizado em grupos de 4 alunos com divisão de tarefas planeada semanalmente.
Cada grupo deve manter um sítio Web contendo ligação para toda a informação e todos os artefactos relacionados com o trabalho.

6. Métodos de Avaliação

Não existem exames. Será avaliado o trabalho de laboratório através da documentação apresentada, da aplicação desenvolvida e do desempenho nas aulas: É exigida uma nota mínima de 40% a qualquer destes itens.

Melhorias de classificação envolverão um trabalho adicional contendo todas as parcelas referidas atrás e uma prova oral adicional; melhorias de classificação pedidas no ano lectivo seguinte envolverão a realização de todos os trabalhos previstos para os alunos desse ano lectivo.

Alunos de regimes especiais (incluindo trabalhadores-estudantes e militares) são abrangidos pelos mesmos métodos de avaliação.