Sunteți pe pagina 1din 20

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANLISE E DESENVOLVIMENTO DE SISTEMAS THASSIANY THEDY HAMMACHER

PORTFLIO:
Atividade Interdisciplinar Individual

Uruguaiana 2012

THASSIANY THEDY HAMMACHER

PORTFLIO:
Atividade Interdisciplinar Individual

Trabalho de Anlise e desenvolvimento de sistemas apresentado Universidade Norte do Paran - UNOPAR, como requisito parcial para a obteno de mdia bimestral nas disciplinas de Banco de dados II, Analise de sistemas II, Desenvolvimento orientado a objetos I e Algoritmos e estrutura de dados. Orientadores: Prof. Roberto Nishimura; Prof. Polyanna Gomes; Prof. Marcio Chiavelli; Prof. Merris Mozer.

Uruguaiana 2012

SUMRIO 1 INTRODUO...........................................................................................................3 2 OBJETIVOS...............................................................................................................4 3 DESENVOLVIMENTO...............................................................................................5 4 CONCLUSO...........................................................................................................17 REFERNCIAS..........................................................................................................18

1 INTRODUO O contedo que ser abordado a partir de agora voltado aos dados, parte essencial para a obteno de um software, pois sem dados no h a necessidade de se criar um software capaz de realizar a movimentao dos mesmos. Sero abordados temas como: listas lineares, propriedades do banco de dados (ACID), caractersticas dos objetos e tambm a relao entre banco de dados e orientao a objetos. A parte de listas lineares aborda a forma como os dados sero organizados e armazenados, seguindo princpios de alocao esttica, alocao dinmica, encadeamento e sequncia. As propriedades dos bancos de dados se resumem em o que devemos fazer para a atomicidade, consistncia, integridade e durabilidade do banco de dados serem mantidas. As caractersticas dos objetos que sero explicadas so herana e polimorfismo, citando exemplos que facilitam a compreenso. E a relao do banco de dados com a orientao a objetos consiste em explicar o que deve ser feito para o banco de dados relacional ser utilizado pela POO e apresentar uma ferramenta que auxilie esse processo.

2 OBJETIVOS Esse trabalho tem como principal objetivo adquirir conhecimento e demonstrar o meu domnio sobre os assuntos abordados nesse semestre. Alm disso, pesquisar sobre a definio de alguns conceitos, exemplificao, funcionalidades, representao de diagramas e demonstrao de ferramentas. Envolvendo tanto a parte de anlise de sistemas quanto parte de desenvolvimento.

3 DESENVOLVIMENTO A partir deste momento as questes propostas sero resolvidas. Abordando conceitos, exemplos e modelos que auxiliaro na compreenso do contedo. 3.1 LISTAS LINEARES

Uma lista linear um conjunto de n elementos (de informaes) cuja propriedade estrutural envolve as posies relativas de seus elementos. (SONG, listas lineares, p. 4)

Listas para poderem ser chamadas de lineares precisam saber a ordem, ou sequncia, de seus elementos. Para isso agrupam os dados em forma de filas (FIFO) ou pilhas (LIFO), para uma melhor localizao de posio usam o encadeamento e tendo isso em vista, preocupam-se tambm com o armazenamento dos seus dados na memria e como ser o comportamento deles.
A soluo para esses problemas utilizar estruturas de dados que cresam medida que precisarmos armazenar novos elementos (e diminuam medida que precisarmos retirar elementos armazenados anteriormente). Tais estruturas so chamadas dinmicas e armazenam cada um dos seus elementos usando alocao dinmica. (CELES; RANGEL, listas encadeadas, p. 1)

3.1.1 Alocao

"Alocao de memria, em cincia da computao, consiste no processo de solicitar/utilizar memria durante o processo de execuo de um programa de computador. A alocao de memria no computador pode ser dividida em dois grupos principais: alocao esttica e alocao dinmica." (WIKIPDIA, alocao de memria)

a forma como a lista armazenada na memria.

3.1.1.1 Alocao esttica

Alocao Esttica: os dados tm um tamanho fixo e esto organizados seqencialmente na memria do computador. Um exemplo tpico de alocao esttica so as variveis globais e arrays. (WIKIPDIA, alocao de memria)

Quando conhecemos a quantidade total de memria a ser utilizada pelos dados, definimos isso no cdigo-fonte do programa e se, durante toda sua execuo, o programa no causa nenhuma variao na quantidade de memria utilizada, consideramos a alocao como esttica. 3.1.1.2 Alocao dinmica

