CUSTOMIZAÇÃO DE PROCESSOS PARA O
DESENVOLVIMENTO DE SOFTWARE
Marla Teresinha Barbosa Geller¹
Marialina Correa Sobrinho²
João Elias Brasil Bentes Júnior³
Monilson Marinho4
Resumo
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
Este artigo descreve a pesquisa do Grupo de Trabalho Ágil – GTA,formado por uma equipe de professores e
alunos que desenvolvem as atividades dentro do ambiente acadêmico utilizando as disciplinas de
desenvolvimento de software para testar a instanciação de processos adaptados a sistemas diversos. Os
processos utilizados como base são processos já consolidados dentre eles o Processo Unificado, o SCRUM e
Programação Extrema. Dentre os processos já instanciados estão P@PSI – Processo Ágil para Pequenos
sistemas, o P@PSeduc – Processo Ágil para Software educativo e o P@PGame – Processo Ágil para Games. A
descrição dos processos resultantes deste estudo inicial é o conteúdo principal deste trabalho.
Palavras Chave: Engenharia de Software. Processo de Software. Metodologias Ágeis.
Abstract
This article describes the research of the Agile Work Group - GTA, comprising a team of teachers and pupils
that develop activities within the academic environment using the disciplines of software development to test
the instantiation of processes adapted to various systems. The procedures used are based on procedures already
established including the Unified Process, Scrum and Extreme Programming. Among the processes already
instantiated are P @ PSI - Agile Process for Small Systems, P @ PSeduc - Agile Process for Educational
Software and P@Pgame – Agile Process for Games. The description of cases arising from this initial study is
the main content of this work.
Keywords: Software Engineering. Software Process.Agile Methodologi
¹Professora e Coordenadora do Curso de Sistemas de Informação do Centro Universitário Luterano de Santarém – CEULS/ULBRA. Graduada em
Informática e Mestre em Engenharia Elétrica com ênfase em Computação Aplicada pela Universidade Federal do Pará. Pesquisadora na área de Engenharia
de Software mais especificamente em Melhoria de Processo de Desenvolvimento de Software. E-mail: [email protected]
²Professora do Curso de Sistemas de Informação do Centro Universitário Luterano de Santarém – CEULS/ULBRA e do Instituto Esperança de Ensino
Superior de Santarém. Graduada em Pedagogia, com especialização em Informática na Educação e Mestre em Engenharia Elétrica com ênfase em
Computação Aplicada pela Universidade Federal do Pará. Pesquisadora na área de Informática na Educação, mais especificamente em Objetos de
Aprendizagem E-mail: [email protected]
³Bacharel em Sistemas de Informação do Centro Universitário Luterano de Santarém, desenvolve pesquisa na área de Melhoria de Processo de software para
desenvolvimento de Jogos. E-mail: [email protected]
4
Aluno concluinte do Curso de Sistemas de Informação do Centro Universitário Luterano de Santarém, desenvolve pesquisa na área de desenvolvimento
de Jogos. E-mail: [email protected]
106
1 INTRODUÇÃO
O aumento da demanda por projetos com características específicas como o desenvolvimento de software para pequenas empresas, de software educativo, de jogos eletrônicos, entre outros, é o que justifica a pesquisa. As particularidades de cada sistema impõem uma busca por processos customizados que atendam um contexto específico.
O trabalho do GTA– Grupo de Trabalho Ágil iniciou em 2007, onde na primeira etapa do
projeto foram estudados os processos existentes e a especificação de um processo adaptado para atender o
desenvolvimento de software para pequenos sistemas – P@PSI(Processo Ágil para Pequenos Sistemas). O processo definido foi testado inicialmente pela equipe no desenvolvimento de um sistema para dispositivos móveis. Em 2008, o processo instanciado objetivou atender o desenvolvimento de software educativo – P@PSEduc
(Processo Ágil para Software Educativo)
que é utilizado no desenvolvimento de software educativo por
alunos do curso de Pedagogia em colaboração com os alunos do curso de Sistemas de Informação, no curso de
pós graduação em “Informática e as Novas Tecnologias Educacionais”. Em andamento está a aplicação do processo para o desenvolvimento de jogos eletrônicos – P@PGame (Processo Ágil para Games), que está sendo
aplicado na criação e um jogo eletrônico.
As atividades de pesquisa do GTA devem ser permanentes e contínuas, e a aplicação, avaliação e melhoramentos nos processos devem fazer parte do conteúdo de diversas disciplinas no curso de Sistemas de Informação, que abordam o tema, formando um trabalho interdisciplinar avaliado a cada período de um semestre.
O trabalho aqui relatado está organizado em tópicos, onde o próximo tópico faz a fundamentação teórica
dos processos base e sua adaptação, o terceiro tópico descreve a metodologia utilizada para pesquisa e cita
alguns trabalhos correlatos, a seguir descrevem-se os processos resultantes e finalmente nas considerações finais apresentam-se algumas conclusões com o uso dos processos e o que se pretende como trabalhos futuros.
2 PROCESSOS BASE EADAPTAÇÃO
A pesquisa do grupo inicia com o estudo de processos já consolidados existentes no mercado, intensificando-se no detalhamento do Scrum, da Programação Extrema e do Processo Unificado.Aopção por estas meto
107
Perspectiva
PerspectivaAmazônica
Amazônica--Santarém
Santarémv.1
v.1n.1
n.1p.82-93
p.106-117
jul/dez
jan 2011
2010
O desenvolvimento de software de forma ágil e com qualidade, têm sido o grande desafio de todas as
épocas. Atender as exigências de qualidade, obedecendo planilhas de custo e atendendo as necessidades do cliente é uma questão crítica para os desenvolvedores de software. Com maior intensidade nos tempos atuais, onde
o equilíbrio do tripé custo, escopo e qualidade é alcançado somente com o auxílio de um bom processo para organização e acompanhamento no desenvolvimento do software. Estão disponíveis na literatura muitos modelos de
processos, alguns modelos tradicionais bastante utilizados ainda, como o Modelo Cascata, ou modelos iterativos e incrementais, como o Processo Unificado, este que se tornou padrão para muitas empresas de desenvolvimento. Segundo Ambler (2004), o problema das perspectivas tradicionais é que elas enfocam procedimentos
prescritivos e os produtos que devem ser criados. São considerados métodos “pesados“ por fundamentar-se em
regras definidas, inertes a mudanças dos requisitos e por possuírem um ciclo de desenvolvimento pouco adaptável e que devem ser completamente executados. Quanto ao Processo Unificado, a expectativa para que atenda o
maior número de sistemas, torna-o muito genérico, voltado principalmente para equipes mais experientes.
dologias deve-se a análises preliminares feitas com alguns processos de desenvolvimento de software disponíveis e conhecidos no mercado. Dos processos estudados já consolidados na literatura pode-se citar o Processo
Pessoal de Software, Processo Espiral, Prototipagem, Crystal,Desenvolvimento Adaptativo de Software, entre
outros.(PRESSMAN, 2006).Estudos correlatos foram também objetos de pesquisa para fundamentar o tema e
conhecer outras propostas de soluções para o mesmo problema, podendo-se citar Paiva (2004), Garcia (2004),
Schneider(2003), Hazzan (2006), Alves(2006).
Perspectiva
PerspectivaAmazônica
Amazônica--Santarém
Santarémv.1
v.1n.1
n.1p.82-93
p.106-117
jul/dez
jan 2011
2010
A prática de desenvolvimento de sistemas com o uso de um processo se dá em geral, com o auxílio do
Processo Unificado, que é iterativo, porém prescritivo e definido. Ao mesmo tempo, incorporam-se ao mundo
do desenvolvimento, os Processos Ágeis, que sugerem práticas e valores a serem utilizados no trabalho do dia a
dia do desenvolvedor.
Tem-se dessa forma, de um lado, os modelos tradicionais de desenvolvimento de sistemas voltados para
documentação, que são opções, geralmente, pesadas para pequenos projetos. Por outro lado os métodos adaptativos como o Scrum ou a Programação Extrema, podem não ser suficientes para equipes sem muita experiência
em desenvolvimento, pois suas práticas são rigorosas e disciplinadoras, mas não possuem uma prescrição da
ordem de como as atividades devem ser realizadas. Neste cenário, é bastante comum, equipes iniciantes em
desenvolvimento, não adotarem processo algum, por não se adaptarem ao trabalho árduo da documentação e
nem conseguirem se organizar quando não é prescrito o que deve ser feito, ou seja, estão entre os dois extremos.
(CHARETTE, 2001).
Seguindo a teoria de Keenan (2004), que diz que um processo de desenvolvimento de software
pode ser melhorado através da captura do que de melhor se adapta ao contexto, unindo práticas de processos
conhecidos, o GTAtem por objetivo adaptar essas práticas para melhor atender projetos com características específicas. Dessa forma os processos propostos unem os princípios e práticas de métodos empíricos, como o Scrum
e o XP, com o auxílio da organização do Processo Unificado que é um processo definido.
2.1 Scrum
A metodologia Scrum compartilha com XP a adoção das práticas definidas no “Manifesto para o Desenvolvimento Ágil de Software”, AgileManifest (2001). O foco da metodologia Scrum é a flexibilidade, a adaptabilidade e a produtividade. O resultado do processo deve ser um software que é realmente útil para o cliente.
(SCHWABER, 2002).
O ciclo de vida do Scrum é baseado em três fases: fase de planejamento, fase de desenvolvimento
(Sprint) e fase de encerramento. A primeira e a última fase consistem em processos definidos, onde o fluxo de
atividades é linear, podendo haver algumas iterações na fase de planejamento, como refereSchwaber (1995).
Nesta fase define-se o ProductBacklog5, que consiste em uma lista priorizada de todas as estórias de usuários que
o sistema deve atender. Afase de desenvolvimento é dividida em ciclos chamados Sprints, que são realizados em
tempo determinado (não mais que 30 dias). Um Sprint contém uma funcionalidade ou funcionalidades (Sprint
Backlog6) que devem ser implementadas. São os casos de uso priorizados. O Sprint Backlog é dividido em tarefas (Sprints Diários7) que não devem exceder 24 horas. Tem-se a cada final de Sprint um release ou uma parte do
5
ProductBacklog: conjunto de requisitos do sistema.
6
Sprint Backlog: itens do ProductBacklog que a equipe se compromete em desenvolver em um período de até 4 semanas.
7
Sprints diários: definição da atividade a ser realizada em um dia e que faz parte do Sprint Backlog.
108
produto a ser avaliado ou até mesmo utilizado pelo cliente. Na fase de encerramento são feitas reuniões para analisar o progresso do projeto e demonstrar o software atual para os clientes. Nesta fase são feitas as etapas de integração, testes finais e documentação. (PRESSMAN, 2006).
Uma equipe Scrum é formada pelo Scrum Master (gerente do projeto), que é responsável pela aplicação
das regras do Scrum, que garante a plena funcionalidade e produtividade da equipe e que representa o escudo nas
interferências externas; pelo ScrumOwner(dono do produto), que define as funcionalidades do produto, decide
datas de lançamento do conteúdo, e pela equipe de desenvolvedores que deve ser pequena e multifuncional (programadores, testadores, desenvolvedores de interfaces, entre outros).
2.2 Programação Extrema - eXtremeProgramming - XP
Conforme Beck (2004), XP é uma metodologia ágil para equipes pequenas a médias que desenvolvem
software com requisitos vagos ou que mudam frequentemente. Baseia-se em quatro valores que são: comunicação, simplicidade, feedback e coragem.
AXP possui práticas que são aplicadas a qualquer outro processo e que agregam valor à equipe de desenvolvimento. Entre estas práticas estão: programação em pares, cliente presente, reuniões breves, testes freqüentes, refatoração do código, integração contínua, semanas de 40 horas. (TELES, 2004) .
A XP assim como o Scrum é um processo adaptativo, ou seja, adota a mudança, ou melhor, considera a
mudança uma característica intrínseca aos sistemas. Portanto, ao invés de prever o que pode acontecer no futuro,
adapta-se às mudanças, baseando-se em situações concretas, que realmente acontecem. XP recebe críticas, por
ter uma análise de requisitos muito informal e por não valorizar tanto a modelagem como o Processo Unificado.
2.3 Processo Unificado
Kruchten (2003) define o Processo Unificado como uma estrutura genérica de processo que pode ser customizado adicionando-se ou removendo-se atividades com base nas necessidades específicas e nos recursos disponíveis para um projeto. Possui quatro fases: Concepção, Elaboração, Construção e Transição. Dentro do Processo Unificado, fluxos de trabalho atravessam as fases do processo: Requisitos, Análise, Projeto, Implementação, Testes.(AMBLER, 2004). O Processo Unificado é um processo definido e preditivo que utilizado com a
Linguagem de Modelagem Unificada, sugere a documentação do sistema através de modelos, como refere-se
Scott (2003). Apesar de ter característica iterativa e incremental, prescreve as fases com planejamento e documentação mais extensa.
109
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
Pode-se fazer uma analogia do Scrum com o jogo onde todos trabalham ao mesmo tempo para conseguir
o mesmo objetivo, Takehushi (1986) descreve: “O estilo de corrida de revezamento onde é dada a cada participante da equipe a responsabilidade de uma parte do projeto, quando aplicado ao desenvolvimento de produtos
pode conflitar com os objetivos de velocidade e flexibilidade máximas”. Na interpretação do texto de transcrito
acima, tem-se a descrição do que acontece nos processos tradicionais. Ao invés disto, “um estilo holístico, onde
a equipe busca, como em um jogo de futebol, de forma integrada, chegar ao gol, com passes de bola, pode servir
melhor às atuais necessidades competitivas”. (TAKEHUSHI, 1986).
3 METODOLOGIADE INVESTIGAÇÃO E TRABALHOS CORRELATOS
A metodologia utilizada para escolha dos processos base foi primeiramente o estudo de processos prescritivos para inserir no processo resultante o mínimo de organização necessária para orientar desenvolvedores
inexperientes. Desta forma as etapas realizadas para instanciação do processo passaram por leitura e estudo dos
diversos processos, dentre eles o tradicional Processo em Cascata. Através do Processo Cascata foi possível
entender claramente os fluxos de Levantamento de Requisitos, Análise, Projeto, Implementação e Testes, fluxos
estes que atravessam ortogonalmente qualquer processo.
Perspectiva
PerspectivaAmazônica
Amazônica--Santarém
Santarémv.1
v.1n.1
n.1p.82-93
p.106-117
jul/dez
jan 2011
2010
Ao mesmo tempo, preocupou-se em proporcionar agilidade através de práticas que facilitassem o desenvolvimento de pequenos projetos. Dentre as práticas herdadas do XP, utilizou-se a adoção da programação em
pares, da refatoração de código, do planejamento diário, da propriedade coletiva do código, dentre outras. O
processo Scrum uniu-se ao XP e ao Processo Unificado para gerenciar cada processo instanciado.
O estudo das metodologias ágeis incluiu a Programação Extrema descrita por Astels (2002), família
Crystal, Desenvolvimento Adaptativo de Software, referidos porPressmann (2006) e Scrum por Schwaber
(1995). Estudos referentes a desenvolvimento de software educativo foram também objetos de pesquisa para
fundamentá-la e conhecer outras propostas de soluções para o mesmo problema, podendo-se citar: Paiva
(2004), Garcia (2004), Schneider (2003), Hazzan (2003), Alves (2006), Bassani (2006), Benitti (2005), Falkembach (2005). Quanto às metodologias para desenvolvimento de jogos pode-se considerar as propostas de Cabral
(2004), Credidio (2008) e Nascimento (2008).
4 PROCESSOS RESULTANTES
Como resultado inicial desta pesquisa, apresenta-se a seguir os processos instanciados que possuem
como características comuns serem voltados para pequenos projetos e desenvolvidos por equipes inexperientes.
E como especificidades, atenderem ao desenvolvimento de software para pequenas empresas, software educativos e desenvolvimento de jogos.
4.1 P@PSI – Processo Ágil para Pequenos Sistemas
O processo resultante - P@PSI (Processo Ágil para Pequenos Sistemas), é descrito como sendo gerenciado pelo Scrum, adotando práticas XP e com fluxos organizados do Processo Unificado.
O processo constitui-se de três etapas representadas em raias no diagrama de atividades da figura 1: Planejamento, Desenvolvimento e Encerramento que possibilitam a iteratividade. Inicia-se com a fase de Planejamento, onde a equipe de desenvolvimento trabalha na captura de requisitos para definir o “Produto Total”. Os
recursos utilizados para esta atividade são reuniões, entrevistas com os clientes, questionários, entre outras, que
resultam em estórias de usuários podendo ser representados através de diagrama de casos de uso. Recomenda-se
se necessário a descrição dos cenários dos casos de uso mais complexos. Seguindo para a fase de Desenvolvimento, prioriza-se do Produto Total, uma funcionalidade ou pequenas funcionalidades, representadas por um ou
mais casos de uso. Essa funcionalidade deve ser desenvolvida em um período determinado, (aconselhável não
110
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
mais que quatro semanas). A esse pequeno pacote com os casos de uso priorizados chama-se Funcionalidade
Priorizada, que é solucionada em um fluxo diário de projeto, implementação e teste, ou seja, executa-se o projeto, desenhando e detalhando as classes, implementa-se o código e testa-se a unidade funcional diariamente,
podendo este fluxo ser iterativo. Nesta fase utilizam-se os recursos do diagrama de seqüência da UML para definir atributos e métodos, obtendo-se um diagrama de classes de projeto.
Figura 1: Diagrama de atividades do P@PSI, com as fases definidas por raias.
As atividades desenvolvidas na fase de Encerramento incluem a revisão, demonstração e entrega da Funcionalidade Priorizadaao cliente. Neste ponto o processo retorna executando uma nova iteração com um novo
conjunto de funcionalidades priorizadas, criando um novo pacote,passando por todas as fases. Quando o Produto Total estiver finalizado o processo encerra-se.
O P@PSI está sendo utilizado pelos acadêmicos do Curso de Sistemas de Informação em seus trabalhos
de Conclusão de Curso, nos trabalhos de desenvolvimento das diversas disciplinas e nos trabalhos de Iniciação
Científica, contribuindo desta forma para aprimoramento do processo.
111
4.2 P@PSEduc – Processo Ágil para Software Educativo
No que se refere ao desenvolvimento de software educativo é importante que se tenha conhecimento das
principais teorias de aprendizagem além de conhecimento de técnicas da engenharia de software que facilitem a
produção do software com qualidade. Desta forma, tem-se a necessidade de trabalho colaborativo entre a área
tecnológica (engenharia de software) e a área psico-pedagógica. (BASSANI,2006). Oliveira et al (2004) aponta
4 (quatro) parâmetros que distinguem um software qualquer de um software educativo: fundamentação pedagógica, conteúdo, interação aluno-software educativo–professor e a programação. Nesta perspectiva, diversos
autores têm apresentado algumas propostas metodológicas para o processo de desenvolvimento de software
educativo. Entretanto, percebe-se que essas propostas tendem a contemplar aspectos educacionais e psicológicos, em detrimento dos aspectos computacionais, enfatizando o caráter descritivo.
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
A proposta apresentada pelo GTA é uma adaptação do processo inicial P@PSI, atendendo os requisitos
para o desenvolvimento de um software educativo, com o principal objetivo de facilitar o trabalho interdisciplinar entre as duas áreas (pedagógica e técnica), especificando cada papel no decorrer do processo, bem como
sugerir os artefatos criados. Partindo-se deste cenário o P@PSEduc foi dividido em quatro fases, apresentadas
através do diagrama de atividades na figura 2.
Figura 2: Diagrama de atividades do P@PSEduc com suas fases definidas por raias.
112
Fase de Planejamento, onde é preciso considerar o produto a ser desenvolvido, definir os objetivos da
aprendizagem e requisitos do software, além de definir o escopo e o público alvo conforme Benitti(2005). É
preciso definir o tema, considerar as aplicações existentes e os recursos disponíveis. Fase de Modelagem - modelar um sistema é apresentá-lo em modelos gráficos com o objetivo de facilitar a compreensão, discussão e aprovação do sistema antes de começar a construí-lo. Uma aplicação que utiliza os recursos da hipermídia como a
maior parte dos software educativos, inclui a criação de três modelos –modelo conceitual, modelo navegacional
e modelo de interface. A Fase de Desenvolvimento inclui as atividades de produção, reutilização, organização e
integração das mídias. Cria-se os sons, as imagens, código, animações, vídeos e todo o recurso necessário para o
sistema. (GELLER, 2009). Esta fase é facilitada quando se utiliza um Sistema de Autoria que ofereça os recursos para integrar todas as mídias em uma estrutura interativa permitindo uma navegação lógica e intuitiva
(FALKEMBACH, 2005). Fase de Encerramento – neste ponto o software já está em funcionamento, testado e
corrigido. A equipe de desenvolvimento é responsável por confeccionar o manual do usuário e oferecer treinamento para todos aqueles que irão utilizar o sistema.
Este projeto iniciado em agosto de 2008 visa atender o desenvolvimento de um tipo peculiar de software,
os jogos eletrônicos. O desenvolvimento de um jogo eletrônico é um processo criativo e em vários pontos artístico, com fases semelhantes às de um software comum, porém processos convencionais de desenvolvimento, não
são adequados às necessidades desse tipo de projeto.(JUNIOR, 2002). No planejamento de jogos e simulações é
de vital importância definir e fixar os objetivos da atividade, a determinação do contexto desejado para a mesma,
a identificação dos recursos utilizáveis para se alcançar os objetivos finais e a determinação da seqüência de
interações, ou seja, uma fase de planejamento bastante criteriosa. A aprendizagem dos processos de desenvolvimento e da utilização das ferramentas necessárias é essencial para a evolução de um projeto de desenvolvimento
de jogos.(AMAZONAS, 2007).
O P@PGame tem sua base no P@PSI, com a união das melhores práticas das metodologias de desenvolvimento de games mais conhecidas no mercado, como o processo Cabal da Valve Software Valve (2007). A
estrutura do P@PGame é uma mescla das fases de Planejamento, Desenvolvimento e Encerramento do P@PSI
com o modelo de Game Design apresentado por Schuytema, (2008) e Perucia et al (2005). O processo está divido em três grandes fases, como mostra a figura 3: Pré-Produção, Produção e Pós-Produção.
O processo está sendo validado no desenvolvimento de um pequeno game, denominado Vivá (jogo para
evidenciar conceitos de ecologia e sustentabilidade), que encontra-se em sua fase de Produção. O projeto de
construção do jogo iniciou em outubro de 2009, com uma equipe liderada por acadêmicos do curso de sistemas
de informação do CEULS/ULBRA. Durante a fase de Pré-Produção todas as atividades foram realizadas, sendo
que após o Estudo de Viabilidade foram realizados brainstormings para produzir o Escopo do Jogo. A decisão
foi tomada a partir da análise do Roteiro que gerou o Documento de Design Inicial . Durante a atividade Priorização de Level da Fase de Produção, a equipe definiu que o game seria desenvolvido na mesma ordem cronológica do Roteiro, com isso, o I Capítulo está sendo desenvolvido. Após a atividade de Priorização de Level, iniciou-se a criação da arte conceitual dos personagens principais. No momento, os desenhistas trabalham na produção dos modelos conceituais dos personagens principais do 1º level, e o game designer está trabalhando no roteiro.
113
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
4.3 P@PGame – Processo Ágil para Games
4.3 P@PGame – Processo Ágil para Games
Este projeto iniciado em agosto de 2008 visa atender o desenvolvimento de um tipo peculiar de software,
os jogos eletrônicos. O desenvolvimento de um jogo eletrônico é um processo criativo e em vários pontos artístico, com fases semelhantes às de um software comum, porém processos convencionais de desenvolvimento, não
são adequados às necessidades desse tipo de projeto.(JUNIOR, 2002). No planejamento de jogos e simulações é
de vital importância definir e fixar os objetivos da atividade, a determinação do contexto desejado para a mesma,
a identificação dos recursos utilizáveis para se alcançar os objetivos finais e a determinação da seqüência de interações, ou seja, uma fase de planejamento bastante criteriosa. Aaprendizagem dos processos de desenvolvimento e da utilização das ferramentas necessárias é essencial para a evolução de um projeto de desenvolvimento de
jogos.(AMAZONAS, 2007).
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
O P@PGame tem sua base no P@PSI, com a união das melhores práticas das metodologias de desenvolvimento de games mais conhecidas no mercado, como o processo Cabal da Valve Software Valve (2007). A
estrutura do P@PGame é uma mescla das fases de Planejamento, Desenvolvimento e Encerramento do P@PSI
com o modelo de Game Design apresentado por Schuytema, (2008) e Perucia et al (2005). O processo está divido em três grandes fases, como mostra a figura 3: Pré-Produção, Produção e Pós-Produção.
Figura 3: Diagrama de atividades do P@PGame
5 CONSIDERAÇÕES FINAIS
Observa-se que a dificuldade de seguir um processo tradicional e definido tem sido um fator propulsor
de pesquisas para encontrar um meio termo entre o desenvolvimento caótico e a rigidez das regras da Engenharia de Software. A prática da customização entre processos já existentes é considerada uma disciplina na área de
desenvolvimento de sistemas.
Como identificado nos processos descritos anteriormente a caracterização de um processo se dá pela
intensidade de cada fluxo de trabalho dentro das fases que ocorre conforme as necessidades da aplicação. Assim
tem-se que a característica principal do P@PSIé a evidência da complementaridade entre Scrum, XP e Processo
Unificado. Enquanto XP não prevê análise de riscos, um sprint do Scrum ao ser organizado pelo fluxo do Processo Unificado analisa os riscos diariamente. As práticas do XP facilitam à equipe inexperiente o comportamento e relacionamento da equipe no dia a dia, como cliente presente, programação em pares, propriedade coletiva do código, reuniões em pé, integração diária, programação orientada por testes enquanto que a ordem dos
114
fluxos dada pelo Processo Unificado orienta as tarefas na seqüência do tempo. A natureza gerencial do Scrum
possibilita a visão das atividades como um todo, fazendo com que a equipe trabalhe com um objetivo bem focado.
O P@PGame procurou criar uma forma de nortear o desenvolvimento de um produto mais artístico do
que sistemático. Isso se deu pela união dos conceitos de metodologias ágeis previstas no P@PSI e no
P@PSEduc com os conceitos de Game Design e a metodologia do Cabal Process. Observou-se que é possível
utilizar um processo com equipes inexperientes em desenvolvimento, porém é necessário que um acompanhamento das atividades seja realizado por um membro da equipe que tenha conhecimento dos princípios e práticas
da engenharia de software. Desta forma é que se pode documentar as práticas positivas e as dificuldades para
possíveis melhorias no processo. Também ficou claro que mesmo com um bom Game Designer conduzindo o
projeto, é necessário capacitar a equipe que deve ser guiada por um processo adaptado às necessidades deste tipo
de software.
A dificuldade de se trabalhar pela primeira vez com um processo situa-se principalmente no fato de que
não se tem histórico de experiências já realizadas e portanto é vital que se documente todo o processo com relato
das dificuldades encontradas e das facilidades produzidas pelas regras. Assim foram elaborados relatórios de
dificuldades encontradas em cada aplicação e conforme as necessidades os processos P@PSI, P@PSEduc e
P@PGame estão sendo melhorados. A aplicação dos processos com vários sistemas e equipes diversificadas
deve ser prática permanente do grupo – GTA, para que boas experiências possam ser reproduzidas, relatadas e
aperfeiçoadas a cada período. O Grupo de Trabalho Ágil espera com esta pesquisa encontrar não soluções, mas
experimentar práticas capazes de facilitar a solução para sistemas específicos, enriquecendo os relatórios sobre
as tentativas de customização de processos e de busca por recursos facilitadores para os engenheiros de software.
Como trabalhos futuros pretende-se utilizar os relatos de experiências com os processos, considerar as
dificuldades e pontos positivos e criar templates (modelo de documento) para facilitar a utilização do processo
como documentação dos sistemas criados.
REFERÊNCIAS
Agile Manifesto, (2001). http://www.agilemanifesto.org/, acessado em 20 de maio de 2007.
AMAZONAS, D. S. Desenvolvimento de Jogos 3D em Java com a Utilização do Motor Gráfico
Irrlicht.Monografia apresentada em 2007 na Faculdade Lourenço Filho, Fortaleza. Disponível em:
http://www.flf.edu.br/midias/FLF.EDU/monografia.pdf. Acesso em 3 de novembro de 2008.
115
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
No P@PSEduc tem-se um fluxo de levantamento de requisitos e análise bastante criterioso e extenso
colocando a Fase de Planejamento como uma das mais importantes, pois é nesta fase que a função da equipe
psico-pedagógica irá definir o conjunto de requisitos a serem cumpridos. Como em um software educativo se
utiliza muitas mídias já prontas e ferramentas facilitadoras, o fluxo de implementação inclui mais a integração
dessas mídias do que propriamente criação de código. AFase de Encerramento do Processo para o software educativo tem como ponto principal o treinamento dos usuários, ou seja, a preparação dos professores, orientadores
pedagógicos, diretores de escolas, entre outros, para utilização correta do software, a fim de que ele alcance seus
objetivos reais.
AMBLER, S. Modelagem Ágil – Práticas Eficazes para a Programação Extrema e o Processo Unificado.
Porto Alegre: Bookmann, 2004.
ASTELS, D. et al. Extreme Programming: Guia Prático. Campus, 2002.
BASSANI, P. et al. “Em Busca de uma Proposta Metodológica para o Desenvolvimento de Software Educativo
Colaborativo”. Novas Tecnologias para a Educação. CINTED,UFRGS. V. 4 No 1. Julho de 2006.
BECK, K. Programação Extrema Explicada –Acolha as Mudanças, Bookman, 2004
BENITTI, F. et al. “Processo de Desenvolvimento de Software Educacional: Proposta e Experimentação”.
Novas Tecnologias na Educação. V.3 No1. Maio de 2005.
CABRAL, Fátima A. .Jogos Eletrônicos: técnica ilusionista ou emancipadora?.Revista da USP, São Paulo, v.
000, p. 00, 2003.
CHARETTE, R. Fair Fight?Agile Versus Heavy Methodologies.Cutter Consortium E-project Management
Advisory Service, 2, 13, (2001).
CREDIDIO, D. C. Metodologia de Design aplicada à concepção de jogos digitais. 2007.95 f. Tese (Mestrado
em Design). Universidade Federal de Pernambuco, Recife, 2007.
Perspectiva
PerspectivaAmazônica
Amazônica--Santarém
Santarémv.1
v.1n.1
n.1p.82-93
p.106-117
jul/dez
jan 2011
2010
FALKENBACH, G. “Concepção e Desenvolvimento de Material Educativo Digital”. Novas Tecnologias na
Educação. V.3 No 1. Maio de 2005.
GARCIA, F. P. et al. “easYProcess: Um Processo de Desenvolvimento para Uso no Ambiente Acadêmico”.
Anais do Workshop de Educação em Informática – WEI, 2004.
GELLER, M. et.al. “Proposta de Customização de um Processo de Desenvolvimento de Software Educativo”.
In Anais do XX Simpósio Brasileiro de Informática na Educação”. Florianópolis, SC - 2009, ISSN: 21764301. Disponível em: http://www.proativa.virtual.ufc.br/sbie2009/
HAZZAN,O e DUBINSKY Y. “Teaching a Software Development Methodology: The Case of Extreme Programming”. Proceedings of the 16th Conference on Software Engineering Educations and Training
(CSEE&T 2003), Madrid, Spain, 2003.
JUNIOR, A. et al. Um Estudo Sobre os Processos de Desenvolvimento de Jogos Eletrônicos. Universidade
Federal do Paraná. 2002. Disponível em: http://www.ademar.org/texts/processo-desenv-games.pdf. Acessoem 3 de
novembro de 2008.
KEENAN, Agile Process Tailoring and probLem analysis (APTLY). In Proceedings of the 26th International
Conference on Software Engineering (ICSE'04).
KRUCHTEN, P. Rational Unified Process made easy: A practioner's guide to the RUP, Addison-Wesley,
2003
NASCIMENTO, M. J. A. do. Modelagem De Ambientes Virtuais Para Jogos Eletrônicos. 2008. 59 f. Trabalho de Conclusão de Curso (Graduação em Engenharia da Computação) – Universidade Federal do Pará, Belém,
2008.
OLIVEIRA, A. et. al. Interface Homem Computador para Software Educativo. In IV Congresso Brasileiro de
Computação. CBComp 2004.
PAIVA, D.M.B et al. “Definido Implantando e Melhorando Processos de Software em Ambiente acadêmico”.
VI Simpósio Internacional de Melhoria de Processo de Software. São Paulo:2004.
PERUCIA, Alexandre Souza et al. Desenvolvimento de Jogos Eletrônicos: Teoria e Prática. 2. ed.São Paulo:
Novatec, 2007.
PRESSMAN, R.Engenharia de Software. 6a.ed. São Paulo: McGraw-Hill, 2006
SCHNEIDER, J.G and Johnston Lorraine. “eXtreme Programming at Universities – An Educacional Perspective”. Proceedings of de 25th Internacional Conference on Software Engineering. Portland, Oregon, 2003.
SCHUYTEMA, P. Design de Games: UmaAbordagem Prática. São Paulo: Cengage, 2008.
SCHWABER, K..Scrum Development Process, OOPSLA'95 Workshop on Business Object Design and
116
Implementation. Springer-Verlag, 1995.
SCHWABER, K. e BEEDLE, M. Agile Software Development with SCRUM, Prentice-Hall, 2002.
TELES, Vinícius M. Extreme Programming. São Paulo: Novatec, 2004.
WILLIAMS, L. et al. Agile Software Development. It's About Feedback and Change InIEEE Computer Society, june, 2003.
__________.
Va l v e S o f t w a r e .
SourceEngine,
2007
Disponível
em:
Perspectiva Amazônica - Santarém v.1 n.1 p.106-117 jan 2011
http://www.valvesoftware.com/sourcelicense/enginefeatures.htm. Acesso em 25 de outubro de 2008.
117
Download

Baixar