Vous êtes sur la page 1sur 20

SISTEMA DE ENSINO PRESENCIAL CONECTADO SUPERIOR DE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS

LEANDRO LUIS LOPES

PRODUO TEXTUAL INTERDISCIPLINAR

Taubat 2012

PORTFLIO INDIVIDUAL

Trabalho apresentado ao Curso de Tecnologia em anlise e Desenvolvimento de Sistemas da UNOPAR Universidade Norte do Paran, para as disciplinas de, Banco de Dados II, Anlise de Sistemas II, Desenvolvimento Orientado a Objetos I, Algoritmos e Estruturas de Dados e Seminrios III.

Prof. Roberto Yukio Nishimura Profa. Polyanna P. Gomes Fabris Prof. Marcio Chiaveli Prof. Merris Mozer

Taubat 2012

SUMRIO

1.

INTRODUO .................................................................................................................................3

2. DESENVOLVIMENTO .........................................................................................................................4 2.1 algoritmos............................................................................................................................... 4 2.1.1 Conceitos ............................................................................................................................. 4 2.1.1.1 Listas Lineares ............................................................................................................. 4 2.1.1.2 Ordens de operaes sobre Listas ............................................................................ 5 2.1.1.3 Alocao Dinmica de Memria (Apontadores) ....................................................... 6 2.1.1.4 Alocao simplesmente encadeada ........................................................................... 6 2.1.1.5 Vantagens e Desvantagens das alocaes por Encadeamento simples ............... 7 2.1.1.6 Alocao duplamente encadeada .............................................................................. 7 2.1.1.7 Vantagens e Desvantagens das Listas Duplamente Encadeadas .......................... 8 2.1.1.8 Filas ............................................................................................................................... 8 2.1.1.8 Pilhas ............................................................................................................................. 9 2.2 banco de dados........................................................................................................................... 10 2.2.1 ACID .................................................................................................................................... 10 2.2.2 Como usar um banco de dados relacional com a programao orientada a objetos? ...................................................................................................................................................... 11 2.3 programao orientada a objetos ............................................................................................... 12 2.3.1 O que significa ORM (mapeamento objeto relacional)? ................................................ 12 2.3.2 Pesquise e apresente uma ferramenta ORM. ................................................................. 13 2.4 anlise de sistemas .................................................................................................................... 16 2.4.1 Defina e represente atravs do diagrama de classe o conceito de herana e polimorfismo. .............................................................................................................................. 16 3. CONCLUSO .................................................................................................................................... 18 4. REFERNCIAS ................................................................................................................................. 19

3 1. INTRODUO

Este portflio visa apresentao da produo textual interdisciplinar individual do 3 semestre do curso de anlise e desenvolvimento de sistemas e tem como objetivo aplicar os conceitos das disciplinas apresentadas. O trabalho foi dividido em 04 (quatro) partes para facilitar o entendimento, sendo cada diretriz relacionada a uma disciplina apresentada no mdulo, conforme abaixo: 1 Algoritmos

a) Pesquise sobre listas lineares definindo os conceitos de FIFO, FILO, seus apontadores suas ordens para incluso, excluso e pesquisa, exemplos do cotidiano e da informtica sobre listas lineares. Definio dos conceitos de alocao simplesmente encadeada, alocao duplamente encadeada, representao grfica das duas alocaes de encadeamento e resposta a qual delas tem maiores vantagens e o motivo. 2 Banco de Dados II

a) Definio dos conceitos das propriedades ACID de uma transao.

b) Como usar um banco de dados relacional com a programao orientada a objetos? 3 Programao Orientada a Objetos

a) O que significa ORM (mapeamento objeto relacional)?

b) Pesquise e apresente uma ferramenta ORM. 4 Anlise de Sistemas II

a) Defina e represente atravs do diagrama de classe o conceito de herana e polimorfismo.

4 2. DESENVOLVIMENTO

2.1 ALGORITMOS

2.1.1 Conceitos

2.1.1.1 Listas Lineares

Conjunto de dados que mantm a relao de ordem Linear entre os componentes. composta de elementos (componentes ou ns), os quais podem conter um dado primitivo ou estruturado. uma estrutura que permite representar um conjunto de dados de forma a preservar a relao de ordem entre eles.

