Ficha de Disciplina
Sensibilizar os alunos para os problemas que surgem no
desenvolvimento de projectos de software e a sua relevância para os
engenheiros informáticos do próximo futuro. Familiarização com as principais
abordagens para o desenvolvimento industrial de software e com os conceitos
básicos que lhe estão subjacentes.
Dotar os alunos da capacidade de construir modelos de sistemas de software
usando a linguagem UML.
Programa da Disciplina e Material de Apoio
- Introdução à Engenharia de Software [Sommervile,
cap. 1] (1 h T):
- Problemas no desenvolvimento de software em larga escala
- Objectivos da Engenharia de Software
- Introdução aos Processos de Software
[Sommervile, cap. 3] (1,5 h T):
- Modelos de processos de software [cap. 3]
- Exemplo de um processo de software - Rational Unified Process [RUP]
- Engenharia de Requisitos e Especificação do Software [Sommervile,
cap. 5-9] (4 x 1,5 h T):
- Tipos de requisitos: requisitos funcionais, não funcionais, do sistema e do software
[cap. 5]
- Processos de engenharia de requisitos: descoberta, análise, especificação, validação
e gestão de requisitos [cap. 6]
- Introdução a técnicas de modelação de sistemas de software [cap.
7], incluindo UML (*)
- Introdução a técnicas de prototipagem de software [cap.
8]
- Introdução a técnicas de especificação formal [cap.
9], incluindo OCL (*)
- Desenho de Software [Sommervile, cap. 10, 11, 14, 15] (4 x 1,5 h T):
- Arquitectura de software [cap. 10 e
cap. 11]
- Desenho orientado por objectos com UML [cap.
12] (*)
- Desenho com vista à reutilização [cap. 14]
- Desenho da interface com o utilizador [cap.
15]
- Modelação de Sistemas de Software em UML - Unified Modeling
Language [Booch] (8 x 1,5h T, 12 x 1h P):
Nota: O estudo da linguagem UML será inserido nos
tópicos acima assinalados com asterisco (*).
- Visão geral (1 x 1,5h T)
- Modelos de casos de utilização
(1 x 1,5h T, 2 x 1h P)
- Actores, casos de utilização e diagramas de casos de utilização
- Estruturação dos casos de utilização: relações
"extend", "include" e de generalização e pacotes (packages)
de casos de utilização
- Aplicação a um caso de estudo: modelação de casos de utilização do
sistema de negócio e modelação de casos de utilização do sistema de
software
- Modelos de estrutura estática ou de objectos
(2 x 1,5 h T, 4 x 1h P)
- Objectos, classes, atributos e operações
- Relações entre classes: associação, agregação e composição
- Relações entre classes: generalização
- Relações entre classes: dependência e concretização
- Definição de restrições, elementos derivados, pré-condições e pós-condições
em OCL (Object Constraint Language)
- Classes especiais: classes parametrizadas, interfaces, tipos, meta-classes e utilitários
- Aplicação ao caso de estudo: modelação de
conceitos do domínio do problema e modelação de objectos das várias camadas
da solução
- Diagramas de objectos
- Modelos dinâmicos ou de comportamento (2 x 1,5 h T, 4 x 1h P)
- Diagramas de interacção (diagramas
de sequência e diagramas de colaboração): objectos e
mensagens; objectos
activos e passivos; objectos simples e compostos; ligações dinâmicas; fluxo
de controlo sequencial, concorrente e encaixado
- Diagramas de estados: estados,
transições, eventos, acções, actividades, sub-estados sequencias e
sub-estados concorrentes
- Diagramas de actividades: actividades,
transições, "swimlanes", fluxo de objectos
- Aplicação ao caso de estudo: modelação da dinâmica
dos casos de utilização do negócio (processos de negócio), modelação da dinâmica
dos casos de utilização do software, modelação de ciclos de vida de objectos
- Modelos de arquitectura do
software (2 x 1,5 h T, 3 x 1h P)
- Introdução à Verificação, Validação e
Teste do Software [Sommervile, cap. 19-20] (2 x 1,5 h T):
- Verificação e validação [cap.
19]
- Teste de software: planos de teste, casos
de teste [cap. 20]
- Introdução à Gestão de Configurações
[Sommervile, cap. 29] (2 x 1,5 h T):
- Controlo de versões e "releases"
- Gestão de alterações e dependências
- Procedimentos de "build"
- Introdução à Gestão de Projectos de
Software [Sommervile, cap. 4] (2 x 1,5 h T):
- Actividades de gestão de projecto
para indivíduos e equipas
- Planeamento do projecto
- Escalonamento do projecto
- Gestão de riscos
- Introdução à Evolução e Manutenção do Software
[Sommervile, cap. 26-28] (2 x 1,5 h T):
- I. Sommerville, Software Engineering, 6th Edition,
Addison-Wesley, 2000
- Grady Booch et al, The Unified Modeling Language User Guide,
Addison-Wesley, 1998
Bibliografia Complementar
-
Shari Lawrence Pfleeger, Software Engineering: Theory and Practice,
second edition, Prentice Hall, 2001
- Alberto Silva, Carlos Videira, UML, Metodologias e
Ferramentas CASE, Centro Atlântico, 2001
- R. S. Pressman, D. Ince, Software Engineering: A Practitioner’s Approach
– European Adaptation, 5th Edition,
McGraw-Hill, 2000
Aplicações informáticas a utilizar
Métodos de ensino
A disciplina tem uma componente
teórica baseada em aulas de exposição que incluem a descrição dos problemas,
as metodologias de análise e as soluções (práticas) preconizadas.
As aulas teórico-práticas serão dedicadas à realização de
exercícios sobre a linguagem UML e ao acompanhamento dos trabalhos.
A classificação final da disciplina baseia-se nas seguintes componentes de
avaliação:
-
Avaliação de frequência, com peso de 30% e nota
mínima de 7,0 valores em 20, distribuída da seguinte forma:
-
Avaliação de um trabalho prático de pesquisa
e síntese (na LEIC)
ou de aplicação de UML (na LEEC), a realizar em grupos de 4 alunos
essencialmente fora das aulas, a entregar até 13/12/2002, e a apresentar
e discutir na última semana de aulas, com peso de 25%. Este
trabalho é obrigatório para todos os alunos, mesmo para os alunos
dispensados de frequência às aulas teórico-práticas (caso de alunos
militares e trabalhadores-estudantes).
-
Avaliação contínua da participação nas aulas teórico-práticas,
com peso de 5%. No caso de alunos dispensados de frequência às aulas
(caso de alunos militares e trabalhadores estudantes), esta componente
da avaliação pode ser substituída por uma classificação resultante da
discussão individual do trabalho prático.
-
Exame final, com a duração de 2 horas, dividido em 2 partes de igual
duração, uma sem consulta e outra com consulta, com peso de 70% e nota
mínima de 7,0 valores em 20.
Só são admitidos a exame os alunos que não tenham excedido o limite de faltas
(25% das aulas teórico-práticas previstas, ou seja 4 faltas), excepto se
estiverem dispensados de frequência, e que tenham obtido nota igual ou superior
à nota mínima na avaliação de frequência.
Para os alunos que tenham obtido
frequência no ano lectivo anterior, é válida a avaliação de frequência do ano
lectivo anterior.
No caso de melhoria de classificação, é possível
melhorar a classificação obtida na componente de avaliação de frequência,
através da realização individual e discussão de um novo trabalho, ou de um novo
módulo do trabalho anteriormente realizado.
A avaliação em épocas
especiais de alunos sem nota de frequência, inclui sempre a realização e
discussão de um trabalho a definir pelo docente.
Pré-requisitos
Experiência de programação.