Revisão da Prova Flashcards

1
Q

O que é a engenharia de software? O que ela abrange?

A

É uma área da computação que se dedica a criação e manutenção de softwares. Abrange o Design, Desenvolvimento, Manutenção e Testes de um software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Como sommerville define um processo de software? Quais atividades um processo deve abranger no mínimo?

A

Conjunto de atividades que levam a produção de um software que abrangem:
Especificação, implementação, validação, manutenção

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Descreva o propósito de cada uma das atividades base de um processo de software

A

Especificação: Define as funcionalidades do software.

Implementação: Produção através da especificação do software.

Validação: Garantir que o software atenda as demandas.

Evolução: Manutenção e evolução do software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual a lógica por trás do processo cascata? Descreva-o e explique em quais situações este ainda pode ser utilizado.

A

Um processo que é movido por camadas, e somente quando um processo é completo outro se inicia. Por conta de ser pouco maleável, é recomendado somente em projetos que não terão grandes alterações durante seu desenvolvimento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Disserte sobre o modelo espiral de Boehm. Em quais contextos faz sentido utiliza-lo

A

Um modelo de varias fases de desenvolvimento, ocorrendo de maneira evolutiva. Quando um ciclo termina outro se inicia, se repetindo quantas vezes forem necessárias. Recomendado para projetos que demandam muitas alterações durante o desenvolvimento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quais valores que embasam os métodos ágeis? Explique-os

A
  • Priorizar a comunicação entre as pessoas envolvidas no projeto.
  • Valorizar a entrega continua de software em vez de focar excessivamente na documentação.
  • Envolver o cliente no desenvolvimento.
  • Ser maleável as mudanças.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Baseado nos valores que fundamentam os métodos ágeis, em quais contextos faz sentido utilizar esses métodos?

A

Em projetos com requisitos não tão claros e que necessitam de uma produção acelerada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explique o ciclo de trabalho do Scrum, seus papéis cerimonias e artefatos

A

O ciclo é chamado de sprint. Inicialmente é definido um Scrum Master, que vai gerenciar o ciclo, todo dia de desenvolvimento existe uma reunião de alinhamento. A tarefa é dividida para durar de 1 a 4 semanas. No fim é feito uma revisão do trabalho

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explique as atividades associadas ao XP: Programação em pares, TDD e refatoração.

A

Programação em pares: Dois programadores intercalam o ciclo de desenvolvimento.

TDD: Desenvolvimento orientado a testes, os testes são produzidos antes dos recursos.

Refatoração: Ajustar projetos antigos para metodologias novas e mais funcionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

As atividades tecnicas do xp, como Pair programming, TDD e refatoração são aderentes ao trabalho com scrum? Disserte

A

Sim, podendo potencializar os resultados, melhorando a consciência da equipe com o projeto, requisitos melhores compridos e com a uma constante melhora de sua qualidade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique a relação entre TDD, Refatoração e clean code, como este conjunto de tecnicas contribui ao aspecto técnico do desenvolvimento de um projeto de sistema de software utilizando metodos ageis?

A

As praticas conjuntas promovem um ciclo de:

Escrever Testes
Implementar o código
Refatorar
Repetir

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explique a filosofia e proposito do Clean Code. Explique como este atua nos eixos:

Nomes;
Formato;
Comentários;
Funções/Métodos;
Classes/Estruturas de Dados;
Tratamento de exceções.

A

Ser um guia para códigos de alta qualidade.

Nomes explicativos

Formatação padrão no codigo

Somente Comentários necessários

Métodos auto explicativos

Classes pouco dependentes de fatores externos e responsabilidades bem definidas

Utilizar exceções ao invés de códigos de erro

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que é um requisito? Qual a diferença entre requisitos de usuário e requisitos de sistema?

A

Requisitos são as necessidades do projeto.

Requisitos de usuário sao aqueles escritos pelos clientes em linguagem natural e com diagramas.

Requisitos do sistema sao escritos pelos desenvolvedores sobre detalhes técnicos do sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que são requisitos funcionais? O que são requisitos não-funcionais?

A

Requisitos funcionais são as acoes do desenvolvimento a nivel concreto.

Requisitos nao funcionais são as consequências de boas ações, como Velocidade, Segurança e Escalabilidade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como podemos verificar que um requisito não-funcional foi cumprido? Cite e explique duas métricas de especificação de requisitos não-funcionais.

A

Atraves de testes e de metricas de desempenho. Testes verificam se a necessidade esta sendo cumprida, e as métricas de desempenho medem parâmetros relevantes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sommerville cita quatro as atividades comuns a todos os processos de Engenharia de Requisitos. Quais são essas atividades? Explique-as.

A

Levantamento de requisitos

Analise de requisitos

Documentação de requisitos

Validação de requisitos