Questão de Engenharia de Software — UML — Quadrix 2025
- Código
- qg600091
- Banca
- Quadrix
- Órgão
- CRO-SP
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Suporte de Tecnologia de Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. O diagrama de componentes da UML representa a organização física dos componentes de software — módulos, bibliotecas, arquivos executáveis — e seus relacionamentos de dependência, não os dados persistentes do sistema. A modelagem de dados persistentes, como tabelas de banco de dados e seus relacionamentos, é feita pelo diagrama de classes (na visão lógica) ou pelo diagrama de entidade-relacionamento (modelagem de dados). A afirmação troca a finalidade do diagrama de componentes pela de um diagrama de modelagem de dados.
A UML (Unified Modeling Language) é uma linguagem de modelagem padronizada pela OMG (Object Management Group) que fornece uma notação gráfica para representar a estrutura e o comportamento de sistemas de software. Seus diagramas são divididos em três grandes grupos: diagramas estruturais (estáticos), diagramas comportamentais (dinâmicos) e diagramas de interação (um subconjunto dos comportamentais). O diagrama de componentes pertence ao grupo dos diagramas estruturais, assim como o diagrama de classes, o de objetos, o de pacotes, o de estrutura composta e o de implantação.
O diagrama de componentes tem como foco a organização física do código em unidades reutilizáveis — os componentes — e as interfaces que eles expõem ou requerem. Um componente pode ser um arquivo .jar, uma DLL, um módulo, um executável ou até um subsistema. O diagrama mostra como esses componentes se relacionam por meio de dependências e interfaces, sendo muito útil para visualizar a arquitetura de implementação do sistema. Ele não se preocupa com a persistência de dados; essa é uma preocupação do nível de dados, não do nível de componentes de software.
Para representar dados persistentes, a UML oferece o diagrama de classes, que pode modelar entidades, atributos e relacionamentos — e, com estereótipos como «table» e «persistent», pode representar tabelas de banco de dados. Fora da UML, a ferramenta clássica para modelagem de dados é o diagrama entidade-relacionamento (DER), que mostra entidades, atributos e relacionamentos em nível conceitual, lógico ou físico. A banca explora exatamente essa confusão: o candidato que sabe que o diagrama de componentes "organiza partes do sistema" pode associá-lo erroneamente a tabelas de banco, quando na verdade a persistência é modelada por outros diagramas.
A banca troca a finalidade do diagrama de componentes (estrutura física do software) pela do diagrama de classes/DER (modelagem de dados persistentes). O candidato que confunde "componentes" com "tabelas" cai na armadilha. Lembre-se: componentes são unidades de software (módulos, bibliotecas), não dados.
Critério | Diagrama de Componentes (UML) | Diagrama de Classes (UML) | Diagrama Entidade-Relacionamento (DER) |
|---|---|---|---|
Foco principal | Estrutura física do software (módulos, bibliotecas, executáveis) | Estrutura lógica do sistema (classes, atributos, métodos) | Modelagem de dados persistentes (entidades, tabelas) |
Representa dados persistentes? | Não | Sim, com estereótipos como «table» e «persistent» | Sim, diretamente (tabelas e relacionamentos) |
Tipo de relacionamento modelado | Dependências e interfaces entre componentes | Associações, heranças, agregações, composições entre classes | Relacionamentos entre entidades (1:1, 1:N, N:M) |
Grupo na UML | Diagrama estrutural | Diagrama estrutural | Não é UML (modelagem de dados independente) |
Uso típico | Arquitetura de implementação, deploy e reuso de código | Modelagem conceitual e lógica do domínio | Projeto de banco de dados relacional |
A afirmação está incorreta porque atribui ao diagrama de componentes uma função que não é dele. O diagrama de componentes modela a estrutura física do software — componentes, interfaces e dependências — enquanto os dados persistentes (tabelas de banco e relacionamentos) são representados pelo diagrama de classes da UML (com estereótipos de persistência) ou pelo diagrama entidade-relacionamento. A pegadinha está em associar "componentes" a "tabelas", quando o termo correto para tabelas e relacionamentos é "modelagem de dados", não "componentes de software".
Gabarito: ERRADO
Link permanente: /questoes/qg600091