Você está na página 1de 26

SISTEMA DE ENSINO PRESENCIAL CONECTADO TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ATIVIDADE INTERDISCIPLINAR - INDIVIDUAL

Palmas - TO 2012

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ATIVIDADE INTERDISCIPLINAR - INDIVIDUAL

Trabalho apresentado ao Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas da Universidade Norte do Paran UNOPAR Professores: Polyanna Pacheco Gomes Roberto Y. Nishimura Marcio Chiaveli Merris Mozer

Palmas - TO 2012

SUMRIO 1 2 INTRODUO ..................................................................................................... 3 LISTAS LINEARES .............................................................................................. 4

2.1 FIFO ..................................................................................................................... 4 2.1.1 2.1.2 Aplicaes FIFO............................................................................................ 4 Vantagens e Desvantagens do FIFO ............................................................ 5

2.2 FILO ..................................................................................................................... 5 2.3 ALOCAO SIMPLISMENTE ENCADEADA ...................................................... 6 2.3.1 Exemplos de algoritmos para as operaes de insero e retirada de um

elemento numa pilha com alocao contgua: ............................................................ 6 2.3.2 Exemplo de algoritmo para a operao de insero de um elemento numa

fila com alocao contgua: ......................................................................................... 7 2.3.3 Exemplo de algoritmo para a operao de retirada de um elemento numa

fila com alocao contgua: ......................................................................................... 7 2.4 ALOCAO DUPLAMENTE ENCADEADA......................................................... 8 2.4.1 Implementao de Algumas Operaes de Lista Duplamente Encadeada

Com Alocao Dinmica ............................................................................................. 8 2.4.1.1 Insero direita de pont.............................................................................. 9 2.4.1.2 Insero esquerda de pont ........................................................................ 9 2.4.1.3 Eliminao direita de pont ........................................................................ 10 2.4.1.4 Eliminao do prprio pont ......................................................................... 10 2.4.1.5 Busca em uma lista circular ........................................................................ 10 3 ACID................................................................................................................... 12

3.1 TRANSAES .................................................................................................. 12 3.2 ATOMICIDADE .................................................................................................. 12 3.3 CONSISTNCIA ................................................................................................ 12 3.4 ISOLAMENTO.................................................................................................... 12 3.5 DURABILIDADE ................................................................................................. 13 3.6 IMPORTNCIA DO ACID PARA UM SGBD ...................................................... 13 4 BANCO DE DADOS RELACIONAL COM A PROGRAMAO ORIENTADA A

OBJETOS.................................................................................................................. 14 4.1 ORIENTAO A OBJETOS VS MODELO ENTIDADE RELACIONAMENTO ... 14 5 OBJECT RELATIONAL MAPPING (ORM) MAPEAMENTO DE OBJETO

RELACIONAL............................................................................................................ 15 5.1 FERRAMENTAS PARA FAZER ORM (OBJECT RELATIONAL MAPPING) ..... 18 5.1.1 6 JPA e Hibernate .......................................................................................... 18

HERANA E POLIMORFISMO ......................................................................... 19

6.1 HERANA.......................................................................................................... 19 6.1.1 Diagrama de Classe (Herana) ................................................................... 19

6.2 POLIMORFISMO ............................................................................................... 20 6.2.1 7 Diagrama de Classe (Polimorfismo)............................................................ 21

CONCLUSO .................................................................................................... 22

REFERNCIAS ......................................................................................................... 23

1 INTRODUO Neste trabalho ser abordada toda a matria do 3 Semestre, dentro deste contexto sero apresentados os conceitos de listas lineares, FIFO, FILO, seus apontadores, ordens de incluso, excluso e pesquisa. Definirei tambm os conceitos de alocao simplesmente encadeada, alocao duplamente encadeada, com representaes grficas das duas. Em relao a banco de dados, definirei os conceitos das propriedades ACID de uma transao e sua importncia para um SGBD; e sero apresentadas duas ferramentas para se fazer ORM, bem como a explanao sobre o que ORM e seus paradigmas. No que tange a UML ser mostrado os conceitos de polimorfismo e herana, bem como exemplos que os representem em diagramas de classe.

