La diferencia entre un objeto pasivo y un objeto activo en UML

El "Lenguaje de modelado unificado", o UML, es un lenguaje diseñado para mostrar cómo se organiza el software; Los ingenieros pueden usar UML para diagramar el flujo de información en un programa, lo que les permite comprender mejor cómo se puede simplificar o cambiar. Al modelar el flujo de información, UML distingue entre "objetos activos" que pueden iniciar ese flujo y "objetos pasivos" que no pueden.

Objetos y Clases

Cuando se trata de la llamada programación "orientada a objetos", la informática diferencia entre un "objeto" y una "clase". Una clase es una descripción generalizada de un conjunto de cosas, como variables o métodos, mientras que un "objeto" es una "instancia" de esa clase, con sus propias propiedades únicas. Piense en las clases como un modelo o una plantilla; en el mundo físico, "instrumento de escritura" podría considerarse una clase, con ejemplos de "bolígrafo" o "lápiz naranja" de "objetos" de ese tipo de clase en particular.

Objetos en UML

UML conserva una distinción similar entre clases y objetos, y se representan de la misma manera; Las clases UML contienen descripciones amplias y los objetos UML contienen valores específicos que representan instancias de esas descripciones. Hablando formalmente, por lo tanto, un "objeto activo" en UML es cualquier instancia de una "clase activa" y, de manera similar, un "objeto pasivo" es una instancia de una "clase pasiva"; en un sentido teórico, podría considerar estos términos para ser esencialmente intercambiables.

Objetos Activos

En UML, las clases activas y, por lo tanto, los objetos activos existen en su propio hilo de operaciones y tienen su propio espacio de direcciones. Si la ejecución, o la actividad del código, se considera en términos de flujo, los objetos activos pueden iniciar o controlar ese flujo. Los objetos activos, en otras palabras, son secuenciales y hacen algo:modifican variables, cambian el comportamiento del programa, etc. En UML, las clases y los objetos activos se distinguen por tener un borde más grueso que los objetos pasivos.

Objetos pasivos

Los objetos pasivos en UML generalmente no tienen la capacidad de modificar o iniciar el flujo de ejecución, porque deben esperar a que otro objeto los llame. En cambio, los objetos pasivos generalmente se usan para almacenar información y, en muchos casos, esta información puede compartirse entre varios otros objetos. Esto puede permitir que se acceda a los objetos pasivos simultáneamente, no secuencialmente. Para asegurarse de que los datos contenidos en el interior tengan una alta integridad, UML permite que los objetos pasivos insistan en que se acceda a ellos secuencialmente; si dos subprocesos intentan llamar al mismo objeto pasivo secuencial, ese objeto puede retrasar el segundo subproceso hasta que el primero haya terminado con él.