Anda di halaman 1dari 5

Modelos de Processos de Engenharia de Software

LEONARDO GUZI RICARDO KOHLER SONIA MARIA HENTZ IFC Instituto Federal Catarinense de Educao, Cincia e Tecnologia leoguzi@hotmail.com, andromeda.ricardo@hotmail.com, btisonia@gmail.com Abstract: This article contains a brief description of main models of software development processes. He aims to make easier the understanding of basic concepts brought by them. There are several models that can be followed in the process of developing a system, that feature are: Cascade, prototyping and spiral, are often used concepts from more than one model in a single project. Key Words: Software Process, Cascade Model, Spiral Model, Prototyping. Resumo: Este artigo contm uma breve descrio dos principais modelos de processos de desenvolvimento de software. Ele tem por objetivo tornar fcil a compreenso dos conceitos bsicos trazidos pelos mesmos. Existem diversos modelos que podem ser seguidos no processo de desenvolvimento de um sistema, os que se destacam so: Cascata, prototipao e espiral, muitas vezes so utilizados conceitos de mais de um modelo em um nico projeto. Palavras Chaves: Processo de Software, Modelo Cascata, Modelo Espiral, Prototipagem. cascata, espiral e prototipagem; que sero descritos e analisados de forma comparativa: 1.1 Modelo Cascata Proposto por Royce (1970) conhecido por outros nomes: modelo seqencial linear, abordagem topdown ou ciclo de vida clssico. Considerado um dos primeiros e mais importantes referencia para muitos dos modelos modernos e ainda continua sendo amplamente usado (Sommerville, 2003; Pressman, 2006). Este modelo organiza as atividades do processo de desenvolvimento de forma sequencial, como apresentado na figura 1.

1 INTRODUO A intensa utilizao de computadores nas diversas reas do conhecimento humano tornou a atividade de desenvolvimento de software de suma importncia e crescente demanda. Para melhorar a qualidade dos produtos de software e visando aumentar a produtividade no processo de desenvolvimento, surgiu a Engenharia de Software, que trata de aspectos relacionados ao estabelecimento de processos, mtodos, tcnicas, ferramentas e ambientes de suporte ao trabalho. Para construir um sistema, seja qual for, necessrio seguir um guia, que ajudar a atingir um resultado dentro de um tempo determinado. No caso de desenvolvimento de softwares, este guia conhecido por Processo de Software. Os processos de software favorecem a produo de sistemas de alta qualidade, so capazes de atingir as necessidades dos usurios finais, dentro de um cronograma e um oramento previsveis; porm no podem ser definidos de forma universal. Neste trabalho sero apresentados, considerando-se as caractersticas da aplicao, tipo do software, paradigma de desenvolvimento, tamanho e complexidade do sistema, trs modelos de processo:

Figura 1 - Modelo Cascata Fonte: Pressman (2006)

1.1.1

Descrio dos passos do modelo cascata

Neste modelo so estabelecidos requisitos, que depois so analisados, projetados, arquitetados, implementados, testados e mantidos. Depois que cada passo terminado, o processo segue para o prximo passo (Pressman, 2002, p.26). a) Requisitos: estabelece-se funcionalidades, restries e objetivos junto com o cliente e os usurios do sistema de software; b) Anlise: os requisitos propostos na fase anterior so detalhados em termos de funcionalidades, comportamento, desempenho, e interface-com-usurio para servir como especificao do software; c) Projeto: um esboo realizado. A arquitetura geral estabelecida, sendo descritas as abstraes fundamentais e as relaes entre elas; d) Codificao: o projeto traduzido para uma linguagem de programao; e) Teste: so realizados os testes para descobrir erros e verificar se os requisitos foram atendidos. f) Operao e Manuteno: entregue para o cliente, sendo instalado e colocado em operao. A manuteno tambm envolve correo de erros no vistos nos outros estgios ou modificar o sistema, de acordo com o que o cliente deseja. O modelo em cascata s vai para a fase seguinte quando a fase anterior est completa. O desenvolvimento de fases neste modelo so discretas, e no h pulo para frente, para trs ou sobreposio entre elas (Marcoratti, 20?? Apud Pressman, 2006). 1.1.2 Vantagens e Desvantagens

