Fundamentos da Engenharia de Software: Guia Completo
Classificado em Computação
Escrito em em
português com um tamanho de 3,11 KB
Engenharia de Software: Conceitos Fundamentais
O que é Software?
- Definição: Conjunto de instruções, estruturas de dados e documentação.
- Diferença do Hardware: Enquanto o hardware possui vida útil, o software se deteriora. Sem engenharia, as falhas se acumulam até tornar o sistema inutilizável.
Evolução e Crise do Software
- Evolução: De tarefas pontuais (ordenar listas) para sistemas complexos.
- Crise do Software (Anos 70): Dificuldades no desenvolvimento frente à alta demanda e complexidade, devido à inexistência de técnicas adequadas.
- Mitos: A crença de que o trabalho termina assim que o programa entra em funcionamento.
Definição de Engenharia de Software
É a disciplina tecnológica e gerencial focada na produção sistemática e manutenção de produtos de software, respeitando prazos e custos. Abrange três elementos fundamentais:
- Métodos, ferramentas e procedimentos: Detalham o "como fazer".
Principais Métodos
- Planejamento e estimativa de projetos;
- Análise de requisitos;
- Projeto e estrutura de dados;
- Algoritmos de processamento;
- Codificação, testes e manutenção.
Modelos de Processo
Método Cascata
- Uma atividade só inicia após a conclusão da anterior;
- Natureza descritiva e rígida (não permite novos requisitos no meio do processo);
- Vantagens: Baixo custo de implementação e fácil controle;
- Desvantagens: Entregas não são parciais; exige requisitos estáveis.
Prototipação e Espiral
- Prototipação: Não entrega o produto final; quanto mais detalhado, mais caro.
- Espiral: Combina a prototipação (incrementos) com a organização do cascata e análise de riscos. Exige profissionais especializados.
Técnica de 4ª Geração (4GL)
- Obtenção de requisitos;
- Estratégia do projeto;
- Implementação usando 4GL;
- Testes.
Processo Unificado (RUP) e UML
Para sistemas complexos, o processo deve ser guiado por casos de uso, centrado em arquitetura, iterativo e incremental.
- Arquitetura: Define requisitos não funcionais (ex: tempo de resposta).
- Iterativo: A cada repetição, novas características são adicionadas.
- RUP (Rational Unified Process): Ferramenta que controla o processo de desenvolvimento.
- UML: Linguagem de modelagem utilizada dentro do processo unificado para descrever sistemas.
Análise de Problemas
5 passos para a análise:
- Declaração do problema;
- Diagrama de Ishikawa;
- Identificação de usuários e stakeholders;
- Definição das fronteiras do sistema;
- Lista de restrições.
Após essas etapas, segue-se para o workshop de características.