" Alocao Dinmica: os dados no precisam ter um tamanho fixo, pois podemos definir para cada dado quanto de memria que desejamos usar. Sendo assim vamos alocar espaos de memria (blocos) que no precisam estar necessariamente organizados de maneira seqencial, podendo estar distribudos de forma dispersa (no ordenada) na memria do computador. Na alocao dinmica, vamos pedir para alocar/desalocar blocos de memria, de acordo com a nossa necessidade, reservando ou liberando blocos de memria durante a execuo de um programa. Para poder achar os blocos que esto dispersos ou espalhados na memria usamos as variveis do tipo Ponteiro (indicadores de endereos de memria)." (WIKIPDIA, alocao de memria)

Se, mesmo definindo a quantidade total de memria a ser utilizada, o programa cria novas reas de memria durante sua execuo, consideramos a alocao como dinmica.
Os atributos seqencial e encadeada s fazem sentido se a memria considerada for armazenar uma coleo de objetos. (FURGERI, listas lineares, p. 2)

3.1.1.3 Alocao sequencial ou contgua

A forma mais natural de armazenar uma lista dentro do computador consiste em colocar os seus elementos em clulas de memria consecutivas, um aps o outro. (FURGERI, listas lineares, p. 2)

O armazenamento dos dados feito sequencialmente comum por

ser considerado natural, pois a leitura feita exatamente na ordem em que foram alocados. Mas h problemas nesse tipo de armazenamento. Caso seja necessrio inserir algum dado que no pode ser adicionado ao final da lista (e sim no seu interior porque foi esquecido, por exemplo), obrigatoriamente a ordem de dentro da lista alocada ter de ser modificada e sua leitura tambm ser afetada. 3.1.1.4 Alocao ligada ou encadeada

Ao invs de manter os elementos agrupados numa rea contnua de memria, isto , ocupando clulas consecutivas, na alocao encadeada os elementos podem ocupar quaisquer clulas (no necessariamente consecutivas) e, para manter a relao de ordem linear, juntamente com cada elemento armazenado o endereo do prximo elemento da lista.

Desta forma, na alocao encadeada, os elementos so armazenados em blocos de memria denominados nodos(...) (FURGERI, listas lineares, p. 5)

Na alocao encadeada os dados so armazenados em blocos e podem ocupar posies aleatrias na memria. A leitura feita pela ordem em que referenciada no bloco (pelo nodo ou n). Ento no haver problema se quisermos adicionar alguma informao que tenha que ficar entre os blocos j salvos, s mudarmos a referncia que est no n. Representao dos encadeamentos

(FONTE: livro didtico da disciplina de Algoritmos e estrutura de dados)

3.1.1.4.1 Simplesmente encadeada.

Numa lista encadeada, para cada novo elemento inserido na estrutura, alocamos um espao de memria para armazen-lo. Desta forma, o espao total de memria gasto pela estrutura proporcional ao nmero de elementos nela armazenado. No entanto, no podemos garantir que os elementos armazenados na lista ocuparo um espao de memria contguo, portanto no temos acesso direto aos elementos da lista. Para que seja possvel percorrer todos os elementos da lista, devemos explicitamente guardar o encadeamento dos elementos, o que feito armazenando-se, junto com a informao de cada elemento, um ponteiro para o prximo elemento da lista. (...) A estrutura consiste numa seqncia encadeada de elementos, em geral chamados de ns da lista. A lista representada por um ponteiro para o primeiro elemento (ou n). (CELES; RANGEL, listas encadeadas, p. 2)

Podemos considerar a lista como simplesmente encadeada quando os seus elementos apontam apenas para o sucessor. Nesse tipo de encadeamento surgem problemas na hora de fazer a leitura pelo caminho inverso (do ltimo para o primeiro), pois o caminho do n apenas do bloco seguinte. Uma maneira de resolvermos esse problema salvar a ordem do encadeamento e voltar procurando o elemento que chamou o elemento atual.

3.1.1.4.2 Duplamente encadeada.

(...) encadeamento simples entre os elementos: cada elemento armazena um ponteiro para o prximo elemento da lista. Desta forma, no temos como percorrer eficientemente os elementos em ordem inversa, isto , do final para o incio da lista. O encadeamento simples tambm dificulta a retirada de um elemento da lista. Mesmo se tivermos o ponteiro do elemento que desejamos retirar, temos que percorrer a lista, elemento por elemento, para encontrarmos o elemento anterior, pois, dado um determinado elemento, no temos como acessar diretamente seu elemento anterior.

Para solucionar esses problemas, podemos formar o que chamamos de listas duplamente encadeadas. Nelas, cada elemento tem um ponteiro para o prximo elemento e um ponteiro para o elemento anterior. (...)(CELES; RANGEL, listas encadeadas, p. 16)

