SóProvas



Prova UFBA - 2009 - UFBA - Analista de Tecnologia da Informação


ID
425005
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

As Abordagens Evolucionárias de desenvolvimento de software permitem determinar, de forma precisa, o número de ciclos necessários para a construção do produto.

Alternativas
Comentários
  • As Abordagens Evolucionárias NÃO permitem determinar, de forma precisa, o número de ciclos necessários para a construção do produto. Pois, o número de ciclos pode ir muito além do que se foi estimado no início do projeto...
  • Abordagens Evolucionárias são indicadas quando os requisitos de software ainda não estão muito bem definidos ou são instáveis. Por isso não há como determinar de forma precisa o número de ciclos necessários para a construção do produto.
  • Os modelos de processo evolucionario produzem uma versao cada vez mais completa do software a cada iteracao.
    Fonte: Pressman, Roger. Engenharia de Software, 7th Edição pág 62.


    Com isto a cada vez que se passa pela fase de análise, novos requisitos surgem alterando o projeto inicial e por este motivo não se tem como medir de forma precisa o número de ciclos.
  • Está sempre Evoluindo....

  • Kayto,

    Seus comentários são os piores que já ví. Para não dizer outra coisa.

    Att.

ID
425008
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

O produto resultante de cada iteração do processo de software Rational Unified Process — RUP — é uma versão executável do sistema.

Alternativas
Comentários
  • "Cada iteração termina com a liberação de um produto executável"
    Fonte: http://www.wthreex.com/rup/process/workflow/manageme/co_phase.htm
  • Cada fase no RUP pode ser dividida em iterações. Uma iteração é um loop completo de desenvolvimento que resulta em um release (interno ou externo) de um produto executável, um subconjunto do produto final em desenvolvimento, que cresce por incrementos, a cada iteração, para se tornar o sistema final.

    Fonte: http://www.wthreex.com/rup/process/workflow/manageme/co_phase.htm
  • Iteração = problema dividido em partes menores.

    Cada iteração no RUP passa pelas disciplinas:
    - Modelagem de negócios
    - Requisitos
    - Análise e Projeto
    - Implementação
    - Testes
    - Implantação
    As disciplinas de suporte também podem fazer parte da iteração, que são:
    - Gerência de Projetos
    - Ambiente
    - Gerência de configuração e mudanças

    Cada passagem pelas disciplinas representa uma iteração. 
  • Só complementando o comentário do colega Rodrigo Gomes:

    Cada iteração não necessariamente passará por todas as disciplinas. Por exemplo, na iniciação não há passagens pela disciplina de implantação.

  • correto - cada iteração resulta em product release, uma versao funcional do sistema


ID
425011
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Em sistemas grandes e complexos, a determinação das conexões entre os requisitos torna-se geralmente uma tarefa difícil, sendo que as Tabelas de Rastreamento constituem uma ferramenta que ajuda a minimizar essa dificuldade.

Alternativas
Comentários
  • http://www.cin.ufpe.br/~if716/arquivos/9-GerenciamentoRequisitos.pdf
  • Quando um sistema é grande e complexo, determinar as "conexões" entre os requisitos pode ser uma tarefa difícil. Tabelas de Rastreamento podem ser utilizadas para tornaqr o serviço um pouco mais fácil.

    As tabelas de rastreamento relacionam os requisitos identificados a um ou mais aspectos do sistema ou de seu ambiente.

    Alguns tipos de tabelas de rastreamento:

    Tabela de rastreamento de características;
    Tabela de rastreamento de fontes;
    Tabela de rastreamento  de dependência;
    Tabela de rastreamento  de subsistemas, e
    Tabela de rastreamento de interface.

    Pressman, 6a.Ed.pp.121

ID
425014
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Arquitetura de Software
Assuntos

Numa arquitetura cliente-servidor do tipo Cliente-Magro, as alterações no software da aplicação obrigam a sua reinstalação em cada computador cliente.

