Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Resumo - Estudo Para a Prova de Engenharia de Software, Notas de estudo de Engenharia de Software

O documento intitulado "Resumo - Estudo Para a Prova de Engenharia de Software I" aborda conceitos fundamentais de Engenharia de Software e foi criado para estudantes revisarem o conteúdo e se prepararem para a prova de Engenharia de Software. Ele é um material voltado para o entendimento de metodologias, modelos de ciclo de vida de software e abordagens ágeis no desenvolvimento de sistemas. Estrutura do Conteúdo: 1. Ciclo de Vida do Software: 2. Ciclo de Manutenção; 3. Processos de Software; 4. Modelos Genéricos de Processos de Software: 5. Métodos Ágeis; 6. Extreme Programming (XP).

Tipologia: Notas de estudo

2023

À venda por 21/10/2024

certoriow
certoriow 🇧🇷

5 documentos

1 / 14

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Resumo de Engenharia de Software
Ciclo de Vida
O ciclo de vida do software possui as seguintes etapas segundo o
Rezende:
1. Estudo de Viabilidade: Precisa de um estudo preliminar –
Quais são as deficiências atuais? Quais os objetivos do novo
sistema? Existe orçamento? Melhor desenvolver ou
adquirir?;
(ROI Return Over Investment/Retorno Sobre o
Investimento: é um indicador que é utilizado para avaliar
como o investimento afeta as receitas de um negócio.
Cálculo: ((receita – custo) /custo) * 100.)
2. Análise de Sistemas: a. Estabelecer as fronteiras Os
limites homem-máquina/As restrições do Sistema/Custo-
benefício do Sistema/ b. A descoberta do sistema - Um
processo de Elicitação das necessidades e especificar as
necessidades;
3. Projeto: Restrições são pensadas Recursos Humanos
disponíveis/ Equipamentos e ferramentas disponíveis/
Hierarquias apropriadas entre os módulos/ Quais
interfaces entre os módulos? / Capturar as estruturas do
Sistema;
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Pré-visualização parcial do texto

Baixe Resumo - Estudo Para a Prova de Engenharia de Software e outras Notas de estudo em PDF para Engenharia de Software, somente na Docsity!

Resumo de Engenharia de Software

Ciclo de Vida

O ciclo de vida do software possui as seguintes etapas segundo o Rezende:

  1. Estudo de Viabilidade: Precisa de um estudo preliminar – Quais são as deficiências atuais? Quais os objetivos do novo sistema? Existe orçamento? Melhor desenvolver ou adquirir?; (ROI – Return Over Investment/Retorno Sobre o Investimento: é um indicador que é utilizado para avaliar como o investimento afetará as receitas de um negócio. Cálculo: ((receita – custo) /custo) * 100.)
  2. Análise de Sistemas: a. Estabelecer as fronteiras – Os limites homem-máquina/As restrições do Sistema/Custo- benefício do Sistema/ b. A descoberta do sistema - Um processo de Elicitação das necessidades e especificar as necessidades;
  3. Projeto: Restrições são pensadas – Recursos Humanos disponíveis/ Equipamentos e ferramentas disponíveis/ Hierarquias apropriadas entre os módulos/ Quais interfaces entre os módulos? / Capturar as estruturas do Sistema;

a. Projeto Lógico: Coesão entre os módulos; conexão adequada; descrever o projeto de banco de dados; como será o empacotamento do projeto? (Ex: Protótipos e Fluxogramas).

  1. Implementação: Colocar a mão na massa – Escolher uma linguagem de programação adequada/ Definir a sequência dos módulos/ Codificar o que consta no projeto lógico/ Implementar nesta sequência; a. Pensar em teste: A cada módulo desenvolvido – Testar de forma incremental/ Após juntar os módulos – Testar a integração do sistema;
  2. Geração do Teste de Aceite: Testar o Sistema Completo - Uma especificação estruturada é gerada/ Também chamada de Projeto de Implementação/ Casos de Teste são gerados; a. Elaborar um plano: Gerar um plano de testes/ Escolher entradas para o Sistema/ Definit as saídas esperadas/ Executar os testes; b. Extrapolar o Sistema: Produzir testes de Performance/ “Enganar” o Sistema com dados errados/ Validar as saídas do Sistema/ Produz a especificação dos testes.
  3. Garantia da Qualidade: Verificar as expectativas do cliente
    • Um teste final é feito/ Tentar garantir a satisfação do cliente/ O cliente tem acesso a especificação dos testes/ Observar a satisfação do cliente/ Atendeu as expectativas;
  4. Descrição de Procedimentos: Formaliza e estabelece – O que o sistema pronto faz/ Quais partes continuaram manuais/ Uma descrição formal do que o Sistema faz/ Manuais podem ser elaborados/ Faz parte do Projeto de Implementação;
  5. Conversão de Base de Dados: Sistemas Legados – Dados históricos/ Importantes para a empresa/ O novo Sistema precisa deles/ Necessário uma conversão dos dados/ Faz parte do Projeto de Implementação;
  6. Instalação: Atividade Final – Processo de disponibilizar o Sistema em “produção” / Pode acontecer do dia para a noite, mas isso pode causar problemas: Rejeição dos usuários finais, sabotagem do Sistema, Uso inadequado do Sistema. a. Considerações: Realizar a etapa progressivamente; oferecer treinamento para os usuários; Campanhas de conscientização; elaborar bons manuais de uso; faz parte do Projeto de implementação.

Ciclo de Manutenção

Principais Motivos:

  • Ajustes pós-instalação;
  • Estar de acordo com a legislação; o Quando precisa estar em compliance; sistemas financeiros; demandam sempre avaliação de mudanças.
  • Por estar gerando erros. o Incluir novas funções; restrições novas; melhorar o desempenho. o Eliminar erros; a mais problemática; pode parar o sistema como um todo; pode evidenciar problemas nos testes; fazer o SW voltar ao normal;
  • Manutenção e operação;
  • Uma deficiência do modelo cascata é a dificuldade em acomodar mudanças depois que o processo se inicia. Problemas com o Modelo Cascata
  • O mais antigo e amplamente usado;
  • Projetos reais raramente seguem o fluxo sequencial que ele propõe. Ocorrem interações que trazem problemas na aplicação do paradigma;
  • É difícil para o cliente declarar todas as exigências explicitamente e é difícil acomodar as incertezas naturais que existem no começo de muitos projetos;
  • O cliente deve ter paciência, pois uma visão do Software só estará disponível em um ponto tardio do cronograma. Um erro tosco pode ser desastroso;
  • Só é apropriado quando os requisitos são bem conhecidos.
  1. Desenvolvimento Evolucionário (Prototipação): especificação e desenvolvimento são intercalados. a) Desenvolvimento exploratório – o objetivo é trabalhar com o cliente e desenvolver um sistema final a partir das especificações iniciais. Deve iniciar com requisitos bem compreendidos; b) Jogar Fora a Prototipação – o objetivo é entender os requisitos do sistema. Deve iniciar com requisitos pouco compreendidos.
  • Problemas do Desenvolvimento Evolucionário: o Falta de visibilidade sobre o processo; o Sistema geralmente pouco estruturado; o Habilidades especiais são requiridas (ex: em linguagens para uma rápida prototipação).
  • Aplicabilidade do Desenvolvimento Evolucionário: o Para sistemas interativos pequenos ou médios; o Para partes de grandes sistemas (ex: interface com o usuário); o Para sistemas com pouco tempo de vida.
  1. Desenvolvimento Orientado a Reutilização: baseado na sistemática do reuse, onde os sistemas são integrados a partir de componentes existentes ou sistemas COTS (Commercial Off The Shelf). a) Estágios do processo: análise dos componentes; modificação dos requisitos; projeto do sistema com reutilização; desenvolvimento e integração. Esta abordagem está se tornando mais importante, porém ainda há pouca experiência com ela.

b) Não há fases fixas como especificação ou projeto. As voltas no espiral são escolhidas dependendo do que é requisitado; c) Os riscos são explicitamente avaliados e resolvidos durante todo o processo. Setores do Modelo Espiral

  • Definição dos Objetivos: os objetivos específicos para a fase sã identificados;
  • Avaliação e Redução de Riscos: os riscos são avaliados e as atividades organizadas para reduzir os riscos chave são realizadas.
  • Desenvolvimento e Validação: um modelo de desenvolvimento para o sistema é escolhido, que pode ser qualquer um dos modelos genéricos;
  • Planejamento: o projeto é revisto e a próxima fase da espiral é planejada.

Métodos Ágeis

O objetivo dos métodos ágeis é reduzir o overhead nos processos de software e permitir uma resposta rápida aos requisitos em constante mudança sem retrabalho excessivo. Ex: limitando a documentação. Características Gerais:

  • Tem foco no código ao invés do projeto;
  • São baseados em uma abordagem iterativa de desenvolvimento de software;
  • São planejados para entregar rapidamente o software em funcionamento e evoluí-lo para alcançar os requisitos em constante mudança. Desenvolvimento Rápido de Software
  • Os negócios operam com requisitos que mudam rapidamente e é praticamente impossível produzir um conjunto estável de requisitos de software;
  • O software precisa evoluir rapidamente para refletir as necessidades de negócio em constante mudança;
  • A especificação, o projeto e a implementação são intercaladas;
  • O sistema desenvolvido como uma série de versões, com os stakeholders envolvidos na avaliação das versões;
  • Geralmente as interfaces de usuário são desenvolvidas usando uma IDE e um conjunto de ferramentas gráficas.

Manifesto Á gil

Valorizamos mais:

  • Indivíduos e interações, ao invés de processos e ferramentas. Softwares que já funcionam ao invés de documentação abrangente;
  • Colaboração do cliente ao invés de negociação contratual;
  • Resposta a mudança ao invés de seguir um plano. Existe valor nos itens à direita, mas valorizamos mais os itens à esquerda.

Desenvolvimento Á gil Especificação, projeto, implementação e teste são intercalados e os produtos do processo de desenvolvimento são decididos através de um processo de negociação, durante o processo de desenvolvimento do software. Desenvolvimento Dirigido a Planos É baseada em estágios de desenvolvimento separados, com os produtos a serem produzidos em cada um desses estágios planejados antecipadamente. O desenvolvimento incremental é possível no modelo cascata – dirigido a planos. Interações ocorrem dentro das atividades. Extreme Programming

  • Talvez seja o método ágil mais conhecido e amplamente usado;
  • O Extreme Programming (XP) usa uma abordagem “extrema” ao desenvolvimento iterativo: o Novas versões podem ser construídas várias vezes por dia; o Incrementos são entregues aos clientes a cada 2 semanas;

o Todos os testes devem ser realizados em todas as versões e cada versão só é aceita se os testes forem concluídos com sucesso. Princípios dos Métodos Ágeis e do XP

  • O desenvolvimento incremental é mantido através de releases do sistema pequenos e frequentes;
  • O envolvimento do cliente significa compromisso do cliente com a equipe em tempo integral;
  • “Pessoas e não processos” por meio de programação em pares, propriedade coletiva do código e um processo que evita longas horas de trabalho;
  • Mudanças suportadas através de releases regulares de sistemas;
  • Manter a simplicidade através de constante refatoração de código.