[Engenharia de Software I] Flashcards

1
Q

O que é Software

A
  • São programas de computadores.
  • Instruções que executam tarefas específicas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que é Software Legado

A

É um software bastante antigo.

  • Continuamente modificado para adequar-se às mudanças dos requisitos de negócio ou
    às novas tecnologias
  • Considerado indispensável às funções de negócios fundamentais para a
    empresa.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que é Engenharia de Software?

A

Aplicação de princípios de engenharia para o desenvolvimento, manutenção e gestão de software. Ou seja, do ínicio ao fim (ciclo) do projeto
- Trabalha com quais ferramentas serão utilizadas, quais métodos/técnicas, os processos durante o ciclo de vida e o controle de qualdiade.
- Qualidade, desempenho, segurança e usabilidade ao criar software.

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

[Camadas da Engenharia de Software] - Qual a função da camada de Ferramenta?

A

4 camadas da engenharia de software

Refere ao conjunto de softwares e utilitários utilizados no processo de desenvolvimento de software.

  • Exemplo → ferramentas CASE (Computer Aided Software Engineering).
  • Exemplo → IDEs (ambiente de desenvolvimento integrado) para geração de códigos.
  • Exemplo → Git e depuradores
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

[Camadas da Engenharia de Software] - Qual a função da camada de Método?

A

4 camadas da engenharia de software

Define as técnicas e abordagens utilizadas para realizar tarefas específicas no desenvolvimento de software.

  • Comunicação,
  • Análise de requisitos,
  • Modelagem de projeto,
  • Construção de software, testes e manutenção

Exemplo

  • Programação orientada da objetos
  • Programação orientada a testes
  • Diagrama de caso de uso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

[Camadas da Engenharia de Software] - Qual a função da camada de Processo?

A

4 camadas da engenharia de software
São os procedimentos e diretrizes que definem como o desenvolvimento de software é gerenciado, documentado e controlado em seu ciclo de vida.

  • Exemplo → Metodologia ágeis (Scrum, Kanbam)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

[Camadas da Engenharia de Software] - Qual a função da camada de Qualidade?

A

4 camadas da engenharia de software
Envolve atividades para garantir que o software atenda aos padrões de qualidade e requisitos

  • Exemplo → Testes unitários (garantir que cada parte do código funcione)
  • Exemplo→ CodeReview (Identificação de problemas e melhorias)
  • Exemplo → Testes automatizados
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

CASE (Computer Aided Software Engineering), o que é?

A

Conjunto de ferramentas e métodos computacionais que auxiliam no processo de desenvolvimento de software.

  • Projetadas para automatizar várias etapas do ciclo de vida do desenvolvimento de software
    • Modelagem (Diagramas), a documentação, o projeto, a implementação e a manutenção.
    • JIRA, Microsoft Visio, VIsual Paradigm
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Exemplo de uso das 4 camadas de engenharia de software em um projeto

A
  1. Ferramentas:
    • Utilize um IDE (como o Visual Studio Code) para escrever o código-fonte do aplicativo.
    • Use um sistema de controle de versão (por exemplo, Git) para rastrear e gerenciar o código-fonte do projeto.
    • Um depurador (como o debugger embutido no IDE) pode ser usado para identificar e corrigir erros no código.
  2. Métodos:
    • Adote a programação orientada a objetos (POO) para estruturar o código em classes, objetos e métodos, o que facilita a manutenção.
    • Use a metodologia ágil Scrum para gerenciar o projeto, com sprints curtas de desenvolvimento, reuniões diárias de scrum e foco na colaboração com os usuários.
  3. Processos:
    • Siga um processo de desenvolvimento em cascata para a definição de requisitos e design inicial do aplicativo.
    • Use Scrum para a implementação, dividindo o projeto em iterações (sprints) com entregas incrementais.
    • Realize revisões de código regularmente, seguindo um processo de revisão para garantir a qualidade do código.
  4. Qualidade:
    • Implemente testes de unidade para verificar se as funções do aplicativo estão funcionando conforme o esperado.
    • Automatize testes de integração para verificar se diferentes partes do aplicativo funcionam bem juntas.
    • Realize revisões de código para identificar problemas de qualidade e garantir que o código seja legível e siga padrões de codificação.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

[Tipos de aplicações de Software] o que são, e quais são?

A

