Metodologias de desenvolvimento Flashcards

1
Q

O que é Engenharia de Software?

A

É uma disciplina que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, após sua entrada em produção.

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

Quais são os princípios da Engenharia de Software?

A

AFF DG

Abstração: existe uma preocupação da identificação de um determinado fenômeno da realidade.

Formalidade: o software deve ser desenvolvido seguindo passos definidos.

Flexibilização: permite que o software possa ser alterado, sem causar problemas na execução.

Decomposição: o problema pode ser dividido em partes.

Generalização: o problema é resolvido de forma genérica, de modo que possa ser reutilizado em outras situações.

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

O que precisa ser aplicado e que é associado ao desenvolvimento?

A

Processos, métodos e ferramentas, sendo que o que sustenta a Engenharia de Software é o foco na qualidade.

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

O que é modelo de ciclo de vida de software?

A

São as fases pelas quais um software passa desde o seu início até o seu fim e como essas fases se relacionam.

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

Quais são as fases genéricas da produção de software?

A

Planejamento

Análise e especificação de requisitos

Projeto

Implementação

Testes

Entrega e Implantação

Operação

Manutenção

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

Descreva a fase de Planejamento.

A

O objetivo do planejamento de projeto é fornecer uma estrutura que possibilite ao gerente fazer estimativas razoáveis de recursos, custos e prazos. À medida que o projeto progride, o planejamento deve ser detalhado e atualizado regularmente.

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

Descreva a fase de Análise e Especificação de Requisitos.

A

Nesta fase, o processo de levantamento de requisitos é intensificado. O escopo deve ser refinado e os requisitos mais bem definidos.

Modelo do que o software tem que fazer (e não como fazê-lo).

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

Descreva a fase de Projeto.

A

Esta fase é responsável por incorporar requisitos tecnológicos aos requisitos essenciais do sistema, modelados na fase anterior e, portanto, requer que a plataforma de implementação seja conhecida.

Envolve duas grandes etapas: projeto da arquitetura do sistema (geralzão) e projeto detalhado (cada componente).

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

Descreva a fase de Implementação.

A

A fase de implementação realiza a tarefa de traduzir o projeto para uma forma passível de execução pela máquina, isto é, cada unidade de software do projeto detalhado é implementada.

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

Descreva a fase de Testes.

A

Inicialmente, cada unidade de software implementada deve ser testada e os resultados documentados. A seguir, os diversos componentes devem ser integrados sucessivamente até se obter o sistema. Finalmente, o sistema como um todo deve ser testado.

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

Descreva a fase de Entrega e Implementação.

A

O propósito desta fase é estabelecer que o software satisfaz os requisitos dos usuários. Isto é feito instalando o software e conduzindo testes de aceitação. Quando o software tiver demonstrado prover as capacidades requeridas, ele pode ser aceito e a operação iniciada.

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

Descreva a fase de Operação.

A

Nesta fase, o software é utilizado pelos usuários no ambiente de produção, isto é, no ambiente real de uso do usuário.

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

Descreva a fase de Manutenção.

A

Indubitavelmente, o software sofrerá mudanças após ter sido entregue para o usuário. Alterações ocorrerão porque erros foram encontrados, porque o software precisa ser adaptado para acomodar mudanças em seu ambiente externo, ou porque o cliente necessita de funcionalidade adicional ou aumento de desempenho.

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

Quais são as principais características do Modelo Cascata?

A

É uma abordagem sistemática com forte ênfase na documentação.

Uma fase só se inicia após o término e aprovação da fase anterior.

É apropriado para quando os requisitos já estão bem definidos e compreendidos.

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

Quais são as vantagens do modelo Cascata?

A

É simples de entender e fácil de aplicar.

Fixa pontos específicos para entrega de artefatos.

Funciona bem para equipes tecnicamente fracas.

É fácil de gerenciar, devido a sua rigidez.

Realiza documentação extensa por cada fase ou estágio.

Possibilita boa aderência a outros modelos de processo.

Funciona bem com projetos pequenos e com requisitos bem conhecidos.

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

Quais são as desvantagens do modelo Cascata?

A

Divisão inflexível do projeto em estágios distintos.

Dificuldade em incorporar mudanças de requisitos.

Clientes só visualizam resultados próximos ao final do projeto.

Atrasa a redução de riscos, que só são descobertos na fase de testes.

Apenas a fase final produz um artefato de software entregável.

Cliente deve saber todos os requisitos no início do projeto.

Não funciona bem com projetos complexos e OO, apesar de compatível.

17
Q

Como o modelo Incremental é realizado?

A

É como se um artista já tivesse o quadro pronto na cabeça e vai desenvolvendo cada parte do quadro separadamente até integrá-las em uma imagem completa.

Produz builds, partes do software.

18
Q

Como o modelo Iterativo é realizado?

A

É feito um esboço do quadro, e são desenvolvidas várias versões até o resultado final que se deseja.

Produz releases, versões constantemente melhoradas do software.

19
Q

