Prévia do material em texto
Projeto de Software I - Exercícios e Prova
1. Qual destes conceitos se refere ao diagrama de atividades?
A. Estes diagramas utilizam como primitivas atores, casos de uso e relacionamentos.
B. É um diagrama de estado no qual considera-se que todos, ou a grande maioria dos estados, representam as execuções de atividades.
“A notação UML para diagramas de atividades utiliza as mesmas primitivas dos diagramas de estados e inclui algumas notações adicionais.”
C. Este é um dos principais diagramas da UML e dos projetos de software, pois eles descrevem o esqueleto do sistema sendo projetado.
D. Considerado uma evolução do diagrama de sequências, este descreve a colaboração que é realizada entre os objetos através da comunicação.
E. É um grafo dirigido cujos nodos representam estados e cujos arcos representam transições entre estados.
2. O diagrama de estados é um grafo dirigido cujos nodos representam estados e cujos arcos representam transições entre estados. Qual das imagens abaixo mostram um diagrama de estados?
A.
B.
C.
“Este é um diagrama de estado.”
D.
E.
3. O uso de diagramas apresenta uma grande quantidade de vantagens para um projeto de software. Das vantagens apresentadas abaixo, qual possui uma relação direta com questões de visão arquitetural do software, permitindo o entendimento de módulos e partes do sistema?
A. Visão mais abrangente do sistema.
B. Facilita o levantamento de informações.
C. Facilita o entendimento pelos desenvolvedores.
D. Permite esclarecer as atribuições de cada elemento do sistema.
“Através da demonstração visual do projeto através de diagramas, é possível obter informações de elementos do sistema mais rapidamente.”
E. Permite o desenvolvimento de software dentro do prazo estipulado.
4. Qual é a primeira atividade que deve ser realizada durante a fase de projeto e que representa como o sistema será composto, considerando suas diversas partes?
A. Representação da arquitetura do sistema.
“A representação da arquitetura do sistema é uma das primeiras etapas e define/representa a arquitetura do sistema ou do produto.”
B. Modelagem de interfaces.
C. Projeto de componentes.
D. Criação do modelo de projeto.
E. Implementação e programação do sistema.
5. Podemos definir a fase de projeto como "a transformação de requisitos de software em uma descrição". Considerando isso, qual das alternativas melhor descreve a entrada e a saída de uma fase de projeto?
A. Entrada: especificação de requisitos. Saída: modelos e artefatos que documentam as principais decisões tomadas.
“Podemos dizer, então, que a fase de projeto de software transforma as especificações de requisitos em modelos e artefatos que documentam as principais decisões tomadas.”
B. Entrada: modelos e artefatos que documentam as principais decisões tomadas. Saída: especificação de requisitos.
C. Entrada: dados do cliente. Saída: requisitos de software.
D. Entrada: requisitos de software. Saída: software pronto para ser entregue.
E. A entrada e a saída da fase de projeto de um sistema são módulos de sistemas que são criados de forma iterativa.
6. O que é um DFD?
A. É um diagrama de fluxo de dados, utilizado para mostrar as relações entre os dados, processos que transformam esses dados e o limite entre o que pertence ao sistema e o que está fora dele.
”O DFD é um diagrama que possui 4 elementos que permitem modelar o fluxo de dados de um sistema.”
B. É uma ferramenta utilizada para modelar as bases de dados.
C. Trata-se de um conceito definido na década de 70 para expressar a dificuldade no desenvolvimento de software.
D. O DFD é uma prática da Engenharia de Software para a criação de sistemas baseados em testes de software.
E. É uma listagem de dados que mostram como os dados do sistema são formados.
7. Analise o DFD extraído do livro "Engenharia de Software: Os Paradigmas Clássicos & Orientado a Objetos" página 337:
Agora, informe o que significa o elemento com o conteúdo "process_orders (processamento de pedidos)":
A. O elemento representa um dado de entrada.
B. O elemento representa um dado de saída.
C. O elemento representa um fluxo.
D. O elemento representa uma função.
“Uma função é representada por um círculo/retângulo e geralmente é uma operação que transforma os dados e produz algum tipo de saída.”
E. O elemento representa uma tela do sistema modelado.
8. Quais dos itens a seguir é uma limitação da análise estruturada quando comparada com outros métodos existentes?
A. A Análise estruturada utiliza modelos computacionais, diferente da Orientada a Objetos, que usa elementos do mundo real, chamados de objetos.
“A Análise estruturada, diferente da análise orientada a objetos, utiliza conceitos computacionais para representação e modelagem do sistema. Isso dificulta a modelagem já que o nível de abstração é baixo.”
B. A análise estruturada é baseada em estruturas de dados que dificultam a implementação do sistema.
C. Não é possível representar um sistema simples com a análise estruturada.
D. Não é possível realizar testes de software quando usamos a análise estruturada para modelar um sistema.
E. A análise estruturada não utiliza ferramentas da engenharia de software, dificultando sua utilização.
9. Qual dos itens a seguir é uma vantagem da análise estruturada quando comparada com outras abordagens?
A. A análise estruturada e o DFD permitem a estimativa de custo menor e de tempo maior para um projeto.
B. Com a análise estruturada, o projeto atinge uma qualidade maior.
C. Através do diagrama de fluxo de dados, é possível se ter uma ideia mais clara do sistema proposto.
“O diagrama de fluxo de dados, combinado com um dicionário de dados, fornece uma modelagem bastante próxima do que será o sistema a ser implementado. Em outras abordagens, a modelagem é criada de forma mais abstrata.”
D. Como a análise estruturada não se baseia em dados e processos, ela torna mais fácil a modelagem de um sistema.
E. A análise estruturada obtém vantagem, pois não inclui a ferramenta DFD.
10. Em um dicionário de dados, o que os símbolos { } significam?
A. Significam que é constituído por determinado elemento.
B. Enquadram componentes opcionais.
C. Enquadram comentários.
D. Eles enquadram componentes que se repetem zero ou mais vezes.
“Os símbolos { } enquadram componentes que se repetem zero ou mais vezes. Por exemplo, o valor "11111" pode ser representado por {1} no dicionário de dados.”
E. Separam alternativas.
11. Selecione a alternativa que melhor descreve os elementos em que se baseiam os métodos orientados a objetos:
A. São baseados no hardware, já que necessitam de uma análise de baixo nível para exploração dos sistemas computacionais.
B. São baseados em estruturas e procedimentos.
C. São baseados em abstrações, cujo objetivo é fazer um sistema parecer mais complexo que o necessário.
D. São baseados em elementos como variáveis e funções.
E. São baseados nos conceitos de objetos e atributos, totalidades e partes, classes e membros.
“Utilizamos na análise orientada a objetos elementos do mundo real. Isso facilita a criação de sistemas complexos e posteriormente a manutenção/extensão.”
12. Durante a análise orientada a objetos, qual preocupação um engenheiro de software deve ter para garantir que o produto criado apresente mais facilidade de criação e manutenção?
A. Em identificar quais serão os atores do sistema.
B. Em criar um diagrama de atividades.
C. Em identificar quais serão os casos de uso sistema.
D. Em conhecer a linguagem de programação, banco de dados e a arquitetura de hardware em que o sistema será implementado.
E. Em fazer uma modelagem de forma clara e bem organizada.
“O engenheiro de software deve sempre se preocupar se a modelagem é clara e consegue transmitir de forma adequada o que o sistema deverá fazer. “
13. Acompanhe a seguinte situação:
A loja "Compre X" precisa que um sistema seja criado para registrar os produtos comprados, vendas e controlar as comissões dos vendedores.
- Neste sistema, os estoquistas vão realizar todo o cadastro de novos produtos, inserindo todas as informaçõesnecessárias. Além disso, os produtos adquiridos da loja "Compre X" serão automaticamente inseridos no sistema pelo módulo X.
- Os vendedores irão inserir informações de venda, para automaticamente os produtos serem removidos do estoque.
- O gerente poderá realizar a análise das vendas, estoque e comissões dos vendedores.
- Já os administradores terão acesso a todas as operações dos outros usuários, além de poder inserir vendedores, gerentes e estoquistas.
Neste sistema, todos os usuários deverão realizar login.
Identifique quais são as possíveis classes para a situação descrita:
A. Carro, Motorista e Passageiro.
“Mesmo que estas possam ser classes de um sistema, no nosso exemplo não está de acordo.”
B. Loja, Produto, Vendedor, Venda e Estoque.
C. Inserir vendedores e calcular comissão.
D. Realizar venda, remover produto do estoque e vender.
E. Cor, preço e data de compra.
14. Selecione quais destas alternativas não corresponde ao uso do modelo de análise orientada a objetos.
A. Facilidade de criação de sistemas complexos.
B. Facilidade de extensão do sistema.
“Um sistema modelado com base na orientação a objetos é facilmente estendido.”
C. Maior facilidade de implementação do sistema pelos desenvolvedores.
D. Facilidade de modificação do sistema.
E. Facilidade de entendimento do sistema.
15. Qual o objetivo principal do diagrama de objetos?
A. O objetivo é mostrar os objetos que foram instanciados das classes.
”O diagrama de objetos é como se fosse o perfil do sistema em um certo momento de sua execução.”
B. O objetivo é mostrar as classes que foram criadas no sistema.
C. O objetivo é demonstrar o sistema em forma de estruturas de funções.
D. É o mesmo objetivo do diagrama de casos de uso e de atividades, que são muito similares.
E. O objetivo é a especificação do comportamento do software, do ponto de vista funcional, ou seja, das suas funcionalidades.
16. O acoplamento é uma medida que define o nível de interconfiabilidade entre os módulos de um programa. Existem cinco níveis de acoplamento. Qual nível caracteriza o comportamento quando vários módulos têm acesso de leitura e gravação a alguns dados globais?
A. Acoplamento comum.
“Acoplamento comum é quando vários módulos têm acesso de leitura e gravação a alguns dados globais.”
B. Acoplamento de conteúdo.
C. Controle de acoplamento.
D. Acoplamento de selo.
E. Acoplamento de dados.
17. A coesão é uma medida que define o grau de acoplamento dentro dos elementos de um módulo. Qual o tipo de coesão que não é planejada e que pode ser o resultado de quebrar o programa em módulos menores por motivos de modularização?
A. Coesão temporal.
B. Coesão processual.
C. Coesão coincidental.
“É coesão não planejada e aleatória, que pode ser o resultado de quebrar o programa em módulos menores por motivos de modularização. Como não é planejado, pode ser uma confusão para os programadores e geralmente não é aceito.”
D. Coesão lógica.
E. Coesão sequencial.
18. Quais destes itens é uma vantagem da modularização?
A. Facilidade em manter pequenos componentes.
“Pequenos componentes são mais fáceis de manter.”
B. Não é possível dividir o sistema com base nas funcionalidades.
C. A abstração desejada não é totalmente alcançada.
D. Impossibilidade de reutilização de software.
E. Execução sequencial apenas, tornando mais simples o código.
19. Um projeto de software pode ser dividido em três definições. Qual dos itens abaixo representa a definição onde se quebra o conceito de projeto estrutural de múltiplos componentes em uma visão menos abstraída de subsistemas e módulos que descreve sua interação uns com os outros?
A. Projeto estrutural.
B. Projeto detalhado.
C. Padrão de projeto.
D. Projeto de alto nível.
“O projeto de alto nível quebra o conceito de projeto estrutural de múltiplos componentes em uma visão menos abstraída de subsistemas e módulos que descreve sua interação uns com os outros. O projeto de alto nível concentra-se em como o sistema, juntamente com todos os seus componentes, pode ser implementado em forma de módulos. Reconhece a estrutura modular de cada subsistema e sua relação e interação entre si.”
E. Testes de projeto.
20. Na definição de arquitetura de software, temos três atividades de suporte que são realizadas. Qual delas é a atividade de explorar e gerenciar conhecimento essencial para projetar uma arquitetura de software?
A. Raciocínio de projetos e a tomada de decisão.
B. Documentação.
C. Gestão do conhecimento e comunicação.
“É a atividade de explorar e gerenciar conhecimento essencial para projetar uma arquitetura de software. Um arquiteto de software não funciona de forma isolada. Eles recebem insumos, requisitos funcionais e não funcionais e contextos de projeto, de várias partes interessadas.”
D. Separação de necessidades.
E. Orientado pela qualidade.
image2.jpeg
image3.jpeg
image4.wmf
image5.jpeg
image6.jpeg
image7.jpeg
image1.wmf
image8.jpeg