Os tipos de aplicações de software variam em função e propósito de acordo com as necessidades dos usuários e as indústrias em que são utilizadas.

 Sistemas de Processamento de Transações (SPT)
 Sistemas de Informações Gerenciais (SIG)
 Sistemas de Apoio à Decisão (SAD)
 Sistemas de Informação Executiva (SIE)
 Sistemas Especialistas (SE)
 Sistemas de Automação de Escritório (SAE)

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

[Tipos de aplicações de Software][SPT] - Sistemas de Processamento de Transações (SPT), o que é?

A

Sistemas tradicionais que coletam, guardam, modificam e recuperam as transações,
gerenciando as informações das organizações

  • Transação → Evento que gera ou modifica algum dado
  • Transações podem ser de:
    • Negócio → Financeiras, mobiliárias
    • Técnicas → Banco de dados, transações operacionais

Exemplo: Site bancário, compras pela internet, sistema de biblioteca

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

[Tipos de aplicações de Software][SIG] - Sistemas de Informações Gerenciais (SIG), o que é?

A

São sistemas que coletam, armazenam e processam dados para gerar relatórios e informações para a tomada de decisões em níveis gerenciais.

  • Normalmente, são fornecidos como pacotes customizáveis.
  • Esses sistemas envolvem três recursos primários: tecnologia, informações e pessoas.

Exemplos de SIG
- ERP – Enterprise Resource Planning ou Sistemas Integrados de Gestão Empresarial
- SCM - Supply Chain Management ou Gerenciamento da Cadeia de Suprimentos
- CRM - Customer Relationship Management ou Gestão do Relacionamento com Clientes
- KMS - Knowledge Management Systems ou Sistemas de Gestão de Conhecimento

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

[Tipos de aplicações de Software][SIG] - ERP (Enterprise Resource Planning), o que é?

A

É o planejamento dos recursos empresariais, que fornece uma Interface com banco de dados único para gerenciar todos os processos de negócios de uma empresa.

  • Exemplo de aplicação → TOTVS Protheus: contabilidade, finanças, recursos humanos, estoque, produção e outros processos de negócios.

Arquitetura de um ERP

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

[Tipos de aplicações de Software][SIG] - SCM - Supply Chain Management, o que é?

A

Sistemas que permite uma gestão mais eficiente do negócio, integrando-o com fornecedores, fabricantes, atacadistas, varejistas até o consumidor final.

  • Objetivo é garantir que os produtos certos estejam disponíveis no lugar certo, na hora certa e com o menor custo possível.
  • Exemplo: SAP IBP → Software SCM
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

[Tipos de aplicações de Software][SIG] - CRM - Customer Relationship Management, o que é?

A

Apoia as empresas na gerência e em estreitar laços com clientes

  • Gerenciar Contatos e Informações do Cliente: Armazenar informações sobre clientes, como nome, dados de contato, histórico de compras e preferências.
  • Automatizar Tarefas de Vendas e Marketing: Atendimento ao cliente, envio de e-mail, atendimento online, rastreamento de lead de forma automatizada
  • Melhorar o Atendimento ao Cliente: Atendimento personalizado
  • Analisar feedback do cliente e aumentar a retenção do lead
  • Integração de dados para obter as informações completas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

[Tipos de aplicações de Software][SAD] - Sistemas de Apoio à Decisão (SAD), o que é?

A

São sistemas que analisam um grande número de variáveis e dados para que seja possível o posicionamento quanto a uma tomada de decisão.

  • São interativos com os usuários
  • Processam grande quantidade de informação para gerar
    análises precisas
  • Geram relatórios analíticos da situação.
  • Envolvem pesquisa de banco de dados, inteligência artificial, simulações e estatísticas

Exemplos:

  • Análise de crédito, sistemas de BI (Business Inteligence) em geral.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

[Tipos de aplicações de Software][SIG] - KMS - Knowledge Management Systems, o que é?

A

Recolhe, registra, organiza e recupera o conhecimento dos colaboradores para que fiquem internalizados na empresa.

  • Documentos, registros contábeis, dados sem registro e procedimentos,
    práticas e habilidades.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

[Tipos de aplicações de Software][SAD] - Relacionamento passivo, ativo e cooperativo, Como é feito?

A
  • Passivo → sistema que auxilia o processo de tomada de decisão, mas não traz,
    explicitamente, sugestões ou soluções;
  • Ativo → pode trazer sugestões ou soluções para o problema apresentado;
  • Cooperativotomador de decisão que atua como conselheiro, oferecendo a capacidade de modificar, complementar ou refinar as sugestões de outros colaboradores para validação.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

