View
220
Download
0
Category
Preview:
Citation preview
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
1/26
Palmas - TO2012
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SISTEMA DE ENSINO PRESENCIAL CONECTADOTECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS
ATIVIDADE INTERDISCIPLINAR - INDIVIDUAL
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
2/26
Palmas - TO2012
ATIVIDADE INTERDISCIPLINAR - INDIVIDUAL
Trabalho apresentado ao Curso de Tecnologia emAnlise e Desenvolvimento de Sistemas da UniversidadeNorte do Paran UNOPAR
Professores: Polyanna Pacheco GomesRoberto Y. NishimuraMarcio ChiaveliMerris Mozer
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
3/26
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
4/26
SUMRIO
1 INTRODUO ..................................................................................................... 32 LISTAS LINEARES .............................................................................................. 42.1 FIFO ..................................................................................................................... 42.1.1 Aplicaes FIFO............................................................................................ 42.1.2 Vantagens e Desvantagens do FIFO ............................................................ 52.2 FILO ..................................................................................................................... 52.3 ALOCAO SIMPLISMENTE ENCADEADA ...................................................... 62.3.1 Exemplos de algoritmos para as operaes de insero e retirada de umelemento numa pilha com alocao contgua: ............................................................ 62.3.2 Exemplo de algoritmo para a operao de insero de um elemento numafila com alocao contgua: ......................................................................................... 72.3.3 Exemplo de algoritmo para a operao de retirada de um elemento numafila com alocao contgua: ......................................................................................... 72.4 ALOCAO DUPLAMENTE ENCADEADA ......................................................... 82.4.1 Implementao de Algumas Operaes de Lista Duplamente EncadeadaCom Alocao Dinmica ............................................................................................. 8
2.4.1.1 Insero direita de pont .............................................................................. 92.4.1.2 Insero esquerda de pont ........................................................................ 92.4.1.3 Eliminao direita de pont ........................................................................ 102.4.1.4 Eliminao do prprio pont ......................................................................... 102.4.1.5 Busca em uma lista circular ........................................................................ 103 ACID................................................................................................................... 123.1 TRANSAES .................................................................................................. 123.2 ATOMICIDADE .................................................................................................. 123.3 CONSISTNCIA ................................................................................................ 123.4 ISOLAMENTO .................................................................................................... 123.5 DURABILIDADE ................................................................................................. 133.6 IMPORTNCIA DO ACID PARA UM SGBD ...................................................... 134 BANCO DE DADOS RELACIONAL COM A PROGRAMAO ORIENTADA AOBJETOS.................................................................................................................. 144.1 ORIENTAO A OBJETOS VS MODELO ENTIDADE RELACIONAMENTO ... 145 OBJECT RELATIONAL MAPPING (ORM) MAPEAMENTO DE OBJETO
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
5/26
RELACIONAL............................................................................................................ 155.1 FERRAMENTAS PARA FAZER ORM (OBJECT RELATIONAL MAPPING) ..... 185.1.1 JPA e Hibernate .......................................................................................... 186 HERANA E POLIMORFISMO ......................................................................... 196.1 HERANA .......................................................................................................... 196.1.1 Diagrama de Classe (Herana) ................................................................... 196.2 POLIMORFISMO ............................................................................................... 206.2.1 Diagrama de Classe (Polimorfismo) ............................................................ 217 CONCLUSO .................................................................................................... 22REFERNCIAS ......................................................................................................... 23
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
6/26
3
1 INTRODUO
Neste trabalho ser abordada toda a matria do 3 Semestre, dentro
deste contexto sero apresentados os conceitos de listas lineares, FIFO, FILO, seusapontadores, 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.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
7/26
4
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
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
8/26
5
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.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
9/26
6
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 asequencialidade 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 umelemento 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 INSERIRSE TOPO = MAXIMO ENTO
OVERFLOWSENO
TOPO := TOPO + 1VETOR[TOPO] := VALOR
FIM SEFIM
INICIO RETIRARSE TOPO = 0 ENTO
UNDERFLOWSENO
VALOR := VETOR[TOPO]TOPO := TOPO - 1FIM SE
FIM
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
10/26
7
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 INSERIRPROV := (FINAL MOD MAXIMO) + 1SE PROV COMECO ENTO
FINAL := PROVVETOR[FINAL] := VALORSE COMECO = 0 ENTO
COMECO := 1FIM SE
SENOOVERFLOW
FIM SEFIM
2.3.3 Exemplo de algoritmo para a operao de retirada de um elemento numa filacom 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 RETIRARSE COMECO 0 ENTO
VALOR := VETOR[COMECO]SE COMECO = FINAL ENTO
COMECO := 0FINAL := 0
SENOCOMECO := (COMECO MOD MAXIMO) + 1
FIM SESENO
UNDERFLOWFIM SEFIM
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
11/26
8
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
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
12/26
9
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;
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
13/26
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
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
14/26
11
pont:=ptlista;
While pont^.info < x do
pont:=pont^.dir;
Busca_Dup_Ord:=pont;
End
Else
Busca_Dup_Ord:=ptlista;
End;
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
15/26
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 ouno, 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.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
16/26
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 numrepositrio 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).
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
17/26
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, necessriodefinir 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.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
18/26
15
5 OBJECT RELATIONAL MAPPING (ORM) MAPEAMENTO DE OBJETO
RELACIONAL
Mapeamento de Objeto Relacional (ORM) uma abordagem quepermite 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
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
19/26
16
As tabelas Classe1 e 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, oque 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 outrosatributos 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
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
20/26
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 seinjetar 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). Nacamada de persistncia est a definio das estratgias de mapeamento do modelo
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
21/26
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 especificao 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 especificao est na sua segunda verso.
Ela especifica um conjunto de classes e mtodos que as
ferramentas de ORM devem implementar. Veja que a JPA apenas uma
especificao, 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.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
22/26
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 declasses relacionadas por herana / generalizao. Em cada classe da hierarquia
colocam-se as propriedades que so comuns a todas as suas subclasses, evitando-
se redundncia, promovendo a sua reutilizao.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
23/26
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) eagir (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 precisadesenhar 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).
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
24/26
21
6.2.1 Diagrama de Classe (Polimorfismo)
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
25/26
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 daspropriedades 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 embancos 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.
7/31/2019 Atividade Interdisciplinar 3 Semestre - Individual
26/26
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/FIFOAcessado em: 15/04/2012
http://pt.wikipedia.org/wiki/LIFOAcessado em: 15/04/2012
http://www.icmc.usp.br/~sce182/ldupenc.htmlAcessado em: 18/04/2012
http://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAAcessado em: 18/04/2012
http://pt.wikipedia.org/wiki/Banco_de_dados
Acessado em: 03/05/2012http://pt.wikipedia.org/wiki/Classe_(programao)Acessado em: 04/05/2012
http://pt.wikipedia.org/wiki/PolimorfismoAcessado em: 04/05/2012
http://pt.wikipedia.org/wiki/FIFOhttp://pt.wikipedia.org/wiki/LIFOhttp://www.icmc.usp.br/~sce182/ldupenc.htmlhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://pt.wikipedia.org/wiki/Banco_de_dadoshttp://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Polimorfismohttp://pt.wikipedia.org/wiki/Polimorfismohttp://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Banco_de_dadoshttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.google.com.br/url?sa=t&rct=j&q=listas%20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas%2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AFQjCNHl5LHbrwgpAlBFepNIgnVvOze8dAhttp://www.icmc.usp.br/~sce182/ldupenc.htmlhttp://pt.wikipedia.org/wiki/LIFOhttp://pt.wikipedia.org/wiki/FIFORecommended