SóProvas



Questões de Manutenção de Software


ID
29089
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

São estratégias possíveis de serem adotadas por uma organização para evolução de seus sistemas legados as apresentadas a seguir, EXCETO:

Alternativas
Comentários
  • a)Descartar completamente o sistema. Sistema já não contribui efetivamente aos processos de negócio. Processos já não dependem dos sistemas legados

     

    b)Substituir o sistema por um novo. Fatores como o hardware não permitem que o sistema continue em operação.

     

    c)Continuar a manter o sistema. Sistema ainda é necessário.

     

    d)Reengenharia envolve um esforço adicional para torná-los mais fáceis de manter. O sistema pode ser reestruturado e redocumentado

     

    e)A engenharia reversa pode fazer parte do processo de reengenharia, mas não é o mesmo que a reengenharia. O objetivo da engenharia reversa é derivar o projeto ou a especificação de um sistema a partir de seu código-fonte; um novo sistema, com manutenção mais fácil


ID
114214
Banca
CESPE / CEBRASPE
Órgão
TRE-MT
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Existem várias maneiras de se depurar (debug) programas. Algumas delas envolvem conhecimento, prática e bom senso do programador. Acerca de pontos que são importantes para depurar programas, julgue os itens a seguir.

I É possível encontrar falhas nos programas por meio da reprodução do erro em testes.

II Quanto maior a entrada de dados nos testes, mais simples é encontrar o problema e mais fácil é encontrar a solução da falha.

III Em um programa modular, o processo de encontrar falhas requer uma menor variação de informações de entrada, de modo que o programador possa encontrar o módulo com erros.

IV A passagem de parâmetros para variáveis auxiliares evita o uso de break points.

V A análise estruturada é a melhor maneira de encontrar erros em programação orientada a objetos.

Estão certos apenas os itens

Alternativas
Comentários
  • Programação modular é um paradigma de programação no qual o desenvolvimento das rotinas de programação é feito através de módulos, que são interligados entre si através de uma interface comum.A principal operação que um debugger permite é a suspensão e continuação da execução de um programa em uma determinada linha de código, através do que chamamos de "breakpoint".Passagem de parâmetros Os parâmetros são dados que recebem as funções e as utilizam para realizar as operações de função. Uma função pode receber qualquer número de parâmetros, ou mesmo nenhum. Na hora de definir a função, no cabeçalho, definem-se os parâmetros que vai receber. function f1 ($parametro1, $parametro2) Assim definimos uma função f1 que recebe dois parâmetros. Como se pode observar, não temos de definir o tipo de dados de cada parâmetro. Os parâmetros tem validede durante a execução da função, isto é, tem um âmbito local à função de onde se recebem.Quando a função termina, os parâmetros deixam de existir. Os parâmetros por valor A passagem de parâmetros em PHP realiza-se por valor. "Por valor" é uma maneira típica de passar parâmetros em funções, quer dizer que a modificação de um parâmetro não actualiza o dado da variável como parâmetro, apesar de mudarmos o valor do parâmetro dentro da função, a variável original não se vê afectada pela mudança.http://www.criarweb.com/artigos/86.phpPassagem de parâmetros por referência Em contraposição à passagem de parâmetros por valor, está a passagem de parâmetros por referência. Neste último caso, a mudança do valor de um parâmetro dentro de uma função afecta o valor da variável original. Podemos passar os parâmetros por referência se, na declaração da função, colocarmos um "&" antes do parâmetro.

ID
128845
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Quanto à caracterização, a reengenharia de software é classificada como manutenção

Alternativas
Comentários
  • Resposta "A"Tipos de manutenção de software:Corretiva:correção de erros/falhas.Adaptativa: adaptação do software para acomodar mudanças em seu ambiente externo, i.e. uma nova plataforma (hardware, sistema operacional) ou mudanças nas regras de negócio, leis, políticas governamentais etc.Evolutiva (ou perfectiva): acréscimo de funcionalidades, não previstas em seu documento de requisitos original.Preventiva (reengenharia):o software é modificado para oferecer uma base melhor para futuras manutenções. Ou seja, para melhorar a sua confiabilidade ou manutenibilidade futura.
  • do timaster..


    Resumo do Pressman sobre reengenharia:

    Mudança de Software pode ser (pg 685):
    * Manutenção Corretiva;
    * Manutenção Adaptativa;
    * Manutenção Evolutiva;
    * Manutenção Preventiva ou Reengenharia.

    Objetivos principais da Reengenharia (pg 681):
    * aperfeiçoar o produto (modelos, procedimentos, software)
    * adicionar novas funcionalidades
    * melhorar desempenho
    * aumentar a confiabilidade
    * melhorar a manutenabilidade

ID
142051
Banca
CESPE / CEBRASPE
Órgão
TRE-MT
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de mudança de software, assinale a opção correta.

Alternativas
Comentários
  • a) Ocorre depois que o sistema é entregue.
    b) "...somente de codificação..." de projeto e de lógica também (uma análise de requisitos errada também gera manutenção corretiva).
    c) "... mudança de SO / software..." estão inclusas.
    d) "...software perfeito..." não faz parte.
    e) Correto
  • Achei interessante o conceito de falhas latentes, que devem ser identificadas e corridas pelas manutenções preventivas (reengenharia): "falhas latentes", aquelas que permanecem dormentes e ocultas por um bom tempo até que, somadas à outras "falhas latentes", se transformam em uma "falha ativa".

    Interessante perceber que as falhas latentes são falhas, porém estão dormentes e ocultas. 

    Agora uma boa explicação sobre a diferença entre Defeito e Falha: 

    "Defeito é uma não conformidade, isto é, não está de acordo com algo formal tal qual um requisito.  Uma falha é qualquer problema que possa ocorrer no sistema, tal qual um "carro" que tentamos ligar e o mesmo não "pega". Não ligar não quer dizer que o carro tenha um defeito (que é algo permanente e caractiezado) , mas que falhou, falhou ao ser ligado."


ID
769471
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

É possível que sejam definidos vários planos de manutenção a serem executados em momentos distintos, em virtude da duração das tarefas que compõem tais planos.

Alternativas
Comentários
  • Certinha a questão, eu posso agendar uma operação de vacuum e analyze (do postgres) em um horário e uma de backup em outro. Não seria uma boa prática eu fazê-las no mesmo horário, pois estaria diminuindo a performance do Banco de Dados.
  • Tudo é possível.


ID
773464
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação à fase de manutenção, julgue os itens subsequentes.

Entre os problemas comuns na fase de manutenção, podem-se citar a baixa produtividade e o alto custo, além de problemas técnicos, como documentação desatualizada e dificuldade de se alterarem sistemas que foram projetados sem a preocupação com a sua manutenibilidade.


