atividade interdisciplinar 3º semestre - individual

Upload: tarhtm

Post on 05-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 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/FIFO