Você está na página 1de 53

Modéstia à parte, sua

melhor opção para


se destacar no mercado!
A Escola Superior da Tecnologia da PÓS- GRADUAÇÃO
Informação oferece as melhores Engenharia de Software:
opções em cursos, formações, Desenvolvimento Java
graduações e pós-graduações para Engenharia de Software:
Desenvolvimento .NET
profissionais de desenvolvimento
GRADUAÇÃO
e programação.
Engenharia de Computação
São programas voltados para a Análise e Desenv. de Sistemas
formação de profissionais de elite,
F ORMAÇÕES
com aulas 100% práticas, corpo
Desenvolvedor Java
docente atuante no mercado,
Desenv. Java: Sist. Distribuídos
acesso à mais atualizada biblioteca
Gestor de TI
de TI do Rio, laboratórios equipados
Desenvolvedor Web .NET 2008
com tecnologia de ponta, salas de
MCITP Server Administrator
estudo e exames.
SQL Server 2008

r/esti
Acesse nosso site e conheça todos os nossos programas: www.infnet.edu.br/esti

TURMAS
NO RIO DE
JANEIRO
www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800

EDUCAÇÃO SUPERIOR ORIENTADA AO MERCADO


Rodrigo Oliveira Spínola
rodrigo.devmedia@gmail.com
Editor Chefe – Engenharia de Software Magazine
Doutor e Mestre em Engenharia de Software pela COPPE/UFRJ. Autor de diversos artigos científicos
sobre Engenharia de Software publicados em revistas e conferências renomadas, dentro e fora do
país. Experiência de participação em mais de 20 projetos de consultoria para diferentes empresas
tendo atuado com gerência de projetos, requisitos e testes de software. Implementador certificado
do MPS.BR, tendo também experiência atuando junto a empresas certificadas CMMI.

Ano 4 - 40ª Edição - 2011 Marco Antônio Pereira Araújo


maraujo@devmedia.com.br
Doutor e Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ - Linha de Pesquisa
Corpo Editorial
em Engenharia de Software, Especialista em Métodos Estatísticos Computacionais e Bacharel em
Matemática com Habilitação em Informática pela UFJF, Professor e Coordenador do curso de Ba-
Editor
charelado em Sistemas de Informação do Centro de Ensino Superior de Juiz de Fora, Professor do
Rodrigo Oliveira Spínola
curso de Bacharelado em Sistemas de Informação da Faculdade Metodista Granbery, Professor e
Colaboradores Diretor do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da Fundação
Marco Antônio Pereira Araújo Educacional D. André Arcoverde, Analista de Sistemas da Prefeitura de Juiz de Fora, Colaborador
Eduardo Oliveira Spínola da Engenharia de Software Magazine.

Eduardo Oliveira Spínola


Jornalista Responsável
Kaline Dolabella - JP24185
eduspinola@gmail.com
É Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine. É ba-
Na Web charel em Ciências da Computação pela Universidade Salvador (UNIFACS) onde atualmente cursa o
www.devmedia.com.br/esmag
mestrado em Sistemas e Computação na linha de Engenharia de Software, sendo membro do GESA
(Grupo de Engenharia de Software e Aplicações).

Atendimento ao Leitor Fale com o Editor!


A DevMedia conta com um departamento exclusivo para o atendimento ao leitor. Se É muito importante para a equipe saber o que você está achando da revista: que tipo de artigo você

você tiver algum problema no recebimento do seu exemplar ou precisar de algum gostaria de ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a vontade para

esclarecimento sobre assinaturas, exemplares anteriores, endereço de bancas de entrar em contato com os editores e dar a sua sugestão!

jornal, entre outros, entre em contato com: Se você estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
entre em contato com os editores, informando o título e mini-resumo do tema que você gostaria
www.devmedia.com.br/mancad
(21) 2220-5338 de publicar.

Publicidade
Para informações sobre veiculação de anúncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br

EDITORIAL

A
s abstrações são uma ferramenta valiosíssima no tratamento de proble- vidades. Desta forma poder-se-ia identificar mais objetivamente as tarefas
mas mais complexos por focar apenas nas partes essenciais, deixando que necessitam de melhorias no sentido de se obter melhor desempenho.
em segundo plano detalhes que não influenciam de forma determi- Uma das técnicas com maior alcance neste setor é o BPM (Business Process
nante na compreensão do problema. Os modelos gerados a partir dessas abs- Management).
trações estão presentes em diversos aspectos da vida humana, indo dos mais Neste contexto, esta edição da Engenharia de Software Magazine destaca
corriqueiros, como uma receita culinária, aos mais complexos projetos de enge- como tema de capa Modelagem de Processos. Neste sentido, teremos três arti-
nharia. Um modelo pode ser definido como sendo uma simplificação da realida- gos abordando o assunto sob diferentes perspectivas: Otimização de Processos
de que nos ajuda a dominar um sistema grande e complexo que não pode ser de Negócio usando BPM, Integrando ferramentas de modelagem de processos
facilmente compreendido em sua totalidade. com XPDL, e Modelagem de processos de negócio com BPMN e Intalio.
No mundo dos negócios, o emprego de técnicas de modelagem de pro- Além destes três artigos que formam a capa desta edição, teremos mais cinco
cesso de negócios contribui de maneira decisiva para a obtenção de melho- artigos:
rias em processos já estabelecidos ou no planejamento de novos processos. • O Ócio Criativo
Um processo de negócios seria “uma coleção de atividades que recebe uma • Elaboração de cronogramas com base nas melhores práticas PMI
ou mais entradas e cria uma saída de valor para o cliente. Um processo de • Aprimorando o gerenciamento de projetos com mapeamento de processos
negócios tem um objetivo e é afetado por eventos que ocorrem no mun- • Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
do externo e em outros processos”. Além disso, também é importante que • Refatoração para Padrões – Parte 13
se visualizem os processos de negócios como tarefas ordenadas de forma
sistemática no tempo e no espaço, ao invés de apenas uma coleção de ati- Desejamos uma ótima leitura!
ÍNDICE

Caro Leitor, Por trás do óbvio


05 – O Ócio Criativo
Glênio Cabral

Planejamento e Gerência
Para esta edição, temos um conjunto de 4 vídeo aulas. Estas vídeo
06 - Elaboração de cronogramas com base nas melhores práticas PMI
aulas estão disponíveis para download no Portal da Engenharia de Alexandre Paiva de Lacerda Costa
Software Magazine e certamente trarão uma significativa contri-
20 - Aprimorando o gerenciamento de projetos com mapeamento de processos
buição para seu aprendizado. A lista de aulas publicadas pode ser Renato Borges de Souza
vista abaixo: Engenharia
26 - Otimização de Processos de Negócio usando BPM – Parte 4
Ricardo S. Ferreira

Tipo: Processo 31 - Integrando ferramentas de modelagem de processos com XPDL


Título: Curso Scrum Product Owner – Partes 9 a 12 André de Jesus Silva, Asher Lionel Coelho e José Luis Braga
Autor: Rodrigo Oliveira Spínola
Mini-Resumo: Esta é uma série de aulas de um treinamento voltado ex-
Desenvolvimento
clusivamente para Product Owners. O Product Owner é um papel prescrito 41 - Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
pelo método ágil SCRUM responsável pelo sucesso ou fracasso do desen- Jacimar Fernandes Tavares e Marco Antônio Pereira Araújo
volvimento de um produto. Este é um papel complexo de ser exercido no
dia-a-dia e, este curso, distribuído em uma sequência de vídeo-aulas, tem 48 - Refatoração para Padrões – Parte 13
como objetivo tornar mais fácil a transição para aqueles que pretendem Jacimar Fernandes Tavares e Marco Antônio Pereira Araújo
ou necessitam trabalhar como Product Owner.
Por trás do Óbvio

Glênio Cabral
gleniocabral@yahoo.com.br
É Administrador de Empresas, pós-graduado em Gestão de Pessoas e músi-
co. Idealizador do site de educação infantil www.novainfancia.com.br.

O Ócio Criativo
D
ia desses resolvi comprar um livro que há muito tem- a distância e redução da jornada de trabalho ainda se mostra
po desejava ler. Fui a uma livraria e adquiri o livro “O uma tarefa quase inviável no mundo contemporâneo.
Ócio Criativo”, do italiano Domenico Le Mase. Seja como for, as idéias de Domenico me fizeram pensar
Em linhas gerais, Domenico defende que é possível trans- sobre o tipo de ócio que tenho praticado. Talvez meus súbitos
formar o trabalho numa atividade tão prazerosa quanto ir ao desejos de mandar às favas meu trabalho para entregar-me
cinema. De que forma? Utilizando determinadas tecnologias aos lençóis pela manhã deva-se ao fato de que tenho praticado
de informação para diminuir o excesso de trabalho. Segundo o ócio preguiçoso, aquele que nos torna inativos e por vezes
ele, o trabalho a distância, por exemplo, poderia reduzir dras- alienados. Mas há o ócio produtivo, aquele que mantém a
ticamente a jornada de trabalho e promover o fim do excesso mente ativa e gera o crescimento pessoal e profissional. A
de procedimentos nas empresas. Ou seja, com mais tempo prática desse ócio exige apenas sensibilidade para aprovei-
para o lazer e o divertimento, as pessoas seriam naturalmente tar o tempo de forma inteligente e leve, de modo a tornar o
mais motivadas e criativas em suas profissões, o que alavan- trabalho uma atividade prazerosa e energizada. Enquanto
caria os índices de produtividade das organizações. os dias do “Ócio Criativo” não chegam por aqui, tentarei
Não nego que a idéia geral do livro é atraente. Trabalhar em de agora em diante praticá-lo dentro do que for possível,
casa, exercer atividades sem pressão e com total liberdade valorizando atividades que ”ventilam” minhas idéias e que
para tomada de decisão é algo, no mínimo, simpático. Prin- proporcionam momentos de prazer pela arte, cultura, esporte,
cipalmente quando a visão que ainda se tem do trabalho é ciência, etc, etc, e etc...
de uma atividade enfadonha, impositiva e desgastante. Mas
o fato é que tentar reinventar as relações trabalhistas pode
ser muito mais complicado do que se imagina.
Dê seu feedback sobre esta edição! Feedback
Isso porque em muitas cidades, principalmente nas gran- eu
s

des metrópoles, as relações profissionais ainda são bastante A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

tradicionais. Há uma grande competitividade entre os cola- Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
boradores, as estruturas hierárquicas se mostram rígidas e a
edição
Dê seu voto sobre este artigo, através do link:
ênfase no controle é grande. Implantar um estilo de gestão
www.devmedia.com.br/esmag/feedback
como o “Ócio Criativo”, que enfatiza a autonomia, o trabalho

Edição 40 - Engenharia de Software Magazine 5


Planejamento e Gerência
Nesta seção você encontra artigos voltados para o planejamento
e gerência de seus projetos de software.

Elaboração de cronogramas com base nas


melhores práticas PMI
Gerenciamento do tempo do projeto

De que se trata o artigo?


Este artigo apresenta conceitos e boas práticas
PMI relacionadas à elaboração de cronogramas
para aprimorar o gerenciamento do tempo de
projetos de software.

Em que situação o tema é útil?


O tema é útil a todo gerente de projetos que
estiver envolvido com a elaboração do crono-
grama de projetos de software.

Resumo:
Este artigo apresenta diversos elementos a

C
Alexandre Paiva de Lacerda om o mercado cada vez mais serem levados em consideração durante a
Costa competitivo, organizações com elaboração e atualização de cronogramas de
alexandre.paiva@gerentedeprojeto.net.br objetivos estratégicos cada vez projetos. Conhecer estas técnicas ajudará a
Graduado em Engenharia Eletrônica para
mais arrojados e projetos cada vez mais reduzir os erros nesta etapa que é tão crítica
Universidade Federal do Rio de Janeiro
(UFRJ), pós-graduado em Tecnologia da complexos, é importante desenvolver um para o sucesso do projeto.
Informação em Análise e Gestão de Negó- plano consistente que permita alcançar
cios pela Universidade do Estado do Rio de tais metas estratégicas. Este plano, em
Janeiro (UERJ), certificado PMP - Project parte, é representado pela figura do
Management Professional pelo Project
cronograma do projeto, que tem por melhores práticas PMI (Project Mana-
Management Institute (PMI), certificado
ITIL Foundation pela Exin, certificado MCTS objetivo prover um roadmap que defina gement Institute).
70-632 Microsoft Certified Technology como, com que recursos e em quanto
Specialist (Microsoft Office Project 2007, tempo o projeto fornecerá suas entregas Motivadores – Problemas de prazo
Managing Projects) pela Microsoft e possui e pacotes de trabalho mapeados durante e orçamento nos projetos
experiência em Planejamento, Execução e
a etapa de definição do escopo. Projetos entregues fora do prazo
Controle de Projetos adquirida em grandes
empresas como IBM Brasil, Oi/Telemar, Pe- Neste artigo veremos como desen- podem significar, em vários casos, um
trobras e Eletrobrás Termonuclear. volver um cronograma com base nas atraso relevante no lançamento de um

6 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

produto ou serviço estratégico para a empresa, acarretando PMI


em perdas de cliente e receita. O PMI (Project Management Institute) é uma das principais
De acordo com o 7º Fórum Nacional de Benchmarking em Ge- instituições em Gerenciamento de Projetos no mundo. Fun-
renciamento de Projetos realizado no Rio de Janeiro em Novem- dado em 1969 e com sede na Pensilvânia (EUA), o PMI é uma
bro de 2010, 60,2% das organizações que participaram da pesquisa entidade sem fins lucrativos que possui como meta principal
apontaram o não cumprimento dos prazos como o problema que avançar na prática, na ciência e na profissão de gerenciamento
ocorre com maior frequência nos projetos (Figura 1). de projetos, objetivando a valorização deste tema no mercado
Na maioria dos casos, os atrasos são ocasionados por fato- de trabalho e em outros fóruns.
res que permeiam o projeto como, por exemplo, escopo mal Outro ponto forte da instituição são as certificações profis-
dimensionado, risco mal gerenciado, requisitos incompletos sionais em gerenciamento de projeto, além das publicações de
e por aí vai. O prazo funciona como “termômetro”, que ajuda Standards que fornecem padrões e melhores práticas para o
a diagnosticar a causa-raiz do problema, mostrando que algo gerenciamento do projeto.
está errado com o projeto.
Além disso, com a quantidade de situações adversas pelas PMBOK
quais um projeto passa ao longo de seu ciclo de vida, é neces- O principal padrão para o tema gerenciamento de projeto é o
sário desenvolver cronogramas dinâmicos que acompanhem Project Management Body of Knowledge, também conhecido
e reflitam essas mudanças, tornando claros os impactos para o como PMBOK. Atualmente em sua quarta edição, o PMBOK
gerente e o time do projeto, possibilitando assim o diagnóstico constitui a base de conhecimento em gerenciamento de pro-
e o planejamento de ações corretivas que permitam colocar o jeto do PMI e contempla os processos, ferramentas e técnicas
projeto novamente no trilho. necessárias para a realização de um projeto em conformidade
O cronograma tem papel fundamental nisto tudo, pois retrata com as melhores práticas definidas.
de forma estruturada todo o trabalho necessário e os prazos
previstos para alcançar os objetivos do projeto. O projeto, os grupos de processos e as áreas de conhecimento
De acordo com as definições do PMBOK 4ª Edição, projeto
Alinhamento e conceitos básicos é um esforço temporário empreendido para criar um pro-
Antes de iniciar nosso estudo, é preciso alinhar alguns concei- duto, serviço ou resultado exclusivo. Normalmente nascem
tos básicos de gerenciamento de projetos para embasar o tema a partir do desdobramento do planejamento estratégico de
gerenciamento do tempo do projeto e as melhores práticas para uma organização e da necessidade de atendimento de metas
desenvolvimento de cronogramas, assunto deste artigo. específicas.

Figura 1. Pesquisa sobre gerência de projetos – Fonte: 7º Fórum Nacional de Benchmarking em Gerenciamento de Projetos (PMI Survey)

Edição 40 - Engenharia de Software Magazine 7


Outro elemento utilizado para caracterizar um projeto
é a sua natureza temporária, estipulando início, meio e
principalmente, fim.
Cada projeto é composto por cinco grupos de processo, nove áreas
do conhecimento e 42 processos de gerenciamento de projetos.
Os grupos de processo (Iniciação, Planejamento, Execução,
Controle e Encerramento) organizam os processos de geren-
ciamento de projetos mais detalhadamente ao longo do seu
ciclo de vida, como indica a Figura 2.
• Grupo de Iniciação  – processos com foco na obtenção da
autorização para a definição de um novo projeto ou fase; Figura 2. Fases do ciclo de vida do projeto
• Grupo de Planejamento – processos com foco na definição
do escopo do projeto, refinamento dos objetivos através dos
quais um projeto é criado e desenvolvimento de ações para
alcançar tais objetivos;
• Grupo de Execução  – processos com foco na execução do
trabalho definido na fase de planejamento;
• Grupo de Monitoramento e Controle – processos com foco no
acompanhamento, revisão e ajuste do andamento e desempe-
nho do projeto, identificando mudanças necessárias e obtendo
a aprovação para a implantação das mesmas;
• Grupo de Encerramento – processos com foco na finalização
das atividades de todos os grupos de processos, com o objetivo
de encerrar formalmente o projeto ou fase.
Figura 3. Interação entre processos

Estes processos não são isolados e interagem uns com os ou-


tros ao longo de todo o ciclo de vida do projeto, como podemos • Gerenciamento de Recursos Humanos: contém os processos
observar na Figura 3. necessários para garantir o uso mais eficiente das pessoas en-
As áreas do conhecimento incorporam os grupos e os pro- volvidas no projeto. Consiste em planejar, formar e desenvolver
cessos, organizando os temas em gerências específicas. As a equipe do projeto;
nove áreas de conhecimento em gerenciamento de projetos, • Gerenciamento de Comunicações: contém os processos
de acordo com o PMBOK (veja a Figura 4), são: necessários para garantir que a informação do projeto seja
• Gerenciamento de Integração: contém os processos neces- gerada, coletada, disseminada, armazenada e/ou descartada
sários para garantir que os diversos elementos do projeto da forma correta. Consiste em planejar a comunicação, dis-
estão devidamente coordenados. Esta área é responsável pelo tribuir a informação, produzir relatórios de desempenho e
desenvolvimento do plano de projeto, execução do plano e fechamento do projeto;
controle de mudanças; • Gerenciamento de Risco: contém os processos necessários
• Gerenciamento de Escopo: contém os processos necessários para identificar, analisar e responder aos riscos do projeto.
para garantir que o projeto inclui todo o trabalho requerido, Consiste em identificar, quantificar e qualificar riscos e de-
e somente o trabalho requerido, para que seja concluído com senvolver e controlar as respostas a estes riscos;
sucesso. Esta área é responsável por planejar e definir o escopo • Gerenciamento de Aquisições: contém os processos necessá-
do projeto, bem como monitorá-lo; rios para a aquisição de bens e serviços de terceiros. Consiste
• Gerenciamento do Tempo: contém os processos necessários em planejar as aquisições e solicitações, selecionar fornecedo-
para garantir que o projeto seja concluído no tempo correto. res, administrar e encerrar contratos.
Consiste de definição das atividades, sequenciamento de
atividades, estimativas de duração de atividades, criação do Gerenciamento de projetos
cronograma e controle do cronograma; Gerenciar projetos é aplicar conhecimentos, habilidades, fer-
• Gerenciamento de Custo: contém os processos necessários ramentas e técnicas nas atividades do projeto a fim de atender
para garantir que o projeto seja realizado dentro do orçamento os requisitos do projeto. Estas atividades estão agrupadas nos
previsto. Consiste em planejar recursos, estimar custos, definir cinco grupos de processo e nas nove áreas de conhecimento
o orçamento e controlar os custos; descritas acima.
• Gerenciamento da Qualidade: contém os processos necessá- De forma prática, o gerente de projeto é responsável por
rios para garantir que o projeto satisfaça as necessidades para realizar, de forma estruturada, todos os 42 processos de-
as quais foi criado. Consiste em planejar, assegurar e controlar finidos com o intuito de entregar o projeto com o escopo
a qualidade do projeto; acordado, dentro do prazo estabelecido, dentro do custo

8 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

estipulado e com os requisitos de qua- Gerenciamento do Tempo do Monitoramento e Controle. Todos esses
lidade estabelecidos. projeto processos integrados e sequenciados
O objetivo deste artigo é entender as Gerenciar tempo em projeto é aplicar têm como objetivo maior desenvolver
entradas, ferramentas, técnicas e saídas os processos necessários para garantir e controlar o cronograma do projeto,
previstas nos processos da área de Ge- o término do projeto dentro do prazo gerando um “roadmap” de entregas no
renciamento do Tempo do projeto, com acordado. tempo (Figura 5).
o objetivo de alcançar o término pontual Ao todo são seis processos: cinco pro- 1. Vamos entender cada um dos pro-
do projeto. cessos de Planejamento e um processo de cessos, com foco nos processos de
planejamento responsáveis por criar
o cronograma. O processo de controle
“Controlar o cronograma” não será foco
deste artigo.
Definir as atividades: é o processo res-
ponsável por identificar todas as ações
necessárias a serem realizadas para
produzir as entregas do projeto. Estas
ações serão traduzidas por atividades
dentro do cronograma, que deverão ser
descritas de forma única através do uso
de verbo no infinitivo e de um objeto
para complementar e deixar a ação clara
(ex.: instalar o software, revisar o artigo,
etc.). Observe a Figura 6.

Observe que o principal insumo para


o processo de definição das atividades
é a linha de base do escopo gerada na
área de conhecimento Gerenciamento do
Escopo do Projeto. A linha de base do es-
copo consiste fundamentalmente de três
elementos importantes: a declaração de
escopo do projeto, a Estrutura Analítica
do Projeto (EAP) e o dicionário da EAP.
A Declaração de escopo do projeto de-
fine as fronteiras do projeto e descreve o
trabalho necessário para a realização de
todas as entregas previstas. Este docu-
mento inclui uma descrição do escopo do
Figura 4. As nove áreas de conhecimento do projeto e seus processos
produto e seus critérios de aceitação, as
entregas do projeto que serão a base para
o mapeamento das atividades necessá-
rias a serem realizadas para produzi-las,
as restrições que limitarão o trabalho de
planejamento e execução (orçamento,
prazos e marcos contratuais de entregas
são bons exemplos de restrições), as ex-
clusões ou o que não será feito pelo pro-
jeto, garantindo assim um alinhamento
de expectativa entre todos os envolvidos
e, por último mas não menos importante,
as premissas assumidas pela equipe
junto com os impactos iniciais caso elas
não aconteçam (potenciais riscos).
Desta forma, a declaração de escopo do
Figura 5. Gerenciamento do tempo dos processos projeto colabora na definição da linha de

Edição 40 - Engenharia de Software Magazine 9


