Programação Orientada a Objetos



Documentos relacionados
Programação Orientada a Objetos

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Orientação a Objetos com Java

Introdução à Linguagem Java

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

Programação de Computadores - I. Profª Beatriz Profº Israel

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Programação Orientada a Objetos

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

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

Linguagens de. Aula 02. Profa Cristiane Koehler

Desenvolvimento Web TCC Turma A-1

Programação Orientada a Objetos (DPADF 0063)

Programação de Computadores II TCC Turma A-1

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

2 Diagrama de Caso de Uso

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Profº. Enrique Pimentel Leite de Oliveira

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

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML - Unified Modeling Language

Prof. Esp. Adriano Carvalho

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

1. Apresentação Objetivos

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Organização e Arquitetura de Computadores I. de Computadores

Engenharia de Software III

FBV - Linguagem de Programação II. Um pouco sobre Java

Orientação à Objetos. Aécio Costa

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Linguagem de Programação Introdução a Linguagem Java

Lógica de Programação

Engenharia de Requisitos Estudo de Caso

Wilson Moraes Góes. Novatec

Análise e Projeto Orientados por Objetos

Programação Orientada a Objetos

CURSO DE PROGRAMAÇÃO EM JAVA

Aspectos de Segurança em Programação com Java

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)

Programação de Computadores - I. Profª Beatriz Profº Israel

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Sistemas Operacionais

Especificação do 3º Trabalho

Java Básico. Aula 1 por Thalles Cezar

Informática I. Aula 6. Aula 6-12/09/2007 1

Programação de Computadores II: Java. / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Objetivos do Curso. Você será capaz de:

Notas de Aula 04: Casos de uso de um sistema

ESTUDO DE CASO WINDOWS VISTA

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Java. Marcio de Carvalho Victorino

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Sistemas para internet e software livre

Orientação a Objetos

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Adriano Reine Bueno Rafael Barros Silva

PROGRAMAÇÃO JAVA. Parte 1

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Feature-Driven Development

Módulo 4: Gerenciamento de Dados

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

3 SCS: Sistema de Componentes de Software

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Aspectos técnicos do desenvolvimento baseado em componentes

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Modelagemde Software Orientadaa Objetos com UML

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Sistemas Operacionais

A Linguagem de Modelagem Unificada (UML)

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

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

Gerenciador de Log Documento Visão. Versão 2.0

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Qualidade de Software

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Engenharia de Software I

Um pouco do Java. Prof. Eduardo

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

EMENTA DO CURSO. Tópicos:

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Disciplina de Banco de Dados Introdução

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Roteiro do Programa e Entrada/Saída

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Orientação a Objetos com Java

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Transcrição:

Programação Orientada a Objetos Aulas 01-04 Prof. Adilson G. Damasceno Este material não substitui o livro texto, as referências recomendadas e nem as aulas expositivas. 10/09/2014 Aula 01 1