Os autores esto em consenso de que este modelo cascata apropriado quanto se tem um entendimento claro dos requisitos. 1.2 Prototipao De acordo com Pfleeger (2004), a prototipao uma tcnica que ajuda engenheiros de software e clientes a entenderem o que est sendo construdo quando os requisitos no esto claramente definidos e; essa a grande vantagem desta tcnica, pois os requisitos de sistema no tem que ser completamente determinados antecipadamente e podem ser trocados durante o curso do projeto. Um prottipo a primeira verso desenvolvida do software, a qual tem a finalidade de abordar a questo de interface com o usurio e apresentar a viabilidade do sistema. Neste processo de software, clientes e desenvolvedores ficam em constante interao, facilitando assim o levantamento de requisitos e funcionalidades do sistema. A prototipao possibilita a criao de um prottipo (modelo) do software que deve ser construdo. Geralmente esse modelo assume uma das trs formas: 1 - Um prottipo em papel ou modelo baseado em PC que retrata a interao homem-mquina de uma forma que capacita o usurio a entender quanto a interao ocorrer. 2 - Um prottipo de trabalho que implemente algum subconjunto da funo exigida do software desejado. 3 - Um programa existente que executa toda a funo desejada, mas que tem outras caractersticas que sero melhoradas em um novo esforo de desenvolvimento. (Pressman, 2002). Depois de o prottipo ficar pronto, o cliente o utiliza e faz uma avaliao. Baseado nessa avaliao so fornecidas impresses do que precisa ser alterado, o que est faltando e o que no preciso; para que a partir da o prottipo seja modificado incorporando as sugestes. O cliente utiliza o prottipo novamente e mais uma vez so feitas as alteraes. Repete-se o processo at que o mesmo seja vlido em termos de custo e tempo. 1.2.1 Etapas da Prototipao De acordo com Pressman (2002), as etapas so: Especificao dos Requisitos: definem-se os objetivos gerais do software, identificando quais os requisitos so conhecidos inicialmente. Projeto Rpido: entregue ao cliente uma verso compacta do projeto, onde j se tem uma ideia de como o software funcionar quando pronto. Construo do Prottipo: so feitas as modificaes necessrias do projeto rpido e passa-se para a construo rpida do prottipo.

Considerado como termo ambguo, para alguns vantagem e para outros desvantagem; o avano para a tarefa seguinte s se d quando o cliente valida e aceita os produtos finais da tarefa atual. Para Pressman (2006), o desenvolvimento em cascata no permite muita flexibilidade ou reviso, porm o projeto considerado uma tarefa claramente delineada para a qual os resultados desejados podem ser determinados completamente e sem ambiguidade. Hanna (1995), afirma que difcil estabelecer adequadamente todos os requisitos logo no comeo do projeto e se ocorrer um atraso todo o processo afetado. Sommerville (2003) relata que este modelo torna o processo de desenvolvimento estruturado e que permite a gerencia do baseline, oferecendo tambm maior previsibilidade de prazos e custo. Para Pressman (2002), apesar de ter pontos fracos, o Modelo Cascata significativamente melhor que uma abordagem aleatria para o desenvolvimento de produtos de software.

Avaliao do Prottipo pelo usurio: entrega-se o produto ao cliente que determina se realmente era isso que precisava. Refinamento do prottipo: aplicao das melhorias necessrias e modificaes solicitadas. Engenharia do Produto: identificados os requisitos o prottipo pode ser descartado e a verso de produo deve ser construda (podendo ser baseada no prottipo) considerando os critrios de qualidade. 1.2.2 Tipos de Prototipao Pressman (2006) relata que a prototipao pode ser dividida em trs vertentes principais: 1. Prototipao evolucionria: produz-se um prottipo inicial, que refinado atravs de inmeras etapas de avaliao e re-design at tornar-se um produto final. A falta de documentao pode levar a problemas de gerenciamento, manuteno e contrato.
Concepo do Software Projeto e Implementa -o do Prottipo inicial Refinamento do Prottipo at sua aceitao Concluso e Entrega do Prottipo