base de escopo para auxiliar na tomada de decisões durante do pacote como, por exemplo, “Comprar bebida” e “Entregar
a definição de atividades, estipulando o que será e o que não bebida”. Além disso, poderíamos observar as principais prede-
será feito pelo projeto. cessoras e sucessoras. No caso do pacote bebidas alcoólicas, um
A EAP ou Estrutura Analítica do Projeto é um elemento bom exemplo seria a definição e reserva do local do churrasco
importante de controle do escopo do projeto e base para a como predecessora da atividade “Entregar bebida”.
definição das atividades, pois contém entregas e pacotes de Os recursos envolvidos em cada pacote de trabalho e suas com-
trabalho representados de uma forma hierárquica. A partir petências também poderão estar listados no dicionário. Isto faci-
desses pacotes de trabalho definidos em sua estrutura é que litará o processo Estimar recursos para as atividades, fornecendo
poderemos desdobrá-los em pequenos pedaços mais fáceis de informações prévias para auxiliar a estimativa. No exemplo, um
serem gerenciáveis (atividades) – Figura 7. recurso com experiência em bebida e conhecedor de locais com
bons preços poderá auxiliar na execução do pacote bebidas.
Outro ponto importante que pode ser identificado preli-
minarmente na EAP é o risco envolvido em cada pacote. No
caso da bebida, podemos dizer que existe o risco de atraso na
entrega da bebida.
Enfim, o dicionário da EAP possui o detalhamento de cada
componente e funcionará como um grande “banco de dados” que
servirá de insumo para o processo de definição das atividades.
Figura 6. Ilustração do processo Definir as atividades Estes três documentos compõem a linha de base do escopo do
projeto, definindo entregas, premissas e restrições do projeto.
Estes são fatores-chave para a definição das atividades.
Outros dois elementos importantes de entrada para este pro-
cesso são: fatores ambientais da empresa e ativos de processos
organizacionais.
Os fatores ambientais da empresa são – de acordo com o
PMBOK 4ª Edição – fatores internos e externos a organiza-
ção que influenciam o sucesso do projeto. Bons exemplos de
fatores internos são a cultura e estrutura da organização e o
conhecimento dos recursos humanos da mesma. Já os fatores
externos podem ser representados por padrões de indústria e
condições de marketing que podem influenciar, por exemplo,
na necessidade de realização de uma atividade específica.
Os ativos de processos organizacionais influenciam neste
processo e podem ser resumidos através de políticas e pro-
cedimentos da organização para a definição das atividades
(padrões de execução de processo, templates de lista de ativi-
dades, requisitos de comunicação, requisitos de encerramento
de um projeto definidos pela organização e por aí vai), lições
Figura 7. Exemplo de uma EAP – entregas e pacotes de trabalho no
último nível da EAP aprendidas e informações históricas de projetos anteriores, lista
de tarefas e questões (issues) de outros projetos, etc.
O Dicionário da EAP complementa a EAP, fornecendo infor- A partir da linha de base do escopo (Declaração de Escopo, EAP e
mações importantes a respeito dos componentes existentes em dicionário) e através de decomposições e opinião técnica especiali-
sua estrutura hierárquica. Essas informações podem ser defi- zada, é que definiremos todo o esforço necessário para produzi-los
nidas através do uso de identificadores únicos (nível da EAP) (leia-se lista de atividades) – de acordo com a Figura 8.
para as fases, entregas e pacotes de trabalho, uma descrição Logo, para o exemplo do churrasco, o pacote de trabalho bebi-
do pacote de trabalho e produto esperado, principais marcos das alcoólicas é decomposto em três atividades: pesquisar pre-
de realização, áreas responsáveis dentro da organização e os ço, comprar a bebida e entregar a bebida no local da festa.
recursos (perfis) necessários, uma definição preliminar das Com base na lista de atividades produzida, precisaremos
ações e estratégias necessárias para a entrega dos pacotes, definir os atributos de cada uma delas como saída importante
estimativas de custo, requisitos de aceitação dos pacotes e do processo de definição das atividades.
produtos gerados (requisitos de qualidade) e seus critérios de Basicamente, atributos de atividades são informações que
aceitação, riscos iniciais identificados, etc. complementam e caracterizam uma atividade dando a ela
No exemplo acima, o dicionário da EAP para o pacote de um sentido.
trabalho bebidas alcoólicas do tipo cerveja pode trazer, de Considerando a atividade Comprar bebida, os atributos po-
forma preliminar, as atividades associadas para a realização dem ser definidos como apresentado na Figura 9.

10 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

Estes atributos são identificados ini- Segundo o PMBOK 4ª Edição, a uti- setas que representam as dependências
cialmente neste processo, atualizados no lização do método de diagramação de lógicas entre essas atividades. Desta
dicionário da EAP para resgate futuro precedência e a inclusão de atrasos e forma, a combinação de atividades e suas
dessas informações em etapas poste- antecipações também são importantes dependências lógicas são graficamente
riores e definidas de fato ao longo dos para criarmos uma rede mais próxima representadas por uma rede de prece-
demais processos de gerenciamento do da realidade do projeto. dência (Figura 12).
tempo do projeto. O Método de Diagrama de Prece- Além disso, é preciso definir o tipo
Utilizando novamente o exemplo do dência (PDM - Precedence Diagram- de dependência entre essas atividades
pacote de trabalho bebidas alcoólicas do ming Method), técnica utilizada para a para definir a sequência de execução.
tipo cerveja, pense que será necessário construção da rede de precedência do Basicamente, temos quatro tipos de de-
definir quais os recursos que deverão projeto, utiliza a estrutura de nós para pendências para o método PDM e elas
realizar a compra das bebidas, quais representar atividades e as conecta por são definidas basicamente em função
atividades precedem a compra das be-
bidas e o tipo de dependência entre elas
(é necessário terminar uma atividade
para começar a outra, começo as duas
atividades ao mesmo tempo, etc.).
Outra saída importante do processo de
definição de atividades, fruto do proces-
so de decomposição, é a lista de marcos.
Marcos são “atividades” com duração
zero e que, consequentemente, não pos-
suem esforço ou trabalho associados.
Servem para caracterizar eventos signifi-
cativos que necessitam ser monitorados,
pois sua conclusão retrata a conquista de
alguns objetivos relevantes do projeto.
Em alguns casos, estamos falando de Figura 8. Decomposição para definição do esforço
exigências contratuais (Figura 10).

1. Sendo assim, uma lista de marcos


nada mais é do que uma lista de ativida-
des com duração zero – sem consumo de
tempo e esforço/recurso – que represen-
tam eventos relevantes para o projeto,
cuja entrega precisa ser monitorada (Ex:
instalação realizada, migração concluí-
da, projeto finalizado, etc.).
2. Sequenciar as atividades: sequenciar
atividades é o processo de identificação Figura 9. Definição dos atributos da atividade Comprar bebida
e documentação dos relacionamentos
(dependências) entre as atividades do
projeto. Cada atividade e marco, com
exceção do marco de início e término
do projeto, são conectados a pelo menos
uma atividade predecessora e a uma ati-
vidade sucessora. Veja a Figura 11.
Podemos observar que a lista de ativi-
dades oriunda do processo anterior (De-
finir atividades), juntamente com seus
atributos, formam a entrada principal
para a definição do relacionamento en-
tre atividades, caracterizada através do
diagrama de rede do projeto (principal
saída deste processo). Figura 10. Lista de Marcos

Edição 40 - Engenharia de Software Magazine 11


de três razões específicas. São elas: limitação de recursos para executar essas duas atividades, elas
a. Razões lógicas (dependências obrigatórias): é impossível poderão iniciar ao mesmo tempo, conforme a Figura 14;
comer um bolo antes de terminar de fazê-lo. Logicamente
falando, a atividade Fazer o bolo deverá acontecer antes que a
atividade Comer o bolo;
b. Limitações de recursos: é possível cozinhar 10 bolos ao
mesmo tempo, mas temos um pequeno forno para cozinhá-
los. Então, certamente, você fará um ou dois de cada vez em
função da limitação do recurso;
Figura 13. Dependência término-início (TI) entre atividades
c. Razões preferenciais (dependências arbitradas): Supondo
que, pelo exemplo acima, você tenha que fazer dois bolos de
cada vez em função da limitação do forno. Preferencialmente,
você opta por começar fazendo os bolos de chocolate. Só depois
serão feitos os bolos de morango. Logo, por razões preferen-
ciais, optamos por iniciar por um tipo de bolo para depois
preparar os demais tipos.

Figura 14. Dependência início-início (II) entre atividades

c. Término-Término (TT): a atividade dependente (B) não pode


terminar até que a atividade da qual ela dependa (A) seja con-
cluída. Ambas as atividades não necessitam ser encerradas ao
mesmo tempo, levando a atividade B terminar em qualquer
momento após o término da atividade A. O fato é que, neste
Figura 11. Ilustração do Processo Sequenciar as atividades tipo de dependência, a atividade B não pode terminar antes da
atividade A. No exemplo da Figura 15, depois que a pizza for
preparada, faremos a entrega ao cliente. Podemos usar uma
relação de dependência do tipo término-término para mostrar
que realizaremos o pagamento da pizza durante o processo
de entrega da pizza, mas a entrega da pizza só será concluída
após a comprovação do pagamento;

Figura 12. Exemplo de PDM

Figura 15. Dependência término-término (TT) entre atividades


Os quarto tipos de dependências existentes são:
a. Término-Início  (TI): a atividade dependente (B) não pode d. Início-Término (IT): esta talvez seja a relação de dependência
começar até que a atividade da qual ela depende (A) seja conclu- mais difícil de compreender por ser a menos utilizada. Ela
ída. No exemplo da Figura 13, considere as atividades Preparar ocorre quando o término de uma atividade depende do início
a massa, Preparar a cobertura e Cozinhar a pizza. A atividade de uma atividade anterior. No exemplo da Figura 16, podemos
Cozinhar a pizza não poderá ser iniciada até que as atividades dizer que o processo de cobrança do cliente começa tão logo o
Preparar a massa e Preparar a cobertura estejam concluídas; pedido é recebido, mas não é concluído até que o processo de
b. Início-Início (II): a atividade dependente (B) somente pode co- entrega da pizza inicie.
meçar com o início da atividade da qual ela depende (A), fazendo Outros elementos importantes que necessitam ser definidos
assim com que duas atividades aconteçam ao mesmo tempo e no momento em que estamos montando a rede de precedência
resultando em compressão no prazo de realização final das duas entre atividades são as antecipações (leads) e atrasos (lags)
atividades. Por exemplo, se você tiver duas atividades Preparar entre as atividades. Em outras palavras, quando terminamos
a massa e Preparar a cobertura e supondo não haver nenhuma uma atividade podemos antecipar ou atrasar o início de sua

12 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

atividade sucessora inserindo em suas definições de depen- No caso da pizza, é necessário estimar os recursos necessários
dência, atrasos e antecipações (Figura 17). para a atividade preparar a massa. Esta atividade considera
Este caso ocorre quando, por exemplo, existe um período basicamente recursos do tipo pessoa, equipamentos e materiais
de não realização de trabalho entre atividades por motivo de (Figura 20).
ausência do recurso que a executará.
Uma vez definidas as atividades e sua relação de dependência
mapeada, temos como resultado principal do processo Sequenciar
atividades, o diagrama de rede do projeto. Observe a Figura 18.

Figura 19. Processo Estimar os recursos das atividades

Figura 16. Dependência início-término (IT) entre atividades

Figura 17. Antecipações e atrasos nas dependências entre atividades

Figura 20. Recursos para executar a atividade preparar a massa

A lista de atividades elenca todas as atividades do crono-


grama que devem ser executadas por recursos para produzir
os pacotes de trabalho. Logo, é necessário considerarmos esta
entrada para definirmos os recursos necessários para a reali-
Figura 18. Saída principal do processo Sequenciar atividades - Diagrama zação das atividades.
de rede do cronograma do projeto Os atributos das atividades trazem informações adicionais de
cada atividade que complementa sua definição. Por exemplo:
Os diagramas de rede são mostras esquemáticas das ativida- a descrição da atividade pode ajudar na definição adequada
des do cronograma e das relações lógicas entre elas, também do perfil do recurso requerido para executá-la. No caso do
chamadas de dependências. preparo da massa da pizza, será necessário um pizzaiolo com
Uma vez definidas as atividades e o tipo de dependência experiência em fazer massa de pizza.
entre elas, o próximo passo é definir os recursos que realizarão É preciso verificar se o recurso pizzaiolo está disponível no
as atividades previstas no processo “Definir atividades”. período necessário para a execução da atividade. Então, é preciso
1. Estimar os recursos das atividades: é o processo de estimar tipos considerar a disponibilidade do recurso para alocá-lo ao projeto.
e quantidades de material, pessoas, equipamentos ou suprimentos Observe que o recurso necessário e sua disponibilidade podem
que serão necessários para realizar cada atividade (Figura 19). se transformar em restrição do projeto. Por isso é preciso consi-
É possível observar que algumas saídas do processo Definir derar o calendário dos recursos como entrada neste processo.
atividades como a lista e o atributo das atividades são entradas Os fatores ambientais da empresa e os ativos de processos or-
para o processo Estimar os recursos das atividades. ganizacionais impactam diretamente na estimativa dos recursos
Em linhas gerais, é necessário estimar recursos para a re- para a realização de uma atividade à medida que podem atuar
alização de cada atividade prevista no pacote de trabalho. como restrição, limitando a forma de execução da atividade.

Edição 40 - Engenharia de Software Magazine 13


No exemplo, ao preparar a massa é necessário seguir algumas
diretrizes de manipulação dos ingredientes ilustrando como
os ativos interferem no processo. Se, eventualmente, existe a
necessidade de contratação de mais um pizzaiolo para atender a
demanda, é necessário observar as políticas de contratação. Este Figura 21. Tabela de requisitos dos recursos
último ilustra como fatores ambientais interferem no processo.
Para processarmos estas entradas, alguns elementos serão
importantes, conforme veremos a seguir.
A Opinião especializada faz uso de especialistas com ex-
periência na execução de uma determinada atividade para
auxiliar na estimativa mais assertiva de recursos necessários
para a realização da atividade.
Um pizzaiolo mais experiente pode definir com maior
exatidão quantos ovos e a quantidade de sal necessária para
produzir uma determinada quantidade de massa.
Observe que o não uso de uma opinião especializada gera,
automaticamente, um risco para o projeto. Neste caso, existe o
risco da quantidade de ovos serem insuficiente e interromper
a produção.
A Análise de alternativas considera as diferentes possibilida-
des de realização de uma determinada atividade, verificando
a utilização de recursos para cada uma delas. Imagine, por
exemplo, a possibilidade de uma determinada atividade,
Figura 22. Estrutura Analítica de Recursos para a atividade Preparar Massa
que possui a necessidade de ter um recurso indisponível no
momento, possa ser executada de uma forma automatizada
por meio de softwares. São essas alternativas que necessitam As Atualizações dos documentos do projeto são necessá-
ser verificadas neste momento e devem considerar sempre os rias à medida que o projeto caminha ao longo do seu ciclo
impactos em custo, prazo e qualidade de realização. de vida. Novos recursos serão necessários e outros serão
Os Dados publicados para auxílio a estimativas auxiliam a substituídos.
estimativa de recursos como, por exemplo, informações refe- Após estimar os recursos para a realização das atividades,
rentes a taxa-padrão dos recursos humanos a serem utilizados é preciso estimar a duração das atividades com base nos re-
no projeto, bem como o mapeamento das competências de cursos alocados.
cada recurso. 1. Estimar as durações das atividades: é o processo res-
A Estimativa “bottom-up” é uma técnica que calcula as ponsável por estimar as durações das atividades através da
necessidades de recursos de cada atividade do cronograma, determinação do número de períodos de trabalho necessários
somando as estimativas parciais até a obtenção dos recursos para concluir as atividades definidas no processo “Definir
totais de cada pacote de trabalho e do projeto (de baixo para atividades”, com os recursos estimados no processo “Estimar
cima), gerando uma melhor precisão. os recursos das atividades” – Figura 23.
E finalmente o uso de software de gerenciamento de projetos É possível observar que algumas saídas dos processos ante-
para auxiliar o planejamento, organização e gerenciamento riores são entradas para o processo Estimar as durações das
do pool de recursos, e o desenvolvimento das estimativas de atividades.
recursos (Ex: MS Project). A Lista de atividades contém todas as atividades do crono-
As principais saídas deste processo fornecerão os tipos e grama que devem ter suas durações estimadas.
quantidades de recursos necessários para a realização das Os Atributos das Atividades são as informações adicionais
atividades. de cada atividade que complementam sua definição e auxiliam
Os Requisitos de recursos das atividades documentam os ti- na estimativa de duração da atividade.
pos e quantidades de recursos necessários para cada atividade No exemplo da pizza, ao verificarmos a descrição da ativida-
do cronograma do projeto, bem como algumas considerações de preparar massa, poderemos constatar que será necessário
como competências e requisitos de recursos necessários para um tempo adicional para deixar a massa descansar antes de
a realização das atividades (Figura 21). levá-la ao forno. Este tempo adicional deverá ser considerado
A Estrutura Analítica dos Recursos é uma estrutura hierár- na estimativa de duração da atividade.
quica de recursos identificados para o projeto, organizados Os Requisitos dos Recursos das Atividades fornecem um
por tipo de recurso e outras classificações possíveis como indício de quanto tempo será necessário para realizar uma
competências, habilidades, áreas da organização, etc. Um determinada atividade à medida que informa a disponibi-
exemplo disso é apresentado na Figura 22. lidade e competência dos recursos necessários (requisitos).

14 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

que a duração estimada seria duas vezes


o trabalho para preparar as 20 massas.
Desta forma, o tempo gasto seria de
dois dias.
i. A estimativa de três pontos utiliza três
estimativas para gerar a estimativa final
de duração da atividade, como exibido
na Figura 24. As três estimativas são:

Figura 24. Estimativa de três pontos

ii. Pessimista (P) – Considera que algo vai


dar errado e, consequentemente, se leva-
Figura 23. Processo Estimar a duração das atividades rá mais tempo para concluir a atividade.
É a maior estimativa;
Estas características do recurso servem aprendidas com informações históricas iii. Mais Provável (MP) – Considera que
de base para a estimativa de duração da de outros projetos pode ser um bom não existem ameaças nem oportunida-
atividade. exemplo do uso de ativos como entra- des e a atividade poderá ser concluída
No exemplo da pizza, um pizzaiolo da para este processo, pois teríamos a conforme o planejado;
com maior experiência fará o trabalho de percepção de estimativas utilizadas em Otimista (O) – Considera o melhor
preparar a massa na metade do tempo do projetos anteriores. cenário, apresentando a menor duração
que um pizzaiolo menos experiente. As ferramentas e técnicas a serem con- para concluir a atividade
O Calendário dos recursos é base para sideradas neste processo gerarão uma É possível também determinar o
verificarmos a disponibilidade dos re- base de estimativa de duração para as desvio-padrão associado a este cálculo
cursos necessários. atividades listadas. e obter assim, a margem de erro da esti-
No exemplo da pizza, é possível utili- A Opinião especializada é uma téc- mativa (Figura 25).
zar o pizzaiolo com maior experiência nica utilizada para garantir uma boa
para realizar a atividade preparar a estimativa de duração, pois sempre
massa na metade do tempo, entretanto será estimada por quem conhece muito
é preciso verificar sua disponibilidade bem o trabalho que será realizado. A
no período de tempo desejado. experiência de um especialista no tema Figura 25. Desvio padrão para obter margem
A Declaração de escopo do projeto con- é fundamental para uma estimativa mais de erro da estimativa
tém as premissas e restrições que devem precisa, com pequenos desvios. Desta forma, a medida da estimativa
ser consideradas para estimarmos a dura- No caso do uso de estimativas análo- de duração de uma atividade utilizando
ção da atividade. Por exemplo, podemos gas, existe a combinação de informações a técnica de estimativa de três pontos
considerar como premissas a carga diária históricas de durações reais de ativida- pode ser representada pela fórmula
de trabalho do recurso, influenciando di- des em projetos anteriores com uma apresentada na Figura 26.
retamente na duração de uma atividade. opinião especializada para analisar
Como restrição, podemos considerar da- o uso desta estimativa com o cenário
tas impostas em contrato para a entrega apresentado pelo projeto e verificar a
de equipamentos para instalação. viabilidade desta estimativa.
Os fatores ambientais da empresa e A estimativa paramétrica utiliza uma
ativos de processos organizacionais projeção de valores com base em uma
devem ser considerados neste processo. relação estatística de dados históricos Figura 26. Estimativa de duração de uma
Índices de produtividade dos recursos ou valores atuais. atividade
humanos da sua organização ou uma No exemplo da pizza, suponha que o A Análise de Reserva é a resposta ao
base de dados de estimativas de duração pizzaiolo gaste um dia para preparar nível de incerteza. É uma forma de con-
de atividades similares em projetos ante- 20 massas de pizza. Se utilizarmos o tornar um eventual risco. Podemos en-
riores são alguns dos fatores ambientais mesmo pizzaiolo ou outro com a mesma carar esta análise como uma “gordura”
que podem auxiliar na estimativa de experiência para preparar 40 massas, por que deve ser queimada em caso de uma
duração das atividades. A base de lições estimativa paramétrica podemos dizer estimativa ruim ou do acontecimento de

Edição 40 - Engenharia de Software Magazine 15


desenvolvimento do cronograma uma
vez que estabelece quando um determi-
nado recurso estará apto a trabalhar em
uma atividade.
A estimativa de duração das ativida-
des é a estimativa do período de tempo
necessário para realizar uma atividade
e, neste processo, pode ser revista com
o objetivo de atender à expectativa de
término por parte do patrocinador e
demais partes interessadas.
A declaração de escopo do projeto
contém premissas e restrições que
interferem no processo de desenvolvi-
mento do cronograma. Datas impostas
funcionam como restrições e limitam o
prazo de execução de uma determinada
atividade. Alguns marcos do projeto
também funcionam como restrições à
medida que definem datas relevantes
Figura 27. Processo desenvolver o cronograma das atividades
para a realização de uma atividade (ex.:
prazos contratuais).
um “imprevisto”. Imagine que você terá das entradas deste processo é oriunda Os fatores ambientais da empresa e ati-
que desempenhar determinada ativida- dos processos anteriores. A ideia aqui vos de processos organizacionais como
de e o tempo estimado para executá-la é é tornar o cronograma o mais realista o uso de softwares de gerenciamento de
de 10 dias. Existe um alto grau de incer- possível e dentro das expectativas das projetos que podem auxiliar no trabalho
teza nesta estimativa, pois esta atividade partes interessadas no projeto (principal- de identificação de caminhos críticos
nunca foi executada ou não temos base mente as expectativas do patrocinador que veremos mais a frente e no traba-
histórica para utilizarmos uma estima- do projeto) – Figura 27. lho de simulação de novas alternativas
tiva análoga, por exemplo. De forma de sequenciamento de atividades, por
arbitrada, criaremos uma reserva nesta A lista de atividades precisará ser exemplo, são fatores ambientais a serem
atividade de 30% da duração estimada revista de forma a verificar se algum tra- considerados. Já para os ativos, podemos
para garantirmos eventuais atrasos. balho necessário para entregar o pacote considerar templates de cronograma
Utilizando estas técnicas, poderemos de trabalho foi esquecido. e cronogramas utilizados em projetos
obter as estimativas de duração das ati- Os atributos de atividades como infor- anteriores. Outro ativo que merece
vidades, razão de ser deste processo. As mações de predecessoras ou sucessoras, destaque neste caso é o calendário da
estimativas de duração das atividades durações, datas impostas e outros, po- empresa, definindo dias úteis e não úteis
definirão o número de períodos de traba- derão ser verificados com o objetivo de para a realização das atividades.
lho (horas, dias, meses, etc.) necessários aperfeiçoar o cronograma do projeto. As ferramentas e técnicas processarão
para concluirmos uma determinada O diagrama de rede do projeto repre- as entradas de forma a produzir o cro-
atividade. senta graficamente os relacionamentos nograma do projeto.
De posse das estimativas, as atuali- entre atividades e pode facilitar a identi- A análise da rede do projeto gera o
zações de documentação do projeto ficação de uma dependência que precisa cronograma do projeto a partir de um
serão necessárias para refletir tais ser verificada para, por exemplo, encur- modelo e da aplicação de várias técnicas
informações. tarmos o prazo de um projeto. analíticas no diagrama de rede a fim de
1. O próximo passo é desenvolver o cro- Os requisitos dos recursos das ativida- calcular as datas de início e término mais
nograma do projeto onde todo o trabalho des também necessitam ser verificados cedo e mais tarde de cada atividade.
realizado nos processos anteriores será neste processo, pois trazem informações O método do caminho crítico (CPM) é
analisado e ajustado com o propósito de referentes à quantidade de recursos uma técnica utilizada para calcular as
obtermos um cronograma aceitável pelo necessários para desempenhar uma de- datas de início e término mais cedo e
patrocinador do projeto. terminada atividade e competências ne- de início e término mais tarde de cada
2. Desenvolver o cronograma: como dis- cessárias para a realização do trabalho. atividade do projeto, sem considerar
semos anteriormente, este processo fará O calendário dos recursos mostra o quaisquer limitações de recursos. Vere-
uma análise crítica de tudo o que foi feito período de disponibilidade dos recursos mos a seguir que o método da corrente
anteriormente. Observe que a maioria e influencia diretamente no processo de crítica considera os recursos limitados

16 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

