Curso: Ciênc. da Computação Engenharia e Qualidade de Software Aula (2) : Visão Geral - Engenharia de Software Professor: Luiz Sérgio A. Silva [email protected] Colaboração: Prof. Gregorio Perez Escopo da Engenharia de Software • Aspectos Históricos – 1968 Conferência da OTAN – Objetivo: Resolver a “Crise do Software” – Software entregue: • atrasado • fora do orçamento • com falhas residuais Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Escopo da Engenharia de Software • 1979 – Comando Estratégico do Ar – Iniciou contra-ataque à URSS – Simulação interpretada como ataque real • 1991 – Guerra do Golfo – 28 mortos, 98 feridos – Sincronia dos mísseis Patriot • 1985-87 Therac – 25 (Sistema Médico) – Pelo menos 2 pacientes mortos por radiação – Software de controle de dose Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Escopo da Engenharia de Software • O estabelecimento e uso dos princípios da Engenharia a fim de obter software de baixo custo que seja confiável e trabalhe com eficiência em máquinas reais Fratz Bauer, 1969 Por que não construir um software como se fosse uma ponte ? Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Software • Instruções – Quando executadas, desempenho desejados produzem função e • Estrutura de Dados – Possibilitam que os programas adequadamente a informação manipulem • Documentos – Descrevem a operação e uso dos programas Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Software - Características Hardware • Software – Desenvolvido – Não se Desgasta (se deteriora) – Feito sob medida Construído se Desgasta Montado a partir de componentes existentes Sistemas Mais Especializado -> Menor capacidade de adaptação Maior -> mais recursos para manutenção Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Índice de Falhas Curva de Falha para Hardware “mortalidade infantil” “desgaste” tempo Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Curva de Falha para Software mudança Índice de Falhas Novos picos de falhas devido à mudança Curva Real Curva Idealizada tempo Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Escopo da Engenharia de Software Engenharia de Software não é “Engenharia” • A aplicação de uma abordagem sistemática, disciplinada e quantitativa para o desenvolvimento, operação e manutenção do software Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Software - Aplicações • Básico (de Sistema) – programas escritos para dar apoio a outros programas • Tempo Real – monitora, analisa e controla eventos do mundo real • Comercial – sistemas de operações comerciais e tomadas de decisões administrativas • Científico e de Engenharia – caracterizado por algoritmos de processamento de números Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Software - Aplicações • Embutido (Embarcado) – usado para controlar produtos e sistemas para os mercados industriais e de consumo • Computador Pessoal – envolve processamento de textos, planilhas eletrônicas, diversões, etc. • Inteligência Artificial – faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Software - Evolução • 1950 – 1965 (eram as trevas...) Software Hardware Contínuas mudanças De Propósito Geral Você escreve, você roda e, se falhar, você conserta 1950 1960 2010 1970 Arte Secundária poucos métodos sistemáticos Aplicações Específicas Distribuição Limitada Nenhuma Documentação 1980 1990 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva 2000 Software - Evolução • 1965 – 1975 (Segunda Era) – – – – – – 1950 Multiprogramação e sistemas Multiusuário Técnicas Interativas Tempo Real Banco de Dados Produto Software – software houses Manutenção quase impossível Crise do Software 1960 1970 1980 1990 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva 2000 2010 Software - Evolução • 1975 – 1985 (Terceira Era) (e ainda hoje) – Sistemas Distribuídos – Redes Locais – Produtos Inteligentes (uso generalizado) – Equipamento (Hardware) de baixo custo – Impacto do Consumidor 1950 1960 1970 1980 1990 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva 2000 2010 Software - Evolução • 4a Geração (1985 – ... ) – – – – – – 1950 Sistemas Desktop poderosos Tecnologia Orientada a Objetos Sistemas Especialistas Redes Neurais Artificiais Computação Paralela Redes 1960 1970 1980 1990 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva 2000 2010 Software - Evolução • Atualmente – Sistemas Desktop poderosos – Sistemas Integrados • ERP é uma necessidade, não um luxo – Tecnologia Orientada a Serviços – Web Services Atualmente 1950 1960 1970 1980 1990 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva 2000 2010 Crise do Software Crise ? Que Crise ? • A chamada crise do software está mais próxima de um mal crônico do que de uma crise • Já existe a mais de 30 anos e não tem perspectiva de chegar ao fim • Falhas de software recebem mais publicidade do que as histórias de sucesso Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Crise do Software • Estimativas de Prazo e Custo • Produtividade das pessoas não acompanha a demanda pelos serviços • Qualidade do software é, por vezes, menos que adequada • Software existente de difícil manutenção Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Crise do Software - Causas • Caráter do Software – Elemento lógico (não físico) do sistema • Falhas dos Responsáveis Desenvolvimento pelo – Resistência a Mudanças • “Mitos” do Software – Propagação de desinformação e confusão Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Mitos do Software • Administrativos – Manual com todos os procedimentos disponível é suficiente – Possuir o “estado da arte” em ferramentas de desenvolvimento de software – Adicionar programadores para recuperar o atraso Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Mitos do Software • Clientes – Declaração geral dos objetivos – Requisitos do projeto mudam. Mudanças podem ser ajustadas, pois o software é flexível Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Mitos do Software • Impacto da Mudança 100 Definição 80 Desenvolvimento 60 Após Lançamento 60 – 100 x 40 20 0 1X 1.5-6x Fonte: Roger Pressman Software Engineering Fourth Edition, McGrawHill, 1997 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Mitos do Software • Desenvolvedor – Trabalho acaba quando o software entrar em funcionamento – Não há como avaliar a qualidade de um programa que não estiver em funcionamento – A entrega de um projeto de sucesso é a entrega de um programa funcionando Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Mitos do Software • Custo de cada Fase Fonte: Stephen R. Schach Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Questões • O que é Engenharia de Software ? Qual a sua origem ? • Engenharia de Software não é Engenharia. A afirmação está certa ou errada ? Comente • Qual a diferença entre Engenharia de Software e Ciências da Computação ? • Um fornecedor de ferramentas de produtividade está oferecendo um produto a baixo custo que permite desenvolver um software na metade do tempo que o produto que sua empresa está utilizando atualmente. Você recomenda a compra do produto ? Justifique. Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Questões • Explique sucintamente a evolução do software. • O que é a Crise do Software ? Comente. • Discuta 3 mitos do software. • O custo da manutenção de um projeto é relevante ? Discuta. Engenharia e Qualidade de Software - Prof. Luiz Sérgio A. Silva Obrigado à Todos Até a próxima aula..!!!!