Apresentação
Ano: 4º
Semestre: 1º
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
- Programming Web Services with SOAP, James Snell, Doug Tidwell, Pavel Kulchenko, O'Reilly, Dezembro 2001, ISBN 0-596-00095-2
- Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003, ISBN 0-321-12742-0
Bibliografia Complementar
- The Unified Modeling Language User Guide, G. Booch, J. Rumbaugh, I. Jacobson, Addison Wesley, 1998, ISBN 0-201-57168-4
- Software Project Survival Guide, Steve McConnell, Microsoft Press, 1998
- Software Engineering, Ian Sommerville, 6th Edition, Addison-Wesley, 2000
- Professional XML Web Services, Zoran Zaev et al., Wrox Press, 2001, ISBN 1861005091
- Application Development Using C# and .NET, Michael Stiefel, Robert J. Oberg, Prentice Hall, 2002, ISBN 0-13-093383-X
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
- IDE Eclipse
- IDE Visual Studio.NET
- JUnit e NUnit (ferramentas de teste)
- Microsoft Visio (ferramenta de modelação)
- VQWiki (ferramenta de documentação colaborativa)
- CVS (ferramenta de controlo de versões)
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:
- avaliação do "Relatório de Especificação de Requisitos", a entregar até ao dia 15 de Outubro de 2004, e a discutir na semana de 25 a 29 de Outubro de 2004, com o peso de 20% da nota final;
- avaliação do "Relatório de Projecto de Alto Nível" e do "Protótipo" (incluindo a respectiva documentação), a entregar até ao dia 12 de Novembro de 2004, e a discutir na semana de 15 a 19 de Novembro de 2004, com peso de 20% da nota final;
- avaliação do "Produto" (incluindo a respectiva documentação para o utilizador e documentação técnica), a entregar até ao dia 17 de Dezembro de 2004 (prazo que pode vir a ser estendido até 22 de Dezembro), e a demonstrar e discutir na semana de 3 a 7 de Janeiro de 2005, com peso de 45% da nota final;
- avaliação contínua do sítio Web, com peso de 5% na nota final;
- avaliação contínua do desempenho individual, com peso de 10% da nota final.
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.