Eventos podem acontecer e várias coisas podem ocorrer ao mesmo tempo. Portanto, ao fazer a modelagem de um sistema do mundo real, é necessário levar em conta sua visão de processo, abrangendo os threads e processos que formam os mecanismos de concorrência e sincronização. Acerca disso, considere as seguintes afirmativas:
1. Na UML, cada fluxo de controle independente é modelado como um objeto ativo que representa um processo ou thread capaz de iniciar a atividade de controle.
2. Na UML, um processo é um fluxo pesado que pode ser executado concorrentemente com outros processos. Um thread é um fluxo leve que pode ser executado concorrentemente com outros threads no mesmo processo.
3. Com a UML, fica muito fácil construir abstrações que funcionem de maneira segura na presença de vários fluxos de controle.
4. Com a UML, pode-se ter o excesso de engenharia do software em sua visão de processo, pois o Diagrama de
Estados permite mapeá-los.
5. Nos softwares, muitas linguagens de programação têm suporte direto para o conceito de objeto ativo. Por exemplo, Java tem a concorrência incluída em sua linguagem.
Assinale a alternativa correta.