2 LISTAS LINEARES Lista Linear a estrutura que permite representar um conjunto de dados afins, de forma a preservar a relao de ordem linear de seus elementos. Exemplos dirios de listas lineares: - Letras de uma palavra - Palavras de uma frase - Pessoas esperando nibus 2.1 FIFO As listas so amplamente utilizadas em programao para implementar filas de espera. Em uma fila de tipo FIFO os elementos vo sendo colocados na fila e retirados (ou processados) por ordem de chegada. A ideia fundamental da fila que s podemos inserir um novo elemento no final da fila e s podemos retirar o elemento do incio. Como exemplo de aplicao para filas, pode-se citar a fila de processos de um sistema operacional. Nela, estabelecido um tempo a ser usado por cada um dos processos. Se durante a execuo de um processo o tempo passa de a, este posto na fila e o processo seguinte executado. Se o processo seguinte no terminar de ser executado no tempo, ele posto na fila e o processo subsequente executado, e assim por diante at todos os processos serem executados. 2.1.1 Aplicaes FIFO Os algoritmos FIFO's so comumente usados em circuitos eletrnicos de buffer e controle de fluxo, que vai desde o hardware at o software. Na forma de um hardware o FIFO consiste basicamente de um conjunto de ler e escrever ponteiros, armazenamento e lgica de controle. Armazenamento pode ser SRAM, flip-flops, fechos ou qualquer outra forma adequada de armazenamento. Para o FIFO, de tamanho no trivial, uma SRAM de porta dupla geralmente utilizada quando uma porta usada para a escrita e a outra para leitura. O FIFO sncrono aonde o mesmo clock usado para leitura e

escrita. Um FIFO assncrono utiliza diferentes relgios para leitura e escrita. Uma aplicao comum de um FIFO assncrono utiliza um cdigo de Gray (cdigo binrio refletido), ou qualquer unidade de cdigo distncia, para ler e escrever os ponteiros para garantir a gerao de bandeira confivel. Uma nota mais preocupante que se deve necessariamente usar a aritmtica de ponteiro para gerar bandeiras para implementaes assncronas FIFO. Por outro lado, pode-se usar a abordagem de um balde "de fuga" ou a aritmtica de ponteiro para gerar bandeiras nas implementaes sncronas FIFO. Exemplos de sinalizadores de status FIFO incluem: cheios, vazios, quase cheio, quase vazio, etc. 2.1.2 Vantagens e Desvantagens do FIFO Vantagens: O mais simples entre os processos de escalonamento; Todos os processos tendem a serem atendidos.

Desvantagens: Muito sensvel ordem de chegada; Se processos maiores chegarem primeiro aumentaro o tempo mdio de espera; No garante um tempo de resposta rpido; No eficiente em sistemas de tempo compartilhado; No eficiente em sistemas em tempo real.

2.2 FILO Em cincia da computao, a FILO (First In, Last Out, que em portugus significa primeiro a entrar, ultimo a sair) refere-se a estruturas de dados do tipo pilha. equivalente a LIFO, que significa Last In, First Out. O conceito de pilha amplamente utilizado na informtica, como, por exemplo, durante a execuo de um programa, para o armazenamento de valores de varivel local a um bloco e tambm para conter o endereo de retorno do trecho de programa que chamou a funo ou procedimento atualmente em execuo.

Usam-se os termos push e pop para denominar a insero e remoo de elementos da pilha, respectivamente. Usa-se o termo top para consultar o elemento do topo da pilha, sem o remover. Uma pilha uma lista linear na qual o primeiro elemento a entrar o ltimo elemento a sair. Ela possui apenas uma entrada, chamada de topo, a partir da qual os dados entram e saem dela. 2.3 ALOCAO SIMPLISMENTE ENCADEADA A maneira mais simples de acomodar uma lista linear em computador atravs da utilizao de um vetor. A representao por vetor explora a sequencialidade da memria de tal forma que os ns de uma lista sejam armazenados em endereos contguos, ou igualmente distanciados um do outro. X1 X2 X3 X4 X5 X6 Xn-1 Xn

