Fundamentos e Paradigmas da Engenharia de Software
Classificado em Computação
Escrito em em
português com um tamanho de 843,23 KB
Características e Evolução do Software
Características:
- O software não desgasta e não é sensível a problemas ambientais.
- Toda falha indica um erro de projeto ou implementação.
- A manutenção de software (SW) é mais complicada que a de hardware (HW).
- A maioria dos softwares é feita sob medida.
Hoje: Foco em Orientação a Objetos e Reusabilidade (que diminui custos e melhora os projetos).
O Sistema de Computador
Um sistema de computador é caracterizado por:
- Hardware
- Software
- Informações
- Usuários
- Tarefas
- Documentação
Aplicações de Software
As principais aplicações incluem: Software Básico, Tempo Real, Comercial, Científico ou de Engenharia, Embutido, Computador Pessoal e Inteligência Artificial (I.A.).
Definição de Engenharia de Software
Engenharia de Software é o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais.
Paradigmas de Engenharia
Existem 4 paradigmas principais:
- Ciclo de Vida Clássico
- Prototipação
- Espiral
- Técnicas de Quarta Geração
Ciclo de Vida Clássico: Modelo Cascata
Baseado em projetos de engenharia clássicos.
Fases: Engenharia de Sistemas, Análise de Requisitos, Definição, Projeto, Codificação, Testes e Manutenção.
Problemas:
- Projetos reais raramente seguem o fluxo sequencial proposto.
- É difícil estabelecer todos os requisitos explicitamente no início; sempre existe uma incerteza natural.
- O cliente deve ter paciência, pois uma versão executável só surge em etapas avançadas.
- Desenvolvedores podem ficar ociosos devido a estados bloqueadores.
Prototipação
Fluxo: Obtenção dos requisitos > projeto rápido > construção do protótipo > avaliação do protótipo > refinamento do protótipo > construção do protótipo.
A iteração pode adequar o sistema às necessidades do usuário, podendo o protótipo ser descartado ou tornar-se parte do produto final.
Problemas: O cliente pode insistir em usar o protótipo com apenas ligeiras modificações, e decisões improvisadas podem acabar no produto final.
Modelo Espiral
Fases do modelo Espiral:
- Definição dos objetivos: Especificação dos objetivos específicos desta fase.
- Análise dos riscos: Identificação e solução dos principais riscos.
- Desenvolvimento e validação.
- Planejamento.
Linguagens de Quarta Geração (L4G)
Ferramentas para especificação de alto nível: Consulta a base de dados, geração de relatórios, manipulação de dados, definição e interação com telas e geração de código.
Domínio predominante: Sistemas comerciais de informação. Apresenta boa produtividade para sistemas pequenos, médios ou específicos.
Problemas: Para sistemas grandes, demanda muito tempo e a necessidade de um projeto estruturado permanece.
Qualidade e Produtividade
Qualidade: Capacidade do produto satisfazer as necessidades explícitas e implícitas sob condições especificadas.
Produtividade: Relacionada ao custo e rendimento.
Garantia da Qualidade: A habilidade de garantir a qualidade é a medida da maturidade da engenharia de software. A Engenharia de Software leva a organização a comprometer-se com a qualidade.
A imaturidade acarreta: Problemas de orçamento, prazos ultrapassados e falhas na qualidade do produto.
Solução: Implantação de um processo com métodos, ferramentas e evolução constante.
CMM - Capability Maturity Model
O CMM é um modelo para avaliação da maturidade dos processos de software de uma organização e para identificação das práticas-chave requeridas para aumentar essa maturidade.
Níveis de Maturidade:
- Inicial: Processo imprevisível e sem controle.
- Repetível: Processo disciplinado.
- Definido: Processo consistente e padronizado.
- Gerenciado: Processo previsível e controlado.
- Otimização: Processo aperfeiçoado continuamente.
CMMI Nível 2
Fases de Implantação de um Software
- Conscientização
- Preparação
- Treinamento
- Levantamento
- Elaboração de plano de melhoria
- Definição dos processos
- Definições de papéis e responsabilidades
- Implementação
- Acompanhamento e ajustes
Gerenciamento de Projetos
Estudo de Caso: Santista Têxtil S/A
Em 2002, uma consultoria recomendou que a empresa desenvolvesse um sistema de gestão de projetos.
Diagnóstico da situação:
- Não havia planejamento uniforme.
- Projetos não tinham definição clara de objetivos.
- Eram planejados e controlados sem ferramentas padronizadas.
Decisões Tomadas: Foi desenvolvido um escopo obrigatório. Das 9 áreas de conhecimento, três foram abordadas inicialmente: Gestão de Escopo, Gestão de Prazo e Gestão da Comunicação.
As Cinco Fases da Vida de um Projeto
Ações a serem executadas:
- Treinamento conceitual de Gestão de Projetos.
- Definição das ferramentas da metodologia.
- Definição de um cronograma de implementação.
- Treinamento dos gerentes de projeto.
- Prazos para colocar a metodologia em prática.
Formas de ajustar a metodologia: Cronograma para implantação e uso de indicadores.