Componentes do Software


  • Componentes do Software
    • Um sistema informatizado é formado por dois tipos de componentes:
      • Executáveis em máquina e
      • Não executáveis em máquina
    • Os componentes do software devem mapear as exigências do cliente em código executáve


  • Conceitos:
    • Hardware
    • Software
    • Firmware


Tipos Comuns de Software


  • Básico: compiladores, editores simples, drivers, componentes do SO.
  • Tempo Real: monitora, analisa e controla eventos em tempo real.
  • Comercial: controle de estoque, vendas etc.(manipulam algum mecanismo de persistência, como uma de suas principais características)
  • Científico e de Engenharia: intenso processamento de números e cálculos.
  • Embutido ou Embarcado: celulares, micro-ondas, injeção eletrônica.
  • Pessoal: processador de texto, planilha, jogos, apresentações etc.
  • Inteligência Artificial: sistemas especialistas, redes neurais e aprendizado.



Principais Problemas


  • Estimativas de prazo (meses, anos) e custo imprecisas
  • Produtividade abaixo da praticada pelo mercado
  • Software de baixa qualidade (erros e não conformidades com requisitos que tiram a confiança do cliente sobre o produto)
  • Não dedicamos tempo para coletar dados sobre o software e seu processo de desenvolvimento. Com poucos dados históricos como guia, as estimativas têm sido “a olho”, com resultados previsivelmente ruins.
  • Sem nenhum indicador sólido de produtividade, não poderemos avaliar com precisão a eficácia de novas ferramentas, métodos, padrões ou processos.
  • A insatisfação do cliente com o sistema “concluído” ocorre muito freqüentemente.
  • Os projetos de desenvolvimento de software normalmente são levados a efeito apenas com um vago indício das exigências do cliente.
  • A comunicação entre o cliente e o desenvolvedor de software freqüentemente é muito fraca.
  • A qualidade do software freqüentemente é suspeita. Somente agora estão começando a ser seguidos conceitos quantitativos sólidos de confiabilidade e de garantia de qualidade de software.
  • Só recentemente começamos a entender a importância dos testes de software sistemáticos e tecnicamente completos.
  • O software existente pode ser muito difícil de manter. A tarefa de manutenção de software devora a maioria de todos os dólares destinados a software. A capacidade de manutenção de software não foi enfatizada como um critério importante para a aceitação do software.


Causas

  • Gerentes sem vivência em:
    • Projetos e seus marcos de evolução
    • Métodos efetivos de controle
    • Tecnologias que se modificam rapidamente
    • Os programadores ou engenheiros de software têm pouca instrução formal, holística e estudam pouco as técnicas de desenvolvimento e as áreas de negócio.
    • Cada pessoa aborda a tarefa de “escrever programas” com a experiência advinda de esforços passados. Algumas pessoas desenvolvem uma abordagem ordeira e eficiente, mesmo por tentativa e erro, mas muitas criam maus hábitos, que resultam em qualidade e manutenibilidade deficientes.
    • Resistência às inevitáveis mudanças
    • É irônico que enquanto o hardware experimenta enormes mudanças, as pessoas da área de software responsáveis pelo aproveitamento desse potencial, muitas vezes se oponham à mudança quando ela é discutida e resistam a ela quando ela é introduzida.


Material de apoio


  • Original :))
    • PRESSMAN, Roger S. MAXIM, Bruce R. Engenharia de Software. Uma abordagem profissional. 8a. edição. 2016.
    • REZENDE, Denis A. Engenharia de Software e Sistemas de Informação. BrasofBrasport. 3a. edição. 2005.
  • Cópias :((
    • www.inf.pucrs.br/~michael/aulas/espe_gest_ti/IntroEngSW.pdf
    • file:///home/lclaudio/Downloads/Engenharia%20de%20Software.pdf
    • 177.8.219.7:8081/sites/professor/pastas/andrea/.../aula1.ppt