Você está na página 1de 14
SOFTWARE E CAPITULO ENGENHARIA DE SOFTWARE Para negocios, ciéncia e engenharia; que 0 software fosse permitir a criacdo de novas tecno Logias (por exemplo, engenharia genética), a extensdo de tecnologias existentes (por exemplo, telecomunicagdes), € 0 declinio de antigas tecnologias (por exemplo, a inchistria tipograticay que 0 software se tornaria a forca motriz por tras da revolucdo do computador pessoal; que Produtos de software em pequenas embalagens seriam comprados pelos consumidores em Centros comerciais da vizinhanga; que uma empresa de software fosse se tomar maior e mais influente que a maioria das empresas da era Industrial: que uma vasta rede gulada por sof twares, chamada Internet, evoluitia e modificaria tudo, desde a pesquisa em bibliotecas até @ maneira de os consumidores compratem e, até mesmo, os habitos de marcar encontro dos adultos jovens (e ndo tao jovens) Ninguém poderia ter previsto que o software estaria embutido em sistemas de toda a es. pécie: transporte, médico, telecomunicacées, militar, industrial, entretenimento, maquinas de escritério — a lista € quase sem fim. E, se formos acreditar na lei das conseqéncias nao pre tendidas, existem muitos efeitos que nés ainda nao podemos prever. Finalmente, ninguém poderia ter previsto que milhbes de programas de computador tt vessem de ser corrigidos, adaptados ¢ aperfeicoados & medida que o tempo passasse, e que o nus de realizar essas atividades de “manutencao” absorveria mais pessoas e mais tecursos gue todo o trabalho aplicado na criagao de novos softwares, Concetros- oct jd notou que a invencdo de uma tecnologia pode ter efeitos profunds e inespe var dala. 4 ciais, nas pessoas e até na cullura como um todo? Esse fendmeno é freqientemente et ieelam 6 chamado de “lei das consequéncias nao-pretendidas” a a be t Hoje, o software de computadores é a tecnologia tinica mais importante no palco mundial. ae 4 Etambém um importante exemplo da lei das consequiéncias nao-pretendidas, Ninguém na dé seis 5 cada de 1960 poderia ter previsto que 0 software fosse se tornar uma tecnologia indispensavel : 2 : 0 © que 6? Software de computador 6 6 Quais s0 os pasos? Vood consi software de compu: adores como constéi quolquer produto bemsucedido, onsttoem , depois, maniém eo longo de tempo. Abram {98 progromas que execulam em computodores do qualquer tomanho @ arquiro, contetdo que é apreseniado co Programe a ser execuleda e documentos tanto em forma impressa quonio virtual que combinom todos os formas de migia eleténica Quom fax? Engenicitos de software constoem e mantém, € Proticamente todas as pessoos do mundo indusilizade tusam direle ou indretomente, Por que & importante? Porque afeto praticomente todos on ospactos do nosso vidas e tomouse difendido no nos. $0 comérco, na nossa eulira e nae nossas etvidades do dioodia oplicando um processo Agile adaptével que leva a um resultado de alta qualidade e que satisfaz ds necossidades das pessoas que vdo usar @ produto, Voed aplica uma abor. dagem de engenharia de softwere. Qual 6 © produto de trabalho? Do ponto de viske do engenheiro de software, 0 produte do trabalho sé0 os pro: ‘grames, conteido [dades| e decumentos que compéem um tofivrare de computador. Mas, do ponto de visto do usu Fio, © produto do trabalho é a informagso resulane que, de elgum modo, torna melhor 6 munde de usuario, ‘Como tenho certeza de que fiz corretamente? Leio 0 restonte dese lito, selecione as idéias que sao aplicéveis co sofware que voe8 conshéie apliqueas a0 seu trabolho, 2 evGEMAMA Desorrwane “tis decors tecoliginsso os ores propbra do crescent conden” The WallStreet Journal A medida que a importancia do software cresceu, a comunidade de software tem continua: mente tentado desenvolver tecnologias que tornem mais fécil, mais rapido € menos dispendioso construir e manter programas de computador de alta qualidade. Algumas dessas tecnologias sa0 voltadas para um dominio de aplicacao especifico (por exemplo, projeto e implementacao de sites dda Web); outros enfocam um dominio tecnol6gico (por exemplo, sistemas orientados a objetos ou programacao orientada a aspectos) e outros, ainda, so de base mais ampla (por exemplo, siste- mas operacionais tais como 0 LINUX). No entanto, ainda temos de desenvolver uma tecnologia de software que faga isso tudo, ¢ a probabilidade de surgir uma dessas no futuro é pequena. Mesmo assim, as pessoas apostam seus empregos, sua seguranca e suas proprias vidas em softwares de computador. £ melhor que esteja correto, Este livro apresenta um arcabougo que pode ser usado por aqueles que constroem software de computadores — pessoas que precisam acertar. O arcabougo abrange um processo, um conjunto de métodos e ferramentas, que nds chamamos de engenharia de software. “Na scedade madera, o pope a engenbaric former sees» produ ue melhores spc maw do ia amon, ‘orand sino vida mais el, menesprge, mas aqua ema grr” Richard Fairley ¢ Mary Wilshire ———LL_© Parsi Evowtivo po Sorrwage a3 ohn, CHAVE O sweet 0 froduto quono 0 velculo para entrega. 6 produto, Dé ua deta no possado do indéstria desohvare en won sovreisery, oy Hoje em dia o software assume um duplo papel. Ele € o produto e, ao mesmo tempo, © veiculo para entrega do produto, Como produto ele disponibiliza o potencial de computagao presente no hardware do computador ou, mais amplamente, por uma rede de computadores acessivel pelo hardware local, Quer resida em um telefone celular, quer opere em um computador de grande porte, © software ¢ um transformador de informagbes — produzindo, gerindo, adquirindo, modificando, ex! bindo ou transmitindo informagdes que podem ser tZo simples como um nico bit ou tao complexas quanto uma apresentacéo multimidia. Como veiculo usado para entrega do produto, o software age como base para o controle do computador (sistemas operacionais), para a comunicacao da informagao (edes) e para a criagéo € 0 controle de outros programas (ferramentas e ambientes de software) © software entrega o mais importante produto da nossa época —a informacao. Ele transforma dados pessoais (por exemplo, as transagées financeiras de uma pessoa) de modo que os dados pos- ‘sam ser mais titeis em um determinado contexto; organiza informacées comerciais para melhorar a competitividade; fornece um portal para as redes de informagao de ambito mundial (por exemplo, a Internet) e proporciona os meios para obter informacao em todas as suas formas Aimportancia do software de computadores tem pasado por mudancas significativas em poco ‘mais de 50 anos, Melhora surpreendente no desempenho do hardware, profundas modificacdes na arquitetura de computadores, aumento significativo na meméria e na capacidade de armazenamen- to, € uma varicdade de opcdes incomuns de entrada e saida levaram a sistemas baseados em com- Putador mais sofisticados e complexos. Sofisticagao € complexidade podem produzir resultados magnificos quando um sistema é bem-sucedido, mas também podem causar enormes problemas para quem precisa consteuir sistemas complexos. Livros populares publicados nas décadas de 1970 ¢ 1980 fornecem uma visao historica util da percepcao de mudancas dos computadores ¢ do software, ¢ do seu impacto em nossa cultura, Osborne [0SB79} caracterizou como uma “nova revolucdo industrial”. Tofller [TOF80) chamou 0 advento da microeletrénica de “terceira onda de mudanga" da historia humana e Naisbitt [NAIE2} previu a transformacao de uma sociedade industrial para uma "sociedade da informacéo". Fel- genbaum © McCorduck [FEI83] sugeriram que a informacéo e o conhecimento (controlados por computadores) scriam o centro do poder no século XXt, e Stoll [STO89] ponderou que a “comuni: CavisoH Seve ier tempo, um ofc em mau ais dss Foss. Poste te qu ses especiitas oro (ude preva ents terobgis Ames. Si ume rendu de ts pode relent saber 0 ‘iodo sitemas 68 consis. Par bier ‘ments sobre sana ala gaa de ‘ies loconas 0 sofware vise vn yourdn com. CCAFETHLO 1 SOFTWARE ERNGMUIANADE SOFTWARE 3 dade eletrénica’, criada por redes e software, era a chave para a troca de conhecimento em todo 0 mundo. Todos eles estavam certos, No inicio dos anos 90, Toffler [TOF90] descreveu uma “mudanca de poder” na qual antigas es- truturas de poder (governamental, educacional, industrial, econémica e militar) se desintegravam, visto que computadores ¢ software levam a uma “democratizacao do conhecimento". Yourdon [¥OU92} temeu que as empresas norte-ameticanas pudessem perder sua vantagem competitiva hos negdcios relacionados a software ¢ previu "o declinio e a queda do programador norte-ameri- ano”. Hammer e Champy [HAM93) previram que as tecnologias da informacao desempenhariam ‘um papel fundamental na “reengenharia das empresas". Em meados dos anos 90, a difusao dos computadores e do software provocou uma onda de livros “anti-computadores” (por exemplo, Resisting the Virtual Life, editado por James Brook ¢ tain Boal, ¢ The Future Does Not Compute pot Stephen Talbot). Esses autores demonificaram o computador, enfatizando preocupagdes legitimas, >mas ignorando os profundos beneficios que deles ja haviam sido obtidos {LEV95} “Oscamputadors tom mais fc fer una sti deco, mas ori pre ds cae: que eles fiom nn prota sr fa” ‘Andy Rooney Na segunda metade da década de 1990, Yourdon [YOU96) reavaliou as perspectivas para o pro: fissional de software e sugeriu “a ascensao ea ressurrelcao” do programador norte-americano, A medida que a Internet cresceu em importancla, a mudanca de tendéncia de Yourdon mostrou ser correta. Ao final do século XX, o foco deslocou-se mais uma vez, agora sob o impacto da “bom- ba-relégio do ano 2000 (por exemplo, [¥OU9Ba], [KAR99)), Apesar de as previsdes de catastrofe do ano 2000 terem sido exageradas, sua popularizacao concorreu para a invasao do software em nnossas vidas, Conforme segundo milénio progredia, johnson JOHOI] discutiu o poder do “surgimento” — fendmeno que explica 0 que acontece quando as interconexoes entre entidades relativamente simples resulta em um sistema que “se auto-organiza para formar comportamento mais inteligente € mais adaptativo". Yourdon [YOU02] revisitou os tragicos eventos de 11 de setembro para discutit © impacto continuo do terrorismo global na comunidade de TI. Wolfram [WOLO2] apresentou um lratado sobre “uma nova espécie de ciéncia”, que postula uma teoria unificadota baseada princi- palmente em simulacdes de software sofisticadas. Daconta ¢ seus colegas [DACO3} discutiram a evolucdio da “Web semAntica” ¢ os modos pelos quals ela vai mudar a maneita pela qual as pessoas interagem com as redes globais. “Cuore mere oft, lng gio ohana pole ana, te vse do mundo seers rar” fea « mara gue Tennyson Hoje em dia uma enorme industria de software tornou-se fator dominante nas economias do mundo industrializado. © programador solitario de antigamente foi substitufdo por uma equipe de especialistas em software, cada um se concentrando numa parte da tecnologia necessérla para roduzir uma aplicacdo complexa, No entanto, as questées que eram feitas ao programador solité lo sa0 as mesmas questdes que sao feitas quando modernas sistemas baseados em computador sao construidos:' * Por que leva tanto tempo para concluir 0 software? ‘* Por que os custos de desenvolvimento sao tao altos? * Por que nao podemos achar todos os erros antes de entregar o software aos clientes? * Por que gastamos tanto tempo e esforco mantendo programas existentes? £Em um excelent tivo de ensaios sobre os negdclos de software, Tom DeMarco [DEM95] argumenta o contri. ‘Alirma cle: “Em vex de perguntar porque o software custa tanto, precisamos comecat a pergutat 0 que izemos Para tornar possivel que o software de hoje custe to pouco? A resposta a essa questo nos sjidard-acontinuar ‘extraordinario nive! de congulstas que sempre dstingui a industria de software’ 4 sxcamama ne corms © Por que continuamos a ter dificuldade em avaliar o progress enguanto o software & desenvolvido e mantido? Essas ¢ muitas outtas questdcs demonstram a preacupacao da indiistria com o software © a ‘maneira pela qual ele € desenvolvida — preocupagao que tem levado a adocao da pratica de en: genharia de software. Leta ee ee ee 2 om © deveranes defn sofware? a Pay, CHAVE Soto 6 eboraio io montane a oh, CHAVE Saftwore no se degos, ms se deter Em 1970, menos de 1% do publico poderia ter definido o que "sohware de computadores" significava. Hoje, a maloria dos profissionats € muitos membros do publico em geral pensam que entendem de software, Mas seré verdade? A definigao de software em um livro-texto poderia ter a seguinte forma: Software sdo (1) instrugdes (programas de computadores) que quando execuladas fornecem as caracteristicas, Jungdo ¢ desempenko descjados; (2) estruturas de dados que permitem dos programas manipular adequadamente a informagdo; ¢ (3) documentos que descrevem a operacao € 0 uso dos programas, Nao ha divida de que definigdes mais completas poderiam ser oferecidas, mas nds precisamos mais do que uma definicao formal Para entendermos de software (e, em wiltima andllise, de engenharia de software), é importante examinar as caracteristicas do software que o tornam diferente de outras coisas que 0s seres huma nos produzem. O software é um elemento de um sistema logico € nao de um sistema fisico. Assim, ele possui caracteristicas que sao consideravelmente diferentes daquelas do hardware: 1. 0 software é desenvolvido ou passa por um processo de engenharia; ndo é fabricado no sentido etassico Apesar de existirem algumas semelhancas entre o desenvolvimento de softwares ¢ & fabricacao de hardware, as duas atividades sao fundamentalmente diferentes. Em ambas, a alta qualidade é conseguida por um bom projeto, mas a fase de fabricacao do hardware pode gerar problemas de qualidade, que so inexistentes (ou facilmente corrigidos) para o software. Ambas as atividades sao dependentes de pessoas, mas a relacao entre as pessoas cenvolvidas ¢ o trabalho realizado € inteiramente diferente (veja 0 Capitulo 24). As duas atividades requerem a construgao de um “produto”, porém as abordagens sao diferentes. Os custos do software sd concentrados na engenharia Isso significa que os projetos de software nao podem ser geridos como se fossem projetos de fabricacao. 2. Software ndo “se desgasta’. 4 Figura 1.1 mostra a taxa de falhas como uma funcao do tempo para 0 hardware, O relacionamento, frequentemente chamado de “curva da banheira”, indica que o hardware eZ Zz-,-—UCUC~ _gramas — podemos fornecer os detathes posteriormente. Realidade: _Embora uma declaracio abrangente ¢ estavel dos requisitos nem sempre seja “Tada ste pw possivel, uma definicdo inicial malfeita € a principal causa de esforgos malst- entre o gue dev set cedidos de software. Uma descrigo formal e detalhada do dominio da infor- fe anes dcomesa, macdo, da funcéo, do comportamento, do desempenho, das interfaces, das Vopr a sar restrigbes de projeto e dos crtérios de validacao ¢ essencial, Essas caracteris- apa de elaboas tds ticas podem ser determinadas somente depois de intensa comunicacao entre os dels, mas uno o cliente e 0 desenvolvedor. sas cd sob, Mito: Os requisites de projeto mudam contivamente, mas as mudangas podem ser eons ca coe. {Jacilmente acomadadas porque 0 software ¢ flexivel. Realidade: £ verdade que os requisitos de software mudam, mas o impacto da mudanca varia com a época em que é introduzida. Quando mudancas sao solicitadas, antecipadamente (antes que 0 projeto ¢ a codificagao tenham comecada), 0 impacto no custo ¢ relativamente baixo* No entanto, & medida que o tempo passa, o impacto de custo cresce rapidamente — recursos foram comprome- tidos, a estrutura do projeto foi estabelecida e a mudanca pode causar conse- qléncias que exijam recursos adicionais e grandes modificag6es no projet. Mitos do profissional. Os mitos que ainda tém crédito entre os profissionais de software sobreviveram a mais de 50 anos de cultura de programagao. Durante os primeiras dias do sofware, 4 programacio era vista como uma forma de arte. Maneiras e aitudes antigas custam a morrer. @. Mito: Quando escrevemos um programa e ojazemas funciona nosso abano est ‘Aviso completa Senpesuvenar —-Realidade: _Alguém disse um dia que “quanto mais cedo voeé comegar a escrever cSigo onion bape tals val demorar para acabar”. Dados da indistriaindicam que entre 60% ¢ ‘pra ote de 80% de todo 0 esforco despendido em software vai ser despendido depois de “angenhania de software, ele ser entregue ao cliente pela primeira vez. promi csinee.” = Mito: Até que eu esteja com o programa “radando" néo tenho como evar a su “Vorms fer tempo ovo qualidade. fazer ade novo?” Realidade: Um dos mecanismos mais eficazes de garantia de qualidade de software pode ser aplicado a partir do inicio de um projeto — a revisao técnica formal. Revi sdes de software (descritas no Capitulo 26) sao um “filtro de qualidade” que descobriu-se ser mais eficaz do que testes para encontrar alguns tipos de ertos de software. Mito: O tinico produto de trabalho que pode ser entregue para um projeto de software bem-sucedido & 0 programa executdvel Realidade: __ Um programa executavel é apenas uma parte de uma configuracdo de software que inclui varios elementos. A documentacao fornece a base para uma enge- nharia bem-sucedida e, mais importante, orienta para o suporte ao software ‘Muitos engenheicos de software tém adotado uma abordagem “égll” que acomoda incrementalmente as rmodificagoes,controlando assim impacto e custo. Métodos ges s30 discuidos no Capitulo 4 12m Mito: A engenharia de software vai nos fazer criar documentagde volumosa e desne cessdiria que certamente nos atrasard. Realidade: A engenaria de software nao se relaciona a criagao de dacumentos. Refe se & criacéo de qualidade. Melhor qualidade leva a reducao de retrabalho. E menor retrabalho resulta em tempos de entrega mais rapidos. Muitos dos ptofissionais de software reconhecem a alicia dos mitos descritos. Lamentavel mente, aces e métodos habituais levam a praticas de gesto e técnicas de baixa qualidade, mesmo quando a realidade exige melhor abordagem. © reconhecimento das realidades do software € 0 primeiro passo em direcdo a formulacao de solugdes praticas para a engenharia de software, == “at uso residencial @ comercial Os personagens: Mal Golden, gerente sénior, desenvolvimento de produtos Lisa Perez, gerente de ‘marketing; Loe Warren, gerente de engenharia; Joe Comolli, vice-presidents executive, desenvolvimento de negécios, A conversa: ‘Todo projeto de software ¢ iniciado por alguma necessidade do negécio — a necessidade de corrigir um defeito em uma aplicagao existente; a necessidade de adaptar um sistema legado para mudar 0 ambiente do negocio; a necessidade de estender as fungoes e caracteristicas de uma apli cacao existente; ou a necessidade de criar win novo produto, servico ou sistema, No inicio de um projeto de engenharia de software, a necessidade do negscio é muitas vezes ex- pressa informalmente, como parte de uma simples conversa. A conversa apresentada em CasaSegurit étipica, Com excecao de uma referéncia passageira, o software praticamente ndo €mencionado como parte dda conversa, No entanto, 0 sofware seré tudo ou nada paraa linha de produtos CasaSegura, O esforgo de engenharia tera sucesso somente se 0 software CasaSegura tiver sucesso. mercado aceitara 0 produto somente se o software embutido dentro dele atender as necessidades dos clientes (ainda que ndo fixadas). Prosseguiremos com a engenhatia de software do CasaSegura nos capltulos seguintes, eu estivemos fazendo um pouco de pequise de mercado ¢ aachamos que femos uma linha de produlos que pode ser cronde, Joo: De que tamanho... Acime do ni ‘Mal (evitande um comprometimento direto): Conte a ele « nossa idéia, isa Como 0 Projeto Comeca A cenat Sola de reunio na empresa CPi, uma empress [fei que fabriea produto de consumo para | sinimo® Lisa: E odo uma nova gerasio do que chamamos de “produlos de gesto demésica”. Nés o chomamos de CaraSequ, Elet sam @ nova iniefoce sero, fnecem a usuérios domésicas cu de pequencs negécos um sistema que &cortlodo pelo sev PC~ seguronca resdencia, vigiénco resdencial, controle de elodoméstices edspostvs. Voc sabe, detiga’ 0 or Joe: Tudo bom, lee, o que é ito que eu uv sobre vocts dletervoierem 0 qué® Lime caina sero universal gonérica? Lee: E muito inoressante, quase do tomanho de uma coxa de fsloro paquena,Padeselighia a sensores de fodas as, nolurez0s, 0 ume eBrera digi, proicamente qualquer Coita. Usa o protocol som fo 802.1 1b. Permie csior seide de um dispositive sem fo, Estos pensando que elo vai lever o od mo nove gerasio de predtos Joe: Vos concorda, Molt ‘Mal: Sin. De foto, com os vedas tbo achotads como «las tam eslado ese no, precisamos de algo novo. Lisa &

Você também pode gostar