A "Unified Modeling Language" (UML) é linguagem para mostrar como software é organizado; engenheiros usam para diagramar fluxo de informação, entendendo como simplificar ou alterar. Ao modelar fluxo, UML distingue "objetos ativos" que iniciam o fluxo, e "objetos passivos" que não iniciam.
Em programação "orientada a objetos", ciência da computação diferencia "objeto" e "classe". Classe é descrição generalizada de conjunto de coisas — variáveis ou métodos — enquanto "objeto" é "instância" da classe, com propriedades únicas. Pense em classes como projeto ou template; no mundo físico, "instrumento de escrita" seria classe, "caneta" ou "giz de cera laranja" objetos dessa classe.
UML preserva distinção similar entre classes e objetos, representados da mesma forma; classes UML contêm descrições amplas, objetos UML contêm valores específicos representando instâncias. Formalmente, "objeto ativo" é instância de "classe ativa", e "objeto passivo" instância de "classe passiva" — teoricamente, termos intercambiáveis.
Na UML, classes ativas e objetos ativos existem em sua própria thread de operações e têm espaço de endereço próprio. Se execução é pensada como fluxo, objetos ativos iniciam ou controlam fluxo. São sequenciais e fazem algo: modificam variáveis, alteram comportamento do programa. Na UML, classes e objetos ativos têm borda mais grossa que passivos.
Objetos passivos na UML geralmente não modificam ou iniciam fluxo de execução, pois devem esperar outro objeto chamá-los. Em vez disso, armazenam informação, muitas vezes compartilhada entre múltiplos objetos. Isso permite acesso concorrente, não sequencial. Para garantir integridade dos dados, UML permite que objetos passivos exijam acesso sequencial; se duas threads tentam chamar mesmo objeto passivo sequencial, ele atrasa a segunda até a primeira terminar.
Tecnologia Eletrônica © [www.351231.com]