[Tipos de aplicações de Software][SAD] - Modelo de apoio, Como é feito?

A
  1. Model-driven: manipulação para análise de situações com base em dados e parâmetros dos usuários.
  2. Communication-driven: Auxilia a colaboração entre várias pessoas em tarefas compartilhadas.
  3. Data-driven: Gerencia informações não estruturadas em vários formatos de armazenamento.
  4. Knowledge-driven: Oferece especialização na resolução de problemas usando conhecimento armazenado, como fatos e regras.
  5. Tradeoff-driven: Ajuda na tomada de decisões que envolvem trade-offs entre vantagens e desvantagens, usando conhecimento armazenado.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

[Tipos de aplicações de Software][SAD] - Escopo da aplicação (Empresarial / Desktop), o que é??

A
  • Empresarial, que é ligado a um grande data-warehouse e a servidores de muitos gerentes em uma organização;
  • Desktop, um sistema pequeno que roda para um gerente em um personal computer (PC)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

[Tipos de aplicações de Software][SIE] - Sistema de Informação Executiva (SIE)), o que é??

A

Sistema de informações gerenciais destinado a facilitar e apoiar a informação e a tomada de decisão dos altos executivos.

  • Forma especializada de SAD
  • Apresenta os resultados em telas gráficas, fáceis de usar e de navegar, criando situações de detalhamento.
  • Vem perdendo espaço para os sistemas de BI (Business Inteligence) com seus relatórios e painéis interativos.

> “CEO de uma empresa que utiliza o SIE para acessar rapidamente relatórios e gráficos de desempenho de negócios, permitindo-lhe tomar decisões estratégicas com base em informações atualizadas e relevantes, como vendas, finanças e indicadores-chave de desempenho.”

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

[Tipos de aplicações de Software][SIE] - Caracteristicas, o que é??

A
  • Não exige experiência com computador.
  • Fácil de usar.
  • Fornece informações resumidas da empresa.
  • Possui filtros de dados para a gestão.
  • Os dados são obtidos das outras aplicações da organização.
  • Essencialmente, é uma aplicação de consulta.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

[Tipos de aplicações de Software][SIE] - Sistemas Especialistas (SE), o que é??

A

Programas de computador que utilizam conhecimento e regras específicas para tomar decisões ou fornecer aconselhamento em domínios de especialização

  • Imitam o raciocínio humano para resolução de problemas
  • Utilização de IA

Exemplo → Um sistema especialista médico que usa dados clínicos, sintomas do paciente e conhecimento médico para diagnosticar doenças ou sugerir tratamentos.

VANTAGENS:

 Custo reduzido.
 Perigo reduzido.
 Múltiplos conhecimentos.
 Aumento do nível de confiança.
 Resposta rápida.

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

[Tipos de aplicações de Software][SIE] - Sistemas de Automação de Escritório (SAE), o que é??

A

São aplicativos que facilitam a vida dos funcionários de uma empresa realizando as
atividades que outrora eram manuais.

  • Aumentam a produtividade e a qualidade das informações apresentadas
  • Editores de texto, planilhas eletrônicas, e-mail, chats, correios de voz,
    videoconferência, entre outros.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

[Gestão de projetos] - o que é?

A

Para tratar de problemas, a Engenharia de Software possui uma disciplina chamada: Gestão de projetos.

Gestão de projetos

Tem com objetivo: Permitir que as empresas ciem um software de acordo com a seguinte ordem:

  1. O que foi solicitado (Escopo) → Identificar com clareza e detalhes os requisitos
  2. Prazo → Realizado a estimativa de tempo e recurso para a entrega do que foi solicitado
  3. Orçamento → Com a definição dos recursos e tempo, estima-se os valores do projeto
  4. Qualidade → Se o atendimento às necessidades do cliente se cumprem
    1. Faz parte do processo de desenvolvimento do software
    2. Deve ser verificada durante todo o ciclo
26
Q

[Gestão de projetos] - Processo base da qualidade de software

27
Q

[Gestão de projetos] - Aspectos de qualidade de um produto