Uma lista linear X um conjunto de nodos (ns) X1, X2, ... Xn, Tais que: 1) Existem n nodos na lista (n >= 0) 2) X1 o primeiro nodo da lista 3) Xn o ltimo nodo da lista 4) Para todo i,j entre 1 e n, se i<j, ento o elemento Xi antecede o elemento Xj 5) Caso i = j-1, Xi o antecessor de Xj e Xj o sucessor de Xi

Observao: Quando n=0, diz-se que a Lista Vazia

Exemplos de Listas Lista de clientes de um Banco Lista de Chamada

5 2.1.1.2 Ordens de operaes sobre Listas

1) Pesquisa

Procura um nodo especfico da lista linear, de tal forma que: Nodo identificado por sua posio na lista; Nodo identificado pelo seu contedo.

2) Incluso

Acrescenta um nodo X a uma lista linear, de tal forma que: Nodo X ter um sucessor e/ou um antecessor; Aps inserir o nodo X na posio i (i >= 1 e i <= n+1), ele passar a ser i-simo nodo da lista; Nmero de elementos (n) acrescido de uma unidade.

X2

X4

. . .

Xn

X1

X3

3) Excluso

Retira um nodo X da lista, de tal forma que: Se Xi o elemento retirado, o seu sucessor passa a ser o sucessor de seu antecessor. X(i+1) passa a ser o sucessor de X(i-1). Se Xi o primeiro nodo, o seu sucessor passa a ser o primeiro, se Xi o ltimo, o seu antecessor passa a ser o ltimo; Nmero de elementos (n) decrescido de uma unidade.

Operaes Vlidas sobre Listas: Acessar um elemento qualquer da lista; Inserir um novo elemento lista; Concatenar duas listas; Determinar o nmero de elementos da lista; Localizar um elemento da lista com um determinado valor; Excluir um elemento da lista; Alterar um elemento da lista; Criar uma lista;

6 Destruir a lista.

2.1.1.3 Alocao Dinmica de Memria (Apontadores)

Nesta forma de alocao, so feitas requisies e liberaes de pores da memria ao longo da execuo do programa. Para isto, so usadas variveis do tipo Apontador ou (Ponteiro). Apontador um tipo de dado, onde a varivel contm o endereo de outra varivel, ou um endereo de memria. Permite ainda, alocao dinmica de Memria, ou seja, alocao de memria em tempo de execuo do programa.

Clula, Nodo ou N

Espao reservado (alocado) na memria RAM para uma varivel (tipo primitivo ou complexo), ou seja, nmero de bytes gastos para o armazenamento de um dado.

Campo

uma subdiviso de uma clula, ou seja, cada elemento de uma estrutura (struct).

Figura representando uma estrutura.

2.1.1.4 Alocao simplesmente encadeada

Lista representada por Encadeamento

Permite Alocao Dinmica de Memria, ou seja, a lista cresce com a execuo do programa. Operaes como insero e remoo so mais simples. Isto feito atravs de variveis do tipo ponteiro, ou seja, um elemento aponta (possui o endereo, posio de memria do prximo elemento) para o prximo.

Figura representando alocaes por Encadeamento simples

2.1.1.5 Vantagens e Desvantagens das alocaes por Encadeamento simples

Vantagens: Lista cresce indeterminadamente, enquanto houver memria livre (Alocao Dinmica de Memria); As operaes de insero e remoo de elementos no exige a movimentao dos demais elementos.

Desvantagens: Determinar o nmero de elementos da lista, pois para tanto, deve-se percorrer toda a lista; Acessar diretamente um determinado elemento pela sua posio, pois s conhecido o primeiro elemento da lista; Acessar o ltimo elemento da lista, pois para acess-lo, deve-se visitar todos os intermedirios.

2.1.1.6 Alocao duplamente encadeada

Figura representando alocaes duplamente encadeadas

uma lista encadeada, onde cada elemento contm um ponteiro para o n anterior e um ponteiro para o n posterior, permitindo o caminhamento nos dois sentidos da lista, diferentemente, da lista simplesmente encadeada, que s permitia em um nico sentido.

8 A concepo de uma lista duplamente encadeada bastante similar dos simples, basta acrescentar ao n uma varivel que fara referncia ao elemento anterior, da mesma maneira que feito com o prximo. Sendo assim este mtodo leva maior vantagem, pois quando se percorre uma lista de encadeamento simples, bastante difcil fazer o caminho inverso; j nas listas de encadeamento duplo esse problema no existe.

2.1.1.7 Vantagens e Desvantagens das Listas Duplamente Encadeadas

Vantagens Insero e remoo de componentes sem movimentar os demais; Pode-se ter qualquer quantidade de elementos, limitado pela memria livre, pois cada elemento alocado dinamicamente.

Desvantagens Gerncia de memria mais onerosa, alocao / desalocao para cada elemento; Procedimentos mais complexos; Processamento serial (Acesso Seqencial).

2.1.1.8 Filas

uma Lista Linear na qual as inseres so feitas no fim e as excluses e consultas no incio da fila. Uma fila possui duas funes bsicas: ENQUEUE (incluir - INC), que adiciona um elemento ao final da fila, e DEQUEUE (retirar - DEL), que remove o elemento no incio da fila.

Inc io

Fim

Critrio de Utilizao

FIFO - "First In First Out" (primeiro a entrar o primeiro a sair)

9 Operaes sobre Filas

Cria_Fila(f); Destroi_Fila(f); erro = Insere_ Fila(f, i); erro = Exclui_ Fila (f); erro = Consulta_ Fila (f, j);

Cria FILA Vazia Desfaz a FILA Insere o dado "i" no fim da FILA Retira da FILA o primeiro elemento Copia em "j" o primeiro elemento da FILA

Exemplos: No cotidiano: Uma fila de banco; Na informtica: Em um sistema operacional, os processos prontos para entrar em execuo (aguardando apenas a disponibilidade da CPU) so geralmente mantidos numa fila.

2.1.1.8 Pilhas

uma Lista Linear na qual as inseres, excluses e consultas so feitas em um mesmo extremo (TOPO). Existem duas funes que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da pilha, e POP, que remove o item no topo da pilha.

PUSH POP T OPO

Critrio de Utilizao

Em cincia da computao, LIFO (acrnimo para a expresso inglesa Last In, First Out que, em portugus significa ltimo a entrar, primeiro a sair) refere-se a estruturas de dados do tipo pilha. equivalente a FILO, que significa First In, Last Out.

LIFO - "Last In First Out" (ltimo a entrar o primeiro a sair) FILO "First In Las Out" (primeiro a entrar o ltimo a sair)

10 Operaes sobre Pilhas: Cria_Pilha(p); Destroi_Pilha(p); erro = Push(p, i); erro = Pop(p, i); erro = Consulta_Pilha(p,j); Cria pilha Vazia Desfaz a pilha Empilha o dado "i" no fim da PILHA Desempilha o primeiro elemento Copia em "j" o primeiro elemento

Identificadores da Pilha:

B(p) T(p) L(p)

Base da PILHA Topo da PILHA Limite da PILHA

Exemplos: No cotidiano: pilhas de pratos numa cafeteria (acrscimos e retiradas de pratos sempre feitos num mesmo lado da pilha - lado de cima) Na informtica: Na execuo de um programa, uma pilha pode ser usada na chamada de procedimentos, para armazenar o endereo de retorno (e os parmetros reais). medida que procedimentos chamam outros procedimentos, mais e mais endereos de retorno devem ser empilhados. Estes so desempilhados medida que os procedimentos chegam ao seu fim.

2.2 BANCO DE DADOS

2.2.1 ACID

ACID (acrnimo de Atomicidade, Consistncia, Isolamento e Durabilidade), um conceito utilizado em cincia da computao para caracterizar uma transao, entre outras coisas.

Atomicidade Trata o trabalho como parte indivisvel (atmico). A transao deve ter todas as suas operaes executadas em caso de sucesso ou nenhum resultado de alguma operao refletida sobre a base de dados em caso de falha. Ou seja, aps o trmino de uma transao (commit ou abort), a base de dados no deve refletir resultados parciais da transao. Exemplos: Ou todo o trabalho feito, ou nada feito. Em uma transferncia de valores entre contas bancrias, necessrio que, da conta origem seja retirado um valor X e na conta destino seja somado o mesmo valor X. As duas operaes devem ser completadas sem que qualquer erro acontea, caso contrrio todas as alteraes feitas nessa operao de transferncia devem ser desfeitas;

