Sie sind auf Seite 1von 26

UNIDADE 1

Ciclos de vida de um processo de desenvolvimento de software


Objetivos de aprendizagem

Compreender as caractersticas do produto de software. Perceber as diversas etapas do processo de desenvolvimento de um software. Definir essas etapas dentro de um modelo de desenvolvimento de projeto.

Sees de estudo
Seo 1 Seo 2 Seo 3 Quais so as caractersticas do software? Quais so as etapas do processo de desenvolvimento de software? Modelo de desenvolvimento de software

Universidade do Sul de Santa Catarina

Para incio de estudo


Desenvolver softwares uma tarefa rdua e complexa. Lidar com essa complexidade significa compreender claramente os processos relacionados ao desenvolvimento do software. preciso entender claramente o que cobrar e como deve ser cobrado em cada processo, o que pode ser executado em paralelo ou de forma sequencial. Esse conjunto de atribuies constitui as atividades de gerncia. Conduzir o processo de desenvolvimento de software um grande processo de gerncia e, para gui-lo da melhor forma possvel, preciso saber o que se espera de cada etapa. Nesta unidade, voc vai perceber que todo o processo de desenvolvimento, por mais complexo que parea, passa por etapas pr-definidas e universais. Essas etapas so conduzidas de forma diferente, dependendo da natureza do projeto ou mesmo da cultura de cada empresa. Definir a forma como esses processos sero executados fundamental para o bom andamento de todo o processo e at mesmo para a escolha de metodologias futuras. Vamos iniciar esta jornada metodolgica? Bom estudo!

Seo 1 Quais so as caractersticas do software?


Termos como internet, web e software so modernos e esto na mdia diariamente. So termos que, antigamente, eram exclusivos de reas extremamente tcnicas e agora se tornaram de domnio pblico. Ainda que informalmente se tenha uma ideia bsica do significado de internet ou de software, importante que se conhea o seu verdadeiro significado. Sendo assim, voc sabe o que significa software?
Ser que voc sabe realmente o que significa software?

18

Metodologias e Projetos de Software

Explicar esse conceito no simples, depende da tica pela qual se tenta entender. Voc poderia dizer que software o conjunto de instrues que, ao serem executadas, produzem a funo e o desempenho desejados. Poderia conceituar software como estruturas de dados que possibilitam que os programas manipulem adequadamente a informao. possvel dizer, ainda, que softwares so os documentos que descrevem a operao e o uso dos programas desenvolvidos ou projetados por engenharia, no manufaturados no sentido clssico. Todavia, possvel ser redundante e dizer que softwares so ferramentas pelas quais se explora os recursos do hardware, executa-se determinadas tarefas, resolve-se problemas ao interagir com a mquina e tornam o computador operacional. Conceituar software passa por conhecer suas caractersticas. Vejamos:
O software apresenta caractersticas nicas. Ele no se desgasta, mas se deteriora.

Mas o que isso? Imagine que voc compre uma Ferrari novinha!!! Agora, imagine voc circulando com a Ferrari todos os dias a 200 km/h por uma estrada cheia de buracos. Como estar sua Ferrari daqui a um ano? Com certeza vai estar cheia de rudos e talvez apresente problemas em alguns componentes. Isso acontece devido ao

Unidade 1

19

Universidade do Sul de Santa Catarina

desgaste do carro. Ao final de dez anos dirigindo o carro por essa mesma estrada, bem provvel que voc tenha um carro cheio de problemas! Agora, imagine que voc tenha uma videolocadora e resolva comprar um software para informatizar todo o processo de atendimento. Abstraindo questes relacionadas ao hardware, esse software daqui a 100 anos ir funcionar da mesma maneira que hoje, ou seja, se tiver algum problema de programao, repetir o mesmo problema em todas as vezes que for executado. Mas se o software no tiver problemas, rodar perfeitamente todas as vezes que voc solicitar sua execuo. Ao final de trs anos, no entanto, mesmo funcionando perfeitamente, talvez esse software no supra mais suas necessidades. Imagine que nesse sistema voc digite o cdigo do DVD para realizar a movimentao, mas agora gostaria que ele lesse o cdigo de barras do DVD. E agora? por isso que dizemos que o software no se desgasta, mas se deteriora em funo de inovaes tecnolgicas e de novas necessidades do cliente. Ele acaba no atendendo mais s suas necessidades, apesar de funcionar, muitas vezes, sem apresentar.
O software desenvolvido ou projetado por engenharia, no manufaturado no sentido clssico.

Quando voc comprou sua geladeira, em algum momento pensou que ela foi fabricada como uma pea nica? Claro que no! Ela foi produzida em uma linha de produo. Agora pense em uma linha de produo de caminhes. Os componentes so incorporados ao projeto para dezenas de unidades. Mas quando se pensa em software, sabe-se que cada produto projetado e pensado como uma pea nica. impossvel visualiz-lo em uma esteira de produo!