Alternativas
Comentários
  • 93

    Segundo Ian Sommerville, 8ªed, p 271:

    Thin-Client:
    All of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software;

    Fat-Client:
     The server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user.

    93,93/93
  • Eu marquei o que a banca queria, mas discordo da resposta, usando a própria definição acima de de sommerville, uma alteração na interface (parte do thin client) obriga a sua reinstalação em cada computador cliente. Concordam ?
  • Bruno, não necessariamente. Considerando que o cliente só está utilizando a parte de interface do sistema, se essa alteração for algo na lógica apenas, a reinstalação não seria necessária. Porém, se a alteração do software envolvesse uma alteração dos campos de interação com o cliente, daí sim seria necessário uma reinstalação ou update nos computadores clientes.

ID
425017
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

No processo de software baseado em componentes, cada componente projetado para reuso é uma entidade executável independente, que deve manipular exceções.

Alternativas
Comentários
  • No processo de software baseado em componentes, cada componente projetado para reuso é uma entidade executável independente, que deve manipular exceções.(Acredito que o erro seja esse)
  • O problema da questão está em "Que deve  manipular exceções", não é obrigatório que todo componente manipule exceção. Pode haver alguns que manipule.
  • No livro de sommerville tem que:

    "Componentes podem ser acessados com alguma infra-estrutura de integração e às vezes esses componentes são sistemas propriamente ditos."

    Ou seja, às vezes, não é sempre que componentes são sistemas completos que possivelmente tratam suas exceções.


  • Segundo Sommerville pag. 297 parágrafo 5: "Os componentes não devem tratar as exceções por si mesmos, pois cada aplicação terá seus próprios requisitos para tratamento de exceções. Antes, o componente deve definir quais exceções podem surgir e publicá-las como parte da interface".

    Resposta: Errado

    Fonte: Engenharia de Software 8ª Edição. Sommerville
  • O "processo de software baseado em componentes" são considerados, na literatura, como sendo de um nível mais algo de abstração do que os objetos (que são implementações, códigos), sendo assim não há obrigação de "uma entidade executável independente", como diz a questão. Pode haver ou não, a pergunta afirma, está errado isso.


ID
425020
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Raciocínio Lógico
Assuntos

A probabilidade total de falha de um sistema que possui N componentes distintos e independentes é dada pelo produto das probabilidades de falha desses componentes.

Alternativas
Comentários
  • Questãozinha perigosa porque parece muito óbvia... 

    Pelo enunciado "N componentes distintos E independentes" já dá uma vontade de usar a fórmula P (A^B) = p (A). p (B)                       (^ = interseção )

    Mas a ideia na verdade é que as peças não dependem umas das outras.
    Imagine a tal máquina com N=2 por exemplo, se 1 quebrar a máqquina para, OU se a 2 quebrar a máquina para.
    Logo, temos que a probabilidade da máquina parar é a  UNIÃO das probabilidades de cada peça, assim é a SOMA de todas as probabilidades.
    Lembra: p (AUB) = p (A) + p (B) - p (A ^ B)            p (A ^ B) = 0 pois as peças são independentes!

    Boa sorte e bons estudos para nós!

  • Giovana, excelente sua explciacao mas matei essa questao em 5 segundos sem precisar de tanta teoria e vou divulgar ok?
    Nesse caso, a falha no sistema depende apenas da falha de um componente. Ou seja se qualquer um dos N componentes falhar, o sistema ja falhou, por isso nao seria produto das probabilidades e sim a soma da probabildiade de falha de qualquer um dos N componentes. por isso marquei errado.
    Bons Estudos
  • questao ambígua..eu raciocinei como voces, porém ao reler o enunciado "probabilidade total de falha de um sistema " achei q esse TOTAL se referia justamente a q o sistema falharia apenas se o TOTAL das peças falharem.. aí marquei correto, e errei a questao


ID
425023
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

A programação de N-versões utilizada em sistemas críticos caracteriza-se pela implementação de uma série de versões de código referentes a uma mesma especificação de software, as quais são executadas de forma paralela em computadores distintos.

Alternativas
Comentários

ID
425026
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Os componentes de um executivo de tempo-real típico são o relógio de tempo real, o manipulador de interrupções, o escalonador, o gerenciador de recursos e o processador.

