Laboratório de Desenvolvimento de Software
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Engenharia de Software |
OFICIAL |
Temas Multidisciplinares |
Ocorrência: 2012/2013 - 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, documentação e demonstração;
- adquirir os 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 e XP);
- 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, 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 em 3 fases, cada uma com entregas de artefactos (até 5 dias depois da última aula dessa fase):
I - Fase de especificação inicial de requisitos, 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), 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.
-- Demonstração pública do "Protótipo Funcional", implementando uma parte da aplicação para validar a arquitectura e demonstrar a ideia do produto.
III - Fase de projecto detalhado, implementação, testes integração e documentação, 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.
-- Demonstração pública do "Produto", para avaliação da ideia, conceito, solução do ponto de vista de valor para cliente.
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 |
65,00 |
|
|
Projecto: especificação de requisitos |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
35,00 |
|
|
Projecto: concepção e desenvolvimento |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
89,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%
- maturidade do processo de desenvolvimento - 10%
- avaliação do sítio web do projecto - 10%;
- avaliação contínua do desempenho invididual - 10%
Provas e trabalhos especiais
As provas e trabalhos em épocas especiais (fim de curso, etc) são abrangidos pelos mesmos métodos de avaliação. Os mesmos devem contactar os docentes para definir o trabalho especial, com base na disponibilidade, prazos e tópicos da unidade curricular.
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 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 unidade curricular.
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.