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:

  1. Ciclo de Vida Clássico
  2. Prototipação
  3. Espiral
  4. 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:

  1. Inicial: Processo imprevisível e sem controle.
  2. Repetível: Processo disciplinado.
  3. Definido: Processo consistente e padronizado.
  4. Gerenciado: Processo previsível e controlado.
  5. Otimização: Processo aperfeiçoado continuamente.

CMMI Nível 2

Fases de Implantação de um Software

  1. Conscientização
  2. Preparação
  3. Treinamento
  4. Levantamento
  5. Elaboração de plano de melhoria
  6. Definição dos processos
  7. Definições de papéis e responsabilidades
  8. Implementação
  9. 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.

Entradas relacionadas: