Você está na página 1de 16

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS

ALBERTO CASIANO DE OLIVEIRA

PRODUO TEXTUAL INTERDISCIPLINAR INDIVIDUAL 3 SEMESTRE

GURUPI 2012

ALBERTO CASSIANO DE OLIVEIRA

PRODUO TEXTUAL INTERDISCIPLINAR INDIVIDUAL 3 SEMESTRE:

Trabalho apresentado s disciplinas do 3 Semestre do Curso de Anlise e Desenvolvimento de Sistemas da Universidade Norte do Paran - UNOPAR PROF.: POLYANNA P.GOMES FABRIS PROF: ROBERTO Y. NISHIMURA PROF: MRCIO ROBERTO CHIAVELI PROF: MERRIS MOZER

GURUPI 2012

SUMRIO
1 Introduo....................................................................................................04 2 Objetos.........................................................................................................04 3 Desenvolvimento..........................................................................................05 3.1 Operaes bsicas (Incluso, Excluso e Pesquisa)...................................06 3.2 Conceitos de alocaes simplesmente encadeados....................................07 3.3 Representao grfica de uma lista Simplesmente Encadeada................07 3.4 Conceitos de Alocao Duplamente Encadeada..........................................08 3.5 Representao grfica de uma lista Duplamente Encadeada.....................08 . 4 Conceitos das Propriedades ACID..............................................................09 4.1 Banco de dados relacional coma a programao Orientada a Objetos......10 4.2 O que significa ORM.....................................................................................11 4.3 Ferramenta para fazer rodar ORM...............................................................12 4.4 As vantagens do Diagrama de Atividades....................................................13 4.5 Ponto de Merge e Deciso............................................................................13 4.6 Bifurcao e Unio........................................................................................14 5 Concluso......................................................................................................15 6 Referncias....................................................................................................15

1 INTRODUO
O contedo que ser apresentado nas prximas pginas faz referencia a tcnicas de anlise de sistemas empregadas na resoluo de uma atividade interdisciplinar de graduao de curso. Alocaes simplesmente e duplamente encadeadas, Banco de dados e conceitos das propriedades ACID de uma transao, quando devemos usar Deciso, ponde de Merge, Concorrncia de Bifurcao e Unio. O mapeamento objeto relacional (ORM) com o intuito de identificar classes, atributos, e relacionamentos. Todos os conceitos que sero explanados aqui sero demonstrados de uma forma pratica e de fcil compreenso.

2 OBJETIVOS
Nesse semestre dada continuidade a alguns temas tratados no segundo semestre, alm de interagir anlise e programao de sistema de informao num paradigma recente: a orientao a objeto; so apresentados modelos de programao de computadores e tcnicas de denifio e consulta de banco de dados utilizando softwares especficos.

3 DESENVOLVIMENTO
Sobre listas lineares defina os conceitos de FIFO, FILO, seus apontadores, suas ordens para incluso, excluso e pesquisa, inserindo exemplos do cotidiano e da informtica sobre listas lineares. Defina tambm, os conceitos de alocao simplesmente encadeada, alocao duplamente encadeada, represente graficamente as duas alocaes de encadeamento e responda qual delas tem maiores vantagens e o motivo. Em Cincia da Computao, FIFO (acrnimo para First In, First Out, que em portugus significa primeiro a entrar, primeiro a sair) refere-se a estruturas de dados do tipo fila. Tem uma estrutura diferente da estrutura de uma LIFO (que significa Last In, First Out, as pilhas). 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 idia 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 [pic]a [pic], este posto na fila e o processo seguinte executado. Se o processo seguinte no terminar de ser executado no tempo [pic], ele posto na fila e o processo subsequente executado, e assim por diante at todos os processo serem executados. Em termos de controle de estoque, refere-se a um mtodo de armazenamento onde os itens so consumidos por ordem de chegada. 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. O conceito de pilha amplamente utilizado na informtica, como, por exemplo, durante a execuo de um programa, para o armazenamento de valores de varivel local a um bloco e tambm para conter o endereo de retorno do trecho de programa que chamou a funo ou procedimento atualmente em execuo. Usam-se os termos push e pop para denominar a insero e remoo de elementos da pilha, respectivamente. Usa-se o termo top para consultar o elemento do topo da pilha, sem o remover. Uma pilha uma lista linear na qual o primeiro elemento a entrar o ltimo elemento a sair. Ela possui apenas uma entrada, chamada de topo, a partir da qual os dados entram e saem dela. Depende do tamanho e do volume de inseres e excluses de sua lista. Numa lista duplamente encadeada, por possuir ponteiros para o n anterior e para o n posterior, estas operaes so menos dispendiosas, pois no h necessidade de se percorrer novamente a lista a partir do incio como o caso das listas simplesmente encadeadas. Na poca em que a memria disponvel, RAM ou HD, era cara e limitada fazia mais sentido economizar o espao de alocao de um ponteiro, atualmente normalmente se opta por aperfeioar as operaes e no pela economia de memria ( bvio que existem excees).

