Prévia do material em texto
Curso PRÁTICAS DE ENGENHARIA DE SOFTWARE Teste ATIVIDADE 2 (A2) Resultado da tentativa 7 em 10 pontos • Pergunta 1 1 em 1 pontos A Programação Orientada a Objetos (POO) possui uma estrutura com pelo menos três elementos-base, quatro para alguns autores. Em programação orientada a objetos, um desses elementos-base é conhecido como técnica de programação, que mantém ocultos detalhes internos do funcionamento dos métodos (funções) de uma classe. Assinale a alternativa correta sobre o elemento-base descrito no texto. Resposta Selecionada: Encapsulamento. Resposta Correta: Encapsulamento. Feedback da resposta: Resposta correta. A alternativa está correta, porque é a técnica chamada de encapsulamento que oculta detalhes internos do funcionamento dos métodos. O encapsulamento é um dos elementos básicos da orientação a objetos, juntamente com Herança, Polimorfismo e Abstração. • Pergunta 2 0 em 1 pontos A Programação Orientada a Objetos (POO) possui uma estrutura com pelo menos três elementos-base. Podemos citar os elementos como sendo a herança, o polimorfismo e o encapsulamento. São elementos essenciais e cujo conceito todo programador deve conhecer. Considerando o exposto acima, assinale a alternativa que define o conceito de herança. Resposta Selecionada: Mecanismo que permite o reaproveitamento de comportamentos e dados de outras classes do sistema. Resposta Correta: Princípio que permite que classes compartilhem atributos e métodos, através de uma hierarquia. Feedback da resposta: Sua resposta está incorreta: A alternativa está incorreta, porque é com atributos ou métodos com escopo de visibilidade privado que é acessada somente no próprio objeto. Um mecanismo que permite o reaproveitamento de comportamentos e dados de outras classes do sistema refere-se à definição de escopo de visibilidade público. Mecanismo que permite que métodos, com o mesmo nome, possam ser reimplementados dentro da própria classe refere-se ao conceito de sobrescrita de método. A representação do quanto uma classe depende de outra classe do sistema descreve a dependência entre classes. • Pergunta 3 1 em 1 pontos A UML (Unified Modeling Language) é uma linguagem de modelagem orientada a objetos. Os três relacionamentos mais importantes são as dependências, as generalizações e as associações. Um analista iniciou um projeto usando a UML e modelou a empresa e seus departamentos, numa forma simples de agregação todo- parte, conforme o ilustrado: Fonte: Elaborada pelo autor. Considerando o exposto acima, podemos afirmar que a agregação é um tipo especial de: Resposta Selecionada: Associação. Resposta Correta: Associação. Feedback da resposta: Resposta correta: A alternativa está correta, pois podemos verificar na figura a existência de agregação, que é um tipo especial de associação, uma espécie de relacionamento entre classes. Com essa associação, tenta-se mostrar que as informações do objeto precisam ser complementadas com informações que estão em outros objetos. • Pergunta 4 1 em 1 pontos A UML é uma linguagem de modelagem unificada e que possui diversos diagramas, cada um com uma finalidade diferente para uma modelagem mais adequada de um software. É preciso entender o funcionamento de cada um para que os diagramas possam ser construídos de forma adequada. Entre os diagramas da UML, um deles destaca-se pelas seguintes características: Indica as comunicações dinâmicas dos objetos durante a execução de uma determinada tarefa. Além disso, mostra o momento em que as mensagens são trocadas para executar essa tarefa. Pode-se utilizar o diagrama para mostrar as interações em um caso de uso ou em um cenário de um sistema de Software. Considerando o exposto acima, assinale a alternativa que contenha o diagrama UML que apresenta as características apresentadas. Resposta Selecionada: Diagrama de Sequência. Resposta Correta: Diagrama de Sequência. Feedback da resposta: Resposta correta. A alternativa está correta, pois o Diagrama de Sequência é o diagrama responsável pela comunicação dinâmica dos objetos e na execução da tarefa mostra a ordem temporal das interações. É muito utilizado para representar as interações entre os objetos e é construído a partir do Diagrama de Casos de Uso. • Pergunta 5 1 em 1 pontos O Diagrama de Classes faz parte da linguagem de modelagem UML e está entre os mais utilizados e úteis, pois mapeiam de forma clara determinadas estruturas. Além disso, define a forma de relação entre as classes de um projeto. Sobre seu uso prático, analise o Diagrama de Classes a seguir e assinale a alternativa correta. Fonte: Elaborado pelo autor. Resposta Selecionada: Existe uma relação de composição entre a classe Pedido e a classe ItemPedido. Resposta Correta: Existe uma relação de composição entre a classe Pedido e a classe ItemPedido. Feedback da resposta: Resposta correta. A alternativa está correta, porque o relacionamento entre Produto e ItemPedido é de composição, uma dependência forte, não há produtos em pedido sem item. Assim, o ItemPedido está contido na classe Pedido. Para a inclusão de um pedido em uma nota fiscal, por exemplo, é necessário que nesse pedido haja itens e, para isso, é importante a classe ItemPedido. • Pergunta 6 0 em 1 pontos A UML (Unified Modeling Language) possui diversos tipos de diagramas que visam definir pontos de um projeto de software. Cada diagrama possui características específicas e que devem ser compreendidas. Podemos citar o diagrama utilizado para representar a interação entre os objetos por meio dos seus métodos e sua ordem de execução. Considerando o exposto acima, podemos afirmar corretamente que esse diagrama é chamado de: Resposta Selecionada: Diagrama de Objetos. Resposta Correta: Diagrama de Sequência. Feedback da resposta: Sua resposta está incorreta: A alternativa está incorreta, porque Diagrama de Classes não mostra nem tempo nem ordem. O Diagrama de Objetos foca a instância da classe. O Diagrama de Atividades mostra sequência de tarefas, visão de processo. Já o Diagrama de Máquina de Estados foca os eventos e os estados de objetos. • Pergunta 7 0 em 1 pontos Quando falamos de problemas em projetos de software, temos que a maioria deles são encontrados em sistemas que trabalham com o paradigma orientado a objetos, devido a erros na construção do projeto. Por isso, é importante reconhecer os conceitos dos diagramas presentes na UML para que, quando chegar à codificação, não sejam encontrados problemas. Considerando o exposto acima, analise as afirmativas abaixo: I - Diagrama de classes modela classes, incluindo seus atributos, operações, relações e associações com outras classes. II - Diagrama de classes fornece uma visão estática ou estrutural de um sistema. III - Diagrama de sequência indica as comunicações dinâmicas entre objetos durante a execução de uma tarefa, mas não mostra a ordem temporal em que as mensagens são enviadas entre os objetos para executar aquela tarefa. IV - Um diagrama de implantação mostra a configuração dos nós de processamento em tempo de execução e os componentes que vivem neles. É correto o que se afirma em: Resposta Selecionada: I e II, apenas. Resposta Correta: I, III e IV, apenas. Feedback da resposta: Sua resposta está incorreta: A alternativa está incorreta, pois somente a afirmativa II está incorreta, pois são os diagramas estruturais que priorizam a descrição estática. O diagrama de classes de projeto é um modelo orientado a objetos em camadas, e esse modelo é orientado a objetos do modelo BCE ( Boundary- Fronteira, Control-Controle e Entity-Entidade) ampliando-se a visão do modelo conceitual para o modelo de projeto. • Pergunta 8 1 em 1 pontos Entre os conceitosfundamentais existentes na Programação Orientada a Objetos (POO), temos a existência de elementos básicos, como o polimorfismo, a herança, o encapsulamento e a abstração. Um desses elementos da Orientação a Objetos é o polimorfismo. Considerando o exposto acima e relacionando ao conceito de polimorfismo, assinale a alternativa correta. Resposta Selecionada: Permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas. Resposta Correta: Permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas. Feedback da resposta: Resposta correta: A alternativa está correta, pois no polimorfismo a classe pai pode ser uma classe abstrata, que por herança nos filhos implementa de modo concreto diferentes comportamentos associados à classe pai (abstrata). É uma variação fenotípica separada em classes bem-definidas. • Pergunta 9 1 em 1 pontos No diagrama de classes UML (Unified Modeling Language), ou linguagem de modelagem unificada, existem formas diferentes entre si de relacionar elementos como classes e objetos. Podemos citar formas de relacionamento como composição, herança e outros. Considerando o exposto acima, a composição se difere da agregação porque: Resposta Selecionada: na agregação, o ciclo de vida dos objetos associados não depende do contêiner. Resposta Correta: na agregação, o ciclo de vida dos objetos associados não depende do contêiner. Feedback da resposta: Resposta correta: A alternativa está correta, porque a agregação faz jus ao próprio nome, ou seja, ela agrega, soma, adiciona uma característica numa relação independente, na composição há dependência e é obrigatória. A agregação é uma das principais características da programação orientada a objetos. • Pergunta 10 1 em 1 pontos Um diagrama de classes possui diversos componentes que devem ser bem analisados, como classes, atributos, relacionamentos, associações e outros. Todos esses elementos são indicados através de símbolos específicos, que, de vez em quando, confundem diversos programadores. Dessa forma, analise a imagem com os símbolos a seguir: Fonte: Elaborado pelo autor. Considerando o exposto acima, a respeito do diagrama de classes, verifica-se que os símbolos representam, respectivamente: Resposta Selecionada: herança, agregação e composição. Resposta Correta: herança, agregação e composição. Feedback da resposta: Resposta correta: A alternativa está incorreta, pois temos como representação gráfica da generalização a seta fechada sem preenchimento. Já para a agregação, a representação gráfica é o losango fechado sem preenchimento. Por fim, temos que a representação gráfica da composição é o losango fechado com preenchimento.