de uma organização para produzir o atividades que não estão no caminho A ideia do nivelamento seria distribuir
cronograma do projeto. crítico do projeto (atividades não críticas) melhor os recursos utilizados da primei-
Voltando ao método do caminho críti- nas suas datas de início mais tarde, ao ra semana para a segunda semana, por
co, os diferentes caminhos existentes no contrário do caminho crítico que priori- exemplo, garantindo uma distribuição mais
diagrama de rede do projeto permitem za o início mais cedo. Veja a Figura 28. homogênea da utilização desses recursos.
com que uma atividade possua um range O Nivelamento de recursos fatalmente A Análise do cenário “E-se” simula o
de datas possíveis de início e término ocorrerá se o método utilizado para o acontecimento de várias premissas (e se...)
(datas mais cedo e mais tarde de início desenvolvimento do cronograma for o e verifica os impactos nas atividades do
e término). método do caminho crítico. Lembre-se cronograma. (Ex.: Se chover, o que ocorre-
Através destas datas, é possível de- que caminho crítico não leva em con- rá com a atividade pintar a parede?).
terminar a folga livre e a folga total de sideração recursos limitados em uma Observe que para este caso, o pintor
uma atividade. A folga livre informa organização. Sendo assim, teremos ativi- sugere que a parede não seja pintada em
quanto tempo uma atividade pode dades sendo realizadas em paralelo pelo dias de chuva. Com isto, um atraso no
atrasar sem que haja impacto no início mesmo recurso, ocasionando superalo- cronograma seria produzido. Para tal,
da atividade sucessora. Já a folga total cação. Neste caso, é necessário resolver é preciso construir uma resposta a este
informa quanto tempo uma atividade esta superalocação com o nivelamento cenário negativo (risco).
pode atrasar sem que haja impacto no de recursos. O nivelamento consiste em • Uma técnica muito utilizada para
término do projeto. distribuir, de maneira homogênea, a análise de cenários é a Simulação Monte
Ao identificarmos o caminho que con- utilização dos recursos a fim de elimi- Carlo, que testa a execução do projeto
tém as atividades com folga total igual nar sobrecarga ou falta de utilização do várias vezes de forma a obter uma distri-
a zero ou ainda o caminho que contém recurso em determinados períodos do buição estatística dos resultados gerados
a maior duração na soma das durações projeto (Figura 29). (Figura 30).
parciais das atividades, estaremos de-
terminando assim, o caminho crítico
do projeto.
As atividades que residem no caminho
crítico são denominadas atividades
críticas e são aquelas que necessitam
ser mais bem gerenciadas sob o risco de
comprometerem o prazo do projeto.
O método da corrente crítica, diferen-
temente do método do caminho crítico,
considera o uso limitado de recursos no
projeto. No modelo anterior, realizamos
uma super estimativa das atividades ob-
jetivando reduzir o impacto de eventuais
Figura 28. Diagrama de rede do cronograma do projeto e as atividades em vermelho indicando o
riscos em sua realização. Desta forma, caminho crítico do projeto (com maior duração)
introduzimos uma gordura na duração
das atividades. O fato é que a soma des-
sas gorduras em atividades críticas, por
exemplo, podem determinar um término
não factível e contrário às expectativas
do patrocinador do projeto.
É aí que surge o método da corrente
crítica. Ele tem o propósito de utilizar
as estimativas sem gordura para as
atividades e, no intuito de minimizar
o risco destas estimativas sem gordura
não serem alcançáveis, a corrente crí-
tica insere “pulmões” conhecidos por
buffers ao longo do diagrama de rede
do projeto.
Outro diferencial da corrente crítica
para o caminho crítico é o fato de a Figura 29. Quadro de alocação de recursos no projeto. Alta utilização dos recursos na primeira
corrente crítica priorizar o início das semana e baixa utilização dos recursos na semana seguinte

Edição 40 - Engenharia de Software Magazine 17


Ao término da simulação poderemos observar algumas Todas estas técnicas podem ser realizadas através da ferra-
informações importantes como: menta de desenvolvimento do cronograma
• A probabilidade de encerrar um projeto em uma data espe- Ao aplicarmos todas as ferramentas e técnicas para este pro-
cífica e dentro do orçamento previsto; cesso geraremos enfim o Cronograma do projeto, constituindo
• A probabilidade de uma atividade residir no caminho crítico assim a principal saída deste processo e, por que não, da área
do projeto; de conhecimento Gerenciamento do Tempo como um todo.
• Que atividades afetam mais a duração do projeto; O cronograma do projeto fornece toda a lógica de realização
A taxa de sucesso de um projeto. das atividades, identificando as entregas do projeto, os prazos de
realização, a sequência de realização, quem fará determinada ati-
vidade, marcos importas e datas impostas pelo patrocinador.
Podemos utilizar várias formas de representação para o
cronograma do projeto. Os mais importantes são os cronogra-
mas de Marcos (Figura 31), o Gráfico de Gantt (Figura 32) e o
diagrama de rede do projeto (Figura 33).

Figura 31. Cronograma de Marcos


Figura 30. Simulação Monte Carlo para a definição das probabilidades de
encerramento do projeto em uma data específica

As antecipações e esperas produzidas no processo Se-


quenciar atividades precisam ser revistas de forma a pro-
duzir um cronograma realista e aderente às expectativas do
patrocinador.
Outra técnica que pode ser utilizada neste processo para
alcançarmos a data esperada de término do projeto é a com-
pressão do cronograma. Em várias situações, ao finalizarmos
a elaboração do cronograma nos deparamos com uma data
diferente da acordada com o patrocinador do projeto. Para que
possamos trazer o cronograma para a data desejada, aplicamos
técnicas de compressão de cronograma nas atividades que
residem no caminho crítico do projeto (atividades críticas). Figura 32. Gráfico de Gantt
Estas técnicas reduzem o prazo de realização das atividades
sem que haja necessariamente uma mudança do escopo. Em Uma vez analisado e aprovado, o cronograma terá suas da-
outras palavras, podemos incluir mais recursos em atividades tas registradas para servirem de base de comparação com o
para reduzir seu prazo de execução (Crashing) ou realizar desempenho do projeto (previsto versus realizado). É a linha
atividades em paralelo que originalmente estariam em série de base do cronograma.
(Fast Tracking). Os dados do cronograma como marcos, atividades, atributos
O Fast Tracking, em função do paralelismo de atividades, e a documentação de todas as premissas e restrições em relação
gera uma sobrecarga de utilização do recurso no projeto. Esta ao cronograma elaborado são saídas deste processo.
sobrecarga vem acompanhada de problemas de qualidade das Todo este trabalho de revisão e desenvolvimento do crono-
entregas previstas, uma vez que o retrabalho é quase certo grama resulta em atualizações dos documentos do projeto, de
neste tipo de situação. forma a manter o plano aderente à nova situação.
No caso do Crashing, devemos ter em mente que esta redução O último processo de gerenciamento do tempo do projeto,
de prazo pode trazer um aumento de custo com a utilização “Controlar o cronograma”, pertence ao grupo de processos
de recursos adicionais na realização das atividades. de Monitoramento e Controle do projeto. Ele é responsável

18 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO

O cronograma apenas indica que o “paciente está doen-


te”, mas é preciso diagnosticar as causas da doença. E, na
maioria dos casos, alguma etapa do gerenciamento do pro-
jeto e suas demais áreas de conhecimento não foram bem
analisadas. É o velho ditado: “Se você falha ao planejar, está
planejando falhar”.
Então muito cuidado. Dedique uma atenção especial para
todas as áreas de conhecimento do projeto (Escopo, Riscos,
Custo, Qualidade, etc.), pois sem elas de nada adianta um
bom gerenciamento do tempo com cronogramas “estado da
arte”. Ter um termômetro bem calibrado é fundamental para
identificar a doença, mas eles apenas formalizarão a sua falta
de planejamento e seu projeto certamente não alcançará os
objetivos que justificaram sua existência.
Figura 33. Diagrama de rede do projeto com as datas de início e término
mais cedo e mais tarde obtidas

por monitorar o desempenho do projeto com o intuito de Referências


identificar os possíveis desvios em relação à linha de base do
HELDMAN, Kim. Gerência de Projetos: Guia para o exame oficial do PMI. Elsevier, 2009.
cronograma, que será comparada aos resultados apurados
durante a realização do projeto para determinar se uma ação MULCAHY, Rita. PMP® Exam Prep. RMC Publications, 2009.
corretiva ou preventiva é necessária.
PROJECT MANAGEMENT INSTITUTE. Um Guia do Conhecimento em Gerenciamento de Projetos
Como o foco era mostrar como desenvolver um cronograma,
(Guia PMBOK®), 4a edição. Pennsylvania: PMI, 2008.
vamos nos ater apenas aos processos de planejamento listados
anteriormente.

Dê seu feedback sobre esta edição! Feedback


Conclusão eu

s

É importante deixar claro aqui que gerenciar corretamente o A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
tempo do projeto, desenvolvendo cronogramas com base nas Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
edição
melhores práticas PMI, não garante o sucesso no atendimento Dê seu voto sobre este artigo, através do link:
ao prazo estabelecido pelo patrocinador. Ao contrário do que
www.devmedia.com.br/esmag/feedback
é dito, a culpa quase sempre não é do cronograma.

Edição 40 - Engenharia de Software Magazine 19


Planejamento e Gerência
Nesta seção você encontra artigos voltados para o planejamento
e gerência de seus projetos de software.

Aprimorando o gerenciamento de projetos


com mapeamento de processos
Gerenciamento de projetos utilizando conceitos de Mapeamento de Processos

De que se trata o artigo?


Neste artigo veremos a importância da utilização dos
modelos gerados pelo mapeamento de processos
organizacionais para o gerenciamento de projetos
na organização, bem como alguns documentos das
áreas de conhecimento do PMBOK que podem fazer
uso das informações geradas pelo mapeamento de
processos.

Em que situação o tema é útil?


Na busca pelo alinhamento estratégico do projeto
com os negócios empresariais. Visto que o projeto
será guiado pelos fatores ambientais da empresa,
seus processos, estratégias e cadeia de valor.

Resumo:

N
a literatura de Administração O presente artigo trata da utilização das infor-
Renato Borges de Souza de Empresas e Empreendedo- mações geradas pelo mapeamento de processos
renato@sopixel.com.br
Bacharel em Ciência da Computação rismo, muitos são os caminhos empresarial no gerenciamento de projetos, bus-
(UFAM), Especialista em Gerenciamento para criação, desenvolvimento e firma- cando o alinhamento estratégico do projeto com
de Projetos (UGF). Analista de Negócios ção de uma Empresa. A criação de uma os negócios empresariais.
em Processamento de Dados do Amazonas empresa pode ser motivada por uma
(PRODAM), atua no ramo de gerenciamen-
ideia, necessidade ou oportunidade.
to e tecnologia há mais de 5 anos, a maior
parte dele prestando serviços em TIC para Diante do fator motivador, as ações para previsíveis como o mercado, concor-
a PETROBRAS. Na área acadêmica, lecionou transformação de uma ideia em produto rentes, custos, clima, entre outros, que
na UNILASALLE e para o Governo do Esta- são inúmeras, até que a empresa possa podem prejudicar o funcionamento
do do Amazonas. É um dos fundadores do fabricar o produto de maneira contínua. organizacional e a comercialização
blog Qualidade Manaus (http://qualida-
Mas apenas a fabricação do produto de seu produto ou serviço. Entender
demanaus.sopixel.com.br) e da empresa
Sopixel (http://www.sopixel.com.br). não é suficiente. Existem fatores não o funcionamento da empresa e seus

20 Engenharia de Software Magazine - Aprimorando o gerenciamento de projetos com mapeamento de processos


PL ANEJAM ENTO

diferenciais perante os concorrentes é fator essencial para a Fatores Ambientais


firmação da empresa. Segundo o PMBOK (PMI - 4ª Edição), projeto é um esforço
Para manterem-se na frente, muitas empresas investem em temporário empreendido para criar um produto, serviço ou
novos produtos, mercados, inovação e fidelização de clientes. resultado exclusivo. Trabalhando com projetos, o Gerente de
Cada uma dessas ações deve ser gerenciada de maneira que Projetos (GP) deve aplicar todo seu conhecimento, habilidade,
o risco de perda seja reduzido e o retorno do projeto maximi- ferramentas e técnicas às atividades do projeto a fim de atender
zado. Dessa forma, pode-se dizer que a chave para o sucesso seus requisitos, visando atingir o nível de qualidade exigido
empresarial reside na capacidade de atrair e realizar projetos pelo cliente. O GP enfrenta a todo o momento restrições con-
com sucesso. flitantes, tais como escopo, cronograma, orçamento, recursos,
Cada projeto tem sua particularidade e exige um número qualidade e riscos, onde a alteração em uma delas poderá
grande de envolvidos trabalhando juntos. Um desses envolvi- ocasionar mudanças, positivas ou negativas, impactantes ou
dos é a própria organização, que no momento do seu processo não, nas outras restrições. Isso demanda um alinhamento com
de criação, desenvolveu sua missão, visão, valores, objetivos o tratamento dessas restrições de acordo com a prioridade
estratégicos e identificou suas atividades, buscando sempre definida na organização.
executá-las de forma eficiente. O PMBOK trata os fatores ambientais da empresa como um
Diante desse cenário complexo de funcionamento da empre- termo chave, que cerca ou influencia o sucesso de um projeto.
sa, surge o papel do Gerente de Projetos (GP), que segundo Nesses fatores estão incluídos a cultura, a estrutura e os pro-
MULCAHY, tem como alguns de seus papéis, coordenar cessos organizacionais. Os fatores ambientais são considerados
interações entre o projeto e as principais partes interessadas didaticamente como entrada para a maioria dos processos de
da empresa, identificar quais fatores ambientais da empresa planejamento do projeto e podem restringir as opções de ge-
podem ter influência sobre o projeto e, quando disponível a renciamento de projeto. Por exemplo, no processo Desenvolver
informação, considerar os ativos de processos organizacionais o termo de abertura do projeto, que tem como algumas de suas
(processos, procedimentos e informações históricas) no desen- entradas os fatores ambientais e os ativos de processos organi-
volvimento do plano de projeto. zacionais. Para desenvolver esse termo, o GP precisa saber qual
A busca por informações a ser realizada pelo GP visa a a ideologia central de funcionamento da empresa, se a mesma
compreensão da situação atual da empresa, informada em baseia-se em lucro ou qualidade, se tem uma atitude conserva-
suas metas, planos e objetivos, permitindo ao mesmo perceber dora ou com ações ambiciosas, se seus projetos são de longo ou
onde será o resultado do projeto. Essas informações o GP uti- curto prazo, entre outras informações. Como ativo de processo
lizará no desenvolvimento do seu plano de projeto, buscando organizacional, pode-se observar quais os processos básicos
o alinhamento entre as áreas de conhecimento, citadas pelo para o funcionamento da empresa, independente de pessoas,
PMBOK (4ª Edição) – integração, escopo, tempo, custo, recursos se os mesmos são duradouros e preparados para mudanças,
humanos, aquisições, qualidade, riscos – e o planejamento se os mesmos representam o funcionamento real da empresa
estratégico empresarial. Cada plano de uma área do conheci- e quais princípios esses processos estão sendo guiados.
mento será desenvolvido em cima da premissa principal da Apesar de toda importância didática dos fatores ambien-
visão empresarial, permitindo o projeto como um todo fazer tais, muitas empresas não possuem um volume grande de
parte do objetivo da organização. Isso poderá evitar que um informações sobre elas, sendo que muitas dessas informações
projeto, após um tempo de planejamento, possa não ser apro- estão somente na cabeça de alguns poucos funcionários. Para
vado ou ser descontinuado por ir de encontro à maneira do contornar essa dificuldade, o GP não pode focar somente nas
funcionamento empresarial. ferramentas pesadas do negócio, como cronograma, orçamento
Por meio deste artigo busca-se a construção de conheci- e escopo, e perder a visão dos aspectos mais subjetivos do
mento em torno do tema estudado, analisando a influên- projeto, como a cultura, a qualidade dos recursos humanos e
cia dos modelos gerados pelo mapeamento de processos os objetivos previamente definidos pela empresa.
organizacionais diante do gerenciamento de projetos na Considerando os fatores ambientais importantes para o
organização. Por isso, nós tentaremos preencher a lacuna gerenciamento de projetos e para o entendimento do funcio-
entre a determinação dos processos de negócios, que deve namento empresarial, onde o Gerente de Projetos poderia
representar a visão da empresa, e o planejamento de pro- coletar essas informações? No organograma empresarial, na
jetos, no qual muitos gerentes não prosseguem com seus infraestrutura, no mercado no qual a empresa está inserida, na
projetos por estes não estarem alinhados aos objetivos da estrutura organizacional (matricial, funcional ou projetizada),
empresa. Observa-se que o foco deste artigo detém-se aos nas leis que a regem e, principalmente, em seus processos de
conceitos superficiais de mapeamento de processos e geren- negócios. Este último, particularmente, será tratado com mais
ciamento de projetos, considerando que o leitor possua um frequência no artigo.
conhecimento prévio nas áreas citadas. Por fim, apontam-
se maneiras de utilização dos modelos de mapeamento de Mapeamento de Processos
processos no desenvolvimento dos planos de gerenciamento Em busca de um maior entendimento de sua realidade orga-
de projetos. nizacional e de uma visão compartilhada de suas competências

Edição 40 - Engenharia de Software Magazine 21


e estratégias, as empresas vêm utilizando o Mapeamento de Particularmente, no Mapeamento de Processos, a notação em
Processos para representar modelos, explicitar conhecimen- Diagramas é utilizada para a construção de um esboço do
tos e experiências, tornando-o um guia para análise crítica e funcionamento do sistema organizacional.
suporte à tomada de decisão. Para a elaboração dos diagramas, técnicas de modelagem
O Mapeamento de Processos é o trabalho realizado para e notação de processos de negócio foram desenvolvidas ao
conhecer o comportamento organizacional, permitindo, atra- longo do tempo, tais como o SADT (Structured Analysis and
vés da modelagem de processo, o desenho ou representação Design Technique), IDEF (Integrated Computer Aided Manufactu-
das sequências dos processos, sub-processos, atividades e ring Definition) e suas variações IDEF0, IDEF1X, e EPC (Event-
objetivos. Entende-se como Processo de negócio as atividades driven Process Chain). Cada uma com o objetivo de representar
coordenadas a fim de atingir um determinado objetivo. graficamente os processos, atividades, fluxo de informações e
A finalidade do mapeamento é entender e documentar os estrutura de informações no negócio.
processos empresariais, para que com essas informações, com o A tarefa de desenhar os processos de negócio em diagramas
nível ideal de detalhamento desejado, a empresa reduza o custo é facilitada por diversas ferramentas disponíveis no mercado,
no desenvolvimento de produtos e serviços, reduza falhas na conhecidas como Ferramentas CASE (Computer-Aided Software
integração entre sistemas e elimine ou simplifique processos Engineering), variando em níveis de sofisticação e abrangên-
quando necessário (BIZINOTO, 2009). cia. A ferramenta escolhida deverá ter recursos que permita
O Mapeamento de Processos tem como resultado um conjun- representar elementos como entidades, atividades, ligações,
to de modelos que devem representar o padrão atual (AS IS) associações, atribuições, entradas e saídas de processo, entre
ou esperado/futuro (TO BE) de comportamento do processo outros, visando representar o funcionamento do sistema or-
empresarial, seguindo sempre os princípios da modelagem de ganizacional. Entre essas ferramentas podemos citar o BPWin,
processos. Esses princípios são: Visio, Smartdraw, Synthis Process Modeler e ARIS (Architecture
• Aderência: Representar o mais próximo possível a estrutura of Integrated Information Systems).
e a realidade modelada. A modelagem de processo não pode No referido artigo, os diagramas do mapeamento de processo
ser apenas um documento desenvolvido para seguir um foram desenvolvidos com o apoio da ferramenta ARIS. Segundo
padrão de mercado. Ela deve ser condizente com a realidade MACEDO, essa ferramenta permite avaliar métodos de modela-
empresarial; gem e integrá-los pela concentração de seus focos, como foco em
• Relevância ou suficiência: Representar o que é importante processos, atividades ou objetivos, e serve como uma estrutura
para o processo, de acordo com o escopo definido previa- de orientação para o desenvolvimento de projetos complexos
mente, com todas as informações relevantes. Nesse momento, porque ela contém um modelo de procedimento para o desen-
deve-se observar toda a cadeia de valor e a ligação entre os volvimento de sistemas de informações integrados.
processos para que não se esqueça dos elementos chaves na Por representar os processos empresariais, os modelos ge-
cadeia. A dificuldade reside na determinação sobre o que é rados pela ferramenta ARIS podem ser utilizados como fonte
ou não importante; de informação para entendimento dos fatores ambientais da
• Custo/Benefício: Representar modelos cujo trabalho atual empresa no desenvolvimento de um novo projeto. Dentre os
vem apresentando dúvidas e erros durante sua execução, oca- diagramas a serem utilizados, citamos o VAC (Value Added
sionando perdas para a empresa. Assim é possível saber se o Chain) ou Cadeia de Valor, EPC e o OD (Objective Diagram),
tempo despendido para o mapeamento do processo equivale conceituados conforme abaixo:
ao valor do mesmo; • Diagrama VAC – especifica as funções de uma organiza-
• Clareza: A certeza de que o diagrama desenvolvido repre- ção as quais influenciam diretamente o real valor agregado
senta de maneira clara o processo, permitindo o entendimento da organização. Estas funções podem ser ligadas a outras,
de seu público alvo; de forma a sequenciá-las e, então, formar a cadeia de valor
• Comparabilidade: Utilizar para o mapeamento de diferentes agregado. Descreve os processos de negócio do ponto de vista
processos a mesma metodologia, permitindo uma comparação mais abstrato. A cadeia de valor do nível mais alto representa
entre os mesmos; o processo de negócio da organização;
• Estruturação sistêmica: Representar de forma clara a in- • Diagrama EPC – Sequência de tarefas ou atividades que
tegração entre modelos, reconhecendo diversos aspectos da representam o processo e agregam valor ao negócio. Englobam
realidade, com a capacidade desses modelos se estruturarem algumas informações como papéis executores e unidades or-
metodologicamente. ganizacionais, raias, interfaces para outros processos e eventos
que marcam o início e fim de cada processo;
Diagramas • Diagrama OD – o Diagrama OD representa os diferentes
Comunicar-se bem é fundamental para o bom funcionamento objetivos presentes em uma organização ou instância organi-
empresarial. Tudo é valido para que o receptor compreenda zacional, além de explicitar as relações de causalidade entre
com clareza a informação transmitida pelo emissor. Comu- eles. Cada objetivo pode conter um Fator Crítico de Sucesso,
nicação esta que pode ser oral ou escrita, utilizando meios que representa um elemento que pode comprometer o alcance
como textos, vídeos, imagens ou diagramas, por exemplo. de um objetivo.

22 Engenharia de Software Magazine - Aprimorando o gerenciamento de projetos com mapeamento de processos


PL ANEJAM ENTO

Estudo de caso relacionamento de causa e efeito com outros objetivos, como


Para o presente artigo, desenvolveremos diagramas de mape- por exemplo, Reduzir Custo Operacional, podendo este ser
amento de processo baseados em uma empresa de Tecnologia de uma área ou de diversas áreas da empresa. A realização
da Informação, focada em tecnologia Web, com a missão de eficiente dos objetivos Reduzir Custo Operacional, Melhorar
lançar produtos inovadores no mercado de mídias sociais. A controle de Estoque e Otimizar relacionamento com o cliente,
empresa é nova no mercado, com funcionários jovens, comuni- permitirá que o objetivo Otimizar a produtividade em vendas
cação direta entre eles, capital de giro baixo, prezando sempre seja atingido.
pela criatividade e inovação. Um dos benefícios do Diagrama de Objetivos é permitir que
O foco dos diagramas será na cadeia de valor Gerir Vendas, as áreas da empresa conheçam em quais objetivos elas estão
responsável por atrair e reter clientes. A Figura 1 representa a inseridas, percebendo assim o seu papel dentro da cadeia de
cadeia de valor para o Macro Processo Gerir Vendas. valor empresarial. Com os objetivos bem definidos, presume-se
que os mesmos representem a estratégia da empresa e podem
servir como base para nortear as atividades empresariais,
incluindo os projetos a serem desenvolvidos.
O diagrama EPC segue um fluxo de eventos e funções. O mes-
mo possui um número maior de informações sobre o processo,
tais como os participantes e suas atividades e tarefas, pontos
de decisão representados por conectores, processamento de
informações e ponto de interface com outros processos. Você
Figura 1. Cadeia de Valor
pode criar níveis de hierarquia para o seu diagrama EPC de
A Cadeia de Valor, representada na Figura 1, mostra a ligação acordo com sua necessidade de entendimento dos detalhes do
entre as fronteiras organizacionais, onde o processo se inicia, e processo. Isso pode ser feito através do refinamento de uma
os passos que devem ser executados para seguir em frente. A função em outros diagramas EPC ou ligando uma função
cadeia de valor deve ser mapeada de uma maneira que permita a um diagrama de atividade que detalhe mais os passos de
à empresa atingir seus objetivos. O processo Prospectar Clientes, execução da mesma.
ao mesmo tempo em que consome recursos empresariais, tem Para o gerenciamento de projetos, as informações dos diagra-
como resultado a criação de valor a ser consumido pelo processo mas de processo podem ser utilizadas para saber quem está
Segmentar Clientes. A não execução correta de um desses pro- envolvido, quando e como uma função é realizada, antecipan-
cessos comprometerá todo o Macro processo Gerir Vendas. do quais stakeholders serão afetados caso uma atividade seja
Cada processo da cadeia de valor possui objetivos relacionados alterada. Para projetos de softwares o uso do Diagrama EPC é
a ele. A execução correta de um processo visa o atendimento de um grande benefício, pois representa o fluxo de informação de
um objetivo estratégico. A Figura 2 representa o Diagrama de um processo dentro da empresa, utilizado no desenvolvimento
Objetivos da empresa em questão, no processo Realizar Vendas, do diagrama de Casos de Uso.
que está abaixo do macro processo Gerir Vendas.
Mapear para Gerenciar
Um estudo de benchmarking realizado pelos capítulos bra-
sileiros do PMI (Project Management Institute) aponta que 58%
dos projetos nem sempre estão alinhados ao planejamento
estratégico empresarial, não atingindo assim, em sua maioria,
os benefícios e retornos estratégicos esperados. Para responder
a essas preocupações, os executivos e os proponentes do geren-
ciamento de projetos necessitam de métodos e técnicas para
identificar, medir e demonstrar o valor dessas iniciativas.
Visto que a estratégia da empresa impacta na maneira como
o projeto será desenvolvido, a técnica de mapeamento de pro-
cessos irá prover produtos que permitirão analisar aspectos da
organização, para realizar melhores decisões sobre as opera-
ções atuais e aprimorar o gerenciamento de projetos futuros.
Quando um Gerente de Projetos for demandado a liderar um
novo projeto, sabendo da importância dos fatores ambientais
da empresa e processos de negócios, o primeiro passo será ana-
Figura 2. Diagrama de Objetivos
lisar as diretrizes empresariais, a cadeia de valor que o projeto
Nesta figura, o objetivo Otimizar a produtividade em será inserido e quais objetivos estratégicos estão envolvidos.
vendas representa o que a organização pretende com suas Isso permite um entendimento prévio da complexidade do
ações no processo Realizar Vendas. O Objetivo citado tem um projeto, bem como da sua importância para a empresa.

Edição 40 - Engenharia de Software Magazine 23


As informações do mapeamento de processos servirão como propostos pelo PMBOK. As informações nele contida terão
fonte para o desenvolvimento dos planos de projeto. Usando como base um projeto de CRM (Customer Relationship Mana-
técnicas de elicitação de requisitos, algumas perguntas pode- gement), observando onde as informações dos diagramas de
rão ser feitas aos envolvidos na cadeia de valor empresarial, processo são utilizadas neste documento.
visando o desenvolvimento dos planos de projeto, como por
exemplo: Termo de Abertura – Projeto CRM
1. O projeto está inserido em um processo chave? 1) Propósito do projeto ou justificativa:
2. Por quais setores empresariais da cadeia de valor o processo • Aumento da produtividade de vendas, através da Fide-
está envolvido? lização, visto que é mais caro conquistar um cliente que
3. Os donos dos processos têm poderes de decisão no manter um novo.
projeto? 2) Objetivos mensuráveis:
4. Os donos dos processos estão informados sobre a iniciativa • Aumentar em 20% a venda anual para cada cliente.
do projeto? 3) Requisitos de alto nível:
5. Quais seriam os impactos e riscos da alteração do fluxo do • Gestão da base de clientes segmentadas; Histórico de ações
processo atual? e tarefas realizadas com o cliente; Relatório de produtos
vendidos; Facilidade de acesso.
A percepção prévia dos processos envolvidos permitirá um 4) Descrição do projeto em alto nível, características do
foco maior do GP na realização das entrevistas. As informações produto:
coletadas acima, como o processo chave, seus donos e setores • Projeto: Visa o acompanhamento de informações dos
envolvidos, sendo devidamente organizadas, serão entradas clientes, com acesso rápido às mesmas, apoiando o atendi-
para a composição dos planos de projetos. Dentre os planos, mento ao cliente, otimizando assim o relacionamento com
podemos citar os seguintes: o mesmo, tornando-o fiel a empresa;
1) Gerenciamento de comunicação: • Características do Produto: Interface Web; Facilidade de
a. Quem são os envolvidos, seus papéis e responsabilidades acesso via navegadores de Internet; Segurança no acesso
dentro do processo e objetivos? aos dados; Usabilidade.
b. Quem deverá ser informado, o meio de comunicação e 5) Riscos de alto nível:
a frequência? • Entendimento falho da Cadeia de Valor – O projeto não
c. Como a comunicação é realizada entre os processos? atender o objetivo da cadeia de valor.
d. Qual a expectativa dos donos do processo? • Falha na Prospecção de Clientes – Escolha equivocada
2) Gerenciamento de Escopo de clientes, que não necessitam do produto oferecido, para
a. Quais são as fronteiras do projeto, dentro dos processos compor a base.
empresariais? • Falta de infraestrutura tecnológica – Diante da solução propos-
b. Quais processos serão afetados e os seus requisitos de ta, não ter a infraestrutura necessária para funcionamento.
funcionamento? 6) Nome e responsabilidade das pessoas autorizando o termo
c. Qual objetivo empresarial será afetado ao final do de abertura:
projeto? • Espaço para adicionar os envolvidos na Cadeia de Valor
d. Quais pontos críticos devem ser analisados? e nos objetivos empresariais.