2.3.1 Exemplos de algoritmos para as operaes de insero e retirada de um elemento numa pilha com alocao contgua: VARIVEIS: TOPO (ndice que indica a ltima posio ocupada) MXIMO (varivel cujo valor representa o tamanho do vetor) VALOR (elemento includo/retirado) INICIO INSERIR SE TOPO = MAXIMO ENTO OVERFLOW SENO TOPO := TOPO + 1 VETOR[TOPO] := VALOR FIM SE FIM INICIO RETIRAR SE TOPO = 0 ENTO UNDERFLOW SENO VALOR := VETOR[TOPO] TOPO := TOPO - 1 FIM SE FIM

2.3.2 Exemplo de algoritmo para a operao de insero de um elemento numa fila com alocao contgua: VARIVEIS: COMECO (ndice que indica o primeiro elemento da fila - inicializada c/ 0) FINAL (ndice que indica o ltimo elemento da fila - inicializada c/ 0) MXIMO (varivel cujo valor representa o tamanho do vetor) VALOR (elemento a ser includo) PROV (uma varivel provisria)

INICIO INSERIR PROV := (FINAL MOD MAXIMO) + 1 SE PROV COMECO ENTO FINAL := PROV VETOR[FINAL] := VALOR SE COMECO = 0 ENTO COMECO := 1 FIM SE SENO OVERFLOW FIM SE FIM

2.3.3 Exemplo de algoritmo para a operao de retirada de um elemento numa fila com alocao contgua: VARIVEIS: COMECO (ndice que indica o primeiro elemento da fila - inicializada c/ 0) FINAL (ndice que indica o ltimo elemento da fila - inicializada c/ 0) MXIMO (varivel cujo valor representa o tamanho do vetor) VALOR (elemento excludo) INICIO RETIRAR SE COMECO 0 ENTO VALOR := VETOR[COMECO] SE COMECO = FINAL ENTO COMECO := 0 FINAL := 0 SENO COMECO := (COMECO MOD MAXIMO) + 1 FIM SE SENO UNDERFLOW FIM SE FIM

2.4 ALOCAO DUPLAMENTE ENCADEADA Caractersticas: Listas foram percorridas do incio ao final. Ponteiro "anterior" necessrio para muitas operaes. Em alguns casos pode-se desejar percorrer uma lista nas duas direes indiferentemente. Nestes casos, o gasto de memria imposto por um novo campo de ponteiro pode ser justificado pela economia em no reprocessar a lista toda.

Type tpont = ^ trec; trec = record info:T; esq, dir: tpont; End; Lista = tpont; Var pont: Lista; Como consequncia, podemos realizar as operaes de insero e eliminao esquerda ou direita de um campo no interior de uma lista sem a necessidade de ponteiros "anteriores". 2.4.1 Implementao de Algumas Operaes de Lista Duplamente Encadeada Com Alocao Dinmica As operaes 1 a 4 abaixo so atmicas, isto , elas realizam a reserva de espao (quando necessria) alm do 'acerto dos ponteiros'. Pr-condio para todas elas que se conhea o ponteiro de um n ou de um vizinho. Alm disso, elas no tratam casos especiais. Assim, elas so operaes de suporte para as

inseres e eliminaes do TAD Lista, quando este implementado por lista duplamente encadeada. Tais operaes no ficariam disponveis para o 'usurio' da TAD. Apenas o projetista do tipo abstrato de dados as usa no desenvolvimento dos algoritmos genricos de insero e eliminao (isto , aqueles que tratam todos os casos, alm das condies de erro).

2.4.1.1 Insero direita de pont Procedure ins_dir (pont: lista; x: T); Var j: Lista; Begin new(j); j^.info:=x; j^.dir:=pont^.dir; j^.dir^.esq:=j; j^.esq:=pont; pont^.dir:=j; End;

