Foram encontradas 910 questões.
- Compilação e Interpretação de CódigoDescompilação
- Manutenção e Evolução de SoftwareEngenharia Reversa
A engenharia reversa é um processo que trabalha com um produto existente, como um software ou um hardware, tentando entender como esse produto funciona, o que ele faz e como ele se comporta em várias circunstâncias. Um processo que apoia a engenharia reversa é
Provas
A metodologia de desenvolvimento orientado por testes (sigla, em inglês, TDD) propõe escrever casos de testes automatizados baseados nos requisitos do software a ser desenvolvido para, depois, desenvolver o software. No que respeita ao TDD,
Provas
O Git foi construído para ser uma ferramenta de controle de versão distribuída e permite compartilhar projetos em repositórios remotos. Após o commit local de alterações realizadas em um projeto compartilhado, a fim de enviar essas alterações para a branch master do repositório remoto, deve-se utilizar o comando
Provas
A ferramenta de controle de versão Git surgiu em 2005 a partir da necessidade de substituir uma ferramenta de controle de versão utilizada pela comunidade de desenvolvimento do Linux. Os arquivos no Git podem estar nos estados tracked e untracked. Arquivos no estado tracked podem ser unmodified, modified, ou staged. No Git,
Provas
- Arquitetura e Design de SoftwareArquitetura em Camadas
- LinguagensJavaApplets Java
- Servidores de AplicaçãoJ2EE/Java EE
A plataforma Java EE utiliza um modelo de aplicação multicamada distribuído, permitindo dividir a lógica da aplicação em componentes de acordo com sua função. A aplicação Java EE é dividida em quatro camadas: camada cliente; camada web; camada de negócio; e camada EIS (Enterprise Information System). Um exemplo da camada cliente é
Provas
Exceção é um evento que ocorre durante a execução de um programa e interrompe o fluxo normal das instruções de execução. O Java fornece três componentes para manipular exceções: os blocos try, catch e finally. Sobre o tratamento de exceções na linguagem Java,
Provas
Uma das vantagens do operador condicional ternário da linguagem Java é poder escrever código if-then-else em apenas uma linha. Nesse sentido, considere o trecho de código abaixo.
if (nota >= NOTA_MIN && nota < NOTA_APROVACAO) status = "RECUPERAÇÃO";
else if (nota < NOTA_MIN) status = "REPROVADO";
else if (nota >= NOTA_APROVACAO) status = "APROVADO";
Esse trecho de código pode ser reescrito da seguinte forma:
Provas
A linguagem Java introduziu o Generics na versão SE 5, o que permitiu parametrizar tipos na definição de classes, interfaces e métodos. No trecho de código abaixo, há a implementação de duas classes, uma utilizada para calcular a nota em uma disciplina de alunos de graduação e outra para alunos de pós-graduação.
public class CalculaNotaGraduacao extends CalculaNota<AlunoGraduacao> {
public double calculaNota(AlunoGraduacao aluno) {
double nota = 0; // trecho de código omitido return nota;
}
}
public class CalculaNotaPosGraduacao extends
CalculaNota<AlunoPosGraduacao>{
public double calculaNota(AlunoPosGraduacao aluno) {
double nota = 0;
// trecho de código omitido
return nota;
}
}
A classe pai utilizada no trecho de código acima pode ser implementada pelo seguinte trecho de código:
Provas
Uma das principais novidades da versão 8 do Java foi a adição de expressões lambda e a API Streams. Essas adições permitem escrever um trecho de código Java mais simples. Pensando nisso, um analista de TI resolveu editar o método abaixo, utilizado para calcular a média simples de um array de notas.
public double media(double notas[]) {
double media = 0;
for (double i : notas)
media += i;
media /= notas.length;
return media;
}
Uma possível reescrita desse método é
Provas
Para responder à questão, considere a situação abaixo.
Em uma instituição de ensino, o Índice de Desempenho Acadêmico do aluno de graduação é obtido calculando-se a média simples das notas nas disciplinas por ele cursadas. Já para os alunos de pós-graduação, que têm conceito em vez de nota na disciplina, o valor do Índice de Desempenho Acadêmico é calculado utilizando-se uma equivalência entre conceito e nota: o conceito A vale 10; B vale 8; C vale 6; D vale 4 e o conceito E vale zero. O analista de TI implementou, em Java, o cálculo do Índice de Desempenho como visto no trecho de código simplificado abaixo.
public abstract class Aluno {
protected boolean indiceAcademico;
public void calculaIndiceAcademico() {
indiceAcademico = 0;
}
// método que retorna um array com as notas das disciplinas do aluno
public abstract double[] carregaNotasDisciplinasAluno();
// método que retorna um array com os conceitos (de A a E)
// das disciplinas do aluno
public abstract char[] carregaConceitosDisciplinasAluno();
}
public class AlunoGraduacao extends Aluno {
public void calculaIndiceAcademico() {
double notasDisciplinas[] = carregaNotasAluno();
double media = 0;
if (notasDisciplinas == null) return 0;
for (double nota : notasDisciplinas) media += nota;
indiceAcademico = media / notasDisciplinas.length;
}
// outros métodos omitidos
}
public class AlunoPosGraduacao extends Aluno {
public void calculaIndiceAcademico() {
char conceitosDisciplinas[] = carregaConceitosDisciplinasAluno();
double media = 0;
if ( conceitosDisciplinas == null) return 0;
for (char conceito : conceitosDisciplinas) {
switch(conceito) {
'A' : media += 10; break;
'B' : media += 8; break;
'C' : media += 6; break;
'D' : media += 4; break;
'E' : media += 2; break;
}
indiceAcademico = media / conceitosDisciplinas.length;
}
}
// outros métodos omitidos
}
No trecho de código public class AlunoGraduacao extends Aluno, a palavra-chave extends implementa o conceito de
Provas
Caderno Container