As informações dos planos citados acima possivelmente não Observa-se que no Termo de Abertura, boa parte das frases
estarão completas apenas com as informações coletadas do puderam ser coletadas da Cadeia de Valor e do Diagrama de
mapeamento de processos. Outras fontes e pessoas deverão Objetivos, como por exemplo, no item 1), que corresponde ao
ser consultadas pelo GP. objetivo do processo “Realizar Vendas” e no item 4), com o
Outros planos do projeto poderão fazer uso das informações objetivo “Gerir Registro de Informações”. Mais uma vez, as
geradas pelo mapeamento do processo, como o Plano de Ris- informações não estão completas e reuniões com os envolvidos
cos, utilizando os fatores críticos do objetivo como entrada; serão necessárias. Sendo que, esses envolvidos já podem ser
Plano de Custo, adequando-se de acordo com o orçamento da visualizados através desses diagramas, indicando assim um
empresa, definida em seus objetivos; e Plano de Qualidade, no caminho a ser seguido pelo GP.
qual o GP determinará os métodos de aceitação de entregas, Na Tabela 1, é feito um “de-para” visando listar em quais planos
de acordo com os objetivos do processo. de projeto as informações do Mapeamento de Processos podem
Sendo a proposta do artigo o mapeamento de processos para ser utilizadas. Essa utilização pode ser muito maior, visto que
o gerenciamento de projetos, vamos utilizar o objetivo empre- as informações dos diagramas de processo dependem da ne-
sarial “Otimizar o relacionamento com o Cliente”, conforme a cessidade da empresa. Caso a necessidade da empresa seja um
Figura 2, que está inserido na cadeia de valor “Gerir Vendas”, entendimento macro de seu funcionamento, elas não adicionarão
para desenvolver o documento de Termo de Abertura do certas informações, consideradas irrelevantes em seus processos,
projeto. O Termo de Abertura abaixo conterá alguns campos mas que seriam de grande valia para os planos de projeto.

24 Engenharia de Software Magazine - Aprimorando o gerenciamento de projetos com mapeamento de processos


PL ANEJAM ENTO

Mapeamento de Processos Plano de Projetos


Escopo – Premissas e Restrições, Cultura da empresa, Benefícios esperados, Áreas envolvidas, Business Case, Patrocinador, Termo de Abertura.
Diagrama de Objetivos
Riscos – Ameaças e oportunidades, Tolerância e limites para riscos, Complexidade das relações.
Integração – Reunião dos ativos das partes interessadas, Custo-benefício.
Comunicação – Áreas envolvidas, Processos afetados.
Integração – Stakeholders, Controle integrado de mudanças.
Cadeia de Valor
Tempo – Definição de cronograma.
Escopo – Complexidade do processo, Stakeholders, Objetivos mensuráveis, Patrocinador.
Comunicação – Stakeholders, Gerenciamento de expectativas, ligação entre setores.
Recursos Humanos – Conhecimentos e Habilidades dos gestores.
Fluxo de Processos
Riscos – Processos e procedimentos da empresa.
Tempo e Custo – Definição de cronograma, Estimativa de custos.
Tabela 1. Utilização de Diagrama de Processos nos Planos de Projeto

Benefícios Diante da importância elucidada do mapeamento de processos


Uma das grandes dificuldades em gerenciar projetos é en- e do gerenciamento de projetos para a empresa, foi traçado um
tender o funcionamento empresarial e suas estratégias, bem paralelo de utilização do Mapeamento de processos no Gerencia-
como manter o projeto alinhado às estratégias empresariais. mento de Projetos, sendo que as fronteiras entre os dois podem
Os tópicos acima citaram na prática como entender o fun- ser muito maiores, permitindo uma reutilização significante de
cionamento baseando-se nas informações dos documentos informações, cujo principal beneficiado será a empresa.
gerados pelo Mapeamento de Processo. A reutilização dessas
Referências
informações, não a sua duplicação, é o principal benefício para
o Gerenciamento de Projetos, visto que a empresa realizou Artigo “Proposta para concepção de um Sistema de Medição de Desempenho
um trabalho de investimento na estruturação empresarial, Orientado por Processos: Aplicação em uma Prestadora de Serviços de Suporte
definição de processos, documentação, criando suas instruções Operacional”, escrito por Oliveira, Sando e Cameira.
de trabalho, nomeando os setores envolvidos nos processos, http://trac2.assembla.com/projeto_pri/export/23/Paim,%2520Cameira,%2520Clemente,%25
validando esses documentos, tornando-os oficiais dentro da 20Clemente%2520-%2520Engenharia%2520de%2520Processos%2520de%2520Negocios%2
empresa. Quanto mais pessoas se beneficiarem com essas 520-%2520XXII%2520ENEGEP%2520-%25202002.pdf
informações, mais vantajoso terá sido o investimento.
Artigo “Modelo de Processo de Negócio Analisar Pedido de Crédito” escrito por Diir,
Nestas circunstâncias, o GP iria compartilhar a visão empre-
Souza, Azevedo e Santoro
sarial, definida em seus documentos, em prol de seu projeto,
http://np2tec.uniriotec.br:9093/np2tec/publicacoes/RT-NP2TEC-2010-008-ModeloProcesso-
utilizando-a como um guia para a coleta de requisitos e desen-
AnalisarPedidoCredito-20100811.pdf
volvimento dos planos de projeto. Dessa forma, o GP “venderá”
seu projeto com mais confiança por saber que o mesmo está Artigo “Workshop – Melhoria de Processos - Mapeamento de Processos”
envolvido em um objetivo empresarial, em uma cadeia de valor http://www.mp.go.gov.br/portalweb/hp/12/docs/mapeamento_dos_processos.pdf
crítica ou reduzindo a complexidade de um processo. Tudo isso
Apresentação “Governança de Processos: Os elementos de um Framework”
de acordo com o que foi priorizado e previamente definido pela
http://www.enjourney.com.br/wp-content/uploads/2010/10/wp-2-governanca-de-
empresa, presumindo-se o envolvimento e interesse da mesma
processos-1.pdf
na execução do projeto. Ou seja, alinhamento do projeto com
a estratégia da empresa. Artigo “Ferramentas de Modelagem de Processo: Uma avaliação” escrito por
Macedo, Rodrigo dos Santos e Schmitz, Eber Assis
Conclusão http://www.triadesolucoes.com.br/Files/Artigo_001.pdf
Conforme os trabalhos indicados na referência do presente
Trabalho de Conclusão de Curso “Modelagem de Processos: GAP Conceitual Quanto
artigo, inúmeros são os casos de utilização do Mapeamento de
ao nível ideal de detalhamento de processo” escrito por Vitor Bizinoto
Processos como apoio para diversas frentes de trabalho.
http://bdm.bce.unb.br/bitstream/10483/767/1/2009_V%C3%ADtorBizinotoSantosAnjo.pdf
O objetivo almejado neste artigo foi alinhar-se às estratégias
da empresa, através de um melhor uso dos fatores ambientais
Dê seu feedback sobre esta edição! Feedback
e das diretrizes que alicerçam o funcionamento empresarial, eu
s

para o gerenciamento de projetos. Partes desses fatores podem A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

estar documentados através de um trabalho de mapeamento de Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
processos, que orienta a ação dos colaboradores e da empresa Dê seu voto sobre este artigo, através do link:
edição

como um todo, e permite uma visão clara e compartilhada dos


www.devmedia.com.br/esmag/feedback
processos, seus riscos, setores envolvidos e seus objetivos.

Edição 40 - Engenharia de Software Magazine 25


Engenharia
Nesta seção você encontra artigos voltados para testes, processo,
modelos, documentação, entre outros

Otimização de Processos de Negócio usando BPM


Transformando organizações “Boas” em organizações “Ótimas”

Ricardo S. Ferreira gócio em uma organização pode fazê-la obter esse


rferreira@progress.com
De que se trata o artigo?
Profissional com amplo conhecimento em Este artigo irá mostrar os detalhes e problemas relacio- diferencial e essa agilidade, além de prover um nível
diversos domínios de negócio, em especial na nados a processos de negócio dentro de uma organiza- de satisfação e excelência superior aos seus clientes,
área de telecomunicações e conteúdo digital. ção, além de explicar, passo a passo, como conduzir uma fornecedores e funcionários, por meio da simplifica-
Possui mais de 13 anos de experiência, onde iniciativa de otimização de um processo de negócio com ção destes processos.
durante estes anos já atuou em dezenas de
o intuito de torná-lo mais eficaz e mais eficiente.
projetos envolvendo complexos cenários de
integração corporativa, e na definição, imple- Resumo:
mentação e implantação de projetos que se Em que situação o tema é útil? Este artigo pode ser uma ferramenta muito valiosa
utilizam de arquiteturas orientadas a servi- Organizações de diferentes segmentos precisam para gerentes ou líderes de área de organizações que
ços. Possui mais de 10 anos de experiência na mais do que nunca ter um bom diferencial e servir estejam engajadas em otimizar seus processos de
plataforma Java EE, tendo ajudado diversas
com cada vez mais eficiência e agilidade aos seus negócio objetivando obter maior diferencial perante
organizações na implementação de sistemas
críticos usando servidores de aplicação como clientes, a fim de sobreviver num mercado onde a seus clientes, fornecedores e funcionários. Ao final da
JBoss, WebLogic e Websphere. Atualmente decisão de ir para a concorrência está a apenas um leitura desta série de artigos, será possível que o caro
trabalha na área de soluções da Progress clique de distância ou com o custo de apenas uma leitor possa conduzir uma iniciativa de otimização de
Software, ajudando organizações da américa ligação. A otimização constante de processos de ne- processos dentro de qualquer organização.
latina a adquirem maior responsividade ope-
racional por meio de produtos de BPM, CEP,
SOA e gestão semântica de dados. Antes de
atuar na Progress Software, foi arquiteto de

T
soluções na JBoss, a divisão de middleware da oda jornada possui um fim. Na e redesenho de processos de negócio.
Red Hat. Possui as certificações SCEA, SCBCD, edição 35 da revista Engenharia Neste artigo, iremos dar continuidade
SCWCD, SCJP, Oracle SOA Architect Certified
de Software Magazine, iniciamos às demais fases que são necessárias para
Expert, IBM Certified SOA Solution Designer,
IBM Certified RUP v7.0 Solution Designer, a jornada de estudo dos conceitos e prá- o fechamento de um projeto de BPI, a
Borland JBuilder Product Certified Developer, ticas relacionadas à melhoria contínua saber, as fases de aquisição de recursos,
Borland Delphi Product Certified Developer e de processos de negócio, bem como uma implementação e melhoria contínua do
de Borland Certified Instructor. Já palestrou metodologia para condução de projetos processo. Com isso, iremos dar fim ao
em diversos eventos de tecnologia do Brasil
de BPI. Já nas edições 36 e 39 da revista, estudo da metodologia de BPI e deixar
como Just Java, The Developers Conference,
Sun Tech Days, COMDEX, JBoss in Bossa, Futu- aprofundamos ainda mais nesta meto- como referência as fases e práticas estu-
recom e CIAB. dologia, abordando as fases de análise dadas, para que qualquer gestor ou líder

26 Engenharia de Software Magazine - Otimização de Processos de Negócio usando BPM


proce s s o

de área interessado em melhorar a eficiência ou eficácia de um Claro, para muitos processos de negócio os recursos que
ou mais processos de negócio de uma organização possam deverão ser adquiridos serão mínimos. Por exemplo, para a
segui-lo e utilizá-lo na prática. implementação de um novo processo de abertura de contas
pode ser necessário apenas que a equipe de RH crie uma nova
Fase de Aquisição de Recursos posição de coordenador de contas, e que a área de TI assegure
Agora que seu time de BPI criou um novo modelo para o que os escritórios de empréstimos irão usar as ferramentas
processo de negócio problemático, é hora de identificar e ob- corretas para garantir a colaboração entre os funcionários e
ter os recursos que você precisará para colocar a nova versão clientes.
do processo de negócio em operação. Independente de qual Uma vez que você tenha identificado corretamente quais se-
departamento ou unidade de negócio você pertence, esta fase rão os recursos que terão que ser adquiridos, você deve pensar
irá fazer com que você colabore com diversos outros departa- em o que precisa ser feito para consegui-los. Para construir
mentos da sua organização. Se o escopo da mudança proposta a infraestrutura necessária e levantar o material adequado,
for muito grande, você será forçado a trabalhar em conjunto você deverá negociar fundos com a organização ou mesmo
com os seguintes departamentos: realizar empréstimos de recursos de outras áreas e departa-
• Recursos Humanos; mentos. Se várias pessoas requerem capacitação para atuar
• Tecnologia da Informação; no novo processo de negócio, você poderá ter que trabalhar
• Financeiro. em conjunto com as áreas de RH para que a capacitação lhes
seja propiciada. Entretanto, se apenas uma pessoa precisa ser
Os recursos que você precisará adquirir podem variar de acor- treinada para que o novo processo de negócio seja posto em
do com a complexidade da mudança no processo de negócio. Por prática, você não precisará ter que pedir a área de RH tais
exemplo, um processo de negócio pode requerer que: recursos de capacitação.
• Novos papéis sejam criados ou alterados: Ocorre com a
maioria dos projetos de BPI. Pode ser que você tenha que Fase de Implementação do Processo Redesenhado
utilizar consultores ou terceiros para realizar a implementa- Com os recursos em mãos e o processo de negócio completa-
ção do processo que foi redesenhado. Pode ser também que mente redesenhado e testado, é hora de colocá-lo em prática.
você tenha que alterar as responsabilidades de um papel Isto é, chega a hora de você começar a experimentar o novo pro-
existente da organização, de forma que ela seja responsável cesso dentro da organização. Muitos especialistas defendem
por algumas das novas atividades do processo, ou pode ser que a implementação é a fase mais difícil da metodologia. De
que você tenha que criar um papel completamente novo na fato, existem sim algumas dificuldades a serem endereçadas,
organização; mas algumas medidas podem ser tomadas para evitar tais
• Adquirir novos equipamentos ou softwares: Alguns proces- dificuldades. São elas:
sos redesenhados requerem que você adquira novos equipa- • Entendimento dos obstáculos e dificuldades;
mentos ou pacotes de software. Para exemplificar isso, imagine • Rollout do novo processo de negócio.
uma empresa que precisa compartilhar seus documentos
eletrônicos entre as equipes de marketing e desenvolvimento Antes de implementar seu novo processo, é muito importante
de produtos. Para que isso ocorra, a empresa decidiu comprar entender claramente quais são os obstáculos do novo processo
uma solução de software de portal e ECM, para dar suporte e perguntar para o seu time que passos podem ser dados para
a todo o ciclo de vida de criação, edição e compartilhamentos evitá-los. A Tabela 1 sintetiza os obstáculos mais comuns da
de documentos na empresa; fase de implementação de processos redesenhados.
• Novos espaços físicos para acomodar os novos equipamen- Existem também algumas práticas clássicas que podem ser
tos ou pessoas contratadas: É possível que você tenha que utilizadas para que certos obstáculos sejam ultrapassados.
aumentar seu espaço físico da organização, para acomodar São elas:
novas salas para as pessoas contratadas ou os equipamentos • Envolva os stakeholders (as pessoas envolvidas no processo)
(ex: impressoras) comprados; o máximo possível. Pessoas se sentem muito mais inclinadas
• Suporte de especialistas em tecnologia da informação: Por a apoiar as coisas que elas ajudaram a construir;
exemplo, uma empresa de vendas que deseja realizar uma • Pergunte a todos os stakeholders sobre feedback quanto ao
nova pesquisa de mercado requer a utilização de um sof- novo processo de negócio. Faça-os enxergar as reais melhorias
tware de CRM (Customer Relationship Management). Vários que o novo processo irá trazer para a organização;
especialistas terão que ser contratados para ajudar a equipe • Convide cada participante do projeto a escrever suas preocu-
da organização a integrar a nova solução aos seus bancos de pações num quadro branco. Faça com que todo o time entenda
dados de clientes; as preocupações e proponha uma solução explícita para cada
• Treinamento: Pode ser que devido à aquisição de novos problema. Faça com que os participantes se sintam mais a von-
equipamentos, softwares ou mesmo a utilização de novas tade ao ver os problemas citados sendo atacados um a um;
práticas, as pessoas envolvidas no novo processo tenham que • Deixe bem claro a todos os participantes que o problema esta-
ser treinadas e capacitadas. va no processo de negócio e não nas pessoas. Isso é importante

Edição 40 - Engenharia de Software Magazine 27


Obstáculo Explicação Formas de se Evitar
Qualquer mudança no processo traz a impressão errada de que alguém estava
Faça com que todos os funcionários envolvidos tenham ciência de quais os ganhos
fazendo as coisas da forma errada. Por isso, é normal ocorrer alguma resistência por
Resistência dos Funcionários com o novo processo. Em especial, eduque-os sobre quais serão as compensações
parte dos funcionários envolvidos, especialmente se eles não conseguirem enxergar
que o novo processo de negócio irá trazer para eles e para a organização.
os benefícios do novo processo.
Se o novo processo de negócio extrapola fronteiras departamentais, gerentes irão Este tipo de problema precisa ser endereçado antes da fase de implementação,
começar a disputar pelos recursos e pela autoridade. Pode ser que aconteça que preferencialmente nas fases anteriores. Os gerentes precisam entender que o
Resistência dos Gerentes
alguns gerentes tenham que mudar a forma como conduzem seu trabalho (ter mais novo processo visa melhorar a performance da organização, e, portanto, é de
responsabilidades) em pró de uma iniciativa que era de outro gerente. interesse deles enquanto gestores e líderes.
Todo processo de negócio precisa de um dono, alguém que cuide dos interesses do
Se o processo não tiver um dono, então ele nunca deveria ter sido criado na
que o processo visa operacionalizar. É importante que o processo tenha um dono para
Novo Processo sem um “Dono” organização. Caso exista um dono para este processo, lembre-o constantemente
que os recursos necessários para sua implementação sejam providenciados e que o
sobre a importância do projeto de BPI e da melhoria do seu processo de negócio.
novo processo seja defendido dentro da organização.
Tabela 1. Obstáculos mais comuns durante a implementação de um processo redesenhado

