Engenharia de Software: Processos e Metodologias
Classificado em Computação
Escrito em em
português com um tamanho de 5,52 KB
Objetivos e Pilares da Engenharia de Software
Objetivos: Especificar, documentar e implantar processos no desenvolvimento de um produto. O objetivo principal é obter um produto de qualidade, com alto padrão, baixo custo de desenvolvimento e no menor tempo possível.
Pilares da Engenharia de Software:
- Processo: Conjunto de atividades ou tarefas executadas por papéis predefinidos em uma ordem específica que geram, como resultados, produtos de trabalho. Define quem faz o quê e quando faz. Devem ser definidos, documentados e implementados. Este conjunto de atividades define o ciclo de vida (requisitos, arquitetura, código-fonte, testes, contrato, etc.).
- Métodos: Para cada tarefa, é atribuído um método para a conclusão das mesmas.
- Ferramentas: Visam facilitar e melhorar o desenvolvimento dessas atividades.
Três pontos fundamentais: Plena compreensão do processo de negócio do ambiente fim; contínua verificação e validação da qualidade de todos os artefatos gerados; e a implementação, documentação e implantação de processos.
Ciclo de Vida do Software
O ciclo de vida é o conjunto de atividades executadas no processo de desenvolvimento, iniciando no momento da concepção do software e seguindo até ser descontinuado. É dividido em duas categorias:
- Atividades de desenvolvimento: São as atividades técnicas inerentes ao desenvolvimento.
- Atividades de gestão: Atividades de suporte às técnicas, inerentes aos conceitos da gerência de projetos.
Atividades de Desenvolvimento
- Análise de Negócio: Identifica as necessidades do stakeholder e propõe uma solução.
- Análise de Requisitos: Identifica as características das soluções propostas.
- Análise de Design: Define a arquitetura da solução proposta (estrutura e comportamento).
- Implementação: Codificação da solução proposta.
- V&V (Verificação e Validação): Testa e valida os diversos artefatos desenvolvidos.
- Deploy: Trata da implantação no ambiente de produção.
Atividades de Gestão
- Gerência de Requisitos: Principal objetivo é o controle sobre quais são os requisitos especificados e o estado de cada um, permitindo controlar a evolução do projeto.
- Gerência de Configuração: Permite ao time controlar o conjunto de artefatos que contém uma determinada release; cada versão gera uma nova baseline.
- Gerência de Mudanças: Permite o controle de todas as mudanças solicitadas.
Modelos de Desenvolvimento
Modelo Cascata
Nesse modelo, as atividades do processo de desenvolvimento são estruturadas em uma cascata, onde a saída de uma etapa é a entrada para a próxima etapa. As atividades são atômicas, possuem feedback tardio, baixo grau de interação, evolução de risco de sucesso do projeto e demora. Não prevê a manutenção nem permite a reutilização.
Processo Iterativo
No processo iterativo, um problema deve ser quebrado em porções que são atacadas individualmente. Desta forma, o projeto é dividido em diversas pequenas etapas denominadas iterações. Em cada iteração, pode-se aplicar todas as atividades do ciclo de vida. Ao término, deve-se entregar uma build para que a mesma possa ser validada no ambiente de produção. O feedback imediato é fundamental para a correção dos erros, evitando a propagação dos mesmos pelas próximas etapas.
Classificação de Processos
- Formal: É realizado um produto de trabalho, como uma análise de negócios, um documento de requisitos ou um documento de arquitetura. Vantagem: Oferece melhor persistência das informações geradas, considerando que estão documentadas.
- Informal: Foca na comunicação entre os membros do time e a comunicação entre o time e os stakeholders. Vantagem: Permite que o tempo dedicado à implementação, V&V e deploy seja maior, oferecendo resultados mais rápidos.
Métodos Tradicionais vs. Métodos Ágeis
- Métodos Tradicionais: Comunicação formal entre os membros do time e entre o time e stakeholders. Foca na documentação das atividades ou tarefas, gerando grande quantidade de documentos. É vantajoso quando o stakeholder não é acessível, quando o time é de médio ou grande porte ou quando há alta rotatividade. Os produtos de trabalho gerados em uma tarefa são utilizados como subsídios para as demais atividades.
- Métodos Ágeis: Surgem como contraproposta à burocracia do método tradicional. Define-se em 4 pilares: 1) Indivíduos e interações mais que processos e ferramentas; 2) Software em funcionamento mais que documentação abrangente; 3) Colaboração com o cliente mais que negociação de contratos; 4) Responder a mudanças mais que seguir um plano.
Aumento de Escopo: Pode acontecer a continuação do sistema e a aparição de muitos requisitos novos, fazendo com que esse sistema nunca termine. Isso é chamado de aumento de escopo.