20

Metodologias e Projetos de Software

Imagine as seguintes situaes:

Na linha de produo de caminhes, saem da fbrica 30 unidades dirias, 600 por ms. Dessas 600 unidades, a indstria possui uma estatstica de problemas apresentados em 0,2% da produo durante sua utilizao pelo cliente nos primeiros seis meses. Isso significa uma margem de problemas em um caminho sado da linha de produo mensal. Essa informao pode acabar com o nome da empresa? Qual sua opinio? Agora imagine uma empresa de software. Ela desenvolve o famoso sistema de videolocadora e vende esse produto para 600 clientes. Mas no final do sexto ms, acontece um erro no sistema (por exemplo, o programa no est armazenando corretamente a data de entrega do DVD). Essa mesma verso foi entregue para os 600 clientes e teremos ento 600 clientes com o mesmo problema. E agora? Essa informao pode acabar com o nome da empresa? Qual sua opinio? Sintetizando o problema: Em uma fbrica de software, o sucesso medido pela qualidade de uma nica entidade e no pela qualidade de muitas entidades manufaturadas.
IEEE - Instituto de Engenharia Eltrica e Eletrnica (IEEE) formado pela fuso do Instituto de Engenheiros de Rdio (IRA) com o Instituto Americano de Engenheiros Eltricos (AIEE). A meta do IEEE promover conhecimento no campo da engenharia eltrica e eletrnica estabelecendo padres para formatos de computadores e dispositivos.

Seo 2 Quais so as etapas do processo de desenvolvimento de software?


Existem alguns conceitos que so fundamentais quando falamos de desenvolvimento, e o primeiro deles Engenharia de Software (EGS). Assim como a palavra software, Engenharia de Software tambm um termo que gera discusses sobre a melhor maneira de expor todas as suas nuances. A IEEE definiu Engenharia de Software como a aplicao de uma abordagem sistemtica, disciplinada e quantificvel para o desenvolvimento, a operao e a manuteno do software; o estudo de abordagens e princpios, a fim de se obterem economicamente softwares confiveis e que sejam executados de forma eficiente em mquinas reais.

Unidade 1

21

Universidade do Sul de Santa Catarina

A primeira definio do termo foi dada por Fritz Bauer em 1969:


Engenharia de software a criao e a utilizao de slidos princpios de engenharia a fim de obter software de maneira econmica, que seja confivel e que trabalhe eficientemente em mquinas reais.

A partir desse conceito, importante que voc entenda o significado de mtodo, procedimento e ferramenta, que so fonte de muita confuso, segundo Pressman (2002):

Mtodos - proporcionam os detalhes de como fazer para construir o software. Os mtodos envolvem um amplo conjunto de tarefas, como o planejamento e estimativa do projeto, a anlise de requisitos de software, o projeto da estrutura de dados, o algoritmo de processamento, a codificao, o teste e a manuteno. Ferramentas - fornecem suporte automatizado aos mtodos. Atualmente existem ferramentas para sustentar cada um dos mtodos. Quando as ferramentas so integradas, estabelecido um sistema de suporte ao desenvolvimento de software, chamado Computer Aided Software Engineering (CASE). Procedimentos - constituem o elo entre os mtodos e ferramentas, eles estabelecem a sequncia em que os mtodos sero aplicados, os produtos (deliverables) que devem ser entregues, os controles que ajudam a assegurar a qualidade e coordenar as alteraes e os marcos de referncia que possibilitam administrar o progresso do software.
Quando se fala em produo de software, muito difcil estabelecer preo, prazo e nmero de pessoas necessrias para o desenvolvimento. Existe uma metodologia chamada ponto por funo que nos ensina a encontrar resultados para as dvidas relacionadas a essas estimativas. Como fazer isso manualmente muito difcil, foram desenvolvidas ferramentas baseadas nesse mtodo, que o automatizam, mas, o ponto por funo uma metodologia que estabelece entrada de informaes e resultados na forma de clculos e relatrios. Os procedimentos sero utilizados para dizer quando as entradas de informaes sero feitas, quais relatrios sero emitidos e em que momento.

22

Metodologias e Projetos de Software

Segundo Pdua (2001), a EGS trata do software como produto e, como todo produto industrial, o software:

deve ser concebido a partir da percepo de uma necessidade; desenvolvido transformando-se em um conjunto de itens entregue ao cliente; entra em operao utilizado dentro de um processo de negcio e sujeito manuteno quando necessrio; retirado de operao ao final de sua vida til.
O que processo de software?

Wilson de Pdua Paula Filho ser referenciado como Pdua neste livro pelo fato de ser assim conhecido na rea