para quebrar algumas resistências de pessoas que trabalham Você também pode restringir o piloto por hora, por exemplo,
há muito tempo na versão anterior do processo de negócio; executando-o durante vários meses e, em seguida, avaliar a
• Tente o máximo possível ressaltar as coisas positivas que a sua eficácia.
versão anterior do processo trouxe para a organização. Isso Pilotos são mais arriscados do que role-play, prática e simu-
pode fazer com que os donos do processo se sintam mais lação, porque envolvem clientes reais, produtos ou serviços.
confortáveis em galgar novos desafios com o novo processo No entanto, se você monitorar os pilotos de perto, você pode
de negócio; corrigir problemas assim que eles ocorrerem, enquanto ganha
• Faça com que as pessoas que ainda estiverem resistentes um valioso feedback que ajudará a melhorar o processo. Outra
quanto ao novo processo de negócio escutem o que pessoas de vantagem de usar os pilotos é que as pessoas que participam
outras organizações que passarem pelo mesmo tipo de proble- do piloto irão treinar outras pessoas quando você desenrolar
ma tem a dizer. Pode ser que elas, ao ouvirem de outras pessoas o novo processo para outras regiões, produtos e grupos de
neutras, se sintam mais confiantes em apoiarem as mudanças clientes. Os pilotos também darão aos céticos a oportunidade
e implementação do novo processo de negócio. de observar o novo processo em ação e para tranquilizar-se
que ela é eficaz.
É de suma importância que você dê uma visão geral do novo Ponha em prática. Coloque o novo processo para a produção,
processo a todos os stakeholders do projeto. Dê aos gerentes, ao declarar o início de novas operações. Comece a coletar da-
funcionários e outras pessoas envolvidas no processo, tempo dos sobre o desempenho de novas medidas relacionadas com
para entender ou reafirmar porque o novo processo é neces- o processo, e garanta que você e seu time estejam disponíveis
sário, como as coisas vão ser diferentes e melhores, e o que vai para responder perguntas e apoiar as pessoas sobre como
acontecer quando o novo processo se tornar parte de operações o processo muda a forma como eles realizam suas tarefas.
diárias. Isso fará com que todos os interessados já comecem a Reconheça que haverá uma curva de aprendizado e que as
refletir e planejar como irão executar suas atividades no novo pessoas precisam de tempo para começar a se dar bem com
processo de negócio. o novo processo.
Eduque e familiarize. Crie uma visão concreta e detalhada de Quebre a ruptura com o passado. Remova os artefatos do
como o novo processo funciona por meio de role-play, prática e antigo processo para reduzir qualquer tentação de fazer as
simulação. Assim como você usou estas técnicas durante a fase coisas da forma antiga. Esses artefatos podem incluir formas
três (redesenho do processo problemático), você pode usá-las antigas, tipo de papel, equipamentos, sinalização, e assim por
agora para testar (ou demonstrar) quão bem o seu novo pro- diante. Remover esses itens envia uma mensagem clara de que
cesso funciona. Por exemplo, se você se decidir praticar o novo o novo processo veio para ficar.
processo, peça a todos que estarão trabalhando no processo
para experimentá-lo exatamente como ele está destinado a se Melhorando Contínuamente seu Processo de Negócio
desenrolar. Durante a prática, assista aos problemas, e então Depois que você tiver implementado seu novo processo de
decida como eliminá-los. negócio, haverá em você e no seu time uma vontade incon-
Pilote se necessário. Se você suspeitar que o novo processo trolável de medir o processo e capturar os resultados. Com
ainda possa ter algumas dificuldades que precisam ser traba- isso, será feito um trabalho natural e espontâneo de análise
lhadas, pilote-o. Durante um piloto, você executa o processo sobre que pontos do processo foram melhorados de fato, quais
como se estivesse valendo e realmente entregando os objetivos pontos ainda merecem atenção e que tipo de ações podem ser
esperados, mas limitando o âmbito do processo. Por exemplo, tomadas para melhorar ainda mais o processo. Pessoas que
você pode tentar o novo processo com apenas um grupo de participam de projetos de BPI tendem a se tornar aficionados
clientes, uma região de vendas, ou uma categoria de produto. por melhoria de processos, e passam a dedicar grande parte

28 Engenharia de Software Magazine - Otimização de Processos de Negócio usando BPM


proce s s o

do seu tempo na organização pensando em como melhorar de negócio é que eles extrapolam fronteiras organizacionais,
o processo de negócio. Isso acontece porque essas pessoas se e, por isso, acabam fazendo com que diferentes departamen-
tornaram parte de algo que é importante para a organização, tos entrem em sinergia para alcançar um objetivo que lhes é
e elas irão defender esse processo como se fossem delas. comum. Quando equipes de diferentes unidades de negócio
Existem hoje diversas literaturas no mercado que falam começam a interagir e negociar melhores resultados, cria-se
sobre métodos e práticas sobre como implementar melhoria uma dinâmica de trabalho muito eficiente na organização,
contínua de processos de negócio, mas a experiência diz que pois as unidades de negócio passam a enxergar não mais
nenhuma metodologia será mais eficaz do que fazer com que resultados isolados e pessoais, mas resultados coletivos e sob
as pessoas envolvidas no processo passem a ser as responsá- a ótica da organização. Se isso realmente ocorrer, é de suma
veis pela sua mudança de performance. Criar essa paixão nas importância começar a pensar na definição e implementação
pessoas de forma que elas se sintam naturalmente motivadas a de arquiteturas corporativas de negócio, ou seja, grandes
querer melhorar sempre o processo é o segredo para ter ciclos blocos de valor que representam as estruturas pelas quais a
contínuos de melhoria de processos, fazendo até mesmo com organização atinge seus objetivos estratégicos.
que as organizações não tenham que ter iniciativas formais Arquiteturas corporativas é um assunto extremamente denso,
de BPI, e sim, pessoas que como parte de suas atividades mas é sem duvida uma grande consequência do pensamento
dedicam tempo para melhorar continuamente a performance de melhoria contínua de processos. De fato, as disciplinas de
dos processos da organização. BPM e arquitetura corporativa possuem diversos aspectos em
É claro que as pessoas não podem simplesmente melhorar e comum, e elas com certeza merecem uma considerável atenção
mudar continuamente os processos de negócio da organiza- de organizações que necessitam dar resultados melhores e mais
ção, uma vez que se trata de processos vivos que modificam rápidos. As organizações que buscam a constante melhora no
coisas importantes da organização como clientes, parceiros e seu mercado devem estar cientes de que para conseguir isso,
produtos. Esta é a razão com que as organizações devem eleger ela deverá ter um arcabouço muito bem definido de processos,
um grupo ou área de negócios responsável por coordenar e pessoas e de tecnologia, e para controlar esses três elementos é
validar as iniciativas relacionadas à melhoria de processos, necessário balizar esse arcabouço numa arquitetura de referên-
sejam estas iniciativas formais ou informais. Normalmente, cia, preferencialmente uma arquitetura de referência de merca-
essa área de negócios chama-se centro de excelência BPM, e do, como é o caso do TOGAF e do Zachman Framework. Se você
apesar de não ser uma regra, é composto pelos gestores de cada desprender algum tempo estudando tais frameworks arquite-
área de negócio da organização, bem como alguns gestores de turais corporativos, verá que melhoria contínua de processos é
áreas comuns como TI e RH. uma premissa para que as organizações possam estruturar seus
Uma das atividades mais importantes que esse centro de objetivos estratégicos. Apesar de estes frameworks possuírem
excelência realiza é a definição e apresentação dos objetivos uma vertente bastante forte quanto a TI, é importante notar que,
estratégicos da organização. Conhecer e divulgar os objetivos tais arquiteturas de referência usam TI como facilitador para
estratégicos da organização ajudará os gestores a decidirem que os processos de negócio organizacionais possam entregar
sobre quais iniciativas de melhoria serão mais importantes ou valor a organização e atingir objetivos estratégicos.
críticas, o que é um insight importante para quando diferentes Outra ferramenta bastante poderosa usada na melhoria con-
iniciativas de melhoria de processos estiverem disputando por tínua de processos de negócio é a monitoração dos processos e
recursos ou investimentos para a condução de um novo proje- transações da organização através da análise de indicadores,
to de BPI. Apesar de não ser agradável, é importante que em alertas e falhas dos processos. A monitoração de processos
certas ocasiões alguns projetos de BPI sejam mais prioritários de negócio faz com que as organizações possam ter maior
que outros, pois mais importante que a realização de todas as insight sobre como os processos de negócio atuais estão ou
iniciativas de BPI, é a garantia de que os objetivos estratégicos não cumprindo com seus objetivos. Como exemplo, imagine
da organização sejam cumpridos. Um bom exemplo de objetivo uma empresa que vive de vendas de seus produtos. Ao definir
estratégico é quando uma organização declara que deseja redu- apropriadamente indicadores de negócio como quantidade de
zir seus custos operacionais em 30%. Para atingir este objetivo, produtos vendidos por mês, quantidade de clientes novos por
é necessário saber o tempo necessário para isso, quais serão região, quantidade de produtos que não foram entregues a tem-
os recursos que deverão ser controlados e quais unidades de po e quantidade de produtos devolvidos por baixa qualidade,
negócio da organização serão responsáveis por esta redução. já é possível capturar diferentes insights sobre pontos críticos
Vários pontos de decisão podem ser retirados a partir destas desta organização como faturamento, meios de produção, satis-
definições, e a escolha de qual projeto de BPI deverá ou não fação dos clientes, controle do estoque e rentabilidade mensal.
ser iniciado deverá ser fácil de resolver. Esses pontos definem claramente quais são os processos de
Um resultado positivo de quando se implementa melhoria negócios envolvidos e que tipo de atividades destes processos
contínua de processos é que as unidades de negócio começam a é importante para que as métricas reflitam os valores que a
ganhar maior afinidade umas com as outras à medida que vá- organização espera.
rios projetos de BPI são finalizados com sucesso. Isso acontece Atualmente existem diferentes tecnologias no mercado
porque, uma das características mais marcantes de processos que ajudam nesta questão de monitoração de processos e

Edição 40 - Engenharia de Software Magazine 29


transações de negócio. O BI (Business Intelligence) é uma Considerações Finais
tecnologia que há tempos tem dado às organizações insights Nesta quarta parte da série de artigos sobre otimização de
importantes sobre como seus processos têm sido executados, processos de negócio, realizamos o estudo sobre as últimas
em especial quando condições especiais são configuradas para fases da metodologia de BPI que iniciamos nas edições
análise. No entanto, um ponto fraco das ferramentas e soluções anteriores da revista. Vimos um pouco sobre as fases de
de BI é que elas lidam com informações do passado, geralmente aquisição de recursos, implementação e melhoria contínua
informações que possuem dias, semanas ou até meses de de- dos processos, fases estas que representam a finalização de
fasagem, pois são informações que sofrem processamento em um projeto de BPI numa organização. Através desta série,
lote ou em massa. Esse tipo de informação fornece um valor é possível que você mesmo possa conduzir um projeto de
pequeno para a organização, em especial àquelas organizações BPI na sua organização ou na organização do seu cliente,
que precisam lidar com situações do momento e desejam dar com o intuito de melhorar um ou mais processos de negócio
respostas rápidas a estas situações. e tornar a organização mais eficaz e eficiente, dando-lhe,
Para este caso, utilizam-se tecnologias de BAM (Business portanto, os ingredientes básicos para ser diferenciada entre
Activity Monitoring), que são tecnologias capazes de coletar a concorrência.
informações e indicadores de negócio de processos e transações
que estão acontecendo agora. A Figura 1 mostra um exemplo Referências
de produto de BAM sendo usado para monitorar processos
Livro “Good to Great: Why some companies make the leap... and others don’t” -
em tempo real.
ISSBN 9780066620992
http://amzn.to/48NA0

Livro“Business Process Management:Practical guidelines to successful implementations”


– ISSBN 9780750686563
http://amzn.to/huu5qb

Link para o site oficial da notação BPMN


http://www.bpmn.org/

Blog “O BPM que faço hoje... é realmente BPM?”


http://bit.ly/hwUCXo

Dê seu feedback sobre esta edição! Feedback


eu

s

A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
edição
Dê seu voto sobre este artigo, através do link:
www.devmedia.com.br/esmag/feedback
Figura 1. Produto de BAM da Oracle para monitoração de processos em
tempo real

30 Engenharia de Software Magazine - Otimização de Processos de Negócio usando BPM


Engenharia
Nesta seção você encontra artigos voltados para testes, processo,
modelos, documentação, entre outros

Modelagem de processos de negócio com BPMN


e Intalio
Conhecendo os Bastidores

Simone Dornelas Costa José Luis Braga


sidornellas@gmail.com zeluis@dpi.ufv.br De que se trata o artigo?
Mestranda em Ciência da Computação pela Pós-doutoramento em Tecnologias da Infor- A modelagem de processos tem por objetivo me-
Universidade Federal de Viçosa (UFV). Bacharel mação na University of Florida. Doutor em lhorar a visão que a empresa tem de seus processos
em Ciência da Computação pelas Faculdades Informática - Departamento de Informática a fim de identificar pontos importantes que se tor-
Integradas de Caratinga – FIC. Experiência em da PUC-Rio. Mestre em Ciências da Computa-
desenvolvimento de software e sistemas Web, ção - Departamento de Ciência da Computação
nam base para a tomada de decisões mais precisas e
atuando a mais de 4 anos nessa área. Áreas de da UFMG. Atualmente é Professor Titular do seguras, além de identificar gargalos e poder otimi-
Interesse: Engenharia de Software, Processos Departamento de Informática do Centro de zar todo o processo.
de Desenvolvimento de Software, Modelagem Ciências Exatas e Tecnológicas da Universidade
de Processos, Dinâmica de Sistemas. Federal de Viçosa-MG. Atua na área de Ciência Em que situação o tema é útil?
da Computação, com ênfase em Engenharia
de Software e Sistemas de Informação. Áreas
Neste sentido, este artigo relata como a mode-
de Interesse: Qualidade de Software com Foco lagem de processos pode ser benéfica para as
Glauber Costa
em Processos, Engenharia de Software Experi- empresas exemplificando com a modelagem
glaubercosta@gmail.com
Possui graduação em Ciência da Computação
mental, Engenharia de Software Apoiada por do caso da Ford realizada no Intalio, o qual uti-
Ontologias, Engenharia de Software Baseada liza a notação BPMN.
– Faculdades Integradas de Caratinga e Pós
em Agentes, Sistemas de Apoio à Decisão.
Graduação em Distribuição de Serviços Com-
putacionais: Redes e E-commerce. Atualmente
é analista de sistemas e professor universitário
Resumo:
O sucesso de qualquer tipo de empreendimento

A
- Faculdades Integradas de Caratinga, atuando
principalmente em disciplinas voltadas para s abstrações são uma ferramenta está fortemente ligado ao conhecimento que
desenvolvimento de sistemas, engenharia de valiosíssima no tratamento de seus gestores têm de seus processos e as inte-
software, projeto e análise de banco de dados problemas mais complexos por rações entre eles. Nesse sentido, técnicas como
e Pesquisa Operacional. Tem experiência na focar apenas nas partes essenciais, dei- o BPM e sua notação gráfica de modelagem, o
área de Ciência da Computação, com ênfase
xando em segundo plano detalhes que BPMN, são ferramentas essenciais para a análise
em Banco de Dados e Projetos em análise
de aplicativos em ambiente Web, atuando não influenciam de forma determinante e projeto de processos de negócios. Este traba-
principalmente nos seguintes temas: gestão na compreensão do problema. Os mode- lho apresenta conceitos básicos de BPM/BPMN,
acadêmica, gestão de acervo bibliográfico, data los gerados a partir dessas abstrações demonstra o clássico trabalho de Hammer sobre
warehouse, data mining e banco de dados geo- estão presentes em diversos aspectos da a reengenharia de processos na Ford Motors e a
gráficos. Atualmente está cursando o mestrado
vida humana, indo dos mais corriquei- modelagem do mesmo usando o Intalio.
em Ciência da Computação na Universidade
Federal de Viçosa. ros, como uma receita culinária, aos mais

Edição 40 - Engenharia de Software Magazine 31


complexos projetos de engenharia. Um modelo é definido por • Fornecer uma notação padronizada para projetos em BPM,
Kruchten (2003) como “uma simplificação da realidade que nos compreensível para usuários da área de negócios, para de-
ajuda a dominar um sistema grande e complexo que não pode senvolvedores técnicos responsáveis pela implementação e
ser facilmente compreendido em sua totalidade”. execução dos processos e para gerentes de processo;
No mundo dos negócios, o emprego de técnicas de modela- • Assegurar que linguagens derivadas da XML, projetadas
gem de processo de negócios contribui de maneira decisiva para representação de processos de negócio pudessem ser
para a obtenção de melhorias em processos já estabelecidos ou vistas como uma notação orientada a negócios.
no planejamento de novos processos. Um processo de negócios
seria “uma coleção de atividades que recebe uma ou mais en- Uma das ideias iniciais para a criação era consolidar os pontos
tradas e cria uma saída de valor para o cliente. Um processo positivos dessas ferramentas em uma única ferramenta, cha-
de negócios tem um objetivo e é afetado por eventos que ocor- mada inicialmente por Business Process Modelling Notation até
rem no mundo externo e em outros processos”. Mas Ko (2009) sua versão 1.2. Atualmente, tal notação encontra-se na versão
sugere também que se visualizem os processos de negócios 2.0, à qual foram agregadas várias características novas, pas-
como tarefas ordenadas de forma sistemática no tempo e no sando a ser chamada de Business Process Model and Notation.
espaço, ao invés de apenas uma coleção de atividades. Desta Outro ponto positivo em favor da criação do padrão foi a pos-
forma poder-se-ia identificar mais objetivamente as tarefas sibilidade de se aproveitar toda sua riqueza para que pudesse
que necessitam de melhorias no sentido de se obter melhor ser mapeado para linguagens que permitissem a execução do
desempenho. Uma das técnicas com maior alcance neste setor processo representado por um diagrama. Linguagens como
é o BPM (Business Process Management). BPEL (Business Process Execution Language) e XPDL (XML
Process Definition Language) tornam possível a execução do
BPM – Business Process Management processo modelado em workflow engine, que são aplicativos
O gerenciamento de processo de negócios (BPM) foi defi- que gerenciam e executam processos modelados.
nido por Van der Aals como sendo uma “forma de apoiar
processos de negócios usando métodos, técnicas e software
para contratar, controlar e analisar processos operacionais
envolvendo pessoas, organizações, aplicações, documentos
Nota do DevMan 1
e outras fontes de informação”. Sistemas computacionais que
dão apoio informatizado ao BPM são conhecidos como BPMS BPMN
(Business Process Management Systems). Notação e modelo de processo de negócios. A versão 2.0 recebeu o nome de Bu-
A maneira mais didática de se contextualizar o BPM é por meio siness Process Model and Notation.
da análise de ciclo de vida básico proposto por Van der Aals:
• Projeto do processo: onde o processo é modelado por meio
de um BPMS; Elementos BPMN
• Configuração do sistema: ocorre a configuração do BPMS e in- O BPMN define um diagrama de processo de negócios (BPD
fraestrutura subjacente (papéis dos usuários, organizações, etc); – Business Process Diagram) baseado em técnicas de gráficos de
• Adoção do processo: o modelo é gerado eletronicamente e fluxo projetadas para criar modelos gráficos para operações de
implantado em uma máquina de BPMS que permita executar processo de negócios. O BPD é composto por quatro categorias
o modelo; básicas de elementos, sendo:
• Diagnóstico: monitoramento dos resultados da análise para 1) Objetos de fluxo: são os elementos centrais da notação;
identificação de possíveis gargalos e outras consequências da 2) Objetos de conexão: usados para conectar objetos de fluxo
simulação. para criar a estrutura básica do processo;
3) Raias: mecanismo usado para organizar atividades em ca-
Os benefícios obtidos por meio da utilização do BPM são tegorias visuais separadas com objetivo de ilustrar diferentes
grandes. Segundo Ko (2009), torna-se possível aumentar a visibi- capacidades funcionais ou responsabilidades;
lidade e conhecimento das atividades da organização, aumenta 4) Artefatos: utilizados para dar extensibilidade à linguagem
a habilidade para identificar gargalos, aumenta em potencial ao permitir a geração de novos elementos contextualizados a
a identificação das áreas para otimização, reduz o tempo de uma modelagem específica. Atualmente existem três artefatos
execução de tarefas, melhora a definição de direitos e papéis na básicos pré-definidos.
organização e é uma boa ferramenta para prevenção de fraudes,
auditoria e avaliação do cumprimento da regulamentação. As Tabelas 1 a 4 apresentam os elementos de cada categoria.

BPMN – Business Process Model and Notation Intalio|BPMS


A BPMN (Nota do Devman 1) é uma notação gráfica de- O Intalio|BPMS é uma suíte de sistemas voltados para o
senvolvida pela OMG (Object Management Group) com dois desenvolvimento completo do ciclo de vida do BPM. Desen-
objetivos principais: volvido pela Intalio (www.intalio.com) e disponibilizado

32 Engenharia de Software Magazine - Modelagem de processos de negócio com BPMN e Intalio


proce s s o

Nome Notação Descrição

Eventos Esses elementos afetam o fluxo do processo e em geral possuem uma causa (trigger) ou um impacto.

Atividades Termo genérico para uma tarefa a ser executada.

Gateways (portais, em tradução livre) Usado para controlar as convergências ou divergências da sequência do fluxo.

Tabela 1. Objetos de fluxo

Nome Notação Descrição

Fluxo de sequência Usada para indicar a ordem em que uma atividade será executada.

Fluxo de Mensagem Usada para mostrar o fluxo de mensagem entre dois processos participantes separados.

Associação Usado para associar dados, textos e outros artefatos com os objetos de fluxo.

Tabela 2. Objetos de conexão

Nome Notação Descrição

Pool Representa um participante no processo.

Lane Subpartição de pool. Usadas para categorizar e organizar atividades.

Tabela 3. Raias

Nome Notação Descrição

Objeto de dados Mecanismo para mostrar como os dados são produzidos ou requisitados pelas atividades.

Grupo Pode ser usado para documentação ou para análise. Não afeta a sequência de fluxo.

Anotação Fornecem ao usuário um mecanismo para informação textual ao leitor do diagrama.

Tabela 4. Artefatos

Edição 40 - Engenharia de Software Magazine 33


nas versões: community edition, total-
mente livre de encargos e com suporte Nota do DevMan 2
por meio de uma comunidade (www.
intalio.com/community) bastante ati-
va; e enterprise edition, com diversos Eclipse
componentes oferecidos apenas nesta O Eclipse é um ambiente integrado de desenvolvimento (IDE - Integrated Development Enviroment) (O.T. Interna-
versão. tional, 2003). É possível estender o ambiente de desenvolvimento do Eclipse para que atenda a diversas linguagens
O Intalio|Designer é uma ferramenta diferentes (JAVA, C, C++, PHP, entre outras) por meio do desenvolvimento de plugins para a plataforma.
que compõe o Intalio|BPMS e tem por
objetivo permitir ao usuário a criação
de diagramas de processo de negócios
e outras tarefas de monitoramento e
gestão de processo de negócios.
A ferramenta é oferecida em duas
versões:
• Comunitária: sem custos, mas com nú-
mero limitado de recursos. As limitações
não impedem a construção de modelos
funcionais;
• Enterprise: com acesso a todos os re-
cursos do sistema e com custo de licença
de aproximadamente U$9.500 ao ano.

O Intalio|Designer foi desenvolvido a


partir de uma série de plug-ins para Eclip-
se (ler Nota 2), o que possibilita o sistema
rodar em qualquer sistema operacional
suportado por essa plataforma. Outros Figura 1. O processo de compras antes de passar pela reengenharia
módulos podem ser instalados para con-
trole, gerenciamento de tarefas, acesso a qual passou alguns dos departamentos juntá-los, o departamento efetuava o
banco de dados e suporte a linguagens de da montadora de automóveis americana pagamento...”.
programação, como Java, PHP e C++. Ford Motors. Esse processo era ineficiente, pois
Outra ferramenta que compõe o O caso é apresentado em Hammer (1990) muitas vezes sumiam documentos, não
Intalio|BPMS é o Intalio|Server que e é um exemplo bem claro dos bons re- sendo possível juntá-los. Percebendo
tem como função executar códigos em sultados que se pode alcançar a partir da essa falha do processo, a Ford decidiu
BPEL gerados a partir do diagrama de abstração de determinado problema e sua por modelar seu processo e eliminar as
processos gerado pelo Intalio|Designer. modelagem. As Figuras 1 e 2 auxiliam na notas que eram enviadas para o depar-
As duas ferramentas em conjunto pos- melhor compreensão do caso. tamento de compras. Assim o processo
sibilitam o projeto, implementação e Originalmente o processo de aquisi- passou por uma reengenharia obtendo-
execução de processos de negócio com ção de mercadorias ocorria da seguinte se o seguinte resultado descrito a seguir,
recursos avançados, como geração de forma: e apresentado na Figura 2.
formulários Web e conexão com banco “Quando o departamento de compras “Agora, quando o departamento de
de dados. da Ford gerava uma nota de compra, compras inicia uma ordem, a informa-
A instalação das ferramentas é bastante ela era enviada para o departamento ção é lançada em um banco de dados
simples, podendo os arquivos de instala- de contas a pagar. Posteriormente, online. A nota de compra não era reme-
ção da versão comunitária serem obtidos quando o controle de material recebia tida a ninguém. Quando os produtos
a partir do site do Intalio (http://www. o produto, uma cópia do documen- chegavam na recepção, o funcionário
intalio.com/downloads). to de recebimento era enviada para que a recebia acessava a base de dados
o departamento de contas a pagar. para verificar se correspondia a uma
Exemplo de modelagem: o caso Ford Enquanto isso, o vendedor enviava ordem de compra pendente. Em caso
Para ilustrar o alcance da metodologia uma fatura para o departamento de positivo, aceitava-o e entrava com a
BPM e da notação BPMN, bem como contas a pagar. Ficava por conta do informação no sistema do computador
o apoio tecnológico oferecido pelo departamento de contas a pagar juntar (se o recebedor não puder detectar a
Intalio|Designer, a próxima seção apre- a ordem de compra, o documento de entrada para o respectivo bem, simples-
senta o processo de reengenharia pelo recebimento e a fatura. Se conseguisse mente devolvia a compra)”.

