You are on page 1of 6
7129122, 158 PM AVA UNINOVE < VOLTAR Introdugao a engenharia de software Apresentar os antecedentes histéricos da engenharia de software, comentar sobre seus principais conceitos de software, descrever 0 que caracterizou a crise do software e exemplificar algumas das suas principais éreas de aplicagao, NESTE TOPICO v Mar aaAdaes Antecedentes histdricos da engenharia de software Vamos, inicialmente, fazer um breve histérico dos principais fatos que ocorreram no mundo da tecnologia que justificaram a criagdo deste ramo da computagdo. £ interessante vocé notar que algumas décadas atris, nao se tinha ideia da importincia que os computadores e, em especial, o software (programas de computadores) iriam ter e como iriam afetar profundamente avida de todos nés. A denominagio “engenh: conferéncia organizada para discutir a chamada “crise do software’. Para a de software’ surgiu em 1968, em uma sermos mais precisos, o termo foi criado no inicio da década de 1960, tendo sido utilizado ofieialmente na NATO Conference on Software Engineering (Conferéneia da OTAN sobre Engenharia de Software), que aconteceu na cidade de Garmisch, Alemanha. Nesta ocasiao, todos estavam preocupados em contornar os efeitos da crise do software e buscar maneiras de dar um tratamento de engenharia mais sistemético e controlado, ao desenvolvimento de sistemas de software complexos. hitpsiava.uninove.orisewAVAopicatopico.chp 18 ‘7729122, 158 PM AVA UNINOVE Desta forma, como © principal objetivo dessa conferéncia foi estabelecer priticas mais maduras para o processo de desenvolvimento de software, ela € considerada como o evento que deu origem a disciplina de Engenharia de Software. Acrise do software A ‘crise do software" foi um termo criado para descrever as dificuldades enfrentadas no desenvolvimento de software no final da década de 1960. A complexidade dos problemas, a auséneia de técnicas bem estabelecidas e a crescente demanda por novas aplicagdes comecavam a se tornar um problema sério, Um dos fatores geradores dessa crise foi a introducio de computadores com maior poder computacional. Esses novos computadores tornavam vidveis softwares bem maiores e mais complexos que os sistemas existentes. A experiéncia inicial de construgio desses sistemas mostrou que uma abordagem informal de desenvolvimento de software néo era suficiente, pois ‘+ Projetos importantes softiam atrasos (as vezes, de alguns anos). ‘+ Os custos eram muito maiores do que os inicialmente estimados. + 0s softwares desenvolvidos no eram confidveis e eram de dificil ‘manutengdo, ou seja, a qualidade deixava a desejar. Novas técnicas e novos métodos eram necessérios para controlar a complexidade inerente aos grandes sistemas de software. A cria¢o e adogao da engenharia de software por parte da comunidade de desenvolvedores fot a melhor maneira encontrada para solucionar esses problemas. Caracteristicas do software £ importante vocé saber que o software é um produto que exige uma visio ampla, portanto, 0 controle da qualidade ndo pode ser uma atividade secundéria, devendo estar presente desde o infelo de seu desenvolvimento até a anélise final de entrega. £ interessante a gente comparar 0 software com produtos de hardware porque iss0 auxilia na compreensio das diferencas existentes entre eles ¢ enfatiza as caracteristicas inerentes a um software. Bom, vamos relacionar algumas diferencas basicas entre o processo de desenvolvimento de software em relago ao hardware (PRESSMAN, 2010): ‘+ 0 processo criativo do hardware gera algo fisico (por exemplo, placas de circuitos). O desenvolvimento de software resulta em um elemento pertencente a um sistema légico, intangivel hitpsiava.uninove.orisewAVAopicatopico.chp 72972, 158 PM AVA UNINOVE ‘© © software geralmente é desenvolvide sob medida, ao contririo do hardware, no qual o projetista tem acesso componentes existentes que executam tarefas definidas. 0 projetista do software nem sempre terd acesso a médulos prontos pata utilizagio e quando o faz, pode elevar 0 risco do produto devido a questoes de seguranga, + 0s custos do software estdo concentrados no desenvolvimento © nao no processo de manufatura. Isso significa que ndo pode ser gerido como projeto de manufatura, ‘+ Aolongo do tempo, o produto de software nio se desgasta, mas se deteriora tem fungio da introdugdo de erros oriundos de atividades de manutenco ou evolugdes imy original. itas no processo que devem ser reconsideradas no modelo Desta forma, 0 software sofre deterioracao ocasionada por diversos fatores, sendo uma caracteristica peculiar do produ Segundo Pressman (2010), no caso do hardware, temos um alto indice de alhas no inicio do seu ciclo de vida ocasionadas por defeitos de fabricacio & do estabilidade nas projeto. Posteriormente os defeitos sio corrigidos d falhas ow mantendo-a em um nivel muito baixo es estrutura jodem surgir problemas relacio no final do ciclo de vida dos do produto ao envelhecimento, acimulo de poeira, vibragdo, abuso, temperaturas extremas, entre outros. Esse processo pode ser visto no grafico apresentado 2 8 Tempo Mas voce deve estar se perguntando: e com o software, como & que €? Diferen da curva teérica de falhas do hardware, a do software leva sos de envelhecimento como o hardware, em conta que ele nao sofre pr hitpsiava.uninove.orisewAVAopicatopico.chp a6 ‘7729122, 158 PM AVA UNINOVE No inicio do ciclo de vida do software, teremos problemas (bugs) que serio ajustados no decorrer do seu desenvolvimento e se estabilizario gerando uma tendéncia de achatamento da curva. Note que esta é apenas uma teoria, Jd que a curva real do indice de falhas de um software considera proceso de manutengao e mudangas. Durante 0 processo de refinamento do produto ou mudangas, aumenta-se consideravelmente 2 probabilidade de insergdo de novos erros, gerando picos na curva de falhas. As sucessivas alteragSes do software tendem a introduzir mais erros antes dda estabilizagdo dos erros de alteragées anteriores, ocasionando a tendéncia crescente do indice de falhas, conforme pode ser visto na figura 2, Indice de Fatnas Curva reat Taeatzada Tempo Se voeé for projetar e construir hardware, vocé poderd utilizar catélogos de componentes digitais. Cada cireuito integrado tem um cédigo de componente, uma fungio definida e validada, uma interface bem delineada ¢ tum conjunto padrao de integracao. Depois que voeé selecionar cada componente, ele poderé ser requisitado do estoque e ai vocé poderd utilizd-lo em diferentes projetos de hardware com alta confibilidade. No mundo do software, isso € algo que esté apenas comegando a ser utilizado numa escala mais ampla, apesar de existirem alguns casos antigos de “reuso’, como as bibliotecas de subrotinas cientificas. Atualmente, a visio de reuso foi ampliada para abranger no apenas algoritmos consagrados, mas também estruturas de dados, interfaces grificas e diferentes classes ¢ componentes orientados a objetos. Aplicagées do software O software pode ser aplicado em qualquer situagdo para que um conjunto previamente especializado de procedimentos (um algoritmo) tenha sido definido. hitpsiava.uninove.orisewAVAopicatopico.chp 46 72972, 158 PM AVA UNINOVE * Software de sistema: colegao de programas para servir outros programas (compiladores, editores, utiltérios para gestdo de arquivos, componentes de sistemas operacionais etc). Esses tipos de programas se caracterizam por ‘manterem uma interagdo intensa com o hardware, * Software de tempo real: monitora, analisa e controla eventos do mundo real & medida em que eles ocorrem. Exemplos: sistema de radar aeroespacial, teclado que gera inputs de teclas pressionadas para um sistema microprocessado, sensor de temperatura que gera um input para ‘um mierocontrolader, sistema de controle de vos, dentre outros. * Software comercial: maior area de aplicaglo de software. Estdo na categoria de software de aplicagio que resolvem necessidades especificas do negécio, como controle de reservas de voos, sistemas de pagamento, de controle de estoque ete. + Software cientifico e de engenharia: caracterizado por algoritmos que ‘processam niimeros’ e realizam operagées mateméticas e céleulos mais complexos.(astronomia, anélise automotiva de tenses, manufatura automatizada, previsio de tempo, simuladores, etc). * Software embutido: produtos “inteligentes”. Sao programas armazenados em ROMS ~ Read Only Memories, como controle de teclado em um forno de ‘microondas, fungées digitais em um automével - controle de combustivel, ‘mostradores do painel, sistemas de frenagem, ete * Software para web: as paginas da web recuperadas por um browser constituem softwares que incorporam instrugdes executiveis na forma de scripts, permitindo a inclusio de elementos dinamicos, animages, acesso a banco de dados e diversas outras caracteristicas. ‘+ Software para computadores pessoais: engloba uma enorme lista de aplicativos para desktops, notebooks, ete, como processadores de texto, planithas, aplicagBes grficas, aplicacBes multimidia, et. ‘+ Software para inteligéncia artifical: faz uso de algoritmos no numéricos para resolver problemas complexos, como sistemas de reconhecimento de padres (de imagem e de voz), redes neurais artficiais sistemas de controle de robés, etc. MATERIAL COMPLEMENTAR (Bttps://Img.Uninove.Br/Static/ (0/0/0/0/0/1/2/8/8/9/9/12889930/ AO1ex02-Pdsoft80-100.Pdf) Referéncias PRESSMAN, RS. Engenharia de software. 7. cd, Sio Paulo: McGraw, 2010. SOMMERVILLE, lan. Engenharia de software. Sao Paulo: Addison-Wesley, 2007. hitpsiava.uninove.orisewAVAopicatopico.chp 72972, 158 PM AVA UNINOVE © Tépico avaliado! wey (httsv/ewg.un va.uninove.orisewlAVAopicattopico.shp 66

You might also like