A
  • Funcionalidade: Identifica os procedimentos de funcionamento de um produto.
  • Confiabilidade: O produto não deve apresentar problemas junto aos clientes, caso contrário, o fornecedor deverá resolvê-los.
  • Usabilidade: Deve-se testar o produto o máximo possível e constatar o resultado de seu uso como satisfatório.
  • Eficiência: Comprovação, pelo cliente, de sua satisfação com o produto.
  • Manutenibilidade: Garantia de correções dos problemas.
  • Portabilidade: O produto muda de ambiente e a operação ocorre da mesma forma satisfatória.
28
Q

[Processo de desenvolvimento de software] - O que é?

A

Abordagem estruturada e organizada para criar, projetar, testar e manter software de forma eficiente.

  • Etapas e atividades que permitem aos desenvolvedores e equipes de projeto transformar requisitos e ideias em um produto de software funcional
29
Q

[Processo de desenvolvimento de software] - Pra que serve um processo?

A
  • Para definir as atividades a serem conduzidas no projeto.
  • Garantir a compreensão de todos os envolvidos no que deve ser desenvolvido.
  • Manter um padrão de desenvolvimento para a empresa, afim de garantir uma organização e um sistema eficaz.
  • Viabilizar o controle mais fácil por parte da gerência.

Processo de desenvolvimento de software

30
Q

[Processo de desenvolvimento de software] - O que é a fase de Concepção

A

Processo de desenvolvimento de software

Este estágio inicial compreende a geração e refinamento de ideias, definição de requisitos, e estabelecimento das bases para o projeto.
- Análise e modelagem do software

Identificação do Problema
Análise e definição de Requisitos
Criação de modelos
Prototipagem
Avaliação e Validação: Revisão e validação de modelos e protótipos criados.
Decisões de Design e Arquitetura
Documentação

31
Q

[Processo de desenvolvimento de software] - O que é a fase de Elaboração

A

Processo de desenvolvimento de software

Fase de definição e o estabelecimento da arquitetura do sistema. Dada pelas seguintes etapas:

- Refinamento dos Requisitos: Detalhamento e refinamento dos requisitos identificados.
- Elaboração da Arquitetura: Definição e estabelecimento da arquitetura do software.
- Prototipagem e Modelagem: Desenvolvimento de protótipos para validar a arquitetura proposta.
- Análise de Riscos: Identificação e avaliação de possíveis riscos no projeto.
- Plano de Desenvolvimento: Elaboração de um plano detalhado para a implementação do sistema.

32
Q

[Processo de desenvolvimento de software] - O que é a fase de Construção

A

Processo de desenvolvimento de software

Focada na implementação, teste e integração de código para criar um sistema robusto e de alta qualidade, de acordo com as diretrizes estabelecidas na fase de elaboração.

  • Implementação de Código: Escrever e desenvolver o código do software com base na arquitetura definida.
  • Testes: Realização de testes unitários, integração e funcionais para garantir a qualidade do software.
  • Integração: Combinação e teste de todos os módulos para formar um sistema coeso.
  • Revisões e Ajustes: Revisões contínuas do código, correções e ajustes conforme necessário.
  • Documentação: Registro detalhado do código, funcionalidades e processos para referência futura.
33
Q

[Processo de desenvolvimento de software] - O que é a fase de Transição

A

Processo de desenvolvimento de software

A etapa de transição na engenharia de software refere-se ao período em que o software desenvolvido é preparado para ser lançado e utilizado pelos usuários finais.

34
Q

[Processo Pessoal de Software (Objetivos do PSP (Processo pessoal de software)PSP)] - o que é?

A

Metodologia de desenvolvimento de software que se concentra no aprimoramento das habilidades e práticas de um único desenvolvedor.

  1. Planejamento Pessoal: Estabelecimento de metas e planos de desenvolvimento.
  2. Acompanhamento de Tempo e Tamanho: Registro do tempo gasto e tamanho do código.
  3. Análise de Qualidade: Avaliação da qualidade do trabalho após cada tarefa.
  4. Análise de Processo: Identificação de padrões e melhorias no processo.
  5. Previsão de Qualidade: Projeções de qualidade para tarefas futuras baseadas na análise dos dados.
35
Q

[Processo Pessoal de Software (Objetivos do PSP (Processo pessoal de software)PSP)] - Quais os objetivos?

A
  • Melhorar o planejamento;
  • Melhoria das estimativas de prazos;
  • Estabelecer processos de revisão de projeto e código;
  • Gerenciar a qualidade;
  • Executar a fase de projeto de maneira mais formal;
  • Identificar pontos de melhoria da qualidade.