3.1 Operaes Bsicas (Incluso, Pesquisa, Alterao)


Como toda estrutura de armazenamento de dados, as listas simplesmente encadeadas devem suportar as operaes de cadastro das informaes. Uma particularidade das listas o fato de apresentarem uma pequena variao no cdigo de incluso e excluso, de acordo com o local onde o novo elemento dever ser inserido (no incio, no meio ou no fim), e ainda assim, est variao pode ocorrer de acordo com os mecanismos de controle utilizados na gerncia da lista, tais como, utilizao de um nico ponteiro apontando para o inicio da lista, ou dois ponteiros, um para o incio e outro para o final. As operaes de cadastro sobre listas devem tomar o cuidado especial de analisar se o valor do ponteiro para o incio diferente de NIL, pois, se for igual a lista est vazia e certamente as rotinas devero efetuar procedimentos especiais. INCLUSO - Levando em considerao o uso de um nico ponteiro para o incio procedure InsereLista (var inicio : ponteiro ; info : InfoType); No incio No fim No meio INCLUSO - Levando em considerao o uso de dois ponteiros (incio e fim). procedure InsereLista (var inicio, fim : ponteiro; info : InfoType); No incio No fim No meio (ordenada) PESQUISA: normalmente, usa-se uma funo que, se encontrar, retornar o endereo do n, caso contrrio, retornar o valor NIL. function PesquisaLista (inicio : ponteiro ; info : InfoType) : ponteiro; EXCLUSO: usa-se um procedimento recebendo o incio da lista e os dados do n ser excludo, ento, atravs do campo identificado (chave) efetua-se uma pesquisa e localiza-se o n anterior ao n a ser excludo, e ento devemos liberar o espao alocado para o n excludo e fazer o seu anterior apontar para o posterior. procedure ExcluiLista (inicio : ponteiro ; info : InfoType); No incio

No meio No fim 3.2 Conceitos de Alocao Simplesmente Encadeada Uma lista simplesmente encadeada uma sucesso de ns onde cada n aponta para o prximo n da lista. O n que possuir o valor null no ponteiro para prximo o ltimo n da lista. de extrema importncia que seja mantida uma referncia para o primeiro n da lista, caso esta referncia for null, significa que a lista esta vazia. Em certas situaes tambm til possuir uma referncia ao ltimo n.

Numa lista cada elemento, ou n, composto normalmente por uma varivel que guarda a informao e ponteiros (referncias a endereos de memria) que permitem a ligao entre os vrios ns desta lista. Esses ponteiros em uma lista simplesmente encadeada apontam para o prximo n da lista, at que o ltimo aponte para uma regio de memria nula. Assim, possvel saber onde a lista termina.

3.3 Representao grfica de uma Lista simplesmente encadeada

3.4 Conceitos de Alocao Duplamente Encadeada

Uma lista duplamente encadeada uma sucesso de ns onde cada n aponta para o prximo n da lista e para seu predecessor. Assim, alm do campo relativo ao dado, cada n possui dois ponteiros, que chamaremos de prox e ant. O objetivo do duplo encadeamento tornar mais simples e mais eficiente execuo dos algoritmos.

Na lista duplamente ligada alm de saber o prximo n, cada elemento tambm conhece o n anterior a ele na lista. Isso facilita e melhora o desempenho de algumas operaes executadas sobre a lista como, por exemplo, remover um elemento, mostrar os elementos na ordem inversa (do ltimo para o primeiro elemento).

3.5 Representao grfica de uma lista duplamente encadeada

CONCEITOS DAS PROPRIEDADES ACID