2.4.1.2 Insero esquerda de pont Procedure ins_esq (pont: Lista; x: T); Var j: Lista; Begin new(j); j^.info:=x; j^.dir:=pont; j^.esq:=pont^.esq; j^.esq^.dir:=j; pont^.esq:=j; End;

10

2.4.1.3 Eliminao direita de pont Procedure elim_dir (pont: Lista); Var j: Lista; Begin j:=pont^.dir; pont^.dir:=j^.dir; j^.dir^.esq:=pont; dispose(j); End; 2.4.1.4 Eliminao do prprio pont Procedure elim (Var pont: Lista); Begin pont^.dir^.esq:=pont^.esq; pont^.esq^.dir:=pont^.dir; dispose(pont); End; 2.4.1.5 Busca em uma lista circular

Funtion Busca_Dup_Ord(ptlista: Lista; x: T):Lista; { Lista Duplamente Encadeada Ordenada com sentinela apontado por ptlista }

Var pont, ultimo: Lista; Begin ultimo:=ptlista^.esq; If x<=ultimo^.info then Begin

11

pont:=ptlista; While pont^.info < x do pont:=pont^.dir; Busca_Dup_Ord:=pont; End Else Busca_Dup_Ord:=ptlista; End;

12

3 ACID Acrnimo de Atomicidade, Consistncia, Isolamento e Durabilidade. 3.1 TRANSAES A maioria dos programas desenvolvidos atualmente para uso multiusurio, um sistema de controle de estoque por exemplo. Imagine 10 terminais buscando e inserindo informaes a cada segundo em um servidor. Todos eles executam um conjunto de comandos que so solicitados de uma s vez. Uma Transao basicamente isso, um conjunto de comandos SQL em sequncia ou no, sendo que, todos os comandos deste conjunto devem ser executados e por completo. Para um bom funcionamento de um SGBD, necessrio que ele tenha um conjunto de propriedades, conhecido como ACID (Atomicidade, Consistncia, Isolamento e Durabilidade), onde estas propriedades vo definir como sero executadas as transaes. 3.2 ATOMICIDADE Todas as aes que compem a unidade de trabalho da transao devem ser concludas com sucesso, para que seja efetivada. Se durante a transao qualquer ao que constitui unidade de trabalho falhar, a transao inteira deve ser desfeita (rollback). Quando todas as aes so efetuadas com sucesso, a transao pode ser efetivada e persistida em banco (commit). 3.3 CONSISTNCIA Todas as regras e restries definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou nicos devem ser obedecidos para que uma transao possa ser completada com sucesso. 3.4 ISOLAMENTO Cada transao funciona completamente parte de outras estaes.

13

Todas as operaes so parte de uma transao nica. O principio que nenhuma outra transao, operando no mesmo sistema, possa interferir no funcionamento da transao corrente ( um mecanismo de controle). Outras transaes no podem visualizar os resultados parciais das operaes de uma transao em andamento (ainda em respeito propriedade da atomicidade). 3.5 DURABILIDADE Significa que os resultados de uma transao so permanentes e podem ser desfeitos somente por uma transao subsequente. Por exemplo: todos os dados e status relativos a uma transao devem ser armazenados num repositrio permanente, no sendo passveis de falha por uma falha de hardware. 3.6 IMPORTNCIA DO ACID PARA UM SGBD O ACID muito importante para um BD, pois este conjunto de caractersticas que garante a qualidade e segurana (contra falhas do sistema) das transaes, obtendo assim bons resultados no armazenamento correto das informaes. Cada propriedade tem sua importncia. Com a Atomicidade, as transaes so executadas com sucesso at o final, comando por comando, no caso de erro em qualquer um deles o SGBD deve desfazer o que foi alterado, ento temos a garantia de que os clculos, atualizaes, ou outras operaes no foram executadas incompletas, e sim at o fim com sucesso. J a Consistncia importante porque uma operao no pode violar a integridade dos dados, ou seja, aps executar uma transao, o banco de dados deve manter a consistncia dos dados, mesmo ocorrendo alteraes (Update, Insert...). O Isolamento vai evitar que a transao que est sendo executada, seja interferida ou interrompida por outra solicitao, evitando que erros aconteam. A Durabilidade vai garantir que os dados que foram gravados pelas transaes, no sejam perdidos ou danificados, mesmo que ocorra alguma falha no sistema, como travamento e queda de energia (desde que no haja perda de hardware).