Alternativas
Comentários
  • O núcleo de um sistema operacional é algumas vezes chamado de EXECUTIVO em tempo real. Algumas das funções executadas por ele são:
    • chaveamento entre programas
    • controle e programação de dispositivo de hardware
    • gerenciamento de memória
    • gerenciamento de processos
    • escalonamento de tarefas
    • comunicação entre processos
    • processamento de exceções e de interrupção
    Fonte: http://www.oficinadanet.com.br/artigo/851/o_que_e_um_sistema_operacional


    Leia mais no Oficina da Net: O que é um sistema operacional?
  • Qual o erro dessa questão ????

    help...
  • Acho que o erro é a palavra "processador", que sozinha faz alusão ao hardware da CPU. Isso obviamente não é parte do sistema operacional (software).
  • O erro é "..relógio de tempo real..". Oque o executivo leva em conta é o clock do processador e não o relogio de tempo real.

ID
425029
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Diante da possibilidade real de os usuários de sistemas interativos cometerem erros que configuram ações destrutivas, o projeto de interfaces deve contemplar mecanismos que permitam reverter os danos causados por essas ações.

Alternativas
Comentários
  • Segundo Pressman, os princípios para projeto de interfaces do usuário que faz referência a questão acima:
    (1) Definir modos de interação para não forçar um usuário a realizar ações desnecessárias ou indesejadas 
    (3) Possibilitar que a interação de usuário possa ser interrompida desfeita
    Por não encontrar algo específico de sistemas interativos, resolvi colocar mesmo assim os dois princípios acima que podem responder a questão. Questão simples e sem questionamentos.
    (Fonte: Engenharia de Software - Uma abordagem Profissional, Roger Pressman, 7 ed, Cap 11)

ID
425032
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Os testes de software Caixa-Branca examinam o comportamento interno do componente de software.

Alternativas
Comentários
  • Teste Caixa-Branca

              O Teste Caixa-Branca, também chamado de teste da caixa-de-vidro, é uma filosofia de projeto de casos de teste que usa a estrutura de controle descrita como parte do projeto no nível de componentes para derivar casos de teste. Usando métodos de teste caixa-branca, o engenheiro de software pode criar casos de teste que (1) garatam que todos os caminhos independentes de um módulo foram exercitados pelo menos uma vez, (2) exercitam todas as decisões lógicas nos seus estados verdadeiro e falso, (3) executam todos os ciclos em seus limites e dentro de suas fronteiras operacionais, e (4) exercitam estruturas de dados internas para assegurar a sua validade.

    Ref: Pressman

ID
425035
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

A Associação de Inclusão geralmente é usada quando existe um serviço, situação ou rotina comum a mais de um Caso de Uso.

Alternativas
Comentários
  • <<include>>: Obrigatórios
    <<extends>>: opcional
  • No contexto de casos de uso você pode ter uma inclusão no qual o caso incluído passa a fazer parte do outro include ou extensão extend onde é incorporado o comportamento de outro caso de uso.
  • A associação de Inclusão costuma ser utilizada quando existe um serviço, situação ou rotina comum a mais de um Caso de Uso. Quando isso ocorre, a documentação dessa rotina é colocada num Caso de Uso específico para que outros Casos de Uso utilizem-se desse serviço, evitando-se descrever uma mesma sequência de passos em vários Casos de Uso. Os relacionamentos de Inclusão indicam uma obrigatoriedade, ou seja, quando um determinado Caso de Uso possui um relacionamento de Inclusão com outro, a execução do primeiro obriga também a execução do segundo. Uma associação de Inclusão é representada por uma reta tracejada contendo uma seta em uma de suas extremidades que aponta para o Caso de Uso incluído no Caso de Uso posicionadado do outro lado da reta. As associações de Inclusão costumam apresentar também um Estereótipo contendo o texto include, entre dois sinais de menor e dois sinais de maior (include).



ID
425041
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

O operador UNION combina os resultados de duas ou mais consultas em um único result set, retornando todas as linhas pertencentes a todas as consultas envolvidas na execução, sendo que, para evitar a ocorrência de linhas duplicadas no result set final, o filtro DISTINCT deve ser usado.