Alternativas
Comentários
  • Questão correta. Para complementar temos a descrição da fase de Transição do RUP, retirada do livro do Sommerville 9ª Edição:

    A fase final do RUP implica em transferência do sistema da comunidade de desenvolvimento para a comunidade de usuários e em seu funcionamento em um ambiente real. Isso é ignorado na maioria dos modelos de processo de software, mas é, de fato, uma atividade cara e, às vezes, problemática. Na conclusão dessa fase, você deve ter um sistema de software documentado e funcionando corretamente em seu ambiente operacional.
  • Questão CORRETA.

    Entre os problemas comuns na fase de manutenção, podem-se citar a baixa produtividade e o alto custo...
    ( Segundo Pressman: "A manutenção do software existente pode ser responsável por mais de 70% de todo o esforço despendido por uma organização de software." )

    ...além de problemas técnicos, como documentação desatualizada e dificuldade de se alterarem sistemas que foram projetados sem a preocupação com a sua manutenibilidade.
    (Ainda, de acordo com Pressman:
    "Grande parte do software do qual dependemos atualmente tem, em média, de 10 a 15 anos de idade. Mesmo usando as melhores técnicas de projeto e codificação conhecidas na época [e a maioria não o era], esses programas foram criados quando o tamanho e o espaço de armazenagem eram as principais preocupações. Depois eles foram levados a novas plataformas, ajustados de acordo com as mudanças de tecnologia de sistemas operacionais e de máquinas e aumentados para atender a novas necessidades dos usuários - tudo isso sem dar muita importância à arquitetura global. 
    O resultado são estruturas mal projetadas, codificação ruim, lógica ruim e documentação ruim dos sistemas de software que colocamos em funcionamento." )

ID
773467
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação à fase de manutenção, julgue os itens subsequentes.

A engenharia reversa se propõe a gerar uma nova especificação ou um novo projeto de um sistema existente, aplicando-se os conceitos de reengenharia, para, depois, se aplicar a engenharia direta e gerar um novo sistema.

Alternativas
Comentários
  • A reegenharia se propõe a gerar uma nova especificação ou um novo projeto de um sistema existente, aplicando-se os conceitos de engenharia reversa, para, depois, se aplicar a engenharia direta e gerar um novo sistema.
  • A reengenharia Reversa envolve em realizar a analise do sistema velho, fazendo a sua documentação. Assim terá um melhor entendimento do sistema legado para realizar os processos da reegenharia de software.
  • Item errado. “A engenharia reversa é processo de exame e compreensão do software existente para recapturar ou recriar o projeto e decifrar os requisitos atualmente implementados pelo sistema, apresentando-os em um nível ou grau mais auto de abstração.”

    Reengenharia é o exame e a alteração de um sistema para reconstruí-lo de uma nova forma, seguida pela sua implementação.”

    O termo engenharia reversa tem sua origem na análise de hardware, pois é comum a prática de decifrar projetos de produtos finalizados com intuito de duplicá-los. O conceito de engenharia reversa é similar. Porém, tradicionalmente, o objetivo dessa engenharia reversa é obter apenas um entendimento do sistema.” Portanto, diferente do que diz o item em tela quando diz que “a engenharia reversa se propõe a gerar... um novo sistema.”

    Fonte: http://www.inf.ufpr.br/silvia/ES/reengenharia/reengenharia.pdf

  • ReEngenharia = ER + ED


    Na questão ele diz que:

    ER = ReEngenharia + ED


    Está trocado!

  • ERRADO.

     

    Os conceitos estão invertidos, o correto seria:

     

    -REENGENHARIA: propõe a gerar uma nova especificação ou um novo projeto de um sistema existente.

     

    -ENGENHARIA REVERSA: os conceitos de engenharia reversa serão utilizados na reengenharia,  para depois se aplicar a engenharia direta e gerar um novo sistema.


ID
773470
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação à fase de manutenção, julgue os itens subsequentes.

Os sistemas de software estão sujeitos a manutenção, pois, dificilmente, as características que o definem não sofrem modificações durante a sua vida útil. Quanto mais dependentes do mundo real forem os requisitos de um sistema, maior será a probabilidade de esse sistema vir a ser modificado.

Alternativas
Comentários
  • O sistema de software deve refletir o negócio de uma organização. Como uma organização é dinâmica, temos que o software deve estar em constante evolução para atender aos requisitos estratégicos de uma entidade. Isto faz a primeira parte da questão ser verdadeira (Os sistemas de software estão sujeitos a manutenção, pois, dificilmente, as características que o definem não sofrem modificações durante a sua vida útil.)

    Os sistemas são muito dependentes do mundo real. Um exemplo disso são regulações, muitas delas criadas pelo governo, que fazem com que o software precise se adequar a nova realidade. Este trecho valida a segunda parte da questão (Quanto mais dependentes do mundo real forem os requisitos de um sistema, maior será a probabilidade de esse sistema vir a ser modificado.)


    Temos então que a questão encontra-se correta.

ID
773473
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação à fase de manutenção, julgue os itens subsequentes.

Um sistema pode sofrer quatro tipos de manutenção: corretiva, adaptativa ou evolutiva, perfectiva e preventiva. Entre esses tipos, apenas a manutenção corretiva está associada a um defeito do sistema.

Alternativas
Comentários
  • Os quatro tipos de manutenção são: corretiva, adaptativa, evolutiva ou perfectiva e preventiva.
  •  Tipos de Manutenção

     

       MANUTENÇÃO CORRETIVA:  identificar e corrigir erros

       MANUTENÇÃO ADAPTATIVA: adaptar o software ao ambiente

        MANUTENÇÃO PERFECTIVA: atender pedidos do usuário para modificar   funções existentes, incluir novas funções e efetuar melhoramentos gerais

        MANUTENÇÃO PREVENTIVA:  Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos

  • Acredito que o colega José esteja certo, o problema da questão me parece ser que o examinador mexeu com os termos de propósito, colocando evolutiva como o mesmo que adaptativa, o que nao é verdade.

    Tipos:
    • Corretiva:correção de erros/falhas.
    • Adaptativa: adaptação do software para acomodar mudanças em seu ambiente externo, i.e. uma nova plataforma (hardware, sistema operacional) ou  mudanças nas regras de negócio, leis, políticas governamentais etc.
    • Evolutiva (ou perfectiva): acréscimo de funcionalidades, não previstas em seu documento de requisitos original.
    • Preventiva (reengenharia):o software é modificado para oferecer uma base melhor para futuras manutenções. Ou seja, para melhorar a sua confiabilidade ou manutenibilidade futura.
  • Os comentários dos colegas acima estão ótimos. Pondo somente uma referência do nosso querido Pressman, encontrada no seu livro Engenharia de Software Uma abordagem profissional (6a Edição 2011) - Pag. 662:

    "Independente do domínio da aplicação, tamanho ou complexidade, o software continuará a evoluir com o tempo. As mudanças dirigem esse processo. No âmbito do software, ocorrem alterações quando são corrigidos erros (manutenção CORRETIVA), quando há adaptação a novo ambiente (manutenção ADAPTATIVA), quando o cliente solicita novas características ou funções (manutencão EVOLUTIVA/PERFECTIVA) e quando a aplicação passa por um processo de reengenharia para proporcionar benefício em um contexto moderno (manutenção PREVENTIVA - REENGENHARIA)."

    A questão tornou-se ERRADA ao colocar que uma manutenção adaptativa, que visa adequar o software às mudanças externas, seria idêntica a mudança evolutiva, quando é o cliente que solicita modificação ou novas funções ao software. Percebam que nesse segundo caso, não há, OBRIGATORIAMENTE, uma mundança no ambiente externo que necessite adaptações no software.

    Ainda vale uma ressalva quanto a afirmação que somente a manutenção corretiva está associada a defeitos. Veja que as manutenções preventivas buscam defeitos latentes, aqueles que associados a outros defeitos podem torna-se defeitos "ativos". Então, ao meu ver, esse ponto também torna a questão errada.

    Outra observação interessante é que a há uma classificação implícita para os diversos tipos de manutenção:

    1. Corretiva e Preventiva (reengenharia)*: Não há acréscimo ou modificação de funcionalidades em relação aos requisitos iniciais.

    2. Adaptativa, Evolutiva/perfectiva e Preventiva (reengenharia)*: acréscimo ou modificação de funcionalidades em relação aos requisitos iniciais.

    * A manutenção preventiva (reengenharia) reimplementa a função do sistema existente e também acrescenta novas funções e/ou melhora o desempenho geral. Assim, esse tipo de manutenção é híbrido, podendo ou não haver acréscimo ou modificação de funcionalidades.

    Espero ter ajudado. Bons estudos!

  • Eu acho que uma questão desse teria que ser anulda. O que a pergunta pedi está certo.  Entre esses tipos, apenas a manutenção corretiva está associada a um defeito do sistema. A reposta é sim. Agora vem um erro no meio do enociado para colocar toda a questão errada. Complicado.


ID
802972
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Segundo o padrão ISO/IEC 14764: 2006, também conhecido como IEEE Std 14764-2006, a manutenção de software é definida como a totalidade das atividades requeridas para prover suporte custo-efetivo a um software, seja durante o estágio de pré-entrega, seja no estágio de pós-entrega. A esse respeito, assinale a opção correta acerca dos conceitos de manutenção e métricas de software.

Alternativas

ID
898063
Banca
CESGRANRIO
Órgão
BNDES
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

De um modo geral, o processo de desenvolvimento de um software pode ser organizado partindo de três fases importantes, que são as de definição, de desenvolvimento e de manutenção.

Na fase de manutenção, dentre outras atividades, são

Alternativas
Comentários
  • Alguém sabe explicar o erro da letra e?

  • Referência: http://inf.unisul.br/~vera/egs/cmm_pro.htm

    MANUTENÇÃO: concentra-se nas “mudanças” que ocorrerão depois que o software for liberado para uso operacional

    Correção: mesmo com as melhores atividades de garantia de qualidade de software, é provável que o cliente descubra defeitos no software. A manutenção corretiva muda o software para corrigir defeitos.

    Adaptação: com o passar do tempo, o ambiente original (por exemplo a CPU, o sistema operacional e periféricos) para o qual o software foi desenvolvido provavelmente mudará. A manutenção adaptativa muda o software para acomodar mudanças em seu ambiente.

    Melhoramento Funcional: a medida que o software é usado, o cliente/usuário reconhecerá funções adicionais que oferecerão benefícios.

    manutenção perfectiva estende o software para além de suas exigências funcionais originais.

    Atividades de Proteção: as fases e etapas correlatas descritas são complementadas por uma série de atividades de proteção.

    Revisões: efetuadas para garantir que a qualidade seja mantida à medida que cada etapa é concluída.

    Documentação: é desenvolvida e controlada para garantir que informações completas sobre o software estejam disponíveis para uso posterior.

    Controle das Mudanças: é instituído de forma que as mudanças possam ser aprovadas e acompanhadas


  • Acredito que o erro da E esteja na interpretação da palavra "fundamentais". Se fosse tão fundamental o sistema deveria ter sido implementado já com essa funcionalidade.


ID
1055812
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

Com referência a aspectos diversos de engenharia de software, julgue os itens subsecutivos.

Nas atividades executadas na manutenção de software, a categoria corretiva se refere à atividade de modificação do software para a correção de erros; a categoria adaptativa se refere a atividades de alteração para adequar o sistema às mudanças no ambiente em que ele esteja operando; e a categoria evolutiva contempla as alterações para atender necessidades de evolução requeridas pelo usuário, como mudanças nas regras de negócio.

Alternativas
Comentários
  • Em engenharia de software, manutenção de software é o processo de melhoria e otimização de um software já desenvolvido (versão de produção), como também reparo de defeitos. A manutenção do software é uma das fases do processo de desenvolvimento de software, e ocorre a seguir a entrada do software em produção.

    Esta fase envolve:

    mudanças no software para corrigir defeitos e deficiências que foram encontrados durante a utilização pelo usuário

    novas funcionalidades para melhorar a aplicabilidade e usabilidade do software.

    http://pt.wikipedia.org/wiki/Manuten%C3%A7%C3%A3o_de_software


  • Questão correta.

    Existem três diferentes tipos de manutenção de software:

    1. Correção de defeitos. Erros de codificação são relativamente baratos para serem corrigidos; erros de projeto são mais caros, pois podem implicar reescrever vários componentes de programa. Erros de requisitos são os mais caros para se corrigir devido ao extenso reprojeto de sistema que pode ser necessário.

    2. Adaptação ambiental. Esse tipo de manutenção é necessário quando algum aspecto do ambiente do sistema, como o hardware, a plataforma do sistema operacional ou outro software de apoio sofre uma mudança. O sistema de aplicação deve ser modificado para se adaptar a essas mudanças de ambiente.

    3. Adição de funcionalidade. Esse tipo de manutenção é necessário quando os requisitos de sistema mudam em resposta às mudanças organizacionais ou de negócios. A escala de mudanças necessárias para o software é, frequentemente, muito maior do que para os outros tipos de manutenção.

    Temos na questão um resumo dos tipos de manutenção em um software.

    Fonte: Sommervile - 9ª Edição - Página 170.


ID
1159375
Banca
FEPESE
Órgão
MPE-SC
Ano
2014
Provas
Disciplina
Engenharia de Software
Assuntos

Manutenção é o processo de modifcação de um software depois que ele foi colocado em operação. Assinale a alternativa que indica corretamente o tipo de manutenção de software, segundo Pressman, no qual se busca modifcar o software a fm de torná-lo mais fácil de sere corrigido, adaptado e melhorado.

Alternativas
Comentários
  • Correto letra C.

    DE FORMA BASTANTE RESUMIDA:

    Segundo Pressman (1992), existem 4 atividades de manutenção. São elas:

    manutenção corretiva - correção de erros

    manutenção adaptativa - modificação no software (para funcionar com novos periféricos, ou versão de SO, etc...)

    manutenção evolutiva - novos requisitos do usuário

    manutenção preventiva - melhorar características de confiabilidade ou manutenibilidade futura.


ID
1352638
Banca
FUNCAB
Órgão
MDA
Ano
2014
Provas
Disciplina
Engenharia de Software
Assuntos

No ciclo de vida do software, o tipo de manutenção que é realizada visando ao aprimoramento do software para além dos requisitos funcionais originais é conhecido como:

Alternativas
Comentários
  • Adaptativas: são alterações que visam adaptar o software a uma nova realidade ou novo ambiente externo, normalmente imposto. Um exemplo claro seriam mudanças de leis ou regras, definidas pelo governo e/ou órgãos reguladores. Assim, manutenções do tipo adaptativas referem-se a adequar o software ao seu ambiente externo. O exemplo apontado por Pfleeger (2001) ilustra bem essa categoria. Suponha um gerenciador de banco de dados, que faz parte um sistema maior de hardware e software. Em uma atualização do gerenciador, os programadores perceberam que as já existentes rotinas de acesso a disco precisavam agora de mais um parâmetro adicional. Essa manutenção corresponde a uma manutenção adaptativa, uma vez que teve por finalidade adequação do software ao seu ambiente e não a correção de um defeito.

    Corretivas: como o próprio nome diz, servem para eliminar as falhas encontradas em produção. É bastante comum, principalmente quando o processo de desenvolvimento não se preocupou de maneira adequada com a qualidade do software. Assim, manutenções do tipo corretivas visam corrigir defeitos de funcionalidade, o que inclui acertos emergenciais de programa. Pfleeger (2001) expõe um exemplo desse tipo de manutenção, que consiste em um usuário apresentando um problema de impressão em um relatório. O número de linhas impresso por folha é muito grande, o que causa sobreposição de informações. O problema foi identificado como uma falha no driver da impressora, provocando a necessidade de se alterar o menu do relatório para aceitar um parâmetro adicional que determina o número máximo de linhas impressas por folha.

    Evolutivas/Perfectivas: são alterações que visam agregar novas funcionalidades e melhorias para os usuários que as solicitaram. Não se deve confundir esse tipo de manutenção com as entregas programadas de um processo de desenvolvimento interativo. A integração com outros sistemas também é considerada um tipo de evolução."


ID
1460791
Banca
FGV
Órgão
DPE-MT
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

Assinale a opção que indica um elemento que pode facilitar o processo de engenharia reversa de um código executável.

Alternativas
Comentários
  • Segundo o Professor Gustavo Vilar:

    A informação simbólica estabelece a relação entre código fonte e a linguagem de baixo nível. Com ela, o processo de reversão te conduz a um código fonte bem próximo do original.

  • Complementando o comentário do Yuri: resposta letra d

  • Gabarito D

    Tabela de símbolos é uma estrutura de dados, geralmente uma árvore ou tabela de hash, utilizada em compiladores para o armazenamento de informações de identificadores, tais como constantes, funções, variáveis e tipos de dados. É utilizada em quase todas as fases de compilação, como a varredura, a análise sintática, a análise semântica, otimização e geração de código. Em cada fase ela pode ser utilizada como base para comparações ou mesmo atualizada com novos identificadores durante a saída de cada fase.

    Um compilador usa uma tabela de símbolos para guardar informações sobre os nomes declarados em um programa. A tabela de símbolos é pesquisada cada vez que um nome é encontrado no programa fonte. Alterações são feitas na tabela de símbolos sempre que um novo nome ou nova informação sobre um nome já existente é obtida.

    A gerência da tabela de símbolos de um compilador deve ser implementada de forma a permitir inserções e consultas da forma mais eficiente possível, além de permitir o crescimento dinâmico da mesma.

    Com isso é possível concluir que a tabela de símbolos serve como um banco de dados para o processo de compilação. Seu principal conteúdo são informações sobre tipos e atributosde cada nome definido pelo usuário no programa. Essas informações são colocadas na tabelade símbolos pelos analisadores léxico e sintáticoe usadas pelo analisador semântico e pelo gerador de código.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
1493068
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

Acerca de desenvolvimento e manutenção de sistemas e aplicações, julgue seguintes item.

Para a codificação dos módulos e componentes de uma aplicação computacional aderente a uma arquitetura do tipo cliente-servidor multicamadas, deve-se utilizar uma única linguagem de programação, visto que isso facilita a futura manutenção desse tipo de aplicação.

Alternativas
Comentários
  • Nesta forma de arquitetura podem ser utilizadas várias linguagens de programação. É comum em aplicações WEB a utilização de várias linguagens como por exemplo: SQL no servidor de banco de dados, PHP no servidor de aplicação, Javascript no cliente.

  • O erro da questão está em dizer que se deve usar apenas uma linguagem.

    Uma aplicação pode ser feita usando apenas uma linguagem mas na maioria dos casos será necessário o uso de mais que uma.

  • para parou parei com o cespe...

    você pode utilizar N LPs ? ok pode...

    mas pensa no mundo real...imagina sua empresa com um sistema desenvolvido dessa forma...uma versão em Java, outra em PHP, outra em .Net e por aí vai...o custo de manutenção vai ser muito maior porque vai precisar de N profissionais, curva de aprendizado do sistema muito maior também, etc...

    Agora a resposta do Lazaro Almeida poderia ser a questão. Está ótima, bacana mesmo, pois exemplificou isolando as camadas. Só uma correçãozinha na camada de dados...SQL é para acessar...Programação seria os PL, T-SQLs da vida.

     


ID
1518502
Banca
FUNIVERSA
Órgão
UEG
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

A fase que se inicia a partir da entrega do software e é caracterizada pela realização de alterações de naturezas diversas, como corrigir erros e alterar funções, denomina-se fase de

Alternativas
Comentários
  • Modelo em cascata é um modelo de desenvolvimento de software sequencial no qual o desenvolvimento é visto como um fluir constante para frente (como uma cascata) através das fases de análise de requisitos, projeto, implementação, testes (validação), integração, e manutenção de software.

    Manutenção de software
    Essa etapa consiste na correção de erros que não foram previamente detectados, em melhorias funcionais e de preferência e outros tipos de suporte.


ID
1625284
Banca
ESAF
Órgão
MF
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

A facilidade com que um programa pode ser corrigido após um erro ser encontrado, adaptado se o seu ambiente se modificar ou ampliado se o cliente desejar inclusões e alterações nos requisitos funcionais é denominada:

Alternativas

ID
1639702
Banca
CESPE / CEBRASPE
Órgão
DPF
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

Acerca dos conceitos da engenharia reversa, julgue o item subsecutivo.

Red pointing é o método mais rápido para se realizar engenharia reversa em um código. Para criar um red pointing um código alvo, é suficiente identificar no programa os locais potencialmente vulneráveis, que fazem chamada ao sistema operacional, e detectar os dados fornecidos pelo usuário, que são processados nesse local.

Alternativas
Comentários
  • Gabarito Certo

    O Red Pointing é o método mais fácil e rápido de fazer engenharia reversa de um código.

    - Exame do código em busca dos pontos fracos óbvios.

    - Depois de identificadas, força-se a execução do programa de tal forma que essas áreas marcadas sejam percorridas no fluxo de execução.

     

    Para gerar o Red Pointing precisaremos de:

    1- Local desprotegido com chamada de sistema potencialmente vulnerável.

    2- Dados fornecidos pelo usuário que fluem e são processados neste local.

     

    Desvantagens:

    - Deixa escapar quase tudo, exceto os bugs mais triviais.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Prezados,

    O Red Pointing é um método de engenharia reversa que consiste em identificar comandos, como strcpy e semelhante, que possibilite obter acesso aos dados do usuário que estão sendo manipulados pelo programa. É tido como o método mais rápido para realizar engenharia reversa em um código.

    Portanto a questão está correta.


  • O Red Pointing é um método de engenharia reversa que consiste em identificar comandos, como strcpy e semelhante, que possibilite obter acesso aos dados do usuário que estão sendo manipulados pelo programa. É tido como o método mais rápido para realizar engenharia reversa em um código.

    Portanto a questão está correta.


ID
1639705
Banca
CESPE / CEBRASPE
Órgão
DPF
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

Acerca dos conceitos da engenharia reversa, julgue o item subsecutivo.

A engenharia reversa permite conhecer a estrutura do programa e sua lógica e, com base nessas informações, alterar a estruturado programa, afetando diretamente o fluxo lógico. Essa atividade é conhecida como patching.

Alternativas
Comentários
  • Gabarito Certo

    Engenharia Reversa é o processo de descoberta do funcionamento interno de um programa de computador sem ter acesso ao código fonte. Este processo pode ser tão simples como executar o programa e monitorar suas ações e resultados, ou tão complexo quanto analisar as instruções de código de máquina.

    De acordo com a literatura existente, a engenharia reversa pode ser descrita como o processo de analisarcompreender e identificar as funções de um equipamento, software ou dispositivos, de forma a ser capaz de fornecer manutenção ou desenvolver outro produto compatível com o analisado, ou então descobrir o modo de funcionamento de algum programa conhecido.

    OBS.: Conforme o nível de abstração AUMENTAmais compreensíveis se tornam as informações

    CONCEITOS

    PATCHING – Envolve colocar trechos de códigos no fluxo do programa de forma transparente.

    DEPURADOR – É um programa que se conecta a outros programas de software e os controla. Permite executar passo-a-passo de um código (SINGLE STEPPING), rastrear a depuração, BREAKPOINTS, visualizar variáveis e o estado na memória.

    TRANSLITERAÇÃO - Ato de traduzir o código de um programa de uma linguagempara OUTRA linguagem, ou para uma versão mais nova da mesma linguagem. Não há evolução

    REENGENHARIA – Ação de analisar e modificar um sistema para RECRIÁ-LO ereimplementá-lo com nova estrutura.

    Passos para que aconteça:

    1.      Engenharia Reversa

    2.      Estudo das possibilidades existentes

    3.      Reengenharia

    Reengenharia pode ser

    -  Sem mudança de funcionalidade

    o   Ex.: Mudança da linguagem de programação por exemplo

    -  Mudança parcial de funcionalidade

    o   Integração entre as partes

    o   Uso de linguagens compatíveis

    -  Mudança total de funcionalidade

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Prezados,

    Quando a engenharia reversa é utilizada para alterar a estrutura do programa , essa atividade é denominada como patching, ou seja, possibilidade de fazer correção no programa de modo transparente.

    Portanto a questão está correta.


  • Quando a engenharia reversa é utilizada para alterar a estrutura do programa , essa atividade é denominada como patching, ou seja, possibilidade de fazer correção no programa de modo transparente.

    Portanto a questão está correta.


ID
1839244
Banca
VUNESP
Órgão
CRO-SP
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre a manutenção evolutiva de software, é correto afirmar que

Alternativas
Comentários
  • O desempenho de software não é interrompido quando o sistema é entregue, mas continua por toda a vida útil do sistema. Depois que o sistema é implatado, para que ele se mantenha útil é inevitável que ocorram mudanças -, mudanças nos negócios e nas expectativas dos usuários, que geram novos requisitos para o software. Partes do software podem precisar ser modificadas para corrigir erros encontrados na operação, para que o software se adapte às alterações de sua plataforma de hardware e software, bem como para melhorar seu desempenho ou outras características não funcionais.

     

    Fonte: Sommerville, 9ª Edição, Capítulo 9.

     

    Comentando cada item:

     

    A) Gabarito, conforme texto acima.

    B) Não existe essa limitação de tempo (há pelo menos 1 ano).

    C) Não existe a limitação de 10000 linhas de código.

    D) Aplica a qualquer software independente de ser feito em linguagem de alto nível.

    E) O ideal é que as modificações sejam documentadas.

     

    Bons estudos!


