Paradigmas de Desenvolvimento de Software. Gap semântico. Modelagem Conceitual. Modelagem Conceitual. Programação Orientada a Objetos

Tamanho: px
Começar a partir da página:

Download "Paradigmas de Desenvolvimento de Software. Gap semântico. Modelagem Conceitual. Modelagem Conceitual. Programação Orientada a Objetos"

Transcrição

1 Programação Orientada a Objetos Prefácio para a POO Paradigmas de Desenvolvimento de Software Maneiras diferentes de pensar em resolver os problemas através de sistemas computacionais: Exemplos: Estruturado (funções e módulos), Orientado a Objetos Abstração e encapsulamento Tipos de Dados Abstratos Histórico das Linguagens de POO Reinaldo Gomes reinaldo@cefet-al.br 2 Gap semântico Gap semântico Distância entre o problema no mundo real e o modelo abstrato construído; Quanto menor, mais rápida será a construção da solução; Portanto, diminuir o gap semântico tornou-se um dos objetivos da Engenharia de Software; O paradigma orientado a objetos busca meios de diminuir este gap. 3 4 Modelagem Conceitual Se essas abstrações não tiverem uma expressão direta (ou próxima) do mundo computacional, a complexidade da solução será aumentada 5 Modelagem Conceitual Tarefa mais importante de um processo de desenvolvimento de software realiza-se a análise do domínio da aplicação e a modelagem das entidades e fenômenos desse domínio que o projetista t considera importante, t independentemente da implementação A tarefa de modelagem conceitual envolve dois mecanismos: Abstração Representação 6 1

2 Modelagem Conceitual Paradigma Orientado a objetos Raciocinar e solucionar problemas em termos de objetos, diretamente associados às entidades do mundo real; O mundo é composto por objetos ; Objetos podem representar entidades concretas ou conceituais (uma estratégia de jogo, por ex.) casa Pessoa 7 Árvore 8 Vantagens: Por que utilizar OO? Facilidade maior para modelagem de objetos do mundo real; Necessidade de construção de softwares mais complexos; Maior extensibilidade: Facilidade de incrementar funcionalidades Facilidade de manutenção Maior reuso Conceitos Chave de OO Auxiliam a administrar a complexidade Guiam toda a tarefa de modelagem Conceitos Abstração Objetos Herança Polimorfismo 9 10 Abstração Abstração: Abstração O resultado de uma operação mental de abstração depende não tanto do fenômeno observado, mas do interesse do observador Copyritght 1991 Grady Booch

3 Abstração Definição 1: Uma abstração denota as características essenciais de um objeto que o distinguem de outros tipos de objetos e assim provê uma fronteira conceitual firmemente definida, de acordo com a perspectiva do observador. [Grady Booch] Abstração Definição 2: () 2. Processo mental que consiste em escolher ou isolar um aspecto determinado de um estado de coisas relativamente complexo, a fim de simplificar a sua avaliação, classificação ou para permitir a comunicação do mesmo () Fonte: Dicionário Houaiss Abstração Definição 3: Uma abstração é uma visualização ou uma representação de uma entidade que inclui somente os atributos de importância em um contexto particular. [Robert Sebesta] 15 Abstração Abstração: Técnica para lidar com a complexidade de um problema. Destaca os aspectos importantes do objeto real abstraído, segundo perspectiva do observador Ignora os detalhes não relevantes para o observador Exemplos de uso da abstração no dia a dia: Dirigir um carro Usar um tocador de DVD ou outro dispositivo eletrônico Tomar um vôo num aeroporto Retirar dinheiro num caixa eletrônico 16 Exemplos de Abstrações Exemplos de Abstrações Isto não é o mundo! Como assim? Não são aviões alemães da segunda guerra! Wie geht es Ihnen? Danke! Es geht mir gut! Und Sie?

