Sunteți pe pagina 1din 18

Um estudo de caso para anlise comparativa entre programao Estruturada e Orientada a Objetos

Fernando W. Simor, Carina F. Dorneles Cincia da Computao, Instituto de Cincias Exatas e Geocincias Universidade de Passo Fundo (UPF)
simor@simor.com.br, dorneles@upf.br

Resumo. Este artigo tem como objetivo apresentar uma anlise comparativa, de dois tipos de programao: a Programao Estruturada e a Programao Orientada a Objetos. So apresentados os principais conceitos dos dois tipos, e a aplicao deles em um estudo de caso para a internet a fim de possibilitar a comparao entre eles. Os resultados da comparao so apresentados atravs da apresentao de trechos de cdigos da programao estruturada e trechos de cdigo da programao Orientada a Objetos, e uma tabela comparativa que apresenta tpicos importantes quando se consideram as duas formas de programao. Por fim, so apresentadas as consideraes sobre o uso dos dois tipos de programao e porque a programao Orientada a Objetos possui maior poder de expresso em relao programao Estruturada.

1. Introduo
A adoo de um mtodo de programao no processo de desenvolvimento de sistemas permite ao programador a escolha de tecnologias adequadas para organizao de ideias e controle das funcionalidades que o sistema poder contemplar. Para a escolha do mtodo de programao mais adequado, necessria uma anlise das caractersticas entre alguns tipos de programao. Dois tipos de programao podem ser descritos: (i) estruturado, enfatizado nos procedimentos, implementados em blocos estruturados, com comunicao entre procedimentos por passagem de dados; e (ii) orientado a objetos, baseado em dados e procedimentos que constituem objetos, que comunicam-se entre si, caracterizando a execuo do programa, sendo que os dados e procedimentos so encapsulados em um s elemento. Entender completamente a aplicao destes no processo de desenvolvimento de sistemas imprescindvel na utilizao efetiva e eficiente de recursos tecnolgicos. O grande problema de escolher um mtodo de desenvolvimento de sistemas identificar qual o melhor tipo de programao, quais so as vantagens e desvantagens da utilizao de cada uma das formas. Em sistemas estruturados, possvel definir o produto final como um conjunto de requisitos funcionais, que descrevem em termos precisos, as entradas a serem fornecidas pelo usurio, e os algoritmos envolvidos em quaisquer clculos desejados pelo usurio (YORDON & CONSTANTINE, 1992). J em sistemas OO (Orientado a Objetos), o produto final mais flexvel, permite manuteno mais fcil e melhor administrao do domnio do problema. Tendo o objeto como ponto central da anlise e desenvolvimento, possvel tratar funes e dados em

uma mesma unidade. Para isso, necessrio pensar orientado a objetos, o que para muitos desenvolvedores, isso no fcil (LIMA, 2005). O presente trabalho tem por objetivo descrever algumas caractersticas do processo de programao estruturada e de orientada a objetos, com o objetivo de possibilitar a comparao entre os dois. Para tal, ser utilizado um Estudo de Caso real, com seu desenvolvimento na plataforma web na forma de dois sistemas: no primeiro, utilizada a linguagem PHP (Hypertext Preprocessor), para representar o Paradigma Estruturado. No segundo, utilizada a linguagem Java, para representar o Paradigma Orientado a Objetos. Por fim, apresentado um comparativo entre as duas formas de programao, mostrando o poder de expresso, a programao, a organizao e o reuso de cdigo e o gap semntico de cada uma das formas. Este artigo est organizado como segue. Na Seo 2 so apresentados os Tipos de programao. Na Seo 3 apresentado o Estudo de Caso, com a Programao Estruturada e a Programao Orientada a Objetos. Na Seo 4 apresentada a Anlise Comparativa. Na Seo 5 so apresentadas as Consideraes Finais.

2. Tipos de programao
Programao o processo de codificar, testar e de manter um sistema de computador (PRESSMAN, 1995). Logo, programao nada mais do que seguir determinadas regras que devem ser executadas na estruturao e desenvolvimento de um sistema, seguindo assim, um mesmo padro de ideias. Existem diversas formas de programao de sistemas, no entanto diferenciar mtodos de programao falar em tcnicas diferenciadas. Nesta seo, sero abordados dois tipos de programao utilizados no processo de desenvolvimento de sistemas do mercado atual, procurando mostrar as suas principais caractersticas: Programao Estruturada (YORDON & CONSTANTINE, 1992) e Programao Orientada a Objetos (COAD & YOURDON, 1996). 2.1. Programao Estruturada O princpio bsico de programao estruturada um conjunto de construes lgicas simples a partir das quais qualquer programa poderia ser formado, sendo que estas construes enfatizam a manuteno do domnio funcional. Estas construes so: seqncia, condio e repetio (PRESSMAN, 1995): (i) Sequncia: deve ser seguido um caminho rigoroso e metdico para solucionar um problema, organizados de forma hierrquica. Implementa os passos de processamento necessrios para descrever qualquer programa; (ii) Condio: mais do que a simples escolha entre alternativas, esta determina qual ao deve ser realizada entre tantas outras. Dessa forma, imprescindvel dividir o problema em partes menores, independentes e com possibilidade de serem mais simples de entender e solucionar; (iii) Repetio: permite a execuo repetitiva de segmentos do programa. Uma nova revoluo veio a ocorrer na dcada de 1990, onde os preos dos computadores voltaram a cair. Isto possibilitou que alm das empresas, as residncias tambm recebessem estes equipamentos, logo, os computadores tornaram-se pessoais. Nesse contexto, houve a necessidade de aplicaes mais atraentes, dinmicas e robustas. Surgiu assim uma nova metodologia, a qual foi adotada por grande parte dos profissionais da rea de desenvolvimento de sistemas: a metodologia orientada a objetos.

2.2. Programao Orientada a Objetos No final da dcada de 1980, comeava a amadurecer o paradigma orientado a objeto, sendo uma abordagem prtica para o desenvolvimento de software. Essa abordagem cria uma nova forma de analisar, projetar e desenvolver sistema, de forma mais abstrata e genrica, a qual permite um maior reaproveitamento de cdigos e tambm facilidade de manuteno. Contudo, a programao orientada a objeto no somente uma nova forma de programar, mas uma nova forma de pensar em um problema de forma abstrata, utilizando conceitos do mundo real e no conceitos computacionais. Na programao orientada a objeto o conceito de objeto deve acompanhar todo o ciclo de desenvolvimento do software. (PRESSMAN, 1995) Dentre as principais caractersticas, pode-se destacar a abstrao de dados, facilidade para manter e aprimorar novos programas e herana. Nesse sentido, o princpio bsico da programao orientada a objetos deve essencialmente seguir alguns conceitos (LIMA, 2005): (i) Encapsulamento: o mecanismo pelo qual podemos ocultar detalhes de uma estrutura complexa, que poderiam interferir durante o processo de anlise; (ii) Classificao: associao de um objeto analisado a uma determinada categoria. Ao classificarmos um objeto, estamos afirmando que este pertence a uma determinada classe. Esta associao feita comparando as caractersticas e funes do objeto em questo com as caractersticas e funes dos objetos que pertencem quela categoria; (iii) Modularizao: em um sistema previamente dividido, podemos juntar partes com algumas semelhanas. A ideia de modularizar auxilia na aplicao dos outros princpios; (iv) Relacionamento: para o funcionamento do todo, necessrio que as partes funcionem separadamente, mas em conjunto. Esta cooperao possvel porque as partes se relacionem entre si; (v) Paralelismo: mesmo em um sistema simples, pode haver diversas aes a serem executadas em tempos quase simultneos. necessrio um correto gerenciamento dos recursos computacionais para haver uma correta distribuio do tempo entre as tarefas a serem executadas; (vi) Persistncia: a habilidade de um objeto existir alm da execuo que o criou, ou seja, ser armazenado de alguma forma, ou seja, um objeto em um programa utiliza algum espao para armazenamento e manipulao e existe por um perodo de tempo em particular. Geralmente o tempo de vida de um objeto supera o tempo de vida de um sistema que o manipula. Este princpio prega que deve haver uma ateno especial nesta manipulao. Entre as ideias fundamentais para programao OO, incluem-se (DEITEL, 2003): (i) Herana: uma forma de reutilizao de software em que novas classes so criadas a partir das classes existentes, absorvendo seus atributos e comportamentos e adicionando novos recursos que as novas classes exigem; (ii) Mensagens: a forma como os objetos se comunicam; (iii) Polimorfismo: ocorre quando o mesmo mtodo responde de formas diferentes, atravs da passagem de um parmetro na chamada do mtodo. As caractersticas de Programao Orientada a Objetos descritas nesta seo sero demonstrados na forma de cdigo na Seo 4.1, comparando-se com a Programao Estruturada.

