Buscar

Artigo - POO Vantanges sobre programação estruturada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

6
PROGRAMAÇÃO ORIENTADA A OBJETOS:
Vantagens sobre a programação estruturada
Marcos Eduardo Buzzi Cordeiro
Cláudia Neli de Souza Zambon²
RESUMO
O trabalho de pesquisa presente, possui o objetivo de conceituar a programação orientada a objetos e também a programação estruturada, onde com a passar dos anos a dependência da sociedade com aplicações de software aumenta gradativamente, a procura dos desenvolvedores destas aplicações, por novas formas de desenvolver está cada vez maior. Com base nos conceitos e cases apresentados, expor e comparar a programação orientada a objetos e estruturada, demonstrar as vantagens de desenvolvimento empregadas da programação orientada a objetos sobre a programação estruturada, em quais meios a mesma se torna mais viável, utilizável e também se as vantagens são empregadas em situações especificas, para quais tipos de sistema e situações.
Palavras-chave: Vantagens de desenvolvimento. Orientação a Objetos. Estruturada.
1. INTRODUÇÃO
Vivemos na era da automatização, softwares são criados todos os dias com o intuito de modernizar algo e facilitar o cotidiano do ser humano, com o passar dos anos a tecnologia vem avançando e possibilitando novas formas de se desenvolver um software, desenvolvedores ficam em duvida a cada projeto de como devem programar e qual norte seguir. Nos últimos anos cada vez mais é notável a preferência dos desenvolvedores optando pela programação orientada a objetos conforme Santos (2013), onde a facilidade de manipulação é maior e as alterações de tornam mais flexíveis e sem sofrer danos em classes dependentes da mesma.
Neste artigo será abordado o porque cada vez mais desenvolvedores vem adotando a programação orientada a objetos como essencial para o desenvolvimento de suas aplicações, deixando de lado a programação estruturada, outro foco importante são as linguagens disponíveis no mercado, conforme Igor (2015) retrata que linguagens de programação antigas eram focadas em programação estruturada, um exemplo o C, linguagens como Java e C# já são totalmente focadas em orientação a objetos, onde é possível abstrair a informação e objetos como necessário.
Como Santos (2013) questiona, como seria possível fazer uma alteração em um formulário em programação estruturada, para localizar o que está sendo afetado é necessário olhar o código por código até descobrir se algo foi afetado realmente, já na programação orientada a objetos tudo esta em objetos separados, as rotinas, as funções, com isto a alteração e atualização é de mais fácil acesso, sendo necessário apenas localizar o método em que esta sendo definido, e alterar somente aquele método em questão. A facilidade em manutenção quando utilizado programação orientadas a objetos é um dos seus pontos fortes, graças aos pilares que a programação orientada a objetos se sustenta para entregar a melhor experiencia ao desenvolvedor da aplicação.
Os conceitos dos pilares e o funcionamento da programação orientada a objetos, juntamente a programação estruturada será tratado neste trabalho de pesquisa com fim de expor a vantagem da metodologia de programação orientadas a objetos para projetos que podem gerar manutenção, atualizações e implementações na área de desenvolvimento.
2. FUNDAMENTOS DA PROGRAMAÇÃO ESTRUTURADA
Como base da programação estruturada temos a linguagem C, conforme Andrade (2017), a linguagem C se tornou uma das linguagens mais populares e importantes, criada exclusivamente para o desenvolvimento de programas estruturados fazendo com que o programa seja mais legível proporcionando bons hábitos aos desenvolvedores. O foco nos programas legíveis e eficientes são claramente um dos objetivos da programação orientada a objetos, citado este objetivo em diversos artigos como em Siqueira (2015), que define a programação orientada a objetos como “uma técnica de programação, independente da linguagem de programação, que tem como objetivo construir programas claros, legíveis, eficientes e de fácil manutenção.”
Siqueira (2015) conceitua a programação estruturada em três principais partes, são elas, estruturas de sequência, seleção ou decisão e repetição, com o domínio destas estruturas é possível aplicar a programação estrutura e fazer o uso da mesma para construção de softwares.
2.1 ESTRUTURA DE SEQUÊNCIA
Esta é a estrutura que irá definir a ordem de execução básica do código, a sequência de execução do programa, sempre de cima para baixo e linha a linha conforme figura 1.
FIGURA 1: DIAGRAMA SEQUÊNCIA PROGRAMAÇÃO ESTRUTURADA
FONTE: Projeto TI fácil (2018)
Este tipo de instrução é de fácil compreendimento e ainda muito utilizado no desenvolvimento, mas principalmente para metodologia de ensino pois muitas pessoas acabam aprendendo a programar por meio desta programação estruturada conforme Pires (2017) retratada onde grande parte dos programadores tem o primeiro contato com a programação por meio da metodologia estruturada por ser mais didática em primeiro momento, apresentada em cursos iniciais e materiais de faculdades.
2.2 ESTRUTURA DE SELEÇÃO OU DECISÃO
Com a estrutura de seleção é possível definir o fluxo das instruções, onde as mesmas devem obedecer às condições lógicas apresentadas, avaliando cada caso, onde validando a lógica da condição a instrução a seguir será executada, sua estrutura pode ser vista na modelo 2.
FIGURA 2: DIAGRAMA DECISÃO PROGRAMAÇÃO ESTRUTURADA
FONTE: Projeto TI fácil (2018)
Conforme apresentado na imagem está sendo analisado no meio do processo uma rotina lógica criada por uma condição, se a mesma for de acordo o código irá fazer a seleção e continuar a estrutura de seleção.
2.3 ESTRUTURA DE REPETIÇÃO
Para completar a programação estruturada, se tem a estrutura de repetição, a mesma funciona como um controle, permitindo que uma ou varias instruções sejam repetidamente executadas em uma rotina de acordo com a condição lógica imposta no programa, abaixo a figura 3 retrata esta repetição ocorrida com a instrução lógica.
FIGURA 3: DIAGRAMA REPETIÇÃO PROGRAMAÇÃO ESTRUTURADA
FONTE: Projeto TI fácil (2018)
A combinação destas instruções no desenvolvimento da aplicação compõe toda a estrutura da programação estruturada, onde com isto é possível desenvolver softwares robustos para o mercado
2.4 VANTAGENS DA PROGRAMAÇÃO ESTRUTURADA
A programação estruturada tem seu foco e benefícios bem claros, seja na forma acadêmica ou na implementação de softwares, Davy (2019) descreve alguns benefícios desta forma de desenvolver softwares, indo desde a facilidade de entender os programas, onde não há necessidade de localizar saltos de execução no código, ou seja, entre os blocos, a estrutura do programa é clara devido as instruções estarem interligadas e relacionadas entre si, com isto o custo da manutenção de software é reduzida também, onde a depuração, modificação e entender programas fica mais fácil, outros benefícios também estão presentes como a simplicidade e rapidez na criação de novos programas e esforço reduzido dos desenvolvedores.
Existem sim várias vantagens em utilizar a programação estruturada e pode-se observar que a didática da mesma para as portas iniciais para o mundo do desenvolvimento de softwares é bem eficiente e até para produtos no mercado, mas quando falamos de grandes aplicações que necessitam de uma manutenção constante a programação estruturada é realmente eficiente? Será visto o método de evolução da programação estruturada a programação orientada a objetos que veio com a necessidade de auxiliar ainda mais os programadores.
3. FUNDAMENTOS DA PROGRAMAÇÃO ORIENTADA A OBJETOS
Com o crescimento dos softwares presentes no mercado a busca por facilidade no desenvolvimento dessas aplicações é sempre constante, conforme Gonçalves (2018) relata “a programação orientada a objetos veio para acompanhar as constantes evoluções tecnológicas”, onde os softwares se tornam cada vez mais complexos em suas rotinas e no tamanho do código fonte consequentemente, com o proposito de reduzir a complexidade de ajustes em rotinas, manutenção, implementações e falhas.Falando de história, segundo Monqueiro (2007), o termo “Programação Orientada a Objetos” foi criado por Alan Kay, o mesmo criador da linguagem de programação Smalltalk, porém antes da criação desta linguagem já eram utilizados elementos de orientação a objetos, como a linguagem Simula 67, criado por Ole Dahl e Kristen Nygaard em 1967, mesmo o conceito sendo antigo começou realmente a ser exposto a partir da década de 90, onde foram baseada grandes linguagens como Java, C#, C++, Object Pascal (Delphi), Ruby, Python entre outras.
A programação orientada a objetos trabalha com uma forma de organização do código, segundo Gonçalves (2018), esta organização de código, separa o mesmo em várias partes, para melhor visualização e identificação de rotinas. O conceito deste paradigma de programação é aproximar o mundo real do mundo virtual como citado por Monqueiro (2007), utilizando objetos para simular o real dentro do computador. Na POO o programador é responsável em moldar os objetos e criar a interação entre eles, os objetos devem interagir entre si, o programador irá criar esta interação e mostrar ao software o que cada objeto poderá receber um do outro e que ação deve fazer.
Conforme Monqueiro (2007) a construção de estrutura da programação orientada a objetos utiliza classes, atributos e métodos, onde uma classe se baseia na abstração de definição de determinado objeto, o que dentro do mesmo e ações que devem ser tomadas, estas ações são chamadas de métodos, e o que pertence a classe são os atributos, com esta composição é formada a programação orientada a objetos porém existe a base deste paradigma tão utilizado pelos desenvolvedores, onde compõem os famosos pilares deste paradigma de desenvolvimento, conforme mostra o modelo 4 apresentando a sustentação da POO.
FIGURA 4: PILARES PROGRAMAÇÃO ORIENTADA A OBJETOS
FONTE: Cláudio Florenzano CBSI (2014)
Com a junção destes pilares que serão vistos a seguir, é composto a programação orientada a objetos do qual vem sendo aderida ao longo do tempo por diversas empresas e presente em grande parte das mais variadas linguagens de programação, trazendo consigo uma série de vantagens no desenvolvimento de software.
3.1 ABSTRAÇÃO
Assim como todos os pilares este é de extrema importância na estrutura de programação orientada a objetos, utilizado como o nome já diz, para abstrair as coisas do mundo para o código, Noronha (2018) descreve o quão importante este pilar é, onde uma vez feito a abstração da forma incorreta, pode ocorrer confusões devido ao excesso de informação. Com este método é possível dividir o código em várias partes, com isto o potencial de reuso do código é aumentando. Para uma boa abstração é necessário levantar apenas aspectos relevantes para o que está sendo representado para evitar se perder no excesso de informação conforme relatado anteriormente.
3.2 ENCAPSULAMENTO
Este pilar é o responsável pelo controle de acessos ao código, Noronha (2018) utiliza a analogia onde o encapsulamento é o pilar que protege o código, ele cria pontes no projeto, o mesmo é responsável por “dizer” o que irá acessar o que. A proteção do código é de extrema importância, não sendo obrigatória, porém essencial para um bom código orientado a objetos. Muxfeld (2017) retrata que o encapsulamento protege a integridade dos dados contidos no objeto, o mesmo trabalha com níveis de encapsulamento dos dados, sendo eles private ou public, dentro dos mesmos é efetuado o encapsulamento com getters e setters e o método construtor para os objetos abstraídos.
3.3 HERANÇA
Como definição Muxfeld (2017) define a herança como "um princípio próprio à programação orientada a objetos (POO) que permite criar uma nova classe a partir de uma já existente". A herança trabalha utilizando classes e superclasses, onde a classe herda informações relevantes da superclasse, sendo estes, atributos e métodos, como exemplo podemos ter a superclasse veiculo com o atributo motor, existindo também a classe carro, moto, estas podem herdar o atributo motor da superclasse, pois é relevante e utilizada por todas, desta forma a economia do código se torna maior, o reaproveitamento é botado em prática e a manutenção se torna mais fácil podendo ser direcionada diretamente ao método que esteja divergente na classe por exemplo.
3.4 POLIMORFISMO
O polimorfismo caminho lado a lado com o pilar da herança, Souza (2018) define polimorfismo como “a capacidade que uma classe tem de sobrepor métodos da classe abstrata, modificando-os”, ou seja o mesmo trabalha com o mesmo conceito de herança porém em alguns casos será necessário alguma implementação no que foi herdado, este é o conceito de polimorfismo, ficando evidente que sem herança não é possível existir o polimorfismo, os dois trabalham lado a lado e com a aplicação correto dos mesmos e dos demais pilares é possível aplicar a programação orientada a objetos.
4. PESQUISA DE MERCADO
Pesquisas sempre mostram que a venda de smartphones sempre aumenta em todo o mundo, a anos atrás se resumia a microcomputadores hoje pode ser acessado facilmente por quase qualquer smartphone no mercado, uma pesquisa pelo IDC (2012) e coberta pelo canal tech relata que neste período 70.1% dos celulares utilizavam como sistema operacional o android e 21% IOS, com o passar dos anos o android vem tomando frente e aumentando esta porcentagem, o site impacta (2013), faz um levantamento das linguagens utilizadas para as principais plataformas de sistemas operacionais onde o IOS utiliza Objective-C, android java e c++, Windows phone C# e por ultimo BlackBerry utilizando o Java, todas estão linguagens são orientada a objeto, desta forma é possível destacar a importância da mesma.
5. CONCLUSÃO
Com o passar do tempo, sempre surgiram novas soluções de desenvolvimento de software, buscando sempre auxiliar ainda mais os desenvolvedores na criação de softwares mais complexos do qual o mercado necessita, a complexidade aumenta e as soluções crescem exponencialmente também, os paradigmas de programação estruturada e programação orientada a objetos vieram com esta necessidade de auxílio ao desenvolvedor.
A programação estruturada por si só é focada em pequenos softwares e também de forma didática, sendo essencial para o entendimento inicial de novos desenvolvedores, sua forma de estrutura simples permite que a didática e curva de aprendizado seja menor em comparação com a programação orientada a objetos, porém, quando falamos de grandes aplicações, a programação orientada a objetos traz consigo várias vantagens em relação a programação estruturada, onde aplicando os pilares que sustentam este paradigma o reaproveitamento de código, praticidade, abstração auxilia na manutenção e foco no problema são alguns dos benefícios presentes.
REFERÊNCIAS
ALVES, Robison. Programação Estruturada e Orientada a Objetos. [S. l.], 2018. Disponível em: https://docente.ifrn.edu.br/robinsonalves/disciplinas/programacao-estruturada-e-orientada-a-objetos/Aula-09%20-%20Introducao%20OO.pdf. Acesso em: 10 abr. 2020.
ANDRADE, Elisabeth. Programação Estruturada. 2018. Disponível em: https://oer.avu.org/handle/123456789/628. Acesso em: 10 abr. 2020.
DAVY, Rodrigo. O que é a programação estruturada? [S. l.], 2019. Disponível em: https://platzi.com.br/blog/programacao-estruturada/. Acesso em: 10 abr. 2020.
FLORENZANO, Cláudio. Programação Orientada a Objetos: Uma introdução. [S. l.], 2014. Disponível em: https://www.cbsi.net.br/2014/02/programacao-orientada-objetos-uma.html. Acesso em: 13 abr. 2020.
GONÇALVES, Matheus Vieira. Programação Orientada a Objetos. Revista Ada Lovelace, v. 2, p. 106-110, 2018. Disponível em: http://anais.unievangelica.edu.br/index.php/adalovelace/article/view/4654. Acesso em: 10 abr. 2020.
IMPACTA. A importância da programação orientada a objetos na era do mobile. [S. l.], 2013. Disponível em: https://www.impacta.com.br/blog/2013/10/08/a-importancia-da-programacao-orientada-a-objetos-na-era-do-mobile/. Acesso em: 13 abr. 2020.
MONQUEIRO, Julio Cesar. Programação Orientada a Objetos: uma introdução.[S. l.], 29 out. 2007. Disponível em: https://www.hardware.com.br/artigos/programacao-orientada-objetos/. Acesso em: 10 abr. 2020.
MUXFELD, Pedro. POO - encapsulamento dos dados. [S. l.], 04 out. 2018. Disponível em https://br.ccm.net/contents/413-poo-encapsulamento-dos-dados. Acesso em: 13 abr. 2020.
NORONHA, Caio. Programação Orientada a Objetos. [S. l.], 04 out. 2018. Disponível em https://medium.com/@caio.cnoronha/programa%C3%A7%C3%A3o-orienta%C3%A7%C3%A3o-a-objetos-poo-759d96dda910. Acesso em: 13 abr. 2020.
PIRES, Jackson. O que é Programação Orientada a Objetos e porque você precisa saber. [S. l.], 2017. Disponível em: https://becode.com.br/programacao-orientada-a-objetos-poo/. Acesso em: 10 abr. 2020.
RASMUSSEN, Bruna. Os números não mentem: Android ou iOS, qual é o melhor? [S. l.], 30 nov. 2016. Disponível em https://medium.com/emanuelg-blog/programa%C3%A7%C3%A3o-orientada-a-objeto-em-php-polimorfismo-359ad60b947b. Acesso em: 13 abr. 2020.
SANTOS, Adriel Perez. Programação Estruturada Versus Programação Orientada a Objetos. Fábrica de software. [S. l.], 23 abr. 2013. Disponível em: http://fabrica.ms.senac.br/2013/04/programacao-estruturada-versus-programacao-orientada-a-objetos/. Acesso em: 10 abr. 2020.
SIQUEIRA, Fernando. O que é Programação Estruturada? [S. l.], 2015. Disponível em: http://www.projetotifacil.com/2018/05/linguagem-de-programacao.html. Acesso em: 10 abr. 2020.
SOUZA, Emanuel. Programação Orientada a Objeto em PHP — Polimorfismo. [S. l.], 2013. Disponível em https://canaltech.com.br/produtos/os-numeros-nao-mentem-android-ou-ios-qual-e-o-melhor-7657/. Acesso em: 13 abr. 2020.
TIFACIL, Linguagem de Programação. [S. l.], 20 mai. 2018. Disponível em: https://sites.google.com/site/unipliprogramacaoestruturada/artigos/o-que-e-programacao-estruturada. Acesso em: 10 abr. 2020.

Outros materiais