ESOF - Aula 02 - 2012/1

Revisão de 17h06min de 20 de fevereiro de 2012 por Lclaudio (discussão | contribs) (Criou página com '= Introdução = == Componentes e Tipos de Software == <br> * Um sistema informatizado é formado por dois tipos de componentes: ** Executáveis em máquinas ** Não execut...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Introdução

Componentes e Tipos de Software



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



  • Tipos de software:
    • Básico: compiladores, editores simples, drivers, componentes de SO
    • Tempo real: monitora, analisa e controla eventos em tempo real
    • Comercial: controle de estoque, vendas, etc. Normalmente manipulam algum mecanismo de persistência.
    • Científico: intenso processamento de números e cálculos
    • Embutido (Embedded): celulares, microondas, injeção eletrônica
    • Pessoal: processador de texto, planilha, jogos, apresentações, etc
    • Inteligência artificial: sistemas especialistas, redes neurais e elearning.



Questões do cotidiano

- É possível no mundo atual vivermos sem aplicações computacionais?


- O software já chegou no máximo do estado da arte?


- Serão necessárias novas aplicações para novos problemas?


- O profissional de tecnologia se dá bem sem conhecer de software?


- Que momento vive o mundo em termos de tecnologia?




Fato

  • Praticamente, todos os países dependem de sistemas simples e complexos baseados em computadores.
    • Imagine uma situação onde os negócios não sejam suportados por programas


  • A dependência se acentua à medida que a nação é mais desenvolvida.
    • É verdade que quanto mais complexa a atividade, maior o grau de automatização?


  • Países emergentes anseiam por tornar-se dependentes de tecnologia
    • Abeer: Brasil exporta silício bruto a aproximadamente US$ 60 por tonelada e importa, em média, a US$ 600 mil por tonelada em forma de processadores



Onipresença

  • Infra-estrutura e serviços nacionais contam com sistemas baseados em computadores.
    • Financeiro
    • Universidades
    • Bolsa de Valores
    • Jurídico
    • Comércio Eletrônico
    • Pregão Eletrônico
    • ??



A Engenharia de Software



  • Ramo da engenharia cujo foco é o desenvolvimento de sistemas de software dentro de custos adequados de alta qualidade.




  • Não existem limitações físicas no potencial do software




  • Pode-se tornar extremamente complexo




Conceito de Engenharia de Software



  • Surgiu a 40 anos atrás em função da Crise do Software




  • A experiência mostrou que o desenvolvimento informal de software não era suficiente




A Crise do Software



  • Consequências:
    • Projetos importantes com anos de atraso
    • Os custos superavam as previsões
    • Desempenho insatisfatório
    • Não era confiável
    • Difícil de manter



  • Os custos de hardware caíam e os custos de software aumentavam.




Motivação



  • Em virtude da importância e participação do software no mundo moderno, é condição essencial que seja fidedigno. O software pode ser considerado fidedigno é quando se pode justificavelmente depender dele assumindo riscos de danos compatíveis com o serviço do software [Avizienis].


  • Disponibilidade: estar pronto para prestar serviço correto sempre que se necessite do software
  • Confiabilidade: habilidade de prestar continuamente serviço correto
  • Segurança: habilidade de evitar consequencias catastróficas relativas aos usuários e ao ambiente
  • Proteção: habilidade de evitar tentativas de agressão bem sucedidas
  • Privacidade: habilidade de proteger dados e código contra acesso indevido
  • Integridade: ausência de alterações não permitidas (corrupção de elementos)
  • Robustez: habilidade de detectar falhas de modo que os danos (as consequencias de erros ou falhas) possam ser mantidas em um patamar aceitável
  • Recuperabilidade: habilidade em ser rapidamente reposto em operação fidedigna após a ocorrência de uma falha
  • Manutenibilidade: habilidade de ser modificado (evoluído) ou corrigido sem que novos problemas sejam inseridos
  • Depurabilidade: habilidade de apoio à diagnose e à eliminação de possíveis falhas a partir de relatos gerados.



A realidade

  • Equipamentos sem software
    • Muito primários?


  • Equipamentos e dispositivos com software embutido (embedded)
    • Apenas de médio e grande porte?


  • Soluções de prateleira (commodities)
    • Atendem a todas as necessidades?


  • Soluções desenvolvidas (taylor-made)
    • É o melhor dos mundos?


  • Soluções por desenvolver
    • Já não existem aplicações para todas as necessidades?


  • Solução open-source?
    • Que graça tem isto?



  • A maioria dos produtos elétricos inclui um computador e um software de controle.
    • MP3, ferro elétrico, relógio, geladeira, furadeira, controle remoto tem sw?


  • Manufatura e distribuição 100% automatizadas
    • Como organizar uma logistica e armazenamento sem um sistema?


  • Sistema financeiro totalmente dependente
    • Já experimentou poucos segundos de delay numa transação bancária?


  • Área de saúde 100% integrada
    • Dá pra confiar em todas as informações de uma diagnóstico?