11 Consistncia Regras de integridade dos dados so asseguradas, ou seja, as transaes no podem quebrar as regras do Banco de Dados. Isolamento Tudo se parece como se o trabalho estivesse isolado. O resultado de uma transao executada concorrentemente a outra deve ser o mesmo que o de sua execuo de forma isolada. Operaes exteriores a uma dada transao jamais vero esta transao em estados intermedirios. Exemplo: Duas transaes executadas juntas.

Transao Y altera o nome do cliente. Transao X altera o nome do mesmo cliente;

Ao fazer insert, update ou delete enquanto a transao estiver em andamento todos os dados da tabela sero alocados para aquela transao, portanto a transao X s poder ser executada aps a concluso da transao Y. Esta escolha feita pelo banco de dados e ele executa primeiro uma transao depois a outra. Duas transaes s podem ser simultneas se elas no alterarem os mesmos dados. Durabilidade Os efeitos de uma transao em caso de sucesso (commit) devem persistir no banco de dados mesmo em presena de falhas.

2.2.2 Como usar um banco de dados relacional com a programao orientada a objetos?

Durante as ultimas dcadas, diversos tipos de banco de dados foram criados: arquivos indexados, hierrquico, rede, relacional e orientado a objetos. Sempre existiu uma lacuna entre a linguagem de programao que utilizamos para escrever nosso cdigo e a forma que utilizamos para manipular os dados, por isso sempre houve necessidade de se fazer um mapeamento entre o software utilizado e o banco de dados. O modelo orientado a objetos baseado no mundo real e em princpios de engenharias com comprovada eficcia. O modelo relacional baseado em princpios matemticos tambm de comprovada eficcia. O problema se acentua medida que cresce a diferena entre nosso modelo Orientado a Objetos e nosso modelo relacional, pois mais cdigo ser necessrio para corrigir esta diferena, mais cdigo significa mais custo, degradao de performance, tempo etc. O sucesso da utilizao das duas tecnologias s ser alcanado se ambas foram bem compreendidas.

12 A tecnologia de Orientao a objetos suporta a criao de aplicaes que introduzam tanto os dados quanto as regras de negcio. Ambas as tecnologias, Orientada a Objetos e Relacional, esto fortemente enraizadas nas organizaes, e sero utilizadas por muito tempo. A diferena e os problemas encontrados na utilizao destas duas tecnologias algo relativamente novo e pouco explorados. Embora o modelo Orientado a Objetos seja facilmente mapeado no modelo relacional, difcil prever quais das muitas possibilidades de mapeamento tero o melhor resultado em cada caso. A melhor alternativa tem sido a experimentao, atravs de uma camada de persistncia ou

mesmo de uma ferramenta de mapeamento objeto relacional.


A Programao Orientada a Objetos um paradigma de programao que pode muito bem solucionar um dos maiores problemas de qualquer programador: a mudana. O usurio, na maioria das vezes no sabe realmente o que ele precisa, ou no entendemos ao certo as suas necessidades e isso ocasiona diversas mudanas durante o ciclo de vida do software. necessrio ento desenvolver uma aplicao flexvel, pronta para mudar. A POO nos permite isso, mas hoje vivemos a realidade em que a maioria dos bancos de dados das empresas so relacionais e no armazenam objetos. Todavia, quando criamos uma instncia do nosso objeto e, na aplicao configuramos seu estado, temos a necessidade de gravar tudo isso que foi feito. Precisamos de algo que pegue esse objeto e envie ele para o banco de tal forma que no precisemos ficar montando sentenas SQL na aplicao como INSERT, SELECT, UPDATE ou DELETE. Neste momento, que quase todas as aplicaes devem passar, surge a necessidade da criao de uma Camada de Persistncia. A arquitetura comumente usada hoje em dia a arquitetura multicamadas. Temos ento a interface, camada de negcios e banco de dados. A Camada de Persistncia ficar ento entre a camada de negcios e o bando de dados. As operaes bsicas de uma camada de persistncia so conhecidas como CRUD (Create, Retrieve (ou Read), Update e Delete). A camada de persistncia deve fazer essas operaes de forma transparente para a aplicao. Isso faz com que a aplicao fique mais enxuta para tratar os problemas do usurio e no problemas com armazenamento e recuperao de dados. Existe um padro para a criao desta camada de persistncia. Ele se chama DAO Pattern.O DAO (Data Access Object) Pattern prope que tenhamos todas essas operaes CRUD de forma transparente.

