Diseño de elementos software con tecnologías basadas en componentes. IFCT0609. José Carlos García Bermúdez

Чтение книги онлайн.

Читать онлайн книгу Diseño de elementos software con tecnologías basadas en componentes. IFCT0609 - José Carlos García Bermúdez страница 5

Diseño de elementos software con tecnologías basadas en componentes. IFCT0609 - José Carlos García Bermúdez

Скачать книгу

Tipo Abstracto de Datos (ADT). Encapsulado de datos

      Con los lenguajes de programación estructurados surgió el concepto de tipos de datos (también llamados tipos de datos primitivos), que definen el conjunto de valores que pueden ser almacenados. Los más comunes son: enteros, decimales, cadenas alfanuméricas, fechas, etc. Pero estos tipos de datos primitivos empezaron a ser insuficientes, ya que los desarrolladores tenían la necesidad de definir los suyos propios.

      Los Tipos Abstractos de Datos, cuyo acrónimo es TAD (o ADT si se utiliza la nomenclatura inglesa), son tipos de datos que pueden ser definidos por el programador para agrupar características y comportamientos similares, por lo que aplican el principio de abstracción.

iDef

      Definición

      Abstracción

      En informática, la abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.

      De la misma forma que se crean variables a partir de los tipos de datos primitivos, también pueden crearse variables a partir de los TAD definidos en el propio programa. Un TAD no define solo el conjunto de valores que puede almacenar, sino también las operaciones que pueden realizarse sobre ellos.

iImp

      Importante

      La abstracción es la base de la orientación a objetos, ya que permite la creación de un conjunto de clases para modelar el problema que se desea solventar.

      El encapsulado de datos permite agrupar a un mismo nivel de abstracción todos los elementos que están relacionados con una misma entidad. De esta forma, se consigue aumentar la cohesión y robustez de los elementos que forman el sistema.

iEje

      Ejemplo

      La aplicación que se ha utilizado anteriormente como ejemplo para el registro de la nota media del alumnado podría haberse desarrollado siguiendo una estructura tradicional:

      ilst2destDefiniendo un array para almacenar cada nota y variables independientes para registrar la máxima y la mínima.

      ilst2destCreando funciones para realizar operaciones con el array, ordenación, cálculo de la nota máxima, mínima, etc.

      Pero con un enfoque orientado a objetos se realizaría un encapsulado de todos los elementos que estén relacionados, definiendo la clase “curso”, que agrupa tanto los datos como las operaciones que se realizan sobre esos datos.

      El encapsulado de datos y la ocultación de información permiten reducir el número de errores que pueden producirse en una aplicación, ya que en un sistema orientado a objetos estos dependen unos de otros y, si uno de ellos falla, bastará con modificar su implementación y no será necesario modificar los demás objetos.

iSab

      Sabía que...

      Es habitual confundir el concepto de encapsulamiento con el de ocultación, ya que ambos son utilizados de manera conjunta.

      Al encapsular los datos y las operaciones, también se debería realizar una ocultación de aquellos que deban ser protegidos del mundo exterior.

iAct

      Actividades

      4.Explique la diferencia que existe entre los tipos abstractos de datos y las variables y detalle qué tipo de relación tienen.

      5.¿Qué elementos de la programación orientada a objetos serían los equivalentes a los tipos abstractos de datos y las variables?

iApl

      Aplicación práctica

      Se está iniciando el diseño de una aplicación para gestionar las facturas que se emiten a los clientes de una ferretería. En una primera reunión con los responsables de la empresa, se ha decido utilizar un enfoque orientado a objetos y que la próxima semana se plantee un borrador inicial de cómo podría ser la estructura de la aplicación.

      SOLUCIÓN

      Como se está en una etapa muy temprana del diseño, solo es posible identificar las clases más importantes y algunos de sus métodos y atributos más importantes. Cuando se tenga mayor detalle de la funcionalidad a implementar, se podrá completar el diseño de las clases.

      En primer lugar, se deben abstraer los elementos que van a componer la aplicación, encapsulando sus datos y operaciones. De esta forma, se identificarán las clases que van a componer el sistema:

      ilst2destCliente: contiene los datos de un cliente (NIF, nombre, dirección, teléfonos, datos fiscales, etc.) y las operaciones que se pueden realizar sobre esos datos (cambiar dirección, modificar teléfono, mostrar ficha, etc.).

      ilst2destProducto: agrupa la información de un producto (código, descripción, precio, tipo de IVA, stock en almacén, etc.) y sus operaciones (cambiar precio, cambiar stock, etc.).

      ilst2destFactura: como datos de la factura se tendrán el código, la fecha de emisión, el cliente y una lista de los productos que la componen. Las operaciones habituales serán la modificación del cliente, el cambio de la fecha y la asignación y eliminación de productos.

      Con la orientación a objetos, las aplicaciones están formadas por un conjunto de objetos que interaccionan entre sí. Al indicar a un objeto que ejecute una operación sobre otro objeto, se dice que se le pasa un mensaje.

      Un objeto se comunica con otros mediante mensajes. Cada mensaje implica la ejecución de un método sobre el objeto de destino, que ejecutará la operación correspondiente.

iImp

      Importante

      Los mensajes son la vía de conexión de un objeto con el mundo exterior, lo que le permite comunicarse con otros objetos del sistema.

      Los objetos realizan acciones cuando reciben mensajes y solo es posible acceder a estos objetos a través de su interfaz pública.

      Los métodos son procedimientos que son invocados cuando un objeto recibe un mensaje. En la programación tradicional, un mensaje se correspondería con la llamada a una función.

Скачать книгу