• Nenhum resultado encontrado

Engenharia de Software

N/A
N/A
Protected

Academic year: 2021

Share "Engenharia de Software"

Copied!
7
0
0

Texto

(1)

INSTITUTO SUPERIOR TÉCNICO

Engenharia de Software

LEIC/LETI, 3o Ano, 2o Semestre

1

o

Teste, 21 de Abril de 2016

Duração: 90 minutos

Nome: Número:

• Este teste tem um conjunto de10 perguntas de escolha múltipla, e um conjunto de 3 perguntas de resposta aberta.

Escreva o seu número em todas as folhas da prova. O tamanho das respostas

deve ser limitado ao espaço fornecido para cada questão. Pode responder a lápis. • Em cima da mesa devem estar apenas: enunciado, material de escrita ecartão de aluno. Apenas são permitidas folhas de rascunho fornecidas pelos docentes que

devem ser devolvidas no final.

• A utilização dede qualquer aparelho electrónico (tais como telemóveis,

calcula-doras, etc)implica a anulação imediata do teste.

Leia cuidadosamente as perguntas de escolha múltipla ecoloque na grelha a letra

correspon-dente à resposta correta para cada pergunta. Por favor, use apenasletras maiúsculas. Se não responder a uma determinada pergunta, marque a resposta com um X.

A classificação das perguntas de escolha múltipla é feita da seguinte forma: uma resposta correta vale 0,5; uma resposta errada vale -0,2; uma pergunta não respondida vale 0. Por isso, no

caso de não saber responder a uma determinada pergunta é preferível deixar a pergunta por responder.Para cada pergunta deve escolher a que considera mais correta.

Respostas às questões de escolha múltipla (componente teórica):

1. 6. 2. 7. 3. 8. 4. 9. 5. 10.

Não preencher. Reservado para a correcção.

(2)

Perguntas de escolha múltipla

1. Num sistema de controlo de versões distribuído, no fluxo de trabalho baseado em ramos

de funcionalidades (feature branching):

A) As diferentes funcionalidades são desenvolvidas no master. B) Todos os commit são rebased no master.

⇒ C) Quando prontas, as funcionalidades são fundidas (merged) no código princi-pal.

D) Todas as funcionalidades são realizadas num só ramo independente e

reba-sed no fim.

2. Na metodologia de desenvolvimento ágil Scrum:

⇒ A) O Scrum Master é responsável por proteger a equipa de interferências exter-nas.

B) O Product Owner é responsável por decidir o conteúdo do sprint backlog. C) O Scrum Master é responsável por distribuir as tarefas pelos membros da

equipa.

D) Os membros da equipa de deesenvolvimento decidem o que deve ser

colo-cado no product backlog.

3. Indique qual das seguintes frases é falsa:

⇒ A) Um simulador de um jogo de xadez é um sistema do tipo S.

B) Nos sistemas do tipo E o problema varia ao longo do tempo.

C) Nos sistemas do tipo P a abstração pode variar ao longo do desenvolvimento. D) Nos sistemas do tipo S não é necessário definir uma abstração.

4. A operação de fetch em Git

A) Traz ficheiros do repositório remoto para o repositório local e os mesmos

ficam no estado staged.

B) Corresponde a colocar todos os ficheiros locais no estado staged.

C) Corresponde a passar todos os ficheiros do estado modified para o estado

staged.

⇒ D) Nenhuma das anteriores.

5. No processo de desenvolvimento de software Exteme Programming:

A) O cliente é responsável por definir as tarefas em que se decompõe uma

his-tória.

B) Neste processo de desenvolvimento não se realizam reuniões pois

considera-se que estas repreconsidera-sentam apenas uma perda de tempo.

C) O programador decide que histórias é que devem fazer parte de cada versão.

(3)

6. As asserções servem para:

A) Fornecer um mecanismo simples de tratamento de erros em testes de

soft-ware.

B) Para evitar que o código execute o invariante quando é detectado um erro.

⇒ C) Para detetar assunções e outros invariantes existentes no código.

D) Para documentar situações de erro onde não é permitido lançar excepções

de domínio.

7. Quando se deteta uma falta deve-se procurar identificar as causas da falta para: A) Ajudar a corrigir o código com o auxílio de um depurador de código

(debug-ger).

B) Penalizar o membro da equipa responsável pela falta para que este não a

volte a repetir.

⇒ C) Inferir que outros tipos de faltas semelhantes o programa pode ter.

D) Ajudar a descobrir outras falhas. 8. No padrão arquitetural canais-e-filtros:

A) A execução dos filtros é sequencial. B) Os canais transformam os dados.

C) A sua aplicação em sistemas interativos é aconselhada.

⇒ D) Os filtros são independentes entre si.

9. No controlo de qualidade do software:

A) A qualidade do software pode ser medida com rigor pois existem métricas

quantitivas.

⇒ B) A qualidade de alguns atributos é difícil de avaliar.

C) A qualidade do processo e a qualidade do produto são independentes, pelo

que devem ser medidas separadamente.

D) A parte subjectiva da qualidade deriva das suas características funcionais. 10. Para prioritizar o risco deve considerar:

A) Em que medida o risco afecta o negócio.

B) A capacidade de desenhar uma arquitectura de software que resolva o risco.

⇒ C) O seu impacto, probabilidade e possibilidade de controlo.

(4)

Perguntas sobre a componente prática

O projeto MYDRIVE desenvolvido durante a execução da disciplina de Engenharia de

Software permite a criação e gestão de um sistema de ficheiros transacional hierárquico onde os utilizadores manipulam ficheiros e diretorias. Suponha agora que se pretende acrescentar os seguintes requisitos:

• A aplicação deve suportar ficheiros de texto cujo conteúdo se encontra localizado remotamente num servidor (proxy). Estes ficheiros de texto com conteúdo remoto possuem um endereço que é constituído por duas partes: o endereço do servidor e a localização (caminho no sistema de ficheiros remoto) dentro do servidor. Cada servidor é referido pelo seu endereço (cadeia de carateres) único no sistema e iniciado por http:// (sugere-se a utilização do método startsWith() da classe String). A aplicação suporta um máximo de 10 servidores, estando cada ficheiro de conteúdo remoto associado ao respetivo servidor. A existência do ficheiro de texto remoto só necessita ser garantida quando é realizado um acesso ao seu conteúdo.

(5)

11. (2.0) Altere o domínio da aplicaçãoMYDRIVE, com recurso à Fénix Framework, de forma a que

a nova informação respeitante aos novos requisitos seja toda adequadamente persistida. Modele as alterações ao domínio usando a Domain Modeling Language (DML).

NOTA:

Os conceitos de User, File, Manager, Dir e Plain já se encontram definidos na aplicação desenvolvida pelo que não é necessário defini-los outra vez, a não ser que tenham que ser alterados. Neste caso escreva apenas as alterações a realizar, não sendo necessário concretizar totalmente a entidade em causa.

Solução:

class Proxy extends File { String path; } class Server { String address; } relation ProxyHasServer {

Proxy playsRole proxy { multiplicity *; } Server playsRole server;

}

relation ManagerHasServer { Manager playsRole manager;

Server playsRole server { multiplicity 0..10; } }

Nota: alternativamente, pode usar o conteúdo de Plain fazendo class Proxy extends Plain;

(6)

12. (2.0) Tendo em conta a arquitetura em camadas aplicada no desenvolvimento da aplicação

MYDRIVE, altere a camada dedomínio (o que inclui novos métodos, classes e alteração

de métodos já existentes, caso seja necessário) por forma a concretizar os novos requi-sitos. O código realizado no domínio da aplicação deve estar protegido contra utilização indevida por parte dos programadores que utilizam as classes do domínio.

NOTA:

Assuma nesta e nas restantes perguntas que qualquer classe de exceção que pretenda utilizar já se encontra concretizada, não sendo assim necessário concretizá-la.

Pode também utilizar métodos que já tenha definido no seu projeto, necessitando apenas de indicar a sua assinatura e o que eles fazem.

Solução:

public class Proxy extends Proxy_Base { public Proxy(Server serv, String path) {

setServer(serv); setPath(path); }

}

public class Server extends Server_Base { public Server(Manager m, String addr) {

setAddress(addr); setManager(m); }

@Override

public void setAddress(String addr) { if (!addr.startsWith("http://"))

throw new RuntimeException("Invalid address: "+addr); for (Server s: getManager().getServerSet())

if (s.getAddress().equals(addr))

throw new RuntimeException("Duplicate address: "+addr); super.setAddress(addr);

}

@Override

public void setManager(Manager m) { m.addServer(this);

} }

public class Manager extends Manager_Base { /* ... */

@Override

public void addServer(Server ser) { for (Server s: getServerSet())

if (ser.getAddress().equals(s.getAddress()))

throw new RuntimeException("Duplicate server: "+ser.getAddress()); super.addServer(ser);

} }

(7)

13. (1.0) Considere os requisitos concretizados na pergunta anterior em conjunto com os definidos

no projeto que se aplicam à criação da entidade servidor.

Indique os vários casos de teste que devem ser desenvolvidos para testar esta funcio-nalidade.

Solução:

sucesso : o servidor tem um endereço válido, ainda inexistente no sistema

e o limite de 10 servidores ainda não foi atingido;

endereço inválido : o endereço não começa por http://;

endereço duplicado : o endereço é válido, mas já existe um servidor com

mesmo endereço;

limite de 10 servidores excedido : o novo servidor tem endereço válido e

não existente no sistema, mas o limite de 10 servidores foi atingido.

Matriz das perguntas de escolha múltipla (4 versões): pergunta A B C D 1 C D A B 2 A C B C 3 A B D D 4 D D D D 5 D D D D 6 C D A B 7 C D A B 8 D C B A 9 B A D C 10 C D A B

Referências

Documentos relacionados

Partido dos valores expresso na tabela da figura pretende-se saber para as mulheres (género =F) qual o valor médio dos salários contabilizando apenas as que têm salários a partir

1. Rejeita-se a hipótese de independência num teste de dimensão 1%. Rejeita-se a hipótese de independência num teste de dimensão 5%. Nada se pode concluir pois não se verificam

Mas os dois exemplos mencionados, Mário Simonsen no Planejamento e Karlos Rieschbiter na Fazenda, em 1979, e Delfim Netto no Planejamento e Ernane Galvêas na Fazenda, em

Essa superioridade da adubaçào orgânica associada à quImica reduzida, provavelmente se deve à liberaçào lenta dos nutrientes NPKS da palha, alem da melhoria das

Tambem foi realizada a análise sensorial da bebida com 50 provadores (alunos e funcionários da UFLA) no laboratório de Análise Sensorial do Departamento de Ciência dos Alimentos

> 0 nIvel de sombreamento de 50 % apresentou o maior teor de sacarose no estádio cereja enquanto que a 90 % de sombreamento os maiores valores foram encontrados nos

Afirma Bruhns que o lazer, como expressão da cultura, pode constituir-se num elemento de conformismo ou resistência à ordem social estabelecida.. Mais do que uma

Wright (1996) em seu estudo sobre os baniwa, observa que nos cânticos xamânicos, esses dois eixos, vertical e horizontal, são representados na estrutura cosmológica desse povo.