Departamento de 
Electrónica e Telecomunicações 
PP I : Programa da disciplina Imprimir

 

Conteúdo do site
 

Página principal

Enquadramento

Programa da disciplina

Docentes e horários

Aulas teóricas

Aulas práticas

Avaliação

Bibliografia

Material de estudo

Software

Objectivos

Os principais objectivos desta disciplina são:

  • Dotar os alunos com aptidões para decomporem, modelarem (de uma forma simples) e codificarem problemas computacionais segundo o paradigma de orientação por objectos (POO).
  • Sensibilizá-los, através de exemplos práticos, da importância actual deste paradigma.

Para tal, serão introduzidas as características gerais da programação modular e da POO, noções introdutórias de modelação em UML e apresentada de uma forma exaustiva a linguagem C++.


Programa

  1. Introdução
  • Motivação e enquadramento: "porquê objectos?", "quais os conceitos realmente novos e distintos?", "que vantagens tem esta tecnologia?".
  • Tipos abstractos.
  • Conceitos principais: encapsulamento, herança, polimorfismo; classes e objectos; métodos e dados; interfaces e implementação.
  • Modelação usando a linguagem gráfica UML (Unified Modeling Language): Componentes básicos da UML; diagramas de classes; generalização e especialização; herança simples e múltipla; várias alternativas para a herança (delegação, agregação, programação genérica); associação e agregação; diagramas CRC (Class-Responsibility-Collaboration); diagramas de colaboração e de sequência.
  • Regras básicas de construção de software orientado por objectos.
  • Vantagens/Dificuldades da programação orientada por objectos.

 

  1. Programação por Objectos em C++
  • Conceitos principais: classes e objectos (encapsulamento); herança e polimorfismo.
  • Novas possibilidades: entrada e saída de dados, sobrecarga de nomes de funções; valores, ponteiros e referências; argumentos por defeito; operadores new e delete.
  • Classes e objectos: atributos e métodos; sobrecarga de nomes de métodos; palavras chave inline, this, const e friend; construtores e destrutores; atributos e funções estáticas; alocação estática e visibilidade restrita.
  • Herança: classes base e derivadas; polimorfismo dinâmico e funções virtuais; chamada de funções virtuais e tabelas virtuais; ponteiros para classes; classes abstractas; herança múltipla; classes base virtuais.
  • Sobrecarga de operadores (operator overloading).
  • Modelos (Templates): modelos para funções e para classes; passagem de operações como argumentos da função; modelos e herança; modelos para listas ligadas (list templates); iteração; contentores.
  • Tratamento de excepções: ideias e regras gerais; as palavras chave throw, try e catch; tipos de excepções e herança de excepções; as funções pré-definidas terminate e unexpected; passagem de excepções como valor, ponteiro ou referência (o processo "stack unwinding", smart pointers).
  • Complementos sobre a entrada e saída de dados: biblioteca iostream; estados de streams; formatação; ficheiros e cadeias de caracteres (string).

 

  1. Um exemplo complexo: The Mark IV Special Coffee Maker - Robert C. Martin Designing Object-Oriented C++ Applications Using the Booch Method, Prentice Hall, 1995, pp. 60-105.

 

  1. Outras Linguagens de Programação Orientadas por Objectos.

 

Optimizado para Microsoft Internet Explorer 6.0 - Resolução 800x600

©2002  Universidade de Aveiro
Última Actualização 28 Nov 2004 - Comentários e Observações