derao as variveis de ambiente, como o sistema operacional onde o software funcionar ou se a linguagem de programao adequada. A alternativa final comear de novo, desde o principio e construir uma nova verso, re-projetada na qual, problemas como lentido, tamanho exagerado e dificuldades na utilizao do programa sero resolvidos. Uma desvantagem que o desenvolvedor, casualmente, se acostuma com o prottipo que foi gerado, e acaba usando-o como parte integral do sistema, deixando brechas e possveis erros (Pressman, 2002). Alm das brechas deixadas, alguns requisitos no aparecem na especificao; requisitos no funcionais no so testados de forma adequada e o documento de requisitos inexistente ou no detalhado. O cliente ignora que o prottipo apenas consegue funcionar precariamente, pois ao faz-lo rodar com rapidez, no se considerou a qualidade global e manutenibilidade no longo prazo. 1.3 Modelo Espiral Segundo Pressman (2006), o modelo espiral foi desenvolvido de modo a combinar as melhores caractersticas dos modelos Linear e Prototipao. O mesmo ainda acrescenta um novo recurso, a anlise de riscos, inexistentes nesses outros paradigmas. As quatro a serem seguidas, so dispostas da seguinte maneira: 1. Planejamento: onde se determinam os objetivos, alternativas e restries ao software. 2. Anlise de riscos: onde as alternativas so analisadas e os riscos so identificados / resolvidos. 3. Engenharia: O desenvolvimento do produto ao nvel seguinte. 4. Atualizao: feita pelo cliente, onde os resultados obtidos pela engenharia so avaliados. Proposto por Barry Bohem em 1988, o modelo em espiral combina as iteraes do modelo de prototipagem com o controle e sistematizao do modelo em cascata. Assim sendo, cada ciclo do modelo em espiral possui quatro atividades principais, onde se elaboram os objetivos (Planejamento), avaliam-se as alternativas (Anlise de risco), definem-se as entidades de software em um projeto (Engenharia) e planeja-se o prximo ciclo (Atualizao). O processo pode ser abortado se apresentar um ou mais fatores de alto risco. Por risco define-se tudo o que possivelmente possa dar errado; desde a utilizao de uma nova linguagem de programao onde os compiladores existentes no gerem um cdigo objeto suficientemente eficiente, at problemas praticamente insolveis a serem resolvidos por conta do pedido do cliente. A cada ciclo, o modelo espiral gera um prottipo ligeiramente diferente do anterior sendo uma verso mais sofisticada do software (Somerville, 2003), sendo que no h etapas fixas no modelo espiral, com cada

Figura 2 Prototipao Evolutiva Fonte: Adaptado de Pressman (2006)

2. Prototipao descartvel: Utilizada na descoberta e validao dos requisitos; o prottipo descartado depois. O resultado a especificao de requisitos. Difere dos outros tipos por descartar o prottipo e assemelha-se na estratgia, onde a especificao de requisitos subsidiam a construo de um prottipo, que avaliado pelo cliente e novas iteraes ocorrem at sua aceitao. 3. Prototipao Incremental: a conhecida Entrega por Estgio, adota a implementao dos requisitos mais importantes por primeiro, o restante acrescentado nas novas verses do prottipo. O desenvolvimento ocorre de forma gradual e, ao final de cada estgio, uma verso opervel produzida e incrementada nos demais estgios, at a sua concluso final. 1.2.3 Vantagens e Desvantagens

Para Pressmann (2002), o modelo de prototipagem tem a grande vantagem de gerar resultados visveis para o cliente de forma rpida. A cada ciclo de uso e avaliao, novas funcionalidades so adicionadas. Por serem de prottipos, nem sempre a soluo escolhida para resolver tal problema a ideal, pois no leva em consi-