Quando se fala em processo longo, nos vem mente uma sequncia de passos para atingir um objetivo. E, como afirma Pdua (2001), processo de software exatamente isto: um conjunto de passos ordenados, constitudos por atividades, mtodos, prticas e transformaes, usado para atingir uma meta. Como voc j deve estar imaginando, processos podem ser definidos para atividades em todas as etapas do desenvolvimento de um software. Pressman (2002) sugere a diviso do desenvolvimento em trs processos genricos. Acompanhe a figura:

Figura 1.1 Etapas do desenvolvimento de software Fonte: Pressman (2002).

Unidade 1

23

Universidade do Sul de Santa Catarina

Cada etapa pode ser detalhada como:

a) Definio
A primeira etapa constitui-se por identificar quais informaes devem ser processadas, qual funo e desempenho so desejados, quais interfaces devem ser estabelecidas, quais restries de projeto existem (por exemplo, o cliente precisa do software em 60 dias!) e quais critrios de avaliao so exigidos para se definir um sistema bem-sucedido (existem, por exemplo, normas internacionais que devem ser obedecidas no cho da fbrica e ser incorporadas ao sistema). A etapa de definio subdivide-se em: Planejamento do projeto no planejamento avaliamos se o projeto vivel, e como o desenvolvimento ser conduzido. Levantamento de requisitos Nessa etapa, o objetivo principal compreender o problema do cliente, suas necessidades, expectativas e restries. Aqui voc deve pensar com o cliente. Quais problemas existem? Como eles acontecem? Existe alguma caracterstica especfica que deve ser observada? De velocidade, portabilidade, interface, por exemplo. Anlise de requisitos Etapa de anlise dos dados da etapa anterior. Na anlise de requisitos ou especificao de requisitos, concebe-se uma estratgia para solucionar problemas e necessidades do cliente. Nessa etapa, voc ainda no precisa se preocupar com questes tecnolgicas. Assim, voc vai dizer o que o sistema deve fazer para apoiar o cliente, a partir de modelos.

b) Desenvolvimento
Nesta fase, voc tenta definir como a estrutura de dados e a arquitetura do software tm de ser projetadas. Durante a segunda etapa, voc ir realizar:
24

Metodologias e Projetos de Software

O projeto de software no projeto de software, voc deve definir como o sistema vai funcionar para atender aos requisitos levantados. Nessa fase, temos como resultado uma descrio computacional daquilo que o software deve fazer. Normalmente, tem-se aqui o projeto da arquitetura (especificao da configurao de componentes do software funes, classes, objetos e suas interconexes) e o projeto detalhado (que tem por objetivo a concepo e a especificao das estruturas de dados e dos algoritmos, que realizam aquilo que foi especificado para cada componente do software). Implementao Na implementao, o sistema codificado. Teste de software Na etapa de testes ocorre a verificao do que foi implementado. Vrias so as tcnicas: desde corretivas (procura de erros) at de validao com grupos de usurios.

c) Manuteno
Nessa fase ocorrero mudanas no software em consequncia dos erros encontrados. Alm disso, a etapa responsvel pelas adaptaes do software em funo da evoluo do hardware e necessidades do cliente. A manuteno pode ser corretiva (o cliente encontrar defeitos no software), adaptativa (modificaes no software que acomodam mudanas relacionadas evoluo do hardware: por exemplo, o cliente decide trocar o sistema operacional por uma possibilidade open source) e funcional (implementa funes adicionais para o cliente relacionadas expectativa que ele no tinha durante o desenvolvimento, como em uma situao na qual o gerente de recursos humanos precisa de um novo relatrio estatstico). Alm das trs etapas bsicas, devem ser consideradas ainda as atividades complementares fundamentais para o bom andamento do processo:

Unidade 1

25

Universidade do Sul de Santa Catarina

Revises Efetuadas para garantir que a qualidade seja mantida medida que cada etapa concluda. Documentao desenvolvida e controlada para garantir que informaes completas sobre o software estejam disponveis para uso posterior. Controle das mudanas institudo de forma que as mudanas possam ser aprovadas e acompanhadas pelos gerentes e pela equipe de projeto.

Seo 3 Modelo de desenvolvimento de software


O processo de desenvolvimento apresentado na seo 2 um modelo genrico. Isso significa que suas etapas so aplicveis a qualquer modelo, independentemente do paradigma de desenvolvimento utilizado. As diferentes formas de proceder em relao ao processo de desenvolvimento apresentam caractersticas prprias a cada modelo, diferentes necessidades das empresas desenvolvedoras de software ou mesmo ao tipo de sistema desenvolvido. Pressman (2002) define o modelo de desenvolvimento como uma representao abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software sero conduzidas e inter-relacionadas para atingir o objetivo do desenvolvimento do software. Alguns modelos de desenvolvimento esto h muitos anos no mercado, outros so muito recentes. D uma olhadinha, a seguir, nos mais conhecidos por sua utilizao nas empresas.

