Identificación de un modelo de objetos
Fecha: 13/Jul/2005 (07/07/2005) Blog: http://percyreyes.blogspot.com E_mail: [email protected] - [email protected] ¡¡ Los peruanos SÍ podemos !! |
Hay muchas formas de enfocar un problema utilizando una solución basada en el software. Un enfoque muy utilizado es la visión orientada a objetos. El dominio del problema se caracteriza mediante un conjunto de objetos con atributos y comportamientos específicos. Los objetos son manipulados mediante una colección de funciones (llamadas métodos, operaciones o servicios) y se comunican entre ellos mediante un protocolo de mensajes. Los objetos se clasifican mediante clases y subclases.
La definición de objetos implica la descripción de atributos, comportamientos, operaciones y mensajes. Un objeto encapsula tanto datos como los procesos que se aplican a esos datos. Esta importante característica permite construir clases de objetos e inherentemente construir bibliotecas de objetos y clases reutilizables. El paradigma de orientación a objetos es tan atractivo para tantas organizaciones de desarrollo de software debido a que la reutilización es un atributo importantísimo en la ingeniería del software. Además, los componentes de software derivados mediante el paradigma de objetos muestran características (como la independencia funcional, la ocultación de información, etc.) asociadas con el software de alta calidad.
Los elementos de un modelo de objetos – clases y objetos, atributos, operaciones y mensajes – deben ser identificados en un problema real. A continuación se presentan una serie de directrices informales que servirán de apoyo en la identificación de los elementos de un modelo de objetos.
- Identificación de clases y objetos
Si se observa alrededor en una habitación, existen un conjunto de objetos físicos que pueden ser fácilmente identificados, clasificados y definidos (en términos de atributos y operaciones). Pero cuando se “observa” el espacio de un problema en una aplicación de software, los objetos pueden ser más difíciles de identificar.
Se puede empezar a identificar objetos examinando el planteamiento del problema o realizando un “análisis sintáctico gramatical” en la narrativa del sistema que se va a construir. Los objetos se determinan subrayando cada nombre o cláusula nominal e introduciéndola en una tabla simple.
Los sinónimos deben destacarse. Si se requiere del objeto que implemente una solución, entonces éste formará parte del espacio de solución; en caso de que el objeto se necesite solamente para describir una solución, éste forma parte del espacio del problema. Los objetos se manifiestan de alguna de las formas siguientes:
- Entidades Externas que producen o consumen información a usar por un sistema computacional. Por ejemplo: otros sistemas, dispositivos, personas.
- Cosas que son parte del dominio de información del problema. Por ejemplo: informes, presentaciones, cartas, señales.
- Ocurrencias o Sucesos que ocurren dentro del contexto de una operación del sistema. Por ejemplo: una transferencia de propiedad o la terminación de una serie de movimientos en un robot.
- Papeles o Roles desempeñados por personas que interactúan con el sistema. Por ejemplo: director, ingeniero, vendedor.
- Unidades Organizacionales que son relevantes en una aplicación. Por ejemplo: división, grupo, equipo.
- Lugares que establecen el contexto del problema y la función general del sistema. Por ejemplo: planta de producción o muelle de carga.
- Estructuras que definen una clase de objetos o, en casos extremos, clases relacionadas de objetos. Por ejemplo: sensores, vehículos de cuatro ruedas o computadoras.
La clasificación mostrada es una de las muchas que se han propuesto en la literatura.También es importante destacar qué no son los objetos. En general, un objeto nunca debe tener un “nombre procedimental imperativo”. Por ejemplo, si los desarrolladores de un software para un sistema gráfico médico definieron un objeto con el nombre inversión de imagen, estarían cometiendo un sutil error. La imagen obtenida por el software pudiera ser, en efecto, un objeto (es un elemento que forma parte del dominio de información), pero la inversión de la imagen es una operación que se aplica a dicho objeto. Inversión debe definirse como una operación del objeto imagen, pero no como un objeto separado que signifique “inversión de imagen”. Como establecen algunos autores, “… el objetivo de la orientación a objetos es encapsular, pero manteniendo separados los datos y las operaciones sobre estos datos”.
Para ilustrar cómo pueden definirse los objetos se presenta la narrativa de procesamiento para el sistema Hogar Seguro:
El software Hogar Seguro le permite al propietario de la casa configurar el sistema de seguridad una vez que este se instala, controla todos los sensores conectados al sistema de seguridad, e interactúa con el propietario a través de un teclado numérico y teclas de función contenidas en el panel de control de Hogar Seguro.
Durante la instalación, el panel de control de Hogar Seguro se usa para “programar” y configurar el sistema. A cada sensor se le asigna un número y tipo, se programa una contraseña maestra para activar y desactivar el sistema, y se introducen números de teléfono a marcar cuando un sensor detecte un suceso.
Cuando se reconoce un suceso de sensor, el software invoca una alarma audible asociada al sistema. Después de un tiempo de espera especificado por el propietario durante las actividades de configuración del sistema, el software marca un número de teléfono de un servicio de control, proporciona información acerca de la localización, e informa de la naturaleza del suceso detectado. El número será remarcado cada 20 segundos hasta obtener una conexión telefónica.
Toda la interacción con Hogar Seguro está gestionada por un subsistema de interacción con el usuario que toma la entrada a partir del teclado numérico y teclas de función, y muestra mensajes y el estado del sistema en la pantalla LCD.
La interacción con el teclado toma la siguiente forma…Extrayendo los nombres pueden proponerse varios objetos potenciales:
La lista anterior debe ser continuada hasta que se hayan considerado todos los nombres de la descripción del proceso. Observe que se ha llamado a cada entrada en la lista un objeto potencial. Se debe considerar cada uno de ellos antes de tomar una decisión final.
Coud y Yourdon sugieren seis características de selección a usar cada vez que un analista considera si incluye o no un objeto potencial en el modelo de análisis:
- Información retenida el objeto potencial será de utilidad durante el análisis solamente si la información acerca de él debe recordarse para que el sistema funciones.
- Servicios necesarios el objeto potencial debe poseer un conjunto de operaciones identificables que pueden cambiar de alguna manera el valor de sus atributos.
- Atributos múltiples durante el análisis de requisitos, se debe centrar la atención en la información principal (un objeto con un solo atributo puede, en efecto, ser útil durante el diseño, pero seguramente será mejor presentado como un atributo de otro objeto durante la actividad de análisis).
- Atributos comunes puede definirse un conjunto de atributos para el objeto potencial, los cuales son aplicables a todas las ocurrencias del objeto.
- Operaciones comunes puede definirse un conjunto de operaciones para el objeto potencial, las cuales son aplicables a todas las ocurrencias del objeto.
- Requisitos esenciales entidades externas que aparecen en el espacio del problema y producen o consumen información esencial para la producción de cualquier solución para el sistema, serán casi siempre definidas como objetos en el modelo de requisitos.
Para ser considerado un objeto válido a incluir en el modelo de requisitos, un objeto potencial debe satisfacer todas (o casi todas) las características anteriores. La decisión de incluir objetos potenciales en el modelo de análisis es algo subjetivo, y una evaluación posterior puede llegar a descartar un objeto o reincluirlo. Sin embargo, el primer paso del Análisis Orientado a Objetos debe ser la definición de objetos, y la consiguiente toma de decisiones (incluso subjetivas).
Teniendo esto en cuenta, se aplicarán las características selectivas a la lista de objetos potenciales de Hogar Seguro:
Debe tenerse en cuenta que: (1) la lista anterior no incluye todo, hay que añadir objetos adicionales para completar el modelo; (2) algunos de los objetos potenciales rechazados serán atributos de los objetos aceptados (por ejemplo, número y tipo son atributos de sensor, y contraseña maestra y número de teléfono pueden convertirse en atributos de sistema); y (3) diferentes descripciones del problema pueden provocar la toma de diferentes decisiones de “aceptación o rechazo” (por ejemplo, si cada propietario tiene su propia contraseña o fue identificado por impresiones de voz, el objeto Propietario cumpliría las características a y b y habría sido aceptado).
- Especificación de atributos
Los atributos describen un objeto que ha sido seleccionado para ser incluido en el modelo de análisis. En esencia, son los atributos los que definen al objeto, los que clarifican lo que representa el objeto en el contexto del espacio del problema. Por ejemplo, si se tratara de construir un sistema de estadísticas para jugadores profesionales de béisbol, los atributos del objeto Jugador serían muy diferentes de los atributos del mismo objeto cuando se use dentro del contexto de un sistema de pensiones para jugadores profesionales. En el primero, atributos tales como nombre, posición, promedio de bateo, porcentaje de estancia en el campo de juego, años jugados y partidos jugados pueden ser relevantes. En el segundo caso, algunos de estos atributos serían relevantes pero otros serían reemplazados (o potenciados) por atributos como salario medio, crédito total, opciones elegidas para el plan de pensión, dirección postal, etc.
Para desarrollar un conjunto significativo de atributos para un objeto, el analista puede estudiar de nuevo la narrativa del proceso (o descripción del ámbito del alcance) para el problema y seleccionar aquellos elementos que razonablemente “pertenecen” al objeto. Además, para cada objeto debe responderse el siguiente interrogante: “¿Qué elementos (compuestos y/o simples) definen completamente al objeto en el contexto del problema actual?”
Para ilustrar esto, se considerará el objeto Sistema definido para Hogar Seguro. Anteriormente se indicó que el propietario puede configurar el sistema de seguridad para reflejar la información acerca de los sensores, sobre la respuesta de la alarma, sobre la activación / desactivación, sobre identificación, etc. Usando la notación de la descripción del contenido se podría representar estos elementos de datos compuestos de la siguiente manera:
Información del sensor = tipo de sensor + número de sensor + umbral de alarma.Información de respuesta de la alarma = tiempo de retardo + número de teléfono + tipo de alarma.
Información de activación / desactivación = contraseña maestra + cantidad de intentos permitidos + contraseña temporal.
Información de identificación = ID del sistema + verificación de número de teléfono + estado del sistema.
- Definición de operaciones
Las operaciones definen el comportamiento de un objeto y cambian, de alguna manera, los atributos de dicho objeto. Más concretamente, una operación cambia valores de uno o más atributos contenidos en el objeto. Por lo tanto, una operación debe tener “conocimiento” de la naturaleza de los atributos de los objetos y deben ser implementadas de manera tal que le permita manipular las estructuras de datos derivadas de dichos atributos.
Aunque existen muchos tipos diferentes de operaciones, éstas pueden clasificarse en tres grandes categorías: (1) operaciones que manipulan, de alguna manera, datos (por ejemplo: añadiendo, eliminando, reformateando, seleccionando); (2) operaciones que realizan algún cálculo; y (3) operaciones que monitorizan un objeto frente a la ocurrencia de un suceso de control.
En una primera iteración para obtener un conjunto de operaciones para los objetos del modelo de análisis, el analista puede estudiar de nuevo la narrativa del proceso (o descripción del ámbito) del problema y seleccionar aquellas operaciones que razonablemente pertenecen al objeto. Para realizar esto, se estudia de nuevo el análisis gramatical y se aíslan los verbos. Algunos de estos verbos serán operaciones legítimas y pueden conectarse fácilmente a un objeto específico. Por ejemplo, de la narrativa de proceso de Hogar Seguro, puede verse que “al sensor se le asigna un número y un tipo” o que “se programa una contraseña maestra para activar y desactivar el sistema”. Estas dos frases indican varias cosas:
- Que una operación de asignación es relevante para el objeto Sensor.
- Que una operación de programar se le aplicará al objeto Sistema.
- Que activar y desactivar son operaciones aplicables al Sistema como: Estado del sistema = [activado | desactivado]
Tras una investigación más detallada, es probable que haya que dividir la operación programar en varias suboperaciones más específicas requeridas para configurar el sistema. Por ejemplo, programar implica especificar números de teléfonos, configurar características del sistema (por ejemplo, crear la tabla de sensores, introducir las características de las alarmas) e introducir la(s) contraseña(s), aunque por ahora se especificará programar como una operación simple.
- Fin de la definición del objeto
La definición de operaciones es el último paso para completar la especificación del objeto. Las operaciones se eligieron a partir de un examen gramatical de la narrativa del proceso del sistema. Las operaciones adicionales pueden determinarse considerando la “historia de la vida” de un objeto y los mensajes que se pasan entre objetos definidos por el sistema.
La historia de la vida genérica de un objeto puede definirse reconociendo que dicho objeto deber ser creado, modificado, manipulado o leído de manera diferente, y posiblemente borrado. Para el objeto Sistema, eso puede expandirse para reflejar actividades conocidas que ocurren durante su vida (en este caso, durante el tiempo que Hogar Seguro se mantiene operativo).
Algunas de las operaciones pueden determinarse a partir de comunicaciones semejantes entre objetos. Por ejemplo, el Suceso sensor enviará un mensaje a Sistema para mostrar en pantalla la localización y número del suceso; el Panel de control enviará un mensaje de reinicialización para actualizar el estado del Sistema (un atributo); la Alarma audible enviará un mensaje de consulta, el Panel de control enviará una mensaje de modificación para cambiar uno o más atributos sin reconfigurar el objeto Sistema por completo; el Suceso sensor enviará un mensaje para llamar al número(s) de teléfono(s) contenido(s) en el objeto. Podrán considerarse otros mensajes para derivar operaciones correspondientes.
La definición del objeto resultante se muestra en la figura siguiente:
Se usará un enfoque similar para cada uno de los objetos definidos para Hogar Seguro.
No olvides de darme tu voto en PanoramaBox, de esta manera seguiré compartiendo contigo lo que voy aprendiendo. Gracias.
Arbis Percy Reyes Paredes es peruano, tiene 21 años y se dedica a la construcción de software de manera profesional, joven desarrollador de aplicaciones Web y Servicios Web XML en VB .NET y C# .NET con bases de datos SQL Server 2000, aplicaciones basadas en Windows con VB .NET y C# .NET, VB 6.0, y controles y bibliotecas ActiveX; actualmente estudia en la Universidad Nacional de Trujillo, la carrera de Ingeniería de Sistemas. Le encanta el desarrollo de aplicaciones para dispositivos móviles tanto como la programación gráfica y programación avanzada de videojuegos.