Podemos considerar a lista como duplamente encadeada quando os elementos que a compe apontam para seu sucessor e para seu predecessor. Porm podemos encontrar problemas quando quisermos saber quem o primeiro ou o ltimo elemento a lista, pois teremos que ver qual deles tem o anterior ou o prximo n apontando para um valor nulo.

3.1.2 FIFO Acrnimo de First In First Out, tambm pode ser representado pelo acrnimo LILO (Last In Last Out). So estruturas de dados do tipo fila, onde a entrada de elementos se d por um lado e a sada pelo lado oposto.
Fila: lista linear onde todas as inseres so feitas num certo extremo e todas as remoes e acessos so realizados no outro. Filas so tambm denominadas listas FIFO(First-In / First-Out, ou em portugus, primeiro que entra / primeiro que sai). (FURGERI, listas lineares, p. 1)

Um exemplo bem comum de fila a fila do supermercado, onde o primeiro a chegar o primeiro a ir embora.
As filas tem duas operaes bsicas:

Enqueue: inserir um elemento no final da fila.

10 Dequeue: remover um elemento do comeo da fila. (WIKIVERSITY, estrutura de dados intermedirio/filas)

3.1.3 FILO Acrnimo de First In Last Out, mais conhecido por LIFO (Last In First Out). So estruturas de dados do tipo pilha, que tanto a retirada quanto a insero de dados feita pela mesma extremidade.
Pilha: lista linear onde todas as inseres, remoes e acessos so realizados em um nico extremo. Listas com esta caracterstica so tambm denominados listas LIFO (Last-In / First-Out, ou em portugus: ltimo que entra / primeiro que sai). (FURGERI, listas lineares, p. 1)

Um exemplo simples de pilha quando empilhamos livros e depois queremos retirar algum deles, primeiro teremos que retirar os livros que foram adicionados por ltimo (que esto em cima) para depois retirar o que queremos.
Uma pilha geralmente suporta trs operaes bsicas:

TOP: acessa-se o elemento posicionado no topo da pilha;

PUSH: insere um novo elemento no topo da lista;

POP: remove o elemento do topo da lista. (WIKIVERSITY, estrutura de dados intermedirio/pilhas)

3.2 CONCEITOS DAS PROPRIEDADES ACID Definir conceitos de Atomicidade, Consistncia, Isolamento (ou integridade) e Durabilidade. 3.2.1 Atomicidade A denominao atomicidade se d porque o banco deve ser considerado como um tomo, indivisvel, pois a transao deve ser realizada por

11

inteiro ou no poder ser efetuada. Resumindo, todas as operaes devem ser feitas ou nenhuma pode ser feita. 3.2.2 Consistncia Nada mais que manter intactas as regras de negcio. As regras de negcio definem o modo como os dados sero tratados. Um exemplo disso seria a transao de uma conta bancria. Nas regras de negcio foi especificado que o cliente poderia retirar a quantia de dinheiro que quisesse, contanto que seu saldo no ficasse negativo. O cliente possui cinquenta reais de saldo e quer retirar sessenta, para a consistncia ser mantida, est transao no pode se confirmar. 3.2.3 Integridade Para a transao ser ntegra, duas ou mais transaes devem seguir, de maneira isolada, e as regras de negcio devem ser cumpridas independentemente de existirem mais transaes simultneas. Vou usar como exemplo o cadastro de clientes de uma videolocadora. Na regra de negcio foi determinado que cada cliente poderia cadastrar at dois dependentes e que cada dependente deve obrigatoriamente estar vinculado a algum cliente. Logo, se um cliente for deletado do banco de dados seus dependentes tero que ser tambm, pois se os dependentes permanecerem no banco de dados a integridade estar comprometida e afetar as outras transaes. 3.2.4 Durabilidade Os dados tm que estar disponveis e acessveis at um novo valor ser gravado. Ele no pode se perder por qualquer outra circunstncia como, por exemplo, o passar dos anos.

3.3 USANDO

BANCO

DE

DADOS

RELACIONAL

COM

PROGRAMAO

ORIENTADA A OBJETOS Baseia-se basicamente em transformar o banco de dados relacional

12

em banco de dados objeto-relacional utilizando alguma ferramenta para ORM. Resumindo: fazendo o famoso mapeamento de objetos para o modelo relacional. A POO um paradigma que abstrai modelos de objetos baseados no mundo real, no que realmente acontece, que qualquer pessoa poderia descrever, desde uma criana at um doutor. O modelo relacional j parte do princpio matemtico, ambos os modelos de eficcia comprovada. Os meios mais utilizados da juno dos dois modelos so a experimentao, atravs de uma camada de persistncia ou uma ferramenta de mapeamento objeto relacional. (FONTE: Yahoo! respostas)