ID
1839247
Banca
VUNESP
Órgão
CRO-SP
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

A manutenção corretiva de software

Alternativas
Comentários
  • O desempenho de software não é interrompido quando o sistema é entregue, mas continua por toda a vida útil do sistema. Depois que o sistema é implatado, para que ele se mantenha útil é inevitável que ocorram mudanças -, mudanças nos negócios e nas expectativas dos usuários, que geram novos requisitos para o software. Partes do software podem precisar ser modificadas para corrigir erros encontrados na operação, para que o software se adapte às alterações de sua plataforma de hardware e software, bem como para melhorar seu desempenho ou outras características não funcionais.

     

    Fonte: Sommerville, 9ª Edição, Capítulo 9.

     

    A) O ideal é que a correção seja rápida, mas não existe uma regra, referente ao tempo, para que o software esteja funcional. Depende da existência de um SLA, por exemplo.

    B) Causa alterações no código-fonte sim. E digo mais: Se o erro for muito grave, uma alteração na arquitetura pode ser necessária.

    C) Gabarito.

    D) O objetivo não é simplesmente recompilar os fontes.

    E) As pessoas que desenvolveram o software podem não estar mais na fábrica de software durante a sua manutenção. Logo, a limitação trazida no item está incorreta.


ID
1994791
Banca
Aeronáutica
Órgão
EEAR
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