14

4 BANCO DE DADOS RELACIONAL COM A PROGRAMAO ORIENTADA A OBJETOS 4.1 ORIENTAO A OBJETOS VS MODELO ENTIDADE RELACIONAMENTO Um dos problemas na comunicao entre uma aplicao Java, por exemplo, e um banco de dados o conflito de paradigmas. O banco de dados organizado seguindo o modelo entidade relacionamento, enquanto as aplicaes Java, geralmente, utilizam o paradigma orientado a objetos. A transio de dados entre o modelo entidade relacionamento e o modelo orientado a objetos no simples. Para realizar essa transio, necessrio denir um mapeamento entre os conceitos desses dois paradigmas. Por exemplo, classes podem ser mapeadas para tabelas, objetos para registros, atributos para campos e referncia entre objetos para chaves estrangeiras. Para facilitar a comunicao entre aplicaes Java que seguem o modelo orientado a objetos e os banco de dados que seguem o modelo entidade relacionamento, podemos utilizar ferramentas que automatizam a transio de dados entre as aplicaes e os diferentes bancos de dados e que so conhecidas como ferramentas de ORM (Object Relational Mapper). Outra consequncia, ao utilizar uma ferramenta de ORM, que no necessrio escrever consultas em SQL, pois a prpria ferramenta gera as consultas de acordo com a sintaxe da linguagem SQL correspondente ao banco que est sendo utilizado.

15

5 OBJECT RELATIONAL MAPPING (ORM) MAPEAMENTO DE OBJETO RELACIONAL Mapeamento de Objeto Relacional (ORM) uma abordagem que permite a construo de sistemas utilizando o paradigma orientado a objetos com a persistncia destes objetos em bancos de dados relacionais. Utilizando-se de tcnicas e estratgias especficas, possvel mapear classes com seus atributos e associaes para o modelo relacional (SILVA, 2006). Segundo (AMBLER, 1999), o mapeamento de classes pode ser feito mediante a paridade entre classe e tabela, ou seja, uma classe mapeada para uma tabela. Este mapeamento direto de classes para tabelas representa a forma mais simples de mapeamento, tornando mais fcil o entendimento e a manuteno de uma aplicao. Mapeamento de Tabelas Simples

Porm, nem sempre o mapeamento to simples assim. No caso de uma estrutura hierrquica, vrias classes podem ser mapeadas para uma tabela, bem como uma classe pode ser mapeada para vrias tabelas. Mapeamento de Tabelas Complexo

16

As

tabelas

Classe1

Classe2

possuem,

respectivamente,

relacionamento com as tabelas Tabela1 e Tabela3. Esse mapeamento seria de certa forma trivial, e poderia ser tratado como relacionamento simples. Um terceiro relacionamento feito pelas duas tabelas impossibilita esse tratamento, pois ambas possuem atributos na Tabela2. Dessa forma necessrio que haja uma especificao de quais atributos pertencem a cada classe. Ao tratar do mapeamento de atributos de uma classe para colunas em tabelas de um banco de dados relacional, deve-se levar em conta que os atributos podem ser de tipos de dados primitivos como inteiros, pontos flutuantes, caracteres, booleanos e binrios, bem como ser de tipos de dados complexos como tipos baseados criados pelo usurio. Os atributos podem ser ainda multivalorados, o que viola as regras de normalizao do modelo relacional. Alm disso, podem existir atributos de controle ou utilizados em clculos, que geralmente no necessitam serem mapeados (AMBLER, 1999). Desta forma, os atributos simples podem ser mapeados diretamente para colunas em uma tabela, j os atributos complexos e multivalorados podem necessitar de tabelas adicionais para seu armazenamento. Estes atributos complexos, geralmente, possuem caractersticas recursivas, ou seja, so classes que possuem outros atributos e, assim, sucessivamente. O mapeamento segue o seguinte conceito: as classes mapeiam cada uma das tabelas do banco de dados de modo que as linhas dessas tabelas se tornam objetos e as colunas referem-se aos atributos dessa classe. Mapeamento de Tabelas, Objetos e Atributos