a) Modelo cascata
No modelo cascata, os subprocessos so executados em uma sequncia rgida. Assim, cada subprocesso passa a ser um marco de controle. Esse modelo exige uma abordagem sistemtica, sequencial, no desenvolvimento de software.

26

Metodologias e Projetos de Software

Isso acontece da seguinte forma, o desenvolvedor visita a empresa e inicia a etapa de levantamento de requisitos, aps algumas sesses, finaliza essa etapa e inicia outra, denominada etapa de anlise. Finalizada a etapa de anlise, o processo de desenho do sistema, de todo seu projeto. Finalizada esta etapa inicia-se a implantao do cdigo. Observe que no existe retorno a nenhuma etapa anterior. O modelo inflexvel: as etapas so sequenciais e no permitem regresso. Nesse modelo, ao finalizar o desenho do projeto, o desenvolvedor s poder modific-lo na etapa de manuteno. Essa viso burocrtica dos subprocessos gera situaes difceis de resolver pelos analistas. Pense: projetos reais raramente seguem o fluxo sequencial que o modelo prope. No incio de um projeto, difcil estabelecer explicitamente todos os requisitos, existe uma incerteza natural. Mas, o maior problema de todos a falta de visibilidade para o cliente! Somente na etapa de implantao o cliente ter contato com o software.

Figura 1.2 Modelo cascata Fonte: Pdua (2001).

No modelo em cascata, todo o projeto deve ser entendido em suas fases iniciais, seguindo at o final com pouqussima interao com o cliente.

Unidade 1

27

Universidade do Sul de Santa Catarina

Imagine a situao: voc contratado para desenvolver um projeto em uma fbrica de calados na qual todo o processo de produo ser automatizado. Em seu planejamento, percebe que o processo todo estar finalizado em um prazo de 2 anos. Se voc optar pelo modelo cascata, o cliente ser apresentado ao sistema somente ao final de 2 anos! Ser que ele ter pacincia para esperar por este prazotodo esse tempo?

Outro ponto importante: o levantamento de requisitos feito no incio e o processo segue para a etapa seguinte sem retornar anterior. Ser que, em dois anos, nada vai mudar no processo da empresa? Ser, ento, que este modelo invivel para os tempos atuais? Saiba que foi um dos modelos mais utilizados no mundo e tem baixo custo, devido a sua estrutura sequencial. Nos tempos atuais podemos sugeri-lo quando se tem domnio do problema e/ou o projeto considerado pequeno.

b) Modelo espiral
O modelo em espiral totalmente diferente do anterior. Nele, a palavra de ordem a experimentao e a avaliao. Esse modelo desenvolvido em uma srie de interaes; cada interao corresponde a uma volta na espiral. Cada volta fundamentada na anlise de riscos da soluo que est sendo proposta.

Figura 1.3 Modelo espiral Fonte: Pressman (2002).

28

Metodologias e Projetos de Software

Na etapa de planejamento so determinados os objetivos, alternativas e restries. Durante o subprocesso de anlise de risco, so analisadas as alternativas e identificados os riscos e resolues possveis. Na construo ocorre o desenvolvimento do produto no nvel seguinte. A avaliao do cliente fundamental, pois nela ocorre a avaliao do produto e o planejamento das novas fases cliente e desenvolvedor refinam os requisitos dos softwares a serem desenvolvidos. O modelo exige dos desenvolvedores experincia na determinao de riscos, sendo portanto, dependente da experincia pessoal da equipe. Talvez voc esteja se perguntando quando poder utilizar esse modelo. uma boa pergunta. Imagine que voc tenha de apresentar uma soluo para um cliente e que voc no esteja certo sobre a tecnologia a ser utilizada ou a forma como a estrutura de dados deva ser construda. A melhor maneira de fazer o melhor servio ser usando o modelo espiral. Utilize prototipao, simulao ou qualquer recurso possvel para avaliar diferentes solues at encontrar a melhor soluo! Quando voc estiver certo da resposta, siga na direo da engenharia, onde temos as etapas padro do processo de desenvolvimento.
Imagine que voc foi contratado para desenvolver um produto que faa vdeoinspeo a distncia de dutos de galerias de drenagem para a prefeitura do Rio de Janeiro. Voc poderia indicar uma soluo de imediato? Ou teria dvidas sobre como faz-lo da melhor maneira, pela grande oferta de recursos tecnolgicos e mesmo restries de projeto existentes?

c) Modelo prototipao
A prototipao envolve a produo de verses iniciais prottipos de um sistema futuro com o qual podem-se realizar verificaes e experimentaes para avaliao de algumas de suas qualidades antes que o sistema venha realmente a ser construdo.