O conjunto de atividades que realiza alteração no sistema para manter seu funcionamento após modificações das necessidades definidas como iniciais, podendo ocorrer em todas as fases do ciclo, é o (a)

Alternativas
Comentários
  • D

    Manutenção do sistema.


ID
2047861
Banca
FUNRIO
Órgão
IF-PA
Ano
2016
Provas
Disciplina
Engenharia de Software
Assuntos

O sistema informatizado de gerenciamento de documentos de uma organização foi atualizado. No processo de atualização, os programadores descobrem que as rotinas de acesso ao banco de dados do sistema precisa de um parâmetro adicional para o adequado funcionamento do novo sistema. A implementação das modificações feitas para adicionar o novo parâmetro é denominada de manutenção

Alternativas
Comentários
  • Gabarito "Letra A"

     

    Manutenção Adaptativa: Adaptação no software para acomodar as constantes mudanças ocorridas, essas mudanças podem ser em regras de negócio, constituição e leis que tenha consequências a funções do sistema, assim como a criação de uma nova plataforma de hardware, podendo ser uma nova geração de processadores, ou periféricos na qual o software consiga aproveitar seus recursos, além de uma nova versão de um sistema operacional que possa não ser totalmente compatível ao software.

     

    Fonte: http://www.leandromtr.com/tecnologia-informacao/tipos-de-manutencao-de-software/

    Trata das outras alternativas.


