
2 minute read
CAPÍTULO 1: Dominio del problema
El problema, es básicamente la situación que se le presenta al usuario y que el desarrollador debe solucionar mediante la aplicación de la tecnología en diversas tareas. El dominio del problema incluye a todos aquellos objetos o elementos conceptuales que forman parte del entorno en donde se presenta la situación, es decir, que son los elementos conceptuales que son necesarios para entender el negocio o el entorno del usuario para poder desarrollar la solución.
Este es el artefacto clave para el análisis orientado a objetos por el hecho que, como se mencionó, son los elementos conceptuales que forman parte del entorno del cliente y dichos elementos suelen ser objetos que poseen un grupo de características y comportamiento determinado que cobran sentido dentro del dominio del problema.
Advertisement
En resumen, el modelo del dominio del problema son aquel grupo de objetos que tienen correspondencia directa con el entorno en donde se encuentra la situación, y a su vez, se aplicará la solución. La representación de este modelo viene dada por el Lenguaje de Modelado Unificado, o mejor conocido como UML (Unified Model Language), el cual es una forma de representar a las abstracciones que se identifican que son necesarias para la elaboración de la solución.
Esta forma de representación es, como su nombre lo indica, unificada. Con lo que quiere transmitir el mismo mensaje a todo el mundo independientemente de quien lo lea, claramente para entenderle hay que conocer sobre él, de otra forma sería como intentar leer inglés sin saber lo más básico.
Por ende, el UML se diseñó para que cualquiera que desee entender como funciona un sistema y como están representadas las partes en el código, pueda acceder a dicho diagrama y entender un poco mejor el funcionamiento interno del mismo. Porque eso si, este es un requisito en la documentación a la hora de desarrollar software.
Generación del modelo
A la hora de tener una situación en la que se deba desarrollar un software para su solución, primeramente se debe escuchar atentamente al problema planteado para identificar a todos los actores y sus acciones. Se establecen los siguientes pasos:
1. Identificación de clases candidatas: en este paso se buscan identificar aquellos posibles elementos que sean las clases del sistema a desarrollar. Se identifican las clases distinguiendo aquellas que son físicas de las conceptuales; al igual que una vez que se tiene identificadas, se eliminan aquellas redundantes, irrelevantes e imprecisas.
2. Identificación de asociaciones: es la relación que tienen dos clases, esta debe diferenciarse entre: asociaciones de agregación, asociaciones de agregación (el ciclo de vida del objeto no depende de otro objeto), asociación de composición (el ciclo de vida del objeto depende de otro objeto), generalización (relación de herencia entre dos clases) y clase de asociación (es cuando la asociación entre clases puede tener propiedades).
3. Identificación de roles: es el papel que juega cada clase desde el punto de vista de la otra clase en una relación, si el nombre o la asociación es muy descriptiva, el rol puede omitirse.
4. Identificación de multiplicidad: es cuando los atributos de una clase se encuentran en otra.
5. Identificación de atributos: estos pueden ser seleccionados en base al conocimiento de la clase o descripción de la situación, en caso de ser la primera opción, solo deben colocarse aquellos relevantes para el sistema.
6. Generación de diccionarios de clases: este describe las clases identificadas en el dominio del problema, es una especie de glosario de términos.