3. Estudo de Caso
O Estudo de Caso foi realizado no Projeto Monumentos (Sistema de Documentao do Patrimnio Arquitetnico da regio norte do Rio Grande do Sul), que um projeto criado pelo Ncleo de Arquitetura e Desenvolvimento Urbano Comunitrio (NADUC) da Universidade de Passo Fundo (UPF), sob coordenao da Professora Ana Paula Wickert, em convnio com Secretaria de Planejamento da Prefeitura Municipal de Passo Fundo SEPAN. O principal objetivo deste projeto prover suporte para a execuo da documentao do patrimnio arquitetnico da regio (WICKERT, 2004), que a principal ferramenta para sua preservao, estudo e divulgao. A documentao servir como um acervo documental uma vez que ser publicada na Web, permitindo o acesso desde qualquer lugar do mundo, incentivando a mais variada gama de anlises e pesquisas envolvendo o patrimnio construdo da regio norte do Rio Grande do Sul. O projeto visa o envolvimento direto dos acadmicos de arquitetura e urbanismo, criando um grande mutiro em favor da preservao do patrimnio histrico gacho. O processo de levantamento de informaes dos imveis foi feito por pesquisa de campo e em instituies, entidades, museus, os quais detenham informaes sobre estes. Para o armazenamento das informaes de um imvel, utilizado o Formulrio de Inventrio dos Bens Imveis com Valor Histrico, Arquitetnico e/ou Cultura de Passo Fundo, conforme Anexo 1, onde so preenchidas as informaes, caractersticas especficas deste. Aps isso, as informaes so transcritas para o formato eletrnico, em arquivos com formato DOC. As imagens e documentos so digitalizados e armazenados nos computadores do NADUC, juntamente com o formulrio.

3.1. Programao
Nesta seo, so descritos os processos de codificao do sistema utilizando Programao Estruturada (PHP) e Programao Orientada a Objetos (JSP) para o desenvolvimento do sistema. Os cdigos sero mostrados nas subsees 3.2.1 e 3.2.2, os quais sero utilizados para comparao dos paradigmas na Seo 4. 3.1.1. Programao PHP O PHP uma linguagem de programao que permite gerenciar contedos web de forma dinmica, com suporte a uma ampla variedade de banco de dados. Possibilita utilizar programao estruturada ou programao orientada a objeto, sendo possvel misturar as duas (PHP, 2009). Para este artigo, ser utilizada a linguagem de programao PHP da forma estruturada.

Fonte: Primria Figura 1 Exemplo de sequncia em programao estruturada

A Figura 1 apresenta um exemplo do conceito de sequncia na programao estruturada. Conforme o cdigo apresentado na figura, na linha 8, se um valor de cod setado, na linha 9 se o valor btnEnviar setado, feita conexo com o banco na linha 15 conforme instrues SQL (Structured Query Language) da linha 10, se no efetuar conexo com o banco de dados, mensagem de erro armazenada em msgAlert. Caso o valor btnEnviar no seja setado, os valores de nome da cidade e uf so carregados em variveis nas linhas 28 e 29 caso consiga efetuar conexo com o banco de dados atravs das instrues SQL da linha 23, caso contrrio, mensagem de erro armazenada em msgAlert.

Fonte: Primria

Figura 2 Exemplo de condio em programao estruturada

A Figura 2 apresenta um exemplo do conceito de condio em programao estruturada. Conforme Figura 2, a linha 6 identifica o valor setado em acao, compara este valor com os valores em cada case, caso o valor seja igual, executa o bloco de cdigo at o break de cada case, caso no encontre valor, executado o bloco existente em default.

Fonte: Primria Figura 3 Exemplo de repetio em programao estruturada

Finalmente, a Figura 3 descreve um exemplo do conceito de repetio em programao estruturada. A Figura 3 apresenta um trecho de cdigo onde na linha 163 contm a funo while responsvel por repetir determinado bloco de cdigo enquanto no satisfazer a condio existente entre parnteses, no caso, atribuir valores ao vetor dados de uma consulta ao banco de dados, enquanto houver informaes, estas sero impressas a partir da linha 165 at 171. 3.1.2. Programao Java e JSP O Java uma linguagem de programao totalmente Orientada a Objetos, baseada nas linguagens de programao C e C++ (DEITEL, 2002). Um programa em Java principalmente uma coleo de objetos falando com outros objetos por meio da invocao dos mtodos uns dos outros (SIERRA, 2006). O JSP baseado na linguagem de programao Java, orientada a objetos, uma especializao da plataforma J2EE (Java 2 Enterprise Edition). A plataforma J2EE possui muitas funcionalidades, permitindo separar a programao lgica da programao visual de um sistema web, facilitando seu desenvolvimento. Para estabelecer uma separao entre as camadas do sistema conforme responsabilidade (modelo, viso, controlador), foi utilizado o MVC (Model View Controller) na programao do sistema (DEITEL, 2003). Se uma alterao for necessria, modifica-se apenas a camada especfica. No sistema, o cdigo em Java foi utilizado para as camadas de controle e persistncia, e para a camada de viso, foi utilizado o cdigo em JSP. Para fazer mapeamentos Objeto-Relacional do banco de dados, foi utilizado o Framework de Persistncia Hibernate, o qual possui sua prpria linguagem de SQL chamada HQL (Hibernate Query Language) que convertida para instrues SQL especficas de cada banco de dados.

Fonte: Primria Figura 4 Trecho de cdigo em Java da camada modelo