34 Engenharia de Software Magazine - Modelagem de processos de negócio com BPMN e Intalio


proce s s o

Figura 3. Elementos BPMN utilizados

tratamento das decisões dos gateways


e tratamento de como cada formulário
deve ser usado na modelagem do pro-
cesso da Ford.
Neste caso em específico, os formu-
lários foram usados para: (1) pessoas/
usuários iniciarem uma atividade do
processo (initProcess); (2) atribuir uma
Figura 2. O processo de compras após passar pela reengenharia
atividade para uma pessoa/usuário (cre-
ate and complete); e (3) notificar (notify).
Existe outra forma de usar o formulário,
mas como não foi utilizada nessa mode-
lagem, não será abordada.
Neste artigo a modelagem do processo
da Ford é apresentada em cinco subse-
ções para facilitar o entendimento:
• Criando o Projeto do Processo de Ne-
gócio Intalio|BPMS;
• Criando de Formulários;
• Iniciando a Modelagem: Tratando o uso
dos Formulários;
• Tratando a Ligação entre as variáveis
dos Formulários;
• Tratando Operação de Gateways.

Criando o Projeto do Processo de


Negócio Intalio|BPMS
Com o Intalio|Designer aberto, os
passos abaixo guiam o usuário para a
criação de um projeto.
Passo 1: Deve-se clicar com o botão di-
Figura 4. Adicionar Projeto do Processo de Negócio Intalio|BPMS
reito no espaço da aba “Explorar Proces-
so” e selecionar a opção “Nova - Projeto
Representação usando o Intalio Para modelar o processo do caso Ford do Processo de Negócio Intalio|BPMS”,
Para iniciar a modelagem do processo foram utilizados alguns elementos da conforme Figura 4.
do Caso Ford com Intalio, deve-se ter notação BPMN 1.2, e alguns recursos Passo 2: Uma nova janela é exibida,
o Intalio|Designer e o Intalio|BPMS do Intalio|Designer (versão 6.0.3). Os devendo-se dar um nome para o projeto.
devidamente instalados. Consulte o elementos da notação BPMN utilizados Neste caso, o projeto foi nomeado de
Help (http://community.intalio.com/ foram basicamente: pools, tasks, ga- “ProjetoCasoFord”, após isso deve-se cli-
getting-started/getting-started-with- teways (Exclusive Data-based gateway car em “Concluir”, conforme Figura 5.
intalio-bpms-server.html) e o Foru- e Parallel gateway), Flow Connector, Passo 3: Para criar qualquer recurso a ser
ms (http://community.intalio.com/ Message Connection e Event (Empty End adicionado ao projeto deve-se clicar com
forums/installation/steps-to-install- Event), conforme a Figura 3. o botão direito em cima do projeto e sele-
intalio-server/view.html) do Intalio Os recursos do Intalio|Designer uti- cionar a opção “Nova - recurso desejado”.
para entender melhor como instalar o lizados foram: formulários, tratamento Para criar o diagrama deve-se selecionar
Intalio|BPMS. dos dados passados entre formulários, a opção “Nova - Diagrama do Processo

Edição 40 - Engenharia de Software Magazine 35


Figura 5. Nomeando o Projeto.

de Negócio”, conforme Figura 6. Esse Figura 6. Adicionar Diagrama do Processo de Negócio


diagrama é onde, de fato, a modelagem
do processo é realizada
Passo 4: Uma nova janela é exibida, Iniciando a Modelagem: Tratando
devendo-se dar um nome para o recur- o uso dos Formulários
so adicionado ao projeto. Nesse caso, A parte em destaque da Figura 10 re-
o diagrama foi nomeado de “CasoFor- presenta uma parte do processo do Caso
dDiagram”, após isso deve-se clicar em Ford, o qual é explicado neste artigo e
“Concluir”, conforme Figura 7. abrange todos os recursos utilizados
durante toda a modelagem, tornando
Criando Formulários desnecessária a explicação do restante da
A criação de formulários é realizada modelagem do processo da Ford.
da mesma forma, selecionando a opção Algumas observações são necessárias
“Nova - Formulário do Workflow”, e antes de iniciar o tratamento da utilização
nomeando o formulário para “Compra- do formulário na modelagem do processo.
Form.xform”. Sendo assim: (1) parte-se do pressuposto
Os passos abaixo guiam o usuário para que já se têm criadas as pools que são
a criação/edição de formulários. abrangidas nesta parte do processo, sendo
Figura 7. Nomeando o Diagrama
Passo 1: Para melhor visualizar os elas: “process” (a qual representa o pro-
elementos a serem inseridos no formu- cesso a ser executado); “purchasing” (que
lário deve-se selecionar a Perspectiva representa o departamento de compras); e
“Intalio|BPMS Editor de Formulário”, “vendor” (que representa o fornecedor). As
conforme Figura 8. duas últimas devem ser setadas como não
Passo 2: Para acrescentar os elementos executáveis, pois representam usuários
disponíveis no Intalio|Designer para a interagindo no processo; (2) O processo
criação do formulário, basta clicar no modelado no Intalio|Designer se torna
elemento e arrastá-lo para a área qua- executável no servidor do Intalio, portanto Figura 8. Selecionar a Perspectiva “Intalio|BPMS
Editor de Formulário”
driculada. A Figura 9 já possui alguns a parte do processo que é executável deve
elementos, os quais compõem o formu- ser criada em uma pool executável, a qual
lário “CompraForm.xform”. Para editar no caso da Ford é a pool “process”; (3) O Os passos abaixo guiam o usuário para
tais elementos deve-se clicar no elemento processo da Ford é iniciado pelo Depar- dar início à modelagem do processo da
desejado e setar as configurações na aba tamento de Compras, o qual realiza uma Ford a partir das observações acima.
propriedaes. compra e, por meio desta, um pedido de Passo 1: Como já se sabe, o departa-
Para melhor entender as propriedades mercadoria é enviado ao fornecedor. O mento de compras (purchasing) é o
configuradas para este formulário, abai- fornecedor então deve definir se o pedido responsável pelo início do processo e o
xo são explicadas algumas dessas pro- pode ou não ser concluído. Enquanto isso, formulário “Compraform.xform” repre-
priedades, e os valores atribuídos a elas. o fluxo do processo é “pausado” só dan- senta a atividade de realizar compras.
A Tabela 5 descreve as propriedades e do continuidade após o posicionamento Sendo assim, tal formulário foi selecio-
valores atribuídos ao campo 3 – Data da do fornecedor com relação ao pedido de nado e arrastado até a pool “purchasing”
Compra do formulário. mercadoria solicitado. selecionando a opção “Use Compraform

36 Engenharia de Software Magazine - Modelagem de processos de negócio com BPMN e Intalio


proce s s o

for People Initiating Process Activity que termina com “.xform”, ou seja, o elemento “Message Connection”. De-
(initProcess)”, conforme Figura 11. Essa “Compraform.xform”, e não “Compra- vido ao formulário nessa conexão ser o
opção define que o Departamento de form.xform.xsd”. responsável pelo início do processo, essa
Compras (purchasing), que é um usuário Passo 2: Conectar o formulário da pool conexão deve ser feita do formulário
interagindo no sistema, inicie o processo “purchasing” com a atividade (task) para a atividade, ou seja, a “Message
por meio do formulário. “expedir compra” da pool “process”. Connection” deve sair do formulário
É importante ressaltar que o formulário Para realizar a conexão de atividades para a atividade “Expedir Compra”, e só
a ser arrastado para a pool é o formulário entre pools diferentes, deve-se utilizar depois o inverso, conforme Figura 12.
Passo 3: Setar o participante do proces-
so. Para a pool “purchasing”, o usuário
é o “purchasing-department” que é per-
tencente a “ford” e tem como papel “pur-
chasing-dep”. Para isso deve-se: clicar
na pool; clicar no ícone “Propriedades”;
clicar na aba “Workflow”; preencher os
campos “User(s)” e “Role(s)”, conforme
Figura 12. Esse passo deve ser realizado
em todas as pools representadas por
usuários no proCesso.
Após setar o participante, a pool passa
a apresentar um ícone com um “boneco”.
Esse usuário é utilizado posteriormente
durante a execução do processo modela-
do para logar no sistema.
Passo 4: O formulário “PedidoMerca-
doriaform.xform” foi criado e tem como
objetivo ser uma tarefa para o fornecedor,
representando a parte de decisão a ser
Figura 9. Propriedades do campo do formulário tomada quando chega um pedido de mer-
cadoria para o mesmo, fazendo com que o
fluxo do processo espere por sua decisão.
Para isso, o formulário foi adicionado na
pool do “vendor” selecionando a opção
“Use PedidoMercadoriaform for People
Activity (create and complete)”, a qual
representa essa necessidade.
Como a chamada para esse formulário
parte do processo, após este ter recebido
o pedido de compra, a “Message Con-
nection” deve sair da atividade da pool
“process” para o formulário adicionado
na pool “vendor”. Observe a Figura 13
para entender como deve ser realizado
esse relacionamento.
Figura 10. Processo caso Ford modelado no Intalio

Propriedade Valor (atribuído) Descrição


Label de Controle 3 - Data da Compra Nome apresentado no formulário.
Nome Data_da_Compra Nome da variável atribuída a esse campo.
Entrada/Saída in-out Permite o campo ser preenchido e lido.
Requerido true() Torna o campo obrigatório, permitindo o envio do formulário somente após ter preenchido tal campo.
Na propriedade “Somente Leitura”, quando atribuído o valor “true()”, mesmo que a propriedade “Entrada/Saída” esteja setada com o valor
Somente leitura
“in-out”, o campo só estará disponível para leitura, ou seja, não poderá ser modificado.
Tabela 5. Propriedades e valores do campo do formulário

Edição 40 - Engenharia de Software Magazine 37


Figura 11. Opções de uso de formulário

Figura 13. Atribuir nome para tarefas de usuários

Figura 14. Formulários

“Mapeamento” é exibida. Agora é só ligar as variáveis da saída


(output) do formulário “Compraform” às variáveis de entrada
(input) do formulário “PedidoMercadoriaform”,conforme a
Figura 12. Atribuindo participante a uma pool Figura 15.
Assim, quando o processo for executado, o formulário “Pedi-
Para acrescentar um formulário como sendo uma notificação doMercadoriaform” será exibido com esses campos (1, 2, 3 e 4)
para o usuário, deve-se selecionar a opção “Use nomedofor- já preenchidos e disponíveis apenas para visualizar (leitura),
mulario for Notification (notify)”. O tratamento das variáveis enquanto os outros campos deverão ser preenchidos.
dessa opção de formulário é tratado da mesma forma que
explicado anteriormente. Tratando Operação de Gateways
Passo 5: Atribuir um nome para a tarefa do usuário “vendor”, Esse item trata da utilização de gateways na modelagem do
criada no passo anterior. Para isso, deve-se clicar em: “Pedi- processo. O primeiro gateway a ser utilizado é o “Exclusive
doMercadoriaform-create”; depois no ícone “Propriedades”; Data-based gateway”, o qual possui a função de: (1) verificar
depois em “Workflow”; e atribuir um nome para “Workflow”, uma operação, neste caso, se o pedido foi concluído ou não; (2)
nesse caso foi atribuído “Pedido de Mercadoria”, conforme dar duas opções para continuar o fluxo do processo modelado;
Figura 13. (3) excluir uma das duas opções baseado no dado/valor rece-
bido. Os dois caminhos são: (1) pedido concluído (dá continui-
Tratando a Ligação entre as variáveis dos Formulários dade ao fluxo do processo); e (2) pedido não concluído, sendo
Passo 1: Tratar as variáveis passadas entre os formulários o caminho default (notifica ao departamento de compras que
“Compraform.xform” e “PedidoMercadoria.xform”. Para o pedido da mercadoria não foi concluído, por algum motivo
melhor entender como deve funcionar esse relacionamento, do fornecedor, e finaliza o processo).
observe a Figura 14. O caminho (1), que dá continuidade ao fluxo do processo,
Nota-se que os campos 1, 2, 3 e 4 do formulário “PedidoMerca- foi conectado ao “Parallel gateway”, permite duas ou mais
doriaform.xform” devem ser setados como “Somente Leitura”, atividades serem realizadas ao mesmo tempo. Sendo elas:
pois eles são “preenchidos” pela ligação com os campos 1, 2 e (1) notificar ao departamento de compras que o pedido foi
3 do formulário “Compraform.xform”. realizado com sucesso; (2) aguardar o fornecedor enviar a
Passo 2: Para fazer essa ligação deve-se primeiramente clicar mercadoria. Para este gateway não há a necessidade de tratar
em “fazer pedido”; depois em “Mapeamento”, assim a aba nenhuma operação.

38 Engenharia de Software Magazine - Modelagem de processos de negócio com BPMN e Intalio


proce s s o

Os passos abaixo guiam o usuário para Comentários Finais auxilia na detecção de gargalo no fluxo de
atribuir uma operação para o “Exclusive O fluxo de informações dentro de uma informações e permite aos tomadores de
Data-based Gateway” baseado nas des- empresa, ou de algum de seus setores, a decisão procurar formas de contorná-los.
crições desenvolvidas acima. iteração entre estas informações e seus Além da vantagem gerencial que esta suíte
Passo 1: Atribuir o tipo de condição responsáveis são vitais para seu bom ge- de ferramentas propicia, outras caracterís-
“default” para o caminho 2. Para atri- renciamento. Obter uma forma de capturar ticas fazem dela uma boa solução a quem
buir essa condição deve-se clicar com toda esta rede de informações não é tarefa busca ter uma visão ampla sobre os pro-
o botão direito no “Flow Connector” trivial, mas o uso de técnicas e ferramentas cessos em seus empreendimentos:
entre o “Exclusive Data-based gateway” adequadas trará, ao longo do tempo, retor- • A aderência a notação BPMN, que
e a atividade “notificar” e selecionar no na forma de processos otimizados. garante uma comunicação sem ruídos
“Condition Type - Defaut”, conforme • O Intalio|BPMS fornece apoio informa- entre os diversos participantes do pro-
Figura 16. tizado à modelagem de processos, o que cesso de tomada de decisão;
Após atribuir tal condição para o cami-
nho (2), este passa a apresentar um risco
indicando que ele é o caminho default,
conforme a Figura 17.
Passo 2: Atribuir condição/operação do
“Exclusive Data-based gateway”. Para atri-
buir uma condição/operação ao gateway,
primeiramente deve-se clicar no gateway e
depois no ícone “Mapeamento”. Para criar
uma operação, deve-se clicar no botão
“Criar uma nova operação” (botão qua-
drado vermelho) e clicar na área central.
Precisam-se criar duas operações, sendo
elas: (1) o símbolo de igual (=); (2) o valor
Figura 15. Tratando a ligação entre as variáveis dos formulários
“true”, conforme Figura 17.
Após isso, deve-se realizar a ligação
da variável do formulário que é tes-
tada pela condição do gateway, nesse
caso é a variável “Pedido_Concluido”
(caso não se lembre dessa variável é
sugerido que visualize o campo 5 do
formulário “PedidoMercadoriaform.
xform”, Figura 11). Este campo pos-
sui duas opções: sim (true); ou não
(false). Esses valores são passados do
formulário para o gateway quando se
atribui tal variável para ser verificada
na condição do gateway, conforme Figura 16. Atribuir condição default para caminho 2
Figura 17.
Nota-se na Figura 17 como é feita a
ligação, saindo da variável do formulá-
rio “Pedido_Concluido” e “true” ambos
ligando à operação (=) e saindo uma li-
gação dessa operação para a “condition”.
Sendo assim, a condição do gatway foi
tratada com sucesso.
Como o restante do processo utiliza
os recursos que já foram explicados
para a modelagem até este ponto, não se
faz necessária a explicação de como foi
modelado o restante do processo. Para
visualizar todo o processo modelado
basta visualizar a Figura 10. Figura 17. Tratando operação do Exclusive Data-based Gateway

Edição 40 - Engenharia de Software Magazine 39


• A possibilidade de integrar o processo modelado com outros Referências
softwares da empresa a partir do uso de webservices;
P. Kruchten, The Rational Unified Process: An Introduction, New York, New York,
• O uso de interfaces gráficas bastante intuitivas que garante USA: 2003.
a geração do modelo de processo e sua execução sem a neces-
R.K.L. Ko, “A Computer Scientist’s Introductory Guide to Business Process
sidade de se trabalhar diretamente com o código;
Management (BPM),” Crossroads, vol. 15, 2009, pp. 11-18.
Uma curva de aprendizado adequada a partir do momento
que se domine a notação BPMN. R.K.L. Ko, S.S.G. Lee, and E.W. Lee, “Business process management (BPM) standards:
a survey,” Business Process Management Journal, vol. 15, 2009, pp. 744-791.

Para melhor ilustrar o trabalho realizado durante este arti- OMG, “Business Process Model and Notation (BPMN),” Business, 2011.
go, foi disponibilizado o projeto da modelagem do processo S.A. White, “XPDL and BPMN” Management, 2003, pp. 221-238.
da Ford, como também o vídeo da modelagem explicada
S.A. White, “Introduction to BPMN” BPTrends, 2004, pp. 1-11.
neste artigo e a parte da simulação deste processo no site
http://www.sidornellas/mestrado/modelagem-de-processo. O.T. International, “Eclipse Platform Technical Overview,” Technology, vol. 2003,
2003, pp. 1-20.

Dê seu feedback sobre esta edição! Feedback M. Hammer, “Reengineering Work: Don ’t Automate , Obliterate,” Harvard Business
eu
Review, vol. 68, 1990, pp. 104-112.
s

A Engenharia de Software Magazine tem que ser feita ao seu gosto.


sobre e
Para isso, precisamos saber o que você, leitor, acha da revista!
s
ta
edição
Dê seu voto sobre este artigo, através do link:
www.devmedia.com.br/esmag/feedback

40 Engenharia de Software Magazine - Modelagem de processos de negócio com BPMN e Intalio


Desenvolvimento
Nesta seção você encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software

Boas práticas para escrita de métodos, funções e


procedimentos – Parte 2
Código Limpo

De que se trata o artigo? Resumo:


Aborda o tema Código Limpo com o objetivo de mos- Esta série de artigos discutirá os aspectos que per-
trar como o desenvolvedor pode usá-lo para melhorar meiam o assunto Código Limpo, seguindo a linha
a qualidade do código fonte de suas aplicações. A dis- de raciocínio que propõe um aumento na qualidade
cussão deste tópico é interessante uma vez que provê do código das aplicações existentes ou proporcio-
conhecimento ao desenvolvedor sobre como trans- nar conhecimento de como criar projetos de código
formar códigos considerados ruins em bons códigos melhores quando se está iniciando um novo pro-
demonstrando através de exemplos práticos as teorias jeto. Neste contexto, código limpo se refere a um
aqui abordadas. conjunto de características desejáveis de serem
Jacimar Fernandes Tavares encontradas no código de nossa aplicação. Algu-
jacimar.tavares@studentpartners.com.br Em que situação o tema é útil? mas dessas características são: ter um código que
Bacharel em Ciência da Computação FAGOC O tema se torna fundamental para desenvolvedores atenda os requisitos de eficiência, lógica do negó-
- Faculdade Governador Ozanam Coelho, que buscam cada vez mais melhorar suas aplicações cio bem modelada e definida em forma de código
Microsoft Student Partners.
ao focar em qualidade de código. Esta tarefa será fonte, mecanismos de tratamento de erro bem de-
possível graças ao conhecimento adquirido sobre finidos e código que não dê margem à necessidade
limpeza de código. da realização de novas otimizações.
Marco Antônio Pereira Araújo

A
maraujo@devmedia.com.br
É Doutor e Mestre em Engenharia de Sis- escrita de código de forma em sequência, mas também em blocos,
temas e Computação pela COPPE/UFRJ, sequencial, isto é, código que o que traz como benefício a organização
Especialista em Métodos Estatísticos Com-
é executado de cima para bai- do código em estruturas que podem
putacionais e Bacharel em Informática pela
UFJF, professor do curso de Bacharelado em xo, da primeira linha até a última, ser executadas em qualquer ponto de
Ciência da Computação da FAGOC, professor restringe uma ação a ser executada uma classe ou arquivo de código fonte
dos Cursos de Bacharelado em Sistemas de somente depois da sua anterior, não quando invocados.
Informação do Centro de Ensino Superior considerando estruturas condicionais Media nte a i mpor tâ nc ia das es-
de Juiz de Fora e da Faculdade Metodista
que fornecem mais de um caminho. truturas como métodos, funções e
Granbery, Analista de Sistemas da Prefeitu-
ra de Juiz de Fora, Editor da Engenharia de As funções, métodos e procedimentos procedimentos em uma aplicação, é
Software Magazine. permitem que o código seja organizado necessário que eles sejam escritos de

Edição 40 - Engenharia de Software Magazine 41


forma limpa e mantidos limpos durante todo o ciclo de cuidando para que o método seja legível e de fácil entendi-
vida do software. mento. É recomendado que cada linha do método contenha
Todas as teorias que serão abordadas neste artigo contribui- no máximo 150 caracteres, e que não necessite ser rolada para
rão para uma melhora efetiva na qualidade e legibilidade do o lado para ser lida, isto é, utilizar a barra de rolagem da IDE
código fonte, mas além das técnicas sobre código limpo, outros para visualizá-la por completo. Caso 150 caracteres forme uma
recursos se fazem importantes, que são as técnicas de refatora- linha que necessite mover a barra de rolagem da IDE para ser
ção de código. As teorias sobre código limpo não prevêem uma lida, então a linha deve ser menor que 150 caracteres. Também
forma controlada de modificar o código dos métodos, funções é aconselhável que um método não possua mais de 20 linhas,
e procedimentos como as técnicas de refatoração de código para que possa ser considerado pequeno.
(FOWLER, 2004), portanto a sugestão para que o sucesso seja É importante que, caso o método escrito possua mais de
obtido nessa tarefa é a utilização de refatorações em alguns 20 linhas, o desenvolvedor analise-o para se certificar se há
casos específicos. Quando necessárias, elas serão destacadas, a possibilidade de dividi-lo em dois ou mais métodos. Essa
bem como onde aprender mais sobre elas. tarefa pode ser auxiliada por uma técnica de refatoração de
Como dito anteriormente, os métodos, funções e procedi- código chamada Extrair Método (FOWLER, 2004) (ver Nota
mentos são estruturas de dados que permitem que tarefas do DevMan 1).
sejam organizadas em blocos e executadas quando necessário.
É fato também que todo desenvolvedor conhece os tipos de
funções, métodos e procedimentos existentes que são, no caso Nota do DevMan 1
dos métodos, estruturas que possuem um moderador de acesso
(privado, público e protegido, entre outros), um tipo de dados Refatoração Extrair Método.
de retorno (inteiro, string, void, entre outros), um nome para o A técnica de refatoração Extrair Método foi apresentada na edição de número 29 da
método e uma lista de parâmetros, que pode ser vazia. Alguns Engenharia de Software Magazine.
métodos possuem um retorno de alguma informação, e outros
não, como os que utilizam void como tipo de retorno.
Cada um dos tipos de métodos citados aqui, e também as O corpo dos métodos
funções e procedimentos, possuem suas particularidades. Entende-se por corpo do método todo código contido dentro
Nesse sentido, o objetivo deste artigo é apresentar as teorias do método. Existem algumas regras para a definição do corpo.
sobre código limpo, relativo a funções, que proporcionarão Uma delas deve ser aplicada caso haja estruturas de seleção e
ao desenvolvedor a capacidade de criar estruturas limpas. Os repetição no corpo de um método. A Listagem 1 ajudará no
assuntos que serão abordados na seção Funções permitirão ao entendimento.
desenvolvedor criar ou modificar métodos, procedimentos e
funções utilizando nomes significativos, isto é, que deixem Listagem 1. Método calcularNovoValorParcela
clara a intenção da estrutura. Outros pontos que receberão
01. public Decimal calcularNovoValorParcela(DateTime dataVencimento,
destaque neste artigo são referentes ao tamanho das estrutu- Decimal valorParcela)
ras, ao corpo dos métodos e aos seus objetivos. Além disso, 02. {
03. if (descobrirSePrestacaoVenceu(dataVencimento))
serão abordadas em detalhes todas as teorias que envolvem a 04. {
definição de bons parâmetros e os riscos das muitas respon- 05. Int16 qtdDiasEmAtrazo = obterQtdDiasAtrazo(dataVencimento);
06. Decimal jurosTotais = qtdDiasEmAtrazo * 2.38m;
sabilidades em uma única estrutura. 07. Decimal valorParcelaCorrigida = valorParcela + jurosTotais;
08. return valorParcelaCorrigida;
Funções 09. }
10. else
Nesta seção são abordadas teorias que serão utilizadas para 11. {
que o desenvolvedor possa melhorar o código fonte de suas 12. valorParcela = valorParcela - 7.25m;
13. return valorParcela;
funções, métodos, procedimentos e estruturas com propósito 14. }
semelhantes. O objetivo desta seção é mostrar as caracterís- 15. }
ticas desejáveis na escrita de funções para que elas possam
ser consideradas limpas. Aqui o nome método será adotado Nas linhas 3 a 14 da Listagem 1 é possível perceber a existên-
para representar não só os métodos propriamente ditos, mas cia de um if e um else. Caso a parcela esteja vencida, é executado
também as demais estruturas com propósito semelhante, como o bloco if. Caso contrário, é executado o else. Entrar no bloco if
funções e procedimentos. significa que a parcela será cobrada com juros. Entrar no bloco
else implica em cobrar a parcela com desconto.
O tamanho dos métodos Dada a existência de uma estrutura de seleção (ou de condi-
O trabalho de escrever um método deve ser precedido do ção), sugere-se que deva ter o menor número possível de linhas
trabalho de planejar qual ação tal método vai executar em para os blocos if e else, ou mesmo uma única linha no caso uma
seu corpo. Em seguida, a escrita do método deve conter a me- chamada para outro método. O que se deve fazer, portanto,
nor quantidade de linhas possível para definir seu objetivo, com o método da Listagem 1 é refatorá-lo com o auxilio da

