Escolar Documentos
Profissional Documentos
Cultura Documentos
___________________________________________________________________ 33
___________________________________________________________________ 34
___________________________________________________________________ 35
___________________________________________________________________ 36
feita em muitas metodologias tradicionais, que acabam muitas vezes nem sendo usadas.
Feedback: Os programadores obtm feedback sobre a lgica dos programas
escrevendo e executando casos de teste. Os clientes obtm feedback atravs dos testes
funcionais criados para todas as estrias (casos de uso simplificados). O feedback
importante, pois possibilita que as pessoas aprendam cada vez mais sobre o sistema e
assim corrijam os erros e melhorem o sistema.
Coragem: Ela necessria para que realmente se aplique XP como deve ser
aplicado. Exemplos de atitude que exigem coragem so: alterar cdigo j escrito e que
est funcionando; jogar cdigo fora e reescrever tudo de novo; e permitir cdigo
compartilhado por todos. Estes exemplos de atitudes podem ser necessrios para trazer
melhorias ao projeto e no devem ser evitadas simplesmente devido ao medo de tentlas.
Alm dos valores apresentados anteriormente XP define um conjunto de
princpios que devem ser seguidos por equipes que forem usar XP em projetos. Os
princpios serviro para ajudar na escolha de alternativas de soluo de problemas
durante o curso do projeto. Deve-se preferir uma alternativa que atenda aos princpios
de uma forma mais completa do que outra que seja incompleta, ou seja, que esteja mais
longe da filosofia de XP. Os princpios fundamentais so: feedback rpido, assumir
simplicidade, mudana incremental, abraando mudanas e trabalho de qualidade.
Feedback rpido: A idia de XP que os participantes de um projeto como
clientes, programadores e gerentes devem estar sempre se comunicando para facilitar o
aprendizado coletivo sobre o projeto que est sendo desenvolvido e de alertar
rapidamente sobre dvidas, riscos e problemas para facilitar eventuais aes de
contingncia.
Assumir simplicidade: Todo problema deve ser tratado para ser resolvido da
forma mais simples possvel. XP afirma que se deve fazer um bom trabalho (testes,
refactoring, comunicao) para resolver hoje os problemas de hoje e confiar na sua
habilidade de adicionar complexidade no futuro quando for necessrio.
___________________________________________________________________ 37
3.4.1 Prticas de XP
Extreme Programming possui doze prticas que consistem no ncleo principal
do processo e que foram criadas com base nos ideais pregados pelos valores e princpios
apresentados anteriormente na seo 3.3.1. Segundo um dos criadores de XP, Kent
___________________________________________________________________ 38
Beck, estas prticas no so novidades, mas sim prticas que j vm sendo utilizadas a
muitos anos, com eficincia, em projetos de software. Muitas das prticas de XP no
so unanimidades dentro da comunidade de desenvolvimento de software, como por
exemplo, programao em pares. No entanto, o valor e benefcios de tais prticas devem
ser avaliados em conjunto e no individualmente, pois elas foram criadas para serem
usadas coletivamente, de forma a reduzir as fraquezas umas das outras. As doze prticas
de XP so comentadas abaixo.
O jogo do planejamento: O planejamento de um release e das iteraes so
feitos com base nas histrias (casos de uso simplificados) e conta com a colaborao de
toda a equipe de desenvolvimento, inclusive o cliente, divididos em dois papis:
___________________________________________________________________ 39
___________________________________________________________________ 40
sistema passa em todos os testes. Os testes funcionais so usados para verificao, junto
ao cliente, do sistema como um todo. Os testes servem como um mecanismo para
assegurar que o sistema est sempre rodando livre de erros, e tambm servem para dar
feedback aos programadores e clientes sobre as falhas encontradas.
Refatoramento: So constantes melhorias no projeto do software para aumentar
sua capacidade de se adaptar a mudanas. O refatoramento consiste em aplicar uma
srie de passos, como mostrado em [31], para melhorar o projeto do cdigo existente,
tornando-o mais simples e melhor estruturado, sem alterar sua funcionalidade.
Programao em pares: Todo o cdigo produzido em XP escrito por um par
de programadores, que possuem papis distintos, sentados lado-a-lado e olhando para o
computador. Um parceiro ser responsvel pela codificao e pensar nos algoritmos e
na lgica de programao. O outro parceiro observa o cdigo produzido e tenta pensar
mais estrategicamente em como melhor-lo e torn-lo mais simples, alm de apontar
possveis erros e pontos de falha. Alm disso, as duplas so constantemente trocadas e
os papis tambm com o objetivo de que todos os membros da equipe possam ter
conhecimento sobre todas as partes do sistema.
Propriedade coletiva do cdigo: A programao em pares encoraja duas
pessoas a trabalharem juntas procurando atingir o melhor resultado possvel. A
propriedade coletiva encoraja a equipe inteira a trabalhar mais unida em busca de
qualidade no cdigo fazendo melhorias e refatoramentos em qualquer parte do cdigo a
qualquer tempo. A princpio pode-se pensar que esta prtica possa gerar problemas, mas
como todos devem respeitar um padro de codificao e devem realizar todos os testes
para verificao de erros esta atividade feita de uma forma controlada e pode ser
facilitada com o uso de uma ferramenta de controle de verso.
Integrao contnua: O cdigo das funcionalidades implementadas pode ser
integrado vrias vezes ao dia. Um modo simples de fazer isso ter uma mquina
dedicada para integrao. Quando a mquina estiver livre, um par com cdigo a integrar
ocupa a mquina, carrega a verso corrente do sistema, carrega as alteraes que
fizeram (resolvendo as colises), e rodam os testes at que eles passem (100% corretos).
___________________________________________________________________ 41
ambiente
tecnolgico
(hardware,
rede,
software,
___________________________________________________________________ 42
___________________________________________________________________ 43
___________________________________________________________________ 44
___________________________________________________________________ 45
___________________________________________________________________ 46
___________________________________________________________________ 47
Pap el
1
0..*
At i v i d a d e
0..*
A s s is t e
0..*
0..*
At o r
R e a liz a
Cons ome
*
Pr o d u z
*
Ar t e f a t o
A modelagem de processos de software procura definir modelos e seus interrelacionamentos para representar os elementos que fazem parte do processo, como, por
___________________________________________________________________ 48
exemplo, na Figura 3.1. Tais modelos podem ser construdos seguindo uma determinada
linguagem de modelagem e procuram retratar uma determinada viso do processo de
software. Existem diversas linguagens, meta-modelos e ferramentas que possibilitam
modelar diversos aspectos de processos de software segundo uma viso particular. Nas
prximas sees ser discutido a importncia da modelagem de processos de software
(seo 3.6.1) bem como algumas abordagens existentes para modelagem (seo 3.6.2).
___________________________________________________________________ 49
eliminando
algumas
atividades
feitas
de
forma
manual
___________________________________________________________________ 50
___________________________________________________________________ 51
importante ressaltar que as outras linguagens possuem grande importncia para a rea
de modelagem de processos, porm optamos por SPEM devido aos fatores mencionados
acima. A prxima seo mostra a modelagem de XP feita usando SPEM.
___________________________________________________________________ 52
MetaObject Facility
M3
Process Metamodel
M2
SPEM,UML
M1
e.g., RUP,
Open, XP
M0
Process Model
Performing Process
10
11
___________________________________________________________________ 53
usurios (modeladores de processo) usem a UML, e define esteretipos que podem ser
usados nos modelos produzidos.
O meta-modelo SPEM construdo pela extenso de um subconjunto do metamodelo da UML 1.4. Esse subconjunto de UML chamado em SPEM de
SPEM_Foundation. Alm disso, o modelo SPEM possui o pacote SPEM
Extensions que adiciona as construes e semnticas re queridas para a engenharia de
processos de software. A Figura 3.3 abaixo mostra esses dois pacotes.
<<metamodel>>
SPEM_Foundat ion
<<metamodel>>
SPEM_Extensions
___________________________________________________________________ 54
podem ser utilizados alguns desses diagramas, dentre eles: diagrama de classes, de
pacotes, de atividade, de caso de uso, de seqncia e de transio de estados. A
linguagem SPEM oferece algumas representaes e esteretipos para modelar seus
principais elementos em diagramas UML. Um resumo dos principais elementos de
SPEM, seus conceitos e suas representaes grficas mostrado na Tabela 3.1.
Tabela 3.1 - Descrio de alguns elementos de SPEM12
ESTERETIPO
WorkProduct
(Artefato)
COMENTRIO
NOTAO
WorkDefinition
(Conjunto de
Trabalho)
WorkProducts.
Representa
um
conjunto
de
(Guia)
Activity
(Atividade)
ProcessRole
(Papel)
12
___________________________________________________________________ 55
ESTERETIPO
Discipline
(Disciplina)
COMENTRIO
NOTAO
___________________________________________________________________ 56
___________________________________________________________________ 57
___________________________________________________________________ 58
A modelagem dinmica de XP mostrada na Figura 3.4 foi feita com base nos
esteretipos disciplina de SPEM utilizando-se um diagrama de atividades da UML para
dar uma idia da seqncia de cada disciplina de XP ao longo do tempo. A modelagem
se baseou na descrio do ciclo de vida de XP apresentada na seo 3.4.2. A prxima
seo procura apresentar a modelagem esttica de algumas disciplinas atravs de
diagramas de classe UML.
___________________________________________________________________ 59
___________________________________________________________________ 60
___________________________________________________________________ 61
que traz alguns benefcios como facilitar o entendimento e a organizao dos elementos
de XP. Esta modelagem servir tambm para facilitar a criao do processo
XWebProcess a ser apresentado no prximo captulo.