Paradigmas de desenvolvimento O que é um paradigma? Um exemplo, um modelo, um padrão; Um conjunto de ideias, uma base filosófica. Um paradigma de desenvolvimento agrupa métodos e técnicas que seguem um mesmo conjunto de princípios; Dois dos mais conhecidos são: Desenvolvimento Estruturado; Orientação a Objetos(OO). Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz, ou seja, uma teoria, um conhecimento que origina o estudo de um campo científico; uma realização científica com métodos e valores que são concebidos como modelo; uma referência inicial como base de modelo para estudos e pesquisas.(http://pt.wikipedia.org/wiki/paradigma) 10/09/2014 Aula 01-2

Paradigmas de desenvolvimento Estruturado: Modelo entrada processamento saída; Dados separados das funções; Orientado a Objetos (OO): O mundo é composto por objetos; Objetos combinam dados e funções; Conceitos do problema são modelados como classes de objetos que são associados e interagem entre si. 10/09/2014 Aula 01-3

Uso de ferramentas CASE (Computer Aided Software Engineering) na disciplina ArgoUML http://download.cnet.com/argouml/3000-6675_4-10762692.html (Preferencial por gerar código em Java a partir do Diagrama de Classes) Astah -http://astah.net/downloadstaruml http://staruml.sourceforge.net/docs/userguide(en)/ch05_1.html Qualquer outra que o grupo quiser 10/09/2014 Aula 01-4

Modelagem de Classe 10/09/2014 Aula 01-5

Programação Orientada a Objetos O foco deste curso é na programação OO. No entanto, é preciso entender os conceitos por trás do paradigma e aprender a modelar soluções OO. Um sistema construído usando um método orientado a objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamento de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens. Eduard Yourdon 10/09/2014 Aula 01 6

Definição de Programas Estruturados 10/09/2014 Aula 01-7

Conceitos de orientação a objetos: classes e objetos; atributos e comportamentos Objetos são instâncias de classes, que determinam qual informação um objeto contém e como ele pode manipulá-la. Um dos grandes diferenciais da programação orientada a objetosem relação a outros paradigmas de programação que também permitem a definição de estruturas e operações sobre essas estruturas está no conceito de herança, mecanismo através do qual definições existentes podem ser facilmente estendidas. Juntamente com a herançadeve ser enfatizada a importância do polimorfismo, que permite selecionar funcionalidades que um programa irá utilizar de forma dinâmica, durante sua execução. (http://goo.gl/oqu7gz) 10/09/2014 Aula 02 8

Classes A definição de classes e seus inter-relacionamentos é o principal resultado da etapa de projeto de software. Em geral, esse resultado é expresso em termos de alguma linguagem de modelagem, tal como UML. Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades ou atributos o objeto terá. A definição de uma classe descreve também qual o comportamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades são descritas através de métodos. Um método nada mais é que o equivalente a um procedimento ou função, com a restrição que ele manipula apenas suas variáveis locais e os atributos que foram definidos para a classe. 10/09/2014 Aula 02 9

Classes Na Unified Modeling Language (UML), a representação para uma classe no diagrama de classes é tipicamente expressa na forma gráfica, como se observa nessa figura, a especificação de uma classe é composta por três regiões: o nome da classe, o conjunto deatributosdaclasseeoconjuntodemétodosdaclasse. 10/09/2014 Aula 02 10

Classes O nome da classe é um identificador para a classe, que permite referenciá-la posteriormente -por exemplo, no momento da criação de um objeto. O conjunto de atributosdescreve as propriedades da classe. Cada atributoé identificado por um nome e tem um tipo associado. Os métodosdefinem as funcionalidades da classe, ou seja, o que será possível fazer com objetos dessa classe. Cada método é especificado por uma assinatura, composta por um identificador para o método (o nome do método), o tipo para o valor de retorno e sua lista de argumentos, sendo cada argumento identificado por seu tipo e nome. Através do mecanismo de sobrecarga(overloading), dois métodosde uma classe podem ter o mesmo nome, desde que suas assinaturas sejam diferentes. 10/09/2014 Aula 02 11

Classes O modificador de visibilidade pode estar presente tanto para atributos como para métodos. Em princípio, três categorias de visibilidade podem ser definidas: público, denotado em UML pelo símbolo +: nesse caso, o atributo ou método de um objeto dessa classe pode ser acessado por qualquer outro objeto(visibilidade externa total); privativo, denotado em UML pelo símbolo -: nesse caso, o atributo ou método de um objeto dessa classe não pode ser acessado por nenhum outro objeto (nenhuma visibilidade externa); protegido, denotado em UML pelo símbolo #: nesse caso, o atributo ou método de um objeto dessa classe poderá ser acessado apenas por objetos de classes que sejam derivadas dessa através do mecanismo de herança. 10/09/2014 Aula 02 12

Objetos Um objeto é um elemento que representa, no domínio da solução, alguma entidade (abstrata ou concreta) do domínio de interesse do problema sob análise. Objetos similares são agrupados em classes. No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto. Um programa orientado a objetos é composto por um conjunto de objetos que interagem através de trocas de mensagens. Na prática, essa troca de mensagem traduz-se na aplicação de métodos a objetos. 10/09/2014 Aula 02 13

Princípios fundamentais Abstração: Modelos mentais :visão simplificada do mundo construída por cada um em cada situação; Abstrair consiste em ignorar aspectos irrelevantes e concentrar nos principais. Abstração de Dados: Um tipo é definido por suas operações; Ex.: Um tipo pilha é definido por suas operações empilhar e desempilhar. 10/09/2014 Aula 01-14

Princípios fundamentais Abstração de Procedimentos: Uma operação com efeito bem definido pode ser tratada como atômica, mesmo que ela faça uso de outras operações de mais baixo nível; calcularsalarioliquido: definida em termos de obtersalariobruto, calcularimposto, calculardescontos, etc. Encapsulamento: Separar os aspectos externos (o que faz) dos aspectos internos (como faz): oaspectos externos = interface, contrato; oaspectos internos = implementação. Complemento da abstração: oabstração enfoca o comportamento observável de um objeto; oencapsulamento enfoca a implementação que origina este comportamento. Promove maior estabilidade: oclientes do objeto só conhecem sua interface; opodemos alterar a implementação de uma operação sem afetar o restante do sistema. 10/09/2014 Aula 02 15

Princípios fundamentais Modularidade: Decomposição do sistema em módulos: ocoesos (baixo acoplamento); oautônomos; ode interface simples e coerente. Fundamental para o reuso e extensão. Hierarquia: É uma forma de arrumar as abstrações e simplificar o entendimento do problema; Também promovem o reuso; Sinergia para administrar a complexidade: oabstração auxilia a identificar os conceitos relevantes do mundo real; oencapsulamento oculta a visão interna das abstrações identificadas; omodularidade nos dá um meio de agrupar logicamente abstrações relacionadas; opor fim, abstrações formam hierarquias. 10/09/2014 Aula 02 16

Diagrama de Casos de Uso Esse diagrama documentao que o sistema fazdo ponto de vista do usuário. Em outras palavras, ele descreve as principais funcionalidades do sistema e a interação dessas funcionalidades com os usuários do mesmo sistema. Nesse diagrama não nos aprofundamos em detalhes técnicos que dizem como o sistema faz. Este artefato é comumente derivado da especificação de requisitos, que por sua vez não faz parte da UML. Pode ser utilizado também para criar o documento de requisitos. Diagramas de Casos de Uso são compostos basicamente por quatro partes: Cenário: Sequência de eventos que acontecem quando um usuário interage com o sistema. Ator: Usuário do sistema, ou melhor, um tipo de usuário. Caso de Uso: É uma tarefa ou uma funcionalidade realizada pelo ator (usuário, ou outros sistema que interajam com o nosso) Comunicação: è o que liga um ator com um caso de uso. Obs: Consultem o anexo (RF-01 Matricular Aluno.docx) para ver um exemplo de especificação de Caso de Uso. 10/09/2014 Aula 03-17

Diagrama de Casos de Uso 10/09/2014 Aula 03-18

História do Java Em 1992, A Sun criou um time (conhecido como Green Team) para desenvolver inovações tecnológicas; Esse time foi liderado por James Gosling, considerado o Pai do Java; Ideia de criar um interpretador para pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos; O projeto resultou em uma linguagem baseada em C e C++ chamada Oak; 10/09/2014 Aula 04 19

História do Java A inspiração do nome Java surgiu em uma cafeteria local, cujo café vinha de uma ilha da Indonésia chamada Java; 1993 e a Sun aposta no imediato potencial de utilizar Java para criar páginas da Web com o chamado conteúdo dinâmico; Na metade de 1994, construiu um browser chamado HotJava; Em maio de 1995, a Sun anunciou Java formalmente; Em Janeiro de 1996, a Netscape decide dar suporte a Java (browser Navigator); Em 1996, foi disponibilizada a primeira versão do Java (JDK 1.0); 10/09/2014 Aula 04 20

Principais Características Orientada a objetos Java é uma linguagem puramente orientada a objetos; Tudo em Java são classes ou instâncias de classes, com exceção de seus tipos primitivos de dados. Sem Ponteiros Java não possui ponteiros, isto é, Java não permite a manipulação direta de endereços de memória. 10/09/2014 Aula 04 21

Principais Características Coletor de lixo (Garbage Collector) Possui um mecanismo automático de gerenciamento de memória. Permite Multithreading Recursos que permite o desenvolvimento de aplicações capazes de executar múltiplas rotinas concorrentemente. 10/09/2014 Aula 04 22

Principais Características Independente de plataforma Programas Java são compilados para uma forma intermediária (bytecodes). Tratamento de exceções Permite o tratamento de situações excepcionais. Possui exceções embutidas e permite a criação de novas exceções. Segurança Pode executar programas via rede com restrições de execução, além de itens específicos da linguagem, como ser fortemente tipada, ter assinaturas digitais em suas classes compiladas, etc; 10/09/2014 Aula 04 23

Principais Características Máquina Virtual Java Utiliza o conceito de máquina virtual; Camada responsável por interpretar os bytecodes. 10/09/2014 Aula 04 24

Fases de um programa Java Pasta Src Pasta bin 10/09/2014 Aula 04 25

Fases de um programa Java Os programas Java normalmente passam por cinco fases para serem executados: Fase 1 (Edição): Consiste em editar um arquivo com código em Java e salvá-lo com a extensão.java; Fase 2 (Compilação): Comando javac compila o programa. O compilador Java traduz(.java =>.class); Fase 3 (Carga): Carrega o programa na memória antes de ser executado. Carregador de classe, pega o arquivo(s).class que contém os bytecodes. Fase 4 (Verificação): O verificador assegura que os bytecodes são válidos e não violam as restrições de segurança de Java. Fase 5 (Execução): A JVM máquina virtual Java (Interpretador) interpreta (em tempo de execução) o programa, realizando assim a ação especificada pelo programa. 10/09/2014 Aula 04 26

Plataformas Java A linguagem Java conta com três ambientes de desenvolvimento: JSE (Java Platform, Standard Edition): É a base da plataforma; inclui o ambiente de execução e as bibliotecas comuns são voltadas a aplicações para PCs e servidores. JEE (Java Platform, Enterprise Edition): A edição voltada para o desenvolvimento de aplicações corporativas e para Internet. JME (Java Platform, Micro Edition): A edição para o desenvolvimento de aplicações para dispositivos móveis e embarcados. 10/09/2014 Aula 04 27

Plataformas Java Além disso, pode-se destacar outras duas plataformas Java mais específicas: Java Card:Voltada para dispositivos embarcados com limitações de processamento e armazenamento, como smart cards. JavaFX:Plataforma para desenvolvimento de aplicações multimídia em desktop/web (JavaFXScript) e dispositivos móveis (JavaFX Mobile). 10/09/2014 Aula 04 28

Componentes de uma plataforma Java: JRE (Java Runtime Environment) É composta de uma JVM e por um conjunto de bibliotecas que permite a execução de softwares em Java. Apenas permite a execução de programas, ou seja é necessário o programa Java compilado (.class). JDK (Java DevelopmentKit ) É composto basicamente por: Compilador (javac) + JVM; Visualizador de applets, bibliotecas de desenvolvimento(os packages java); 10/09/2014 Aula 04 29

Componentes de uma plataforma Java: JDK (Java DevelopmentKit ) É composto basicamente por: Programa para composição de documentação (javadoc); Depurador básico de programas (Java Debuggerjdb) e a versão runtime do ambiente de execução (JRE). 10/09/2014 Aula 04 30

Anatomia de um Aplicativo do Android Agora que você criou seu primeiro aplicativo HelloWorld para o Android, é hora de dissecar as partes internas do projeto Android e examinar todas as partes que fazem com que tudo funcione. As várias pastas e seus arquivos são os seguintes: src contém os arquivos-fontes.java de seu projeto. Neste exemplo, só há um arquivo, MainActivity.java. O arquivo MainActivity.java é o arquivo-fonte de sua atividade. Você vai escrever o código para seu aplicativo neste arquivo; biblioteca Android 2.3 este item contém um arquivo, android.jar, que contém todas as bibliotecas de classe necessárias para um aplicativo do Android; gen contém o arquivo R.java, um arquivo gerado pelo compilador que referencia todos os recursos encontrados em seu projeto. Você não deve modificar este arquivo; assets esta pasta contém todos os recursos usados por seu aplicativo, tais como HTML, arquivos de texto, bases de dados, etc; 10/09/2014 Aula 04 31

Anatomia de um Aplicativo do Android res esta pasta contém todos os recursos usados em seu aplicativo. Ela também contém algumas subpastas: drawable-<resolução>, layout, e values. AndroidManifest.xml este é o arquivo de manifesto de seu aplicativo para o Android. Aqui, você especifica as permissões necessárias para seu aplicativo, bem como outras funcionalidades(tais como intent-filters, receptores, etc.). 10/09/2014 Aula 01-32