A Figura 4 apresenta um trecho de cdigo da camada modelo, o qual representa o objeto na classe Cidade. So apresentados, nas linhas 5, 6 e 7, os atributos desta classe, e nas linhas 9, 12 e 16 os mtodos (pblicos) que do acesso aos atributos (privados) da classe. A camada modelo acessada pelas camadas de persistncia, controle e viso, ou seja, fica visvel em toda a aplicao.

Fonte: Primria Figura 5 Trecho de cdigo em Java da camada de persistncia

O trecho de cdigo da Figura 5 apresenta a classe CidadePer, com a manuteno de incluso de uma cidade. Por se tratar da camada de persistncia, esta responsvel pela persistncia do objeto, acessada somente atravs da camada de controle. Na linha 15 possvel visualizar no cdigo Java o mtodo incluir() receber o objeto a ser persistido. Nesta classe foi utilizado o Framework Hibernate da linha 16 a 28, o mesmo se encarrega de receber o objeto, efetuar a transao com o banco de dados e persisti-lo, retornando se foi possvel esta transao.

Fonte: Primria Figura 6 Trecho de cdigo em Java da camada de controle

A Figura 6 apresenta um trecho da classe CidadeCon, da camada de controle. O objeto fica na camada de controle, e quando algum valor for includo, a camada de controle cria o objeto vazio na linha 16, ento a camada de viso seta os atributos deste e executa o mtodo gravar que envia este objeto para a camada de persistncia.

Fonte: Primria Figura 7 Trecho de cdigo em JSP da camada de viso

A Figura 7 apresenta um trecho do cdigo da camada de viso, o qual mostrar como a listagem dos objetos do tipo Cidade. A camada de viso solicita camada de controle a lista de cidades atravs do mtodo getCidades(), esta por sua vez solicita a camada de controle que retorna uma lista contendo as cidades cadastradas no banco de dados. Na linha 28 da Figura 7, o cdigo JSP est enviando uma mensagem para o objeto de controle (cidadeCon), retornando as atributos do objeto em obj e imprimindo os mesmos nas linhas 30, 31, 33 e 36. A Figura 8 apresenta o Diagrama de Sequncia de incluso de cidade, o qual apresenta uma viso dinmica da sequncia de aes do ator com o sistema e o relacionamento das classes entre as camadas de viso (Pgina WEB), controle e persistncia.

Fonte: Primria Figura 8 Diagrama de Sequncia (incluso de cidade)

Como possvel visualizar na Figura 8, o ator Admin insere os dados no formulrio na Pgina Web, que se comunica com a camada de Controle, a qual cria o objeto, seta os atributos e envia para a camada de persistncia. A camada de persistncia persiste o objeto retorna um valor verdadeiro ou falso para a camada de controle, que por sua vez envia para a camada de viso (Pgina Web).

4. Anlise comparativa
Nesta seo, descrita a anlise comparativa do processo de desenvolvimento de sistemas utilizando a Programao Estruturada com a linguagem de programao PHP e a Programao Orientada a Objetos com a linguagem de programao Java. Tambm descrita a percepo sobre a utilizao das duas formas de programao. Para tal, ser dividida em duas subsees, sendo a primeira a Programao e a segunda uma tabela comparativa entre as duas formas. 4.1. Programao O cdigo OO possibilita estabelecer relacionamentos entre diversos componentes, realizando comunicao entre eles e facilitando a reutilizao de cdigo. Alm de poder herdar atributos e comportamentos de outros objetos, a programao OO possui maior facilidade aprimorar novos programas quando comparada a programao estruturada. Atravs de uma de suas caractersticas, a herana, o cdigo pode ser facilmente modificado.

Fonte: Primria Figura 9 Herana e Classificao

A Figura 9 apresenta trechos de cdigo na programao Orientada a Objetos (Figura 9(a)) e programao Estruturada (Figura 9(b)). Na Figura 9(a), na linha 27 o cdigo est invocando o mtodo getUsuarios() que retorna uma lista dos objetos do tipo Usuarios em obj, de forma transparente. Esta classe, atravs do conceito de herana, incorpora os atributos das tabelas Pessoa e Usuario e imprime os dados nas linhas 29, 30 e 31. Alm do conceito de herana, ainda pode receber o conceito de classificao, uma vez que as classes Pessoa e Usuario possuem caractersticas em comum. J na Figura 9(b), o conceito de herana e classificao se d na forma de consulta SQL para fazer a associao de usurio com o nome da pessoa, conforme pode ser visto na linha 154.

Fonte: Primria Figura 10 Persistncia