36
Q

Processo para a Equipe de Software (TSP -Team Software Process) - O que é?

A

TSP é uma metodologia de engenharia de software que se concentra na melhoria de processos e na qualidade do trabalho em equipe em projetos de desenvolvimento de software.
- Baseado no PSP (Processo Pessoal de Software)

1. Planejamento do Projeto: Estabelecimento de metas, tarefas e cronograma.
2. Acompanhamento e Controle: Monitoramento regular para identificar problemas.
3. Avaliação e Revisão: Revisões para identificar defeitos e aprender lições.
4. Melhoria Contínua: Adaptação do processo para melhorias baseadas em dados.

37
Q

Processo para a Equipe de Software (TSP -Team Software Process) - Quais os objetivos?

A
  • Planejar e gerenciar um projeto em equipe;
  • Definir processos – Incremental;
  • Distribuir papéis – Disciplina;
  • Construir um trabalho em equipe;
  • Estabelecer medidas de qualidade;
  • Ter equipes eficazes.
38
Q

[Modelos de ciclo de vida de software] - O que é?

A

São abordagens e estratégias que definem as etapas, atividades e processos envolvidos no desenvolvimento de software, desde a concepção até a entrega e manutenção.

  • Organizar o trabalho;
  • Estabelecer fluxos de trabalho;
  • Garantir a qualidade do software produzido.

O modelo é escolhido baseado no:
- Tipo de Software;
- Métodos e ferramentas que serão utilizados;
- Nos controles e nos produtos intermediários e finais a serem entregues.

39
Q

[Modelos de ciclo de vida de software] - Etapas do modelo mais comum, quais são?

A

Etapas mais comuns do ciclo de vida de um software

  1. Requisitos: Identificar o que o software deve fazer.
  2. Análise das Alternativas: Avaliar opções de sistemas para atender aos requisitos.
  3. Projeto: Planejar a estrutura e a aparência do software.
  4. Desenvolvimento: Escrever o código do software e a aquisição do hardware necessário.
  5. Implementação: Colocar o software em uso após os testes que foram realizados (sistema é transferido para ambiente produtivo).
  6. Manutenção: Atualizar e corrigir o software ao longo do tempo.
40
Q

[Modelo de ciclo de vida] [Modelo Codifica-Remenda] - o que é?

A

Desenvolvedores abordam de problemas à medida que surgem e aplicam correções ou atualizações diretamente no código-fonte.

  • Não existe nenhum processo definido e nenhum é seguido;
  • Modelo mais caótico e de mais alto-risco;
  • Sem separação de papeis, todos realizam as atividades de codificação-reparação.
41
Q

[Modelo de ciclo de vida] Modelo Cascata (waterfall) - o que é?

A

É um modelo, onde o desenvolvimento é baseado numa cascata com processos sequenciais distintos e bem definidos.

  • Surgiu na década de 1970. Até meados da década de 1980.
  • Mais rígido e menos administrativo
  • Orientado para a documentação → Criação e manutenção de documentação abrangente ao longo de todo o ciclo.

Modelo Cascata

42
Q

[Modelo de ciclo de vida] Modelo Cascata (waterfall) - Quais as dificuldades e quando usar?

A

Dificuldades

  • Os projetos nem sempre são sequenciais e as mudanças sempre trazem problemas;
  • O produto somente é visível no final de todo o ciclo

Quando utilizar?

  • Projetos com requisitos bem definidos;
  • Projetos pequenos com duração de, até, 2 meses.
43
Q

[Modelo de ciclo de vida] Modelo Incremental - o que é?

A

Modelo incremental

Divide o projeto em partes menores, chamadas de incrementos. Cada incremento é desenvolvido de forma independente.

  • A cada etapa, funcionalidades adicionais são construídas e integradas ao sistema.
  • O processo se repete até que o produto esteja completo.
  • O incremento inicial é chamado de núcleo do produto → Isto quer dizer que os requisitos básicos devem ser satisfeitos logo no início do projeto.
44
Q

[Modelo de ciclo de vida] Modelo Incremental - quais as vantagens e desvantagens?

A
  • VANTAGENS
    • Entregas parciais facilitam a validação do cliente;
    • Feedback constante aumenta a qualidade;
    • Cada incremento é uma parte de software utilizável.
  • DESVANTAGENS
    • Cliente pode não aceitar a divisão em módulos
