Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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
Dê
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
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
Figura 1. Pesquisa sobre gerência de projetos – Fonte: 7º Fórum Nacional de Benchmarking em Gerenciamento de Projetos (PMI Survey)
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.
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).
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.
14 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO
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
18 Engenharia de Software Magazine - Elaboração de cronogramas com base nas melhores práticas PMI
PL ANEJAM ENTO
s
Dê
É 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.
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
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.
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
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
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
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
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
s
Dê
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
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
Eventos Esses elementos afetam o fluxo do processo e em geral possuem uma causa (trigger) ou um impacto.
Gateways (portais, em tradução livre) Usado para controlar as convergências ou divergências da sequência do fluxo.
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 3. Raias
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.
Tabela 4. Artefatos
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
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
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
Dê
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
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. }
44 Engenharia de Software Magazine - Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
proce s s o
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
46 Engenharia de Software Magazine - Boas práticas para escrita de métodos, funções e procedimentos – Parte 2
proce s s o
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.
s
Dê
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
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,
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
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.
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