Atomicidade; um tudo ou nada: se houver alguma falha durante a execuo, a transao desfeita. Ou, nas palavras dos autores, uma transao uma unidade atmica de processamento; ou ela ser executada em sua totalidade ou no ser de modo algum. O subsistema de restaurao de transaes do SGBD o responsvel pela atomicidade. Consistncia; imagine que seja tirada uma fotografia dos dados de um banco de dados. Este o estado do BD. Aps a fotografia, feita uma transao neste BD e retira-se uma nova foto. Se na primeira o BD estava consistente, ento na segunda ele tem que estar tambm. Citando a bibliografia, uma transao ser preservadora de consistncia se a sua execuo completa fizer o banco de dados passarem de um estado consistente para outro. () Um estado do banco de dados a coleo de todos os itens de dados armazenados no banco de dados em determinado momento. A responsabilidade aqui dupla, sendo tanto do programador quanto do mdulo do SGBD que garante as restries de integridade. Isolamento; o cada um por si: uma transao deve ser executada como se estivesse isolada das demais. Isto , a execuo de uma transao no deve sofrer interferncia de quaisquer outras transaes concorrentes. () imposto pelo subsistema de controle de concorrncia do SGBD. O chamado nvel de isolamento verdadeiro (nvel 3) no permite atualizaes perdidas, leitura de sujeira nem leituras repetveis. Durabilidade ou permanncia; fez, est feito as mudanas aplicadas ao banco de dados por uma transao efetivada devem persistir no banco de dados. Essas mudanas no devem ser perdidas em razo de uma falha. Responsabilidade: subsistema de restaurao do SGBD.

10

4.1 Banco de dados relacional com a programao Orientada a Objetos Um modelo "OO" construdo com objetos, classes e relacionamentos entre eles, um banco de dados em que cada informao armazenada na forma de objetos. O gerenciador do banco de dados para um orientado a objeto referenciado por vrios como ODBMS ou OODBMS As vantagens so muitas dentre elas: As abstraes podem corresponder s coisas do domnio do problema, O nvel mais natural; mais fcil comunicar-se com o usurio ou domain expert na linguagem dele; Os mesmos objetos existem em todas as fases e uma notao nica (objetos) facilita, portanto a integrao entre fases de desenvolvimento (passar de uma fase para a outra); Fases posteriores adicionam novos objetos, mas os objetos do domnio do problema permanecem: so estveis; mais fcil entender o domnio do problema quando esta quebrada em pedaos: gerenciamento da complexidade atravs da modularizao; O mesmo pode ser dito no domnio do computador (projetando e programando com objetos); A abstrao controla a complexidade (escondendo algo atravs da separao da interface e da implementao); A encapsulao facilita as mudanas (atravs do isolamento); A hierarquia (grafo de herana) permite uma melhor reutilizao; Hierarquia promove a flexibilidade de fazer mudanas de forma localizada; Exemplo: novos trechos de programas podem usar uma subclasse nova e cdigo antigo continua usando a superclasse e no toma conhecimento das mudanas; Porm, h problemas de acoplamento com herana que veremos em outro captulo; A reutilizao de pedaos mais difcil usando paradigmas anteriores (modularizao via funes) porque no posso usar coisas pr-existentes to facilmente;

11

Com objetos, posso dizer: "me d dois daqueles" porque objetos tm estado; No posso fazer isso com funes porque elas no encapsulam estado. 4.2 O que significa ORM ORM (Object Relational Mapper) A traduo em portugus significa Mapeamento objeto-relacional uma tcnica de mapeamento de objeto relacional que permite fazer uma relao dos objetos com os dados que os mesmos representam. Ultimamente tem sido muito utilizada e vem crescendo bastante nos ttimos anos. Este crescimento, tem se dado principalmente pelo fato de muitos desenvolvedores no se sentirem a vontade de escrever cdigo SQL e pela produtividade que esta tcnica nos proporciona. Existem timos ORMs como Hibernate, NHibernate, Entity Framework e etc.

Tudo comea como mostrado na figura acima, existem 2 mundos: o relacional e o orinetado a objetos, no mundo relacional prevalecem princpios matemticos com a finalidade de armazenar e gerenciar corretamente os dados, de forma segura e se trabalha com a linguagem SQL que utilizada para dizer o banco de dados O QUE? fazer e no como fazer. J no mundo orientado a objetos, trabalhamos com classes, mtodos ou seja, trabalhamos fundamentados na engenharia de software e seus princpios que nos dizem COMO fazer. O ORM justamente, a ponte entre estes dois mundos, ou seja, ele quem vai permitir que voc armazene os seus objetos no banco de dados, para isto fazendo um mapeamento dos seus objetos para as tabelas do banco de dados.

12

A figura acima, nos faz ter uma ideia de como o ORM trabalha. Ele faz o mapeamento da sua classe para o anco de dados e cada ORM tem suas particularidades, para gerar o SQL referente a insero do objeto que corresponde a uma tabela no banco de dados e realizar a operao. Utilizando um ORM, tambm se ganha produtividade, pois deixa-se de escrever os comando SQL para deixar que o prprio ORM, faa isto por voc