17

Essa tcnica possibilita mais do que cdigos limpos, permite que persistncias de objetos no banco de dados sejam feitas sem simples e transparente. O ORM se comporta como uma camada que possui uma gama de mtodos que cuidam dessa tarefa, tais como: create (cria um novo objeto da classe a partir dos dados da tabela), find (busca um determinado registro no banco e o torna um objeto da classe), delete (exclui registros do banco) e update (atualiza registros de uma tabela de acordo com as solicitaes). Esses mtodos variam de acordo com a linguagem utilizada. Na primeira tabela, possvel observar um pouco das facilidades e de como a legibilidade do cdigo fica melhor ao se utilizar o ORM ao invs de se injetar dentro de seu cdigo o SQL puro, o que fere as boas prticas de programao, que sugere que cdigos SQL estejam separados dos cdigos de desenvolvimento (RODRIGES; COSTA; SILVEIR, 2001).

Essa camada, chamada de persistncia, encontra-se entre a camada de negcio (onde esto as classes de domnio da aplicao, ou seja, classes que definem as regras de negcio) e o banco de dados. Esta camada permite que o impacto das modificaes em uma delas seja atenuado em relao outra. Isto diminui o grau de dependncia do banco de dados e aumenta a facilidade de manuteno do cdigo. Toda responsabilidade por persistir objetos fica a cargo da camada de persistncia, liberando a aplicao destas tarefas, e assim aumentando a produtividade no desenvolvimento (YODER; JOHNSON; WILSON, 1998). Na camada de persistncia est a definio das estratgias de mapeamento do modelo

18

orientado a objetos para o modelo relacional, apresentadas anteriormente. A camada de classes representa todo o conjunto de classes (controllers, views dentre outras) que podem utilizar mtodos da camada de persistncia. Assim, as transaes com o banco de dados ficam transparentes.

5.1 FERRAMENTAS PARA FAZER ORM (OBJECT RELATIONAL MAPPING) Uma excelente ferramenta ORM para Java o Hibernate, e para C# o Entity Framework. Mas, existem outras que possuem o mesmo objetivo. 5.1.1 JPA e Hibernate Aps o sucesso do Hibernate, a especicao JPA (Java Persistence API) foi criada como objetivo de padronizar as ferramentas ORM para aplicaes Java e consequentemente diminuir a complexidade do desenvolvimento. Atualmente, essa especicao est na sua segunda verso. Ela especica um conjunto de classes e mtodos que as ferramentas de ORM devem implementar. Veja que a JPA apenas uma especicao, ela no implementa nenhum cdigo. Para isso, utilizamos alguma das diversas implementaes da JPA como, por exemplo, o Hibernate. Outras implementaes de JPA mais conhecidas so: TopLink, EclipseLink e OpenJPA. O Hibernate o mais antigo e mais utilizado atualmente.

19

6 HERANA E POLIMORFISMO 6.1 HERANA Esse um dos principais conceitos da POO. A herana o compartilhamento de atributos e operaes entre classes com base em relaes hierrquicas, ou seja, a utilizao de superclasses para criar as subclasses. Veja o exemplo abaixo:

6.1.1 Diagrama de Classe (Herana) Veja outro exemplo abaixo, Em geral, pode-se ter uma hierarquia de classes relacionadas por herana / generalizao. Em cada classe da hierarquia colocam-se as propriedades que so comuns a todas as suas subclasses, evitandose redundncia, promovendo a sua reutilizao.

20