Unidade 1

29

Universidade do Sul de Santa Catarina

Esse modelo popularmente usado como um mecanismo para identificar os requisitos de software. Imagine voc iniciando um trabalho com um cliente que lhe solicita um software para o controle de uma UTI, mas voc no faz ideia do funcionamento de uma UTI. E o pior que o cliente no parece dispor de muito tempo para explicar novamente o que voc no conseguiu entender.

Figura 1.4 Modelo prototipao Fonte: Pressman (2002).

Na figura 1.4 voc percebe o ciclo de desenvolvimento da prototipao: o processo inicia com a obteno de requisitos, segue-se ento um projeto rpido para o futuro desenvolvimento do prottipo. Finalizado o prottipo, realizada uma avaliao com o cliente ou com a prpria equipe de projeto. Os resultados da avaliao so utilizados para refinar o prottipo, reiniciando o ciclo at a avaliao. O processo se repete at o momento em que o grau de aceitao do prottipo seja considerado aceitvel. A partir deste momento, inicia-se a construo do produto, em que se pode utilizar qualquer outro modelo: cascata, incremental, entre outros.

30

Metodologias e Projetos de Software

A prototipao pode ser conduzida segundo duas tcnicas especficas de construo: a prototipao horizontal, em que uma camada especfica do sistema construda (a interface do usurio com suas janelas e widgets ou camadas da aplicao, como as funes para transao em bancos de dados); a prototipao vertical, em que uma parte da funcionalidade do sistema escolhida para ser implementada completamente. A prototipao vertical interessante quando aspectos da funcionalidade no esto claros. A partir da validao do prottipo, o modelo segue no processo tradicional de desenvolvimento para a construo do produto. Lembre-se: quando se valida uma informao verbal com o cliente, em muitos casos a ateno dele no total e muitas palavras se perdem durante o dilogo. Um desenho, no papel, do prottipo de uma tela torna-se 100 vezes mais claro e objetivo, alm de conseguirmos 100% da ateno do cliente.

d) Modelo incremental
O modelo incremental foi desenvolvido a partir da combinao entre os modelos linear e de prototipao (PRESSMAN, 2002). Quando voc usa esse modelo, todo o desenvolvimento dividido em etapas que so produzidas de forma incremental at se chegar a um sistema finalizado. Para cada etapa realizado um ciclo completo de desenvolvimento e novas funcionalidades so adicionadas ao sistema. Assim, voc pode dizer que todo o desenvolvimento evolui em verses.

Unidade 1

31

Universidade do Sul de Santa Catarina

Figura 1.5 Modelo incremental Fonte: Pdua (2001).

Se voc deseja utilizar esse modelo, considere a forma como todo o projeto ser construdo. Pense em questes relacionadas prioridade (o que mais importante para o cliente) e no risco de cada requisito. Tenha estratgia em mente e observe se o que prioritrio pode ser desenvolvido primeiro. No esquea: o primeiro mdulo o carto de visitas de sua empresa para o cliente! Nesse modelo, temos uma forte participao do cliente no projeto. Ele avalia os incrementos emtregues, o que permite corrigir possveis problemas nos mdulos em desenvolvimento e realizar os acertos devidos. Outro ponto importante que voc deve considerar, logo no incio, os requisitos mais arriscados. Fazendo isso, qualquer inconsistncia aparece logo no comeo e voc ter tempo para reagir e solucionar o problema. Fundamental nesse modelo a viso global do sistema. O gerente deve ter em mente a soma de todos os mdulos, evitando redundncias na construo do produto. O modelo incremental um dos mais utilizados na atualidade e em sua estrutura comum percebermos a insero da prototipao.
E as metodologias geis?

32

Metodologias e Projetos de Software

At pouco tempo, tudo o que se pensava sobre metodologias de desenvolvimento de software parecia extremamente ligado a farta documentao e processos delineados com clareza. Para muitos desenvolvedores, no entanto, passos firmemente delineados e documentados para cada etapa do desenvolvimento eram considerados uma burocracia desnecessria e que por vezes produzia altos custos ao projeto. A divergncia sobre a eficincia do uso de modelos que consideravam aqueles mais tradicionais, limitadores para equipes de desenvolvimento e, no raro, eram apontados como causa de atrasos e dificuldades no desenvolvimento. Por outro lado, pequenas empresas disprovidas de grandes oramentos ficavam margem dos modelos tradicionais por sua incapacidade de comportar a estrutura necessria para sua execuo. A demanda criada a partir dessa situao deu origem a um novo modelo, segundo Soares (2004), voltado a pessoas e no a processos ou algoritmos: os mtodos geis. As metodologias geis possuem caractersticas que determinam um foco maior na codificao e no na documentao, so claramente adaptativas, pois novos fatos que so apresentados no decorrer do projeto so tratados durante o desenvolvimento, e no existe a preocupao de conhecer o todo a partir de uma avaliao preditiva: novidades so adaptadas e incorporadas durante o desenvolvimento. A metodologia gil , portanto, naturalmente interativa, incremental, e acrescenta uma boa participao do usurio no processo. A seguir, conhea duas representantes dessa nova corrente, as metodologias Extreme Programming e SCRUM.

