Prévia do material em texto
Fazer teste: Semana 3 - Atividade Avaliativa Informações do teste Descrição Instruções Olá, estudante! 1. Para responder a esta atividade, selecione a(s) alternativa(s) que você considerar correta(s); 2. Após selecionar a resposta correta em todas as questões, vá até o fim da página e pressione “Enviar teste”. 3. A cada tentativa, as perguntas e alternativas são embaralhadas Pronto! Sua atividade já está registrada no AVA. Várias tentativas Este teste permite 3 tentativas. Esta é a tentativa número 1. Forçar conclusão Este teste pode ser salvo e retomado posteriormente. Suas respostas foram salvas automaticamente. As arquiteturas de sistema são frequentemente modeladas de modo informal com diagramas de bloco, que representam componentes e suas interações de maneira visual. Esses diagramas oferecem uma visão de alto nível do sistema, facilitando a comunicação entre stakeholders. No entanto, há críticas sobre sua eficácia em mostrar relacionamentos detalhados e propriedades externas dos componentes. Existem duas maneiras principais de utilizar esses modelos: para encorajar discussões sobre o projeto do sistema e para documentar uma arquitetura projetada. De acordo com as vantagens e limitações do uso de diagramas de bloco informais na modelagem de arquiteturas de sistema, analise as afirmativas a seguir. I. Os diagramas de bloco informais são úteis para comunicação com stakeholders, pois oferecem uma visão abstrata do sistema que é fácil de entender. II. Esses diagramas são considerados inadequados por especialistas, pois não mostram os tipos de relacionamento entre componentes e suas propriedades externas visíveis. III. Diagramas de bloco informais facilitam a documentação detalhada da arquitetura, tornando o desenvolvimento do sistema mais compreensível. IV. A utilização de linguagens de descrição de arquitetura mais rigorosas pode reduzir mal-entendidos, mas é um processo caro e demorado. Está correto o que se afirma em: a. III e IV, apenas. b. I e II, apenas. c. I, II e IV, apenas. d. II e III, apenas. e. I, III e IV, apenas. PERGUNTA 1 1,25 pontos Salva Uma arquitetura de software pode ser descrita a partir de diferentes visões, cada uma com um nível distinto de abstração. As quatro principais visões são: visão lógica, visão de processo, visão de desenvolvimento e visão física. Essas visões permitem uma compreensão abrangente do sistema, desde sua organização interna até sua interação com o hardware. Para descrever essas arquiteturas, utilizam-se tanto notações PERGUNTA 2 1,25 pontos Salva Estado de Conclusão da Pergunta: 12/08/25, 16:58 Fazer teste: Semana 3 - Atividade Avaliativa – ... https://ava.univesp.br/webapps/assessment/take/launch.jsp?course_assessment_id=_207511_1&course_id=_14634_1&content_id=_1712258_1… 1/4 informais quanto formais, incluindo UML e linguagens formais de descrição de arquitetura (ADLs), que são essenciais para sistemas altamente críticos. Diante disso, analise como as diferentes visões de arquitetura contribuem para uma compreensão completa de um sistema de software e assinale a alternativa que identifique qual delas se concentra na organização do sistema em pedaços menores para atender aos requisitos funcionais. a. A visão de desenvolvimento agrupa classes em componentes, utilizando a orientação a objetos para atender aos requisitos funcionais. b. A visão lógica foca na organização do sistema em pedaços menores, utilizando a orientação a objetos para atender aos requisitos funcionais. c. As visões de arquitetura devem ser representadas utilizando diagramas UML, utilizando a orientação a objetos para atender aos requisitos funcionais. d. A visão de processo mostra como o sistema é composto por processos que interagem na execução, utilizando a orientação a objetos para atender aos requisitos funcionais. e. A visão física detalha a distribuição dos componentes de software pelos processadores do sistema, utilizando a orientação a objetos para atender aos requisitos funcionais. A engenharia de software abrange o design de arquiteturas em diferentes níveis de abstração, incluindo a arquitetura em pequena escala, focada na estrutura de programas individuais, e a arquitetura em grande escala, que se ocupa de sistemas corporativos complexos. Estas arquiteturas refletem diferentes preocupações e desafios no processo de design. Diante disso, assinale a alternativa que aplica o conceito de arquitetura em pequena escala para explicar como ela influencia o desenvolvimento de um programa individual. a. Facilita a coordenação entre diferentes empresas ao gerenciar a distribuição de sistemas corporativos. b. Limita a integração com sistemas externos, concentrando-se exclusivamente na funcionalidade interna do programa. c. Aumenta a complexidade de manutenção ao adicionar múltiplas camadas de interdependência entre programas. d. Promove a eficiência na decomposição de um programa em componentes individuais, melhorando a modularidade. e. Reduz a necessidade de considerações de segurança ao focar apenas no desenvolvimento de pequenos programas. PERGUNTA 3 1,25 pontos Salva A refatoração é uma prática de desenvolvimento de software que envolve a reestruturação do código existente sem alterar seu comportamento externo. Apesar de não ser primariamente focada em melhorar o desempenho, a refatoração pode influenciar a eficiência do software de maneiras significativas. Com relação ao conceito de refatoração e sua relação com a otimização de desempenho em software, observe as afirmativas a seguir. I. A refatoração prepara o software para uma otimização de desempenho mais eficaz ao tornar o código mais modular e fácil de entender. II. Focar em otimizar o desempenho desde o início do desenvolvimento de software pode resultar em código complexo e difícil de manter. III. Otimizar cada parte do software sem considerar sua utilização frequente pode levar a um desperdício de recursos e esforços. IV. Refatoração elimina a necessidade de qualquer otimização de desempenho posterior ao corrigir todos os problemas de eficiência durante o processo. Está correto o que se afirma em: a. I, II e III, apenas. b. II e IV, apenas. PERGUNTA 4 1,25 pontos Salva 12/08/25, 16:58 Fazer teste: Semana 3 - Atividade Avaliativa – ... https://ava.univesp.br/webapps/assessment/take/launch.jsp?course_assessment_id=_207511_1&course_id=_14634_1&content_id=_1712258_1… 2/4 c. I, III e IV, apenas. d. III e IV, apenas. e. I e II, apenas. Refatoração é uma técnica poderosa no desenvolvimento de software, conhecida por melhorar a estrutura interna do código sem alterar seu comportamento externo. Apesar de seus benefícios, a refatoração possui limitações que podem não torná-la ideal em todos os contextos. Reconhecer essas limitações é crucial para aplicar a técnica de forma eficaz. Diante disso, assinale a alternativa que descreve o porquê é importante estar ciente das limitações da refatoração. a. Reconhecer as limitações ajuda a integrar a refatoração em metodologias ágeis, garantindo que ela contribua efetivamente para a melhoria contínua. b. Conhecer as limitações da refatoração pode incentivar o uso de testes automatizados para mitigar os riscos associados às mudanças no código. c. Entender as limitações da refatoração permite aos desenvolvedores aplicá-la de forma mais estratégica, evitando excessos que podem complicar o código. d. Assimilar as limitações da refatoração ajudam a identificar quando outras técnicas de otimização de código podem ser mais apropriadas. e. Compreender as limitações permite que a refatoração seja combinada com desenvolvimento dirigido por testes para um resultado mais robusto. PERGUNTA 5 1,25 pontos Salva Refatoração é um processo crucial no desenvolvimento de software, essencial para manter a qualidade do código ao longo do tempo. Ela envolve modificar o código para melhorar sua estrutura interna sem alterar seu comportamento externo. A prática é fundamental para prevenir a deterioração do design do software, especialmenteem projetos de longo prazo. Neste sentido, assinale a alternativa que apresenta o principal benefício da refatoração para o desenvolvimento de software. a. Reduz a quantidade de código, facilitando a manutenção e evitando duplicações. b. Garante que o software nunca precisará de modificações futuras. c. Elimina a necessidade de comentários no código, tornando-o autoexplicativo. d. Aumenta a velocidade de execução do software ao reduzir o volume de código. e. Torna o software completamente livre de erros ao revisar cada linha de código. PERGUNTA 6 1,25 pontos Salva A arquitetura em camadas é uma metodologia comum no design de sistemas de software, que organiza o sistema em camadas distintas, cada uma responsável por funções específicas. Contudo, é essencial gerenciar cuidadosamente as interações entre as camadas para evitar impactos na performance e dependências inadvertidas. Neste sentido, assinale a alternativa que indica uma vantagem desta metodologia no desenvolvimento de sistemas de software. a. Reduz significativamente os custos iniciais de desenvolvimento do software. b. Facilita a substituição de camadas sem necessidade de alterar todo o sistema. c. Aumenta a complexidade do sistema, facilitando o processo de depuração. d. Reduz a necessidade de medidas de segurança devido à proteção inerente às camadas. e. Elimina completamente as dependências entre as camadas do sistema. PERGUNTA 7 1,25 pontos Salva 12/08/25, 16:58 Fazer teste: Semana 3 - Atividade Avaliativa – ... https://ava.univesp.br/webapps/assessment/take/launch.jsp?course_assessment_id=_207511_1&course_id=_14634_1&content_id=_1712258_1… 3/4 Elimina completamente as dependências entre as camadas do sistema. A arquitetura de software deve fornecer uma base que facilite a escalabilidade, a manutenção e a integração de diferentes componentes, promovendo a reutilização de código e a adoção de boas práticas de engenharia de software. Além disso, é fundamental que a arquitetura seja flexível o suficiente para se adaptar a futuras mudanças tecnológicas e de negócios, assegurando a longevidade e a relevância do sistema desenvolvido. Diante disso, assinale a alternativa que apresenta o principal objetivo do projeto de arquitetura em desenvolvimento de software? a. Organizar e estruturar ideias para definir como o software será desenvolvido. b. Testar o software para garantir que todos os requisitos do cliente foram atendidos. c. Comunicar-se com o cliente para alterar os requisitos durante o desenvolvimento. d. Documentar todos os erros encontrados durante a fase de teste do software. e. Codificar as funções do software baseadas nos requisitos do cliente. PERGUNTA 8 1,25 pontos Salva 12/08/25, 16:58 Fazer teste: Semana 3 - Atividade Avaliativa – ... https://ava.univesp.br/webapps/assessment/take/launch.jsp?course_assessment_id=_207511_1&course_id=_14634_1&content_id=_1712258_1… 4/4