6.2 POLIMORFISMO O polimorfismo, na OOP, a habilidade que os objetos, distintos, mas relacionados, possuem, de receber um estimulo (um mtodo, ou comando) e agir (responder) de maneira diferente a esse estmulo. Por exemplo, podemos ter uma classe, abstract, de mamferos com o mtodo comunicar. Esse mtodo pode ser implementado de formas diferentes para subclasses herdadas de mamferos, como: Humanos, Ces e Gatos. Dessa forma ao invocar o mtodo comunicar, a partir do objeto correspondente (Objeto da classe humanos, ces ou gatos) o programa dever ser capaz de decidir qual o mtodo adequado ser executado. Bezerra (2007) fornece um bom relato sobre as consequncias do polimorfismo: E no contexto da orientao a objetos, qual a importncia e quais so as consequncias do polimorfismo? Nesse contexto o polimorfismo diz respeito capacidade de duas ou mais classes de objetos responderem a mesma mensagem, cada qual, de seu prprio modo. O exemplo clssico de polimorfismo em desenvolvimento de software o das formas geomtricas. Pense em uma coleo de formas geomtricas que contenha crculos, retngulos e outras formas especficas. Pelo princpio do polimorfismo, quando uma regio de cdigo precisa desenhar os elementos daquela coleo, essa regio no deve precisar conhecer os tipos especficos das figuras existentes; basta que cada elemento da coleo receba uma mensagem solicitando que desenhe a si prprio. (BEZERRA, 2007:11). Na OOP essa caracterstica importante uma vez que possibilita uma codificao mais simplificada das chamadas dos mtodos, ou seja, o cliente (aquela parte do cdigo que chamou o mtodo) no precisa saber como ele foi codificado, apenas envia a mensagem e o cdigo, por delegao, sabe como ele foi implementado e o executar. Assim, Deitel (2005) refora a definio sobre esse conceito: O polimorfismo ocorre quando um programa invoca um mtodo por meio de uma varivel de superclasse em tempo de execuo, a verso correta da subclasse do mtodo chamada, com base no tipo da referncia armazenada na varivel de superclasse. (DEITEL, 2005:337).

21

6.2.1 Diagrama de Classe (Polimorfismo)

22

7 CONCLUSO Atravs da confeco deste trabalho observou-se o quanto amplo a utilizao das filas e pilhas na programao. E tambm a importncia das propriedades ACID para um SGBD, pois este conjunto de caractersticas que garante a qualidade e segurana (contra falhas do sistema) das transaes. Foi observado que um dos problemas na comunicao entre uma aplicao desenvolvida em uma linguagem orientada a objeto e um banco de dados o conflito de paradigmas. Para facilitar tal tarefa existe o ORM, Mapeamento de Objeto Relacional, que uma abordagem que permite a construo de sistemas utilizando o paradigma orientado a objetos com a persistncia destes objetos em bancos de dados relacionais. Notou-se tambm que a Herana um dos principais conceitos da POO e permite o compartilhamento de atributos e operaes entre classes com base em relaes hierrquicas, e juntamente com o Polimorfismo facilitam a manipulao de classes e subclasses.

23

REFERNCIAS SILVA, Flvio de Almeida e. Desenvolvimento orientado a objetos I. So Paulo. Editora Pearson, 2009. TANAKA, Simone Sawasaki. Anlise de sistemas II. So Paulo. Editora Pearson, 2009. http://pt.wikipedia.org/wiki/FIFO Acessado em: 15/04/2012 http://pt.wikipedia.org/wiki/LIFO Acessado em: 15/04/2012 http://www.icmc.usp.br/~sce182/ldupenc.html Acessado em: 18/04/2012 http://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&v ed=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplina s%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=A FQjCNHl5LHbrwgpAlBFepNIgnVvOze8dA Acessado em: 18/04/2012 http://pt.wikipedia.org/wiki/Banco_de_dados Acessado em: 03/05/2012 http://pt.wikipedia.org/wiki/Classe_(programao) Acessado em: 04/05/2012 http://pt.wikipedia.org/wiki/Polimorfismo Acessado em: 04/05/2012

Você também pode gostar