fase ocorrendo mais de uma vez. O raio da espiral representa o custo do processo e o ngulo da espiral representaria o progresso realizado na construo de software (Pressman, 2006).

2 CONSIDERAES FINAIS De encontro s ideias de Marcoratti (20??) e ao avaliar os processos de software, fcil concluir que no existe um processo correto ou incorreto, como tambm no existe um nico modelo que resolva os problemas universais do desenvolvimento de software. possvel notar que em situaes que no se deseja a rpida construo de um sistema e precisa-se de um custo menor, a prototipao a mais indicada, pois capaz de gerar resultados visveis de forma muito rpida. O modelo cascata aplica-se bem em situaes em que o software a ser desenvolvido simples; os requisitos so bem conhecidos, a tecnologia usada bem acessvel e os recursos para o desenvolvimento esto disponveis. Apesar de diversas limitaes, ainda melhor us-lo de que criar um software atravs de uma abordagem aleatria qualquer. O modelo em espiral bastante til para o desenvolvimento de grandes projetos, pois combina as principais vantagens dos modelos Cascata e Prototipao. Comparado com os outros modelos, um modelo relativamente novo, com cerca de 20 anos de existncia, mas detentor de um grande resultado para o cliente final, uma vez que o software vai sendo alterado conforme as avaliaes do cliente. No se deve dizer que este modelo melhor que os outros, pois cada tipo de sistema tem uma finalidade ou aplicao especfica e depende de vrios fatores para determinar qual o melhor modelo de desenvolvimento a ser utilizado. Determinar as melhores opes depende da aplicao, objetivo e ambiente. A utilizao de um processo pode ser vantajoso ou no e cabe aos desenvolvedores avaliar o problema com cuidado e usar os modelos apresentados como um guia para o desenvolvimento do seu prprio processo. 3 REFERNCIAS MARCORATTI, Jos Carlos. O processo de software. Artigo. 20??. Disponvel em: <http://www.macoratti.net/proc_sw1.htm>. Acesso em 24 de junho de 2011. HANNA, M. Farewell to Waterfalls, Magazine, May 1995, pp. 38-46. Software

Figura 3 Modelo Espiral Fonte: Adaptado de Pressman (2006)

Pressman (2006) tambm nos diz que o processo em espiral no termina aps a entrega do software, como nos outros modelos, podendo ser adaptado para uma aplicao posterior como um projeto de aperfeioamento do produto entregue. 1.3.1 Vantagens e Desvantagens

Como qualquer tipo de modelo de desenvolvimento, possui vantagens e desvantagens que podem ser acompanhadas no quadro 1. Vantagens Estimativas tornam- se mais realsticas Mais verstil para lidar com mudanas Melhora o tempo de implementao do sistema Fcil de decidir o quanto testar No faz distino entre desenvolvimento e manuteno Desvantagens Muita nfase a parte funcional A avaliao dos riscos exige experincia bem aplicado somente a sistemas de larga escala O modelo relativamente novo e no tem sido muito utilizado

Quadro 1: Vantagens e Desvantagens do Modelo Espiral Fonte: Adaptado de Sommerville (2003).

De acordo com Sommerville (2003), este modelo o considerado mais realstico possvel, pois assume que usurios, analistas e desenvolvedores adquirem maior conhecimento sobre o projeto como decorrer do tempo.

PRESSMAN, ROGER S., Engenharia de Software- (6 edio), So Paulo, Ed.McGrawHill, 2006. ROYCE, W. W. Managing The Development of Large Software Systems: Concepts and Techniques, Proc. WESCON, August 1970. SOMMERVILLE, Ian. Engenharia de software/ Ian Sommerville; traduo Andr Maurcio de Andrade

Ribeiro; reviso tcnica Kechi Hirama. -- So Paulo: Addison Wesley, 2003.

Anda mungkin juga menyukai