45
Q

[Modelo de ciclo de vida] Modelo Incremental - quando utilizar?

A

Quando utilizar o Modelo Incremental?
- Para sistemas que podem ser divididos em módulos.
- Para sistemas com muitas alterações de requisitos.
- Quando o usuário necessita utilizar uma parte do produto antes do final de um projeto
- Quando há um prazo de entrega que não pode ser modificado.

46
Q

[Modelo de ciclo de vida] Modelo RAD (Rapid Application Development) - o que é?

A

É uma abordagem de desenvolvimento de software que se concentra em criar sistemas de software de maneira rápida, iterativa e colaborativa.

  • Objetivo do RAD é acelerar o ciclo de desenvolvimento
  • Permite que os sistemas sejam desenvolvidos mais rapidamente do que por meio de abordagens tradicionais.
    - Incremental e contém um ciclo de desenvolvimento curto (em média de 60 a 90 dias).
  • Pode ser dividido entre as várias equipes RAD e, ao final, integrada para formar o todo.

Modelo RAD

47
Q

[Modelo de ciclo de vida] Modelo RAD (Rapid Application Development) - quando utilizar?

A
  • As restrições de tempo devem ser (em média de 60-90 dias).
  • Se as funcionalidades principais e o software podem ser divididos em componentes, os quais, devem ser completos em 60-90 dias
  • Cada função principal pode ser tratada por uma equipe distinta e, depois, integrada para formar um todo.
48
Q

[Modelo de ciclo de vida] Modelo RAD (Rapid Application Development) - Quais as vantagens e desvantagens?

A
  • VANTAGENS
    • Ciclo curto de desenvolvimento;
    • Usa a prototipação interativa e viva;
    • Aumento do reuso do código.
  • DESVANTAGENS
    • Não indicado para projetos grandes e complexos;
    • Não aplicado a projetos com alto risco técnico.
49
Q

[Modelo de ciclo de vida] Modelo de prototipação - O que é?

A

Uma abordagem de desenvolvimento de software na qual um protótipo ou modelo inicial do software é criado para ajudar na definição e no refinamento dos requisitos do projeto.

  • Pode ser usado em qualquer modelo
  • Utilizado para identificar e validar os requisitos
  • Permite a visualização prévia de como o sistema ficará

Modelo de prototipação

50
Q

[Modelo de ciclo de vida] Modelo de prototipação - Quais as vantagens e desvatagens ?

A
  • VANTAGENS
    • Reduz o número de mudanças;
    • Aumenta a qualidade;
    • Pode reduzir o tempo de desenvolvimento
  • DESVANTAGENS
    • O cliente acha que o produto está pronto;
    • O projetista pode incorporar as soluções inadequadas.
51
Q

[Modelo de ciclo de vida] Modelo espiral - o que é?

A

Modelo espiral

Esse modelo é representado como uma espiral, onde cada volta da espiral representa uma fase do processo de desenvolvimento do software

  • Usado para softwares de grande porte.
  • Para softwares que possuem riscos no seu desenvolvimento.
  • Com o uso de prototipação, tem-se melhor conhecimento de requisitos do sistema.
52
Q

[Modelo de ciclo de vida] Modelo espiral - Quais as fases desse modelo?

A
  1. Determinação de Objetivos → estabelecidos objetivos, identificados os riscos e avaliadas as alternativas para o desenvolvimento do software.
  2. Análise e Avaliação de Riscos → Riscos são avaliados e estratégias são desenvolvidas para gerenciá-los. Esta fase é crucial para identificar problemas potenciais antecipadamente.
  3. Desenvolvimento e Testes → Aqui, o software é desenvolvido, testado e aprimorado. A construção do produto ocorre de maneira incremental, permitindo revisões contínuas.
  4. Planejamento: Após testar e revisar, é feito um planejamento para a próxima iteração. Dependendo dos resultados, o projeto pode continuar para a próxima espiral ou ser encerrado.
53
Q

[Modelo de ciclo de vida] Modelo espiral - Quais as vatangens e desvantagens?

A
  1. Vantagens:
    1. É uma alternativa ao ciclo cascata;
    2. Primeiro modelo a incluir a análise de riscos;
    3. Permite uma maior interação com o cliente.
  2. Desvantagens:
    1. Difícil convencer o cliente que uma abordagem “evolutiva” é melhor;
    2. Exige experiência na avaliação de riscos e no uso do modelo.