2.3 PROGRAMAO ORIENTADA A OBJETOS

2.3.1 O que significa ORM (mapeamento objeto relacional)?

(ORM) MAPEAMENTO OBJETO RELACIONAL

O termo Mapeamento Objeto Relacional refere-se tcnica de mapear os registro do Banco de

13 Dados em objetos e persistir as informaes contidas nos objeto em forma de linhas e colunas. Como o prprio nome diz, Mapeamento Objeto / Relacional, responsvel por mapear classes e atributos do modelo orientado a objeto para tabelas e colunas do banco de dados. Existem vrias formas de fazer esse mapeamento. Alguns frameworks utilizam a linguagem XML, outros nos obrigam a implementar alguma Interface ou trabalhar com os atributos do .NET, mas o objetivo sempre o mesmo: Permitir que o framework consiga gerar os comandos SQL dinamicamente. Outra caracterstica deste modelo a independncia do banco de dados. Devido gerao de comandos dinmicos, o framework pode analisar qual banco de dados a aplicao est acessando e gerar os comandos no dialeto especfico do banco de dados, ou seja, possvel mudar o banco de dados da aplicao apenas alterando um arquivo de configurao.

2.3.2 Pesquise e apresente uma ferramenta ORM.

Hibernate
um dos mais bem sucedidos projetos Open Source desenvolvido em Java. Sua facilidade de uso, abstrao e transparncia fizeram dele quase um padro em frameworks de mapeamento objeto-relacional. Embora sua documentao seja rica e extensa, a falta de exemplos e dicas em portugus muitas vezes dificulta a sua adoo por parte de desenvolvedores brasileiros. O Hibernate no trata apenas do mapeamento de classes Java em tabelas de banco de dados (e tipos de dados Java em tipo de dados SQL), mas disponibiliza tambm um poderoso mecanismo de consulta de dados que pode reduzir significamente o tempo de desenvolvimento. O Hibernate objetiva liberar o desenvolvedor em 95% das tarefas comum relacionadas programao de persistncia de dados. O Hibernate disponibiliza um poderoso framework para persistncia objeto relacional, de fcil manuseio e alto desempenho. O Hibernate prov suporte para colees e relacionamentos entre objetos, assim como herana, polimorfismo e composies. Ele tambm tem um rica linguagem de consulta orientada a objetos, o HQL ( Hibernate Query Language) para recuperao de objetos de banco de dados, uma camada de cach eficiente e suporte para Java Management Extensions (JMX). O Hibernate possui uma comunidade ativa de usurios que ajuda a prover suporte e ferramentas para extenso. distribudo de acordo com a Lesser GNU Public License (LGPL), portanto pode ser usado tanto em explicaes de cdigo aberto como comerciais. Suporta um grande numero de banco de dados, incluindo Oracle e DB2, assim como banco de dados livres tais como de dados, PostgreSQL e MySQL, permitindo a utilizao de meios nativos para a gerao de chaves primarias e pessimistic locking alm de resolver problemas como pool de conexes e configuraes de datasources.

