Vale, en artículos pasados hemos hablado de objetos haciendo una introducción a la estructura y características que tienen pero ahora se nos plantea la pregunta del millón de euros, ¿cómo identificar objetos que van a formar parte de mi programa cuando estamos diseñando el mismo?
Esta siempre es la primera complicación que se nos plantea al analizar un problema que deseamos implementar mediante programación orientada a objetos (POO). Nos hacemos preguntas como ¿qué cosas son objetos y cuales no? o ¿como deducimos los objetos dentro del dominio de definición del problema? Pues bien, en este artículo pretendo daros algo de luz sobre el tema.
La identificación de objetos se obtiene examinando la descripción del problema (análisis gramatical somero de su enunciado o descripción) y localizando los nombres o cláusulas nominales. Normalmente estos junto a sus sinónimos se suelen escribir en una tabla de la que luego deduciremos los objetos reales.
Reglas para identificar objetos, atributos y funciones miembro
Para identificar objetos de un programa dividiremos los mismos en una serie de categorías base aunque vosotros podréis usar otras si queréis en función de los requisitos de la aplicación/programa a diseñar.
- Cosas tangibles: avión, televisor, coche, etc.
- Roles o papeles desempeñados por personas: gerente, cliente, médico, etc.
- Organizaciones: empresa, división, equipo, etc.
- Incidentes que representan un suceso: vuelo, accidente, suceso, etc.
- Interacciones que implican transición o contrato y relacionan dos o más objetos del modelo: compras, matrimonio, etc.
- Especificaciones que muestran inventario o fabricación: refrigerador, nevera, etc.
- Lugares: sala de embarque, muelle de carga, almacén, etc.
Una vez que «tenemos claro» los objetos que van a formar parte de nuestro programa, y lo pongo entre comillas porque esto es una cosa que puede variar a medida que empecemos con el diseño más profundo, hemos de identificar los atributos de dichos objetos que nos van a ser útiles. Los atributos describen la abstracción de características individuales que poseen todos los objetos. Por ejemplo, si tenemos el objeto AVIÓN o el objeto EMPLEADO, algunos de sus atributos podrían ser los que se muestran en la siguiente imagen:
Por último nos quedaría la tarea de identificar las operaciones o funciones miembro las cuales van a cambiar, de alguna forma, el comportamiento del objeto, es decir, cambian los valores de uno o más atributos contenidos en dicho objeto. Las operaciones generalmente se dividen en los siguientes tres grandes grupos:
- Manipulación de datos: de alguna forma específica como añadir, borrar, cambiar formato, etc.
- Realización de cálculos: estos métodos realizarán operaciones de muy diversa índole (algebraicas, estadísticas, etc) sobre los atributos de un objeto tales como obtener total factura, averiguar edad cliente, etc.
- Monitorización del objeto: comprobarán el estado de un objeto frente a la ocurrencia de algún suceso de control por por ejemplo comprobar motor, verificar nivel aceite, etc.
La identificación de las operaciones se realiza haciendo un nuevo análisis gramatical de la descripción del problema y buscando y aislando los verbos en infinitivo del texto. Pues hasta aquí las reglas que nos permiten identificar objetos de un programa. Si os parece os propongo un ejercicio en el que me comentéis nuevas categorías de objetos y me pongáis algún diseño de los atributos y métodos de los mismos. Espero que os haya resultado interesante y comentar que en próximos artículos veremos la duración y la estructura interna de los objetos. Nos leemos en el próximo.
Adiós, os!!