Prévia do material em texto
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 contextos. Reconhecer essas limitações é crucial para aplicar a técnica de forma eficaz. Diante disso, assinale a alternativa que descreve porquê é importante estar ciente das limitações da refatoração. a. Conhecer as limitações da refatoração pode incentivar 0 uso de testes automatizados para mitigar os riscos associados às mudanças no código. b. Reconhecer as limitações ajuda a integrar a refatoração em metodologias ágeis, garantindo que ela contribua efetivamente para a melhoria contínua. C. Entender as limitações da refatoração permite aos desenvolvedores aplicá-la de forma mais estratégica, evitando excessos que podem complicar código. d. Compreender as limitações permite que a refatoração seja combinada com desenvolvimento dirigido por testes para um resultado mais robusto. e. Assimilar as limitações da refatoração ajudam a identificar quando outras técnicas de otimização de código podem ser mais apropriadas. A arquitetura "Duto e Filtro" é um padrão de design utilizado para construir sistemas que processam dados de maneira sequencial ou paralela através de componentes modulares. Este modelo é especialmente útil em aplicações que exigem processamento de dados em estágios discretos, cada um realizando transformações específicas. As vantagens deste modelo incluem modularidade e facilidade de entendimento, enquanto as desvantagens podem envolver a sobrecarga de sistema devido à transmissão de dados entre filtros. Neste sentido, assinale a alternativa que aplica conceito de arquitetura "Duto e Filtro" para descrever como ela pode ser implementada em um sistema de processamento de imagens. a. Os filtros são configurados para trabalhar de forma independente sem a necessidade de conexões entre eles, reduzindo a necessidade de dutos e minimizando a sobrecarga de dados. b.A arquitetura permite a execução paralela de filtros, cada um processando diferentes atributos da imagem, como cor, textura e bordas, antes de combinar os resultados para a saída final. C. A arquitetura foca exclusivamente no aumento da velocidade de processamento ao eliminar completamente os dutos, permitindo que cada filtro funcione como um sistema autônomo. d. sistema utiliza uma única sequência de filtros operando em série, onde cada filtro adiciona uma camada de segurança adicional à imagem para proteção contra cópias não autorizadas. e. filtro no sistema processa imagens de forma independente e depois envia resultados para uma base de dados centralizada onde são compilados e apresentam resultados finais. A engenharia de software abrange 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 desenvolvimento de um programa individual. a. Promove a eficiência na decomposição de um programa em componentes individuais, melhorando a modularidade. b. Reduz a necessidade de considerações de segurança ao focar apenas no desenvolvimento de pequenos programas. C. Limita a integração com sistemas externos, concentrando-se exclusivamente na funcionalidade interna do programa. d. Aumenta a complexidade de manutenção ao adicionar múltiplas camadas de interdependência entre programas. e. Facilita a coordenação entre diferentes empresas ao gerenciar a distribuição de sistemas corporativos. 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 hardware. Para descrever essas arquiteturas, utilizam-se tanto notações 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. 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. d. A visão de processo mostra como sistema é composto por processos que interagem na execução, utilizando a orientação a objetos para atender aos requisitos funcionais. e. As visões de arquitetura devem ser representadas utilizando diagramas UML, utilizando a orientação a objetos para atender aos requisitos funcionais.A escolha do estilo de arquitetura de um sistema de software deve considerar os requisitos não funcionais, como desempenho, segurança da informação, segurança, disponibilidade e manutenibilidade. A arquitetura adequada para um sistema pode variar significativamente com base nesses requisitos, impactando diretamente na eficácia e eficiência do sistema final. Com relação a este contexto e sobre conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas: A arquitetura deve ser projetada para localizar operações críticas dentro de um pequeno número de componentes, com esses componentes implantados no mesmo computador para otimizar desempenho. PORQUE II. Se a disponibilidade for um requisito crítico, a arquitetura deve incluir componentes redundantes que permitam substituição e atualização sem interrupção do sistema. A respeito dessas asserções assinale a alternativa correta: a. As asserções e são proposições verdadeiras, e a é uma justificativa da I. b. As asserções e são proposições verdadeiras, mas a não é uma justificativa da I. C. As asserções e são falsas. d.A asserção é uma proposição falsa, e a é uma proposição verdadeira. e. A asserção é uma proposição verdadeira, e a é uma proposição falsa. A arquitetura de repositório centraliza informações cruciais de um sistema, permitindo que componentes variados, como compiladores e ferramentas de depuração em um IDE, acessem e modifiquem dados Esse modelo é benéfico em ambientes que apresentem tipos de problemas específicos. Diante disso, assinale a alternativa que apresenta um benefício da utilização da arquitetura de repositório em sistemas. a. Permite a descentralização dos dados, reduzindo custos operacionais. b. Garante completa autonomia dos componentes do sistema. C. Centraliza a gestão de dados, aumentando a integridade e a facilidade de acesso. d. Aumenta a redundância dos dados, eliminando a necessidade de backups. e. Diminui a demanda por recursos computacionais ao distribuir processamento. A refatoração é um importante processo no desenvolvimento de software, pois elimina duplicidades, simplifica lógicas condicionais e garante que novas funcionalidades possam ser adicionadas sem comprometer comportamento existente. Basicamente ela concentra em melhorar a estrutura do código sem alterar sua funcionalidade. Esta abordagem estratégica é crucial para manter a longevidade e a adaptabilidade do software. Neste sentido, assinale a alternativa que apresenta objetivo da refatoração no desenvolvimento de software. a. Converter todo código legado em linguagens de programação modernas. b. Aumentar a velocidade de processamento do software em execução. C. Remover todas as funcionalidades antigas do software que não são mais utilizadas. d. Permitir que software funcione sem qualquer supervisão de um programador. e. Facilitar futuras modificações mantendo software fácil de ler e modificar. A arquitetura em camadas é uma metodologia comum no design de sistemas de software, que organiza 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. Aumenta a complexidade do sistema, facilitando processo de depuração. b. Reduz significativamente custos iniciais de desenvolvimento do software. C. Reduz a necessidade de medidas de segurança devido à proteção inerente às camadas. d. Elimina completamente as dependências entre as camadas do sistema. e. Facilita a substituição de camadas sem necessidade de alterar todo o sistema.