A Figura 10 apresenta trechos de cdigo na programao Orientada a Objetos (Figura 10(a)) e programao Estruturada (Figura 10(b)). Na Figura 10(a) possvel visualizar no cdigo Java o mtodo incluir() receber o objeto a ser persistido. Nesta aplicao foi utilizado o Framework Hibernate da linha 16 a 28, o mesmo se encarrega de receber o objeto, efetuar a transao com o banco de dados e persisti-lo, retornando se foi possvel esta transao. Na Figura 10(b), linha 41, o cdigo PHP recebe os atributos que devem ser persistidos, entretanto, para tal necessrio o uso de instrues SQL, efetuando conexo com o banco de dados, conforme linha 43. Os SGBDs (Sistema de Gerenciamento de Banco de Dados) OO oferecem estruturas de dados compatveis com uma ou mais linguagens de programao Orientadas a Objetos. A tecnologia conhecida como BDOR (Banco de Dados ObjetoRelacional) a combinao das caractersticas da OO e a recuperao otimizada de dados dos bancos de dados relacionais. O Framework Hibernate torna transparente esta comunicao (OO com o relacional do estruturado), o que no era possvel com programao estruturada.

Fonte: Primria Figura 11 Mensagens

A Figura 11(a), a qual representa a programao Orientada a Objetos, o cdigo JSP est enviando uma mensagem para o objeto de controle (cidadeCon), solicitando a lista de cidades na linha 28, retornando as atributos do objeto em obj e imprimindo os mesmos nas linhas 30 e 31, ou seja, h a troca de mensagem entre objetos. J na Figura 11(b), a qual representa a programao estruturada, o cdigo PHP troca mensagem atravs de instrues SQL da linha 146, direto com o banco de dados atravs conexo conforme linha 149. Com o MVC possvel separar os papis de programao e design, esta independncia possibilita que um projeto possa ser executado por pessoas ou grupos de pessoas especialistas em cada uma das reas. Em OO aps a definio dos objetos, com seus atributos e mtodos, basta apenas invocar os mtodos, facilitando a reutilizao, como possvel visualizar na Figura 12(a), o objeto criado na linha 28 e aps, na linha 30, o mtodo getDsCidade() invocado e exibir a descrio da cidade, demonstrando como limpo o cdigo OO em relao codificao estruturada. Na programao estruturada o cdigo fica misturado aos dados, incluindo interao com o banco de dados, sendo necessria a repetio de todos os trechos de cdigo a cada utilizao, como possvel visualizar na Figura 11(b).

Fonte: Primria Figura 12 Encapsulamento

A Figura 12(a) no Java, mostra que toda a complexidade est encapsulada dentro do mtodo localizarLogin(), internamente ele pode mudar, porm no ir

afetar outras partes do sistema. Com o encapsulamento possvel flexibilidade e fcil manuteno do cdigo OO (SIERRA, 2006). A grande diferena est que uma vez criadas as classes, necessrio somente chamar o mtodo para utilizar suas caractersticas, uma vez que na codificao estruturada necessrio reconstruir o mesmo cdigo a cada utilizao. O que se percebe a grande diferena na forma de programar e resolver o problema. Na Figura 12(b), possvel visualizar o cdigo em PHP responsvel por validar o usurio para acesso ao sistema, o qual utiliza instrues SQL na linha 9 e conexo na linha 16, entretanto ao se modificar uma destas instrues SQL, existe o risco de o cdigo parar de funcionar. Conforme Deitel (2002), os mdulos em Java so chamados de mtodos e classes. Os programas Java so escritos combinando-se novos mtodos e classes disponveis na biblioteca de classes Java e em outras bibliotecas de mtodos e classes.

Fonte: Primria Figura 13 Modularizao

A Figura 13(a), o cdigo Java apresenta a reutilizao de mdulos de bibliotecas de manipulao de datas, do prprio Java. Na linha 3, importada a biblioteca Calendar, e utilizada nas linhas 55 e 57. Na Figura 13(b), em cdigo PHP, a data formatada atravs da funo DATE_FORMAT do SQL com o banco de dados, conforme linha 85 e 86. Os sistemas desenvolvidos com a programao estruturada ainda so difceis de serem incrementados com novas funes e as alteraes em funes j existentes, muitas vezes, provocam srios problemas em outras partes do sistema. possvel reutilizar o cdigo, porm em muitos casos, o programador tende a utilizar o processo de copiar e colar trechos do cdigo e gerar cdigos onde o tratamento dos dados misturado com o comportamento do programa, por focar-se em como a tarefa deve ser feita e no em o que deve ser feito.

Fonte: Primria Figura 14 Relacionamento

