Revisão da Prova Flashcards
O que é a engenharia de software? O que ela abrange?
É 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.
Como sommerville define um processo de software? Quais atividades um processo deve abranger no mínimo?
Conjunto de atividades que levam a produção de um software que abrangem:
Especificação, implementação, validação, manutenção
Descreva o propósito de cada uma das atividades base de um processo de software
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
Qual a lógica por trás do processo cascata? Descreva-o e explique em quais situações este ainda pode ser utilizado.
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.
Disserte sobre o modelo espiral de Boehm. Em quais contextos faz sentido utiliza-lo
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.
Quais valores que embasam os métodos ágeis? Explique-os
- 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.
Baseado nos valores que fundamentam os métodos ágeis, em quais contextos faz sentido utilizar esses métodos?
Em projetos com requisitos não tão claros e que necessitam de uma produção acelerada.
Explique o ciclo de trabalho do Scrum, seus papéis cerimonias e artefatos
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
Explique as atividades associadas ao XP: Programação em pares, TDD e refatoração.
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.
As atividades tecnicas do xp, como Pair programming, TDD e refatoração são aderentes ao trabalho com scrum? Disserte
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.
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?
As praticas conjuntas promovem um ciclo de:
Escrever Testes
Implementar o código
Refatorar
Repetir
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.
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
O que é um requisito? Qual a diferença entre requisitos de usuário e requisitos de sistema?
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.
O que são requisitos funcionais? O que são requisitos não-funcionais?
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
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.
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.