UNIVERSIDADE FEDERAL DE UBERLÂNDIA
  

Timbre

Ficha de Componente Curricular

 

CÓDIGO:

 

COMPONENTE CURRICULAR:

PROGRAMAÇÃO ORIENTADA A OBJETOS

UNIDADE ACADÊMICA OFERTANTE:

FACULDADE DE ENGENHARIA ELÉTRICA

SIGLA:

FEELT

CH TOTAL TEÓRICA:

30 horas

CH TOTAL PRÁTICA:

30 horas

CH TOTAL:

60 horas

 

OBJETIVOS

Ao final do curso o aluno será capaz de:

  1. Analisar problemas computacionais e propor soluções utilizando conceitos de programação orientada a objetos, como classes, objetos, herança e polimorfismo.

  2. Desenvolver programas em uma linguagem de programação orientada a objetos.

  3. Reconhecer problemas e aplicar padrões de projeto específicos na solução destes problemas

  4. Refatorar sistemas orientados a objetos de acordo com a necessidade

  5. Utilizar e desenvolver sistemas orientados a objetos em nuvem.

 

Ementa

Introdução dos conceitos fundamentais de programação orientada a objetos, como classes, objetos, encapsulamento, herança e polimorfismo. Conhecimento dos membros que tipicamente compõem classes: construtores, destrutores, variáveis e métodos. Entendimento e aplicação dos conceitos de orientação a objetos em linguagens de programação que suportem tal paradigma. Desenvolvimento de sistemas usando programação orientada a objetos. Estrutura de dados: Pilha, Fila e Fila com prioridade. Reuso de software, frameworks de aplicação e tecnologia de componentes. Padrões de projeto e de arquitetura, bad smells e refatoração de software. Uso de linguagens orientadas a objetos em ambiente nuvem.

 

PROGRAMA


1. Introdução à programação orientada a objetos
1.1. Histórico da programação orientada a objetos
1.2. Programação procedimental versus programação orientada a objetos

2. Conceitos fundamentais de programação orientada a objetos
2.1. Classes concretas, classes abstratas e interfaces
2.2. Objetos, atributos, métodos, construtores e destrutores
2.3. Membros de classe e membros de objetos
2.4. Métodos concretos e métodos abstratos
2.5. Pacotes, visibilidade e encapsulamento
2.6. Generalização, especialização e herança
2.7. Polimorfismo
2.8. Ligação estática e ligação dinâmica
2.9. Estrutura de Dados Pilha, conceitos e aplicação.
2.10. Estrutura de Dados Fila, conceitos e aplicação.
2.11. Estrutura de Dados Fila com Prioridade, conceitos e aplicação.

3. Uso de bibliotecas em linguagens orientadas a objetos
3.1. Tratamento de exceções
3.2. Uso de APIs
3.3. Manipulação de arquivos
3.4. Interfaces gráficas simples
3.5. Acesso aos bancos de dados

4. Desenvolvimento de um sistema orientado a objetos
4.1. Implementação usando programação orientada a objetos
4.2. Documentação do sistema desenvolvido

5. Introdução a reuso e frameworks de aplicação

6. Idiomas e padrões de programação orientada a objetos
6.1. Padrões de projeto (GoF)
6.2. Padrões de arquitetura (MVC e Broker)

7. Desenvolvimento de um sistema orientado a objetos
7.1. Implementação do sistema usando padrões de projeto e de arquitetura
7.2. Documentação do sistema desenvolvido
7.3. Implementação de sistemas OO em nuvem
 

BIBLIOGRAFIA BÁSICA

  1. CARDOSO, Caíque. Orientação a objetos na prática: aprendendo orientação a objetos com Java. Rio de Janeiro: Ciência Moderna, 2006.

  2. FREEMAN, E.; SIERRA K. Use a cabeça! padrões e projetos. 2. ed. rev. Rio de Janeiro: Alta Books, 2009.

  3. PREISS, Bruno R. Estruturas de dados e algoritmos: padrões de projetos orientados a objetos com java. Rio de Janeiro: Campus, 2001.

BIBLIOGRAFIA COMPLEMENTAR

  1. BOOCH, Grady. UML: guia do usuário. Rio de Janeiro: Campus, 2012.

  2. FOWLER, Martin. Refactoring: improving the design of existing code. Reading: Addison-Wesley, 1999.

  3. GAMMA, ERICH. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2000.

  4. HORSTMANN, Cay S. Padrões e projeto orientados a objetos. Porto Alegre: Bookman, 2007.

  5. LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007.

  6. SEDGEWICK, Robert. Introduction to programming in Java: an interdisciplinary approach. Boston: Addison-Wesley, 2008.

 

aprovação

 

Prof. Dr. Augusto Wohlgemuth Fleury Veloso da Silveira

Coordenador do Curso de Graduação em Engenharia Elétrica

Prof. Dr. Sérgio Ferreira de Paula Silva

Diretor da Faculdade de Engenharia Elétrica

 


logotipo

Documento assinado eletronicamente por Augusto Wohlgemuth Fleury Veloso da Silveira, Coordenador(a), em 03/05/2023, às 15:29, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


logotipo

Documento assinado eletronicamente por Sergio Ferreira de Paula Silva, Diretor(a), em 04/05/2023, às 15:22, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 4460873 e o código CRC CCF738A0.




Referência: Processo nº 23117.080333/2022-16 SEI nº 4460873