4.3 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. JPA e Hibernate Aps o sucesso do Hibernate, a especicao JPA (Java Persistence API) foi criada como objetivo de padronizar as ferramentas ORM para aplicaes Java e consequentemente diminuir a complexidade do desenvolvimento. Atualmente, essa especicao est na sua segunda verso. Ela especica um conjunto de classes e mtodos que as ferramentas de ORM devem implementar. Veja que a JPA apenas uma especicao, ela no implementa nenhum cdigo. Para isso, utilizamos alguma das diversas implementaes da JPA como, por exemplo, o Hibernate. Outras implementaes de JPA mais conhecidas so: TopLink, EclipseLink e OpenJPA. O Hibernate o mais antigo e mais utilizado atualmente.

13

4.4 As vantagens do diagrama de Atividades A maior vantagem do diagrama de atividades est no fato de que eles suportam e encorajam o comportamento paralelo. O diagrama utilizado em situaes como: Analisando um caso de uso. Compreendendo workflow. Descrevendo um algoritmo sequencial complicado. Lidando com aplicaes de processamento paralelo. O diagrama descreve o que ocorre nos objetos participantes, em termos de ativaes, e como os objetos se comunicam enviando mensagens uns aos outros. possvel fazer um diagrama de sequencia para cada variante do fluxo de eventos de um caso de uso. A principal vantagem desse mtodo que cada objeto no precisa controlar a contagem do objeto seguinte. Para mudar a ordem das fases de subeventos, basta fazer a mudana no objeto de controle.

4.5 Ponto de Merge e Deciso O ponto de merge representado por um losango (tambm utilizado para indicar uma deciso), e indica que mais de uma transio de atividades direcionada para ele, e a partir dele, somente um caminho seguido. Isso quer dizer que, posso ter vrias atividades que sero executadas e aps sua execuo todas possuiro o mesmo destino (gerar um log, por exemplo), e para isso utilizamos o merge. No diagrama de atividades, o cone para representao da estrutura de deciso o losango, assim como nos fluxogramas. Podem ser avaliados quaisquer tipos de deciso, desde os mais simples como testes lgicos de verdadeiro/falso. Quando uma deciso dessas colocada no diagrama de atividades, duas sadas so necessrias para representao: Uma indica a ao que ser tomada caso a condio verdadeira seja satisfeita e a outra indica atividade que ser realizada se a condio falsa for satisfeita. Uma observao importante que quando temos uma estrutura de deciso, no diagrama de atividades, as suas sadas (condio verdadeira ou falsa) podem, por meio de uma transio, apontar para outra estrutura de deciso, at que uma atividade seja realizada, ou seja, apresentado o fim do workflow.

14

4.6 Bifurcao e Unio Transies sequenciais com ramificaes e simples so os caminhos mais comuns a serem encontrados em diagramas de atividades. Entretanto principalmente quando estiver fazendo a modelagem de fluxos de trabalho de processos de negcios voc encontrar fluxos concorrentes. Na UML, a barra de sincronizao empregada para especificar a bifurcao e a unio desses fluxos paralelos de controle. A barra de sincronizao representada como uma linha fina, horizontal ou vertical.

15

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

6 REFERNCIAS
HONDA. Willian Yukio & PARABONI Ivandr Apostila Algoritmos e Estruturas de Dados I - Escola de Artes, Cincias e Humanidades Sistemas de Informao. So Paulo, 2007. PRESSMAN, R. Engenharia de Software. McGraw-Hill, 2001. REFERNCIAS SILVA, Flvio de Almeida e. Desenvolvimento orientado a objetos I. So Paulo. Editora Pearson, 2009. TANAKA, Simone Sawasaki. Anlise de sistemas II. So Paulo. Editora Pearson, 2009. http://pt.wikipedia.org/wiki/FIFO Acessado em: 15/04/2012 http://pt.wikipedia.org/wiki/LIFO Acessado em: 15/04/2012 http://www.icmc.usp.br/~sce182/ldupenc.html Acessado em: 18/04/2012 http://www.google.com.br/url?sa=t&rct=j&q=listas %20lineares&source=web&cd=5&ved=0CEoQFjAE&url=http%3A%2F %2Fwww.cultura.ufpa.br%2Fferreira%2FDisciplinas %2FEstDados1%2FListasLineares.pdf&ei=NRWQT9_LCqLL0QG31v2QBQ&usg=AF QjCNHl5LHbrwgpAlBFepNIgnVvOze8dA Acessado em: 18/04/2012 http://pt.wikipedia.org/wiki/Banco_de_dados

16

Acessado em: 03/05/2012

Você também pode gostar