42 Engenharia de Software Magazine - Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
proce s s o

técnica de refatoração de código Extrair Método. O resultado uma única tarefa. Caso um método possua duas tarefas, ele
da aplicação da técnica pode ser visto na Listagem 2. deverá ser dividido com a refatoração Extrair Método, ficando
com apenas uma das tarefas que ele realizava.
Listagem 2. Código da Listagem 1 refatorado Um método que possui uma única tarefa é mais fácil de
manter e se torna mais fácil de entender. O objetivo é que a sua
01. public Decimal calcularNovoValorParcela(DateTime dataVencimento,
Decimal valorParcela)
única tarefa seja feita de maneira clara e bem definida.
02. { Métodos cujos nomes são bem definidos tendem a facilitar a
03. if (descobrirSePrestacaoVenceu(dataVencimento))
identificação da tarefa que ele realiza. Se, ao ler o nome do mé-
04. {
05. return calcularParcelaEmAtrazo(dataVencimento, valorParcela); todo e ler o código do corpo do método for possível identificar
06. } uma tarefa que não corresponda ao que o nome do método diz
07. else
08. { que ele faz, então possivelmente ele deverá ser modificado.
09. return calcularParcelaComDesconto(valorParcela);
10. }
11. }
Regra Decrescente (MARTIN, 2009)
Esta regra descrita em Código Limpo – Habilidades Práticas
12. private Decimal calcularParcelaEmAtrazo(DateTime dataVencimento,
do Agile Software refere-se à forma como o código deve poder
Decimal valorParcela)
13. { ser lido. É importante que a leitura do código contido no corpo
14. Int16 qtdDiasEmAtrazo = obterQtdDiasAtrazo(dataVencimento); do método possa ser feita de forma sequencial, de cima para
15. Decimal jurosTotais = qtdDiasEmAtrazo * 2.38m;
16. Decimal valorParcelaCorrigida = valorParcela + jurosTotais; baixo, como um texto que narra os passos de uma ação que
17. return valorParcelaCorrigida; está sendo realizada.
18. }

19. private Decimal calcularParcelaComDesconto(Decimal valorParcela) Definindo os nomes para os métodos


20. {
Definir um nome para um método pode ser uma tarefa de
21. valorParcela = valorParcela - 7.25m;
22. return valorParcela; tentativa e erro, ou seja, define-se um nome, analisa-o para se
23. } certificar que é o melhor para o método. Se não for, muda-se
o nome para outro que melhor indique a ação que o método
Na Listagem 2 é possível ver que após a utilização da re- é responsável por executar. Um método pode ter um nome
fatoração Extrair Método, nos blocos if e else do método cal- grande, com mais de uma palavra. A meta é que ele reflita o
cularNovoValorParcela, dois novos métodos foram gerados, objetivo do método. Utilizar a notação primeira letra de cada
calcularParcelaEmAtrazo e calcularParcelaComDesconto, palavra maiúscula (exceto a primeira palavra, em caso de no-
ficando no corpo dos blocos if e else do método calcularNo- mes compostos) e as demais da mesma palavra minúsculas é
voValorPrestacao (linhas 5 e 9) a chamada para os métodos uma boa prática. A exemplo tem-se o método criarAluno(), que
extraídos, o que é a aplicação da regra, que tem como objetivo segue a notação descrita. Vale lembrar que algumas linguagens
simplificar o código do corpo dos métodos ao simplificar e de programação, como C#, são Case Sensitive, ou seja, definir
reduzir as estruturas de seleção e repetição contidas nele. um nome em maiúsculo não é o mesmo que definir o mesmo
Ainda sobre as estruturas de seleção, no caso um switch, é nome em minúsculo.
aconselhável que as estruturas sejam substituídas por algum Alguns desenvolvedores gostam de utilizar seus conheci-
recurso que elimine o switch, como o padrão de projeto Strategy, mentos em inglês para formular o que consideram nomes
tornando o método mais simples e menos complexo ao reduzir sofisticados para seus métodos, com o objetivo de mostrar
sua complexidade ciclomática (ver Nota do DevMan 2). que conhecem uma língua estrangeira, tentando impressionar
outros desenvolvedores. Caso não seja importante que o nome
dos métodos seja escrito em outra língua, não o faça, a menos
Nota do DevMan 2 que a palavra em questão seja de conhecimento de qualquer
programador. Definir um método com o nome em português
Inserindo o padrão de projeto Strategy. é mais simples e objetivo, podendo facilitar o entendimento
Para aprender sobre como eliminar lógica condicional, leia a refatoração para pa- do nome por parte de um futuro desenvolvedor que dará
drões Substituir Lógica Condicional por Strategy, na edição de número 32 da Enge- manutenção no código.
nharia de Software Magazine.
Definindo parâmetros para métodos
A definição de parâmetros para um método, assim como a
Definindo o objetivo dos métodos definição do nome e do corpo, deve seguir algumas recomen-
Definir o objetivo de um método gira em torno do que ele dações. A primeira delas é relativa à quantidade de parâmetros
deve fazer, ou seja, qual ação a ser executada é de sua responsa- aconselháveis, que deve ser de no máximo três. O ideal é não
bilidade. Definir a responsabilidade de um método implica em haver parâmetros, mas em alguns casos isso é impossível.
codificar a tarefa pela qual ele é responsável. Nota-se que foi Métodos com parâmetros exigem um esforço maior por parte
dito tarefa e não tarefas, pois um método deve apenas realizar do desenvolvedor para entendê-lo, visto que, além de ter que

Edição 40 - Engenharia de Software Magazine 43


entender o objetivo do método e como ele chega ao seu obje- método como método de dois objetivos diferentes, o que fere
tivo, através de uma análise do código contido nele, o desen- um dos princípios básicos de um método que é o de possuir
volvedor terá ainda que entender o porquê da existência dos apenas um objetivo (MARTIN, 2009).
parâmetros e o que cada um deles representa para o método. Os métodos, quanto aos seus parâmetros, podem ser classi-
Esta recomendação na prática é difícil de ser implementada, ficados como métodos nulos, que são os métodos que não tem
mas os benefícios existem. parâmetro, métodos mônades, que são os que possuem apenas
Quando o assunto é teste unitário, os benefícios da não exis- um parâmetro, métodos díades, que são os que possuem dois
tência de parâmetros são ainda maiores. Testar um método parâmetros, métodos tríades, que possuem três parâmetros
sem parâmetros é mais simples que testar um com parâmetros, e métodos políades, que são os que possuem mais de três
dado o fato de que, no caso de mais de um parâmetro, deve-se parâmetros. A Listagem 4 possui um exemplo de cada um
testar uma série de dados para saber as combinações aceitas desses métodos.
pelos parâmetros, e as que não são. Trabalhar com métodos que possuem mais de dois parâ-
Em relação aos nomes dos parâmetros, os princípios devem metros, isto é, díades, tríades e políades, requer uma maior
seguir as mesmas regras discutidas até o momento sobre boas atenção na passagem de dados. O método da linha 35 da
práticas para definição de nomes, Nomes Significativos (ver Listagem 4, por exemplo, pode retornar um valor diferente ou
Nota do DevMan 3). Contudo, pode-se utilizar uma notação ter um comportamento inesperado caso os parâmetros sejam
desejada para a definição de nomes, como a descrita neste invertidos. No caso, passar o valor do parâmetro min no lugar
artigo. do parâmetro max, ou vice-versa.

Os riscos dos métodos com muitas responsabilidades


Nota do DevMan 3 Neste artigo já foi apresentada uma solução para a divisão de
métodos que possuem mais de uma responsabilidade, que é o
Nomes Significativos. uso da refatoração Extrair Método. Esse assunto é importante
A seção que aborda a importância da definição de nomes significativos em de tal forma que deve ser discutido em detalhes. Um método
uma aplicação foi publicada na edição de número 39 da Engenharia de Software com duas ou mais responsabilidades pode ocasionar proble-
Magazine. mas para o sistema como um todo. Considere a Listagem 5.
O método da Listagem 5, calcularMedia, foi implementado
devido à necessidade do sistema em exibir a quantidade de
A definição dos tipos que podem ser utilizados para a de- notas existentes em uma lista de notas, descobrir a média das
claração de um parâmetro deve seguir as necessidades dos notas contidas na lista, exibir a quantidade de notas da lista
métodos, mas um tipo em específico deve ser evitado que é o e exibir a média calculada. Rapidamente o desenvolvedor o
tipo boolean. Para entender o porquê da recomendação, deve-se implementou e resolveu todos os problemas em um único
analisar o código da Listagem 3. método, com pouco esforço de programação.
O método calcularMedia funciona perfeitamente de acordo
Listagem 3. Método com parâmetro do tipo Boolean com a necessidade do sistema no momento, mas possui alguns
problemas conceituais. O primeiro deles é que seu nome não
01. public Decimal decidirNovoValorParcela(Boolean situacaoAtual)
02. {
revela exatamente o que ele faz (apenas uma de suas responsa-
03. Decimal valorParcela = obterValorParcela(); bilidades, que é calcular média). Trocar seu nome para sinalizar
04. if (situacaoAtual == true)
o que ele realmente faz não é uma boa opção, visto que ele tem
05. {
06. Int16 qtdDiasEmAtrazo = obterQtdDiasAtrazo(); várias responsabilidades e um novo nome seria muito grande,
07. Decimal jurosTotais = qtdDiasEmAtrazo * 2.38m; além de não resolver todos os problemas.
08. Decimal valorParcelaCorrigida = valorParcela + jurosTotais;
09. return valorParcelaCorrigida; Outro problema conceitual de calcularMédia está relacionado
10. } ao fato de que, se o sistema necessitar obter somente a média e
11. else
12. {
não exibi-la seria impossível, já que chamar o método implica
13. valorParcela = valorParcela - 7.25m; em também exibir na tela a média capturada. Em outra hipó-
14. return valorParcela;
tese, poderia ser preciso obter somente a quantidade de notas
15. }
16. } existentes na lista, mas isto também não seria possível, já que
o método não permite executar uma única responsabilidade.
O acoplamento existente entre as quatro responsabilidades
O método da Listagem 3 toma duas diferentes decisões presentes no método calcularMedia pode gerar outro proble-
dependendo do valor que recebe por parâmetro. Se o valor ma, como um efeito colateral, ao se realizar uma modificação
recebido for verdadeiro (true), linha 4 da Listagem 3, uma ação em uma dessas responsabilidades. Um exemplo seria o de
em específico é tomada, caso contrário outra ação diferente é querer, além de descobrir quantas notas há na lista de notas
executada. O fato de um valor booleano ser o ponto principal (linha 3, Listagem 5), também o desenvolvedor necessitar
para que uma das ações seja a escolhida pode caracterizar o exibir a lista de notas e não apenas a quantidade de notas.

44 Engenharia de Software Magazine - Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
proce s s o

Listagem 4. Exemplo de métodos e suas classificações

01. public class Aluno 40. Commando.ExecuteNonQuery();


