Prévia do material em texto
Disciplina: Projeto Orientado a Objetos (ADS20) Avaliação: Avaliação II - Individual e sem Consulta ( Cod.:398387) ( peso.:1,50) Prova: 5988081 Nota da Prova: 5,00 Legenda: Resposta Certa Sua Resposta Errada 1. O desenvolvimento de software é complexo e trabalhoso e, devido a isso, a Engenharia de Software surgiu para resolver alguns dos problemas deste processo. O gerenciamento da qualidade e da produtividade é um deles. Para isso, surgem as métricas de software, que podem auxiliar o desenvolvimento de software, discriminando o tempo necessário para que uma atividade seja desenvolvida, por exemplo. Existem vários tipos de métricas diferentes, cada uma mais apropriada para um determinado projeto. Neste contexto, assinale a alternativa CORRETA: a) Medidas indiretas abordam o custo e o esforço aplicado nas atividades, e métricas diretas relacionam-se com funcionalidade, qualidade, complexidade e eficiência. b) Medidas indiretas contemplam somente as métricas que são orientadas ao tamanho de uma atividade. c) Medidas diretas abordam o custo e o esforço aplicados nas atividades, e métricas indiretas relacionam-se com funcionalidade, qualidade, complexidade e eficiência. d) Medidas indiretas são as mais fáceis de serem desenvolvidas, pois causa um esforço menor no processo de medição, pois relaciona-se com a eficiência de uma atividade. 2. As métricas de software surgiram para tentar sanar muitos dos problemas existentes no desenvolvimento de software, relacionados com prazo, custo e qualidade. Neste contexto, a definição de indicadores de medição é importante para realizar análise da qualidade e produtividade do processo de desenvolvimento de software. Além disso, existem muitos motivos para aplicar métricas de software em um projeto. Neste contexto, assinale a alternativa CORRETA que apresenta motivos para aplicação de métricas de software em um projeto: a) Permitir a análise da qualidade e produtividade de uma métrica utilizada em um projeto, definindo se esta é eficiente o suficiente para sua utilização em todos os projetos da organização. b) Permitir a análise da produtividade e qualidade do trabalho no desenvolvimento de software, garantindo que o projeto não sofra atrasos ou seu custo seja maior que o orçado. c) Permitir a qualidade de um produto de software e avaliar a produtividade e qualidade de novos métodos e ferramentas para o desenvolvimento de software. d) Possuem um único objetivo: a análise do esforço realizado para que uma determinada tarefa seja desenvolvida. 3. Existem complementos aos padrões de projeto, como o Propagation Patterns, que expressa um grupo de objetos que colaboram para um propósito específico. O Propagation Pattern possui a aplicação no Design Pattern de desenvolvimento de um software orientado a objeto, assim como na utilização de padrões de projeto para guiar o projeto. Referente ao Propagation Pattern, analise as seguintes afirmativas: I- O uso de notações de Adaptative Programming (AP), pode descrever padrões para problemas em programação orientada a objetos. II- O prototype pode ser implementado para descrever objetos de maneira robusta. III- O Builder pode ser implementado para descrever objetos de maneira robusta. IV- AP é geralmente utilizado em padrões de projeto e envolve subgráficos selecionados de grandes gráficos. V- Objetivo do AP é prover abstrações que permitam especificar melhor estes padrões. Agora, assinale a alternativa CORRETA: a) As afirmativas I, III, IV e V estão corretas. b) As afirmativas I, II e III estão corretas. c) Somente a afirmativa I está correta. d) As afirmativas II, III, IV e V estão corretas. 4. A medição possui um papel importante na Engenharia de Software, mais especificamente na gerência de projetos de software, não importa qual método utilizado, mas medir o processo de desenvolvimento de software auxilia e muito na definição de cronogramas. Um processo de medição pode ser realizado em três fases: coleta dos dados, cálculo dos dados e análise dos dados calculados. Partindo desse pressuposto, classifique V para as sentenças verdadeiras e F para as falsas: ( ) As métricas de software são calculadas com dados qualitativos. ( ) As métricas de software devem possibilitar análise estatística. ( ) As métricas de software devem ser facilmente aplicadas em qualquer projeto. ( ) As métricas de software devem ser expressas em uma unidade de medida. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - F. b) F - V - V - F. c) F - F - V - F. d) F - V - V - V. 5. MVC (Model View Controller) é um dos padrões de desenvolvimento de software que é baseado em três camadas: Modelo (Model), Visão (View) e Controladora (Controller). A camada Modelo concentra classes entidades, regras de negócio e de acesso ao banco de dados. A camada Visão baseia-se em como os dados serão apresentados aos clientes, como telas, por exemplo. E a camada Controladora concentra as classes que traduzem interações do fluxo de dados com as camadas de visão e modelo. Referente ao padrão MVC de desenvolvimento de software, analise as seguintes afirmativas: I- Uma desvantagem do padrão MVC está na alteração dos componentes visuais do sistema que, como consequência, sempre afetará as camadas modelo e controladora. II- Uma vantagem do padrão MVC é a alta coesão (classes com responsabilidades distintas) e pouca dependência entre as classes. III- Uma desvantagem do padrão MVC é o trabalho gerado ao desenvolver uma nova funcionalidade, devido à necessidade do desenvolvimento das três camadas. IV- Uma possível vantagem do MVC é a possibilidade de sua combinação com outros padrões, como o DAO, DTO e o BO. V- Uma definição para o MVC pode ser descrita por separar o código que manipula a lógica de negócios do código que manipula a apresentação ao usuário e da manipulação de dados. Agora, assinale a alternativa CORRETA: a) As afirmativas I e II estão corretas. b) As afirmativas I, III, IV e V estão corretas. c) Somente a afirmativa I está correta. d) As afirmativas II, III, IV e V estão corretas. 6. As métricas de projeto são voltadas para a atividade de projeto de software, que servem para comparar planos de medições de outros projetos e assim melhorar os projetos futuros. A profundidade de árvore de herança (DIT) é um tipo de métrica de projeto e é medida pelo número de classes ancestrais de uma herança. Analise as afirmativas a seguir: I- DIT menor que 2 para a maioria dos ramos da árvore significa que a exploração das vantagens da orientação a objetos é alta. II- DIT muito profunda, ou maior que 5, significa que existe complexidade do projeto. III- DIT maior que 5 significa que o projeto precisa ser reavaliado, pois não houve utilização adequada de orientação a objetos. IV- DIT igual a zero significa um alto grau de reutilização do código-fonte. Agora, assinale a alternativa CORRETA: a) As afirmativas II e III estão corretas. b) As afirmativas I, II e IV estão corretas. c) Somente a afirmativa IV está correta. d) As afirmativas I, II e III estão corretas. 7. Medida pode ser conceituada por mapear algo, e medição é o processo de aplicação da medida em algo real. Em desenvolvimento de software, para haver confiabilidade dos dados, a medição deve especificar: o tamanho do produto de software; o número de pessoas necessárias para implementação de casos de uso; o número de defeitos encontrados; o esforço, o tempo e o custo para realização de uma tarefa, além do grau de satisfação do cliente. Partindo desse pressuposto, classifiqueV para as sentenças verdadeiras e F para as falsas: ( ) Entre os papéis da medição de software, destacam-se entender os processos, avaliar, controlar e prever valores de atributos. ( ) O GQM (Goal Question Metrics) é responsável pelo desenvolvimento de métricas de software, para disponibilizar aos gerentes de projetos. ( ) O GQM (Goal Question Metrics) é responsável pela definição do conjunto de métricas a ser coletado. ( ) As medições devem ser aplicadas para medir processos e não pessoas. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - F. b) V - F - V - V. c) F - V - V - F. d) F - V - V - V. 8. O mesmo problema pode ser representado por mais de um modelo diferente, facilitando o entendimento, sendo característica do Archetype Pattern. Existem vários padrões de projeto para a orientação a objetos, sendo que, dependendo do projeto, um padrão pode ser mais adequado que outro. Partindo desse pressuposto, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Convenience Patterns é um padrão que se baseia na redução do número de parâmetros de um método, fazendo com que os métodos sejam especializados. ( ) Decorator empacota estados de objetos dinamicamente, e com isso fornece alternativas flexíveis para estender funcionalidades. ( ) Decoupling é um padrão que define a construção de um sistema em partes individuais, para que possam ser construídas ou alteradas independentemente. ( ) Facet permite a inclusão de novas interfaces para as classes existentes do projeto, sem alterá-las. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) F - V - V - F. b) V - V - F - V. c) F - V - V - V. d) V - F - V - V. 9. As métricas de software servem para medir recursos humanos, tempo de desenvolvimento, cronogramas, erros, falhas, tamanho do projeto em termos de prazo e custo. Para a orientação a objetos existem várias métricas utilizáveis, sendo que algumas permitem comparar planos de medições de diferentes projetos, o que pode desencadear recomendações para projetos futuros. Associe os itens, utilizando o código a seguir: I- Contagem de métodos. II- WMC ? Métodos ponderados por classe. III- Resposta de uma classe. IV- Profundidade da árvore de herança. V- Número de filhos. ( ) Mede-se a quantidade de passos da classe nó até a raiz da árvore, medida pelo número de classes ancestrais. ( ) Contam-se os métodos para somar-se suas complexidades ciclomáticas, os quais são indicadores de quanto tempo e esforço são necessários para desenvolver ou manter uma classe. ( ) Indica-se a influência da classe no projeto como um todo, sendo que quanto mais classes filhas, maior a reutilização do código-fonte. ( ) Analisa-se o número de métodos distintos chamados em resposta a chamadas de outras classes, combinando a complexidade da comunicação realizada. ( ) Realiza-se a contagem dos métodos das classes de toda a aplicação, em que as classes com maior número de métodos podem ser trabalhadas para torná-las mais reutilizáveis. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) IV - II - V - III - I. b) I - II - III - IV - V. c) I - II - III - V - IV. d) II - III - I - IV - V. 10. Uma métrica de software pode ser descrita como qualquer tipo de medição que se relaciona a um sistema de software, isto é, a seu processo ou documentação, para melhorar os prazos, os custos e a sua qualidade. Métrica de software possui como finalidade a especificação dos meios de coleta de dados para avaliação e desempenho para o desenvolvimento de um software. Neste sentido, os dados coletados referem-se a resultados quantitativos, apresentando indicadores do desempenho, produtividade, custo ou prazo. Neste contexto, a medição deveria ser aplicada em todas as fases de um projeto de software, porém isso não é tão comum. Partindo desse pressuposto, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Um dos motivos para utilizar uma métrica de software é indicar a qualidade de um produto. ( ) Um dos motivos para utilizar uma métrica de software é justificar os pedidos de novas ferramentas ou treinamento adicional para a equipe de desenvolvimento. ( ) Um dos motivos para a utilização de várias métricas de software é permitir a análise da métrica mais eficiente, para seleção desta para utilização em todos os projetos da organização. ( ) Um dos motivos para utilização de métricas de software é avaliar os benefícios de novos métodos e ferramentas da Engenharia de Software para melhorar produtividade e qualidade. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - V. b) F - V - V - V. c) F - V - V - F. d) V - F - F - F.