Extreme Programming (XP)


O mtodo XP foi criado por Kent Beck na dcada de 90, e no ano de 1996 tornou-se mundialmente conhecido ao ser utilizado na empresa Daimler Chrysler. Havia um projeto na empresa que durante anos no fora concludo e, ao fazer uso da metodologia, teve sua execuo completa realizada em apenas quatro meses.

Unidade 1

33

Universidade do Sul de Santa Catarina

Mas o que o XP? Segundo Beck (1999), o XP uma metodologia gil para equipes pequenas e mdias que desenvolvem software baseado em requisitos vagos e que se modificam rapidamente. Nesse processo, a burocracia deve ser mnima, as equipes, pequenas (sugere-se at 10 pessoas), trabalhando de forma incremental, apoiados integralmente pelo futuro usurio do sistema. A anlise dos requisitos ocorre medida que so descritos e solicitados pelo usurio, ou seja, o conhecimento sobre o problema evolui durante seu desenvolvimento. O XP norteado por valores, princpios e regras. Beck (1999) define quatro valores que descrevem o XP: a comunicao, a simplicidade, o feedback e uma boa dose de coragem. A seguir, acompanhe uma breve descrio desses valores, segundo Wuestefeld (2001). Simplicidade Est ligada simplicidade do software, do processo usado no desenvolvimento, na comunicao e em tudo o que norteia o trabalho de desenvolvimento, ou seja, descomplicar. A regra do XP simplificar! Comunicao Ela deve ocorrer em todos os sentidos, desde o uso dos escritos a partir da conveno de padres de codificao para facilitar o entendimento at a preferncia por reunies (presenciais) para discusso de requisitos e dvidas, o trabalho em salas comuns evitando-se o isolamento da equipe, a execuo de revises do projeto em conjunto com toda a equipe. Feedback Os possveis problemas devem ser identificados o mais cedo possvel para que possam ser corrigidos rapidamente. Da mesma forma, oportunidades descobertas devem ser aproveitadas rapidamente. Coragem fundamental para apontar problemas, solicitar ajuda, para alterar e simplificar um que j esteja funcionando, para apresentar prazos que muitas vezes podem no agradar ao seu usurio final, mas que so necessrios para no comprometer a qualidade do projeto.

34

Metodologias e Projetos de Software

Os valores do XP so fundamentados em alguns princpios como o feedback rpido, a simplicidade que deve ser assumida em todas as etapas do projeto, a conscincia de mudanas que devem acontecer de forma incremental, a compreenso e aceitao das mudanas e a necessidade da qualidade do trabalho. Valores e princpios se entrelaam na definio de prticas bsicas que so adotadas pelo XP (BONA, 2002). As doze prticas bsicas adotadas pelo XP segundo Soares (2004) so: Jogo de planejamento. Nesta prtica, decide-se o que deve ser feito (requisitos) e as prioridades. Tambm determinado o escopo da prxima verso. Divide-se por duas reas: o jogo do planejamento que decide sobre o escopo, a composio das verses e as datas de entrega realizado pela rea de negcios; as estimativas de prazo, o processo de desenvolvimento e o cronograma so determinados pelos programadores. Programao em pares. A programao feita em duplas, dois programadores trabalham sempre juntos na mesma mquina. Enquanto um dos programadores escreve, o segundo confere a padronizao e o raciocnio lgico. Semana de 40 horas. No modelo, a semana de 40 (quarenta) horas. Hora extra abolida, pois parte-se do princpio de que um programador cansado produz mais erros e, portanto, deve ser evitado. Pequenas verses. O sistema baseado em entregas frequentes de verses com tamanho pequeno, que so incrementadas em requisitos continuamente (entregas de verses mensais com feedback de aceitao do cliente, por exemplo). Metforas. O uso de metforas procura descrever o software sem a utilizao de termos tcnicos, facilitando a comunicao com o cliente.

Unidade 1

35

Universidade do Sul de Santa Catarina