ID
2167447
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

Com referência a conceitos básicos sobre desenvolvimento e manutenção de sistemas e aplicações, julgue o item subsecutivo.

Manutenção evolutiva de software consiste em mudanças nesse software para corrigir-lhe defeitos e deficiências que forem encontrados durante a utilização pelo usuário.

Alternativas
Comentários
  • Manutenção de software é o processo de melhoria e otimização de um software já desenvolvido (versão de produção), como também reparo de defeitos. A manutenção do software é uma das fases do processo de desenvolvimento de software, e ocorre a seguir a entrada do software em produção.

    Esta fase envolve:

    mudanças no software para corrigir defeitos e deficiências que foram encontrados durante a utilização pelo usuário

    novas funcionalidades para melhorar a aplicabilidade e usabilidade do software.

  • A manutenção de software é o processo geral de mudança em um sistema depois que ele é liberado para uso. O termo geralmente se aplica ao software customizado em que grupos de desenvolvimento separados estão envolvidos antes e depois da liberação. As alterações feitas no software podem ser simples mudanças para correção de erros de codificação, até mudanças mais extensas para correção de erros de projeto, ou melhorias significativas para corrigir erros de especificação ou acomodar novos requisitos. As mudanças são implementadas por meio da modificação de componentes do sistema existente e, quando necessário, por meio da adição de novos componentes.

     

    Existem três diferentes tipos de manutenção de software:

     

    1) Correção de defeitos.

    2) Adaptação ambiental.

    3) Adição de funcionalidade.

     

    Fonte: Sommerville, 9ª Edição, Capítulo 9.

     

    A questão trata da manutenção "correção de feitos" e não "adição de funcionalidade" (manutenção evolutiva).

  • Q351935 - Ano: 2013 - Banca: CESPE - Órgão: STF - Prova: Analista Judiciário - Análise de Sistemas de Informação

     

    Nas atividades executadas na manutenção de  software, a categoria corretiva se refere à atividade de modificação do software para a correção de erros; a categoria adaptativa se refere a atividades de alteração para adequar o sistema às mudanças no ambiente em que ele esteja operando; e a categoria evolutiva contempla as alterações para atender necessidades de evolução requeridas pelo usuário, como mudanças nas regras de negócio.

     

    Gab. Certo

  • GABARITO: ERRADO

    Manutenção CORRETIVA de software consiste em mudanças nesse software para corrigir-lhe defeitos e deficiências que forem encontrados durante a utilização pelo usuário.

    Existem três tipos principais de manutenções em softwares, Adaptativas, Corretivas e Evolutivas (Perfectivas):

    Corretivas: como o próprio nome diz, servem para eliminar as falhas encontradas em produção. É bastante comum, principalmente quando o processo de desenvolvimento não se preocupou de maneira adequada com a qualidade do software. Assim, manutenções do tipo corretivas visam corrigir defeitos de funcionalidade, o que inclui acertos emergenciais de programa. Pfleeger (2001) expõe um exemplo desse tipo de manutenção, que consiste em um usuário apresentando um problema de impressão em um relatório. O número de linhas impresso por folha é muito grande, o que causa sobreposição de informações. O problema foi identificado como uma falha no driver da impressora, provocando a necessidade de se alterar o menu do relatório para aceitar um parâmetro adicional que determina o número máximo de linhas impressas por folha.

    Adaptativas: são alterações que visam adaptar o software a uma nova realidade ou novo ambiente externo, normalmente imposto. Um exemplo claro seriam mudanças de leis ou regras, definidas pelo governo e/ou órgãos reguladores. Assim, manutenções do tipo adaptativas referem-se a adequar o software ao seu ambiente externo. O exemplo apontado por Pfleeger (2001) ilustra bem essa categoria. Suponha um , que faz parte um sistema maior de hardware e software. Em uma atualização do gerenciador, os programadores perceberam que as já existentes rotinas de acesso a disco precisavam agora de mais um parâmetro adicional. Essa manutenção corresponde a uma manutenção adaptativa, uma vez que teve por finalidade adequação do software ao seu ambiente e não a correção de um defeito.

    Evolutivas: são alterações que visam agregar novas funcionalidades e melhorias para os usuários que as solicitaram. Não se deve confundir esse tipo de manutenção com as entregas programadas de um processo de desenvolvimento interativo. A integração com outros sistemas também é considerada um tipo de evolução.


