1. Na elaboração de um sistema de software, o Diagrama de Classes da UML pode ser utilizado para modelar a estrutura e os relacionamentos das classes do sistema. Além disso, a técnica FURPS+ é comumente utilizada para especificar os requisitos de qualidade do software. Com base nesse contexto, assinale a alternativa correta:
Resposta Correta: O Diagrama de Classes da UML é utilizado para modelar a estrutura e os relacionamentos das classes do sistema, enquanto a técnica FURPS+ é utilizada para especificar os requisitos de qualidade do software, como Funcionalidade, Usabilidade, Confiabilidade, Desempenho e Suporte.
2. Em casos de uso, criamos cenários que descrevem detalhadamente o funcionamento do caso de uso em questão. Para isso, dividimos em pré-condições, pós-condições, fluxo principal e fluxo alternativo. Nesse contexto, qual das seguintes afirmações é verdadeira sobre as pré-condições?
Resposta Correta: As pré-condições definem restrições que devem ser atendidas antes de iniciar a execução do caso de uso.
3. Em toda linguagem de programação orientada a objetos temos
o uso de classes, as quais possuem definição de nome, atributos e métodos e
estes estão relacionados ao conceito de objetos. Considere as seguintes
afirmações sobre classes:
1. Diferente dos objetos as classes
representam de forma genérica um conjunto de objetos.
II. As classes são
os objetos do mundo real na programação, por isso uma classe não é uma
representação genérica sobre algo e sim uma coisa material específica.
III. Uma instância de uma classe é semelhante à nossa definição de
objetos, ou seja, uma coisa específica e não genérica.
IV. As classes
possuem, além dos atributos e métodos os construtores, que são métodos
especiais que executam no momento da criação de uma instância. No caso do c#,
quando usamos o comando "new".
Assinale a alternativa que contém somente
as afirmações corretas:
Resposta Correta: I, III e IV
4. Quais são os elementos básicos de um diagrama de classes?
Resposta Correta: Classes, atributos, métodos e relações
5. Segundo o dicionário Dicio (2022) objeto é "Coisa material que pode ser percebida pelos sentidos (visão, audição, tato, olfato e paladar): uma bola é um objeto, um lápis é um objeto, um celular é um objeto.". Partindo desta definição percebemos que praticamente qualquer coisa pode ser um objeto, desde algo que conseguimos ver, apalpar e até mesmo sentir seu cheiro. Sobre a definição de objeto em Programação Orientada a Objetos, é correto afirmar:
Resposta Correta: Os objetos não representam uma categoria de objetos e sim coisas específicas, por exemplo, um cachorro Shi-Tsu, malhado, fêmea de nome Pipoca é um exemplo de objeto.
6. Qual é o objetivo do padrão GoF Strategy?
Resposta Correta: Encapsular comportamentos intercambiáveis e usar a delegação para decidir qual deles será usado.
7. No contexto de abstração e implementação de uma classe em C#, considere o seguinte código:
class ContaBancaria {
double valor = 0
public void depositar(double deposito) {
if(deposito > 0) {
valor = valor + deposito;
}
}
public void sacar (double saque) {
valor = valor - saque;
}
public double saldo(){
return valor;
}
}
É correto afirmar que:
Resposta Correta: Conta bancária é uma classe que possuí um único atributo chamado valor e que tem como valor inicial zero, e possuí 3 métodos públicos
8. Existem muitas formas de se coletar os requisitos de um sistema que passam por entrevistas, análise dos stakeholderse, dentro outras. Para organizarmos estas informações os requisitos precisam ser classificados e o modelo da FURPS+ propõe algumas divisões. Assinale a alternativa que descreve quais são as divisões do modelo FURPS+.
Resposta Correta: Funcionalidade, Usabilidade, Confiabilidade, Desempenho e Suportabilidade.
9. Qual é o principal objetivo da modelagem conceitual de acordo com FOLWER (2007)?
Resposta Correta: Criar um vocabulário para o domínio do problema a ser solucionado.
10. Na área de desenvolvimento de software, a documentação de levantamento de requisitos é um processo crucial para garantir que o produto esteja alinhado com as necessidades e expectativas do cliente. Dentre as diversas ferramentas utilizadas nesse processo, destaca-se o diagrama de casos de uso. Sobre a importância do diagrama de casos de uso na documentação de levantamento de requisitos, assinale a alternativa correta:
Resposta Correta: O diagrama de casos de uso é importante para garantir que o produto entregue esteja alinhado com as necessidades e expectativas do cliente, permitindo uma visualização clara das funcionalidades solicitadas.
11. Considerando o tema Modelagem Conceitual, analise as
afirmativas abaixo:
1. A modelagem conceitual é a fase do processo de
desenvolvimento de software que define as especificações do sistema, como os
requisitos funcionais e não funcionais.
II. A modelagem conceitual tem
como objetivo criar um vocabulário comum entre os desenvolvedores e os
usuários do sistema, a fim de facilitar a comunicação e o entendimento das
necessidades do software.
III. O diagrama de classes é uma das
principais técnicas de modelagem conceitual que representa as entidades do
domínio do problema, seus atributos e relacionamentos.
IV. A modelagem
conceitual é uma etapa opcional do processo de desenvolvimento de software que
pode ser ignorada, caso não haja necessidade de especificação detalhada do
sistema.
V. A modelagem conceitual é uma técnica que só é utilizada em
projetos de software grandes e complexos, sendo desnecessária em projetos
menores.
Assinale a alternativa que contém as afirmativas CORRETAS:
Resposta Correta: I, II e III
12. Analise o código abaixo e assinale a alternativa correta sobre o uso de construtores em C#:
class Pessoa {
public string Nome { get; set; }
public int Idade { get; set; }
public Pessoa() {
Nome = "";
Idade = 0;
}
public Pessoa (string nome, int idade) {
Nome = nome;
Idade = idade;
}
}
Resposta Correta: A classe "Pessoa" pode ser instanciada sem informar os valores para "nome" e "Idade"
13. Padrões Grasp são um conjunto de diretrizes para atribuir responsabilidade a classes e objetos em projeto orientado a objetos. Grasp é a sigla para General Responsibility Assignment Software Patterns (ou Principles). Os diferentes padrões e princípios utilizados no Grasp são: controller (controlador), creator (criador), indirection (indireção), information expert (especialista na informação), alta coesão, baixo acoplamento, polimorfismo, pure fabrication (fabricação/invenção pura) e protected variations (variações protegidas). Esses padrões respondem a alguns problemas comuns que ocorrem em quase todos os projetos de desenvolvimento de software. Eles não são novas formas de trabalho, mas sim uma forma de documentar e padronizar os princípios de programação já conhecidos e praticados. Eles também ajudam a criar uma linguagem comum entre os desenvolvedores e facilitam o aprendizado dos sistemas orientados a objetos. Qual é o princípio Grasp que atribui a responsabilidade de criar objetos a uma classe que contém ou usa esses objetos?
Resposta Correta: Creator
14. A modelagem conceitual é uma etapa fundamental no processo de desenvolvimento de software. Com base nisso, considere a seguinte situação: Uma empresa de consultoria está desenvolvendo um sistema para controle de estoque de uma loja de materiais de construção. A equipe de desenvolvimento decidiu utilizar a modelagem conceitual para definir os requisitos do sistema. Durante o processo de modelagem, foram identificadas as seguintes entidades: Produto, Fornecedor, Cliente, Venda e Estoque. Além disso, foram estabelecidos os seguintes relacionamentos entre as entidades: um Produto é fornecido por um Fornecedor, um Cliente realiza uma ou mais Vendas, e um Produto pode estar em vários locais de Estoque. Com base nessa situação, qual é o principal objetivo da modelagem conceitual?
Resposta Correta: Identificar as entidades e relacionamentos do sistema de forma clara e objetiva.
15. O modelo FURPS+ divide os requisitos em 5 grupos dos quais um deles é a Usabilidade. Quais são os requisitos incluídos na categoria de Usabilidade?
Resposta Correta: Facilidade de uso, acessibilidade, aprendizado e eficiência
16. Qual é o propósito dos padrões de criação (creational patterns), segundo o catálogo dos padrões GoF
Resposta Correta: São padrões que permitem alterar o comportamento de um objeto em tempo de execução dependendo do seu estado interno.
17. Instanciação de objetos em C# ou em qualquer outra linguagem orientada a objetos é o processo de criação de uma instância de uma classe específica, ou seja, é reservado um espaço de memória no qual você poderá atribuir valores aos atributos da classe. É possível ter múltiplas instâncias de uma classe em um mesmo programa, cada um com valores diferentes para seus atributos. Neste contexto, analise o código a seguir e assinale a alternativa que contém a saída da execução:
class Veiculo {
public string Marca { get; set; }
public string Modelo { get; set; }
public int Ano { get; set; }
public string Placa { get; set; }
public Veiculo() {
}
Marca = "";
Modelo = "";
Ano = 0;
Placa = "";
public Veiculo (string marca, string modelo, int ano, string placa) {
Marca = marca;
Modelo = modelo;
Ano = ano;
Placa = placa;
}
}
class Program {
static void Main(string[] args) {
Veiculo carro1 = new Veiculo();
Veiculo carro2 = new Veiculo ("Ford", "Fiesta", 2022, "ABC-1234");
Console.WriteLine("Carro 1: " + carro1. Marca + " " + carro1.Modelo + " + carro1.Ano
+"" + carro1.Placa);
Console.WriteLine("Carro 2: " + carro2. Marca + " " + carro2.Modelo + " " + carro2.Ano
+""+ carro2.Placa);
Console.ReadKey();
}
}
Resposta Correta: Carro 1: 0
Carro 2: Ford Fiesta 2022 ABC-1234