Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes



Documentos relacionados
Conceitos de Orientação a Objetos. Mestrado em Ciência da Computação Disciplina: Engenharia de Software Profa. Dra. Elisa H. M.

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

UML: Diagrama de Casos de Uso, Diagrama de Classes

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

2ª Lista de Exercícios Orientação a Objetos

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Computação II Orientação a Objetos

Análise e Projeto Orientados por Objetos

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Herança. Algoritmos e Programação II. Aula 5 Herança

Exercícios de Revisão Java Básico

Programação Orientada a Objetos

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Prof. Jhonatan Fernando

Orientação a Objetos com Java

Análise e Projeto Orientados por Objetos

Implementando uma Classe e Criando Objetos a partir dela

Programação Orientada a Objetos em Java

Introdução a Java. Hélder Nunes

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Análise de Programação

Programação Orientada a Objeto

UNIP UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA (ICET) CURSO DE CIÊNCIAS DA COMPUTAÇÃO. O Paradigma da Orientação a Objeto

3. PARADIGMA ORIENTADO A OBJETOS

Encapsulamento de Dados

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Fundamentos de Banco de Dados e Modelagem de Dados

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Desenvolvimento OO com Java Orientação a objetos básica

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

UML Diagramas Estruturais Classes

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Capítulo 8. Introdução UML

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Programação Orientada a Objetos (DPADF 0063)

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

2 Engenharia de Software

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Prof. Me. Marcos Echevarria

Figura 1 Tela de escolha das atividades do curso

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

UML Unified Modeling Language

AULA 1: PARADIGMAS DE PROGRAMAÇÃO

Linguagens de Programação Aula 10

Especificação do Trabalho

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Programação com Acesso a BD. Programação com OO Acesso em Java

PROJETO (OU DESIGN) DO SOFTWARE Diagrama de Estrutura

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

Desenvolvimento estruturado versus orientado a objetos.

Desenvolvimento de uma Etapa

O Processo de Engenharia de Requisitos

Orientação a Objetos

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica Professor: Danilo A. Silva

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Programação Orientada a Objetos

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4

Modelagem com UML. Fabio Perez Marzullo. IEEE Body of Knowledge on Services Computing Committee on Services Computing, IEEE Computer Society

Profº. Enrique Pimentel Leite de Oliveira

Programação Orientada a Objetos (DPADF 0063)

Figura 5 - Workflow para a Fase de Projeto

Micro Mídia Informática Fevereiro/2009

Análise e Design OO com UML

Tipo Abstrato de Dados

Visual Basic.NET Programação Orientada a Objetos Lista de Exercícios

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

LINGUAGEM ORIENTADA A OBJETOS

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Trabalho 3: Agenda de Tarefas

Diagrama de classes. Ricardo Roberto de Lima UNIPÊ APS-I

Linguagem de Programação I. Orientação a Objetos em Java

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Programação Avançada

DESENVOLVENDO O SISTEMA

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

Algoritmos e Estruturas de Dados I

Banco de Dados. MER Estendido. Profa. Flávia Cristina Bernardini

Linguagem de Programação I

Orientação a Objetos e a Linguagem Java

GBD PROF. ANDREZA S. AREÃO

Administração Central Unidade de Ensino Médio e Técnico - Cetec. Ensino Técnico

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Roteiro do Programa e Entrada/Saída

Classes Abstratas e Interfaces

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Aula 3 Objeto atual com referencia THIS e Classes com Herança

AJUDA - FORMULÁRIO DE PROPOSTA ON-LINE - AVG

Especificação do 3º Trabalho

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

Programação Orientada a Objetos em Java. Herança

Transcrição:

Métodos de Construção de Software: Orientação a Objetos Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Problemas com Modelagem Funcional Falta de aproximação de conceitos com o mundo real vivemos num mundo de objetos Dados e processos separados Tipos abstratos de dados

Introdução à Orientação a Objetos (O-O) Iniciou com as linguagens de programação, 1980s. Ex. Simula, Smalltalk, Eifel, C++, Java. Aplicada à análise e projeto, 1990s Grandes apelos Possibilidade de construir software a partir de componentes existentes ao invés de sempre começar do zero. Possibilidade de evoluir entre os estágios de desenvolvimento mantendo consistência entre os modelos e conceitos.

