Aula 00 Flashcards
O que é software
Software é um conjunto de programas, dados de documentação e configuração associados necessários para que um sistema funcione.
O que é engenharia de software?
Engenharia de software é a aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software.
A engenharia de software não está relacionada apenas com os processos técnicos de desenvolvimento
de software, mas também com atividades como o gerenciamento de projeto de software e o desenvolvimento de ferramentas, métodos e teorias que apoiem a produção de software
Qual a meta principal da Engenharia de Software?
Desenvolver sistemas de software com boa relação custo-benefício.
Quais são os princípios fundamentais da engenharia de software? (5)
Os princípios fundamentais são:
Formalidade: o software deve ser desenvolvido de acordo com passos bem definidos e seguidos de maneira precisa.
Abstração: onde se busca identificar e entender um fenômeno da realidade sem entrar em detalhes específicos, focando apenas nos aspectos mais importantes e relevantes para o contexto.
Decomposição: em que se divide o problema em partes, de maneira que cada uma possa ser resolvida de uma forma mais específica;
Generalização: em que se divide o problema em partes, de maneira que cada uma possa ser resolvida de uma forma mais específica;
Flexibilização: em que se divide o problema em partes, de maneira que cada uma possa ser resolvida de uma forma mais específica;
O que é qualidade de software?
Qualidade de software é garantir que o software atenda aos requisitos funcionais e não funcionais de maneira eficiente e sem erros.
O que é ciclo de vida de software?
Ciclo de vida de software é o conjunto de fases que o software atravessa desde sua concepção até sua retirada de produção.
Quais são os principais modelos de ciclo de vida de software?
modelos sequenciais, modelos incrementais
e modelos evolutivo.
Quais são as fases do ciclo de vida de software?
Ele contém cinco fases: comunicação, planejamento, modelagem,
construção e implantação.
ou
As fases são:
Planejamento: Define o escopo, objetivos e cronograma do projeto. Inclui a estimativa de recursos necessários e a elaboração de um plano de ação.
Análise e Especificação de Requisitos: Identifica as necessidades e expectativas do cliente, documentando o que o sistema deve fazer e as suas restrições.
Projeto: Transforma os requisitos em uma solução técnica. Inclui o design da arquitetura do sistema, interfaces e banco de dados.
Implementação: Desenvolve o código conforme o projeto definido. A programação do software é feita nesta etapa.
Testes: Avalia se o software funciona corretamente e atende aos requisitos especificados, identificando e corrigindo defeitos.
Entrega e Implantação: O software é disponibilizado aos usuários, podendo envolver treinamentos e adaptações ao ambiente real de operação.
Operação: O sistema é utilizado em ambiente de produção, atendendo aos usuários em suas atividades diárias.
Manutenção: Envolve correções de erros, melhorias e adaptações do software para novas necessidades ou ambientes tecnológicos.
Quais são as características do modelo em cascata?
O modelo em cascata é sequencial e linear, onde cada fase começa somente após a conclusão da fase anterior.
Quais são as vantagens do modelo em cascata?
Clareza e Simplicidade: As fases são bem definidas e fáceis de entender.
Facilidade de Gerenciamento: O controle de cada fase é linear, facilitando o acompanhamento do progresso.
Documentação Completa: Há uma documentação detalhada em todas as etapas.
Previsibilidade: Prazos e custos são mais fáceis de estimar.
Adequado para Projetos Estáveis: Funciona bem quando os requisitos são claros e fixos.
Quais são as desvantagens do modelo em cascata?
Dificuldade de Mudanças: Alterar requisitos após o início é complicado.
Pouca Flexibilidade: Não é ideal para projetos onde os requisitos mudam frequentemente.
Riscos Altos: Problemas ou erros só são descobertos tardiamente, após o desenvolvimento.
Feedback Tardio: O cliente só vê o produto final no final do processo.
Demora na Entrega: O produto só é entregue quando todas as fases são concluídas.
Problemas de Integração: A integração pode ser problemática devido à falta de testes intermediários.
Qual a diferença entre o modelo iterativo e o incremental?
No modelo incremental, o sistema é desenvolvido em partes funcionais;
No modelo iterativo, ele é refinado a cada ciclo com feedbacks constantes.
Quais são as vantagens do modelo iterativo e incremental?
Flexibilidade: Facilita mudanças durante o desenvolvimento.
Feedback Contínuo: O cliente participa em cada iteração.
Entrega Antecipada: Partes do sistema podem ser usadas antes da conclusão total.
Menor Risco: Problemas são detectados e corrigidos cedo.
Prioridade nas Funções: Funcionalidades mais importantes podem ser entregues primeiro.
Testes Contínuos: Erros são encontrados e resolvidos ao longo do processo.
Melhoria Contínua: Cada ciclo permite ajustes e melhorias antes de seguir.
Quais são as desvantagens do modelo iterativo e incremental?
Planejamento Complexo: Exige reavaliação constante e pode ser difícil de gerenciar.
Escopo Expansivo: Mudanças contínuas podem aumentar o escopo do projeto.
Alto Envolvimento do Cliente: Depende de feedback constante, o que pode ser difícil.
Integração Frequente: Pode causar problemas de compatibilidade técnica.
Possível Retrabalho: Mudanças podem gerar retrabalho nas fases futuras.
Complexidade de Versões: Difícil de gerenciar várias versões em desenvolvimento.
Como o desenvolvimento incremental difere do modelo cascata?
No desenvolvimento incremental, o software é entregue em partes funcionais, enquanto no cascata, o software é entregue após a finalização de todas as fases.