Projeto simples. O sistema precisa ser projetado o mais simplesmente possvel, satisfazendo os requisitos atuais, sem preocupao com requisitos futuros. Teste. A equipe de desenvolvimento descreve em um primeiro momento os casos de testes, aps essa tarefa continua o desenvolvimento. Assim como os desenvolvedores, os clientes tambm escrevem testes a fim de validar o atendimento dos requisitos. Refactoring. Sempre que possvel, o projeto deve ser aperfeioado. Esse aperfeioamento deve propor a clareza do software. Propriedade coletiva. Pertence a todo o grupo. Isso significa que no existe o conceito de propriedade para um algoritmo. Qualquer integrante da equipe pode acrescentar ou alterar, desde que realize os testes necessrios para valid-lo. Integrao contnua. A construo e a integrao do sistema ocorrem vrias vezes por dia. Tarefas so completadas continuamente. Cliente dedicado. O usurio final est disponvel todo o tempo, determinando os requisitos, atribuindo prioridades e, principalmente, respondendo s dvidas. Padronizao do cdigo. O cdigo escrito com um grande cuidado quanto a padronizaes. Isso facilita o entendimento, assegurando a clareza e a comunicao entre programadores e projetistas .

SCRUM (Software Development Process)


Segundo relatos de Sutherland (2004), o SCRUM foi documentado e concebido na empresa Easel Corporation em 1993. A ideia inicial era voltada para empresas automotivas. Mais tarde, a metodologia foi incorporada pelas empresas Advanced Development Methods e VMARK, passando por modificaes e melhorias at chegar em um processo considerado adequado para projetos e desenvolvimento de software orientado a objetos.
36

Metodologias e Projetos de Software

O SCRUM possui aspectos semelhantes ao XP: tambm formatado para o uso de equipes pequenas, nas quais os requisitos no so claros, com interaes de curta durao e o mximo de visibilidade no processo de desenvolvimento. O SCRUM divide o desenvolvimento em interaes com durao de 30 dias, chamadas de sprints. As equipes multidisciplinares so formadas por projetistas, programadores, engenheiros e gerentes de qualidade. Cada equipe trabalha em torno dos requisitos do projeto que so definidos no incio de um sprint. A cada dia ocorre uma reunio da equipe, na qual se discutem metas, dificuldades e objetivos. Observe que isso acontece todos os dias!

Quais so as caractersticas da metodologia SCRUM?

Schwaber (2002) algumas caractersticas da metodologia SCRUM que caracterizam etapas do seu processo de desenvolvimento. Existem duas fases bem definidas: a primeira de planejamento (pr-game phase) e a segunda, de fechamento (post-game phase), onde os processos so definidos claramente. Durante o planejamento, definem-se requisitos, so estabelecidas prioridades e estimativas e so feitas anlises de necessidades, como treinamento da equipe e sobre as ferramentas. Na fase de sprint ( game phase), todo o processo baseia-se na experincia da equipe. As fases do sprint so gerenciadas por meio de controles que abrangem riscos e a otimizao de questes de flexibilidade. Os sprints no apresentam uma estrutura linear: muitas vezes, o uso da tentativa e do erro funciona para determinar e reconhecer ou conhecer o processo. Ainda assim, importante entender que o sprint acontece de forma tradicional, ou seja, seguindo etapas de anlise, projeto, implementao e testes.

Unidade 1

37

Universidade do Sul de Santa Catarina

A caracterstica forte do SCRUM o processo rpido: os ciclos duram de sete a 30 dias. Alm disso, todo o desenvolvimento cresce de forma incremental, podendo ser alterado durante todo o processo. O fechamento do projeto baseia-se no ambiente e pode-se dizer que o produto a ser entregue ser determinado durante o projeto. A finalizao (post-game phase) apresenta o produto ao cliente e procura avaliar, com a equipe, a evoluo do projeto. Nessa etapa, so tratadas questes como testes, integraes e documentao.

Quer conhecer mais sobre esses modelos? Acesse na internet o site do Modelo XP Programming, que apresenta uma abordagem de programao em pares, com a definio da etapa de testes no incio do projeto e intensa participao do usurio final.

Qual o melhor modelo, qual o pior? Tais definies dependem da natureza do projeto, da empresa e sua organizao, das ferramentas e dos recursos existentes na empresa de desenvolvimento. Uma ideia que ganha cada vez mais adeptos a combinao de diferentes modelos, aproveitando-se o melhor de cada um.

38

Metodologias e Projetos de Software

Sntese
Nesta primeira unidade voc teve contato com conceitos e modelos relacionados ao processo de desenvolvimento de software. Tambm estudou sobre a importncia de se estabelecerem claramente, nas empresas de software, os subprocessos existentes no processo de desenvolvimento. Foi possvel perceber que diferentes modelos servem para o desenvolvimento de sistemas com caractersticas especficas. O uso dos modelos tambm pode ser feito de forma combinada para um mesmo projeto. O projeto pode respeitar o modelo incremental, fragmentando suas funcionalidades; para alguns mdulos em que no esto claros os requisitos, pode-se usar a prototipao; para um mdulo em que se necessita avaliar algum risco, o modelo espiral indicado. Assim, misturando-se os modelos, tem-se o melhor de todos eles.