A Figura 14(a) apresenta, em cdigo Java, a classe Imovel associada com a classe Cidade com o atributo cidade, ou seja, existe a associao entre as classes. Na Figura 14(b), a associao no cdigo PHP se d atravs de instrues SQL conforme linha 4 e conexo com o banco de dados na linha 9. A Figura 14(a) apresenta de forma clara a classe Imovel, pois se aproxima do problema do mundo real, o que possibilita diminuir o gap semntico existente entre o problema no mundo real e o modelo abstrato construdo, o que no possvel expressar na Figura 14(b). No estudo de caso realizado, no foi possvel demonstrar a utilizao de paralelismo, por se tratar de um formulrio de manuteno de informaes. Assim, no houve instrues que pudessem ser executadas em paralelo. Tambm no foi possvel demonstrar a utilizao do conceito de polimorfismo, pois nenhum tipo de objeto realiza aes diferentes ao receber uma mesma mensagem. A grande dificuldade para compreenso do paradigma OO est na diferena de abordagem do problema. Enquanto a programao estruturada tem como principal foco as aes (procedimentos e funes), a programao OO se preocupa com os objetos e seus relacionamentos. Alm do conceito de objeto, a programao OO tem conceitos de encapsulamento, classificao, modularizao, relacionamento, parelismo e persistncia. O uso de uma IDE (Integrated Development Environment) para programao OO pode auxiliar o aprendizado, pois possvel identificar estes conceitos com clareza. 4.2. Tabela Comparativa Esta seo apresenta um resumo da anlise feita na Seo 4.1 atravs de uma tabela comparativa. Esta tabela apresenta algumas caractersticas, tais como poder de expresso, codificao, organizao e reuso do cdigo e o GAP Semntico das duas formas de programao.
Caractersticas Poder de expresso Programao Estruturada No existe uma adequao entre funcionalidade e estrutura de Programao OO Mtodos de organizao que fazem parte do modo de pensar das

dados. Expressa apenas dados e fluxo de dados. Como apresentado na Figura 10(b).

pessoas, utilizando conceitos do mundo real. O comportamento e a estrutura de dados em um mesmo modelo. Apresentado na Figura 10(a). Relacionamento entre objetos. possvel utilizar MVC, separando em camadas conforme responsabilidade. Figura 8. Objetos e seus relacionamentos. Como apresentado na Figura 7. Alm do conceito de herana, o cdigo mais organizado e com mais recursos, uma vez testado um mtodo, este pode ser reutilizado. Como apresentado na Figura 9(a). Modela o problema do mundo real de forma abstrata, o que permite diminuir o gap semntico entre o problema no mundo real e o modelo abstrato construdo. Como apresentado na Figura 14(a).

Codificao

Dados misturados aos cdigos. Como descrito na Figura 14(b).

Organizao do cdigo

Hierarquia de procedimentos e funes. Como apresentado na Figura 1. Difcil reuso, pois o tratamento dos dados misturado com o comportamento do programa. Como apresentado na Figura 9(b). No possvel expressar. Como apresentado na Figura 14(b).

Reuso de cdigo

GAP Semntico

Fonte: Primria Tabela 1 Tabela comparativa

5. Consideraes Finais
Este artigo realizou uma anlise comparativa de algumas das caractersticas de dois tipos de programao utilizados no desenvolvimento de sistemas para a internet: Estruturado e Orientado a Objetos. Foi utilizada no primeiro sistema a linguagem de programao PHP e no segundo sistema, a linguagem de programao Java. Para construo do estudo de caso, foram analisados os arquivos da documentao existente do Projeto Monumentos, o que inclui o Formulrio de Inventariao de Imveis, conforme Anexo 1. Tambm foram feitas reunies com a equipe de pessoas do projeto, a qual permitiu identificar especificamente as necessidades do sistema para poder ser representadas. Em aplicaes que necessitam de poucos recursos, a utilizao da abordagem Estruturada mais indicada, porm em sistemas com maior complexidade e possveis adies de mdulos, a abordagem OO a mais indicada. Em programao OO, o uso de conceitos de herana, persistncia, mensagens, relacionamento e encapsulamento permitem o acesso aos dados de forma transparente, apenas invocando-se os mtodos, possibilitando a reutilizao efetiva de mdulos desenvolvidos no sistema. Em programao estruturada necessita-se recorrer a associao do cdigo com instrues SQL para poder aplicar alguns conceitos da programao OO. Conforme apontado pela anlise comparativa demonstrada na Tabela 1, percebe-se que ambos os tipos de programao possuem vantagens e desvantagens,

entretanto o cdigo OO possui maior poder de expresso em relao ao cdigo estruturado, utilizando conceitos do mundo real, o que possibilita diminuir o gap semntico entre o problema no mundo real e o modelo abstrato construdo. Uma vez bem codificado o sistema, possvel separar os papis de programao e desenvolvimento de layout, utilizando os conceitos de MVC. A Programao Estruturada ainda de grande valia didtica, pela simplicidade e facilidade de compreenso. Num estgio mais avanado de programao, pode-se partir para a Programao Orientada a Objetos com o uso de uma IDE, e assim, auxiliar no aprendizado de Orientao a Objetos.

Referncias Bibliogrficas
Coad, P. e Yourdon, E. (1996) Anlise baseada em objetos - 2 ed., Editora Campus Ltda, Rio de Janeiro. Deitel, H. M. e Deitel, P. J. (2003) Java, como programar, trad. Carlos A. L. Lisba. 4 ed., Bookman. Porto Alegre Hibernate (2009) Relational https://www.hibernate.org, Junho. Persistence for Java and .NET,