Alternativas
Comentários
  • UNION, por padrão, elimina as linhas duplicadas. A menos que você especifique UNION ALL, nesse caso ele mantém as duplicadas.

    Para que o UNION sejá válido temos que ter duas relações com o mesmo número de colunas e as colunas devem ter o mesmo tipo de dados.

    O mesmo vale para a operação INTERSECT.
  • O próprio operador executa um SELECT DISTINCT.

  • Pessoal,

    Gostaria de tirar uma dúvida.

    A expressão "(...) de duas ou mais consultas" está correta?

    Entendo como consulta a utilização do comando SELECT. O operador UNION permite a utilização de MAIS DE 2 comandos SELECT?

    Conforme prof. Marcio Victorino:

    "UNION:
    • Operador binário;
    • Constrói uma relação consistindo em todas as tuplas que aparecem nas relações específicas.
    • As DUAS relações devem possuir o mesmo número de colunas e cada par de colunas correspondentes deve possuir o mesmo domínio (compatíveis para união)."

    Com isso, essa parte da questão também estaria incorreta?

    O que vocês acham?
    "

ID
425044
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Em um Diagrama de Gráfico de Estados, um Estado de História representa o registro do último subestado em que um objeto se encontrava, quando, por algum motivo, o processo foi interrompido

Alternativas
Comentários
  •  Um estado complexo pode ser dividido em diagramas de nvel inferior, denominados
    estados compostos ou subestados.
    ê Algumas simulac~oes de engenharia podem demorar varios dias. Como os computa-
    dores falham, e importante criar mecanismos que permitam o reincio da simulac~ao
    do ponto em que parou. Para facilitar a criac~ao destes pontos, os diagramas de ma-
    quina de estado acrescentaram o conceito de estado de historia, representado pela
    letra "H". As informac~oes do sistema s~ao armazenadas de tal forma que permitam
    o reincio da simulac~ao a partir deste ponto

ID
425059
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Em um relacionamento, a cardinalidade mínima de uma entidade com participação parcial é um.

Alternativas
Comentários
  • Pode existir cardinalidade 0..*
  • Quando a cardinalidade mínima é 1, a participação torna-se obrigatória, ou seja, necessita ter essa relação. Quando a cardinalidade mínima é 0, a participação é parcial, pode ter a relação ou não.
  • Em um relacionamento, a cardinalidade mínima de uma entidade com participação TOTAL é um

  • ERRADO

    A cardinalidade mínima é 1, logo, a participação será obrigatória, e não parcial.


ID
425062
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um thread pode ceder seu tempo de processamento a outro thread de prioridade mais baixa.

Alternativas
Comentários
  • Exatamente o contrário.
    Threads de prioridade mais baixa sofrem preempção em detrimento a threads de mais alta prioridade
  • Esse item é estranho. Quando li o que eu entendi é que voluntariamente ou por alguma operação de IO, uma thread pode deixar de rodar e ceder o tempo a que tinha direito a outra thread. "Ceder" dá essa ideia de que não foi um processo involuntário e forçado, caso de uma preempção. Acho que o item poderia ser anulado.
  • Tbm achei estranho!
    Mas acho que o problema é questão da redação do enunciado.

    Imagina o enunciado desta forma, trocando "baixa" por "alta":
    "Um thread pode ceder seu tempo de processamento a outro thread de prioridade mais alta."
    Continuaria errado?

    Eu creio que sim.
    Acho que o thread não pode "ceder" seu tempo de processamento para qualquer outro thread. Esse é uma decisão do escalonador, não da thread.
    O thread pode pular fora antes do término do seu tempo de processamento (se acabou sua tarefa ou se há espera por E/S) mas quem vai assumir o processador não é competência dela.

    Algum comentário que possa esclarecer mais?
  • Dependendo do algoritmo que for usado, pode sim haver cessão de uma thread de prioridade mais alta para outra mais baixa, imagina uma situação em que a thread de prioridade mais alta ocupa o processador por um tempo muito longo , em algum momento ela terá que ceder para demais thread's .. questão questionável , uma vez que isso dependerá do algoritmo de escalonamento que não foi citado em nenhum momento.


    Bons Estudos
  • O conceito de thread eh semelhante ao de processos. Uma thread de prioridade inferior só será executada quando as de prioridade superior se encontram no estado bloqueado. Quando uma thread bloqueia, a JVM, no caso do java, escolhe uma das próximas threads de prioridade mais alta e executa-a. A suspensão da execução de uma thread é possível com vista a lançar a execução de outra de igual prioridade.
  • Porra, e thread.yield() faz o q?

  • O thread(ou processo) não tem interferência no sistema operacional sobre qual o próximo thread será escalonado para o processador. Essa é uma decisão do SO que dependente do algoritmo de escalonamento.

    A Thread pode até mesmo se colocar para dormir, como o colega Walking Nerd sugeriu, mas isso não garante que o processador vá escalonar um thread de prioridade mais baixa ou que o próxima thread terá um tempo de processamento maior porque recebeu mais tempo de processador de outra thread.

    Essa é aquela questão que por ser simples e direta, a pessoa fica achando que tem uma pegadinha...

     