There are a variety of difficulties that arise when considering how to match an object system to a relational database. These difficulties are referred to as the object-relational impedance mismatch.

An alternative to implementing ORM is use of the native procedural languages provided with every major database on the market. These can be called from the client using SQL statements. (WIKIPDIA, object-relational mapping)

Porm alguns problemas podem surgir decorrentes das diferenas entre o modelo do banco de dados e a linguagem de programao utilizada. A programao estruturada voltada para execuo seguindo subrotinas ou funes, enquanto a orientada a objetos simula a vida real. praticamente como se a estruturada dissesse como fazer tal procedimento e a orientada a objetos disse o que fazer. 3.4 SIGNIFICADO DE ORM

Object-relational mapping (ORM , O/RM , and O/R mapping) in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. (WIKIPDIA, object-relational mapping)

uma tcnica que serve para converter os dados, diminuindo assim a incompatibilidade entre os tipos de sistemas da programao orientada a objetos. Consiste em criar um banco de dados virtual orientado a objetos, onde seu contedo

13

baseado nas tabelas do banco de dados relacional e pode ser usado pelas linguagens de programao. 3.5 APRESENTAO DA FERRAMENTA PARA FAZER ORM Efetuei uma pesquisa sobre ferramentas que pudessem fazer o mapeamento objeto-relacional e encontrei apenas duas que realmente tinham essa finalidade, a ferramenta Hibernate e a ferramenta Habanero. Optei pela ferramenta Hibernate.
O Hibernate um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas tambm disponvel em .Net como o nome NHibernate. Este framework facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicao, mediante o uso de arquivos (XML) ou anotaes Java (...).

Hibernate um software livre de cdigo aberto distribudo com a licena LGPL. (WIKIPDIA, Hibernate)

A ferramenta apresenta uma verso para plataformas Java e outra para .NET framework, ao contrrio da outra ferramenta que encontrei que era disponvel somente para .NET.
Sua principal caracterstica a transformao das classes em Java para tabelas de dados (e dos tipos de dados Java para os da SQL). O Hibernate gera as chamadas SQL e libera o desenvolvedor do trabalho manual da converso dos dados resultante, mantendo o programa portvel para quaisquer bancos de dados SQL, porm causando um pequeno aumento no tempo de execuo. (WIKIPDIA, Hibernate)

Viso geral:
Hoje, o Hibernate uma coleo de projetos relacionados permitindo aos desenvolvedores utilizar modelos estilo POJO de domnio em suas aplicaes de forma que se estendem muito alm do mapeamento objeto-relacional. (Hibernate - traduzido)

Agora citarei mais caractersticas.


Ele fornece dados de consulta e instalaes de recuperao que reduzem significativamente o tempo de desenvolvimento. Objetivo do Hibernate projeto aliviar o desenvolvedor de 95% dos dados comuns de persistncia tarefas relacionadas com a programao, eliminando a necessidade de processamento manual, dados artesanal usando SQL e JDBC. (...)

14 Hibernate fornece um amortecedor entre as duas representaes de dados e permite uma utilizao mais elegante da orientao a objetos no lado Java tudo ao mesmo tempo manter o esquema relacional normalizado e garantindo a integridade dos dados. (About Hibernate - traduzido)

A escolha da ferramenta deu-se pelo fato de no ser preciso ter uma vasta experincia com SQL para poder utiliz-lo, pois conta com um Guia de Introduo1 de fcil entendimento e mais documentos2 (guia do desenvolvedor, manual de referncia, entre outros) para auxiliar o usurio. Alm disso, possui mais aspectos considerados positivos, que podem ser visualizados acessando a seo Why Hibernate?3. 3.6 DEFINIO E REPRESENTAO DE HERANA E POLIMORFISMO Esses dois conceitos usados em programao (herana e

polimorfismo) tm alguma semelhana, mas o que os difere a forma como os "filhos" (as classes que herdaram os mtodos ou propriedades) lidam com esses dados. 3.6.1 Herana Quando uma classe executa as mesmas funes de outra criada anteriormente ou tem as mesmas propriedades, para evitar redundncia, utilizamos a herana. Por exemplo: tanto o vendedor quanto o cliente so pessoas, ambos possuem nome, CPF, endereo, telefone(...), porm o vendedor possui nmero de registro e o cliente possui nmero de cadastro. Representao de herana feita na ferramenta astah

1 2

