CENTRO DE INFORMTICA
Orientador
Recife, julho
julho 2008
Recife
15 de Julho de 2008
RESUMO
7
SUMRIO
1. Introduo ..............................................................................................................10
2. Mtodos geis.........................................................................................................13
3. Engenharia de Requisitos Tradicional e gil......................................................19
3.1 O Processo da Engenharia de Requisitos Tradicional .............................20
3.1.1 Elicitao ...............................................................................................20
3.1.2 Anlise e Negociao.............................................................................20
3.1.3 Documentao .......................................................................................21
3.1.4 Validao ...............................................................................................21
3.1.5 Gerenciamento de Requisitos ..............................................................21
3.2 Processos de ER e o seu Impacto em Mtodos geis................................21
4. Tcnicas e Abordagens da Engenharia de Requisitos para Mtodos geis .....23
4.1 Envolvimento do Cliente .............................................................................23
4.2 Elicitao ......................................................................................................24
4.3 Modelagem ...................................................................................................25
4.4 Documentao ..............................................................................................25
4.5 Validao ......................................................................................................25
4.6 Gerenciamento .............................................................................................26
4.7 Requisitos Desnecessrios ...........................................................................28
4.8 Falha de Comunicao ................................................................................29
4.9 Requisitos No Funcionais ..........................................................................30
5. O Papel e Responsabilidades de Stakeholders em Mtodos geis .....................32
5.1 Clientes..........................................................................................................32
5.2 Desenvolvedores ...........................................................................................32
5.3 Gerentes ........................................................................................................33
6. Concluso................................................................................................................34
7. Referncias Bibiogrficas......................................................................................37
8
LISTA DE FIGURAS
LISTA DE TABELAS
9
1. Introduo
Mudanas cada vez mais rpidas no ambiente de negcio, no qual a maioria das
organizaes opera, esto desafiando as abordagens da Engenharia de Requisitos (RE)
tradicional. As empresas de desenvolvimento de software precisam saber tratar, de
forma consistente e eficiente, requisitos que tendem a evoluir rapidamente e se tornam
obsoletos mesmo antes dos projetos serem finalizados. Dentre os fatores que
contribuem para esta variabilidade esto a rpida mudana de ameaas competitivas,
de preferncias dos stakeholders, da tecnologia de desenvolvimento e a presso para o
produto entrar no mercado [3]. Isto, tem tornado a pr-especificao de requisitos
inapropriada para projetos que possuem tais caractersticas.
Mtodos geis (MAs), que procuram atacar os desafios emergentes destes contextos
dinmicos, tm ganho bastante interesse de pesquisadores e engenheiros de softwares
[3]. MAs constituem uma famlia de processos de desenvolvimento de software que
se tornou popular durante os ltimos anos [1,7,14]. O objetivo principal desta
abordagem garantir a entrega de produtos em um menor prazo, com maior qualidade
e satisfazendo s necessidades dos clientes atravs da aplicao dos princpios da
produo enxuta para desenvolvimento de software [25].
Produo enxuta foi concebida durante a dcada de 50 pela Toyota [23]. Esta
abordagem envolve vrias prticas como desenvolvimento just-in-time,
gerenciamento de qualidade total e processo de melhoria contnuo. O princpio da
produo enxuta a constante identificao e remoo de perdas, isto , de tudo que
no agrega valor para o cliente do produto final. Baseados no princpio da produo
enxuta, MAs focam em [1]:
MAs colocam muita nfase em produzir e entregar ao cliente somente features que
so teis. Produzir algum outro artefato que no requerido considerado um erro.
10
Segundo a filosofia gil, adicionar uma feature que no necessria no s consome
esforo sem agregar valor, mas tambm produz cdigo extra que pode conter erros,
deixando o sistema mais complexo para manter, corrigir e melhorar [1].
Porm, uma anlise de vrios processos geis mostra que a ER est presente em todos
eles [2]. As atividades e fases que diferem de acordo com a peculiaridade de cada
processo. Mostra-se ento, que a engenharia de requisitos tem grande importncia
para mtodos geis, podendo-se destacar como pontos fundamentais [1]:
11
A identificao de interao entre features e o desacoplamento entre elas
tambm de extrema importncia para a implementao de, exclusivamente,
features de alta prioridade.
A identificao dos requisitos inclusos numa mesma iterao baseada na
negociao entre os clientes e a equipe de desenvolvimento.
Este trabalho tem como objetivo principal expor quais tcnicas e abordagens da
Engenharia de Requisitos esto sendo utilizadas dentro do contexto gil, bem como,
entender como e porque a Engenharia de Requisitos gil difere da Engenharia de
Requisitos tradicional.
12
2. Mtodos geis
13
Resposta Mudana X Planejamento: a equipe de desenvolvimento tem
que reagir rapidamente variao nos requisitos. As decises de binding que
afetam esta habilidade so postergadas o mximo possvel e o tempo gasto na
atividade de planejamento limitado ao que o cliente precisa. Qualquer
tentativa para prever necessidades futuras proibida. A partir destes valores,
um conjunto de prticas e comportamentos comuns so identificados. Este
tipo de abordagem no uma inovao da Comunidade gil, elas so
resultantes de experincias de sucessos e falhas no desenvolvimento de
software. Algumas destas prticas esto listadas a seguir [1]:
14
Priorizao de requisitos antes de cada iterao: antes de cada
iterao, o cliente e a equipe de desenvolvimento identificam novos
requisitos e reorganizam as prioridades dos antigos baseados nas atuais
necessidades dos clientes.
15
metodologias de desenvolvimento com focos diferentes e pontos fortes e fracos
peculiar a cada uma delas. Existem diferentes nveis de agilidade em MAs. Uma
metodologia de desenvolvimento mais gil do que outra se ela requer menos
overhead (o que significa no produzir valor para o cliente) [1].
16
Tabela 1 The Crystal Family [1]
Por estas razes, equipes pequenas so mais geis do que equipes grandes.
Contudo, os princpios bsicos do gerenciamento enxuto ainda so vlidos e a
maioria deles so escalveis. Um deles a melhoria contnua do processo atravs
da reduo de perdas. Este princpio vlido independentemente do tamanho da
equipe de desenvolvimento.
17
clientes, etc. Todas estas habilidades so obrigatria, na medida que os times so
auto-organizveis e no podem se basear em um processo pr-determinado e
detalhado para solucionar problemas e compartilhar conhecimento [10].
MAs focam em produzir somente o que traz valor ao cliente, o que significa no
construir artefatos reusveis como por exemplo componentes. Se o objetivo do
projeto desenvolver um artefato reusvel, o time de desenvolvimento ir focar
neste problema e usar MAs para atac-lo. Porm, artefatos reusveis no so
construdos em projetos cujo objetivo no seja exatamente este, porque os
desenvolvedores tem que incluir features que no so teis ao projeto em
andamento[1].
18
3. Engenharia de Requisitos Tradicional e gil
Problema %
Requisitos incompletos 13.1
Baixo envolvimento do cliente 10.6
Falta de recursos 12.4
Expectativa no realista 9.9
Falta de suporte gerencial 9.3
Mudanas nos requisitos 8.7
Falta de planejamento 8.1
Requisitos desnecessrios 7.5
Tabela 2 - Principais Causas de Falhas de Projetos [1]
19
Quanto mais tarde erros forem descobertos maiores so os custos para corrigi-los.
possvel determinar um conjunto de requisitos estveis, antes de se comear a
projetar e implementar o sistema.
3.1.1 Elicitao
Anlise de Requisitos tem como objeto checar os requisitos quanto a sua necessidade
(o requisito indispensvel ao sistema), quanto a sua consistncia (o requisito no
deve ser contraditrio), quanto a completude (nenhum servio ou restrio est
faltando) e quanto realidade (requisitos so realistas no contexto de custo e prazo do
projeto). Os conflitos nos requisitos so resolvidos atravs da priorizao e
negociao com os stakeholders. Solues para os problemas identificados so
acertadas e um compromisso firmado considerando um conjunto de requisitos que
foram concordados. As principais tcnicas de anlise e negociao so: Sesses de
Joint Application Development (JAD), Priorizao de Requisitos e Modelagem.
20
3.1.3 Documentao
3.1.4 Validao
21
A importncia de se definir padres reside no fato de se ter um conjunto de diretrizes
previamente definidas por onde toda a equipe de desenvolvimento ser guiada.
22
4. Tcnicas e Abordagens da Engenharia de Requisitos para Mtodos
geis
MAs incluem prticas focadas nos fatores chaves listados na Tabela 2 para reduzir o
risco de falhas. Em particular, o objetivo principal do desenvolvimento incremental,
de releases freqentes, da priorizao de requisitos antes de cada iterao e do
envolvimento total do cliente atacar os principais fatores de risco de um projeto de
software [1].
Envolvimento do cliente tido como a principal causa para um projeto obter sucesso
[14], enquanto que a ausncia deste compromisso a razo fundamental para projetos
no terminarem como planejados, ou seja, so concludos com atraso e com custos
extras ou simplesmente so abortados. O ponto chave de todas as abordagens geis
ter o cliente sempre acessvel [1].
23
Esta abordagem s possvel se o tamanho do problema limitado e uma nica
pessoa pode agir como o cliente, representando todos os stakeholders. Se o tamanho
do problema no permitir o uso de tal abordagem, a equipe tem que usar outras
tcnicas para elicitar e gerenciar os requisitos [1].
No fcil ter acesso a um cliente que seja capaz de satisfazer todos estes requisitos
[26]. A disponibilidade deste tipo de cliente de fundamental importncia em MAs,
visto que a maioria de suas vantagens(ex. reduo na documentao, entrega
incremental, etc.) esto fortemente acopladas com o grau de envolvimento do usurio
[1].
4.2 Elicitao
24
a obteno do conhecimento necessrio. fato conhecido que transferncia de
conhecimento em cadeia provoca mal entendidos. Por isso, todas as abordagens geis
do nfase conversa direta com o cliente salientando que esta a melhor maneira de
coletar o conhecimento necessrio e preciso para o desenvolvimento do software.
Caso algo no esteja claro ou esteja vagamente definido, a equipe de desenvolvimento
deve procurar a pessoa responsvel diretamente. Este relacionamento direto tambm
ajuda a estabelecer um relacionamento de confiana entre desenvolvedores e clientes,
que essencial para o bom andamento do projeto. Com base nestes fatos, a entrevista
a principal tcnica de elicitao nos processos geis de ER [2].
4.3 Modelagem
4.4 Documentao
4.5 Validao
25
certo e dentro do cronograma, aumentando assim a confiana do cliente na equipe de
desenvolvimento. MAs usam diversos tipos de reunio de revises para apresentar o
novo software. Nelas, os clientes podem usar a aplicao, experimentar como o
sistema funciona e determinar que funcionalidades j foram implementadas. As
dvidas dos clientes podem ser esclarecidas imediatamente pelos desenvolvedores,
podendo discutir a implementao e sugerir mudanas no projeto. Durante a reunio,
eles ainda aprendem sobre os pontos fortes e fracos do projeto e da tecnologia e em
que rea existe vantagens e limitaes. Os clientes tambm podem executar um teste
de aceitao para validar se o sistema reage da maneira esperada, caso no, esclarecer
a questo na mesma hora [2].
4.6 Gerenciamento
Mtodos geis provem uma boa base para o gerenciamento de requisitos. Eles
assumem que muito difcil elicitar todos os requisitos do usurio logo no comeo de
um projeto de desenvolvimento. Tambm assumem que estes requisitos evoluem com
o tempo, visto que, o cliente pode mudar de opinio e o ambiente tcnico ou scio-
econmico tambm pode sofrer mudanas. Por isso, MAs assumem que mudanas
so inevitveis e incluem o gerenciamento de variabilidade de requisitos como
atividade fundamental nos seus processos de ER. MAs fundamentam a coleta e o
gerenciamento de requisitos em trs suposies principais[6]: (1)requisitos no so
bem conhecidos no comeo do projeto; (2) requisitos mudam; (3) fazer mudanas no
to caro em um contexto gil.
26
Figura 2 - Custo de Mudanas [1]
Gerenciar variabilidade um desafio que MAs tentam solucionar de duas tcnicas [1]:
27
Esta abordagem capaz de identificar os requisitos mais importantes durante todo o
projeto, e no s no comeo. Requisitos que no so considerados muito importantes
no incio podem se tornar relevantes em algum estgio do projeto. Alm do mais, o
desacoplamento dos requisitos permite a implementao das features em quase
qualquer ordem. Assim, as features so implementadas de a cordo com suas
prioridades e no pela dependncia funcional entre algumas delas [1].
28
Mais cdigo fonte para escrever e custo extra
Maior complexidade do cdigo fonte
Atrasos na entrega da verso final da aplicao contendo todas as
funcionalidades requeridas.
Manuteno mais complexa e cara
Quantidade maior de recursos requeridos pela aplicao, incluindo: uso de
memria, poder de processamento, uso de rede, etc.
Aumento da complexidade da aplicao do ponto de vista do cliente (ex. GUI
mais completa, mais esforo para aprender a usar a aplicao, etc.)
No final, todo este lixo gerado implica em um custo extra que afetar o cliente de
maneira direta e indireta.
Um mal entendido gerado por alguma falha na comunicao entre o cliente e a equipe
de desenvolvimento gera requisitos errados. A fim de reduzir a probabilidade deste
29
problema, MAs adotam vrias tcnicas focadas na melhoria da interao entre o
cliente e a equipe de desenvolvimento [1]:
MAs no tm nenhuma tcnica especfica que seja uma unanimidade para elicitao e
gerenciamento dos requisitos no-funcionais[2]. Estes requisitos so coletados
implicitamente durante a atividade de elicitao de requisitos. A necessidade de se
especificar requisitos no-funcionais menos importante em MAs do que em
contextos tradicionais devido contnua interao com o cliente. Depois de cada
iterao, o produto lanado e o cliente pode test-lo. Se ele identificar problemas
relacionados a qualidades no-funcionais, a equipe pode adaptar o sistema para atingir
estes requisitos na iterao subseqente sem ter grande impacto no cronograma [1].
30
Frequentemente, o cliente no consegue enxergar muitos dos requisitos no-
funcionais (ex. escalabilidade, segurana, etc.) como um grande impacto. Isto pode
afetar profundamente o lanamento da verso final da aplicao, por isso, a equipe de
desenvolvimento tem que guiar o cliente a fim de identificar estas necessidades que
no so facilmente visveis. Esta abordagem para requisitos no funcionais pode
representar um risco muito grande para MAs, medida que faltam tcnicas para o
gerenciamento destes.
31
5. O Papel e Responsabilidades de Stakeholders em Mtodos geis
5.1 Clientes
5.2 Desenvolvedores
32
de grande valor. Por isto, as habilidades que so requeridas dos desenvolvedores em
equipes geis no so comuns. Eles tm que ser desenvolvedores muito bons, tem que
ser capazes de trabalhar em equipe e interagir com o cliente usando a linguagem
dele[11]. Visto que MAs focam nesta interao, a equipe de desenvolvimento tem a
responsabilidade de educar o cliente. MAs requerem um alto grau de
comprometimento do cliente no projeto devido aos constantes feedbacks que so
sempre requeridos pelos desenvolvedores [1].
5.3 Gerentes
33
6. Concluso
34
projeto ainda muito difcil e uma questo que ainda est sendo investigada
[2].
Finalmente, pode-se concluir que apesar das prticas da ER gil trazerem benefcios
como um melhor entendimento das necessidades dos clientes e a habilidade de
adaptarem-se as necessidades sempre em evoluo dos ambientes dinmicos de hoje,
eles propem vrios e distintos desafios. Portanto, as organizaes devem sempre
35
comparar os custos e benefcios da ER gil em seus ambientes de projeto antes de
adot-la.
36
7. Referncias Bibiogrficas
[1] Aurum, Aybke; Wohlin, Claes (Eds.) Engineering and Managing Software
Requirements 2005, XVIII, 478 p.
[2]. Paetsch F, Eberlein A, Maurer F (2003) Requirements engineering and Agile software
development. In Proceedings of 8th International Workshop on Enterprise Security, Linz,
Austria, 9-11 June.
[3] Lan Cao, Balasubramaniam Ramesh, "Agile Requirements Engineering Practices: An
Empirical Study," IEEE Software, vol. 25, no. 1, pp. 60-67, Jan/Feb, 2008.
[4] Ambler S (2002) When does(nt) Agile modeling make sense? Accessed on December 5,
2004, http://www.agilemodeling.com/essays/whenDoesAMWork.htm.
[5] Bailey P, Ashworth N, Wallace N (2002) Challenges for stakeholders in adopting XP. In:
Proceedings of 3rd International Conference on eXtreme Programming and Agile Processes
in Software Engineering (XP2002), Alghero, Italy, 26-29 May.
[6] Beck K (1999) Extreme programming explained: Embrace change. Addison-Wesley, UK.
[7] Beck K, Beedle M, Bennekum A, Cockburn A, Cunningham W, Fowler M, Grenning J,
Highsmith J, Hunt A, Jeffries R, Kern J, Marick B, Martin RC, Mellor S, Schwaber K,
Sutherland J, Thomas D (2001) Manifesto for Agile software Development. Accessed on 5th
December 2004, online at: http://www.agilemanifesto.org/.
[8] Cockburn A, Williams L (2000) The costs and benefits of pair programming. In:
Proceedings of 1st International Conference on eXtreme Programming and Agile Processes in
Software Engineering (XP2000), Cagliari, Italy, 21-23 June.
[9] Cockburn A (2000) Selecting a projects methodology. IEEE Software, 17(4): 64 71.
[10] Cockburn A, Highsmith J (2001) Agile software development: The business of
innovation. IEEE Computer, September, pp.120 122.
[11] Cockburn A, Highsmith J (2001) Agile software development: The people factor. IEEE
Computer, November, pp.131 133.
[12] Cockburn A (2002) Agile software development. Addison-Wesley, London, UK.
[13] Duncan R (2001) The quality of requirements in extreme programming. The Journal of
Defence Software Engineering, June 2001 issue.
[14] Cohen D, Lindvall M, Costa P (2003) Agile software development. DACS State-of-the-
Art Report. Accessed 5th December 2004, http://www.dacs.dtic.mil/techs/agile/agile.pdf.
[15] Cohn M, Ford D (2002) Introducing an Agile process to an organization. Access on 5th
December 2004
http://www.mountaingoatsoftware.com/articles/IntroducingAnAgileProcess.pdf
37
[16] Glass R (2001) Agile versus traditional: Make love, not war. Cutter IT Journal,
December, 6(1): 12 18.
[17] Highsmith JA (1996) Adaptive software development. Dorset House Publishing, UK
[18] IEEE Standard 830 (1998) IEEE recommended practice for software requirements.
[19] IEEE Standard 1233 (1998) IEEE guide for developing system requirements
specifications [20] IEEE Standard 1362 (1998) IEEE guide for information technology:
System definition, concept of operations document.
[21] Lee C, Guadagno L, Jia X (2003) An Agile approach to capturing requirements and
traceability. In: Proceedings of 2nd International Workshop on Traceability in Emerging
Forms of Software Engineering, Montreal, Canada, 7 October.
[22] Nawrocki J, Jasinski M, Walter B, Wojciechowski A (2002) Extreme programming
modified: Embrace requirements engineering practices. In: Proceedings of International
Conference on Requirements Engineering, 9-13 September, Essen, Germany.
[23] Ohno T (1988) Toyota production system: Beyond large-scale production. Productivity
Press Cambridge, Mass.
[24] Ambler S (2001) Agile documentation. Accessed on 5th December 2004.
http://www.agilemodeling.com /essays/agileDocumentation.htm.
[25] Poppendieck T, Poppendieck M (2003) Lean software development: An agile toolkit for
software development managers. Addison-Wesley, London UK.
[26] Rasmusson J (2003) Introducing XP into Greenfield projects: Lessons learned. IEEE
Software, May/June, 20(3): 21 28.
[27] Ronkainen J, Abrahamsson P (2003) Software development under stringent hardware
constraints: Do Agile methods have a chance. In: Proceedings of 4th International Conference
on eXtreme Programming and Agile Processes in Software Engineering (XP2003), Genoa,
Italy, May 2003, pp.25 29.
[28] Schwaber K, Beedle M (2001) Agile software development with scrum. Prentice Hall
PTR, Australia.
[29] Sommerville I, Sawyer P, (2000) Requirements engineering: A good practice guide. John
Wiley & Sons, UK.
[30] Smith J. (2001) A comparison of RUP and XP. Rational software white paper. Accessed
5th December 2005
http://www.isk.kth.se/proj/2003/6b3403/sa3/www/RationalUnifiedProcess/ papers/rupxp.htm.
[31] Standish Group, CHAOS Report 1994.
[32] Stapleton J (1995) DSDM - Dynamic system development method. Addison-Wesley, UK
[33] Tomayko JE (2002) Engineering of unstable requirements using Agile methods. In:
Proceedings of International Conference on Time-Constrained Requirements Engineering,
Essen, Germany, 9-13 September.
38
[34] Turk D, France R, Rumpe B (2002) Limitations of Agile software processes. In:
Proceedings of 3rd International Conference on eXtreme Programming and Agile Processes
in Software Engineering (XP2002), Alghero, Italy, 26 - 29 May.
[35] Wells D (2003) Dont solve a problem before you get to it. IEEE Software, May/June,
20(3): 44 47.
[36] Womack JP, Jones DT (1998) Lean thinking: Banish waste and create wealth in your
corporation, Simon & Schuster.
[37]Young R (2002) Recommended requirements gathering practices, Accessed 5th
December 2004, http://www.stsc.hill.af.mil/crosstalk/2002/04/young.
[38]. Abrahamsson P, Salo O, Ronkainen J, Warsta J (2002) Agile software development
methods: Review and analysis. EPSOO 2002, VTT Publications 478.
39