02. { 41. SqlDataReader dados = Commando.ExecuteReader();
03. // Método nulo (sem parâmetros) 42. while (dados.Read())
04. private Int64 consultarID() 43. {
05. { 44. Aluno aluno = new Aluno ();
06. ... 45. aluno.ID = Convert.ToInt64(dados[0]);
07. Commando.ExecuteNonQuery(); 46. aluno.Matricula = Convert.ToString(dados[1]);
08. SqlDataReader dados = Commando.ExecuteReader(); 47. aluno.Nomealuno = Convert.ToString(dados[2]);
09. Int64 ultimoIDtop = 0; 48. listaAlunos.Add(aluno);
10. while (dados.Read()) 49. }
11. { 50. dados.Close();
12. ultimoIDtop = Convert.ToInt64(dados[0]); 51. return listaAlunos;
13. } 52. }
14. dados.Close(); 53. catch
15. return ultimoIDtop; 54. {
16. } 55. return listaAlunos;
17. // Método Mônade (com 1 parâmetro) 56. }
18. private Boolean gravaAluno(Aluno aluno) 57. }
19. { 58. // Método Tríade (Com três parâmetros)
20. ... 59. public ArrayList visualizaAluno(Int32 id, String matricula, String nome)
21. try 60. {
22. { 61. ArrayList aluno = recuperaAluno(id, matricula, nome);
23. Commando9.ExecuteNonQuery(); 62. return aluno;
24. return true; 63. }
25. } 64. // Método Políade (Com quatro parâmetros)
26. catch 65. private Boolean atualizarAluno(Int32 id, String nome, String cpf, String rg)
27. { 66. {
28. String queryExcluiLoginAlunoAlocado = “DELETE FROM TBLogin 67. SqlConnection Conexao = classAcesso.getConexao();
WHERE IDLOGIN = ‘” + aluno.Idlogin + “’”; 68. ...
29. SqlCommand Commando13 = new SqlCommand(queryExcluiLogin 69. try
AlunoAlocado, Conexao); 70. {
30. Commando13.ExecuteNonQuery(); 71. Commando.ExecuteNonQuery();
31. return false; 72. return true;
32. } 73. }
33. } 74. catch
34. // Método Díade (Com dois parâmetros) 75. {
35. private ArrayList consultarAlunosBanco(Int64 min, Int64 max) 76. return false;
36. { 77. }
37. ... 78. }
38. try 79. }
39. {

Listagem 5. Método com duas responsabilidades Listagem 6. Método calcularMedia refatorado

01. public void calcularMedia(ArrayList listaNotas) 01. public void calcularMedia(ArrayList listaNotas)
02. { 02. {
03. Int32 quantidadeNotas = listaNotas.Count; 03. Int32 quantidadeNotas = obterQuantidadeNotas(listaNotas);
04. Decimal soma = 0.0M; 04. Decimal soma = 0.0M;
05. Decimal média = 0.0M;
05. Decimal média = 0.0M;
06. for (Int32 i = 0; i < listaNotas.Count; ++i)
06. for (Int32 i = 0; i < listaNotas.Count; ++i)
07. {
08. soma += Convert.ToInt32(listaNotas[i]); 07. {
09. } 08. soma += Convert.ToInt32(listaNotas[i]);
10. média = soma / quantidadeNotas; 09. }
10. média = soma / quantidadeNotas;
11. Console.WriteLine(“Quantidade de notas: “ + quantidadeNotas); 11. exibirQuantidadeNotas(quantidadeNotas);
12. Console.WriteLine(“Média : “ + média); 12. exibirMedia(média);
13. Console.Read(); 13. }
14. } 14. private Int32 obterQuantidadeNotas(ArrayList listaNotas)
15. {
Implementar essa nova necessidade ao método vai gerar o 16. return listaNotas.Count;
efeito colateral de toda vez que ele for invocado, a lista de 17. }
18. private void exibirQuantidadeNotas(Int32 quantidadeNotas)
notas também vai ser exibida, o que é um problema, uma vez 19. {
que nem todos os pontos do sistema necessitariam visualizar 20. Console.WriteLine(“Quantidade de notas: “ + quantidadeNotas);
a lista de notas. 21. }
22. private void exibirMedia(Decimal média)
Com a divisão de calcularMedia, poderá se resolver o 23. {
principal dos problemas conceituais citados: mais de uma 24. Console.WriteLine(“Média : “ + média);
responsabilidade por método. A divisão também pode reduzir 25. Console.Read();
26. }
a possibilidade de surgirem efeitos colaterais como o citado,
mediante as modificações futuras. A Listagem 6 mostra como

Edição 40 - Engenharia de Software Magazine 45


ficou o método calcularMedia depois de aplicada a refatoração a função deve deixar clara a ação que realiza que, no caso da
Extrair Método. função entre as linhas 21 a 31, é limpar datas inválidas. Utilizar
O método calcularMedia agora tem suas responsabilidades Return ao invés do nome da função para retornar dados facilita
divididas com mais três métodos: obterQuantidadeNotas, a leitura da função, além de diminuir o impacto de mudanças
exibirQuantidadeNotas e exibirMedia. como alteração no nome da função, que neste caso levará a
A divisão das responsabilidades do método calcularMedia alterar todas as linhas onde o nome da função é utilizado no
da Listagem 5 para os métodos da Listagem 6 proporcionaram corpo da função.
a divisão de basicamente duas operações diferentes que um A função das linhas 21 a 31 da Listagem 7 deve ser modi-
método pode realizar, que são executar comando ou consultar ficada para ficar como a função da Listagem 8. As linhas 5 e
informações (estas operações são conhecidas como Operação 9 da Listagem 8 foram modificadas em relação à sua função
Comando-Consulta) e não devem coexistir em um mesmo correspondente na Listagem 7.
método. A operação comando caracteriza-se na Listagem 5
pela execução dos comandos que levam ao resultado do cálculo Listagem 7. Funções em Pascal
da média (linhas 4 a 10) e da descoberta do número de notas 01. Function trocaVirgulaPorPonto(Valor: string): String;
contidas na lista (linha 3). Já a operação consulta leva a exibir os 02. var i:integer;
dados obtidos pelos comandos executados (linhas 11 e 12). 03. begin
04. if Valor <>’’ then begin
05. for i := 0 to Length(Valor) do begin
Os problemas do código duplicado 06. if Valor[i]=’,’ then Valor[i]:=’.’;
07. end;
Lidar com código duplicado requer atenção, visto que nem 08. end;
sempre a duplicação é tão visível como de um control-C e 09. Result := valor;
10. end;
control-V. Alguns casos exigem análise detalhada para se 11. Function trocarPontoPorVirgula(Valor: string): String;
identificar a duplicação. Um código é considerado duplicado 12. var i:integer;
quando em outro ponto do sistema há outro trecho de código 13. begin
14. if Valor <>’’ then begin
com o mesmo propósito, mesmo que a escrita não seja igual. 15. for i := 0 to Length(Valor) do begin
Código duplicado pode estar em diversas classes, em seus 16. if Valor[i]=’.’ then Valor[i]:=’,’;
17. end;
métodos e até atributos. É possível ter atributos duplicados em 18. end;
subclasses de uma hierarquia, nesse caso a duplicação deve 19. Result := valor;
20. end;
ser removida e o atributo levado para a superclasse. O mesmo 21. Function limparDatasInvalidas(campo: String): String;
pode acontecer com métodos nas subclasses. Algumas cos- 22. begin
tumam carregar comportamentos semelhantes as das outras 23. if(campo = ‘11/11/1111’)then
24. begin
subclasses, quando na verdade o comportamento semelhante, 25. limparDatasInvalidas:= ‘ / / ‘;
isto é, o código duplicado, deveria estar na superclasse. Caso os 26. end
27. else
métodos que possuem código duplicado não pertençam a uma 28. begin
hierarquia de classes, o que se tem a fazer é remover o código 29. limparDatasInvalidas:= campo;
30. end;
duplicado para um outro método extraído (Extrair Método 31. end;
ajuda neste sentido), e fazer com que os métodos o invoquem,
ao invés de carregar o trecho duplicado em seus corpos. Listagem 8. Função limparDatasInvalidas modificada

01. Function limparDatasInvalidas(campo: String): String;


Retorno de funções 02. begin
Linguagens como Pascal possuem um recurso de permitir 03. if(campo = ‘11/11/1111’)then
04. begin
que o desenvolvedor defina o nome para suas funções (func- 05. Result:= ‘ / / ‘;
tions) e use a própria declaração da função como retorno. O 06. end
07. else
código da Listagem 7 servirá como exemplo. 08. begin
As funções das linhas 1 a 10 e 11 a 20 são funções simples 09. Result:= campo;
que desempenham o papel de trocar um ponto em meio a uma 10. end;
11. end;
string por uma vírgula, e trocar uma vírgula em meio a uma
string por um ponto. Nota-se, nas linhas 9 e 19 que, após ter-
minado o trabalho da função, a string modificada é retornada, Como utilizar os conceitos vistos nesta seção
utilizando a palavra Result. Esta é uma prática comum a vários Os conceitos que esta seção abordou devem ser úteis para
desenvolvedores que trabalham com Pascal. que o desenvolvedor possa criar ou tornar limpos métodos,
Funções em Pascal fornecem uma outra maneira de retornar funções, procedimentos e estruturas semelhantes.
os resultados de uma função, que é utilizar a declaração da Código Limpo (MARTIN, 2009) sugere que o desenvol-
função (nome da função especificamente) para retornar o re- vedor escreva seus métodos da forma como inicialmente
sultado de uma função (ver linhas 25 e 29 da Listagem 7). Essa julgarem melhor. Posteriormente escrevem-se casos de teste
prática não é recomendada, visto que o nome definido para unitários para que se certifique que os métodos funcionam

46 Engenharia de Software Magazine - Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
proce s s o

como planejados. Em seguida, executam-se as modificações Conclusão


necessárias para que o método se torne limpo. Basicamente, Este artigo teve por objetivo apresentar boas práticas para
segue-se esta sequência de passos: a escrita ou reescrita de métodos, funções e procedimentos.
• Escrevem-se métodos para satisfazerem as necessidades do Aqui foram abordados pontos relativos a essas estruturas,
sistema. como o tamanho que elas devem ter, como definir o corpo das
• Escrevem-se casos de teste unitários. estruturas, como definir seus objetivos, nomes e parâmetros,
• Rodam-se os testes para se certificar que os métodos funcio- além de abordar importantes aspectos sobre as responsabili-
nam como necessário. dades de tais estruturas, e como lidar com código duplicado,
• Inicia-se a análise das responsabilidades que o método pos- um problema que muita das vezes causa efeitos colaterais
sui. Se mais de uma responsabilidade for detectada, divide-se indesejáveis.
o método com a refatoração Extrair Método. É importante que o desenvolvedor manipule as informações
• Remove-se toda duplicação existente no método em análise contidas neste artigo como sugere o tópico Como utilizar os
e nos métodos extraídos, caso existam. conceitos vistos nesta seção, pois ele fornece um passo a passo
• Rode os casos de testes para se certificar que o método ainda que pode ser útil para que o processo de tornar o código mais
funciona como antes das modificações. limpo não cause problemas à aplicação ao invés de contribuir
• Repetem-se os passos até aplicar as teorias que tornarão o positivamente.
método limpo. Também é importante destacar a necessidade da definição
• Certifica-se que os nomes definidos para os métodos cor- de casos de testes unitários para que as mudanças ocorridas
respondem ao objetivo que cada um deles foi concebido. Caso com o processo de limpeza do código não venham a modifi-
contrário, modificam-se os nomes até que se encontrem nomes car o projeto de código de tal forma a gerar novos defeitos ou
significativos. remover funcionalidades. De nada adianta aplicar as abor-
• Os métodos devem estar em constante análise, para sempre dagens descritas neste artigo e não se ter a garantia que os
estarem em mudanças, com o objetivo de torná-los cada vez testes proporcionam de que a estrutura a ser limpa continua
mais limpos. funcionando.

Um recurso que não poderia deixar de ser citado neste artigo Referências
é o de utilizar a técnica de refatoração para padrões Compor MARTIN, Robert C, 2009. Código Limpo: Habilidades Práticas do Agile Software, 1ª ed. Rio de
Método, que auxiliará no processo de tornar o corpo de um Janeiro: Alta Books, 2009.
método considerado confuso em um mais simples, ao modifi-
car o código tornando-o mais legível, sem remover nenhuma FOWLER, Martin. Refatoração: aperfeiçoando o projeto de código existente, 1ª ed. Porto Alegre:
funcionalidade (ver Nota do DevMan 4). Bookman, 2004.

Nota do DevMan 4 Dê seu feedback sobre esta edição! eu


Feedback

s

A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
Compor Métodos Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
edição
A refatoração para padrões Compor Método foi publicada na edição de núme- Dê seu voto sobre este artigo, através do link:
ro 31 da Engenharia de Software Magazine.
www.devmedia.com.br/esmag/feedback

Edição 40 - Engenharia de Software Magazine 47


Desenvolvimento
Nesta seção você encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software

Refatoração para Padrões – Parte 13 (Final)


Refatorações Utilitárias: Extrair Parâmetro, Encadear Construtores e Unificar
Interfaces

De que se trata o artigo?


Aborda o tema refatoração para padrões com o ob-
jetivo de mostrar como o desenvolvedor pode usá-lo
para melhorar o código-fonte de suas aplicações.
A discussão deste tema é importante para prover
conhecimento ao desenvolvedor sobre refatoração
para padrões e demonstrar através de exemplos
práticos a aplicação das técnicas de refatoração para
padrões Encadear Construtores, Unificar Interfaces e

M
Jacimar Fernandes Tavares elhorar o projeto de código Extrair Parâmetro.
jacimar.tavares@studentpartners.com.br existente implica em mui-
Bacharel em Ciência da Computação FAGOC tas vezes dividir trechos de Em que situação o tema é útil?
- Faculdade Governador Ozanam Coelho, código em outras partes menores. Um O tema se torna fundamental para desenvolvedores
Microsoft Student Partners.
exemplo seria a divisão de um método que já estão familiarizados com padrões de proje-
considerado grande em outros vários to e já os implementam em seus softwares e que
métodos menores. A iniciativa de dividir querem saber mais sobre refatoração para padrões,
Marco Antônio Pereira Araújo um método em outros menores é uma conhecendo os benefícios que sua utilização traz.
maraujo@devmedia.com.br decisão que deve ser tomada de acordo
É Doutor e Mestre em Engenharia de Sis- com a necessidade do desenvolvedor no Resumo:
temas e Computação pela COPPE/UFRJ, momento. É fato que toda divisão requer O objetivo deste artigo é apresentar as técnicas de
Especialista em Métodos Estatísticos Com-
cuidados, que vão desde dominar o refatoração Extrair Parâmetro, Encadear Constru-
putacionais e Bacharel em Informática pela
UFJF, professor do curso de Bacharelado em processo de refatoração de código até o tores e Unificar Interfaces.
Ciência da Computação da FAGOC, professor domínio de técnicas de testes que darão
dos Cursos de Bacharelado em Sistemas de a segurança ao desenvolvedor de que
Informação do Centro de Ensino Superior o processo de refatoração foi efetuado maiores em vários métodos menores, o
de Juiz de Fora e da Faculdade Metodista
com sucesso. desenvolvedor poderá se deparar com a
Granbery, Analista de Sistemas da Prefeitu-
ra de Juiz de Fora, Editor da Engenharia de Seguindo esta vertente da refatoração necessidade de adicionar um novo parâ-
Software Magazine. de código, que é a divisão de métodos metro a um dos métodos recém criados,

48 Engenharia de Software Magazine - Refatoração para Padrões – Parte 13 (Final)


proce s s o

pois se verificou a necessidade de se obter mais informações operações. Como as informações antes disponíveis são poucas,
para que o método realize seu trabalho. Nesse sentido, foi acrescenta-se um parâmetro ao método.
criada a refatoração de código Adicionar Parâmetro, que per- Mecânica:
mite ao desenvolvedor realizar a tarefa de adicionar novos • Certifique-se de que o método não tem sua assinatura imple-
parâmetros com segurança. mentada em uma super ou subclasse. Caso tenha, cada passo
O desenvolvedor, ainda durante o processo de refatoração de da mecânica deve ser repetido em todas as implementações
código, poderá precisar remover parâmetros de métodos modi- existentes.
ficados e levá-los para outros métodos. A refatoração Remover • Cria-se um novo método com o nome desejado e com a lista
Parâmetro também foi criada para auxiliar, com segurança, o de parâmetros do método antigo mais o parâmetro que se
desenvolvedor nessa tarefa (ver Nota do DevMan 1). deseja acrescentar.
Neste contexto, este artigo abordará as refatorações para • Move-se o corpo do método para o método recém criado e
padrões Encadear Construtores, Unificar Interfaces e Extrair apaga-se o método antigo.
Parâmetro, todas pertencentes ao último conjunto das refatora- • Modifica-se os pontos que chamam o método antigo, para que,
ções para padrões que esta série aborda, que são as refatorações a partir desse momento, passem a referenciar o método novo.
para padrões utilitárias. É fundamental que o desenvolvedor • Executa-se os testes.
esteja familiarizado com as refatorações Adicionar Parâmetro
e Remover Parâmetro. A seguir são apresentadas as refatorações para padrões En-
O objetivo das técnicas de refatoração para padrões deste cadear Construtores, Unificar Interfaces e Extrair Parâmetro,
artigo é suprir necessidades como eliminar código duplicado. pertencentes ao conjunto das refatorações utilitárias, as últimas
Com esse objetivo, tem-se a refatoração para padrões Encadear refatorações para padrões desta série de artigos.
Construtores, que possibilita que métodos construtores sejam
vinculados, o que garante a eliminação de grande parte do Refatoração para padrões Encadear Construtores
código duplicado entre eles. Resumo: Devido à grande quantidade de código duplicado
Há ainda momentos em que o desenvolvedor precisa ter in- em vários construtores, utiliza-se esta técnica a fim de remover
terfaces de classes idênticas. Atuando neste sentido, Unificar parte do código duplicado.
Interfaces fornece um mecanismo para que interfaces passem Motivação: A maior motivação para essa refatoração para
a atender as necessidades de igualdade do desenvolvedor. padrões está ligada ao fato de que código duplicado aumenta
Um recurso útil durante o processo de refatoração de códi- a chance de surgirem problemas no código quando se faz
go é a extração de novos parâmetros para os métodos recém uma manutenção. Com essa técnica, consegue-se encadear
extraídos. Extrair Parâmetro é a refatoração para padrões uti- os construtores de tal forma que um acesse o outro, e assim
litária que atua nesse cenário, sendo fundamental em alguns código duplicado possa ser eliminado.
processos de refatoração de código. Mecânica:
1. Busca-se por construtores que podem invocar um outro
construtor, afim de que a duplicação possa ser removida.
Nota do DevMan 1 2. O processo deve ser repetido em todos os construtores
possíveis.
3. Alteram-se os moderadores de acesso dos construtores para
Refatorações apresentadas em outros artigos privados, caso seja possível.
A técnica de refatoração Remover Parâmetro foi apresentada na edição de número
33 da Engenharia de Software Magazine. Exemplo: A classe Aluno possui três construtores, com muito
código duplicado, como pode ser visto na Listagem 1.
Analisando os dois primeiros construtores da Listagem 1,
Refatoração Adicionar Parâmetro percebe-se que há muito código duplicado com o terceiro cons-
Esta refatoração é pertencente ao grupo de refatorações trutor, que é o que recebe como parâmetro dados para todos os
classificadas como Tornando as Chamadas de Métodos Mais atributos. Aplicando a técnica Encadear Construtores, tem-se um
Simples. código com menos duplicação, como pode ser visto na Listagem 2,
Nome da refatoração: O nome original da refatoração é Acres- que mostra o resultado desta refatoração para padrões.
centar Parâmetro (FOWLER, 2004), mas é citada nas técnicas
de refatoração para padrões como Adicionar Parâmetro. Refatoração para padrões Unificar Interfaces
Resumo: Alguns métodos precisam de mais informações Resumo: Há momentos em que surge a necessidade de se
para executar determinada tarefa. Acrescenta-se um parâme- ter uma superclasse e/ou uma interface idêntica à interface
tro a ele e alteram-se as chamadas para que possam fornecer de uma subclasse. Modifica-se a superclasse e/ou a interface
esse dado. para que se tenham interfaces idênticas.
Motivação: Usa-se esta refatoração quando um método recém Motivação: Às vezes, dada a necessidade de se instanciar
modificado precisa de mais informações para realizar suas objetos polimorficamente, o desenvolvedor precisa, como

Edição 40 - Engenharia de Software Magazine 49


pré-requisito para essa tarefa, que a interface da superclasse Mecânica:
seja idêntica à da subclasse para que assim ele possa passar a 1. Para cada método da subclasse que deseja ter acesso através
tarefa de instanciar objetos à subclasse através de um método da superclasse, repita os passos da mecânica. Este método
implementado na subclasse. Quando as interfaces não são presente na subclasse, mas não na superclasse, é classificado
iguais, surge a necessidade da aplicação desta técnica de refa- como método ausente.
toração para padrões, que unificará a interface da superclasse 2. Faça uma cópia do método ausente para a superclasse ou
e a tornará idêntica à da subclasse. interface. Remova o código do corpo do método copiado para
a superclasse ou interface e modifique-o para abstrato.
Listagem 1. Classe Aluno 3. Execute os testes.
01. public class Aluno
02. { Exemplo: A superclasse Emprestimo não possui interface
03. …
04. public Aluno(String nome, String cpf )
idêntica à subclasse EmprestimoPessoa. Assim, o método Cal-
05. { culoDePrestacao presente na subclasse EmprestimoPessoa não
06. this.Nomealuno = nome; pode ser acessado polimorficamente pela superclasse Empres-
07. this.Cpf = cpf;
08. BuscarAluno(this); timo. A Listagem 3 mostra a subclasse EmprestimoPessoa.
09. } Aplicando o passo 1 desta técnica, copia-se o método Cal-
10. public Aluno(String nome, String cpf, String rg)
11. { culoDePrestacao, Listagem 3, para a superclasse Emprestimo
12. this.Nomealuno = nome; e remove-se o corpo do método. Declare-o como abstrato.
13. this.Cpf = cpf;
14. this.Rg = rg;
Para que o método CalculoDePrestacao possa ser acessado
15. AtualizarDocumentos(this); polimorficamente, modifique-o permitindo a implementação
16. } polimórfica. A Listagem 4 mostra a superclasse Emprestimo e
17. public Aluno(String nome, String cpf, String rg, String rua, UInt32
numeroCasa, String bairro, String cidade, String estado, String cep) a Listagem 5 mostra como ficou o método CalculoDePrestacao
18. { depois das mudanças.
19. this.Nomealuno = nome;
20. this.Cpf = cpf;
21. this.Rg = rg; Listagem 3. Classe EmprestimoPessoa
22. this.Rua = rua;
23. this.Numerocasa = numeroCasa; 01. public class EmprestimoPessoa: Emprestimo
24. this.Bairro = bairro; 02. {
25. this.Cidade = cidade; 03. public override Decimal calculoDePrestacao(Decimal valorTotal,
26. this.Estado = estado; Decimal valorEntrada, UInt32 qtdParcelas)
27. this.Cep = cep; 04. {
28. }
05. Decimal valorParcela = valorTotal - valorEntrada;
29. …
06. valorParcela = Convert.ToDecimal((valorParcela / qtdParcelas) + 0.2m);
30. }
07. gravarParcela(valorParcela);
08. return valorParcela;
Listagem 2. Classe Aluno refatorada 09. }
10. ...
01. public class Aluno
11. }
02. {
03. …
04. public Aluno(String nome, String cpf ) Listagem 4. Superclasse Emprestimo
05. {
06. Aluno aluno = new Aluno(nome, cpf, null, null, 0, null, null, null, null); 01. public abstract class Emprestimo
07. BuscarAluno(aluno); 02. {
08. } 03. ...
04. public abstract Decimal calculoDePrestacao(Decimal valorTotal,
09. public Aluno(String nome, String cpf, String rg) Decimal valorEntrada, UInt32 qtdParcelas);
10. { 05. ...
Aluno aluno = new Aluno(nome, cpf, rg, null, 0, null, null, null, null); 06. }
AtualizarDocumentos(aluno);
11. }
Listagem 5. Método CalculoDePresta0 depois das mudanças
12. public Aluno(String nome, String cpf, String rg, String rua, UInt32
numeroCasa, String bairro, String cidade, String estado, String cep) 02. public class EmprestimoPessoa: Emprestimo
13. { 03. {
14. this.Nomealuno = nome; 04. public override Decimal calculoDePrestacao(Decimal valorTotal,
15. this.Cpf = cpf; Decimal valorEntrada, UInt32 qtdParcelas)
16. this.Rg = rg; 05. {
17. this.Rua = rua; 06. Decimal valorParcela = valorTotal - valorEntrada;
18. this.Numerocasa = numeroCasa; 07. valorParcela = Convert.ToDecimal((valorParcela / qtdParcelas) + 0.2m);
19. this.Bairro = bairro; 08. gravarParcela(valorParcela);
20. this.Cidade = cidade;
09. return valorParcela;
21. this.Estado = estado;
10. }
22. this.Cep = cep;
23. } 11. ...
24. ... 12. }
25. }

50 Engenharia de Software Magazine - Refatoração para Padrões – Parte 13 (Final)


proce s s o

Refatoração para padrões Extrair Parâmetro Conhecendo as refatorações para padrões utilitárias e onde elas
Resumo: Um atributo de uma classe recebe um valor obtido atuam, o desenvolvedor será capaz de utilizar cada uma delas
através de uma operação dentro de um método ou construtor. no momento que julgar importante no processo de melhoria
Cria-se um parâmetro neste método, ou construtor, e o atribui do código fonte de sua aplicação.
ao atributo da classe.
Motivação: Esta técnica pode fornecer outra forma de atribuir Listagem 8. Classe Emprestimo refatorada
valores a um atributo, e ao mesmo tempo melhorar a forma
01. public class Emprestimo
como parâmetros são passados. Além disso, ela é uma técnica 02. {
base (utilitária) que será utilizada por outras técnicas de refa- 03. private Decimal taxa;
04. ...
toração para padrões maiores. 05. public Emprestimo(Decimal taxa)
Mecânica: 06. {
07. this.Taxa = taxa;
1. Verifique se a atribuição feita a um atributo está ocorrendo 08. ...
dentro de um método ou construtor. Se não, esta refatoração 09. }
não se aplica. 10. ...
11. }
2. Utiliza-se a refatoração Adicionar Parâmetro para modificar
os parâmetros do método, ou construtor, fazendo com que o Listagem 9. Código cliente que invoca o construtor de Emprestimo refatorado
atributo passe a receber os parâmetros, e não mais atribuição
01. E mprestimo emprestimo = new Emprestimo
direta. Caso seja necessário, aplique a refatoração Remover (Financiamento.recuperaTaxa(1000.0m, 0.12m));
Parâmetro para remover os parâmetros desnecessários após
o término dessa refatoração para padrões.
Conclusão
Exemplo: A classe Emprestimo apresenta um construtor Ao final desta série têm-se todos os objetivos cumpridos,
onde um atributo recebe um valor que foi originado dos pa- o que inclui uma gama de conteúdos relacionados à refa-
râmetros recebidos pelo construtor. A Listagem 6 mostra o toração para padrões, bem como uma grande quantidade
método construtor. de exemplos sobre padrões de projeto em C#, linguagem
O passo 1 da mecânica é verificado, visto que o atributo já está na qual não se encontram muitas referências sobre imple-
recebendo dados dentro de um construtor, portanto pode-se mentação de padrões de projeto. Além disso, espera-se que
seguir com a refatoração. todo conhecimento que foi compartilhado ao longo desta
O passo 2 implica em adicionar um parâmetro ao construtor série de artigos possa ser útil no processo de melhorar a
a fim de substituir a atribuição direta pelo parâmetro e, poste- qualidade dos projetos de código existente ao se inserir
riormente, atualiza-se o código cliente. A Listagem 7 mostra o padrões de projeto.
código cliente que invoca o construtor da classe Emprestimo. Esta série abordou alguns dos diferentes padrões de projeto
A Listagem 8 mostra o construtor da classe Emprestimo existentes na literatura técnicas sobre padrões de projeto, e
depois das modificações. tornou possível uma série de melhorias de código fonte, dis-
cutidas ao longo da série de artigos. Além de prover o conhe-
Listagem 6. Construtor da classe Emprestimo cimento necessário sobre como trabalhar com determinados
01. public class Emprestimo
padrões de projeto, esta série mostrou outra abordagem para
02. { se trabalhar com padrões, que é através da refatoração de có-
03. private Decimal taxa; digo com objetivo de inserir padrões de projeto, ao contrario
04. ...
05. public Emprestimo(Decimal valorEmprestimo, Decimal Imposto) da abordagem tradicional que visa inserir padrões de projeto
06. { ainda na fase de planejamento do desenvolvimento.
07. this.Taxa = Financiamento.recuperaTaxa(valorEmprestimo, Imposto);
08. ... Vimos também que esta série de artigos não está apenas
09. } relacionada a padrões de projeto, mas também a qualida-
10. ...
11. }
de de código fonte. Conhecidas as técnicas de refatoração
para padrões aqui abordadas, agora cabe ao desenvolvedor
Listagem 7. Código cliente que invoca o construtor de Emprestimo sempre estar em processo contínuo de refatoração para
padrões, mantendo sempre as características que formam
01. Emprestimo emprestimo = new Emprestimo(1000.0m, 0.12m);
um padrão de projeto, e mantendo a qualidade do código
fonte ao melhorar o projeto de código existente.
Agora resta atualizar o código cliente da Listagem 7, que
ficará como pode ser visto na Listagem 9. Sobre os padrões de projeto apresentados
É evidente que o uso de padrões de projeto no desenvolvi-
Algumas considerações mento de software trás benefícios mas, o sucesso da aplicação
As refatorações para padrões abordadas neste artigo são em determinado contexto depende de algumas características
utilitárias, isto é, são refatorações para padrões menores. do projeto.

Edição 40 - Engenharia de Software Magazine 51


Algo a se considerar nesses casos é a complexidade do projeto sim como melhorar o código da arquitetura existente, planejada
da aplicação. Em alguns momentos, o uso de um padrão de ou não, para o software em questão.
projeto pode não ser uma boa solução, pois sua implementação
pode complicar o projeto de código existente quando uma outra Sobre as refatorações para padrões apresentadas
solução sem padrões de projeto seria ideal. A esse problema dá Até este momento foram apresentadas as técnicas de refatora-
se o nome deslumbramento com padrões (KERIEVSKY, 2008), ção para padrões existentes, e seus benefícios, que são visíveis
visto que a implementação de alguns padrões não são tão melhoras no projeto de código fonte existente, tornando-os
simples mas, mesmo assim, para resolver problemas simples, mais reutilizáveis, através da implementação dos padrões de
alguns desenvolvedores ainda insistem em utilizá-los. projeto que elas propõem, além de promoverem outros bene-
Os padrões de projeto aqui apresentados são utilizados por fícios, como simplificação de código, remoção de duplicação,
diferentes desenvolvedores de diversas formas. Uma das for- entre outros destacados.
mas, que é planejar a solução já pensando em quais padrões Além dos benefícios que as técnicas de refatoração para pa-
de projeto implementar, pode fazer com que o desenvolvedor drões proporcionam, elas apresentam algumas desvantagens
acabe utilizando-os em excesso. O uso para estes padrões de que devem ser consideradas antes de aplicá-las. Antes de
projeto nesta série de artigos é voltado para refatorações para iniciar o processo de refatoração para padrões, utilizando de-
padrões, o que evita que o desenvolvedor implemente padrões terminada técnica, o desenvolvedor deve analisar se, ao invés
em excesso, dado que eles serão inseridos de acordo com as de melhorar o projeto de código, a refatoração para padrões
necessidades do projeto existente. não complicará o projeto, ou que os benefícios sejam mínimos,
a ponto de não justificar a refatoração.
Sobre as refatorações apresentadas Outro fator importante a se considerar é a questão do mo-
Um dos objetivos de se descrever as técnicas de refatoração nesta mento de refatorar para padrões. A preocupação de alguns
série de artigos é o de prover conhecimento ao desenvolvedor desenvolvedores está no fato de como utilizar as técnicas de
que o auxiliará no processo de refatoração para padrões, além de refatoração para padrões em um ambiente onde a necessida-
permitir que ele melhore o projeto de código existente. Para que de da implementação de novas funcionalidades surge a cada
possa fazer bom uso desse conhecimento adquirido, é importante instante. Um desafio nesse sentido é convencer os gestores que
que saiba os prós e contras da aplicação dessas técnicas. o tempo que é necessário para refatorar uma aplicação não im-
É importante destacar que, apesar das refatorações terem plicará num desperdício de dinheiro para a empresa. Refatorar
uma motivação, a escolha de usá-las fica com o desenvolve- para padrões não envolve mudanças externas ao software, nem
dor. Algumas refatorações podem não ser uma boa escolha, mudanças nas funcionalidades antes encontradas. Elas apenas
dependendo do tipo de software em questão. Como exemplo, atuam na formação de soluções reutilizáveis e na melhoria do
pode-se destacar a refatoração Substituir Método por Objeto projeto de código existente (KERIEVISKY, 2008).
Método, que permite a criação de uma nova classe. Apesar O que se propõe nesses casos é que o desenvolvedor imple-
dos seus benefícios, se usada em um software que possui uma mente as novas funcionalidades, de acordo com as solicitações
documentação detalhada, com diagramas de classe, por exem- que vão surgindo e, posteriormente, reserve um tempo para
plo, o desenvolvedor teria que atualizar essa documentação e, refatorá-las, o que permitirá uma melhora no código escrito
naturalmente, justificar o motivo dessas mudanças, o que em para a funcionalidade.
algumas situações pode não ser tão simples.
Outro ponto a se considerar é a questão da produtividade em Referências
algumas empresas. As melhorias que a aplicação das técnicas GAMMA, Erich, 2000. Padrões de Projeto: soluções reutilizáveis de software orientado a objetos,
de refatoração proporcionam são evidentes, mas elas apenas 1ed. Porto Alegre: Bookman, 2000.
melhoram o código das funcionalidades que já existem, mas
não servem para implantar novas funcionalidades. Com isso, KERIEVSKY, Joshua. Refatoração para Padrões, 1ed. Porto Alegre: Bookman, 2008.
algumas empresas, devido a, por exemplo, terem cronogramas FOWLER, Martin. Refatoração: aperfeiçoando o projeto de código existente, 1ed. Porto Alegre:
apertados, podem não permitir ao desenvolvedor investir o Bookman, 2004.
tempo necessário para se dedicarem a aplicar essas técnicas
no software. Portanto, não é aconselhável que o desenvolvedor SILVA, L.; SAYÃO, M.; LEITE, J. C. S. P.; BREITMAN, K. (2003) “Enriquecendo o código com cenários”,
use o tempo que é destinado a implementar novas funcionali- In: Simpósio Brasileiro de Engenharia de Software (SBES), Manaus, AM, Brasil, Outubro.
dades para refatorar as que já existem. O processo de refatorar
deve coexistir em harmonia com o processo de implementar
Dê seu feedback sobre esta edição! Feedback
novas funcionalidades. Em um momento se implementa novas eu
s

funcionalidades, não se preocupando em refatorar ao mesmo A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

tempo, e em outro momento se refatora a funcionalidade Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
criada, caso necessário. Dê seu voto sobre este artigo, através do link:
edição

Por fim, vale a pena ressaltar que as técnicas de refatoração


não descrevem como projetar arquiteturas de software, mas www.devmedia.com.br/esmag/feedback

52 Engenharia de Software Magazine - Refatoração para Padrões – Parte 13 (Final)


proce s s o

Edição 40 - Engenharia de Software Magazine 53

Você também pode gostar