ID
2194546
Banca
INSTITUTO AOCP
Órgão
CASAN
Ano
2016
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre a engenharia de software, que é uma área da computação voltada para à especificação, desenvolvimento e manutenção de software, é correto afirmar que ela aborda

Alternativas
Comentários
  • a-

    qualidade de sw é o total de valores e caracteristicas de um software que se relacionam ao preenchimento dos seus requisitos.


ID
2369917
Banca
UFMT
Órgão
UFSBA
Ano
2017
Provas
Disciplina
Engenharia de Software
Assuntos

O sistema baseado em software está operacional quando está sendo utilizado pelos usuários em um ambiente real de produção. Mesmo nesse estágio, o sistema estará sujeito a mudanças ou atualizações que podem ocorrer por diferentes motivos. Sobre essa fase do ciclo de vida de um software, marque V para as afirmativas verdadeiras e F para as falsas.

( ) A manutenção corretiva caracteriza-se por manter o software operacional, mas exige que as causas da falha sejam rastreadas e sanadas, por vezes, até em nível de requisitos.
( ) A manutenção adaptativa ocorre para prevenir defeitos que possam existir e consiste em criar um conjunto de testes a serem executados com o sistema em operação.
( ) Sistemas legados não apresentam dificuldade de manutenção devido à tecnologia adotada e à documentação, pois a aplicação da engenharia reversa supre essas falhas.
( ) Mudanças para melhorar aspectos do sistema e, na documentação, para maior compreensão são classificadas como manutenção perfectiva.

Assinale a sequência correta.

Alternativas
Comentários
  • Prova: CESPE - 2011 - STM - Analista Judiciário - Análise de Sistemas -

    O conceito de projeto de melhoria do IFPUG envolve as manutenções evolutivas, corretivas e preventivas da aplicação.

    errada

     

  • Manutenção corretiva: corrigir erros
    Manutenção adaptativa: adaptar o software a modificações no seu ambiente externo
    Manutenção perfectiva ou de melhoria:  fazer melhorias solicitadas pelos usuários
    Manutenção preventiva ou reengenharia: realizar reengenharia para uso futuro, o que melhora a manutenibilidade.

  • 'Manutenção perfectiva às vezes significa aperfeiçoar o software por meio da implementação de novos requisitos; às vezes, significa manutenção de funcionalidade de sistema para melhorar sua estrutura e seu desempenho.

     

    Sommerville 9 edição


ID
2409247
Banca
FUNDEP (Gestão de Concursos)
Órgão
UFVJM-MG
Ano
2017
Provas
Disciplina
Engenharia de Software
Assuntos

Qual entre os tipos de manutenção de software é o mais comum e gera o maior esforço para seu reparo?

Alternativas
Comentários
  • O gabarito é a letra C.

     

    Na verdade, os tipos de manutenção são mais conhecidos com a seguinte nomenclatura:

     

    Manutenção Corretiva: Correção de erros no software que não foram identificados na fase teste. Equivale à correção de defeitos indicada no enunciado.

     

    Manutenção Adaptativa: Adaptação no software para acomodar as constantes mudanças ocorridas em seu ambiente externo. Equivale à adaptação ao ambiente indicada no enunciado.

     

    Manutenção Evolutiva (ou Perfectiva): Modificações não previstas no documento de requisitos original do software. Equivale à modificação de funcionalidade indicada no enunciado.

     

    Manutenção Preventiva (Reengenharia): Alterações no software buscando melhorar a confiabilidade ou oferecer uma estrutura melhor para futuras manutenções. Equivale à adaptação de interfaces indicada no enunciado. 

  • A questão usou uma nomeclatura informal. A alternativa correta e a C
  • Livro do Sommerville (9a edição)

    tipos de manutenção:

    adição de funcionalidade: é necessario quando os requisitos de sistema mudam em resposta às mudanças organizacionais ou de negocios. A escala de mudanças necessárias para o sw é, frequentemente, muito maior do que para outros tipos de manutenção.

    correção de defeitos:  erros de codificação são relativamente baratos para serem corrigidos; erros de projeto são mais caros, pois podem implicar reescrever vários componentes de programa. Erros de requisitos são os mais caros para se corrigir devido ao extenso reprojeto de sistema que pode ser necessário.

    adaptação ambiental: é necessário quando algum aspecto do ambiente do sistema, como o hw, a plataforma do sistema operacional ou outro software de apoio sofre uma mudança. O sistema de aplicação deve ser modificado para se adaptar a essas mudanças no ambiente.


ID
2581822
Banca
Quadrix
Órgão
COFECI
Ano
2017
Provas
Disciplina
Engenharia de Software
Assuntos

No que diz respeito a desenvolvimento e à manutenção de sistemas e aplicações, julgue o próximo item.


No desenvolvimento de sistemas, saber o que o cliente quer – sua necessidade – é o primeiro passo a ser dado no processo.

Alternativas
Comentários
  • Achei que o primeiro passo deveria ser entender o negócio. Pelo menos foi o que lí no PRESSMAN se não me engano.

  • "Entender o negócio" é parte de "saber o que o cliente quer", Bruno.

  • Certo.

     

  • Os requisitos!!

  • GABARITO: CERTO

    LEVANTAMENTO E ANÁLISE DE REQUISITOS

    Uma boa execução dessa fase de projeto irá determinar o sucesso ou não do projeto todo e, portanto, é a fase mais importante para o negócio.

    Nesse momento deverão ser levantados e documentados todos os problemas, as solicitações do cliente e do usuário final e as regras de negócio existentes.

    Existem diversas formas de se realizar este levantamento e as mais comuns são: workshops, brainstorming, entrevistas com o usuário final, questionários e formação de um grupo focal.

    Com estes dados levantados é realizada então a construção do projeto lógico, onde é definida a solução lógica do projeto contemplando todos os requisitos necessários para irmos para a próxima etapa.


ID
2581834
Banca
Quadrix
Órgão
COFECI
Ano
2017
Provas
Disciplina
Engenharia de Software
Assuntos

No que diz respeito a desenvolvimento e à manutenção de sistemas e aplicações, julgue o próximo item.


A manutenção de sistemas nem sempre constitui uma tarefa fácil de ser realizada.

Alternativas
Comentários
  • Uau!

     

  • kkkkkkk


ID
2620531
Banca
CS-UFG
Órgão
SANEAGO - GO
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A facilidade de manutenção recebe a maior prioridade nas decisões de um projetista (designer) de software. Visando atender a essa prioridade, o projetista

Alternativas
Comentários
  • a-

    esse é outro modo de se pensar em encapsulamento. Modulos independentes implicam que cada classe é uma unidade funcional sem necessidade de usar atributos de outras, o que é baixo acoplamento. A manutenção é facilitada pelo fato de ser possivel fazer correções nas classes isoladamente, o que implica coesão.

  • c) usa a linguagem de programação Erlang (supostamente utilizada no desenvolvimento do WhatsApp).

    Baita alternativa.


ID
2756473
Banca
FAURGS
Órgão
BANRISUL
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

Considere as seguintes afirmações sobre Manutenção de Software.


I - Manutenção de software é o processo geral de mudança em um sistema depois de liberado para uso.

II - As pesquisas concordam que a manutenção de software ocupa uma proporção menor dos orçamentos de TI do que o desenvolvimento e, portanto, os esforços durante o desenvolvimento do sistema para produção de um sistema manutenível não reduzem os custos gerais durante a vida útil do sistema.