Disponvel em: <http://docs.jboss.org/hibernate/orm/4.1/quickstart/en-US/>. Disponvel em: <http://www.hibernate.org/docs>. 3 Link: <http://www.hibernate.org/about/why-hibernate>.

15

3.6.2 Polimorfismo quando a classe tem maneiras diferentes de executar a mesma ao. Usarei o exemplo que encontrei junto da citao.
O polimorfismo, na POO, a habilidade que os objetos, distintos, mas relacionados, possuem, de receber um estimulo (um mtodo, ou comando) e agir (responder) de maneira diferente a esse estmulo. (...) Esse mtodo pode ser implementado de formas diferentes para subclasses herdadas (...) Dessa forma ao invocar o mtodo (...) a partir do objeto correspondente (...) o programa dever ser capaz de decidir qual o mtodo adequado ser executado. (Sobre o Polimorfismo)

Representao de polimorfismo

A classe Mamiferos possui um mtodo chamado comunicar. Existem trs classes que herdaram esse mtodo, mas elas tm maneiras diferentes de

16

execut-lo. A classe Humanos recebe a ordem +comunicar() e executa na forma de fala, a classe Caes recebe a ordem +comunicar() e executa na forma de latido e a classe Gatos recebe a ordem +comunicar() e executa na forma de miado, porm o programador que deve deixar isso predefinido para o programa apenas escolher a forma que melhor se adapta no momento.

17

4 CONCLUSO Aps muita pesquisa consegui concluir meus objetivos e percebi que s vezes o desconhecimento de um conceito ou uma definio pode fazer o trabalho de uma equipe inteira ser dobrado ou perdido. Coisas que podemos achar que no vai fazer falta ou talvez consideramos sem importncia podem fazer toda a diferena por que so nos pequenos detalhes que o sucesso alcanado.

18

REFERNCIAS NISHIMURA, Roberto Yukio. Banco de dados II. So Paulo: Pearson Prentice Hall, 2009. TANAKA, Simone Sawasaki. Anlise de Sistemas II. So Paulo: Pearson Prentice Hall, 2009. SILVA, Flvio de Almeida e. Desenvolvimento Orientado a Objetos I. So Paulo: Pearson Prentice Hall, 2009. DELIBERADOR, Paulo de Tarso. Algoritmos e Estruturas de Dados. So Paulo: Pearson Prentice Hall, 2009. WIKIPDIA. Mapeamento Objeto Relacional. Disponvel em portugus: <http://pt.wikipedia.org/wiki/Mapeamento_objeto-relacional>. Disponvel em ingls: <http://en.wikipedia.org/wiki/Object-relational_mapping>. Acessados em: 05/05/2012. Sobre o polimorfismo. Disponvel em: <http://gilmarborba.com.br/?p=367>. Acessado em: 06/05/2012. YAHOO! Respostas. Disponvel em: <http://br.answers.yahoo.com/question/index? qid=20120418155340AAiVZPJ>. Acessado em: 07/05/2012. SONG, Siang Wun. Listas lineares. Disponvel em: <http://www.ime.usp.br/~song/mac5710/slides/02linear.pdf>. Acessado em: 08/05/2012. WIKIPDIA. Alocao de memria. Disponvel em: <http://pt.wikipedia.org/wiki/Aloca%C3%A7%C3%A3o>. Acessado em: 09/05/2012. FURGERI, Srgio. Listas Lineares. Disponvel em: <http://www.sergio.pro.br/trabalhos/13_listas_lineares_em_estrutura_de_dados.pdf>. Acessado em: 09/05/2012. CELES, W.; RANGEL, J. L.. Listas encadeadas. Disponvel em: <http://www.ic.unicamp.br/~ra069320/PED/MC102/1s2008/Apostilas/Cap10.pdf>. Acessado em: 09/05/2012. WIKIPDIA. Hibernate. Disponvel em: <http://pt.wikipedia.org/wiki/Hibernate>. Acessado em: 10/05/2012. Hibernate. Disponvel em: <http://www.hibernate.org/>. Acessado em: 10/05/2012.

19

About Hibernate. Disponvel em: <http://www.hibernate.org/about.html >. Acessado em: 10/05/2012. WIKIVERSITY. Estrutura de dados intermedirio/Pilhas. Disponvel em: <http://pt.wikiversity.org/wiki/Estruturas_de_Dados_Intermedi%C3%A1rio/Pilhas>. Acessado em: 11/05/2012. WIKIVERSITY. Estrutura de dados intermedirio/Filas. Disponvel em: <http://pt.wikiversity.org/wiki/Estruturas_de_Dados_Intermedi%C3%A1rio/Filas>. Acessado em: 11/05/2012.

S-ar putea să vă placă și