Escolar Documentos
Profissional Documentos
Cultura Documentos
Endereço:
R. Marquês de São Vicente, 225
Instituto Gênesis, Sala 27B
PUC-Rio, Gávea
atendimento@primeup.com.br
ww
www.primeup.com.br
EDITORIAL
“No inicio da produção de software (1960) não havia se pensado em estru-
turas formais de desenvolvimento de software. Existia no mercado a necessi-
dade de softwares cada vez maiores e com essas necessidades aumentadas,
começaram a se tornar mais constantes os problemas e prejuízos com os
atrasos e cancelamentos nos projetos de software. A solução foi a criação da
Ano 1 - 7ª Edição 2008 impresso no Brasil
Engenharia de Software que tinha como principais objetivos definir proces-
sos, métodos e ferramentas para a produção de software com a qualidade es-
perada pela indústria. Com o aumento da qualidade foi introduzido um aper-
Corpo Editorial
feiçoamento contínuo de métodos, técnicas e artefatos (PRESSMAN, 2006).
Colaboradores Nos dias atuais, com a necessidade de se alcançar maior competitividade
Rodrigo Oliveira Spínola e qualidade na construção de software as empresas nacionais sentem-se na
rodrigo@sqlmagazine.com.br obrigação de modificar suas estruturas organizacionais e processos produtivos
Marco Antônio Pereira Araújo para que se adaptem ao tamanho e características dos projetos sem perder
Eduardo Oliveira Spínola os padrões de qualidade exigidos tanto nacional, como internacionalmente.
Com todas essas necessidades foi criado o MPS.BR , um modelo de maturidade
Editor de Arte
nacional com padrões de qualidade internacionais no qual as empresas se cer-
Vinicius O. Andrade - viniciusoandrade@gmail.com
tificam em diferentes níveis de acordo com seu grau de maturidade.
diagramação Hoje no Brasil, mais de 100 empresas possuem certificação MPS e estas certi-
Romulo Araujo - romulo@devmedia.com.br ficações, mesmo para os níveis menos complexos, são extremamente difíceis.”
Capa
Neste contexto, a Engenharia de Software Magazine destaca nesta edição
Antonio Xavier - antonioxavier@devmedia.com.br uma matéria muito interessante que identifica as práticas mais utilizadas
por implementadores MPS para evidenciar as exigências do modelo de
na Web
maturidade brasileiro, visando auxiliar, orientar e minimizar as dificuldades
www.devmedia.com.br/esmag
Apoio enfrentadas na sua implementação. Desta forma torna-se possível promo-
ver um melhor entendimento por parte das empresas e dos implementa-
dores sobre como evidenciar os resultados exigidos para a certificação do
nível G do modelo MPS.
Além desta matéria, esta sétima edição traz mais sete artigos: Metodo-
logias Ágeis para Desenvolvimento de Software; Ideal Day e Priorização:
PARCEIROS: Métodos Ágeis no Planejamento; Ferramentas de Integração Contínua
tornando o Trabalho de Equipes mais Organizado; Avaliação Heurística de
Web Sites; Teste de Desempenho de Aplicações Web com Apache Jmeter;
Introdução à Gestão de Conhecimento – Parte 2; Apoiando a Implementa-
ção do Modelo de Maturidade MPS Nível G.
ÍNDICE
08 - Ideal Day e Priorização
Fernanda Alves, Márcia Alves e Isabella Fonseca
É importante que se compreenda que (Prog ra m Evaluat ion a nd Review deve aprender como interagir melhor
o “Dia Ideal”, com 08 (oito) horas de Technique); para a busca de entrega de maior retorno
trabalho sem interrupções, de um “de- • Utilização de balanceamento como de valor para o cliente. Se for necessário
senvolvedor ideal”, raramente irá ocorrer a técnica Cocomo (COnstructive COst utilizar de técnicas como pair-program-
na prática, e portanto deve ser utilizado Model). ming para agilizar o desenvolvimento e
unicamente como “moeda” estável para Irão contribuir para que um “Ideal validação de um requisito, o time deve
quantificação de tamanho de referência Day” não aconteça, na prática, em um escolher este caminho. Também se pode
e balizador ideal de produtividade. dia típico: utilizar peer-review para verificações e
É uma estimativa empírica, executad • Natureza humana do desenvolvedor validações, assumir outro papel (trocar
por especialistas (“Expert Judment”) (comer, beber, alongar, socializar, sono, de “chapéu” dentro da equipe) para con-
para desenvolvimento com base em “ex- mal-estar eventual, etc); vergir para o objetivo definido.
ploração adaptativa”. Segundo estudos • Deficiências técnicas do desenvolve-
mais recentes da escola ágil, a estimativa dor (desconhecimentos do assunto ou Ideal Day e SCRUM
empírica é uma maneira sensata de se tecnologia específicos); O SCRUM é um framework de processo
prever o tamanho de requisitos em uma • Interrupções da empresa (reuniões ágil utilizado para gerenciar e controlar o
dinâmica de “requisitos evolucionários”, administrativas, conversa com o ‘chefe’, desenvolvimento de um produto de sof-
com práticas de “exploração e adaptação”, ligações de clientes); tware através de práticas iterativas e incre-
especialmente se acompanhada por: • Interrupções pessoais. mentais. É composto por um conjunto de
• Realimentação iterativa da “velo- • etc... boas práticas de gestão que admite ajustes
cidade”, a partir de dados históricos, rápidos, acompanhamento e visibilidade
preferencialmente coletados durante o Dessa forma, a equipe deve ter sua ve- constantes e planos realísticos. Por ter
mesmo projeto para a mesma equipe; locidade medida pelo tempo gasto para ciclos (Sprints) curtos, sua natureza leva à
• Previsão sobre uma mesma “ordem se implementar um Ideal Day. Quanto utilização de requisitos de granularidade
de grandeza”, neste caso que não ultra- menos tempo, maior a velocidade, e pequena, aplicando o conceito de pilha
passe o espaço de algumas horas para maior a produtividade da mesma. Na – não há alocação prévia de recurso - des-
alguns poucos dias; realidade, não é importante conhecer a considerando a velocidade individual e,
• Realização de consenso entre es- velocidade individual e sim a média da portanto, favorecendo o uso de métodos
pecialistas, com técnicas de comunica- equipe. Para se manter uma unidade, não de estimativa, como Ideal Day.
ção e convergência como a do Pocker é interessante expor se um integrante exe- Seus artefatos principais são o Product
Planning; cuta suas atividades em mais ou menos Backlog e Sprint Backlog – artefatos que
• Utilização da técnica de PERT tempo. É uma dinâmica do grupo! Ele representam seus requisitos/atividades
Com a apropriação do Sprint, obtém-se mais dados históricos para conhecer a as iterações vão garantindo compartilha-
dados para calcular a velocidade padrão média de produtividade e de velocidade mento global, aprendizado contínuo e
do grupo. A Tabela 1 exemplifica os da- da equipe. tácito, além de evitar o famoso “dono do
dos apurados após implementação. A produtividade da Release pode ser código” – que no possível desligamento
De acordo com a Tabela 1, o recurso calculada como: da empresa, leva consigo toda a história
1 implementou os requisitos RF01 e Produtividade da Release = ID Reali- do desenvolvimento.
RF03, totalizando entrega de 0,6 ID. Já zados/ Número de Sprints. Por tudo isso, o SCRUM não é milagreiro.
o recurso 2, os RF02 e RF04, totalizando De acordo com o exemplo anterior, Quem contribui, em muito, para o sucesso
0,7 ID. Para calcular a nova velocidade, durante o sprint 1 a equipe manteve a de um projeto são as pessoas envolvidas: se-
após o Sprint, devemos considerar os produtividade planejada de 1,3 ID. Caso, jam desenvolvedores, gerentes, o corpo di-
dados da Tabela 2. a release tenha 3 sprints e a equipe entre- retor ou clientes. Todos devem estar cientes
Para concluirmos o cálculo da veloci- gar 0,9 ID no segundo e 1,1 ID no terceiro, do porquê utilizar as técnicas citadas neste
dade é preciso ainda considerar o tempo a produtividade média da release será: artigo: pair programming, peer review,
de retrabalho, ou seja, o tempo gasto em 1,3+0,9+1,1/3 = 1,1 ID. comunicação tácita, compartilhamento de
correções que terão um peso maior no código, entrega de maior valor de negócio,
cálculo da velocidade da equipe. Conclusão planejamento contínuo, etc. Estas são
Para isso, temos que a Fórmula para A partir de experiências vividas em somente algumas práticas que você pode
cálculo da velocidade é: nossa área, percebemos que planejar aplicar para complementar seu dia-a-dia
horas_realizadas + (horas_retrabalho continuamente traz grandes benefícios no gerenciamento de projetos.
* 1,3) / ID realizados tanto para o desenvolvimento do produ-
Com isso, tempos que: to quanto para seus clientes. A entrega Dê seu feedback sobre esta edição! eu
Feedback
s
Recurso 1 = 6 + 0 / 0,6 = 10 horas de maior valor de negócio é assegurada
Dê
A Engenharia de Software Magazine
sobre e
Recurso 2 = 5,5 + 0 / 0,7 = 7,8 horas e ela acontece mais rapidamente. Além
tem que ser feita ao seu gosto.
Média da equipe = 8,9 horas. disso, utilizando medidas de tamanho,
s
ta
edição
Para isso, precisamos saber o que você,
como Ideal Day, o planejamento se
leitor, acha da revista!
No próximo Sprint, a média a ser baseia na equipe e não em indivíduos,
Dê seu voto sobre este artigo, através do link:
considerada será a calculada no Sprint possibilitando o trabalho organizado
anterior (8,9 horas) e não mais empiri- em “pilha” de requisitos e atividades. www.devmedia.com.br/esmag/feedback
camente (10 horas). Obviamente, a aplicação deste conceito
A produtividade é extraída da avalia- requer planejamento e preparação da
ção do número de Ideal Days/Sprint. No organização além da capacitação de Referências
primeiro Sprint, a produtividade é igual todos os envolvidos para que haja a
Processo de Desenvolvimento de Software da Powerlogic
ao número de Ideal Days entregues. multidisciplinaridade necessária a este
Consultoria e Sistemas, versão PDS_P&D_v19.
Produtividade da equipe = 1,3 ID tipo de desenvolvimento.
Considerando a produtividade da Você pode estar se perguntando se sua Agile Estimating and Planning, Prentice Hall, 2006, Cohn , M.
equipe, no próximo Sprint será pos- equipe possui este perfil de homogeneida- Agile Development Blog / SCRUM, http://www.
sível alocar itens do Selected Backlog de. Provavelmente ainda não. Para que os targetprocess.com/blog/2004/12/iteration-velocitys-and-
que totalizem o número de Ideal Days resultados sejam positivos, é preciso que a user-story.html, acessado em 01/09/2008.
entregues no Sprint anterior – no nosso organização apóie e invista neste modelo.
exemplo, 1,3 ID. Ao final do mesmo, Em um primeiro momento, a velocidade Mike Cohn’s Blog http://blog.mountaingoatsoftware.
deve-se apurar novamente este número e da equipe pode ficar comprometida, pois com/?p=15, acessado em 12/09/2008.
fazer a média entre Sprints, atualizando ela ainda não trabalha da mesma forma, Artigo:“Por que SCRUM?”, ESM, 4ª. ed. (Agosto 2008)
sempre esta informação. tem-se perfis muito diferentes, experiên- escrito por Fonseca, I. e Campos, A.
Você deverá medir novamente e obter cias e conhecimentos diversificados. Mas
E
Michel dos Santos Soares
ste texto é sobre metodologias cionais e ágeis e sugere quando usar cada
Mics.soares@gmail.com
Graduado (2000 - UFSCar) e Mestre (2004 - ágeis para desenvolvimento de diferente tipo de metodologia.
UFU) em Ciência da Computação, atualmente software. Mas se existem meto-
(desde 2006) trabalhando como pesquisa- dologias ágeis, significa que existem Em que situação o tema é útil:
dor-doutorando (PhD Researcher) na Delft também as consideradas não-ágeis, O tema é útil para empresas e profissionais
University of Technology, em Delft, na Ho-
também conhecidas como pesadas ou que não utilizam nenhuma metodologia e
landa. Atuou como Analista de Sistemas para
sistemas Web e bancários, e como Professor tradicionais. Primeiramente, vamos têm experimentado problemas no desen-
Universitário no Brasil, nas áreas de Pro- definir o que é uma metodologia de volvimento de software, ou que queiram
gramação, Engenharia de Software e Quali- desenvolvimento de software. Posterior- descobrir qual tipo de metodologia é mais
dade de Software. Atualmente desenvolve mente, serão apresentadas as principais adequado para sua situação.
pesquisas na área de sistemas que usam
características das metodologias tradi-
intensamente software (Software Intensive
Systems) para o controle de infra-estruturas cionais e ágeis, além de exemplos das
críticas, aplicando métodos formais e semi- respectivas metodologias. resultem, após sua aplicação sistemática,
formais de Engenharia de Sistemas e de Sof- em software. A esse conjunto de tarefas
tware. É co-autor de um livro de Qualidade Metodologia (ou processo) de e atividades, mais ou menos organiza-
de Software, pela Novatec, atualmente na 2.a
edição, publicou diversos capítulos de livros
desenvolvimento de software das e sistematizadas, damos o nome de
e artigos científicos em congressos e revistas Para desenvolver software é necessário metodologia (ou processo) de desenvol-
científicas nacionais e internacionais. um conjunto de atividades e tarefas que vimento de software. Dependendo da
ágeis apresentam bons resultados. As metodologia inadequada. Por exemplo, mesmo grupo da empresa e até para
equipes que usaram XP foram mais profissionais que não se adaptam bem a cada tipo de projeto específico pode ser
produtivas e produziram software com práticas de equipe, como a programação a melhor escolha.
menos erros. Interessante ainda notar em duplas, podem ter muita dificuldade
que o tamanho do software final, em em aceitar a XP. A exigência de que a
termos de linhas de código, foi menor equipe não esteja geograficamente sepa- Dê seu feedback sobre esta edição! eu
Feedback
s
em equipes usando XP e Scrum quando rada cria sérias dificuldades, sobretudo
Dê
A Engenharia de Software Magazine
sobre e
comparado com equipes que usaram em grandes empresas onde isso é mais
tem que ser feita ao seu gosto.
metodologias tradicionais. comum. Essas empresas apresentam em
s
ta
edição
Para isso, precisamos saber o que você,
geral maiores resistências para adotar
leitor, acha da revista!
Problemas e Dificuldades metodologias ágeis.
Dê seu voto sobre este artigo, através do link:
As metodologias ágeis apresentam A prática da programação em pares
também alguns problemas [Soares, talvez seja uma das mudanças mais www.devmedia.com.br/esmag/feedback
2004a]. Muitos acreditam que essas radicais na XP. Profissionais mais ex-
metodologias sejam uma volta ao perientes acham a prática ineficiente. O
Referências
processo caótico de desenvolvimento problema torna-se maior quando existe
de software, conhecido também como uma diferença significativa de conheci- [Sommerville, 2003] Sommerville, I. Engenharia de
“codifica-remenda”. Esse modelo existe mento, experiência e mesmo capacidade Software Engineering. 6a. Edição. Addison Wesley, 2003.
principalmente em pequenas e médias entre os pares. Neste caso podem haver
organizações que não podem suportar desentendimentos e queda de produtivi- [Royce, 1970] Royce,W. Managing the Development of Large
os altos custos de desenvolvimento das dade. Ainda em relação a pessoas, uma Software Systems: Concepts and Techniques. Proc.WESCON,
metodologias tradicionais. crítica comum é que as metodologias IEEE Computer Society Press, Los Alamitos, CA, 1970.
O uso errôneo da XP pode inibir certas ágeis seriam adequadas somente para [Brooks, 1987] Brooks, F. No Silver Bullet: Essence and
práticas positivas de desenvolvimento, equipes e profissionais experientes, Accidents of Software Engineering. Proc. IFIP, IEEE CS Press,
como, por exemplo, a análise do proble- sendo ineficientes para novatos. 1987, pp. 1069-1076.
ma por meio de diagramas. Obviamente,
não se deve projetar diagramas que nun- Conclusão [Gilb, 1988] Gilb, T., Principles of Software Engineering
ca serão consultados, mas é importante Todas metodologias de desenvolvimen- Management, Addison-Wesley, 1988.
projetar alguns modelos que ajudarão to de software apresentam vantagens e [Standish Group, 1995] CHAOS report, 586 Olde Kings
no entendimento do problema. desvantagens, limites e restrições. Em Highway. Dennis, MA 02638, USA, 1995.
A informalidade no levantamento de geral, pode-se assegurar que ter uma
requisitos pode não ser bem vista pelos metodologia é melhor que não ter e de- [Standish Group, 2000] CHAOS report, USA, 2000.
clientes, que podem sentir-se inseguros pender de heróis, aqueles profissionais [Highsmith et al., 2000] Highsmith, J. Orr, K. Cockburn, A.
[Soares, 2004b]. Situação semelhante que resolvem facilmente os problemas, Extreme Programming, E-Business Application Delivery,
pode ocorrer com a refatoração de có- que possuem a confiança da organi- Feb., (2000), pp. 4-17.
digo, que pode ser interpretada pelos zação, mas que na prática não podem
clientes como amadorismo e incompe- sair de férias sem que problemas sejam [Schwaber e Beedle, 2002] Schwaber, K. e Beedle, M. Agile
tência. Segundo Beck, o criador da XP, há percebidos. Software Development with Scrum, Prentice-Hall, (2002).
ainda outros fatores que podem tornar a De forma geral, os resultados iniciais [Charette, 2001] Charette, R. Fair Fight? Agile Versus Heavy
do uso de metodologias ágeis, em ter- Methodologies. Cutter Consortium E-project Management
mos de qualidade, confiança, prazos de Advisory Service, 2, 13, (2001)
entrega e custo são promissores. Maiores
estudos ainda são necessários, em dife- [Dybå e Dingsøyr, 2008] Dybå, T e Dingsøyr, T. Empirical
rentes projetos, tamanhos da equipe e studies of agile software development: A systematic
com outras metodologias ágeis. Desta review Information and Software Technology Volume 50,
forma, os relatos de experiência podem Issue 9-10, Agosto 2008, p. 833-859.
ser úteis para organizações evitarem [Soares 2004a] Soares, M.S. Metodologias Ágeis Extreme
erros na adoção de metodologias ágeis. Programming e Scrum para o Desenvolvimento de
A empresa ou mesmo uma equipe Software. Ano III, Número 1, Novembro de 2004.
dentro da empresa precisa conhecer
seus próprios problemas, dificuldades, [Soares 2004b] Soares, M.S. Comparação entre
limitações e capacidades para escolher Metodologias Ágeis e Tradicionais para o Desenvolvimento
a metodologia que melhor convém. de Software. INFOCOMP - Journal of Computer Science.
Abordagens hí bridas, modificadas Vol.3, N.2, Novembro, 2004, p.8-13.
e adaptadas para cada empresa, ou
D
Andrew Diniz da Costa
iversas razões definem a pre-
andrew@les.inf.puc-rio.br
Técnico em Informática pelo Instituto Brasileiro sença de grandes grupos de
de Pesquisa em Informática (IBPI). Possui gra- desenvolvedores em uma mes-
duação em Bacharelado de Informática pela ma equipe para a criação de sistemas,
Pontifícia Universidade Católica do Rio de Janei- tais como, tamanho, prazo de entrega
ro (PUC-Rio). Mestre e aluno de doutorado em
solicitado pelo cliente, etc. Assim,
Informática da PUC-Rio. Desempenha o papel
de pesquisador e líder de tecnologia na área de a necessidade de desenvolvedores
testes do escritório de qualidade de software do trabalharem em conjunto de forma
Laboratório de Engenharia de Software (LES). organizada está presente em nosso dia
Co-autor: Carlos J. P. de Lucena Possui experiência em desenvolvimento Java, Vi- a dia. Pensando nisso, como um pro-
Possui graduação em Economia Matemática sual Basic, Delphi, ASP e C, além do uso de SGBDs,
pela Pontifícia Universidade Católica do Rio de jeto pode ter uma equipe organizada
como, SQL Server e Oracle.
Janeiro (1965), mestrado em Informática pela enquanto que um mesmo código fonte
University of Waterloo (1969), doutorado em Co-autor: Arndt Von Staa é compartilhado? Existem ferramentas
School Of Engineering And Applied Sciences pela Professor do Departamento de Informática da que auxiliem nesse processo? Caso
University Of California At Los Angeles (1974) e PUC-Rio. É PhD em Ciência da Computação (1974,
existam, quais seriam?
pós-doutorado pela IBM (1975). Atualmente é Engenharia de Software) pela Universidade de
professor titular da Pontifícia Universidade Cató- Waterloo, Ontário, Canadá. Atua em computação Para responder todas essas perguntas,
lica do Rio de Janeiro. Em sua carreira atuou como desde 1962. Suas atividades de pesquisa e de- podemos citar o conceito de integração
vice-reitor da Universidade, Decano do Centro senvolvimento mais recentes concentram-se em contínua, bastante utilizado por proces-
Técnico e Científico e por várias vezes Diretor do técnicas de controle da qualidade de software, sos ágeis, tais como Extreme Program-
Departamento Informática. Foi premiado com a em métodos e processos de desenvolvimento de
ming. A idéia principal consiste em
insígnia da Classe Grã-Cruz da Ordem do Mérito software de qualidade assegurada e em ambien-
Científico da Presidência da República do Brasil, tes de desenvolvimento de software assistidos integrar o trabalho realizado por várias
com a Medalha Carlos Chagas Filho de Mérito por computador. Até julho de 2008 publicou mais pessoas durante diversos momentos do
Científico, Diretoria e Conselho Superior da FA- de 80 artigos arbitrados completos em veículos dia, e realizar testes que permitam asse-
PERJ, com o Prêmio Álvaro Alberto de Ciências e nacionais e internacionais, cinco livros e nove ca- gurar que o código continue consistente
Tecnologia do Ministério de Ciência e Tecnologia pítulos de livros.Tem 14 softwares desenvolvidos
ao final de cada integração.
e com vários prêmios IBM Innovation Award, den- sem registro de patente. Orientou 62 dissertações
tre muitos outros.Publicou mais de 400 trabalhos, de mestrado e sete teses de doutorado. Coordena A forma ideal para aplicar integração
além de orientar até 2008, 34 teses de doutorado diversos projetos de pesquisa e desenvolvimento contínua é através do uso de diversas
e 89 dissertações de mestrado. em parceria com empresas. ferramentas, tais como, controle de
20 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
ProjEto
<cruisecontrol>
...
<property name=”projectdir”
value=”${env.CCDIR}/checkout/
${project.name}”/>
<property name=”testdir”
value=”${projectdir}/build/
junit-reports”/>
...
<project name=”project1”/>
Figura 2. Página JSP para notificação. ...
<log>
<merge dir=”${testdir}”>
</log>
integração com diferentes controles de ferramenta permite que caso o projeto
<modificationset quietperiod=”1” >
versão, além de realizar notificações de tenha sofrido mudanças no repositório, <compound
includeTriggerChanges=”false”>
diferentes formas, quando, por exem- a última versão seja utilizada para a <triggers>
<filesystem
plo, alguma falha acontece durante a execução do seu build. Caso aconte- folder=”./mod_file.txt” />
execução de um job. çam falhas durante um build, o Cruise </triggers>
<targets>
Cruise Control é dividido em três Control permite que seja definido se <cvs cvsroot=”:pserver:
user@cvs_repo.com:/cvs” />
partes principais: (i) configuração do sua execução deve continuar ou se deve </targets>
</compound>
build dos projetos em um arquivo xml ser cancelada. </modificationset>
chamado “config.xml”, (ii) geração de Outras funcionalidades interessantes
<schedule>
relatórios que descrevem o que aconte- que podem ser definidas é a possi- <ant
antscript=”C:\Java\
ceu na execução de builds, (iii) além de bilidade de excluir arquivos gerados apache-ant-1.6.1\bin\ant.bat”
permitir o acompanhamento do status em execuções anteriores de um build antworkingdir=”D:\
workspace\MyProject”
dos builds de diferentes projetos a partir (exemplo: arquivos de log), assim como buildfile=”MyProject-build.xml”
uselogger=”true”
de uma página web (dashboard). especificar qual será o diretório que os usedebug=”false”/>
</schedule>
Quando algum desenvolvedor deseja novos artefatos a serem gerados serão
executar o build de um projeto, o pri- armazenados em futuras execuções. <publishers>
<htmlemail>
meiro passo é configurar a sua execução Podem ser guardados tanto localmente, <always
address=”desenvolvimento@gmail.com”>
no arquivo config.xml. Diversos tipos como também em diretórios remotos (ex: <failure
address=”suporteles@gmail.com”>
de tags são oferecidos para que seja FTP). Uma funcionalidade diferenciada </htmlemail>
possível definir qual sistema de build é a possibilidade de realizar um merge </publishers>
</project>
será usado (Ant, Maven, Maven2, NAnt de um log gerado pelo próprio Cruise
</cruisecontrol>
ou Phing) e qual controle de versão Control com os resultados obtidos de
(AccuRev, AlienBrain, ClearCase, CVS, um build que realiza testes unitários Outro ponto importante oferecido
Perforce, PVCS, StarTeam, Subversion com JUnit utilizando o sistema Ant. A é o serviço de notificação. Toda vez
ou Visual Source Safe). Além disso, a utilidade desse merge é a oportunidade que acontece uma execução de um job,
22 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
ProjEto
24 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
ProjEto
26 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
Projeto
Control é dentre as três, aquela que por exemplo, suporte para testes utili- compostas por desenvolvedores. Tais
oferece mais funcionalidades, enquan- zando JUnit e TestNG. ferramentas permitem que projetos
to que o Continuum oferece maior tenham seus builds executados, realize
suporte para projetos que trabalham Conclusão controles de versão, acompanhe testes
com Maven 1 e Maven 2, e o Hudson Nesse artigo foram apresentadas três executados, realize notificações sobre
apresenta a interface web mais amigá- ferramentas de integração contínua as execuções, especifique data e horário
vel para uso, além de oferecer diversas amplamente usadas no mercado e que que um build deve ser executado auto-
funcionalidades interessantes, como, ajudam a organizar trabalhos de equipes maticamente, etc.
Em diversas situações torna-se uma dor
Links de cabeça para equipes de desenvolvimen-
to a integração dessas funcionalidades
Cruise Control Site Apache Maven Project Site para a gerência de um ou mais projetos.
http://cruisecontrol.sourceforge.net/ http://maven.apache.org/
Assim, uma ótima solução é o uso das
Apache Continuum: Continuous integration and Build Server Site The Apache Ant Project Site ferramentas de integração contínua.
http://continuum.apache.org/ http://ant.apache.org/
Hudson: an Extensible Continuous Integration Engine Site Apache Maven Project Site
https://hudson.dev.java.net/ http://maven.apache.org/ Dê seu feedback sobre esta edição! Feedback
eu
s
Dê
Artigo “Integração Contínua”,escrito por Vinícius Manhães Teles CVS – Concurrent Versions System
A Engenharia de Software Magazine
sobre e
http://www.improveit.com.br/xp/praticas/integracao http://www.nongnu.org/cvs/
tem que ser feita ao seu gosto.
s
ta
Integração Contínua: Desenvolvimento Ágil Subversion Para isso, precisamos saber o que você,
edição
http://devagil.wordpress.com/2007/04/14/4611-integracao- http://subversion.tigris.org/
continua/
leitor, acha da revista!
Extreme Programming> A Gentle Introduction Dê seu voto sobre este artigo, através do link:
JUnit http://extremeprogramming.org/
http://www.junit.org/ www.devmedia.com.br/esmag/feedback
Linguagens de programação que oferece suporte. Java, Ruby/Rails e .Net Java Java
Sistemas Operacionais. Windows e Unix Windows e Unix Windows e Unix
Ferramentas de build. Ant, NAnt, Maven 1, Maven 2, Shell Script Maven 2, Maven 1, Ant e Shell Script. Maven 2, Maven 1, Ant, Shell Script e Batch command
do Windows.
(i) Oferece suporte para JUnit e TestNG; (ii) gera
Realiza um merge dos testes gerados pelo JUnit Gera documentação de testes para projetos relatórios de testes, que podem ser tabulados, su-
Suporte para testes. de um Ant com um arquivo de log gerado pelo que usam Maven 1 e Maven 2. marizados e indicados com informações de histórico;
Cruise Control. (iii) criação de um gráfico contando detalhes de cada
teste na documentação.
(i) Especificar se ao encontrar uma falha no (i) Disponibilizar relatórios de testes (i) Integração com geração de Javadoc; (ii) definir onde
build, continua ou para a execução; (ii) atuali- unitários; (ii) criação de grupos de acesso; os arquivos empacotados (ex: .war, .jar), criados a partir
Funcionalidades interessantes. zar o arquivo de build de um projeto através de (iii) acompanhamento em tempo real da execução de algum build, devem ser armazenados,
um repositório, antes de sua execução; (iii) da execução de um build através de um (iii) acompanhamento em tempo real da execução de
console, etc. um build através de um console, etc.
Configuração realizada em um arquivo xml. Configuração realizada em um arquivo
Configuração dos projetos. Curva de aprendizado inicial pode ser maior xml. Curva de aprendizado inicial pode ser Configuração realizada em uma interface amigável.
que o normal, no entanto, depois a configura- maior que o normal, no entanto, depois a
ção se torna-se fácil. configuração se torna-se fácil.
AccuRev, AlienBrain, ClearCase, CVS, Perforce, Clearcase, CVS, Local, Perforce, Starteam,
Ferramentas de controle de versão. PVCS, StarTeam, Subversion, Visual Source Subversion, Visual Source Safe. CVS e Subversion.
Safe.
Formas de extensão. Código fonte fornecido para extensões. - Código fonte fornecido para extensões
Possibilidade de utilizar plugins. Possibilidade de utilizar plugins.
Formas de notificação. Email, Weblog, Yahoo IM message, Html, JSP. Email, IM (IRC, Jabber, MSN). Email, RSS, IM Integration.
Tabela 1. Tabela comparativa das ferramentas de integração contínua.
U
de experiência profissional, é autor do livros Ar-
quitetura de Software e Programando com XML,
m requisito essencial no pro- para identificar problemas de usabilidade
ambos pela Editora Campus/Elsevier, tem mais jeto da interface de usuário de que, geralmente, comprometem o bom
de 30 artigos publicados em eventos nacionais sistemas de software e, especifi- uso e desempenho de usuários.
e internacionais, colunista para Ciência e Tecnolo- camente, em web sites é prover usuários
gia pela Revista Espaço Acadêmico com mais de
60 artigos publicados, tendo feitos palestras em
com facilidade de uso de modo que o Usabilidade de Web Sites
eventos nacionais e exterior. Foi Professor Visitan-
usuário possa rapidamente encontrar a Os projetistas de interface consideram
te da University of Texas at Dallas e da University informação buscada ou realizar uma tare- recomendações de projeto de interfaces
of Ottawa. Formado em Engenharia Elétrica pela fa. Fazer isso implica em tornar a interface e heurísticas de usabilidade durante o
Universidade de Pernambuco, com Mestrado em intuitiva oferecendo suporte à usabilida- projeto de sistemas de software e, em
Engenharia Elétrica pela Universidade Federal de. Este artigo explora o uso da avaliação específico, de web sites. Diferentes perfis
da Paraíba (Campina Grande), Mestrado em En-
genharia da Computação pela University of Wa-
heurística como método de inspeção da de usuários impõem dificuldade adicio-
terloo e Doutor em Ciência da Computação pela usabilidade de web sites. O objetivo do nal no projeto de interfaces devido à ne-
Univesidade Federal de Pernambuco. artigo é usar um conjunto de heurísticas cessidade de tornar a interface intuitiva
para a ampla variedade de usuários. • Visibilidade do estado do sistema – Prover o usuário de feedback apropriado.
Os seres humanos possuem uma
ampla variedade de habilidades que • Casamento do sistema com o mundo real – Utilizar termos, objetos e conceitos familiares
os diferenciam uns dos outros. Essas à linguagem do usuário.
diferenças podem ser categorizadas
• Controle e liberdade de escolha do usuário – Oferecer recursos como Undo que permita o
em termos culturais, idade, gênero, usuário desfazer ações realizadas e retornar, por exemplo, a revisão anterior de um documento.
personalidade, habilidades cognitivas,
entre outros. Quando se fala em prover • Consistência e aderência a padrões – Seguir recomendações dadas em guidelines e guias
usabilidade, o foco recai, principal- de estilo, visando prover suporte à consistência.
mente, sobre as habilidades cognitivas
• Prevenção de erros – Identificar e eliminar situações que possam levar a erros do usuário.
e sensoriais dos usuários, isto é o que
torna a realização de uma tarefa ser algo • Flexibilidade e eficiência de uso – Considerar a diversidade de usuários (novatos e
simples e intuitivo. experientes), provendo mecanismos apropriados, como o uso de teclas de atalho, ícones e
Note que a usabilidade é uma ca- menus.
racterística através da qual o usuário
• Estética e projeto minimalista - Não adicionar informações desnecessárias ou raramente
percebe quão intuitivo e fácil de usar utilizadas, que competem com informações relevantes.
é um produto como, por exemplo, um
web site, e expressa sua satisfação no • Prover ajuda aos usuários de reconhecimento, diagnóstico e recuperação de erros –
uso deste site. Usabilidade resulta em Mensagens de erro devem ser construtivas, sugerindo solução para o usuário.
simplicidade e agilidade.
• Ajuda e documentação – Prover documentação e recursos de ajuda, facilitando a busca e
Projet i sta s de i nterface e, espe - com foco nas tarefas do usuário.
cificamente, de web sites conside-
ram recomendações e heurísticas de Figura 1. Heurísticas de Usabilidade propostas por Jakob Nielsen.
user interface guidelines. Observe que é este exemplo, o projetista poderia ter utilizando-se de palavras de conteúdo
natural aos usuários ficarem confusos usado apenas o texto “Consulte imóveis já apresentado no próprio site, ainda
quando eles se deparam com situações para aluguel”. No entanto, ele faz o uso assim nada é retornado. Apenas será
de inconsistências no projeto da inter- não recomendado do termo “Clique aqui exibido um grande espaço em branco
face. Portanto, isso deve ser evitado. e consulte imóveis para aluguel”. sem qualquer conteúdo, como mostrado
Usuários retornam ou recomendam na figura.
um Web site quando eles são capazes Prevenção de erros Cabe destacar que nem sequer é dada a
de facilmente localizar as informações Os projetistas de interface devem pre- informação ao usuário de que o site não
procuradas e quando há consistência venir erros de usuários. Para tanto, eles tem qualquer informação daquele con-
na forma em que o conteúdo do site é procuram identificar e eliminar situa- teúdo buscado. Se essa funcionalidade
apresentado aos usuários. ções que possam levar os usuários a co- não está disponível, o usuário deveria
Considere, como exemplo, uma reco- meterem erros. Considere, por exemplo, ser informado, visando evitar esse tipo
mendação conhecida que sugere o pro- a Figura 9 que ilustra parte de um site de situação.
jetista evitar fazer uso do termo “Clique de conteúdo com diversas informações.
aqui” como âncora para links. Esse é um O site contém uma janela que permite Flexibilidade e eficiência de uso
problema menor de usabilidade, já que ao usuário efetuar uma busca como Os projetistas de Web sites devem
apenas um texto curto representativo do destacado na figura. considerar a diversidade de usuários
conteúdo deveria ser usado como âncora Contudo, ao digitar qualquer palavra(s) que compreendem novatos e experien-
para um link. Um exemplo desse pro- para consulta, nada é retornado ao tes. Dessa forma, recomenda-se prover
blema é encontrado na página de uma usuário, como ilustrado na Figura 10. os usuários com maior flexibilidade
imobiliária mostrada na Figura 8. Para E, se quaisquer outras palavras, mesmo nas formas de acesso às informações e
funcionalidades. Pode-se destacar, em é um exemplo do que não se deve fazer essencial a sites que contêm grande
locais mais proeminentes da interface, em termos de uso cores, da enorme quantidade de informações. Embora
a localização de objetos de interação quantidade de informações (competin- o usuário pudesse pensar e checar o
como ícones e botões de acesso a fun- do pela atenção do usuário) e uso de ícone contendo um sinal de + no canto
cionalidades. A Figura 11 ilustra parte ícones nada representativos. superior direito do site, como mostra-
de um site de uma instituição de ensino do na figura. Esse ícone é usado para
na qual o usuário não encontra o mapa Prover ajuda aos usuários para busca avançada.
do site facilmente. Geralmente, o mapa reconhecimento, diagnóstico e
do site é posicionado no canto superior recuperação de erros Comentários Finais
direito da interface. Após observar todo Usuários precisam ser informados de As heurísticas de usabilidade apre-
o site, o usuário poderá encontrar o mapa maneira adequada em situações de erro sentadas neste artigo tratam de pro-
do site no canto inferior esquerdo em e indisponibilidade de serviços. Esse blemas de usabilidade que podem ser
local não proeminente, como destacado tipo de mensagem deve ser fornecida encontrados em Web sites, como em
na figura. ao usuário visando orientá-lo de como outros produtos. Essas heurísticas
Vale ressaltar que o projetista colocou proceder numa situação de erro ou servem como recomendações e, por-
um ícone e ao lado o título indicativo notificando-o quando da não disponi- tanto, requer a atenção do projetista
da funcionalidade, visando facilitar o bilidade de serviço. Um exemplo disso no desenvolvimento de interface de
entendimento do significado do ícone, foi mostrado na Figura 10 onde nenhum um Web site ou outro produto. As
que nem sempre é intuitivo. conteúdo da busca é retornado e qual- heurísticas estão diretamente rela-
Isso, contudo, não foi considerado pelo quer outra mensagem é dada ao usuário cionadas a necessidades do usuário
projetista do site, mostrado na Figura 12. informando-o da indisponibilidade do quando interagindo com uma apli-
Este Web site de outra instituição não apre- serviço de busca. cação. Con siderá-las no projeto é
senta qualquer rótulo ou pequeno texto manter o foco no usuário. Utilizar
explicativo para o referido ícone, indicado Ajuda e documentação essas heurísticas na avaliação é dar
na Figura 12. Se um rótulo fosse adiciona- Prover recursos de ajuda que facili- oportunidade ao avaliador de checar
do ou se uma janela com texto explicativo tem o acesso a informações e funcio- se a usabilidade está sendo suportada
fosse apresentada ao usuário quando ele nalidades em uma aplicação ou Web e também fornecer a oportunidade de
posicionasse o mouse sobre o referido site é uma necessidade. Isso pode ser corrigir problemas identificados.
ícone, ele teria um melhor compreensão na forma de documentação de aju-
do Web site e poderia mais facilmente da como em “respostas a perguntas
localizar a informação procurada. freqüentes”, também conhecida com Dê seu feedback sobre esta edição! eu
Feedback
s
Dê
A Engenharia de Software Magazine
Estética e projeto minimalista
sobre e
em mapas de sites. É uma boa prática
tem que ser feita ao seu gosto.
Simplicidade é uma palavra chave no manter um foco nas tarefas que o usu-
s
ta
edição
Para isso, precisamos saber o que você,
projeto de interface de usuário e, para ário pode precisar e, portanto, prover
leitor, acha da revista!
isso, os projetistas devem considerar o esses recursos de apoio.
Dê seu voto sobre este artigo, através do link:
projeto minimalista, no qual ele coloca A Figura 14 mostra parte de um site
apenas no primeiro plano (isto é, na de uma instituição de ensino que não www.devmedia.com.br/esmag/feedback
página principal) as informações mais fornece o recurso de mapa do site,
relevantes. Essa prática é recomenda-
da porque tudo o que é colocado em Links
primeiro plano, ou na página princi-
Heuristics for User Interface Design
pal, compete pela atenção do usuário.
http://www.useit.com/papers/heuristic/heuristic_list.html
Portanto, recomenda-se não adicionar
informações desnecessárias ou rara- Design Guidelines for the Web
mente utilizadas ou consultadas pelos http://www.usabilitynet.org/tools/webdesign.htm
usuários, pois estas competem com Apple Computer, Inc., Introduction to Apple Human Interface Guidelines
informações relevantes. http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/chapter_1_section_1.html
Um exemplo disso é mostrado na
Sun Microsystems, Inc., Java Look and Feel Design Guidelines http://java.sun.com/products/jlf/ed1/dg/higtoc.nf.htm
Figura 13 que ilustra parte de um site
no qual há um excesso de informações NASA Goddard Space Flight Center - Usability Engineering Center – Handbook for Designing a Usable Web Site
e essas são distribuídas de maneira http://software.gsfc.nasa.gov/AssetsApproved/PA2.3.1.2.pdf
desordenada, além de uso excessivo de
Usability.gov
cores. E, observe que a figura mostra
http://www.usability.gov/
apenas parte do conteúdo do site. Isso
A
tualmente, há uma exigência fase de implantação do sistema.
cada vez maior quanto à boa Nesse artigo faremos um est udo
Marco Antônio Pereira Araújo qualidade e conseqüente confia- de caso a fim de demonstrar um dos
maraujo@granbery.edu.br
É Doutorando e Mestre em Engenharia de Siste- bilidade dos softwares produzidos. Na tipos de teste de software, o teste de
mas e Computação pela COPPE/UFRJ, Especia- busca dessas características necessárias, desempenho, através da configuração
lista em Métodos Estatísticos Computacionais e existem etapas importantes no ciclo de e utilização da ferramenta Apache
Bacharel em Matemática com Habilitação em desenvolvimento de software que devem JMeter. A versão da ferramenta a ser
Informática pela UFJF, Professor do Curso de Ba-
ser observadas de perto, dentre elas, a abordada neste artigo será a 2.3.2, e
charelado em Sistemas de Informação da Facul-
dade Metodista Granbery, Analista de Sistemas fase de testes. Existem vários tipos de pode ser encontrada para download no
da Prefeitura de Juiz de Fora, Editor da Engenha- teste de software, que abrangem desde o site http://jakarta.apache.org/jmeter.
ria de Software Magazine. levantamento de requisitos até o fim da Para utilizar a JMeter, deve-se observar
36 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE
os requisitos mínimos, devendo estar particular. São armazenados tempora- de caixa preta selecionando “Functional
instalado a JVM (Java Virtual Machi- riamente, e não são salvos no momento Test Mode”.
ne). Essa versão da JMeter suporta que o plano de teste é salvo, tendo Para o início da configuração dos
testes de desempenho em aplicações função de apoio à elaboração de planos testes, deve-se incluir elementos ao Tes-
Web (HTTP/HTTPS), FTP, JDBC, LDAP, de testes. tPlan. São eles:
Java e JUnit. O TestPlan é onde são definidos to- Thread Group: simulará os usuários
Após o download do arquivo Zip, dos os testes que irão ser executados. que irão executar os testes. Nele podem-
basta descompactar e abrir a pasta Agrupa todos os elementos possíveis se configurar quantos usuários irão
bin, clicando no executável chamado de configuração dos samplers, tais como: fazer as requisições, o tempo total do
ApacheJMeter.jar. A janela inicial da controladores, listeners, assertions, dentre grupo de requisições e quantas vezes
ferramenta, além do menu superior, já outros, que serão abordados ao longo do o teste será executado. Ao selecionar
conta com uma árvore com dois elemen- artigo. O TestPlan pode ser configurado a opção “Scheduler” pode-se ainda
tos principais: Teste Plan e WorkBench para que as threads sejam executadas de indicar a hora que irá iniciar e terminar
(ver Figura1). maneira seqüencial ao invés de simul- o teste. É no Thread Group que podem
O WorkBench é uma área onde os taneamente, selecionando “Run Thread ser incluídos os elementos Sampler
itens existentes não são considerados Groups consecutively”, e é possível a que farão as requisições físicas de um
como parte de um plano de testes em configuração da ferramenta para testes determinado servidor. Podem–se ainda
38 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE
Criando um teste
Para exemplificar a utilização da fer-
ramenta, será utilizado um aplicativo
Web previamente construído com acesso
a um banco de dados. Primeiramente,
serão configurados testes para serem
aplicados neste sistema que acessa o
banco de dados e grava os dados de um
formulário contendo nome e email.
Inicialmente, clicando com o botão
direito sobre TestPlan, adiciona-se um
HTTP Request Defaults, localizado dentro
do grupo Config Element. Este elemento
serve para evitar que se adicionem
vários HTTP Request com as mesmas
configurações de servidor. Todas as
requisições dos testes serão feitas a um
mesmo servidor já configurado neste
elemento. Como estamos utilizando um
servidor local, configura-se o campo Figura 5. Configuração do HTTP Request Usuário Marcos.
“Server name or ip” com “localhost”
(ver Figura 2).
Em seguida adicionamos um Thread segundos. Não serão configurados os de três registros diferentes, e como ca-
Group. Na janela que se abrirá, defini- horários de início e término do teste, racterística comum, somente o campo
mos o nome desse grupo de teste para que será disparado manualmente (ver “Path” com “/sistema/salvarPessoa.
“Gravação”, a quantidade de usuários Figura 3). php”, que representa a página da
que farão as requisições em 1000, e o Neste teste, serão utilizados três aplicação a ter seu desempenho tes-
tempo total dessas requisições para 2 HTTP Request para simular o cadastro tado. Este elemento é responsável por
40 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE
42 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE
é de 24 milissegundos e o do Usuário
Roberto de 48 milissegundos. Já o
tempo máximo do cadastro do Usu-
ário Marcos é 18431 milissegundos,
enquanto o do cadastro do Usuário
Lúcia é de 16598 milissegundos e o do
Usuário Roberto 16771 milissegundos.
Com isso é possível comparar dife-
rentes comportamentos de diferentes
requisições, todos efetuando a mesma
ação. Numa aplicação real, pode-se
avaliar o comportamento de diferentes
páginas de uma aplicação Web, não
necessariamente à mesma página como
apresentado neste estudo de caso.
Iremos agora demonstrar o Graph Result
(ver Figura 11). Ele mostra as linhas dos
três grupos de requisições em diferen-
tes posições. Por isso é bom que ele seja
colocado também como filho de um Figura 12. View Results in Table.
HTTP Request, já que aqui são mostrados
dados correspondentes a todos os Http e o estado da requisição. Observa-se sistema irá suportar o número de requi-
Request usados. os estados das requisições das threads, sições que os usuários poderão fazer.
Este tipo de gráfico apresenta uma indicando sucesso ou erro, sendo apre- Para isso, é necessário elaborar os testes
forma bastante útil de análise dos dados. sentadas pelo símbolo exibido na coluna de maneira que retratem a realidade do
O eixo vertical, por apresentar o tempo status. Caso algum erro ocorra durante uso da aplicação, sendo um importante
gasto pelas requisições, pode ser utiliza- o teste, esse também seria exibido no mecanismo de prevenção de falha por
do como balizador do desempenho da Summary Report por meio de porcenta- desempenho ruim ou insatisfação do
aplicação, possibilitando definir o que gem, ou seja, não seria possível saber usuário, possibilitando que a aplicação
é considerado aceitável para o tempo qual thread falhou. Com o View Results seja melhorada.
de resposta, confrontado com o com- in Table pode-se saber qual thread con-
portamento apresentado pelas linhas seguiu fazer a requisição ou não, além Dê seu feedback sobre esta edição! eu
Feedback
s
do gráfico. de exibir a média e o desvio padrão
Dê
A Engenharia de Software Magazine
sobre e
Iremos agora analisar outro tipo de total do teste.
tem que ser feita ao seu gosto.
Listener, chamado de View Results in Table
s
ta
edição
Para isso, precisamos saber o que você,
(ver Figura 12). Conclusão
leitor, acha da revista!
Com o View Results in Table, é possível Vimos neste artigo que a ferramenta
Dê seu voto sobre este artigo, através do link:
observar o estado de cada requisição JMeter auxilia o desenvolvedor a testar
feita. Ele exibirá as threads com seus res- se sua aplicação possui o desempenho www.devmedia.com.br/esmag/feedback
pectivos nomes, o tempo da requisição esperado, possibilitando saber se o
V
imos no artigo sobre gestão continuidade ao assunto e o foco será na
de conhecimento da edição discussão sobre as sete camadas de um
Rodrigo Oliveira Spínola 6 da Engenharia de Software sistema de gestão de conhecimento.
rodrigo@sqlmagazine.com.br Magazine que nos últimos anos, a ges- Conceitualmente um Sistema de Auxílio à
Doutorando em Engenharia de Sistemas e Com-
tão de conhecimento surgiu como um Gestão de Conhecimento pode ser dividido
putação (COPPE/UFRJ). Mestre em Engenharia
de Software (COPPE/UFRJ, 2004). Bacharel em Ci- dos principais focos de preocupação em sete camadas: interface, acesso e autenti-
ências da Computação (UNIFACS, 2001). Colabo- em grandes organizações. Isto por cação, inteligência colaborativa e filtragem,
rador da Kali Software (www.kalisoftware.com), que, mais do que a tecnologia, o co- camada de aplicação, transporte, integração
tendo ministrado cursos na área de Qualidade nhecimento é chave para companhias e por fim, os repositórios de dados. Esta
de Produtos e Processos de Software, Requisitos
que pretendem agregar valor a seus estrutura em camadas está mostrada na
e Desenvolvimento Orientado a Objetos. Consul-
tor para implementação do MPS.BR. Atua como produtos e serviços. Neste contexto, o Figura 1.
Gerente de Projeto e Analista de Requisitos em artigo apresentou algumas definições Cada camada possui seu próprio aparato
projetos de consultoria na COPPE/UFRJ. É Colabo- introdutórias à área de gestão de co- tecnológico para realizar suas funções
rador Engenharia de Software Magazine. nhecimento. Nesta edição, daremos e alguns destes meios já estão bastante
Referências
TIWANA, Amrit. The Knowledge Management Toolkit: Practical Techniques for Buildings a Knowledge Management System.
Prentice Hall, 2000.
SVEIBY, Karl; STORK, John; HILL, Patricia, et al. Gestão do Conhecimento: Um Novo Caminho. HSM Management, setembro-outubro, 2000.
DAVENPORT, Thomas; PRUSAK, Laurence. Working Knowledge: How Organizations Manage what They Know. Harvard Business
School Press, 1998.
DIXON, Nancy M. Common Knowledge: How Companies Thrive by Sharing what They Know. Harvard Business School Press, 2000.
N
o início da produção de sof- ao evidenciar as exigências do nível G temos o Aeroespacial, Mísseis Balísticos,
tware (1960) não havia se pen- deste modelo. Satélites (BOEHM e TURNER, 2004).
sado em estruturas formais de Além disso, o trabalho envolve uma A adoção de processos voltados à cons-
desenvolvimento de software. Existia pesquisa envolvendo o Guia Geral e o trução de software apresentou algumas
no mercado a necessidade de softwares Guia de Implementação do MPS, com deficiências em suas primeiras experi-
cada vez maiores e com essas necessida- o intuito de abordar as características ências de implementação por que, sem
des aumentadas, começaram a se tornar e diretrizes do modelo de Maturidade métricas, os processos ficavam sujeitos a
mais constantes os problemas e prejuí- MPS no tratamento e na evidência dos falhas nos orçamentos, gerenciamento, etc.
zos com os atrasos e cancelamentos nos resultados exigidos pelo modelo, quando Porém, ao longo do tempo, estes processos
projetos de software. A solução foi a da obtenção da certificação do nível G. sofreram significativo amadurecimento e
criação da Engenharia de Software que Como resultado, pretende-se que as atualmente são recomendados à atividade
tinha como principais objetivos definir informações geradas por este trabalho, de desenvolvimento de software.
processos, métodos e ferramentas para juntamente com os guias disponibiliza-
a produção de software com a qualidade dos pela SOFTEX, representem para as Principais Características dos
esperada pela indústria. Com o aumento empresas, uma oportunidade a mais de Métodos Orientados a Planos
da qualidade foi introduzido um aperfei- conhecer boas práticas relacionadas à Como principais características dos
çoamento contínuo de métodos, técnicas coleta de evidências diretas e indiretas métodos orientados a planos, podemos
e artefatos (PRESSMAN, 2006). para evidenciar as exigências do nível G, citar a documentação bem estruturada e
Nos dias atuais, com a necessidade de se quando em busca de uma certificação. concisa, a rastreabilidade entre requisitos,
alcançar maior competitividade e qualida- Por conseqüência, as informações resul- projetos e códigos. Outras características
de na construção de software as empresas tantes deste trabalho, podem auxiliar na importantes são a definição e gerencia-
nacionais sentem-se na obrigação de mo- redução de custos de implementação e mento de processos que são aperfeiçoa-
dificar suas estruturas organizacionais e tempo gasto na preparação para o pro- dos e normalizados. Todos os processos
processos produtivos para que se adaptem cesso de certificação. devem possuir atividades detalhadas,
ao tamanho e características dos projetos fluxo de trabalho, responsabilidades de-
sem perder os padrões de qualidade Métodos Orientados a Plano finidas. Além disso, é comum o emprego
exigidos tanto nacional, como internacio- Antes de falar do MPS é importante de Gerentes de Projetos que monitoram,
nalmente. Com todas essas necessidades explicar qual a metodologia utilizada verificam e disseminam a informação.
foi criado o MPS.BR , um modelo de matu- por este modelo. O MPS é um modelo De acordo com (BOEHM e TURNER,
ridade nacional com padrões de qualidade orientado a plano. Mas o que significa di- 2004) os principais conceitos dos méto-
internacionais no qual as empresas se zer que um processo é orientado a plano? dos orientados a planos são:
certificam em diferentes níveis de acordo Métodos orientados a planos são muitas • Aperfeiçoamento de processos;
com seu grau de maturidade. vezes referenciados como “a forma tradi- • Processo de capacitação;
Hoje no Brasil, mais de 100 empresas cional” de se desenvolver software. Eles • Maturidade organizacional;
possuem certificação MPS e estas certi- se caracterizam por possuir processos • Gerenciamento de risco;
ficações, mesmo para os níveis menos bem definidos que são constantemente • Verificação;
complexos, são extremamente difíceis. aperfeiçoados nas organizações. • Validação;
Dentro deste contexto, percebeu-se a A origem dos métodos orientados a • Arquitetura dos sistemas de software.
oportunidade de realizar um trabalho que planos deu-se devido à necessidade de al-
identificasse as práticas mais utilizadas gumas organizações adotarem processos Exemplos de Métodos Orientados
por implementadores MPS para eviden- que garantissem a qualidade de seus pro- a Planos
ciar as exigências do modelo de maturi- dutos. Para atingir este objetivo era preciso Ao longo dos anos, diversos métodos
dade brasileiro, visando auxiliar, orientar delinear muito bem o escopo do trabalho orientados a planos foram desenvolvi-
e minimizar as dificuldades enfrentadas e as diretivas a serem seguidas. Vários dos e modelos de maturidade para tais
na sua implementação. Desta forma torna- motivos contribuíram para a adoção desta métodos foram criados. De acordo com
se possível promover um melhor enten- nova forma de tratamento do produto de (BOEHM e TURNER, 2004) entre estes
dimento por parte das empresas e dos software. Dentre eles, podemos citar: métodos destacam-se:
implementadores sobre como evidenciar • Risco em caso de falhas; • CMMI – SEI (Modelo de Maturidade)
os resultados exigidos para a certificação • Ne c e s s i d a d e d e c o n t r o l e d e (SEI, 2007);
do nível G do modelo MPS. alterações; • Military Standards – Departamento
Desta forma, o objetivo deste artigo é • Controle de prazos e custos, entre de Defesa dos USA;
apresentar os resultados obtidos com outros. • General Process Standards – ISO ,
uma pesquisa de campo (survey) para EIA , IEEE;
apontar as práticas mais adotadas pe- Entre os ramos da indústria que se ante- • Software Favorities – Hitachi, General
los implementadores do modelo MPS ciparam em desenvolver estes processos Electric;
A Análise de Causas de Problemas e Resolução – ACP AP 1.1, AP 2.1, AP 2.2, AP 3.1, AP3.2, AP 4.1, AP 4.2 , AP 5.1 e AP 5.2
B Gerência de Projetos – GPR (evolução) AP 1.1, AP 2.1, AP 2.2, AP 3.1 e AP3.2, AP 4.1 e AP 4.2
Verificação – VER
Validação – VAL
Medição – MED
Aquisição – AQU
Descrição do MR-MPS organização. O nível de maturidade organização tem que colocar esforço para
O Modelo de Referência MR-MPS de- em que se encontra uma organização melhoria de forma a atender os objetivos
fine níveis de maturidade que são uma permite prever seu desempenho futuro de negócio, conforme Tabela 1.
combinação entre processos e capacida- em uma ou mais disciplinas. O MR-MPS O progresso e o nível de maturidade
de de implementação de cada processo. define sete níveis de maturidade: são obtidos quando são atendidos todos
A capacidade de processo é sua ha- • A (Em Otimização) os resultados e propósito do processo,
bilidade para alcançar os objetivos de • B (Gerenciado Quantitativamente) além dos atributos de processo relacio-
negócio, atuais e futuros. Ela está relacio- • C (Definido) nados àquele nível e aos anteriores.
nada com o atendimento dos atributos • D (Largamente Definido) A divisão em estágios, embora baseada
de cada processo dentro de cada nível • E (Parcialmente Definido) nos níveis de maturidade do CMMISE/
de maturidade. • F (Gerenciado) SWSM tem uma graduação diferente,
• G (Parcialmente Gerenciado). com o objetivo de possibilitar uma imple-
Níveis de maturidade - Descrição mentação e avaliação mais gradual e ade-
Geral A escala de maturidade se inicia no nível quada às pequenas e médias empresas.
Os níveis de maturidade estabelecem G e progride até o nível A. Para cada um A possibilidade de se realizar avaliações
patamares de evolução de processos, destes sete níveis de maturidade foi atri- considerando mais níveis permite uma
caracterizando estágios de melhoria buído um perfil de processos e de capaci- visibilidade dos resultados de melhoria
de implementação de processos na dade destes processos que indicam onde a de processos com prazos mais curtos.
a certificação nível G do modelo MPS, evolui. Como exemplo, a partir do nível de um trabalho para que seja atingido
o trabalho irá se ater ao Guia de Imple- E alguns processos evoluem e outros sur- um objetivo. Estas operações devem ser
mentação parte 1 – Nível G (SOFTEX, gem. No nível B a Gerência de projetos planejadas, executadas e controladas por
2007b). passa a ter enfoque quantitativo. pessoas e têm restrições de recursos.
Como descrito no Guia de Implemen-
Implementação do Nível G Fundamentação Teórica tação parte 1 – Nível G (SOFTEX, 2007b)
No Guia de Implementação parte 1 O Guia de Implementação parte 1 – Ní- e no PMBOK (Project Management Body
– Nível G (SOFTEX, 2007b) o nível G é vel G (SOFTEX, 2007b) busca fundamen- of Knowledge) (PMBOK, 2004), o geren-
o primeiro nível de maturidade do mo- tação teórica no PMBOK (Project Mana- ciamento de projeto é a aplicação de
delo MR-MPS. Deve-se tomar cuidado gement Body of Knowledge) que é um conhecimento, habilidades, ferramentas
redobrado para que sejam formadas guia em gerência de projetos tendo como e técnicas às atividades do projeto, a fim
estruturas sólidas para a implantação responsável por sua publicação o PMI de atender aos seus requisitos, estabe-
de melhoria dos processos de software (Project Management Institute). O PMI é lecer prioridades, gerenciar conflitos,
na organização. Ao final da implantação um dos mais conceituados institutos na identificar necessidades para que haja
deste nível de maturidade a organização área de gerência de projetos. O PMBOK aumento de qualidade, redução de cus-
será capaz de gerenciar parcialmente seus agrupa as boas práticas reconhecidas em tos e prazos na produção de artefatos de
processos de construção de software. gerenciamento de projeto. acordo com requisitos especificados.
Deve haver uma mudança radical na Quando se fala de Gerência de Projetos, Conforme o IEEE (Institute of Electri-
cultura da empresa orientando-se a deve-se ter o conceito de projeto bem cal and Electronics Engineers), em seu
melhoria dos processos de construção e claro para que possamos entender me- Glossário Padrão de Terminologias da
também a definição do conceito acerca lhor sua gerência. O PMBOK (PMBOK, Engenharia de Software (IEEE Std 610.12,
do que é “projeto” para a organização, 2004) apresenta uma das definições de 1990), a gerência de projetos de software
isto é, redefinir operações já em anda- projeto mais reconhecidas atualmente: pode ser definida como a aplicação de
mento estabelecendo objetivos, prazos “Projeto é um esforço temporário empre- planejamento, coordenação, medição,
e escopo para sua execução. endido para criar um produto, serviço monitoramento, controle e divulgação
Para que seja conseguida a certificação ou resultado exclusivo”. Temporário por de relatórios, com o intuito de garantir
o nível G do modelo MPS, as organiza- que o projeto deve possuir um inicio e que o desenvolvimento e a manutenção
ções devem fazer a Gerência de Projeto um fim. de software sejam sistemáticos, discipli-
e Gerência de Requisitos. Que serão No termo “produto, serviço ou resul- nados e qualificados.
descritos a seguir. tado exclusivo”, a exclusividade e a ela-
boração progressiva são características Gerência de Requisitos
Gerência de Projetos importantes a serem observadas nas
entregas do projeto. Outra característica Propósito
Propósito importante de projeto é a elaboração No Guia de Implementação parte 1 –
No Guia de Implementação parte 1 progressiva que integra os conceitos de Nível G (SOFTEX, 2007b) na Gerência
– Nível G (SOFTEX, 2007b) a Gerência temporalidade e exclusividade. Elabora- Requisitos de produtos, a identificação
de Projetos tem como propósito estabe- ção progressiva significa desenvolver em de inconsistências é o propósito principal
lecer e manter planos que definem as etapas e por incrementos. Por exemplo, do processo de Gerência de Requisitos e
atividades, recursos e responsabilidades o escopo do projeto será identificado de tem como objetivo o controle da evolução
do projeto, prover informações sobre o maneira geral no início do projeto e se dos requisitos tanto funcionais como
andamento do projeto que permitam tornará mais claro e refinado à medida não-funcionais. Também fornece apoio
correções quando houver desvios sig- que a equipe do projeto desenvolve um ao planejamento definindo um conjunto
nificativos no desempenho do projeto. entendimento mais completo dos objeti- de passos que serão seguidos pela orga-
À medida que o nível de maturidade da vos e das entregas. Outro conceito são as nização. Com a Gerência de Requisitos,
empresa evolui, este propósito também operações que fazem parte da execução alterações de requisitos de projeto são
informações necessárias à pesquisa. As a implementação dos requisitos básicos Questão 2: GPR2 – Dimensionamento
informações coletadas são então arranja- para a certificação no nível G de ma- do projeto de software. Como você pro-
das de forma que possam ser tratadas de turidade e capacidade, do modelo de cura evidenciar os critérios de dimen-
maneira quantitativa ou qualitativa”. referência MPS. sionamento das tarefas e os produtos
Neste sentido este artigo foi desenvolvi- de trabalho do projeto?
do com base em um survey, com intuito de Objetivos da Medição
levantar dados para a geração de conheci- I. Pesquisar como os implementadores Questão 3: GPR3 – Definição do mode-
mento, através de questionamentos dire- do MPS evidenciam os requisitos neces- lo e ciclo de vida do projeto de software.
cionados sobre o assunto, para posterior sários à avaliação do nível G. Como você evidencia o modelo adotado
análise com a aplicação de métricas que II. Apresentar as evidências mais e as fases do ciclo de vida de um projeto
proporcionem uma mensuração de forma utilizadas pelos implementadores para de software?
uniforme e consistente dos dados colhidos, atender às exigências do nível G do
resultando na geração de informações modelo MPS. Questão 4: GPR4 – Estimativa de esfor-
úteis à comunidade implementadora e ço e custo para a execução das tarefas e
empresas interessadas na certificação do Objetivo do Estudo dos produtos de trabalho. Qual o método
primeiro nível do modelo (nível G). Analisar os dados fornecidos pelos usado para estimar o esforço e o custo
implementadores do MPS para a execução das atividades e geração
Definição da Metodologia Com o propósito de caracterizar, iden- dos produtos de trabalho?
A geração de informações acuradas a tificar e indicar
partir do trabalho de levantamento e da Com respeito às formas de evidenciar Questão 5: GPR5 - Estabelecimento de
avaliação dos dados reunidos necessita os requisitos necessários à avaliação do orçamento, cronograma, marcos e/ou
de uma metodologia bem definida, com nível G pontos de controle do projeto. Como você
objetivos claros e que ainda forneça me- Do ponto de vista dos implementado- prefere evidenciar a forma com que são
canismos que permitam medir de forma res do MPS estabelecidos e mantidos estes itens?
padronizada os dados fornecidos pelos No contexto do nível G do modelo
implementadores, para que as informa- MPS. Questão 6: GPR6 – Identificação dos
ções geradas possam estar consistentes Analisar os dados fornecidos pelos riscos do projeto. Como você procura
e bem estruturadas. implementadores do MPS evidenciar os riscos do projeto, seus
Para a elaboração do questionário de Com o propósito de compreender impactos, probabilidade de ocorrência
Levantamento e Avaliação foi adotada Com respeito às evidências mais uti- e prioridades de tratamento?
a Metodologia GQM - Goal-Question- lizadas pelos implementadores do MPS
Metric - (SOFTEX, 2008), devido à ne- para atender às exigências do nível G do Questão 7: GPR7 – Definição dos
cessidade, em um primeiro momento, modelo MPS. recursos humanos necessários para a
de definir um padrão que permitisse Do ponto de vista dos pesquisadores execução do projeto. Como você procura
gerar questionamentos consistentes e No contexto do processo de certifica- evidenciar o planejamento de alocação
mensuráveis, aos implementadores do ção do modelo MPS nível G. de recursos humanos dentro do projeto,
nível G do modelo MPS. No sentido considerando os perfis e conhecimentos
oposto do processo, era preciso inter- Questões e Métricas necessários?
pretar de forma uniforme as respostas I. Analisar os dados fornecidos pelos
emitidas para cada questionamento implementadores do MPS com o propó- Questão 8: GPR8 - Planejamento das
relacionado aos diversos resultados sito de caracterizar, identificar e indicar tarefas, os recursos e o ambiente de
esperados pelo modelo MPS, nível G. com respeito às formas de evidenciar trabalho necessário para executar o
Pelo fato de ser baseado em métricas, os requisitos necessários à avaliação do projeto. Qual método você utiliza para
o GQM atendeu bem as necessidades nível G, do ponto de vista dos imple- evidenciar o planejamento dos itens
identificadas para a concepção do mentadores do modelo MPS no contexto citados acima?
questionário, assim como para a ava- do nível G.
liação das respostas. Questão 1: GPR1 - Definição do esco- Questão 9: GPR9 - Os dados rele-
po do trabalho. Como você evidencia a vantes do projeto são identificados e
GQM (Goal – Question – Metrics) definição do escopo de um projeto de planejados quanto à forma de coleta,
software? armazenamento e distribuição. Um
Definição dos Objetivos
Objetivo Global
Planejar um estudo experimental (sur-
vey) para indicar as formas adotadas
por implementadores, para evidenciar
Validade externa
As ameaças à validade externa estão
listadas na Tabela 5.
de revisões realizadas” também são para o processo de Gerência de Projetos • A utilização da metodologia GQM
necessários para evidenciar o GRE4. (GPR), quanto para o processo de Ge- para a concepção de questionários
rência de Requisitos (GRE). A Tabela 6 do survey. Devido ao alto número de
GRE5 - Gerenciamento de mudanças apresenta um resumo com os artefatos respostas, 11 respostas de 19 possíveis
nos requisitos ao longo do projeto. mais indicados pelo grupo de implemen- (~58%), acreditamos que o questioná-
Pergunta: Como você evidencia as tadores participantes da pesquisa. Cada rio resultante seja adequado para este
mudanças nos requisitos ocorridas no linha da tabela traz um dos resultados tipo de pesquisa. Assim, o planeja-
decorrer do projeto? esperados pelos processos de Gerência mento do survey pode servir como
As Figuras 40 e 41 mostram que o de Projetos ou Gerência de Requisitos e a referência para o planejamento de
instrumento “Registro de análises de evidência mais indicada na pesquisa pelos novos surveys seguindo a metodolo-
impacto realizadas” é o mais utilizado implementadores. gia GQM, mesmo que com objetivos
com 82%. Verificou-se também que diferentes;
praticamente 75% dos implementadores Entre as contribuições deste trabalho • As informações resultantes da aná-
utilizam outros artefatos em conjunto destacamos as seguintes: lise dos dados. Espera-se que estas
para evidenciar o GRE5. • Uma revisão bibliográfica sobre o informações possam ser proveitosas
modelo MR-MPS e sua versão atual, para as instituições implementadoras
Conclusões que entrou em vigor em janeiro de e avaliadoras do modelo MPS, como
Neste artigo, foram apresentados todos 2008, tendo em vista que o trabalho forma de conhecer quais os artefatos
os resultados obtidos na pesquisa, estra- foi planejado e executado sobre a nova mais utilizados por parte significativa
tificados por resultado esperado, tanto versão do modelo; de uma das instituições que realizam
Limitações
• A pesquisa foi baseada no universo
Figura 38. Revisões em planos (1) Figura 39. Revisões em planos (2)
de implementadores de uma só ins-
tituição implementadora, a COPPE/
UFRJ - FUNDAÇÃO COPPETEC.
Assim, o número de implementa-
dores que responderam a pesquisa
não retrata uma amostragem válida
para que pudéssemos afirmar que as
práticas relacionadas em nossa pes-
quisa são as mais utilizadas em um
contexto mais amplo e geral;
• A elevada ut ilização da opção
“Outros” na resposta a alg umas
perguntas do questionário sugere a Figura 40. Gerenciamento de mudanças (1) Figura 41. Gerenciamento de mudanças (2)
possibilidade de revisão e melhoria
na elaboração das alternativas ini- Referências
cialmente apresentadas; Dorfmann, M. e Thayer, R., Standards, Guidelines, and Examples of System and Software Requirements Engineering. Los Alamitos,
• A estratificação das respostas conti- CA: IEEE Computer Society Press, 1990.
das no campo “Descrição”, quando a
opção “Outros” foi selecionada pelos Fenton, N., Pfleeger, S. L., Software Metrics: A Rigorous and Practical Approach, International Thomson Computer Press, London,
participantes, precisou ser interpre- UK, 1997, 2a Ed.
tada para que pudesse ser agrupada IEEE Std 610.12 - IEEE Standard Glossary of Software Engineering Terminology, Institute of Electrical and Electronics Engineers, 1990.
em categorias, pois muitas vezes,
ISO/IEC 15504-1, The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC
uma mesma forma de evidenciar
uma exigência foi descrita de várias 15504-1: Information Technology - Process Assessment – Part 1 - Concepts and Vocabulary, Geneve: ISO, 2004.
formas por diferentes participantes.
ISO/IEC 15504-2, The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC
Desta forma, as respostas relacio-
nadas à opção “Outros” e conse- 15504-2: Information Technology - Process Assessment – Part 2 - Performing an Assessment, Geneve: ISO, 2003.
qüentemente ao campo “Descrição”, ISO/IEC 15504-5, The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC
durante o processo de análise, podem
ter absorvido alguma influência dos 15504-5: Information Technology - Process Assessment - Part 5: An exemplar Process Assessment Model, Geneve: ISO, 2006.
pesquisadores. Pressman, R. S., Engenharia de Software. 6 ed. São Paulo: McGraw-Hill, 2006.
Project Management Institute – PMI. A Guide to the Project Management Body of Knowledge - PMBOK™, Syba: PMI Publishing
Dê seu feedback sobre esta edição! Feedback
eu Division, 2004. Disponível em: <www.pmi.org>.
s
Dê
A Engenharia de Software Magazine SOFTEX. MPS.BR – Guia Geral, versão 1.2, Disponível em: http://www.softex.br, junho 2007a.
sobre e
ta
edição
Para isso, precisamos saber o que você,
leitor, acha da revista! SOFTEX, Apostila do Curso Oficial de Formação de Implementadores MPS.BR - versão 1.2, 2008.
Dê seu voto sobre este artigo, através do link: Wohlin, C., Runeson, P., Martin, H., Ohlsson, M. C., Regnell, B., Wesslén, A., Experimentation in Software Engineering: An Introducion.
www.devmedia.com.br/esmag/feedback Massachussets: Kluwer Academic Publishers, 2000.