III - Existem três diferentes tipos de manutenção de software: (1) correção de defeitos; (2) adaptação ambiental (quando algum aspecto do ambiente – tal como hardware, plataforma do sistema operacional ou outro software de apoio – sofre uma mudança); e (3) adição de funcionalidade.


Quais estão corretas?

Alternativas
Comentários
  • I - Manutenção de software é o processo geral de mudança em um sistema depois de liberado para uso. - CORRETO, retirado do livro de Engenharia de Software de Sommerville, 9ª edição, capítulo 9.

    II - As pesquisas concordam que a manutenção de software ocupa uma proporção menor dos orçamentos de TI do que o desenvolvimento e, portanto, os esforços durante o desenvolvimento do sistema para produção de um sistema manutenível não reduzem os custos gerais durante a vida útil do sistema. - ERRADO: Segundo Sommerville, "As pesquisas em geral concordam que a manutenção de software ocupa uma proporção maior dos orçamentos de TI que o desenvolvimento".

    III - Existem três diferentes tipos de manutenção de software: (1) correção de defeitos; (2) adaptação ambiental (quando algum aspecto do ambiente – tal como hardware, plataforma do sistema operacional ou outro software de apoio – sofre uma mudança); e (3) adição de funcionalidade. - CORRETO

     


ID
2828593
Banca
COMPERVE
Órgão
UFRN
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

Durante a manutenção de um software, a reestruturação do código pode se fazer necessária. Sobre os padrões de refatoração, é correto afirmar:

Alternativas
Comentários
  • a)Extrair Super-classe (Extract Superclass)-Quando duas classes possuem características em comum, deve-se mover esse subconjunto de características para uma superclasse, e especializar esta superclasse com as duas classes iniciais.

    b)Correto. Extrair Método (Extract Method)- Quando você têm partes similares do código que podem ser agrupadas, geralmente código que está duplicado, então você deve mover essas partes para um novo método que tenha um nome que faça sentido.

    c) Errado. Não encontrado. Mas dá para ter uma ideia, já que GenerateFields está relacionado a gerar atributos e não método.

    d) Errado. É um tipo de refatoração.

  • eu fui na C pensando no Encapsulate Fields do VS, gerando getters e setters(métodos) para atributos ué rsrsrs

  • A -> Push Down

    B -> Extract method

    C -> Encapsulate field

    https://en.wikipedia.org/wiki/Code_refactoring


ID
2829952
Banca
Quadrix
Órgão
CFBio
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da arquitetura cliente‐servidor multicamadas e dos conceitos básicos sobre desenvolvimento e manutenção de sistemas e aplicações, julgue o item subsequente.


Ainda que os custos de manutenção sejam frequentemente mais baixos que os custos iniciais de desenvolvimento, os processos de manutenção são considerados como mais desafiadores que o desenvolvimento do software original.

Alternativas
Comentários
  • Custos na manutenção são, via de regra, maiores. Imaginem desenvolver um software e, quando posto em produção, descobrir que a sua arquitetura deixa a desejar. O custo para corrigir este problema é grande.

  • Ainda que os custos de manutenção sejam frequentemente mais baixos que os custos iniciais de desenvolvimento, os processos de manutenção são considerados como mais desafiadores que o desenvolvimento do software original.

    item ERRADO

  • GABARITO: ERRADO

    Ainda que os custos de manutenção sejam frequentemente mais ALTOS que os custos iniciais de desenvolvimento, os processos de manutenção são considerados como mais desafiadores que o desenvolvimento do software original.


ID
2994997
Banca
FCC
Órgão
SEMEF Manaus - AM
Ano
2019
Provas
Disciplina
Engenharia de Software
Assuntos

Ao realizar a manutenção de software, a equipe de TI deve aplicar algumas métricas de modo a avaliar a eficiência do processo de manutenção de software, sendo aspectos positivos

Alternativas

ID
3053296
Banca
CESPE / CEBRASPE
Órgão
MPC-PA
Ano
2019
Provas
Disciplina
Engenharia de Software
Assuntos

No contexto da manutenção preventiva de sistemas no paradigma orientado a objetos, a refatoração é uma técnica empregada com o objetivo de

