Programação Orientada a Objetos 

Profa. Isabel Harb Manssour, Turma 138 (3EE1 6CD)

 

Objetivos

O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:

1.      Conhecer e utilizar de forma precisa conceitos e termos relacionados ao paradigma de orientação a objetos.

2.      Desenvolver as competências e habilidades para a criação de sistemas de complexidade média, formado por múltiplos componentes, e expressar estas soluções na forma de um sistema de classes em uma linguagem de programação.

3.      Descrever sistemas utilizando diagramas e código.

4.      Construir abstrações para tipos de dados, usando os conceitos de classe, objeto, mensagem, herança e interface.

5.      Compreender e utilizar as técnicas fundamentais de teste e depuração de programas.

../Imagens/emban15.png (1469 bytes)

Ementa

Desenvolvimento de sistemas de software de complexidade média utilizando o paradigma de orientação a objetos. Estudo e análise dos conceitos de herança e polimorfismo. Discussão de aspectos avançados sobre classes. Discussão sobre empacotamento e distribuição de aplicações. Implementação de estruturas de dados encadeadas. Uso de bibliotecas de coleções. Projeto de sistemas orientados a objetos.

../Imagens/emban15.png (1469 bytes)

Conteúdo

1) OBJETOS E CLASSES
1.1. O ambiente de programação
     1.1.1. Compilação por linha de comando
     1.1.2. Argumentos do main
     1.1.3. Recursos do sistema operacional
1.2. Revisão de conceitos
     1.2.1. Classes e objetos
     1.2.2. Atributos e métodos: classe e instância
     1.2.3. Tipos de dados: referência e valor
     1.2.4. Visibilidade de atributos e métodos
     1.2.5. Construtores e Destrutores
     1.2.6. Sobrecarga de métodos
1.3. Modelagem orientada a objetos
     1.3.1. Associação e dependências
     1.3.2. Diagrama de classe UML
     1.3.3. Problemas de modelagem
1.4. Gerenciamento de memória
1.5. Introdução ao teste unitário

2) HERANÇA E POLIMORFISMO
2.1. Relacionamento de generalização/especialização
     2.1.1. Hierarquias de herança
     2.1.2. O princípio da substituição
     2.1.3. Sobrescrita de métodos
2.2. Polimorfismo
     2.2.1. Explorando o polimorfismo
     2.2.2. Classes abstratas
     2.2.3. A classe Object
     2.2.4. O operador instanceof
     2.2.5. Interfaces
2.3. Parametrização de tipos
2.4. Problemas de modelagem

3) ENTRADA E SAÍDA E TRATAMENTO DE EXCEÇÕES
3.1. Tratamento de exceções
     3.1.1. Lançamento de exceções
     3.1.2. Captura de exceções
     3.1.3. Entendendo a hierarquia de exceções padrão
     3.1.4. Modelando exceções
3.2. Leitura e escrita de arquivos texto
     3.2.1. Leitura de dados
     3.2.2. Gravação de dados
     3.2.3. Formatação de dados
     3.2.4. Armazenamento e recuperação de objetos

4) PROJETO DE SISTEMAS ORIENTADOS A OBJETOS
4.1. Princípio de Projeto Orientado a Objetos
     4.1.1. Encapsulamento, coesão, acoplamento
     4.1.2. Heurísticas de projeto
4.2. Introdução à reutilização
     4.2.1. Padrões de projeto
     4.2.2. Frameworks
     4.2.3. Componentes

5) A API DE COLEÇÕES
5.1. Coleções
     5.1.1. A estrutura da API de coleções
     5.1.2. Listas, filas e pilhas
     5.1.3. Conjuntos
     5.1.4. Mapas
     5.1.5. Resolução de problemas
5.2. Expressões lambda e predicados

6) INTERFACE DE USUÁRIO GRÁFICA
6.1. O framework de interface de usuário
6.2. Hierarquia de componentes
6.3. Eventos e ações
6.4. Janelas e painéis
6.5. Menus

../Imagens/emban15.png (1469 bytes)

Bibliografia

Básica

·         HORSTMANN, C. Java for everyone: late objects. 2nd ed. Danvers: Wiley, 2013. 589 p.

·         RAMNATH, S.; DATHAN, B. Object-oriented analysis and design. New York: Springer, 2010. 440 p.

·         WEISFELD, M. The object-oriented thought process. 4th ed. Addison Wesley, 2013. 36 p

·         MEYER, B. Object Oriented Software Construction. 2a ed. Prentice-Hall, 1997. 1254 p.

Complementar

·         BOOCH, G.; MAKSIMCHUK, R. A.; ENGLE, M. W.; YOUNG, B. J.; CONALLEN J.; HOUSTON, K. A. Object-oriented analysis and design with applications. 3rd ed. Addison Wesley, 2007. 720 p.

·         DEITEL, P.; DEITEL, H. Java: how to program. 9th ed. Prentice Hall, 2011. 1496 p.

·         FARRELL, J. An object-oriented approach to programming logic and design. 4th ed. Cengage Learning, 2012. 560 p.

·         GAMMA, E.; JOHNSON, R.; VLISSIDES, J.M.; HELM, R.; FOWLER, M. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2002. 364 p.

·         GOODRICH, M. T.; TAMASSIA, R. Estruturas de dados e algoritmos em Java. 4a ed. Porto Alegre: Bookman, 2012. 600 p.

Recursos WEB

·         http://www.oracle.com/technetwork/java/index.html

·         http://www.eclipse.org

·         http://grepcode.com

·         https://docs.oracle.com/javase/tutorial/

·         http://astah.net/editions/community

·         The Java Modeling Language: http://www.eecs.ucf.edu/~leavens/JML/index.shtml

../Imagens/emban15.png (1469 bytes)

Critérios de Avaliação

G1 = (P1 + 2*P2 + 2*T + ME) / 6

Quanto à P1: Prova escrita, abordando, geralmente, os conteúdos relacionados com as unidades 1 à 2.

Quanto à P2: Prova escrita, abordando os conteúdos até a unidade 6.

Quanto à PS: Esta prova escrita será aplicada somente para os alunos que não puderam comparecer nas provas P1 ou P2, sendo que o conteúdo contempla todas as unidades.

Quanto ao ME: Corresponde a média dos exercícios realizados ao longo do semestre.

Quanto ao T: Corresponde ao desenvolvimento de um estudo de caso.

OBS. 1: Será estimulada a pesquisa de alguns conteúdos extraclasse e que serão posteriormente avaliados.
OBS. 2: 75% de presença é necessário para aprovação (tanto em G1 como em G2) e o grau mínimo em G1 para realizar G2 é 4.0.

../Imagens/emban15.png (1469 bytes)

Datas das Avaliações

P1

22 / 09 / 2017

P2

21 / 11 / 2017

PS

24 / 11 / 2017

T

01 / 12 / 2017

G2

05 / 12 / 2017

../Imagens/emban15.png (1469 bytes)

../Imagens/E-MAIL.JPG (3237 bytes)Comentários, dúvidas, sugestões, envie um mail para isabel.manssour at pucrs dot br

../Imagens/emban15.png (1469 bytes)

 Última alteração em 27 de julho de 2017.