Laboratório de Desenvolvimento de Software
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Engenharia de Software |
OFICIAL |
Temas Multidisciplinares |
Ocorrência: 2010/2011 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
Pretende-se que os estudantes consigam:
- aplicar os conhecimentos anteriormente adquiridos em disciplinas nas áreas de Engenharia de Software, Bases de Dados, Interfaces Gráficas, Sistemas Operativos, Linguagens de Programação e Inteligência Artificial.
- aplicar um processo de Engenharia de Software ao desenvolvimento completo de uma aplicação abrangendo a especificação de requisitos, desenho de software, implementação, integração, teste e documentação.
- adquirir conhecimentos e experiência prática sobre as práticas de desenvolvimento ágil de software: planeamento de iterações, testes unitários, refactoring, pattern-based design, autoria colectiva de código, programação em pares, integração contínua.
- utilizar 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.
- utilizar de APIs de grande escala contendo pacotes de classes, introduzindo a computação baseada em componentes e problemas relacionados com a integração aplicacional.
- analisar as variantes mais conhecidas de processos ágeis.
- aplicar os conhecimentos num caso de estudo real a desenvolver ao longo do semestre.
- trabalhar em equipa
- integrar outros intervenientes do projecto em decisões de desenho e planeamento e delegar, negociar e rever estas decisões em grupo.
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.
- 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".
- Introdução às Metodologias Ágeis: valores e principios fundamentais.
- Utilização das principais práticas das metodologias ágeis: : “Planning Game”, “Small Releases”, “Acceptance tests”, “Unit-tests”, “Test-first programming”, “Simple Design”, “Refactoring”, “Design patterns”.
-Exemplos de Metodologias Ágeis: XP, Scrum, FDD.
- Utilização de ferramentas e de ambientes de desenvolvimento integrados (IDEs).
- Utilização de APIs de larga escala.
- Utilização de ferramentas de modelação.
- Utilização de ferramentas de teste.
- Utilização de ferramentas de controlo de versões e configurações.
- Utilização de ferramentas de documentação de software colaborativas.
Bibliografia Obrigatória
Silva, Alberto Manuel Rodrigues da;
UML, metodologias e ferramentas CASE. ISBN: 972-8426-36-4
Métodos de ensino e atividades de aprendizagem
As aulas teóricas serão usadas 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 acompanhamento e desenvolvimento do projecto, através do uso dos sistemas, linguagens e ferramentas escolhidos para a implementação da aplicação.
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Participação presencial (estimativa) |
Participação presencial |
70,00 |
|
|
Project: implementação (fase III) |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
65,00 |
|
|
Projecto: especificação de requisitos |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
30,00 |
|
|
Projecto: desenho da arquitectura do projecto e protótipo |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
24,00 |
|
|
|
Total: |
- |
0,00 |
|
Obtenção de frequência
É exigida uma nota mínima de 40% a qualquer dos 6 itens de avaliação discriminados na fórmula de cálculo da classificação final.
Fórmula de cálculo da classificação final
A classificação é baseada nos seguintes items:
- resultados da fase I - peso 15%;
- resultados da fase II - peso 15%;
- resultados da fase III - peso 45%, dos quais 10% estão reservados para os aspectos de integração com outros módulos ou produtos;
- processo de desenvolvimento - 10%
- avaliação contínua do sítio web - 5%;
- avaliação contínua do desempenho invididual - 10%
Provas e trabalhos especiais
O projecto é organizado nas seguintes fases:
I - Fase de levantamento e especificação inicial de requisitos, de 20/9 a 24/10 (5 semanas de aulas), resultando na entrega dos seguintes artefactos:
-- "Relatório de Especificação de Requisitos";
-- "Protótipo da Interface com o Utilizador";
-- "Plano de Testes de Aceitação", com a definição dos testes de aceitação;
II - Fase de projecto de alto nível (ou projecto de arquitectura), de 25/10 a 14/11 (3 semanas de aulas), resultando na entrega dos seguintes artefactos:
-- "Relatório de Projecto de Alto Nível";
-- "Protótipo Vertical", implementando uma parte da aplicação para validar a arquitectura.
III - Fase de projecto detalhado, implementação, testes integração e documentação, de 15/11 a 17/12 (5 semanas de aulas), resultando na entrega dos seguintes artefactos:
-- código fonte e executável do produto integrado;
-- código de testes unitários;
-- "Pacote de Instalação do Produto" (integrado), com o respectivo código executável;
-- "Pacote de Manutenção do Produto" (integrado), com o respectivo código fonte;
-- "Relatório de Testes de Aceitação", com os resultados da execução dos testes de aceitação;
-- "Manual do Utilizador";
-- "Documentação Técnica da Implementação";
-- versões actualizadas da documentação produzida nas fases anteriores.
Avaliação especial (TE, DA, ...)
Alunos de regimes especiais (incluindo trabalhadores-estudantes e militares) são abrangidos pelos mesmos métodos de avaliação. Os mesmos devem contactar os docentes da cadeira no início do semestre para os notificar do seu regime especial, e estabelecer como integrar os grupos de trabalho associados aos projectos em curso na cadeira.
Melhoria de classificação
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.