Fundamentos de Software: Ciclo de Vida e Mitos
Classificado em Computação
Escrito em em
português com um tamanho de 5,06 KB
Fundamentos de Software e Desenvolvimento
Software inclui código-fonte, executável e documentação (plantas).
Desenvolvimento envolve: requisitos, análise, projeto, implementação, teste e manutenção.
Software é uma entidade lógica; não se desgasta com o tempo como o hardware. Após corrigido, seu índice de falha estabiliza-se. O software fica obsoleto porque as regras de negócio mudam.
Mitos Comuns no Desenvolvimento de Software
Mito da Administração
Mito: Existe um manual repleto de padrões e procedimentos para a construção do software, e isso é o suficiente?
Resposta: Será que ele é usado? Reflete a prática moderna?
Mito: Se estamos atrasados no prazo, podemos adicionar novos programadores?
Resposta: Como não é um processo mecânico, adicionar pessoas pode atrasar (devido ao treinamento).
Mito do Cliente
Mito: A declaração geral dos objetivos é suficiente, deixando os detalhes para depois.
Resposta: Uma fase inicial malfeita pode prejudicar e é uma das principais causas de fracasso. Os requisitos modificam-se continuamente, mas as mudanças podem ser acomodadas facilmente, já que o software é flexível.
Realidade: Quanto mais tarde as modificações ocorrem, maior o custo, e não é tão simples de ser implementado, podendo modificar muita coisa.
Mito Profissional
Mito: Assim que estiver rodando, o trabalho está finalizado.
Resposta: Não. A parte de manutenção e correção demanda muito tempo e trabalho.
Mito: A única coisa que deve ser entregue é o programa funcionando?
Resposta: Isso é apenas uma parte. É necessário entregar também: manual, manual de instalação e especificação de requisitos.
Ciclo de Vida do Software
O ciclo de vida inclui:
- Requisitos: Entender a natureza do programa, função, interface e desempenho.
- Projeto: Obtém-se uma planta do software, podendo-se avaliar sua qualidade, arquitetura e interface.
- Codificação: Traduzir o projeto em uma linguagem.
- Teste: Verifica aspectos internos (instruções) e externos (erros).
- Manutenção: Ocorrência de erros e implementação de mudanças.
Modelos de Desenvolvimento
Modelo Caótico
Não existe organização no processo de desenvolvimento; tentam funcionar de qualquer forma.
Modelo Clássico (Cascata ou Waterfall)
Envolve engenharia de sistemas, análise, projeto, codificação, teste e manutenção.
- Vantagem: Inicia-se uma etapa quando a outra estiver completa; produção sequencial que permite ver o todo completo.
- Desvantagem: Difícil seguir o fluxo sequencial e difícil declarar todos os requisitos iniciais.
Modelo Iterativo (Prototipação)
Processo cíclico que envolve especificar requisitos do usuário, necessidades de hardware e software, e construção dos primeiros modelos.
- Vantagem: Grande interação com o usuário e qualidade na definição da interface.
- Desvantagem: Cria expectativas no usuário e compromisso com a tecnologia.
Prototipação
Capacita a criar um modelo de software que será implementado. Fases:
- Coleta e refinamento de requisitos.
- Projeto rápido.
- Construção do protótipo.
- Avaliação do protótipo pelo cliente.
- Refinamento do protótipo.
- Engenharia do produto.
- Vantagem: Melhorar a qualidade da especificação de futuros programas e treinamento dos usuários antes do produto ficar pronto.
- Desvantagem: O principal argumento é o custo e os atrasos.
RAD (Rapid Application Development)
Envolve modelagem do negócio, dos dados, tratamento da informação, geração da aplicação e testes.
- Vantagem: Uso de componentes e redução do tempo.
- Desvantagem: Não adequada a projetos de risco e ao tamanho da equipe.
Modelo Incremental
Trabalha com o usuário para descobrir seus requisitos de maneira incremental, até que o produto esteja definido. Apropriado para sistemas pequenos. Sequência: planejamento, modelagem, construção, implantação.
- Desvantagem: Não se conhece o projeto como um todo (visualização) e o custo é mais complexo (iterações).
Etapas dos Requisitos
As etapas dos requisitos são:
- Elicitação: Conhecer as necessidades dos clientes (entrevista, questionário).
- Especificação.
- Análise.
- Validação e Gerência.