[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
**[Gestão de projetos]** - o que é?
**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
[Gestão de projetos] - **Processo base da qualidade de software**
[Processo base](https://imagem.app/image/o7sUwb)
27
[Gestão de projetos] - **Aspectos de qualidade de um produto**
- **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
**[Processo de desenvolvimento de software]** - O que é?
**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
**[Processo de desenvolvimento de software]** - Pra que serve um processo?
- 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](https://imagem.app/image/oX9jFQ)
30
**[Processo de desenvolvimento de software]** - O que é a fase de **Concepção**
[Processo de desenvolvimento de software](https://imagem.app/image/oX9jFQ) **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
**[Processo de desenvolvimento de software]** - O que é a fase de **Elaboração**
[Processo de desenvolvimento de software](https://imagem.app/image/oX9jFQ) **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
**[Processo de desenvolvimento de software]** - O que é a fase de **Construção**
[Processo de desenvolvimento de software](https://imagem.app/image/oX9jFQ) **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
**[Processo de desenvolvimento de software]** - O que é a fase de **Transição**
[Processo de desenvolvimento de software](https://imagem.app/image/oX9jFQ) **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
**[Processo Pessoal de Software (Objetivos do PSP (Processo pessoal de software)PSP)]** - o que é?
**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
**[Processo Pessoal de Software (Objetivos do PSP (Processo pessoal de software)PSP)]** - Quais os objetivos?
- 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
**Processo para a Equipe de Software (TSP -Team Software Process)** - O que é?
**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
**Processo para a Equipe de Software (TSP -Team Software Process)** - Quais os objetivos?
- 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
**[Modelos de ciclo de vida de software]** - O que é?
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
**[Modelos de ciclo de vida de software]** - Etapas do modelo mais comum, quais são?
[Etapas mais comuns do ciclo de vida de um software](https://imagem.app/image/oXch81) 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
[Modelo de ciclo de vida] **[Modelo Codifica-Remenda]** - o que é?
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
[Modelo de ciclo de vida] **Modelo Cascata (waterfall)** - o que é?
**É 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](https://engenhariasoftware.files.wordpress.com/2013/01/cascata.png)
42
[Modelo de ciclo de vida] **Modelo Cascata (waterfall)** - Quais as **dificuldades** e **quando usar**?
**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
[Modelo de ciclo de vida] **Modelo Incremental** - o que é?
[Modelo incremental](https://1.bp.blogspot.com/-dED1FrmzLCQ/UMdKOOMm70I/AAAAAAAAAB8/h5cs6WGl7-s/s1600/incremental.png) **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
[Modelo de ciclo de vida] **Modelo Incremental** - quais as **vantagens e desvantagens**?
- **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
[Modelo de ciclo de vida] **Modelo Incremental** - quando **utilizar**?
**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
[Modelo de ciclo de vida] **Modelo RAD (Rapid Application Development)** - o que é?
É 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](https://slideplayer.com.br/slide/1240983/3/images/5/Modelo+RAD+modelagem+do+neg%C3%B3cio+modelagem+dos+dados.jpg)
47
[Modelo de ciclo de vida] **Modelo RAD (Rapid Application Development)** - quando utilizar?
- 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
[Modelo de ciclo de vida] **Modelo RAD (Rapid Application Development)** - Quais as vantagens e desvantagens?
- **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
[Modelo de ciclo de vida] **Modelo de prototipação** - O que é?
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](https://media.licdn.com/dms/image/C4E12AQGdOYy34uwVtg/article-inline_image-shrink_400_744/0/1586809505963?e=1703721600&v=beta&t=1VoxcF5KTn7pyNO3yp525siErNi24cM5RUF9pHIaatw)
50
[Modelo de ciclo de vida] **Modelo de prototipação** - Quais as vantagens e desvatagens ?
- **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
[Modelo de ciclo de vida] **Modelo espiral** - o que é?
[Modelo espiral](https://jkolb.com.br/wp-content/uploads/2013/12/espiral1.png) 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
[Modelo de ciclo de vida] **Modelo espiral** - Quais as fases desse modelo?
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
[Modelo de ciclo de vida] **Modelo espiral** - Quais as vatangens e desvantagens?
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
[Modelo de ciclo de vida] **Processo unifcado** - o que é?
[Processo Unificado](https://dhg1h5j42swfq.cloudfront.net/2023/04/07095436/figura-1-ciclo-de-vida-do-processo-unificado-rational-adaptado-de-the-rational-unified.png) **É 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
[Modelo de ciclo de vida] **Processo unifcado** - Quais as desvatagens e vantagens?
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
[Modelo de ciclo de vida] **RUP (Processo Unificado Racional)** - O que é?
É 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
[Modelo de ciclo de vida] **RUP (Processo Unificado Racional)** - Quais as **Fases**?
- **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
[Modelo de ciclo de vida] **RUP (Processo Unificado Racional)** - Quais as **Disciplinas**?
**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
[Modelo de ciclo de vida] **RUP (Processo Unificado Racional)** - Quais as **Papeis**?
**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
[Modelo de ciclo de vida] **Processo Praxis** - o que é??
**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
[Modelo de ciclo de vida] **Clean Room** - o que é??
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
[Modelo de ciclo de vida] **Clean Room** - quais as vantagens e desvantangens??
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.