Sun Microsystems (2009) JSP: JavaServer Pages, http://www.sun.com, Junho. Lima, A. S. (2005) UML 2.0: Do Requisito Soluo 1 ed., Editora rica Ltda. So Paulo. PHP (2009) PHP: Hypertext Preprocessor, http://www.php.net, Junho. Pressman, R. S. (1995) Engenharia de Software Pearson Education do Brasil Ltda, So Paulo. Sierra, K. e Bates, B. (2006) Certificao Sun para programador Java 5 2 ed., Alta Books, Rio de Janeiro. Wickert, A. P. (2004) Patrimnio, memria e cultura 1 ed., Editora UPF, Passo Fundo. Yourdon, E. e Constantine, L. L. (1992) Projeto estruturado de sistemas, Editora Campus Ltda., Rio de Janeiro. ANEXOS: - Formulrio de Inventariao Monumentos - Diagrama Entidade Relacionamento completo do Sistema Monumentos

INVENTRIO DOS BENS IMVEIS COM VALOR HISTRICO, ARQUITETNICO E/OU CULTURAL DE PASSO FUNDO UNIVERSIDADE DE PASSO FUNDO FEAR CURSO DE ARQUITETURA E URBANISMO NADUC PATRIMNIO HISTRICO PREFEITURA MUNICIPAL DE PASSO FUNDO SEPLAN

IDENTIFICAO
BRASIL DENOMINAO: RIO GRANDE DO SUL ENDEREO: PASSO FUNDO N IPHAC

PROPRIETRIO:

ZONEAMENTO URBANO PDDI:

GRAU DE PROTEO ATUAL: ( ) NENHUM ( ) TOMBAMENTO MUNICIPAL CRITRIO DE VALORAO ( ) Histrico ( ) Artstico ACESSO: ( ) avenida ou via arterial ( ) via coletora ( ) via local ( ) via sem pavimentao ( ) caminho pedestre ( ) sem acesso

( ) TOMBAMENTO ESTADUAL

( )TOMBAMENTO FEDERAL

( ) Arquitetnico

( ) Monumental ( ) Tipologia tradicional ( ) paisagem/ambiental USO DO IMVEL: ORIGINAL

ENQUADRAMENTO:
( ) URBANO ( ) RURAL DESCRIO ENTORNO: ( ) HOMOGNEO ( ) HETEROGNEO ( ) DESCARACTERIZADO

ATUAL

RESIDENCIAL ( ) ( ) COMRCIAL ( ) ( ) MISTO ( ) ( ) INDUSTRIAL ( ) ( ) INSTITUCIONAL ( ) ( ) HOSPITALAR ( ) ( ) OUTRO______________________________________

LOCALIZAO: Limite frente:____________________ Limite fundos: __________________ Limite esquerda:_________________ Limite direita: __________________

COORDENADAS GPS: Latitude:________________________ Longitude:______________________

( ) abandonada ORIENTAO DA FACHADA PRINCIPAL DA EDIFICAO: ( ) Norte (N) ( ) Sul (S) ( ) Nordeste (NE) ( ) Sudeste (SE) ( ) Noroeste (NO) ( ) Sudoeste (SO) ( ) Leste (L) ( ) oeste (O)

ESTADO DE CONSERVAO: ( ) TIMO ( ) BOM ( ) REGULAR INTERVENES NECESSRIAS: ( ) Imediata ( ) Urgente (1 ano)

( ) RUIM

( ) PSSIMO

( ) RUNA

( ) Prximos 3 anos

( ) no necessita

CRITRIOS HISTRICOS
ANO/POCA CONSTRUO: CONSTRUTOR/ARQUITETO/AUTOR: ( ) at 1850 ( ) entre 1850/80 ( ) 1881 a 1900 ( ) dec. 1900 e 1910 ( ) dec 1920 e 30 ( ) dec 1940 e 50 ( ) dec. 1960 e 70 ( ) dec 1980 a atual DESCRIO HISTRICA DO EDIFCIO: INTERVENES REALIZADAS: ( ) ampliaes ( ) cobertura ( ) fachadas ( ) esquadrias ( ) estrutura ( ) nenhuma

DOCUMENTAO: ( ) fotografias antigas ( ) plantas originais ( ) jornais poca ( ) relatrio de intendentes ( ) microfilmagem Prefeitura ( ) documentos familiares ( ) nenhuma documentao

CRITRIOS TCNICO-DESCRITIVOS
MEMRIA DESCRITIVA E CONSTRUTIVA DESCRIO COMPLEMENTAR:

N PAVIMENTOS:
( ) PORO ( ) STO ( ) MANSARDAS