54
Q

[Modelo de ciclo de vida] Processo unifcado - o que é?

A

Processo Unificado

É um framework de desenvolvimento de software. Ele fornece uma abordagem para o desenvolvimento iterativo e incremental, focado na gestão de projetos de software.

  • Iterativo e Incremental: Desenvolvimento em etapas progressivas.
  • Gerenciado e Controlado: Ênfase em controle, gestão de mudanças e riscos.
  • Centrado na Arquitetura: Foco na estrutura e organização do sistema.
  • Focado nos Casos de Uso: Utilização dos casos de uso para capturar requisitos e guiar o desenvolvimento.
55
Q

[Modelo de ciclo de vida] Processo unifcado - Quais as desvatagens e vantagens?

A
  1. Vantagens:
    1. Tolerância às mudanças de requisitos;
    2. Elementos de um software são integrados progressivamente;
    3. Incorpora, formalmente, a gerência de projeto ao ciclo.
  2. Desvantagens:
    1. Cliente não aceita o processo interativo;
    2. Complexidade de suas fases e seus fluxos;
    3. Indispensáveis que os profissionais sejam capacitados no processo.
56
Q

[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - O que é?

A

É um processo de engenharia de software que fornece uma abordagem disciplinada para a atribuição de tarefas e responsabilidades dentro de uma organização de desenvolvimento de software.

  • Baseado no PU (Processo Unificado)
  • Interativo e incremental
  • Modulado em fases, disciplinas, iterações e papéis.
57
Q

[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - Quais as Fases?

A
  • Iniciação: Define o escopo do projeto, identifica riscos e estabelece a viabilidade do projeto.
  • Elaboração: Refina os requisitos, a arquitetura do sistema e planeja as iterações.
  • Construção: O desenvolvimento real do software ocorre, incluindo a codificação, testes e integração.
  • Transição: Prepara o produto para o lançamento, incluindo testes finais e treinamento.
58
Q

[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - Quais as Disciplinas?

A

Representam áreas de conhecimento e atividades específicas necessárias para o desenvolvimento de software.

  • Modelagem de Negócios: Descreve como o sistema se encaixa no ambiente de negócios mais amplo.
  • Requisitos: Captura, prioriza e gerencia os requisitos do sistema.
  • Projeto: Define a arquitetura do sistema com base nos requisitos.
  • Implementação: Traduz o design em código.
  • Testes: Garante a qualidade verificando se o software funciona como esperado.
  • Implantação: Prepara o software para uso no mundo real.
  • Gerenciamento de Configuração e Mudanças: Gerencia a evolução do software ao longo do tempo.
59
Q

[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - Quais as Papeis?

A

Representam as responsabilidades e funções desempenhadas por indivíduos ou grupos de indivíduos em um projeto de desenvolvimento de software

  • Define funções como Analista de Negócios, Arquiteto de Sistema, Desenvolvedor, Testador, Gerente de Projeto, entre outros.
60
Q

[Modelo de ciclo de vida] Processo Praxis - o que é??

A

Fornece suporte para projetos realizados individualmente ou por pequenas equipes, com
duração de seis meses a um ano.

  • Abrange requisitos, análise, desenho, testes e implementação, quanto métodos gerenciais,
  • como gestão de requisitos, gestão de projetos, garantia da qualidade e gestão
    de configuração.
  • Propõe um ciclo de vida composto por fases.
  • Gera artefatos (documentos e modelos).
61
Q

[Modelo de ciclo de vida] Clean Room - o que é??

A

O Clean Room (Sala Limpa) é uma metodologia de desenvolvimento de software que se concentra na produção de software livre de defeitos por meio de técnicas de verificação rigorosas. Normalmente usado em softwares que trazem risco a perda de vidas (controle de trens, usinas, aviões)

  • Baseada em métodos formais de desenvolvimento e testes estatísticos e matemáticos.
  • Método de especificações formais → definem os requisitos de software de forma precisa e rigorosa, usando linguagem matemática ou lógica formal para representar as funcionalidades esperadas do sistema.
62
Q

[Modelo de ciclo de vida] Clean Room - quais as vantagens e desvantangens??

A
  1. Vantagens:
    1. Alta qualidade;
    2. Baixo número de erros.
  2. Desvantagens:
    1. Processo muito complexo;
    2. Requer conhecimento matemático;
    3. Produtividade é menor.