Laboratório de Desenvolvimento de Software
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Engenharia de Software |
OFICIAL |
Temas Multidisciplinares |
Ocorrência: 2011/2012 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
A unidade curricular tem como objectivo principal desenvolver nos estudantes as seguintes competências:
- aplicar um processo de Engenharia de Software ao desenvolvimento completo de um sistema de software real, ao longo do semestre, abrangendo a especificação de requisitos, arquitectura e desenho, implementação, integração, teste e documentação;
- adquirir conhecimentos fundamentais e experiência 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 APIs e infraestruturas de software de grande escala, introduzindo o desenvolvimento baseado em componentes e problemas relacionados com integração aplicacional;
- desenvolvimento de trabalho colaborativo integrando outros intervenientes do projecto em decisões de desenho e planeamento e delegar, negociar e rever estas decisões em grupo;
- aplicar os conhecimentos anteriormente adquiridos em disciplinas nas áreas Engenharia de Software, Bases de Dados, Interfaces Gráficas, Sistemas Operativos, Linguagens de Programação e Inteligência Artificial.
Programa
- Aplicação de processos de desenvolvimento de software, incluindo metodologias de planeamento de projecto.
- identificação de requisitos, desenho, implementação, integração, teste, documentação e demonstração de um sistema de software;
- introdução às Metodologias Ágeis: valores, principios fundamentais, práticas (“Planning Game”, “Small Releases”, “Acceptance tests”, “Unit-tests”, “Test-first programming”, “Simple Design”, “Refactoring”, “Design patterns”) e exemplos de metodologias populares (Scrum, XP, FDD);
- desenvolvimento de aplicações multi-camada baseadas em componentes de software;
- utilização de ambientes de desenvolvimento integrados (IDEs), ferramentas de modelação, teste, controlo de versões e configurações, documentação de software colaborativas;
- utilização de APIs de larga escala.
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 ferramentas e tecnologias adoptadas na unidade curricular.
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.
O projecto é organizado nas seguintes fases:
I - Fase de especificação inicial de requisitos, de 19/9 a 7/10 (3 semanas de aulas), resultando na entrega dos seguintes artefactos:
-- "Relatório de Especificação de Requisitos";
-- "Protótipo da Interface com o Utilizador";
II - Fase de projecto de alto nível (ou projecto de arquitectura), de 10/10 a 04/11 (3 semanas de aulas), resultando na entrega dos seguintes artefactos:
-- "Relatório de Arquitectura";
-- "Protótipo Funcional", implementando uma parte da aplicação para validar a arquitectura.
III - Fase de projecto detalhado, implementação, testes integração e documentação, de 7/11 a 16/12 (6 semanas de aulas), resultando na entrega dos seguintes artefactos:
-- código fonte e executável do produto integrado (incluindo testes unitários e aceitação);
-- "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;
-- "Sitio Web, Video, Slides e Folheto Promocional";
-- "Documentação Técnica da Implementação";
-- versões actualizadas da documentação produzida nas fases anteriores.
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 |
|
|
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 arquitetura do projecto e protótipo |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
24,00 |
|
|
Projecto: implementação |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
65,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 40%, dos quais 10% estão reservados para os aspectos de integração com outros módulos ou produtos;
- maturidade do processo de desenvolvimento - 10%
- avaliação contínua do sítio web - 10%;
- avaliação contínua do desempenho invididual - 10%
Provas e trabalhos especiais
.
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.