Recapitulando | PETNews - Tipos de dados abstratos
Tipos de dados abstratos
Por Julie Pessoa
(julie.pessoa@ccc.ufcg.edu.br)
Nesta edição, iremos relembrar os tipos de dados abstratos, conceito muito importante para programação. E dando continuidade às questões no ENADE, resolveremos a questão 39 da prova de 2011.



Um Tipo Abstrato de Dados (TAD) pode ser definido por uma coleção bem definida de dados a serem armazenados, e um grupo de operadores que podem ser aplicados para manipulação desses dado. Da mesma forma, pode ser visto como um modelo matemático que encapsula um modelo de dados e um conjunto de procedimentos que atuam com exclusividade sobre os dados encapsulados.

Características fundamentais:

- Os operadores do TAD implementam regras bem definidas para manipulação dos valores armazenados;

- Os valores armazenados devem ser manipulados EXCLUSIVAMENTE pelos operadores do TAD.


Qualquer processamento a ser realizado sobre os dados encapsulados em um TAD só poderá ser executada por intermédio dos procedimentos definidos no modelo matemático do TAD, sendo esta restrição a característica operacional mais útil dessa estrutura.

A especificação de um TAD descreve quais dados podem ser armazenados, e o que é possível fazer com esses dados através dos operadores do TAD. Mas a especificação do TAD não descreve como isso é ou será efetivamente implementado no programa. Isso pode ser definido em um segundo momento. Ou seja, um Tipo Abstrato de Dado é um modelo abstrato do armazenamento e manipulação de um determinado conjunto de dados de um programa.


Para entender melhor vamos fazer uma analogia à TV, representada na tabela abaixo.


Tomando a TV como um programa, temos som e canal como grupo de dados desse programa. Para modificar esse dados usaríamos o grupo de operadores que, no mundo real, seriam os botões de aumentar volume, diminuir volume e mudar de canal. Modificar os dados sem usar os operadores é como se estivéssemos abrindo a televisão e modificando o volume ou o canal manualmente, com uma chave de fenda por exemplo.


Vantagens do uso do TAD:


  • Abstração da Informação: permite uma melhor compreensão dos algoritmos e maior facilidade de programação, e consequentemente aumenta a complexidade dos programas, tornando fundamental em qualquer projeto de software a modelagem prévia de seus dados.

  • Mais seguro programar: apenas as operações do Tipo Abstrato de Dados alteram os dados.
  • Maior independência e portabilidade de código e Manutenção: alterações na implementação de um TAD não implicam em alterações em seu uso. Supondo que implementamos um TAD qualquer, e também temos uma aplicação usando este TAD. Se decidirmos mudar a implementação, desde que a aplicação esteja utilizando apenas os operadores, a aplicação continuará funcionado. O que mudou foi a implementação da TAD, mas sua funcionalidade (seus operadores) continuam os mesmos.
  • Maior potencial de reutilização de código: pode-se alterar a lógica de um programa sem a necessidade de reconstruir as estruturas de armazenamento. Uma vez definido, implementado e testado, o TAD pode ser acessado por diferentes programas

  • E se reunirmos todas essas vantagens veremos que elas, consequentemente, farão com que o custo do desenvolvimento diminua.

    Vamos por em prática nosso conhecimento?! Tente resolver a questão abaixo.

    Questão 39 do ENADE 2011

    Analisando as afirmações:


    I - FALSA. O TAD é descrito pela finalidade do tipo e de suas operações, e não pela forma como está implementado. Ou seja, não é necessário saber a sua representação interna.

    Como a I é falsa, podemos eliminar as letras A e C.

    II - VERDADEIRO. Composição e herança estão atrelados a reuso de código e o TDA proporciona isso.

    Sendo a II verdadeira, eliminamos as letras C e E e também podemos concluir que a afirmação III é falsa.

    III - FALSA. Sendo S subtipo de T, há operações específicas de S que não estão definidas ou não exsitem em T, portanto a corretude do programa pode sim ser alterada.

    IV - VERDADEIRA. O encapsulamento de informação é uma das “consequências” do TDA.

    Portanto a opção corretar é a letra D


    Referências:

    http://www.ic.unicamp.br/~ra069320/PED/MC102/1s2008/Apostilas/Cap09.pdf

    http://www2.dc.ufscar.br/~bsi/materiais/ed/u2.html

    http://pt.wikipedia.org/wiki/Tipo_de_Dado

    http://www.inf.puc-rio.br/~coordicc/icc/TAD.pdf

    http://wiki.icmc.usp.br/images/f/fd/AulaTAD.pdf


    Jornal PETNews - Edição: Rafael Rêgo e Abner Araújo - Revisão: Lívia Sampaio e Gleyser Guimarães
    Grupo PET Computação UFCG, 2013. All rights reserved.