ID
425065
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um thread deamon impede o programa de terminar.

Alternativas
Comentários
  • deamon são programas carregados em memória que ficam a espera de conexões.
    Um  exemplo de deamon é o servidor de ssh do linux sshd.
  • Os daemons são programas que ficam em segundo plano, executando ações de manutenção, administração do sistema, etc.
    Por exemplo, o daemon kswapd é um dos responsáveis pelo gerenciamento de memória no Linux.
    Normalmente os daemons possuem a letra "d" no final de seus nomes.

    O item é errado porque, além de estar totalmente fora de contexto, os daemons não vão impedir os programas terminarem.
  • Uma thread do tipo deamon roda sempre como um “pano de fundo” da thread que a criou.
    Uma thread deamon termina quando a thread que a criou também terminar.
    Portanto não vai impedir que o programa termine.
  • na questão fala ENTRE, o intervalo de 15 a 20 compreende 17. Nenhuma das outras o 17 engloba, por isso D é a resposta correta


ID
425068
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Programação
Assuntos

Atribuir null à referência de um objeto marca esse objeto para a coleta de lixo, caso não haja outra referência ao objeto.

Alternativas
Comentários
  • O objetivo da coleta de lixo é excluir objetos que não podem mais ser alcançados, ou seja, não pode ser mais executados.

    Quando fazemos uma atribuição null a um objeto a referencia a ele fica desativada ou inalcançável

    Bom, é mais ou menos isso não to lembrado direito.

    gabarito: C
  • O controlador de lixo não é controlado pelo programador e sim pela Máquina Virtual Java que decide quando executá-lo.

    Um objeto se torna disponível para o coletor de lixo quando não há mais referências a ele que possam ser alcançadas, ou seja, o objeto não possui ninguém apontando para ele, ele está simplesmente flutuando no espaço de memória.

    Para fazer isso basta apontar para null a variável de referência que estiver apontando para ele.


ID
425071
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Programação
Assuntos

O bloqueio do objeto que ocorre com a execução dos métodos synchronized poderia levar a um deadlock, se os bloqueios não fossem liberados nunca.

Alternativas

ID
425074
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Programação
Assuntos

O bloco finally em uma instrução try – catch – finally sempre será executado quer ocorra ou não uma exceção no bloco try.

Alternativas
Comentários
  • Embora o gabarito oficial tenha considerado a questão como Certa existe excessões ao texto da sentença. Uma delas é simples, invocar a saída do sistema em uma das condições de catch ou um Error. Abaixo há um exemplo de código:

     try{
               System.out.println("Try");
               throw new Exception("error");
              
           }catch(Exception e){
              System.out.println("Catch");
              System.exit(1);
           }finally{
               System.out.println("Teste");
           }

    No exemplo acima a saída será:
    >> Try
    >> Catch

    Note que ele não entrará no finally porque o programa invoca a saída "System.exit(1)" dentro do Catch. Assim há sim condições em que o finally não é executado e esse seria um importante argumento para alterar o gabarito caso a banca tivesse sensibilidade.
    Abraço e Bons Estudos.
  • complementando: mesmo comandos como break, return ou continue não impedirão do finally ser executado.

ID
425077
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Programação
Assuntos

FlowLayout, BorderLayout e GridXYLayout são gerenciadores de layout da interface gráfica.

Alternativas
Comentários

ID
425080
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Programação
Assuntos

ActionListener e MouseListener são algumas das interfaces ouvintes de eventos do pacote java.awt.event.

Alternativas
Comentários