Conceitos de O-O Objeto é algo similar à uma instância de uma entidade como visto na análise estruturada, pois é uma unidade da qual queremos representar informações no sistema. Objetos possuem atributos Um conjunto de atributos forma o estado do objeto Objetos possuem operações (serviços ou métodos) que manipulam o estado do objeto. As operações associadas com um objeto são chamadas de interface pois constituem o único meio de manipular o estado do objeto.

Ilustração de Objeto Atributos (Estado) Operações (Interface) Nome: José Endereço: Av. Colombo, 5790 RecuperaNome RecuperaEndereço AtribuiEndereço José Av. Colombo, 5790 Rua Bento Munhoz, 5

Comunicação entre objetos Passagem de mensagens Chamada de uma operação sobre um objeto. Um sistema orientado a objetos consiste de vários objetos que se comunicam entre si.

Ilustração de Comunicação Objeto emissor Objeto receptor Atributos Atributos Operações Valores de retorno Operações Mensagem [destino, operação, parametros]

Vantagens O-O Encapsulamento (ocultação de informação) Os dados associados a um objeto não estão disponíveis diretamente para os usuários do objeto. A única maneira de utilizar os dados é através das operações visíveis na interface. A implementação das operações não são visíveis ao usuário. Indepedência de dados implementação das operações podem ser alteradas sem afetar os usuários dos objetos. A interface continua a mesma, apenas as ações internas são modificadas.

Vantagens O-O Reutilização A abordagem O-O facilita reutilização pois objetos encapsulam dados e operações. Exemplo: o objeto livro pode ser reutilizado em um sistema de venda de livros.

Classes Objetos que tem características comuns (atributos e operações) são agrupados em categorias chamadas de Classes. Animais Mamiferos Reptéis Ovíparos

Relacionamento entre classes Biblioteca -Nome -Endereço -Número_estante +Recupera_Nome() +Recupera_Endereço() +AtrNum_Estante() 1 -Armazena -Registra 1 * Emprestador -Num_Carteira -Nome -Endereço -Data_Nasc -Num_Livro_Emp +Recupera_Nome() +Recupera_DatNasc() +Recupera_Endereço() +AtrEndereço() +AtrNumLivrosEmp() Livro * -NumCatalogo -Autor -Título -ISBN +Recupera_NumCat() +Recupera_Autor() +Recupera_Título() +AtrNumCat()

Herança Classes com atributos e operações iguais podem ser agrupadas em hierarquias. Superclasse Subclasse Pessoa -Nome -Endereço -DataNasc Aluno -RA Professor -Departamento Funcionário -Setor

Herança múltipla (Sommerville)

Polimorfismo Aplicação da mesma operação a diferentes tipos de objetos. Ex. writeln do Pascal que imprime qualquer tipo parâmetro (string, inteiro, real). graph +draw() linha Torta Histograma +draw() +draw() +draw() A operação draw() é overloaded.

Exemplos de Código Programa para mostrar formatos na tela class shape { point center; color co1; //... public: void move(point to) { center=to; draw();} point where() {return center;} virtual void draw(); virtual void rotate(int); //... };

Exemplos de Código Programa para mostrar formatos na tela class circle: public shape { int radius; Public: void draw(); void rotate(int i); //... };

Exemplos de Código Programa para mostrar formatos na tela Criando ou declarando um círculo circle* umcírculo = new circle(); circle umcírculo; Referência a umcírculo x = umcírculo->where() umcírculo.where(); Vetor para girar todos os formatos de 45 o for (int i = 0; i<no_of_shapes; i++) shape_vec[i].rotate(45);

Exemplos (Sommerville)

Agregação de objetos (Sommerville)

Exercício Imagine um sistema para controlar cursos de treinamento em uma empresa Quais seriam as classes? Quais os potenciais atributos e operações entre as classes? Quais os relacionamentos entre as classes? Quais as potenciais mensagens entre as classes?

Possível Solução Agendar cursos Preparar material Contratar instrutores Marcar exames Gerenciar cursos em andamento Tópico -bibliografia -carga horária +AtrCH() +RecTópico() * Curso -Título -Carga_horária +Contrata() 1 1 1 Instrutor -Nome -Endereço -Instituição +AtrNome() +RecNome() +AtrCurso() * CursoAndamento -Local -NumAlunos -Custo +AtrLocal() +AtrNumAlunos() * Cliente -Nome -Endereço +AtrNome() +AtrEnd() +InfoCusto() *