Quais são as fases do RAD (Rapid Application Development)?

A

Modelagem de Negócio

Modelagem de Dados

Modelagem de Processo

Geração e Aplicação

Teste e Modificação

20
Q

Quais são as vantagens do RAD?

A

Permite o desenvolvimento rápido e/ou a prototipagem de aplicações.

Criação e reutilização de componentes.

Desenvolvimento é conduzido em um nível mais alto de abstração.

Grande redução de codificação manual com wizards.

Cada função pode ser direcionada para uma equipe separada.

Provável custo reduzido (tempo é dinheiro e também devido ao reúso).

Tempo de desenvolvimento curto.

Protótipos permitem uma visualização mais cedo.

Envolvimento maior do usuário.

21
Q

Quais são as desvantagens do RAD?

A

Exige recursos humanos caros e experientes.

O envolvimento com o usuário tem que ser ativo.

Comprometimento da equipe do projeto.

Custo alto do conjunto de ferramentas e hardware para rodar a aplicação;

Mais difícil de acompanhar o projeto.

Perda de precisão científica (pela falta de métodos formais).

Pode levar ao retorno das práticas caóticas no desenvolvimento.

Pode construir funções desnecessárias.

Padronização (aparência diferente entre os módulos e componentes).

22
Q

Como funciona o modelo Evolucionário?

A

O modelo evolucionário funciona também com base em iterações ou repetições com o intuito de refinar o software a partir do feedback do cliente. A ideia é utilizar um esboço inicial e ir incrementando, melhorando, aperfeiçoando o software de acordo com as necessidades dos clientes até chegar a uma versão. Ao fim, o sistema pode ser entregue ao cliente ou ser refeito de forma mais estruturada.

23
Q

Quais são os tipos de modelo em prototipagem?

A

1) Prototipação throwaway: o objetivo é compreender os requisitos do cliente e melhor defini-los. O protótipo se concentra nos requisitos mal compreendidos e é posteriormente descartado.

2) Prototipação evolucionária: o objetivo é pegar o protótipo que foi feito e refiná-lo iterativamente até chegar ao sistema final.

24
Q

Quais são as etapas do modelo em Prototipagem?

A

Comunicação

Projeto rápido

Modelagem de Projeto Rápido

Construção de um Protótipo

Entrega e realimentação

25
Q

Quais são as principais características do Modelo em Espiral?

A

É um processo de software orientado a riscos.

O processo é representado como uma espiral (caracol).

Combina o modelo em cascata com o de prototipagem.

26
Q

Quais são as vantagens do Modelo em Espiral?

A

Suporta mecanismos de redução de riscos.

Obtêm-se versões do sistema a cada iteração.

Reflete as práticas atuais de engenharia atual.

Apresenta uma abordagem sistemática e estimativas realistas.

27
Q

Quais são as desvantagens do Modelo em Espiral?

A

Exige analistas de risco bastante experientes.

Exige uma equipe de desenvolvimento extremamente qualificada.

Exige um gerenciamento de processo mais complexo.

Não é recomendado resolver problemas mais simples e pequenos.

28
Q

Em quais situações os Métodos Formais são aplicados?

A

Eles permitem indicar atividades que contem com representações matemáticas de software, especificação formal, prova de especificação, desenvolvimento transformacional.

Em geral, são utilizados para o desenvolvimento de sistemas que necessitam de grande robustez e confiabilidade diante da possibilidade de perda de vidas ou sério prejuízo, caso haja falhas.

29
Q

O que é Modelo Baseado em Componentes?

A

Utiliza o reúso como peça principal, ela depende de uma grande base de componentes reusáveis e algum framework de integração.

30
Q

Defina e descreva as fases do Modelo Baseado em Componentes.

A

Especificação de Requisitos:
Coleta informações e reúne em um documento que define um conjunto de requisitos de software. Devem ser incluídos dois tipos de requisitos nesse documento: os Requisitos de Usuário e Requisitos de Sistema.

Análise de Componentes:
Nesta fase, é feita uma busca pelos componentes para implementar essa especificação. Geralmente, não existe uma correspondência exata entre o componente encontrado e o procurado. Muitas vezes, os componentes que podem ser usados fornecem apenas parte da funcionalidade necessária.

Modificação de Requisitos:
Os requisitos são analisados usando as informações sobre os componentes encontrados, que são modificados para refletir os componentes disponíveis. Quando as modificações são impossíveis, a atividade de análise de componentes pode ser novamente realizada para procurar alternativas.

Projeto de Sistema com Reúso:
O framework do sistema é projetado ou um framework existente é reutilizado. Pode ser necessário projetar algum software novo caso os componentes reusáveis não estejam disponíveis para aquisição para o sistema.

Desenvolvimento e Integração:
Software que não pode ser adquirido externamente é desenvolvido e os componentes e os sistemas COTS (biblioteca de componentes) são integrados para criar os novos sistemas.

Validação de Sistema:
Processo de verificação de se um sistema atende às necessidades e expectativas do cliente.