Alternativas
Comentários
  • a D está certa também, ninguém recorreu desta questão?

  • A letra E foi específica demais. Refatoração não é só isso. Melhorar uma funcionalidade, padronizar códigos, melhorar a coesão... Tudo isso é refatoração. Vejam a definição do Fowler, que se encaixa melhor com a alternativa D.

    "Refatoração é o processo de alterar o código fonte de uma maneira que não altere seu comportamento externo e ainda melhore a sua estrutura interna. É uma técnica disciplinada de limpar e organizar o código, e por consequência minimizar a chance de introduzir novos bugs". – Martin Fowler

  • Tem pelo menos 12 técnicas de refatoração. A CESPE resumiu em uma

    - Extrair Método (Extract Method

    - Mover Método (Move Method)

    - Mover Atributo (Move Field')

    - Extrair Classe (Extract Class)

    - Encapsular Atributo (Encapsulate Field)

    - Renomear Método (Rename Method)

    - Subir Método (Pull Up Method)

    - Subir Atributo (Pull Up Field)

    - Descer Método (Push Down Method)

    - Descer Atributo (Push Down Field)

    - Extrair Sub-classe (Extract Subclass)

    - Extrair Super-classe (Extract Superclass)


ID
3068194
Banca
FCC
Órgão
Prefeitura de Manaus - AM
Ano
2019
Provas
Disciplina
Engenharia de Software
Assuntos

Ao realizar a manutenção de software, a equipe de TI deve aplicar algumas métricas de modo a avaliar a eficiência do processo de manutenção de software, sendo aspectos positivos

Alternativas

ID
3172762
Banca
IF-PE
Órgão
IF-PE
Ano
2019
Provas
Disciplina
Engenharia de Software
Assuntos

Manutenção de software é o processo geral de mudança de um software após ele ter sido entregue. Um dos tipos de manutenção que podem ocorrer é a adaptação do software, que é 

Alternativas
Comentários
  • Letra A- é Adição de funcionalidade.

    Letra B- Correção de defeito.

    Letra C- Correção de defeito.

    Letra E- Correção de defeito

    Adaptação Ambiental: Esse tipo de manutenção é necessário quando algum aspecto do ambiente do sistema como o hardware, a plataforma do sistema operacional ou outro software de apoio sofre uma mudança.

    Fonte: Ian Sommerville, página 170


ID
3257305
Banca
Quadrix
Órgão
CRO-MT
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de desenvolvimento e manutenção de sistemas, julgue o item subsequente.


A compilação é um processo em que o programa é convertido em um novo arquivo que contém um código binário que pode ser executado pelo computador.

Alternativas
Comentários
  • O processo de tradução do programa escrito em uma linguagem simbólica pelo programador, chamado código fonte (source code) para a linguagem de máquina do computador chamada código objeto (object code), é chamado compilação e é realizado por um programa chamado Compilador (Compiler).


ID
3257308
Banca
Quadrix
Órgão
CRO-MT
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de desenvolvimento e manutenção de sistemas, julgue o item subsequente.


O uso de variáveis e constantes é obrigatório em um algoritmo em português estruturado.

Alternativas
Comentários
  • Item ERRADO

    O uso de variáveis e constantes é obrigatório em um algoritmo em português estruturado.

    é possivel elaborar um algoritmo que não tenha constante.

  • Você pode elaborar uma receita de bolo (algoritmo) que não precise de constantes. O obrigatório tornou a questão errada.

    Gabarito: Errado

  • Pode ser que o algoritmo tenha uma coisa e não outra, ou pode ter nenhuma dos dois.


ID
3257314
Banca
Quadrix
Órgão
CRO-MT
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de desenvolvimento e manutenção de sistemas, julgue o item subsequente.


A etapa de análise visa entender o problema e escrever códigos referentes a cada funcionalidade do sistema.

Alternativas
Comentários
  • GABARITO: ERRADO

    A etapa de LEVANTAMENTO DE REQUISITOS visa entender o problema e escrever códigos referentes a cada funcionalidade do sistema.

  • Gabarito: Errado.

    A etapa de Análise realmente visa entender o problema, mas não é o momento ainda de escrever códigos. Isso só vem na etapa de Implementação. Depois da Análise e antes da Implementação ainda temos a fase de Design (Projeto).


ID
3257317
Banca
Quadrix
Órgão
CRO-MT
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de desenvolvimento e manutenção de sistemas, julgue o item subsequente.


A manutenção de sistemas tem como objetivo corrigir erros que não foram encontrados nos estágios iniciais do desenvolvimento do sistema.

Alternativas
Comentários
  • Vale lembrar que a manutenção é justamente encontrar erros. Se não tiver erro, há alguma coisa errada.

  • A manutenção de software é o processo geral de mudança em um sistema depois que ele é liberado para uso. As alterações feitas no software podem ser simples mudanças para correção de erros de codificação, até mudanças mais extensas para correção de erros de projeto, ou melhorias significativas para corrigir erros de especificação ou acomodar novos requisitos. Sommerville.

    Logo, gabarito certo.


ID
3290539
Banca
Quadrix
Órgão
CRO-GO
Ano
2019
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de desenvolvimento e manutenção de sistemas e  aplicações, julgue o item.

Na medida em que elas crescem de tamanho, a não utilização de boas técnicas de desenvolvimento acarreta a dificuldade de se fazer manutenção em aplicações.

Alternativas
Comentários
  • Exatamente, cheio das gambiarras.

    Gabarito: Certo


ID
3576859
Banca
VUNESP
Órgão
Prefeitura de Presidente Prudente - SP
Ano
2016
Provas
Disciplina
Engenharia de Software
Assuntos

Considere as etapas a serem seguidas em uma manutenção evolutiva de software:


I. Planejamento da Versão;

II. Implementação de Alterações;

III. Liberação da Versão;

IV. Análise de Impacto.



A ordem sequencial correta de execução dessas etapas é:

Alternativas
Comentários
  • I. Planejamento da Versão;

    II. Implementação de Alterações;

    III. Liberação da Versão;

    IV. Análise de Impacto.

    1. Análise de Impacto.

    2. Planejamento da Versão;

    3. Implementação de Alterações;

    4. Liberação da Versão;


ID
3949648
Banca
FCC
Órgão
AL-AP
Ano
2020
Provas
Disciplina
Engenharia de Software
Assuntos

Em uma empresa de desenvolvimento de software, o arquiteto de solução é único e compartilhado entre todos os projetos que ela faz. Com isso, considerando que todos os projetos necessitam do arquiteto para auxiliar na validação dos modelos de dados e de software projetados, as atividades desse arquiteto devem ser planejadas conforme a disponibilidade desse recurso, sem exceder a carga horária da jornada de trabalho, podendo alterar o caminho crítico inicialmente traçado. Essa técnica é conhecida como

Alternativas
Comentários
  • Na verdade a questão trata de PMBOK

    Item 6.5 Desenvolver o cronograma

    Técnicas de otimização de recursos são usadas para ajustar o cronograma baseando-se na demanda e oferta de recursos. Entre as mais conhecidas estão:

    -Nivelamento de recursos: nivela os recursos disponíveis para o projeto, podendo alterar o caminho crítico e a data de término do projeto

    -Estabilização de recursos (Resource Smoothing): acomoda a disponibilidade de recursos modificando as atividades dentro dos tempos de folga sem alterar o caminho crítico ou a data de término do projeto.


ID
4849861
Banca
CESPE / CEBRASPE
Órgão
Ministério da Economia
Ano
2020
Provas
Disciplina
Engenharia de Software
Assuntos

Julgue os item seguinte, a respeito de respostas a incidentes, desenvolvimento de software e configuração de servidores.


Engenharia reversa consiste em descobrir a senha de um arquivo e(ou) sistema por meio de um processo de tentativa e erro.

Alternativas
Comentários
  • Descobrir a senha de um arquivo e(ou) sistema por meio de um processo de tentativa e erro seria Força Bruta e não Engenharia Reversa.

    Questão boa para visualizar um exemplo de engenharia reversa:

    A técnica que é utilizada na engenharia reversa da criptografia é:

    A -esteganografia.

    B -biometria

    C-criptoanálise.

    D-RAID.

    E-infraestrutura de chaves públicas.

  • GAB.: ERRADO.

    Descobrir senha de um arquivo e/ou sistema por tentativa e erro é denominado de de Força Bruta (Brute Force).

    Engenharia reversa aplicada à softwares, a grosso modo, é levar um código e tentar recriar ou entender a forma original do programa desejado (Analisando o ciclo de vida do programa, a engenharia reversa parte do baixo nível de abstração para o alto nível - Desenvolvimento --> Requisitos --> Sistema).

    Dentre os principais usos da Engenharia Reversa, estão:

    1 - Tornar possível interagir com o código legado (onde você não possui código fonte original).

    2 - Romper a proteção contra cópia (ou seja, envie para seus amigos e economize alguns $$).

    3 - Estudos sobre virii (plural de vírus) e malware.

    4 - Avaliação da qualidade e robustez do software.

    5 - Adicionar funcionalidades ao software existente

    Fonte: https://medium.com/@leonardomarciano/engenharia-reversa-1-in%C3%ADcio-de-uma-grande-aventura-9526447ee50e

  • ERRADO.

    Ataque de força bruta: descobrir a senha de um arquivo e(ou) sistema por meio de um processo de tentativa e erro.


ID
5306980
Banca
SELECON
Órgão
EMGEPRON
Ano
2021
Provas
Disciplina
Engenharia de Software
Assuntos

São possíveis razões para uma alta priorização da avaliação operacional de um sistema:

Alternativas

ID
5315530
Banca
SELECON
Órgão
EMGEPRON
Ano
2021
Provas
Disciplina
Engenharia de Software
Assuntos

O tipo de manutenção em que, por meio de inspeções periódicas para realizar a intervenção no equipamento, observam-se fenômenos, como temperatura acima do normal, vibração e ruídos excessivos, entre outros, é:

Alternativas

ID
5315536
Banca
SELECON
Órgão
EMGEPRON
Ano
2021
Provas
Disciplina
Engenharia de Software
Assuntos

Na Manutenção Centrada na Confiabilidade, segundo Siqueira (2014), é comum classificar as funções em quatro categorias principais. Dessa forma, a categoria que tem como propósito modificar os objetivos do sistema é a:

Alternativas

ID
5574265
Banca
IDECAN
Órgão
IF-CE
Ano
2021
Provas
Disciplina
Engenharia de Software
Assuntos

Manutenção de software é o processo geral de mudança em um sistema depois de liberado para uso, já em produção. A seguir são apresentadas as características de três modalidades de manutenção de software:

I. Modificações no software para corrigir defeitos em requisitos, projeto e código. Devido à natureza “ad hoc”, pode gerar outros problemas como aumento de complexidade.
II. Modificações no software para prevenir potenciais problemas no futuro, prevenir falhas e melhorar a manutenabilidade. Essa atividade torna os programas mais fáceis de entender e facilita trabalhos de manutenção futuros.
III. Modificações para manter o software usável devido às alterações no ambiente externo, em constante evolução, mesmo quando defeitos não existem.

As modalidades de manutenção em I, II e III são conhecidas, respectivamente, como

Alternativas
Comentários
  • I - o enunciado nos dá ideia de que algo precisa ser corrigido.

    II - mostra que precisa prever possíveis situações

    III - Em "Modificações para manter o software usável" indica adatação