14 Instalao e Configurao A ltima verso Hibernate pode ser copiada do site oficial(http://www.hibernate.org). A

instalao simples, bastando descompactar o arquivo.zip. O diretrio criado contm o JAR ncleo do Hibernate (hibernate2.jar). Tambm existe um subdiretrio chamado lib onde ficam os JARs das outras APIs utilizadas pelo framework. Esses arquivos JARs devem ser referenciados no classpath da aplicao. tambm necessrio que a classe de driver do seu banco de dados esteja no classpath. O Hibernate foi desenvolvido para operar em vrios ambientes diferentes. Por isso, existe um grande nmero de parmetros de configurao. Por outro lado, a grande maioria dos parmetros tem valor padro e, alm disso, o Hibernate distribudo com um arquivo chamado hibernate.properties que mostra as vrias opes disponveis. Voc apenas precisa colocar esse arquivo no classpath e customiz-lo.

Hibernate / Persistncia Hibernate um mecanismo simples e poderoso que permite a persistncia de objetos em banco de dados relacionais de maneira transparente para qualquer tipo de aplicao Java. Esta ferramenta, que pode ser baixada gratuitamente da Internet atravs do endereo

(http://hibernate.sf.net/), possibilita que os objetos possam ser gravados e recuperados a partir de um banco de dados sem que o desenvolvedor tenha que se preocupar com muitos detalhes. No h necessidade de se implementar mapeamentos hardcoded no cdigo Java. O Hibernate resolve problemas como pool de conexes e configuraes de Datasources. Em linhas gerais, a codificao de um sistema pode ser dividida em duas partes: Regras de negcio e servios de infra-estrutura. Regras de negcio, como o prprio nome diz, esto relacionadas ao negcio com o qual o sistema visa trabalhar. J os servios de infra-estrutura esto relacionados segurana, cache, transao, servios de nomes, etc. A idia do Hibernate permitir que o desenvolvedor mantenha seu foco sobre as regras de negcio, liberando-o de parte das tarefas de infra-estrutura. O Hibernate suporta alguns dos principais bancos de dados relacionais disponveis no mercado, permitindo a utilizao de meios nativos para gerao de chaves primrias e pessimistic locking. O hibernate trabalha com os bancos de dados atravs de dialetos, conforme a tabela abaixo.

15 Fonte: www.mundojava.com.br

O desenvolvimento usando Hibernate um processo que pode ser dividido em cinco etapas. O primeiro passo a construo do banco de dados com o qual a aplicao ir trabalhar, ou seja, criar as tabelas onde os objetos sero persistidos. Este banco de dados, com suas entidades, atributos e relacionamentos, poder ser criado de forma tradicional ou, a critrio do usurio, poder ser utilizada a ferramenta SchemaExport que acompanha o Hibernate, Esta ferramenta gera o esquema de banco de dados baseado no relacionamento entre os objetos que se quer persistir. O segundo passo criao dos objetos cujos estados vo ser persistidos, isto , a construo de classes (beans) para cada entidade do banco de dados. Estas classes devem ser construdas seguindo o modelo JavaBeans, com mtodos get e set para manipulao dos atributos. Neste ponto, o Hibernate difere-se de outros mecanismos de persistncias como o JDO, visto que os beans utilizados pelo Hibernate no necessitam estender superclasses ou implementar interfaces. necessria a implementao de um construtor default (construtor sem parmetros) para todas as classes persistentes. O Hibernate faz a instanciao de objetos e o acesso s suas propriedades atravs de reflexo, assim mtodos de acesso e construtores no necessitam ser declarados como pblicos. Adicionalmente, deve ser criada uma propriedade chave-primria, que far s vezes de uma primary key, atravs da qual um objeto ser unicamente identificado. Esta propriedade, no obrigatria, pode ser do tipo primitivo int, long, char ou mesmo uma String. Aps a criao das tabelas e dos beans necessrio criar meta-dados de modo a fornecer ao Hibernate informaes sobre como relacionar os objetos com as entidades do banco de dados. Esta a terceira etapa, a criao de arquivos XML que relacionam as propriedades de cada objeto aos campos das tabelas. Nestes arquivos de mapeamento deve-se informar, ainda, qual propriedade dos objetos e relaciona com a chave-primria, bem com os relacionamentos entre entidades (inclusive os tipos de relacionamento: 1-1, 1-N ou NN). A quarta etapa refere-se criao de um arquivo contendo as propriedades necessrias para que o Hibernate se conecte ao banco de dados. Existe um arquivo de configurao modelo

(hibernate.properties) que poder ser utilizado como base para que o usurio proceda configurao. A quinta e ltima etapa a criao de Data Access Objects (DAO), tais mecanismos so design pattern teis para separao da lgica de acesso a dados da lgica de negcios da aplicao. Estas classes que contero os mtodos de incluso, alterao, excluso dos objetos, etc. Em resumo, o Hibernate uma ferramenta que permite trabalhar com persistncia sobre banco de dados, sem necessidade da incluso de instrues SQL em meio ao cdigo Java, assim como elimina a necessidade de se mapear ResultSets e implementar configurao de pool de conexes, etc., o que torna o cdigo mais legvel e, conseqentemente, mais fcil de manter. Contudo a implementao no independente da fonte de dados, visto que o Hibernate trabalha apenas com alguns dos bancos de dados relacionais. Por outro lado, caso a aplicao exija consultas SQL complexas, h de se considerar a utilizao da linguagem HQL, a Query Language do Hibernate.

16 2.4 ANLISE DE SISTEMAS

2.4.1 Defina e represente atravs do diagrama de classe o conceito de herana e polimorfismo.

Representao grfica de diagrama de classe adotando herana e polimorfismo

A Herana um princpio da Programao Orientada a Objetos que permite que as classes compartilhem atributos e operaes baseados em um relacionamento, geralmente generalizao. A herana permite a criao de subclasses que herdam alguns dos atributos e das operaes (ou Mtodos) da classe pai (super-classe ou classe base). A herana um conceito aplicado no momento de criao das classes. Ela usada na inteno de reaproveitar cdigo ou comportamento generalizado ou especializar operaes ou atributos. Neste exemplo temo suma superclase Mamfero e as subclases Cachorro, Macaco, Homem, que herdam de Mamfero. Podemos dizer que Cachorro um Mamfero, Macaco um Mamfero, Homem um Mamfero. As caractersticas definidas na classe Mamferos estaro presentes nas classes que herdam dela. Todos os Mamferos tero Mamas e Pelos. Isto Herana. Alm disso, cada classe que herda de Mamfero poder ter seus prprios atributos que se somaro aos da superclasse. Note que a classe Homem contm uma definio dos atributo Pelos. Dando uma razo lgica para nosso exemplo, isto porque o Homem tem pelos diferentes dos outros mamferos. Polimorfismo o princpio pelo qual classes derivadas de uma mesma superclasse podem invocar mtodos que tm a mesma assinatura, mas comportamentos distintos ( utilizado o mecanismo de redefinio de mtodos), especializados para cada classe derivada, usando para tanto uma referncia a um objeto do tipo da superclasse. Podemos portanto re-definir na subclasse um atributo que j estajam presentes na superclasse, dando a ele caractersticas diferentes. Isto Polimorfismo. O mesmo mtodo ou atributo pode ter funcionamento diferente em classes diferentes, mesmo que uma herde da outra. 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

17 a todas as suas subclasses, evitando-se redundncia, promovendo a sua reutilizao. Podemos observar as classes aluno e professor, onde ambas possuem atributos como nome, data de nascimento e idade. Nesse caso pode-se criar uma nova classe chamada, por exemplo, pessoa, que contenha as semelhanas entre as duas classes, fazendo com que aluno e professor herdem as caractersticas de pessoa, desta maneira pode-se dizer que aluno e professor so subclasses de pessoa.

18 3. CONCLUSO

Nesta grande evoluo do mundo computacional, um fator de relevante importncia a forma de armazenar as informaes, j que, informtica a cincia da informao. Ento de nada adiantaria o grande desenvolvimento do hardware e do software, se a forma de armazenamento e tratamento da informao no acompanhasse esse desenvolvimento. Por isso a importncia das estruturas de dados, que nada mais so, que formas otimizadas de armazenamento e tratamento das informaes eletronicamente. As estruturas de dados, na sua maioria dos casos, foram espelhadas em formas naturais de armazenamento do nosso dia a dia, ou seja, nada mais so que a transformao de uma forma de armazenamento j conhecida e utilizada no nosso mundo para o mundo computacional. Por isso, cada tipo de estrutura de dados possui vantagens e desvantagens e cada uma delas tem sua rea de atuao. Desta forma podemos verificar que as atividades desenvolvidas foram de suma importncia no que tange a explorao do conhecimento necessrio para as devidas resolues, sabendo se que tal desenvolvimento ser de importncia tamanha quando da formao do profissional de TI, ocasionando qualidade nas elaboraes do projeto, nas documentaes, nos softwares propriamente ditos e seu banco de dados relacionados com a orientao a objetos.

19 4. REFERNCIAS Sandra Puga, Gerson Risseti, Lgica de programao e estruturas de dados, com aplicao em JAVA, Editora Pearson NASSU, E. A.; SETZER, W. W. Banco de Dados Orientado a Objeto, Editora Edgar Bkucher Ltda., 1 edio 1999. ACID. [Internet: http://pt.wikipedia.org/wiki/ACID]

HIBERNATE. [Internet: http://www.hibernate.org]

ORM. [Internet: http://www.fernandoamaral.com.br]

Vous aimerez peut-être aussi