A "Linguagem de Modelagem Unificada", ou UML, é uma linguagem projetada para mostrar como o software é organizado; engenheiros podem usar UML para diagramar o fluxo de informações em um programa, permitindo que eles entendam melhor como ele pode ser simplificado ou alterado. Ao modelar o fluxo de informações, a UML distingue entre "objetos ativos" que podem iniciar esse fluxo e "objetos passivos" que não podem.
Objetos e classes
Quando se trata da chamada programação "orientada a objetos", a ciência da computação diferencia entre um "objeto" e uma "classe". Uma classe é uma descrição generalizada de um conjunto de coisas - como variáveis ou métodos - enquanto um "objeto" é uma "instância" dessa classe, com suas próprias propriedades exclusivas. Pense nas classes como um modelo ou modelo; no mundo físico, "instrumento de escrita" pode ser considerado uma classe, com "caneta" ou "lápis de cor laranja" exemplos de "objetos" desse tipo de classe em particular.
Objetos em UML
A UML preserva uma distinção semelhante entre classes e objetos, e eles são representados da mesma maneira; As classes UML contêm descrições amplas e os objetos UML contêm valores específicos que representam instâncias dessas descrições. Formalmente falando, portanto, um "objeto ativo" em UML é qualquer instância de uma "classe ativa" e, da mesma forma, um "objeto passivo" é uma instância de uma "classe passiva" - em um sentido teórico, você pode considerar esses termos como ser essencialmente intercambiáveis.
Objetos ativos
Na UML, classes ativas e, portanto, objetos ativos, existem em seu próprio encadeamento de operações e têm seu próprio espaço de endereço. Se a execução, ou atividade de código, é pensada em termos de fluxo, os objetos ativos podem iniciar ou controlar esse fluxo. Objetos ativos, em outras palavras, são sequenciais e fazem alguma coisa:modificar variáveis, alterar o comportamento do programa e assim por diante. Na UML, classes e objetos ativos são diferenciados por terem uma borda mais espessa do que objetos passivos.
Objetos passivos
Objetos passivos em UML geralmente não têm a capacidade de modificar ou iniciar o fluxo de execução, porque eles devem esperar que outro objeto os chame. Em vez disso, os objetos passivos geralmente são usados para armazenar informações e, em muitos casos, essas informações podem ser compartilhadas entre vários outros objetos. Isso pode permitir que objetos passivos sejam acessados simultaneamente, não sequencialmente. Para garantir que os dados contidos neles tenham uma alta integridade, a UML permite que objetos passivos insistam que eles sejam acessados sequencialmente; se dois encadeamentos tentarem chamar o mesmo objeto passivo sequencial, esse objeto poderá atrasar o segundo encadeamento até que o primeiro termine com ele.