Considerando os princípios e elementos essenciais de arquitetura e desenvolvimento de software e suas respectivas definições, relacione adequadamente as colunas a seguir. 1. Modelo cliente/servidor em 2, 3 e N camadas. 2. Sincronismo e filas de mensagens. 3. MVC (Model-View-Controller). 4. Model-Driven Architecture. 5. Model-Driven Development. ( ) Arquitetura que separa uma aplicação em três componentes principais: modelo; visão; e, controlador. ( ) Abordagem de desenvolvimento de software que enfatiza a criação de modelos abstratos que definem a estrutura e o comportamento do sistema. ( ) Separação de uma aplicação em camadas distintas para modularidade e gerenciamento simplificado. ( ) Abordagem de desenvolvimento que coloca modelos no centro do processo, gerando, automaticamente, código a partir destes modelos. ( ) Utilização de mensagens para comunicação assíncrona entre componentes, frequentemente empregando uma fila para gerenciar as mensagens. A sequência está correta em
- A)4, 3, 2, 1, 5.
Errada, porque troca a ordem dos conceitos e confunde MVC, MDA, client/server em camadas, MDD e mensagens assíncronas.
- B)2, 1, 5, 4, 3.
Errada, pois embaralha as definições e atribui às expressões itens que não correspondem às descrições apresentadas.
- C)3, 4, 1, 5, 2.
Certa, porque a sequência 3, 4, 1, 5, 2 corresponde exatamente às definições de MVC, MDA, camadas cliente/servidor, MDD e filas de mensagens.
- D)1, 5, 3, 2, 4.
Errada, já que associa as definições aos itens de forma incompatível com os conceitos de arquitetura e desenvolvimento descritos.
Gabarito: C
A questão mistura conceitos clássicos de arquitetura e desenvolvimento de software, então o segredo é identificar a “cara” de cada definição. MVC é o trio modelo, visão e controlador, usado para separar responsabilidades na aplicação e deixar o código menos bagunçado. Já o Model-Driven Architecture e o Model-Driven Development lidam com modelos, mas com foco diferente: no MDA, a arquitetura é organizada a partir de modelos em níveis mais abstratos; no MDD, o modelo vira o centro do processo e pode até gerar código automaticamente. Quando a banca fala em modelo cliente/servidor em 2, 3 e N camadas, ela está pensando em separação por camadas, algo bem típico de sistemas mais organizados e fáceis de manter. Isso encaixa na frase sobre separar a aplicação em camadas distintas para modularidade e gerenciamento simplificado. Já “sincronismo e filas de mensagens” aponta para comunicação assíncrona, com mensagens guardadas e processadas depois, bem diferente de uma chamada direta e imediata. Agora, fazendo a ligação das descrições com os itens: a definição de três componentes principais é MVC, então vai para o item 3. A ideia de criar modelos abstratos que definem estrutura e comportamento do sistema remete ao MDA, item 4. A separação em camadas distintas corresponde ao cliente/servidor em 2, 3 ou N camadas, item 1. A geração automática de código a partir de modelos descreve MDD, item 5. E o uso de mensagens com fila para comunicação assíncrona é o item 2. Por isso, a sequência correta é 3, 4, 1, 5, 2, que corresponde à alternativa C. Em concurso, a banca costuma testar se você distingue “modelo como centro” de “camadas de arquitetura” e não cai na tentação de achar que tudo que tem a palavra modelo é a mesma coisa.