4 Exemplos de Abstrações Não são casas! Exemplos de Abstrações Não é você! Exemplos de Abstrações Não é uma ficha de preenchimento de dados! Abstração Abstração na programação: Abstração de processos: Dividimos um programa em subprogramas menores e mais fáceis de escrever e compreender ("dividir para conquistar"). Para usar um subprograma escrito por terceiros abstraímos a sua implementação e nos concentramos na sua interface. Abstração de dados: Serve para representarmos entidades reais do domínio do problema numa linguagem de programação, identificando as propriedades destas entidades que interessam ao sistema bem como suas operações Abstração de processos Abstração de dados Quem usa as funções abaixo interessa-se por: int char valor[] = "4"; int num; num = atoi(valor); printf("%f", sqrt(num)); Define-se uma estrutura e operações para um novo tipo: typedef struct st_stack { int top; float data[max]; stack; Saber quantos são os parâmetros para as funções chamadas e em que ordem são passados Saber quais os tipos dos parâmetros Saber os tipos dos dados que as funções retornam Saber o significado desse dado retornado 23 stack* newstack (int) { int push (stack *, float) { int pop (stack *, float *) { int isempty (stack) { int top (stack, float*) { int destroy (stack *) { 24 4

5 : Definição 1: é o processo de esconder todos os detalhes de um objeto que não contribuem para suas características essenciais. [Grady Booch] Copyritght 1991 Grady Booch Definição 2: O encapsulamento é um agrupamento de subprogramas e dos dados que eles manipulam. O encapsulamento, separada ou independentemente compilável,constitui um sistema abstraído e uma organização lógica para uma coleção de computações relacionadas. [Robert Sebesta] Considerações/recomendações: Nenhuma parte de um sistema complexo deve depender dos detalhes internos das outras partes Para uma abstração dar certo sua implementação deve estar encapsulada. [Grady Booch] : Esconde os detalhes internos de uma abstração Uma vez selecionada a implementação de uma abstração, ela deve ser tratada como um segredo da abstração e escondida dos seus clientes. versus abstração A abstração representa um conceito O encapsulamento impede os clientes de verem como este conceito foi implementado Exemplos de encapsulamentos O encapsulamento de um Circuito Integrado! Ele no raio-x

6 Exemplos de encapsulamentos tradicional de uma CPU! Exemplos de encapsulamentos Alguma dúvida sobre os benefícios do encapsulamento humano através da pele? meia-sola-metido-a-besta mas que é bonitinha, é! Exemplos de encapsulamentos comprometido! Hummm, to vendo como ele foi implementado! Não é humano! 33 nas linguagens: Em C, funções são completamente encapsuladas, mas a estrutura de um tipo abstrato de dados não é completamente protegida (encapsulamento imperfeito) Funções em outras bibliotecas têm acesso à estrutura t interna do tipo, violando o encapsulamento Em Modula-2 há como encapsular totalmente tanto dados como subprogramas Java e C++ possuem construções sintáticas para controlar o nível de visibilidade de um elemento (tipos, dados ou subprogramas) numa biblioteca 34 Exemplo em C: int topo; float dados[max]; pilha; Elementos visíveis fora da biblioteca. Elementos invisíveis Exemplo em Java: public class Pilha { private int topo; private float dados[]; Parte invisível fora da classe void cria_pilha (pilha *){ int empilha (pilha *, float) { int desempilha (pilha *, float *) { int ta_vazia (pilha) { int topo (pilha, float*) { int limpa (pilha *) { public Pilha (int tam) { public void empilha(float dado) { public float desempilha() { public float topo() { public boolean tavazia() { Obs: Em C, um arquivo de biblioteca define uma fronteira de encapsulamento. 35 Obs: Em Java, uma classe define uma fronteira de encapsulamento. Parte visível fora da classe (apenas para chamadas, a implementação é invisível sempre!) 36 6

7 Quando a linguagem não oferece um tipo nativo adequado para representar uma entidade do domínio do problema recorremos a um TAD "Um TAD é um encapsulamento que inclui somente a representação de dados de um tipo específico de dado e os subprogramas que fornecem as operação para esse tipo" [Sebesta99] TAD = encapsulamento(estrutura+operações) TIPO 37 Benefícios da programação com TADs: Método para organizar melhor um programa em unidades lógicas que podem ser compiladas em separado. Permite modificações localizadas na representação ou operações do tipo (promove a manutenibilidade) O encapsulamento promove a independência entre o TAD e seus clientes. Aumento da confiabilidade, uma vez que os clientes não têm acesso direto à representação do TAD, a não ser por suas operações. 38 Um TAD pilha implementado com arranjos: Um cliente para o TAD pilha: int topo; float dados[max]; pilha; Representação ou estrutura do TAD pilha void cria_pilha (pilha *){ int empilha (pilha *, float) { int desempilha (pilha *, float *) { int ta_vazia (pilha) { int topo (pilha, float*) { int limpa (pilha *) { Operações do TAD pilha 39 pilha p; Em respeito ao encapsulamento, float x; não há acessos à representação da pilha nos clientes, mas apenas às cria_pilha(&p); i suas operações. if (ta_vazia(p)) { empilha(&p, 1.2f); empilha(&p, 3.0f); topo(&p, &x); if (x == 3.0f) desempilha (&p, &y); limpe (&p); 40 A implementação muda para lista encadeada: O cliente não se altera (compare ao anterior): Modifica-se float dado; a representação do TAD struct st_pilha prox; nopilha; E a implementação typedef nopilha* pilha; das operações void cria_pilha (pilha *){ int empilha (pilha *, float) { int desempilha (pilha *, float *) { int ta_vazia (pilha) { int topo (pilha, float*) { int limpa (pilha *) { 41 pilha p; float x; cria_pilha(&p); i if (ta_vazia(p)) { empilha(&p, 1.2f); empilha(&p, 3.0f); topo(&p, &x); if (x == 3.0f) desempilha (&p, &y); limpe (&p); 42 7

8 Entretanto, se o encapsulamento fosse violado pilha p; float x; cria_pilha(&p); i if (p.topo == -1) { empilha(&p, 1.2f); empilha(&p, 3.0f); x = p.dados[p.topo]; if (x == 3.0f) desempilha (&p, &y); limpe (&p); Acessos à estrutura do TAD violam o encapsulamento e aumentam o acoplamento entre o TAD e seus clientes Estes acessos à representação do TAD são específicos para a implementação com arranjos. Não servem para a nova implementação com lista! 43 TADs e o encapsulamento A habilidade de mudar a representação de uma abstração sem perturbar quaisquer de seus clientes é o principal benefício do encapsulamento O O encapsulamento não impede o programador de fazer coisas estúpidas [Grady Booch] O encapsulamento previne acidentes, não fraudes [Bjarne Stroustroup] 44 O conjunto de operações públicas que um TAD oferece é chamado de Interface do TAD. Quando é que uma mudança num TAD exige mudanças nos clientes? Quando há mudanças na interface dele. Se a interface permanecer a mesma, os clientes não se alteram. Mudou a interface da operação desempilha: float dado; struct st_pilha prox; nopilha; typedef nopilha* pilha; void cria_pilha (pilha *){ int empilha (pilha *, float) { int desempilha (pilha *, float *) { int ta_vazia (pilha) { int topo (pilha, float*) { int limpa (pilha *) { Era assim Mudou a interface da operação desempilha: O cliente não se altera (compare ao anterior): float dado; struct st_pilha prox; nopilha; Mudou a interface! typedef nopilha* pilha; void cria_pilha (pilha *){ int empilha (pilha *, float) { float desempilha (pilha *) { int ta_vazia (pilha) { int topo (pilha, float*) { int limpa (pilha *) { 47 pilha p; float x; cria_pilha(&p); i if (ta_vazia(p)) { empilha(&p, 1.2f); empilha(&p, 3.0f); topo(&p, &x); if (x == 3.0f) desempilha (&p, &y); limpe (&p); Ferrou o cliente! 48 8

9 O que uma linguagem deve ter para permitir a definição de TADs? Permitir o encapsulamento da definição do tipo e das operações do TAD numa unidade de compilação. Permitir acesso ao tipo definido para o TAD e ao cabeçalho das operações. Impedir o acesso à representação do TAD e à implementação das operações. bom é aquele que float dado; struct st_pilha prox; nopilha; typedef nopilha* pilha; void cria_pilha (pilha *){ int empilha (pilha *, float) { int desempilha (pilha *, float *) { int ta_vazia (pilha) { int topo (pilha, float*) { int limpa (pilha *) { Permite Impede Suporte para TADs em C: C permite que se especifiquem TADs em bibliotecas compiladas em separado. A definição do tipo e os protótipos das funções que implementam as operações ficam num arquivo de cabeçalhos (com extensão.h). A implementação das operações ficam num arquivo de implementação (extensão.c) O encapsulamento de C não é perfeito: os clientes podem acessar os campos da estrutura do tipo. 51 Exemplo de uma biblioteca em C: #define MAX 100 int topo; float dados[max]; pilha; // protótipos das funções void cria_pilha (pilha *); int empilha (pilha *, float); int desempilha (pilha *, float *); int ta_vazia (pilha); int topo (pilha, float*); int limpa (pilha *); pilha.h 52 Exemplo de uma biblioteca em C: #include "pilha.h" void cria_pilha (pilha *p) { int empilha (pilha *p, float e) { //outras funções pilha.c 53 Suporte para TADs em Pascal: O Pascal atual permite que TADs sejam definidos em units (arquivos com extensão.pas). Uma unit possui uma área (interface) para declaração do tipo e cabeçalho dos procedimentos e funções que implementam as operações. Há ainda uma área (implementation) onde os subprogramas são implementados, à qual o cliente não tem acesso. Assim como C, o acesso aos campos do tipo no cliente são sintaticamente válidos. 54 9

10 Exemplo de Unit: unit TPilha; interface type pilha = record topo : integer; dados : array[1..max] of real; end; TPilha.pas procedure cria_pilha (var p: pilha); procedure empilha (var p : pilha; e : float); function desempilha (var p : pilha) : real; function ta_vazia (var p : pilha) : boolean; function topo (p : pilha) : real; procedure limpa (var p : pilha); 55 Exemplo de Unit: implementation procedure cria_pilha (var p: pilha); begin end; TPilha.pas procedure empilha (var p : pilha; e : float); begin end; {outros subprogramas end. {fim da unit 56 Suporte para TADs em Java: Define TADs em classes (arquivo.java). A classe é a unidade sintática para encapsulamento de TADs e também a unidade de compilação. Pode-se controlar o nível de encapsulamento de cada elemento de uma classe. Java não tem construtores de tipo como struct do C ou o record do Pascal: cada classe em si é um novo tipo com propriedades e operações. Valores de classes são chamados de objetos. 57 Exemplo de classe Java: public class Pilha { private int topo; private float[] dados; public void empilha (float e) { public float desempilha() { // outros métodos //fim da classe Pilha.java 58 Suporte para TADs em C++: C++ permite que TADs sejam definidos em classes (arquivos.cpp). A classe deve ser a unidade sintática adequada para encapsulamento de TADs. Pode-se controlar o nível de encapsulamento de cada elemento de uma classe. Como em Java, valores de classes são chamados de objetos. 59 Exemplo de classe C++: class pilha { private: int topo; float dados[max]; public: void empilha (float e) { float desempilha() { // outros métodos //fim da classe Pilha.cpp 60 10

11 Programação Orientada a Objetos O paradigma de programação orientado a objetos baseia-se em três princípios chave [3]: Abstração de dados (TADs) Herança Ligação Dinâmica Em geral, os TADs definidos numa linguagem orientada a objetos são chamados de classes. Os valores destes tipos são chamados objetos. Classes se relacionam por meio de herança. Programação Orientada a Objetos Uma operação do TAD implementada numa classe é chamada de método. Uma forma de invocar um método de um objeto é enviando-lha uma mensagem. A ligação dinâmica associa uma mensagem ao método mais adequado A ligação dinâmica permite que a "herança funcione" dinamicamente, isto é, em tempo de execução Programação Orientada a Objetos Programar no paradigma OO é: Definir classes (estrutura + operações) para os elementos do domínio do problema em questão. A criação de uma classe pode usar a definição de classes prévias, criando composições de classes. Relacionar classes por meio de herança e composição Entender o mecanismo de vinculação dinâmica da linguagem e aproveitar seu incrível poder. Abstrair a sua visão do problema para um conjunto de objetos interagindo. Bem-vindo ao mundo da Orientação a Objetos! 63 Histórico das Linguagens OO Linha do tempo da programação orientada a objetos: SIMULA67: 1967 por Dahl e Nygaard Introduziu os principais conceitos da programação orientada a objetos: classes, objetos, herança. SmallTalk-72: 1972 por Alan Kay e Adele Goldberg Primeiro ambiente gráfico para programação orientada a objetos. É considerada a única linguagem puramente orientada a objetos. Introduziu o conceito de janelas em GUIs C++: 1984 por Bjarne Stroustrup Uma das primeiras linguagens OO com boa performance. 64 Histórico das Linguagens OO Galeria de fotos Linha do tempo da programação orientada a objetos: Eiffel: 1986 por Bertrand Meyer Possui algumas características avançadas da OO, tais como, tipos genéricos, asserções e herança múltipla. l Java: 1995 por James Gosling e outros Primeira linguagem OO da era da Internet. Portabilidade, design enxuto e ampla API são suas características marcantes. Empregada em várias plataformas, de celulares e PDAs a sistemas empresariais distribuídos SIMULA 84 C++ 72 Smalltalk JAVA Bjarne Stroustroup Alan Kay 95 James Gosling 66 11

12 Galeria de fotos Galeria de fotos FLEX machine idealizada por Kay Alan Kay não apenas previu que os objetos dominariam a programação mas lançou a idéia do computador pessoal e do ambiente gráfico baseado em janelas. (acima) Na busca por uma máquina que fosse fácil de ser usada por crianças e não programadores ele antecipou a idéia de PDAs. (abaixo) Dynabooks idealizados por Kay 67 Esboço do Smalltalk-72 Kay projetou o Smalltalk para ser não apenas uma linguagem de programação, mas um ambiente interativo baseado em janelas sobrepostas que permitissem ao programador fazer simulações de objetos. O termo programação orientada a objetos é atribuído a sua autoria. (ao lado) 68 Bibliografia Bibliografia [1] Booch, G. Projeto Orientado a Objetos [2] Hostetter, C. Survey of Objected Oriented Programming Languages. Disponível em: [3] Sebesta, R. Conceitos de Linguagens de Programação.4a. edição. Bookman [4] Sierra, Kathy, Bates, Bert. Head First Java Outros sites sobre o assunto: /o/ob/object_oriented_programming_1.html (legal!) Programação Orientada a Objetos Prefácio para a POO Abstração e encapsulamento Tipos de Dados Abstratos Histórico das Linguagens de POO Reinaldo Gomes reinaldo@cefet-al.br Compilação e modularização Unidade sintática: Menor unidade de código sintaticamente válida segundo a gramática da linguagem Ex: declaração de variáveis, chamadas de procedimentos, expressões, declaração de programas Unidade de compilação: Conjunto de unidade sintáticas de um programa reunidas segundo as regras da gramática da linguagem. Ex: programa principal, biblioteca de procedimentos, módulos, etc

13 Compilação e modularização Unidade de Compilação dobro.c int x=2, y; Unidades sintáticas y = dobro(x); printf("%d", y); int dobro(int x) { return 2*x; 73 Compilação e modularização Compilação independente: As unidades de compilação são compiladas de forma independente umas das outras. Não há necessidade de uma ordem de compilação e a quantidade e os tipos dos parâmetros não são checados entre chamada e definição. Compilação em separado: As fronteiras das unidades de compilação são ultrapassadas para verificação de tipos e as unidades não são independentes entre si. 74 Compilação Independente main.c soma(); Eu não quero nem saber se soma() tem parâmetro ou não! bib.c soma(int x) { Compilação em Separado main.c soma(); Am r! Sua função soma() é sem parâmetro? bib.c soma(int x) { func() { main.obj O Linker não vai gostar disso Compilador subtrai() { bib.obj Quero meu advogado! 75 func() { main.obj Nã-na-nim-nanão! soma() tá sem parâmetro! Compilador subtrai() { Não fofo, é com parâmetro! Sm ck! bib.obj 76 Compilação e modularização Pódio da compilação! Em Separado Independente 1 Nenhuma 2 3 Possuem compilação independente: FORTRAN77, C de Ritchie Possuem compilação em separado: Ada, C ANSI, Modula-2, Java, C++ Não possuem nenhuma das duas: Pascal original, FORTRAN II, BASIC 77 13

Paradigmas de Desenvolvimento de Software

Paradigmas de Desenvolvimento de Software Programação Orientada a Objetos Prefácio para a POO Abstração e encapsulamento Tipos de Dados Abstratos t Histórico das Linguagens de POO Reinaldo Gomes reinaldo@cefet-al.br Paradigmas de Desenvolvimento

Leia mais

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

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

Leia mais

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

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados Aula 1 Tipo Abstrato de Dados O que é um algoritmo? Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 O que é um programa? 2009-1 Algoritmos Sequência de ações executáveis para

Leia mais

Tipo Abstrato de Dados

Tipo Abstrato de Dados Tipo Abstrato de Dados David Menotti Algoritmos e Estruturas de Dados II DInf - UFPR Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados Algoritmo: Sequência de ações executáveis

Leia mais

AULA 1: PARADIGMAS DE PROGRAMAÇÃO

AULA 1: PARADIGMAS DE PROGRAMAÇÃO 1 AULA 1: PARADIGMAS DE PROGRAMAÇÃO Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Ementa 2 Programação Imperativa. Programação Paralela e Concorrente. Programação Lógica. Programação Funcional.

Leia mais

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

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

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

Introdução ao Paradigma Orientado a Objetos. Principais conceitos Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura

Leia mais

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação

Leia mais

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

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

Programação Orientada a Objeto

Programação Orientada a Objeto Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso

Leia mais

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

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Programação Orientada a Objetos Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 Histórico das linguagens de programação ENIAC (1944) Programação

Leia mais

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr Metodologia de Desenvolvimento de Software Prof. M.Sc. Sílvio Bacalá Jr Objetivos Discutir aspectos de Engenharia de Software Aplicar um método de desenvolvimento para especificação e projeto de software

Leia mais

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

Linguagem de Programação I. Orientação a Objetos em Java Linguagem de Programação I Orientação a Objetos em Java Roteiro Introdução Classes e Objetos Declaração de Classes e Instanciação de um Objeto de uma Classe Declarando métodos com parâmetros Atributos,

Leia mais

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética 2 PARADIGMA IMPERATIVO 2.1 CONCEITO As linguagens que pertencem ao paradigma imperativo tomam por base a perspectiva da máquina. Ou seja, no modo como o computador executa programas em linguagem de máquina.

Leia mais

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)

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) 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) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador

Leia mais

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

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 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 Apresentada em Cumprimento Parcial dos Requerimentos para

Leia mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Aula I Apresentação Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Professor EDILBERTO M. SILVA edilms@yahoo.com Bacharel em Ciência

Leia mais

Linguagens de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de III Aula 01 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de III Horário das Aulas: 6as feiras das 7h40 às 10h55 Objetivo principal desta disciplina é: utilizar

Leia mais

PCS 3111 - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

PCS 3111 - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais PCS - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA EXERCÍCIO PROGRAMA

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres Linguagem de Programação Orientada a Objeto Introdução a Orientação a Objetos Professora Sheila Cáceres Introdução a Orientação a Objetos No mundo real, tudo é objeto!; Os objetos se relacionam entre si

Leia mais

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version 2012-11-08. 1 LibreOffice Productivity Suite

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version 2012-11-08. 1 LibreOffice Productivity Suite Orientação a Objetos Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version 2012-11-08 1 Abordagens História; ; Benefícios / Limitações; Referências; 2 História Tudo tem um começo...

Leia mais

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

Aula 1 Tipo Abstrato de Dados

Aula 1 Tipo Abstrato de Dados Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

Análise e Projeto Orientados a Objeto

Análise e Projeto Orientados a Objeto Análise e Projeto Orientados a Objeto Objetivos Comparar e contrastar Análise e Projeto Definir O que vamos fazer na disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente

Leia mais

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

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos. Programação II Prof. Gustavo Willam Pereira e-mail: gustavowillam@gmail.com ENG10082 Programação II 1 Ementa Programação orientada a objetos: classes e objetos, atributos e métodos, especificadores de

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Introdução a POO. Introdução a Linguagem C++ e POO

Introdução a POO. Introdução a Linguagem C++ e POO Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes

Leia mais

Fatores de Qualidade de Software

Fatores de Qualidade de Software Programação Orientada por Objetos Programação Orientada por Objetos Kecia Aline Marques Ferreira Princípios, objetivos e filosofia 2007 Kecia A. M. Ferreira POO 1 Kecia A. M. Ferreira POO 2 Princípios,

Leia mais

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

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados: O Paradigma Orientado a Objetos Paradigma e Programação Orientada a Objetos Prof. João Carlos Pinheiro jcpinheiro@ifma.edu.br 1 Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

GBD PROF. ANDREZA S. AREÃO

GBD PROF. ANDREZA S. AREÃO GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação

Leia mais

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

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê? Bibliografia Desenvolvimento Orientado a Objetos Prof.: Edson dos Santos Cordeiro LARMAN, Graig. Utilizando UML e padrões. Porto Alegre: Bookman, 2000. STAA, Arndt von. Programação modular. Rio de Janeiro:

Leia mais

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar

Leia mais

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

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais http://www.edison.eti.br prof@edison.eti. Engenharia de Software Engenharia de Requisitos Análise Orientada a Objetos Prof. Edison A M Morais http://www.edison.eti.br prof@edison.eti.br 1 Contextualizando... Fonte: [1] O Processo de ER pode ser

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Herança e Polimorfismo de Inclusão

Herança e Polimorfismo de Inclusão Herança e Polimorfismo de Inclusão Sérgio Queiroz de Medeiros sergio@ufs.br 29 de maio de 2012 1 Polimorfismo Ad-hoc Coerção Sobrecarga (Overloading) Universal Paramétrico Inclusão 2 Herança Herança é

Leia mais

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

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Representação de Algoritmos - Linguagens de Programação

Representação de Algoritmos - Linguagens de Programação Representação de Algoritmos - Linguagens de Programação A representação de algoritmos em uma pseudo-linguagem mais próxima às pessoas é bastante útil principalmente quando o problema a ser tratado envolve

Leia mais

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

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO Dado que a UML é uma ferramenta inserida no paradigma da orientação a objetos, vamos rever alguns conceitos fundamentais, dentre os quais, destacamos: Classificação,

Leia mais

Filas: conceitos e implementações

Filas: conceitos e implementações Estrutura de Dados I Filas: conceitos e implementações Cesar Rocha cesar@pontoweb.com.br 1 Objetivos Explorar os conceitos fundamentais acerca do uso de filas utilizando a linguagem C Organização e implementação,

Leia mais

Casos de uso Objetivo:

Casos de uso Objetivo: Casos de uso Objetivo: Auxiliar a comunicação entre os analistas e o cliente. Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. O cliente deve ver no diagrama de

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

Paradigmas de Linguagens de Programação

Paradigmas de Linguagens de Programação Paradigmas de Linguagens de Programação Faculdade Nova Roma Cursos de Ciências da Computação (6 Período) Prof. Adriano Avelar - Site: www.adrianoavelar.com Email: edson.avelar@yahoo.com.br Ementa Introdução

Leia mais

Linguagens de Programação Aula 10

Linguagens de Programação Aula 10 Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração

Leia mais

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

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS

7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS 7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS Até... 7.1 Alocação Estática Alocação de Espaço em Memória Como já foi visto anteriormente, a memória de um computador compõe-se de uma sequência de palavras,

Leia mais

Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo. Conteúdo: Introdução à Orientação a Objetos

Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo. Conteúdo: Introdução à Orientação a Objetos Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: Introdução à Orientação a Objetos Introdução Paradigmas de programação Programação Estruturada Composição

Leia mais

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Pilhas A estrutura de dados Pilha emula a forma de organização de objetos intuitiva que é utilizada diariamente nos mais diversos contextos da vida humana. Containeres são empilhados e desempilhados diariamente

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Algoritmo e Técnica de Programação - Linguagem C

Algoritmo e Técnica de Programação - Linguagem C Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos O FOCO NO MUNDO REAL Orientação a objetos A orientação a objetos (OO) foi concebida na década de 70. Origem na linguagem SIMULA-67 (década de 60 - Noruega), que já implementava

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais

Programação Orientada a Objetos C++

Programação Orientada a Objetos C++ Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs

Leia mais

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

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes 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

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

POO Programação Orientada a Objetos. Classes em Java

POO Programação Orientada a Objetos. Classes em Java + POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos

Leia mais

Aula 3 Alocação Dinâmica

Aula 3 Alocação Dinâmica Aula 3 Alocação Dinâmica Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas de Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Leia mais

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores UNIP - UNIVERSIDADE PAULISTA Arquitetura de computadores ORGANIZAÇÃO DE COMPUTADORES Bibliografia: MONTEIRO, M. A. Introdução à organização de computadores. 4 ed. RJ. LTC 2001. TANEMBAUM, A. S. Organização

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Fundamentos de Banco de Dados e Modelagem de Dados

Fundamentos de Banco de Dados e Modelagem de Dados Abril - 2015 Universidade Federal de Mato Grosso Instituto de Computação Pós Graduação Lato Sensu em Banco de Dados Fundamentos de Banco de Dados e Modelagem de Dados Prof. Dr. Josiel Maimone de Figueiredo

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação

Leia mais

Resumo da última aula. Compiladores. Tipos. Regras semânticas. Expressões de tipos. Análise Semântica e checagem de tipos.

Resumo da última aula. Compiladores. Tipos. Regras semânticas. Expressões de tipos. Análise Semântica e checagem de tipos. Resumo da última aula Compiladores Análise semântica Verificação de tipos 1 Implementação: Esquemas S-atribuídos: Mecanismo bottom-up direto Esquemas L-atribuídos: Mecanismo top-down: Necessita gramática

Leia mais

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.

Leia mais

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de 2008 3 A linguagem C

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de 2008 3 A linguagem C Roteiro Introdução à Programação de Computadores 1 Instituto de Computação Unicamp 2 Primeiro Semestre de 2008 3 O que é um computador? Computador: o que computa, calculador, calculista. (dicionário Houaiss).

Leia mais

O COMPUTADOR. Introdução à Computação

O COMPUTADOR. Introdução à Computação O COMPUTADOR Introdução à Computação Sumário O Hardware O Software Linguagens de Programação Histórico da Linguagem C Componentes Básicos do Computador O HARDWARE: O equipamento propriamente dito. Inclui:

Leia mais

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica, Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de Disjuntores de Subestações de Energia Elétrica Prof. Dr. Lineu Belico dos Reis EPUSP Resumo: O informe técnico apresenta a

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Objetos não existem isolados

Objetos não existem isolados Relacionamento Entre Objetos Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Objetos não existem isolados São formados por outros objetos Objetos usam outros objetos

Leia mais

BREVE HISTÓRIA DA LINGUAGEM FORTRAN

BREVE HISTÓRIA DA LINGUAGEM FORTRAN 2 BREVE HISTÓRIA DA LINGUAGEM FORTRAN 2.1 Os primeiros tempos Nos primórdios dos computadores, programar era uma tarefa extremamente complicada e, de certa forma, extenuante. Aos programadores era exigido

Leia mais

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

Leia mais

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

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

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

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

Leia mais

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código Análise e Projeto Orientados a Aspectos Alcides Pamplona alcides.pamplona@gmail.com Tópicos Separação de Interesses Programação Estruturada e Entrelaçamento de Código Espalhamento de Código 1 Separação

Leia mais

Avaliação de Desempenho de Sistemas

Avaliação de Desempenho de Sistemas Avaliação de Desempenho de Sistemas Introdução a Avaliação de Desempenho de Sistemas Prof. Othon M. N. Batista othonb@yahoo.com Roteiro Definição de Sistema Exemplo de Sistema: Agência Bancária Questões

Leia mais

CTGEO ESCOLA. Abaixo algumas respostas das principais dúvidas do SIG CTGEO ESCOLA. E entre elas,

CTGEO ESCOLA. Abaixo algumas respostas das principais dúvidas do SIG CTGEO ESCOLA. E entre elas, CTGEO ESCOLA Abaixo algumas respostas das principais dúvidas do SIG CTGEO ESCOLA. E entre elas, algumas imagens ressaltando um pouco do que ele pode oferecer. 1) O que é Geoprocessamento? É o relacionamento

Leia mais

5 Instrução e integração

5 Instrução e integração SEÇÃO 5 Instrução e integração no meio de trabalho Quando um novo funcionário entra para uma organização, é importante que ele receba um bom apoio para entender sua função e a organização. Instrução é

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

Capítulo 8. Introdução UML

Capítulo 8. Introdução UML Capítulo 8. Introdução UML 1/42 Índice Indice 8.1 - Introdução UML 8.2 - Modelação estrutural 8.2.1 - Representação de classes e objectos 8.2.2 - Relações entre objectos 8.2-3 - Relações de associação

Leia mais

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO) Programação Orientada a Objetos Introdução à Análise Orientada a Objetos (AOO) Cristiano Lehrer, M.Sc. Processo de Desenvolvimento de Software Um processo de software mostra os vários estágios do desenvolvimento

Leia mais

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

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais