SóProvas



Questões de Engenharia de Software

  1. Questões de Processos de Software
    1. Questões de RUP (Rational Unified Process) - Processo Unificado Rational
    2. Questões de Modelo em cascata
    3. Questões de Outros modelos de Processo de Software
  2. Questões de Processos de Software - Desenvolvimento Ágil
    1. Questões de Scrum
    2. Questões de XP (eXtreme Programming)
  3. Questões de Engenharia de Requisitos
  4. Questões de UML
    1. Questões de Diagrama de Casos de Uso
    2. Questões de Diagrama de Sequência
    3. Questões de Diagrama de Comunicação
    4. Questões de Diagrama de Estados
    5. Questões de Diagrama de Atividades
    6. Questões de Diagrama de Classes
    7. Questões de Diagrama de Objetos
    8. Questões de Diagrama de Componentes
    9. Questões de Diagrama de Instalação ou diagrama de Implantação
    10. Questões de Diagrama de Colaboração
    11. Questões de Diagrama de Implementação
  5. Questões de Análise Essencial
  6. Questões de Análise Estruturada
    1. Questões de DFD (Diagrama de Fluxo de Dados)
  7. Questões de Acoplamento e Coesão
  8. Questões de Conceitos Básicos em Engenharia de Software
  9. Questões de Desenvolvimento de Software
  10. Questões de Engenharia da Informação
  11. Questões de Engenharia de Software Baseada em Componentes (ESBC)
  12. Questões de Ferramentas CASE
  13. Questões de Ferramentas de Desenvolvimento de Software
  14. Questões de Frameworks
  15. Questões de Geoprocessamento em Engenharia de Software
  16. Questões de Gerência de Configuração
  17. Questões de Gestão de Projetos em Engenharia de Software
  18. Questões de Inteligencia Artificial
  19. Questões de Manutenção de Software
  20. Questões de Metodologia de desenvolvimento de software
  21. Questões de Métricas de Software
    1. Questões de Análise de Pontos de Função
  22. Questões de Modelos de Sistemas de Informação
  23. Questões de Orientação a Objetos
  24. Questões de Portal Web
  25. Questões de Prototipação
  26. Questões de Qualidade de Software
  27. Questões de Refatoração
  28. Questões de Software livre
  29. Questões de Teste de Software
  30. Questões de Web 2.0

ID
2284
Banca
NCE-UFRJ
Órgão
TRE-RJ
Ano
2001
Provas
Disciplina
Engenharia de Software
Assuntos

Considere as seguintes afirmativas sobre DFDs nivelados:
 
I - O nível mais alto deve possuir somente um processo;
II - Os fluxos de dados que entram e saem de um processo devem corresponder aos fluxos de dados que entram e saem do diagrama que representa a explosão do processo;
III - Todo processo de um DFD deve ser explodido em outro DFD ou ser descrito numa mini-especificação mas não ambos.

São verdadeiras somente as afirmativas:

Alternativas
Comentários
  • Nivelamento do DFD

    O nivelamento do DFD utiliza operações de "explosão" e "fusão", para sucessivamente dividir ou agrupar os processos mais detalhados ou mais genéricos, melhorando a compreensão e legibilidade do modelo, resultando em um modelo funcional hierarquizado.

    Primeira atividade

    Construção do DFD Nível 0. Nivelar para cima o DFD preliminar agrupando processos relacionados em processos que representem, cada um, uma bolha no diagrama de nível imediatamente superior.

    ·         Agrupar processos que envolvam respostas muito próximas (relacionadas). Isso normalmente indica processos que lidam com dados estreitamente relacionados.

    ·         Buscar oportunidades de ocultar depósitos de dados que apareçam em níveis inferiores.


    Segunda atividade

    Nivelar para baixo processos complexos cuja especificação não seja feita em cerca de uma página.

    ·         Identificar subfunções que possam ser levadas a efeito por uma bolha de nível mais baixo.

    ·         Analisar fluxos de entrada e saída e buscar, pelas características destes, orientação quanto a um possível nivelamento para baixo.

     

    Todos os processos de um DFD ou estão descritos em um diagrama de nível inferior ou tem uma especificação (primitivo funcional).

    Atualmente o enfoque é para que haja apenas uma miniespecificação. Uma miniespecificação vai tratar apenas das linhas genéricas do processo enfatizando os aspectos essenciais e aqueles que se referem às regras do negócio. De tal maneira que se não houver esta especificação, um programador não fará satisfatoriamente o programa. Tal especificação é também chamada de PSPEC, ou especificação de processo.


ID
2293
Banca
NCE-UFRJ
Órgão
TRE-RJ
Ano
2001
Provas
Disciplina
Engenharia de Software
Assuntos

Considere as seguintes assertivas sobre modelos teóricos de processo de desenvolvimento de software:

I - O modelo em cascata especifica que a definição do comportamento externo do sistema deve preceder o projeto de sua arquitetura;
II - O modelo incremental requer que na primeira fase seja feito primeiro o levantamento de todos os requisitos do sistema;
III - O modelo de prototipação de requisitos consiste na criação de implementações parciais do sistema com o objetivo de conhecer os requisitos do sistema.

Estão corretas somente:

Alternativas
Comentários
  • A questão pode gerar um pouco de polêmica no item II, onde afirma que TODOS os requisitos devem ser elicitados logo no início do processo. Sendo que Sommerville afirma que o modelo incremental tem a vantagem de postergar o detalhamento de alguns requisitos para os próximos incrementos. Afirmando ser esta uma das características principais dos modelos evolucionários.
    Porém, o que pode ser adiado é o DETALHAMENTO de alguns requisitos e não o levantamento de requistos. E por isso o ítem II está correto.
  • Discordo completamente. A questão não é polêmica, ela está realmente ERRADA.
    Uma das grandes vantagens do modelo incremental é possibilitar que NOVOS requisitos sejam levantados a cada nova iteração, por isso, este modelo não REQUER que primeiro todos requisitos sejam levantados.
  • Eu entendo da seguinte forma:
    O modelo incremental combina elementos do modelo em cascata aplicado de maneira iterativa.
    A cada novo incremento liberado para o cliente, uma nova funcionalidade é agregada. Diferentemente do modelo evolucionário, em que novos incrementos têm melhorias (evoluções) nas funcionalidades já implementadas.
    O início de desenvolvimento do incremento-(N+1) não está condicionando à entrega do incremento-N. Os diversos incrementos podem ser desenvolvidos em paralelo. (Pressman, 6a.Ed. pág.40)
    Deste modo, podemos inferir que todos os requisistos do sistema já estejam levantados, pois de outro modo, como poderia iniciar o desenvolvimento do incremento subsequente antes do feedback do usuário relativo ao incremento anterior, se não tenho os requisitos já levantados?

  • Questão totalmente estranha! Os requisitos não são detalhados todos na primeira iteração! Se assim fosse, seria o modelo cascata! A grande vantagem do modelo incremental é fazer todo o processo de desenvolvimento a cada ciclo!


ID
2320
Banca
NCE-UFRJ
Órgão
TRE-RJ
Ano
2001
Provas
Disciplina
Engenharia de Software
Assuntos

Generalização / Especialização é um tipo de relacionamento possível de ser aplicado ao(s) seguinte(s) elemento(s) de modelo na UML:

Alternativas
Comentários
  • Pode ser aplicado a casos de uso, que também recebem includes, como se fosse uma chamada à um método ou função, e extends, que seria um caso opcional, sob alguma situação especial.

    Os atores também podem ser especializados, porém não há include nem extend para atores.

    As classes também podem ser especializadas.
  • A pegadinha da questão era apenas Diagramas x Elementos da UML.
  • Relacionamentos entre casos de uso:

    1) Include: Um relacionamento include de um caso de uso A para B indica que B é essencial para o comportamento de A.

    2) Extend: Ponto de extensão em um caso de uso é uma indicação de que outros casos de uso poderão ser adicionados a ele.

    3) Generalização ou Especialização: Um relacionamento entre um caso de uso genérico para um mais específico, que herda todas as características de seu pai.

  • Vídeo repetido ....igual posterior .:(

  • Resposta A:  Casos de uso, classes e atores;

  • Generezalicao agrupa itens com atributos comuns. Esse tipo de relacao é associação entre casos de uso com caracteristicas parecidas com poucas diferencas entre si. Quando isso ocorre, define-se 1 caso de uso geral que descrevev as caracteristicas comuns a todos casos de uso e relaciona eles com outros casos de uso envolvidos. É parecido com conceito de heranca em OOP


ID
2323
Banca
NCE-UFRJ
Órgão
TRE-RJ
Ano
2001
Provas
Disciplina
Engenharia de Software
Assuntos

O conceito de polimorfismo em Orientação a Objetos implica:

Alternativas
Comentários
  • Suponha a seguinte classe escrita em Java:

    public abstract class OperacaoMatematica {
    public abstract double calcular(double x, double y);
    }

    Esta é uma classe abstrata que representa qualquer operação matemática. Podemos imaginar diversas operações que se encaixam na sua interface, como soma, subtração, multiplicação ou divisão, entre outras. Note que, mesmo que a natureza do cálculo mude, a semântica do método calcular não muda, ou seja, ele sempre calculará o resultado da operação matemática que está sendo trabalhada.

    Definamos então, duas subclasses, Soma e Subtracao, que implementam a classe OperacaoMatematica:

    public class Soma extends OperacaoMatematica {
    public double calcular(double x, double y) {
    return x+y;
    }
    }

    public class Subtracao extends OperacaoMatematica {
    public double calcular(double x, double y) {
    return x-y;
    }
    }

    O seguinte trecho de código demonstra o uso do polimorfismo:

    public class Contas {
    public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y) {
    system.out.println("O resultado é: " + operacao.calcular(x, y));
    }

    public static void main(String args[]) {
    //Primeiro calculamos uma soma
    Contas.mostrarCalculo(new Soma(), 5, 5); //Imprime o resultado é: 10
    Contas.mostrarCalculo(new Subtracao(), 5, 5); //Imprime o resultado é: 0
    }
    }

    Note que, embora o método calcular tenha sido chamado duas vezes no interior de mostrarCalculo, o comportamento apresentado variou de acordo com a classe ao qual ele representava no momento. É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo embora esta definição deixe lacunas conceituais.
  • Essa aula é do Microsoft Office 2010, não corresponde ao título do vídeo "Libre Office Writer".

  • Vídeo repetido! :(

  • Vídeo repetido! :(

  • Olá administradores do QC, o vídeo em questão não corresponde ao vídeo disponibilizado.
    Grato pela atenção!

  • Não é a aula do Writer.

  •  b) trabalhar com instâncias de classes diferentes, de forma unificada, via uma abstração;

  • b)

    Ha uma extensao da herança da hierarquia de classes na qual mais métodos com distintas interfaces hierárquicas sao chamados primeiro em runtime; é neste momento que um dos metodos sera usado consoante o objeto.

  • Polimorfismo permite a manipulação de instâncias de classes que herdam de uma mesma classe ancestral de forma unificada: Podemos escrever métodos que recebam instancias de uma classe C, e os mesmos métodos serão capazes de processar instancias de qualquer classe que herde a classe C, já que qualquer classe que herde C é-um-tipo-de-C. Questão retirado do Livro: Introdução à programação orientada a objetos usando java 2ª edição


ID
2335
Banca
NCE-UFRJ
Órgão
TRE-RJ
Ano
2001
Provas
Disciplina
Engenharia de Software
Assuntos

Ferramentas CASE não servem para:

Alternativas
Comentários
  •  Engenheiros de Software, aceitem:

    Vocês sempre precisarão de programadores para botar o software para rodar.

  • ferramentas CASE  são ferramentas que auxiliam o engenheiro de software em cada atividade associada ao desenvolvimento do mesmo. As ferramentas CASE  reduzem o esforço necessário para produzir artefatos, alcançar metas e aumentar a qualidade do software.