Apresentação

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

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, teste 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.

Programa

Levantamento de requisitos, desenho, implementação, integração, teste, documentação e apresentação de uma aplicação. Desenvolvimento de aplicações multi-camada baseadas em componentes de software e "web services".
Aplicação de processos de desenvolvimento de software, incluindo metodologias de planeamento de projecto. Aprofundamento de conhecimentos e aplicação da linguagem de modelação orientada por objectos UML - "Unified Modeling Language". Utilização de ferramentas e de ambientes de programação (Eclipse, Visual Studio.Net). Utilização de APIs de larga escala (Java e .NET). Utilização de ferramentas de modelação. Utilização de ferramentas de teste. Utilização de ferramentas de controlo de versões e gestão de configurações. Utilização de ferramentas de documentação de software colaborativas.

Bibliografia Principal

Bibliografia Complementar

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 e das ferramentas e tecnologias usadas.
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", incluindo esboços ou protótipos da interface com o utilizador; (2) projecto de alto nível (ou projecto de arquitectura), resultando num "Relatório de Projecto de Alto Nível" e num "Protótipo" implementando uma parte da aplicação para validar a arquitectura; (3) projecto detalhado, implementação, integração e teste da aplicação, resultando num "Produto", incluindo o pacote de instalação, código fonte, documentação para o utilizador e documentação técnica associada.
O trabalho é realizado em grupos de tipicamente 6 alunos da mesma turma (por forma a constituir 4 grupos por turma) com divisão de tarefas planeada semanalmente.
Cada turma desenvolve um sistema constituído por vários módulos (tipicamente 4) integrados entre si. Cada grupo é responsável pelo desenvolvimento de um módulo e pela sua integração com os restantes módulos desenvolvidos pelos outros grupos da mesma turma. Diferentes turmas (até 2) podem concorrer entre si.
Cada grupo deve manter um sítio web (wiki) contendo toda a informação e artefactos relacionados com o trabalho, com ligações para páginas de outros grupos sempre que apropriado.

Software

Modo de Avaliação

Avaliação distribuída sem exame final.

Componentes de Avaliação

Será avaliado o trabalho de laboratório através da documentação apresentada, da aplicação desenvolvida e do desempenho nas aulas: Nota: A classificação a qualquer componente de avaliação pode variar de elemento para elemento do mesmo grupo, com base na opinião dos docentes e na auto-avaliação a realizar internamente em cada grupo.

Obtenção de Frequência

É exigida uma nota mínima de 40% a qualquer dos itens da avaliação.

Avaliação Especial (TE, DA, ...)

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

Melhoria de Classificação Final/Distribuída

Melhorias de classificação envolverão um trabalho adicional, contendo todas as parcelas atrás referidas, 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.