CARACTERSTICAS TIPOLOGIA:
( ( ( ( ( ( (

PARTICULARES: DADOS TCNICOS: SISTEMA ESTRUTURAL:


( ( ( ( ( ) ALVENARIA AUTOPORTANTE ) PILAR E VIGA ) ARCOS ) MADEIRA ) MISTO

COBERTURA:
( ) BEIRAL ( ) PLATIBANDA FRONTAL ( ) PLATIBANDA LATERAL

) CASA TRREA COM PORO ALTO ) TRREO SEM RECUOS LATEAIS ) TRREO COM RECUOS LATERAIS ) SOBRADO ) SOBRADADO COM PORO ALTO ) EDIFCIO EM ALTURA ) OUTROS

N DE GUAS:
( )1 ( )2 ( )TERRAO ( )4 ( ) MAIS DE 4 ( ) EDCULA

DIREO DAS GUAS


( ) FACHADA PRINCIPAL E POSTERIOR ( ) FACHADAS LATERAIS ( ) AMBAS

MATERIAIS CONSTRUTIVOS: PAREDES E FECHAMENTOS:


( ( ( ( ) ALVENARIA DE TIJOLOS ) ALVENARIA DE PEDRAS ) MADEIRA ) OUTRO

COBERTURA:
( ( ( ( ( ) TELHA CERMICA CAPA/CANAL ) TELHA FRANCESA ) ZINCO ) FIBROCIMENTO ) OUTRO: _______________________

ESTRUTURA DE COBERTURA
( ) METLICA ( ) CONCRETO ARMADO ( ) MADEIRA

ACABAMENTOS EXTERNOS FACHADA PRINCIPAL: ( ) reboca pintada ( ) tijolo aparente ( ) pedra rstica ( ) pedra polida ( ) outro ______________________ FACHADA PRINCIPAL: DATAO: abertura| verga Reta Janela porta ABERTURAS: FACHADA PRINCIPAL JANELAS (n de aberturas)
( ( ( ( ( ) ABRIR ) CORRER ) MAXIAR ) BASCULANTES ) GUILHOTINA

( ) cermica ( ) madeira pintada ( ) madeira natural

Arco abatido

Arco pleno

Arco ogival

outros

MATERIAL:
( ( ( ( ( ) MADEIRA ) METAL ) GRADIS METLICOS ) ALUMNIO ) PVC

FECHAMENTO:
( ( ( ( ) ESCURETO ) VENEZIANA ) VIDRO TRANSPARENTE ) VIDRO COLORIDO

ABERTURAS: FACHADA PRINCIPAL PORTAS (n de aberturas)


( ( ( ( ) ABRIR ) CORRER ) FOLHA DUPLA ) FOLHA SIMPLES

MATERIAL:
( ( ( ( ( ) MADEIRA ) METAL ) GRADIS METLICOS ) ALUMNIO ) PVC

FECHAMENTO:
( ( ( ( ) ESCURETO ) VENEZIANA ) VIDRO TRANSPARENTE ) VIDRO COLORIDO

ELEMENTOS DECORATIVOS: ( ) frisos ( ) balaustradas ( ) modenatura ( ) pilastras ( ) colunas ( ) decorao em massa ( ) fronto ( ) platibanda ( ) outros ________ ELEMENTOS EXTERNOS: ( ) varanda ( ) balco ( ) sacada ( ) jardim ( ) balaustrada ( ) gradis ( ) caixa dgua ( ) edculas ( ) comunicao visual

INFORMAO COMPLEMENTAR
BIBLIOGRAFIA:

DOCUMENTAO GRFICA:

DOCUMENTAO ICONOGRFICA:

DOCUMENTAO ADMINISTRATIVA:

DOCUMENTAO FOTOGRFICA:

ANEXOS:

OBSERVAES:

AUTORES: DATA DA CATALOGAO: TRABALHO DE CAMPO: OBSERVAES:

DATA DA FINALIZAO:

FOTOGRAFIAS DIGITAIS ATUAIS FEITAS PELO INVENTARIANTE DEVERO SER ANEXADAS FICHA EM DISQUETE E SALVAS NO COMPUTADOR NA PASTA DO BEM INVENTARIADO. IMAGENS ANTIGAS DEVERO SER DIGITALIZADAS E SALVAS EM MEIO DIGITAL NA PASTA DO REFERIDO BEM. DOCUMENTAO GRFICA: PLANTAS BAIXAS DEVERO SER IMPRESSAS EM FORMATO A4 E ANEXADAS FICHA ASSIM COMO A PLANTA DE LOCALIZAO DO IMVEL. O ARQUIVO DIGITAL DEVER SER COLOCADO EM DISQUETE E SALVO NO COMPUTADOR NA PASTA DO REFRIDO BEM INVENTARIADO

Diagrama Entidade Relacionamento Projeto Monumentos

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