Engenharia de Software
Transcrição
Engenharia de Software
Engenharia de Software Faculdade Nossa Cidade Curso de Gestão de TI Engenharia de Software Engenharia de Software - Histórico . A Engenharia de Software surgiu em meados dos anos 1970 numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos. . Atualmente existe um destaque todo especial para a Engenharia de Software na Web. O processo usado para criar WebApps (aplicações baseadas na Web) de alta qualidade. Embora os princípios básicos da WebE sejam muito próximos da Engenharia de Software clássica, existem peculiaridades específicas. Engenharia de Software Qual a importância da Engenharia de Software (ES)? – – – O desenvolvimento de um software envolve processos muitos complexos. A ES estabelece um modelo para se construir um programa. A programação (programador) é apenas uma atividade dentro do processo que envolve a construção de um software. A ES envolve diversos intervenientes que vão desde o analista de sistemas até o cliente usuário final. Alguns programas muito simples são feitos por apenas um indivíduo sem precisar utilizar uma técnica estabelecida. A maioria dos softwares nas empresas são complexos e necessitam de técnicas de desenvolvimento em equipe que envolvem várias pessoas. 1 Engenharia de Software Por que para construir um software precisa utilizar técnicas de engenharia parecidas com a de uma casa? – – – O desenvolvimento de um software envolve profissionais especializados em atividades complexas. Atividades de engenharia como a construção de uma casa necessitam de técnicas de engenharia para a qualidade do produto final. É muito difícil determinar o prazo final de entrega de um software. Atividades de engenharia também necessitam de engenheiros para elaborar um cronograma para definir a entrega do produto. Os custos de um software é muito difícil de determinar. É necessário fazer um estudo com um orçamentista para definir os cálculos das despesas de uma obra. Engenharia de Software O que é um software? – Um produto que os profissionais de software constroem e mantém ao longo do tempo. Pressman – Conjunto de programas separados (arquivos de configuração, documentação, etc.) . Summerville Engenharia de Software Existem tipos diferentes de software? – Um software pode ser classificado como: Básico Aplicativo Sistemas Cientifico e de Engenharia Embutido Computador Pessoal Aplicações Web Inteligência Artificial Comercial 2 Engenharia de Software Por que existe uma crise de software? Porque existem problemas no desenvolvimento do software. A crise do software está relacionada à problemas que são encontrados no desenvolvimento de software que não se limitam ao não funcionamento de forma adequada. Envolve também outros problemas: Como se desenvolve um software; Como mantemos um volume crescente de software existente; Como administrar a crescente demanda por mais software. Como criar um software com qualidade. Qual a melhor maneira para construir um software Qual a maneira mais rápida e barata de construir um software. – – Software x Hardware O Software atualmente é mais importante e faz mais diferença na qualidade de um sistema do que o Hardware (Era da Informação): – – – – – – – – completeza da informação usabilidade otimização Interface para web inteligência funcionalidade compatibilidade suporte Características do Software Atualmente os softwares mais complexos são desenvolvido com técnicas de engenharia. O desenvolvimento de software necessita de projeto e de gerenciamento do processo. Falhas em software indica erro de projeto ou de implementação. A manutenção do software é mais complicada que a do hardware. Software não desgasta (Normalmente deve ser projetado para o maior tempo de vida útil possível). 3 Características do Software A maioria dos softwares são construídos sob medida e não a partir de componentes existentes. – Com a tecnologia de Orientação a Objetos e a reusabilidade de códigos está mudando este cenário. Motivos para Engenharia de Software Os prazos para desenvolvimento de software são excedidos. Os custos para desenvolvimento de software são cada vez maiores por causa de sua complexidade. Muitos erros de software são descobertos pelo cliente depois de sua entrega. Existe grande dificuldade em medir o progresso do desenvolvimento de software. Causas de problemas de Software Não é dedicado tempo suficiente para coletar dados sobre o desenvolvimento do software. Muitas coisas são estimadas; A comunicação entre o cliente e o desenvolvedor é falha; Falta de testes; Gerentes com pouco know-how; Pouco treinamento para o pessoal; Falta de investimento em Engenharia de Software. 4 Mitos dos softwares – Visão cliente Colocar mais programadores agiliza o processo e evita atrazos. Utilizar um computar mais potente resolve os problemas de desenvolvimento. Uma declaração geral e obvia é suficiente para iniciar o desenvolvimento. Mudanças podem ser feitas sem problemas na fase de desenvolvimento. Os programadores conseguem fazer quase tudo. Mitos dos softwares – Visão desenvolvedor Um programa está terminado ao funcionar. Quanto mais cedo escrever um código mais rápido o programa será terminado. Só é possível avaliar a qualidade de um software em funcionamento. A única coisa a ser entregue em um sistema é o programa. Planejamento do software 5 Planejamento do software Problemas de software ao longo do tempo Exemplo 1 1962 - Mariner 1 Problemas de software ao longo do tempo 1962 - o foguete Mariner 1 com uma sonda espacial para Vênus, foi desviado de seu percurso de voo logo após o lançamento. O controle da missão destruiu o foguete minutos após a decolagem. Causa: Um programador esqueceu de digitar uma barra. Sem ela, o software tratava variações normais de velocidade como se fossem sérios problemas, causando falhas que acabaram por enviar o foguete fora do curso. Custo: 18,5 milhões dólares. 6 Problemas de software ao longo do tempo Missões Mariner posteriores tiveram sucesso 1962 - Mariner 1 - Lançamento sem sucesso. 1962 - Mariner 2 - A nave passou a 35 mil km de Vênus enviando informações da atmosfera. 1964 - Mariner 3 - Missão sem sucesso. 1964 - Mariner 4 - A nave passou a 9.920 km de Marte. Fotografou 22 vezes a superfície marciana. 1967 - Mariner 5 - A sonda sobrevoou Vênus coletando informações. 1969 - Mariner 6 - A missão passou por Marte tirando fotos e analisando a atmosférica. 1969 - Mariner 7 - Sobrevoou o pólo sul de Marte. Tirou 126 fotos. 1971 - Mariner 8 - Lançamento sem sucesso. Mariner 9 - Primeiro satélite artificial enviado a Marte. Entrou em órbita do planeta em 13 de novembro de 1971, após 167 dias de viagem. Mariner 10 – 1ª nave enviada a Mercúrio. Enviou dados sobre Vênus e do cometa Kohoutek. Problemas de software ao longo do tempo Exemplo 2 1978 - Coliseu Hartford Problemas de software ao longo do tempo 1978 - o teto de treliça de aço do Coliseu Hartford desabou sob o peso da neve molhada. Causa: O programador projetista assumiu que o telhado enfrentaria apenas compressão natural. Custo: 70 milhões de dólares. 7 Problemas de software ao longo do tempo 2005 - Hartford Civic Center Problemas de software ao longo do tempo Exemplo 3 1982 - Trans-Siberian Problemas de software ao longo do tempo 1982 - Desastre: O software de controle apresentou erro e causou a maior explosão nãonuclear da históriano no gasoduto Trans-Siberian. Causa: a CIA colocou um bug no software para poder manipular remotamente todo o tipo de máquinas e tecnologia. Quando o bug foi ativado o sistema ficou em pane e causou a explosão. Custo: Milhões de dólares e danos significativos a economia soviética 8 Problemas de software ao longo do tempo 2013 – Gasoduto na Sibéria Problemas de software ao longo do tempo Exemplo 4 1996 – Ariane 5 Problemas de software ao longo do tempo 1996: o foguete Ariane 5 e satélites científicos da Europa não-tripulado fram destruídos segundos após seu lançamento. Causa: o computador de orientação tentou converter a velocidade do foguete de 64-bits para um formato de 16 bits. O número era muito grande, o que resultou em erro de estouro. O controle passou para uma unidade idêntica redundante que também falhou porque estava com o mesmo algoritmo. Custo: $500 milhões 9 Problemas de software ao longo do tempo 2014 – Ariane ATV-5 Problemas de software ao longo do tempo Exemplo 5 2005 – Sentinel Problemas de software ao longo do tempo 2005: O FBI desistiu da revisão do sistema Sentinel idealizado para agentes compartilharem arquivos de casos e outras informações. Causa: Má gestão e uma tentativa de construir um projeto de longo prazo sobre tecnologia ultrapassada, resultou em um sistema complexo e inutilizável. Custo: $105 milhões jogados fora! 10 Problemas de software ao longo do tempo 2012 – Sentinel Sistema digital de gerenciamento de casos, o Sentinel, está finalmente pronto e funcionando com desenvolvimento ágil e sem utilizar tecnologias de hardware ultrapassado. 11