Atividades de autoavaliao
Leia com ateno os enunciados e, aps, realize as questes propostas. 1) Classifique as questes a seguir, em Verdadeira (V) ou Falsa (F). a) ( ) O software pode ser definido como um conjunto de instrues se visto do ponto de vista do programador. b) ( ) Uma das caractersticas mais interessantes do software est relacionada ao fato de ser um produto personalizvel. Isso se deve por ser um produto de engenharia e no manufaturado no sentido clssico. c) ( ) O software e a empresa que o produz so muitas vezes avaliados por apenas uma unidade, pois a mesma pode ser vendida para dezenas de clientes com ou sem customizao. d) ( ) O desgaste do software refere-se apenas adaptao de produtos a novas tecnologias. e) ( ) Uma definio completa de software pode ser sugerida a partir da soma de instrues, documentao e estrutura de dados.

Unidade 1

39

Universidade do Sul de Santa Catarina

2) Relacione a primeira coluna com a segunda. A. Definio B. Levantamento de requisitos C. Desenvolvimento D. Projeto de software E. Manuteno F. Revises G. Atividades de apoio H. Anlise de requisitos ( ) ( ) ( ) ( ) ( ) Composto por atividades que ocorrem no decorrer de todo o processo de desenvolvimento, como revises, controle de mudanas e documentao. Define o que deve ser feito para apoiar o cliente em seus problemas Nessa etapa, so executados o projeto, codificao e testes do software. Etapa que identifica as necessidades do cliente. a etapa responsvel por alteraes de cunho corretivo e adaptativo do software. Atividades efetuadas para garantir que a qualidade seja mantida. Fazem parte dessa etapa o planejamento do projeto, levantamento e anlise de requisitos. Define como o software ir implementar a soluo do cliente.

( )

( )

( )

3) Assinale as afirmativas corretas. a) ( ) Os mtodos proporcionam detalhes relacionados construo do software para as etapas de planejamento e estimativa. b) ( ) Os mtodos estabelecem detalhes de como fazer para construir um software em todas as etapas do processo; as ferramentas automatizam os mtodos, facilitando sua utilizao; os procedimentos estabelecem controles, artefatos que assegurem a correta utilizao do mtodo. c) ( ) Procedimentos proporcionam os detalhes de como construir o software; ferramentas automatizam os procedimentos; os mtodos formam o elo entre ambos.

40

Metodologias e Projetos de Software

4) Relacione as caractersticas de cada modelo [C]ascata, [P]rototipao, [I]ncremental ou [E]spiral: a) ( ) Neste modelo de desenvolvimento possvel avaliar riscos de projeto, tomando-se decises baseadas na experimentao de diferentes solues. b) ( ) O modelo facilita a identificao de requisitos para a construo do futuro software por meio de prottipos. c) ( ) O sistema fragmentado, sendo que cada fragmento percorre todo o ciclo de desenvolvimento do software. d) ( ) Nesse modelo, as subtarefas so executadas de forma sequencial e bastante rgida, sendo que o cliente tem contato com o sistema somente quando ocorre sua concluso. 5) Assinale com X qual dos modelos a seguir oferece menor contato com o cliente. a) ( ) Modelo cascata b) ( ) Modelo incremental c) ( ) Modelo prototipao d) ( ) Modelo espiral 6) A empresa CONSTONIS procura sua empresa para solicitar o desenvolvimento de um software, para controle de vendas de imveis. A empresa responsvel pela construo de prdios realiza a venda de seus imveis vista ou por financiamento direto com a construtora. O sistema deve possibilitar o controle das vendas assim como o controle do financiamento, que aceita ouro, carros, imveis, consrcios, dlares ou reais como parte do pagamento. O cliente no deixou muito claro o clculo do saldo devedor do comprador nem a forma como ocorre o acmulo de dbito do cliente. O sistema apresenta, em sua anlise inicial, 30 funcionalidades entre cadastros e relatrios de consulta. Qual o modelo de desenvolvimento que voc adotaria? a) ( ) Modelo cascata b) ( ) Modelo incremental c) ( ) Modelo prototipao d) ( ) Modelo espiral

Unidade 1

41

Universidade do Sul de Santa Catarina

7) Observe o modelo XP e o modelo SCRUM, e a seguir descreva o que possvel determinar como diferenas fundamentais em relao aos modelos tradicionais.

Saiba mais
Para aprofundar as questes abordadas nesta unidade, voc poder pesquisar os seguintes livros: PRESSMAN, Roger. Engenharia de Software. So Paulo: McGraw-Hill, 2002. SOMMERVILLE, Ian. Engenharia de software. 6. ed. So Paulo: Addison-Wesley, 2003.

42

Das könnte Ihnen auch gefallen