Desarrollo de software Orientado a Objetos - Parte II
Desarrollo de software Orientado a Objetos - Parte II
2 PRINCIPIOS DEL MODELADO
Con base en la experiencia en la aplicación del modelado en el ejercicio de la ingeniería, Booch [1] y sus colegas proponen cuatro principios, que pueden esquematizarse de la siguiente forma:
2.1 Elección de los modelos adecuados
La elección de qué modelos crear tiene una profunda influencia sobre cómo se acomete un problema y cómo se da forma a una solución.
Existen diferentes tipos de modelos, cada uno de ellos se enfoca en un aspecto del sistema y revela un tipo de información. El modelo o el conjunto de modelos a utilizar en la solución de un problema deben seleccionarse cuidadosamente, pues de igual manera que un modelo adecuado puede ayudar a comprender el sistema e identificar detalles importantes para la solución, un modelo inapropiado puede generar confusión.
En el campo del desarrollo de software, se han propuesto varios paradigmas, cada uno tiene sus propios modelos así como sus procedimientos y metodologías. Cada uno de ellos puede conducir a una solución del problema, aunque con diferentes costos y beneficios. Si el proyecto se enfoca bajo el paradigma Orientado a Objetos es conveniente utilizar modelado orientado a objetos en el que se utilicen concepto, mecanismos y artefactos propios de este enfoque.
2.2 Versatilidad de los modelos
Todo modelo puede ser expresado a diferentes niveles de precisión según las necesidades para las cuales se desarrolla.
Los modelos no solo tienen diferentes vistas que cubren aspectos diferentes del sistema, sino diferentes niveles que revelan la estructura o el comportamiento del sistema con mayor o menor detalle. Las decisiones sobre los niveles de abstracción que representan los modelos se toman considerando los intereses de la persona que utilizará dicho modelo.
Si se trata de desarrollar un software, el usuario final querrá ver la interfaz del usuario o quizá los módulos que conformarán el sistema, mientas que los desarrolladores pueden estar interesados en que el modelo represente los paquetes que se utilizarán para desarrollar la interfaz, la dependencia entre clases, y la interacción entre los objetos.
2.3 Los modelos representan la realidad
Los modelos se construyen para simplificar la realidad, mas no para disfrazarla omitiendo aspectos que son difíciles de manejar.
Los modelos deben mantener conexión con la realidad, de manera que la información que se genere mediante la utilización del modelo sea aplicable al sistema real. Si algún aspecto de la realidad no tiene correspondencia directa con alguna variable del modelo, es necesario conocer en qué medida divergen.
En el desarrollo de software, cuando el modelo no representan fielmente los detalles del sistema real, es probable que se construya aplicaciones que no satisfacen el problema para el que se desarrollaron o que no puedan mantenerse en el tiempo y adaptarse a los cambios, con lo cual su ciclo de vida se acortará.
2.4 Necesidad de varios modelos
Un único modelo no es suficiente. Cualquier sistema no trivial se aborda mejor a través de un pequeño conjunto de modelos casi independientes.
Un modelo representa una perspectiva del sistema real, lo cual es un aporte en la comprensión del mismo, pero para comprender adecuadamente dicho sistema se precisan varias perspectivas. Por ende se requieren varios modelos.
Es importante que cada modelo muestre su perspectiva de manera completa e independiente de las demás, y en el nivel de detalle requerido. De esta manera, cada modelo facilita el estudio de un aspecto de la realidad, pero el estudio de varios modelos hace que se tenga una visión integral del sistema.
En el desarrollo de software orientado a objetos, se utilizan varias vistas entrelazadas y complementarias: la vista de casos de uso muestra los requisitos del sistema, la vista de diseño comprende las clases, interfaces y colaboraciones que forman el vocabulario del problema y su solución, la vista de procesos modela la distribución de operaciones e hilos de ejecución, la vista de implementación comprende los componentes y archivos que se utilizarán para ensamblar el sistema físico, la vista de despliegue contiene los nodos que forman la topología de hardware sobre la que se ejecuta el sistema.
[1] Ibíd., P. 7.

Meneame
del.icio.us