Você está na página 1de 62

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


EDITORIAL

H
oje no Brasil, mais de 100 empresas foram avaliadas com sucesso no modelo
MPS.BR, e estas avaliações, mesmos para os níveis menos complexos, podem
ser extremamente difíceis. Neste cenário, a Engenharia de Software Magazine
destaca nesta edição uma matéria que descreve as experiências práticas de uma insti-
tuição na implementação do modelo.
Ano 2 - 22ª Edição - 2010 Impresso no Brasil Além disso, “desde 1º de Janeiro de 2010 as avaliações MPS estão seguindo somente
o modelo de referência MR-MPS: 2009. Por este motivo, organizações que estão imple-
mentando o modelo para a futura avaliação ou reavaliação devem levar em considera-
Corpo Editorial ção as mudanças dos guias da versão 1.2 para a versão 2009, pois isto pode ser decisivo
para o sucesso de uma avaliação MPS. Além das avaliações, é importante lembrar que os
Colaboradores
Rodrigo Oliveira Spínola guias descrevem requisitos e condições para quem quer se tornar um avaliador adjunto,
rodrigo@sqlmagazine.com.br avaliador líder ou consultor de Aquisição MPS, também apresenta orientações para cria-

Marco Antônio Pereira Araújo ção de novas Instituições Implementadoras (II) e Instituições Avaliadoras (IA).”
Eduardo Oliveira Spínola Por conta disto, destacamos também nesta edição as principais mudanças ocorridas
nos guias do modelo MPS versão 2009, além de apresentarmos os novos guias que des-
Capa
Romulo Araujo - romulo@devmedia.com.br crevem orientações para organizações que realizam atividades específicas do processo
de software.
Diagramação
Por fim, apresentamos através do artigo Experiências da Domínio Informática na Im-
Janete Feitosa
plantação do MPS.BR, a experiência da Domínio Informática com a definição e imple-
Coordenação Geral mentação dos seus processos de desenvolvimento de software, aderentes ao modelo
Daniella Costa - daniella@devmedia.com.br
de maturidade MPS.BR.
Revisor e Supervisor Além destas três matérias, esta edição traz mais cinco artigos:
Thiago Vincenzo - thiago.v.ciancio@devmedia.com.br • Experiência em automação de testes
Na Web • ITIL: Por onde começar?
www.devmedia.com.br/esmag • Arquitetura Orientada a Serviços
Apoio
• Arquitetura de Software
• Gerenciamento de Defeitos em Projetos de Software

Desejamos uma ótima leitura!


Equipe Editorial Engenharia de Software Magazine

Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor. Rodrigo Oliveira Spínola
Se você tiver algum problema no recebimento do seu exemplar ou precisar de rodrigo@sqlmagazine.com.br
algum esclarecimento sobre assinaturas, exemplares anteriores, endereço de Doutorando em Engenharia de Sistemas e Computação (COPPE/UFRJ). Mestre em
bancas de jornal, entre outros, entre em contato com: Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Ciências da Computa-
ção (UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), ten-
Cristiany Queiróz– Atendimento ao Leitor do ministrado cursos na área de Qualidade de Produtos e Processos de Software,
www.devmedia.com.br/mancad
(21) 2220-5338 Requisitos e Desenvolvimento Orientado a Objetos. Consultor para implementação
Kaline Dolabella do MPS.BR. Atua como Gerente de Projeto e Analista de Requisitos em projetos de
Gerente de Marketing e Atendimento consultoria na COPPE/UFRJ. É Colaborador da Engenharia de Software Magazine.
kalined@terra.com.br
(21) 2220-5338
Marco Antônio Pereira Araújo
(maraujo@devmedia.com.br)
Publicidade
Doutor e Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ - Li-
Para informações sobre veiculação de anúncio na revista ou no site entre em
nha de Pesquisa em Engenharia de Software, Especialista em Métodos Estatísticos
contato com:
Computacionais e Bacharel em Matemática com Habilitação em Informática pela
Kaline Dolabella
publicidade@devmedia.com.br UFJF, Professor e Coordenador do curso de Bacharelado em Sistemas de Informação
do Centro de Ensino Superior de Juiz de Fora, Professor do curso de Bacharelado
Fale com o Editor!
em Sistemas de Informação da Faculdade Metodista Granbery, Professor e Diretor
É muito importante para a equipe saber o que você está achando da revista: que tipo de artigo
do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da
você gostaria de ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a
Fundação Educacional D. André Arcoverde, Analista de Sistemas da Prefeitura de
vontade para entrar em contato com os editores e dar a sua sugestão!
Juiz de Fora, Colaborador da Engenharia de Software Magazine.
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ê
Eduardo Oliveira Spínola
(eduspinola@gmail.com)
gostaria de publicar:
É Colaborador das revistas Engenharia de Software Magazine, Java Magazine e
Rodrigo Oliveira Spínola - Colaborador
SQL Magazine. É bacharel em Ciências da Computação pela Universidade Salva-
editor@sqlmagazine.com.br
dor (UNIFACS) onde atualmente cursa o mestrado em Sistemas e Computação na
linha de Engenharia de Software, sendo membro do GESA (Grupo de Engenharia
de Software e Aplicações).
Caro Leitor, ÍNDICE

Para esta edição, temos um conjunto de 4 vídeo aulas. Estas vídeo aulas Abordagens Ágeis de Desenvolvimento
estão disponíveis para download no Portal da Engenharia de Software 05 - Experiência em automação de testes
Magazine e certamente trarão uma significativa contribuição para seu Eliane Collins e Luana Lobão
aprendizado. A lista de aulas publicadas pode ser vista abaixo:
Abordagens Tradicionais de Desenvolvimento
11 - Guias 2009 do MPS.BR: o que mudou?
Tipo: Requisitos Davi Viana dos Santos
Título: Diagrama de Casos de Uso na Prática – Partes 8 e 9
Autor: Rodrigo Oliveira Spínola 18 - Fatores críticos de sucesso em programas de melhoria de processo
Mini-Resumo: Estas aulas são parte de uma série sobre a Geovane Nogueira Lima e Marcos André Gomes
construção de diagrama de casos de uso da UML. O objetivo do 23 - ITIL: Por onde começar?
conjunto de aulas é apresentar de forma prática como elaborar o Samuel Diniz Casimiro
diagrama de casos de uso a partir de diferentes estudos de caso.
Nestas aulas, serão elaborados diversos diagramas de casos de uso. 30 - Arquitetura Orientada a Serviços
Também será visto como especificar um caso de uso para um dos Jorge Dias Jr.
diagramas elaborados. 36 - Arquitetura de Software
Antonio Mendes da Silva Filho
Tipo: Validação, Verificação & Teste
Título: Introdução a Testes de Software – Partes 1 e 2
46 - Experiências da Domínio Informática na Implantação do MPS.BR
Autor: Arilo Cláudio Dias Neto
Ticiana da Mota Gentil Parente e Adriano Bessa Albuquerque
Mini-Resumo: Nestas aulas iremos discutir os principais conceitos
relacionados às atividades de teste, as principais técnicas e critérios
de teste que podem ser utilizados para verificação ou validação de Validação, Verificação e Teste
um produto, assim como exemplos práticos da aplicação de cada 52 - Gerenciamento de Defeitos em Projetos de Software
tipo de técnica ou critério de teste. Jenifer Vieira Toledo, Marcelo Santos Daibert e Marco Antônio Pereira Araújo

4 Engenharia de Software Magazine


Abordagens Ágeis de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes
abordagens ágeis de apoio ao desenvolvimento de projetos de software

Experiência em Automação de Testes


Utilizando ferramentas Open Source em Ambiente Ágil de Desenvolvimento
com SCRUM

De que se trata o artigo?


Neste artigo compartilhamos experiências sobre
a automação do processo de teste de um Sistema
WEB desenvolvido utilizando SCRUM. Mostramos
as vantagens e desvantagens de se adotar esta
técnica de qualidade no ambiente de trabalho.

Para que serve?


A Automação de um Processo de Teste, que tem
como objetivo garantir a qualidade de projetos de

E
Eliane Collins
elianecollins@gmail.com
ste artigo descreve de maneira software, oferece notáveis vantagens quando o
Mestranda de Engenharia elétrica pela prática a experiência de se adotar ambiente de desenvolvimento é executado a par-
Universidade Federal do Amazonas, MBA ferramentas de automação de tir de uma Metodologia Ágil de desenvolvimento
em Gerenciamento de Projetos e Bacharel teste no processo de desenvolvimento como o Scrum.
em Engenharia de Computação pela Uni- ágil Scrum. Ao se adotar um processo
versidade Estadual do Amazonas, 7 anos
atuando no desenvolvimento de Software,
de teste nota-se a melhora, estabilidade e Em que situação o tema é útil?
desses 4 anos em Teste de Software. Traba- o amadurecimento do software. As van- Além de ser uma boa prática para se adotar
lha atualmente no Instituto Nokia de Tec- tagens de se automatizar esse processo em processos de teste, a automação de casos
nologia – INdT, como Pesquisadora, onde com ferramentas abertas vão desde o de teste garante um aumento na qualidade
lidera uma equipe de teste de software e ganho em tempo de teste e prevenção de do software sem elevar o custo para isso. Com
desenvolve sistemas Web.
defeitos, até a confiabilidade do cliente o auxílio de soluções open source é possível
pelo produto final, sem o aumento de chegar a um nível satisfatório de qualidade e
Luana Lobão custos. Mais a frente, neste artigo, ve- confiabilidade do projeto de software.
lulobaum@gmail.com remos que foi possível automatizar o
Atua no ramo de tecnologia e teste de gerenciamento, a elaboração e a execução
software, é formanda no curso de Proces- dos casos de testes, em um Sistema Web processos de desenvolvimento tradicio-
samento de Dados.Trabalha atualmente no
desenvolvido em Ruby on Rails. nais devido, principalmente, ao fato de
Instituto Nokia de Tecnologia - INdT, com
automação de teste em sistemas desenvol- As metodologias ágeis de desenvol- darem prioridade ao desenvolvimento
vidos na plataforma WEB e Desktop. vimento de software se destacam dos de funcionalidades através de código

Edição 22 - Engenharia de Software Magazine 5


executável ao invés da produção de extensa documentação • Segurança: fazer testes manuais para garantir que o sistema
escrita, e ainda, respostas rápidas às mudanças e colaboração está seguro contra ataques de terceiros é custoso e acarreta um
com o cliente ao invés de seguir planos rígidos e negociações esforço e tempo enorme. Testes de vulnerabilidades técnicas e
contratuais [Leal (2009)]. lógicas podem ser feitos com mais critérios se forem automa-
Tão importante quanto o processo de desenvolvimento de um tizados com o auxílio de ferramentas;
projeto de software, o processo de qualidade envolvido requer • Reusabilidade: scripts de teste, se feitos com planejamento e
planejamento e atenção, visto que garantir a qualidade do sof- padronização, são perfeitamente reusáveis na maioria das etapas
tware desenvolvido é tão significante quanto a sua codificação. de desenvolvimento. Portanto, o esforço necessário para a codi-
Assim como a qualidade do produto deve ser alcançada em ficação de scripts de teste, não é, na sua totalidade, perdido;
um meio de desenvolvimento clássico, ela também precisa ser • Manutenibilidade: sistemas que possuem longa vida no
levada em consideração nos ambientes ágeis. mercado podem ter (em algum momento) que passar por ma-
Tem sido cada vez mais custoso e desafiador o processo nutenções em áreas de código e funcionalidades já testadas. Se
de qualidade nos dois modos de desenvolvimento, seja pela a lógica e o requisito não mudaram, os casos de teste que foram
complexidade do produto, por questões técnicas envolvidas, automatizados anteriormente poderão testar o sistema nova-
pelo próprio planejamento equivocado do projeto, e algumas mente. Nestes casos, é melhor fazer manutenção no caso de teste
vezes pela falta de um processo estruturado de qualidade e do que escrevê-lo novamente ou executá-lo manualmente.
de desenvolvimento.
Salvo algumas exceções, a maioria das empresas opta por Testes melhores e mais elaborados contribuem para um au-
garantir um nível de qualidade através de testes manuais, após mento na qualidade do produto final. Porém, construir uma
o término de módulos específicos ou até mesmo do sistema suíte de scripts de teste automáticos requer uma padronização
inteiro [Bernardo e Kon (2008)]. Isso é uma escolha que pode de atividades e conhecimento de codificação e análise por
acarretar sérios problemas, comprometendo o andamento dos parte do testador. Para fazer testes automáticos eficientes, caso
processos de desenvolvimento e teste. o teste seja de unidade, é necessário entender a arquitetura
Este artigo tem como fundamental objetivo compartilhar uma do software e a base do código. Caso o teste seja de sistema, é
experiência prática no uso de automação de testes funcionais necessário conhecer as regras de negócio, as funcionalidades
em um ambiente de desenvolvimento conduzido pelo SCRUM. e os valores e situações permitidas como resultado.
No decorrer do artigo mostraremos as notáveis vantagens e as Em todos os casos de automação, considerando testes de
dolorosas desvantagens de se adotar tal prática de qualidade unidade ou testes de sistema, o esforço necessário é maior. Isso
no dia-a-dia de trabalho. ocorre porque é necessário fazer um planejamento para saber
O QUÊ, COMO e POR QUE será automatizado. Só depois disso
Automação de Testes deve-se passar para a confecção dos scripts automáticos.
Automatizar testes significa fazer uso de softwares que Há diversas medidas que podem ser tomadas para se obter
controlem a execução dos casos de teste. O uso desta prática testes melhores, mais ágeis, efetivos e baratos. Dentre estas
pode reduzir significativamente o esforço necessário para os podemos citar: sistematizar as atividades de testes; definir
testes em um projeto de software, ou seja, executar maiores os papéis e responsabilidades vinculadas ao teste; antecipar
quantidades de testes em tempo reduzido. Testes manuais que a preparação dos testes já durante as fases de construção; co-
levariam horas para serem totalmente executados poderiam nhecer as técnicas relacionadas ao tema; testar características
levar minutos caso fossem automatizados [Tuschling (2008)]. diferentes do software nas diferentes fases de testes; estimar
Apesar dos testes manuais também encontrarem erros em adequadamente os esforços para os testes; ter um controle
uma aplicação, é um trabalho desgastante que consome muito efetivo das falhas encontradas; e automatizar os processos de
tempo. Automatizar seus testes significa executar mais testes, testes, tanto planejamento quanto execução [Costa (2006)].
com mais critérios, em menos tempo e sem muito esforço na
execução. Sem contar as inúmeras possibilidades que um script Técnicas de Automação
automático traz, como: cobertura de requisito e profundidade Existem basicamente duas abordagens para se automatizar
nos testes, além de ser efetivo quanto à quantidade de dados casos de teste, apesar de não se limitar a elas. A primeira
de entrada que podem ser processadas. é utilizar Ferramentas baseadas em Interface Gráfica que
As principais vantagens de transformar suas rotinas de testes possuem capacidade de gravar e executar casos de teste. São
em scripts automáticos são: as ferramentas conhecidas como rec-and-play (Record and
• Extensibilidade: diferente de testes manuais, testes automa- Playback). Nessa abordagem a ferramenta interage diretamente
tizados podem prever inúmeros fluxos que ficariam inviáveis com a aplicação, simulando um usuário real. Na medida em
de se fazer manualmente, contribuindo para maior extensibi- que a aplicação está sendo executada, a ferramenta oferece um
lidade de testes no sistema; suporte de gravação: ela captura as ações e as transforma em
• Confiabilidade: testes automáticos são mais efetivos na scripts. Estes podem ser executados posteriormente.
procura de erros que envolvem estruturas de código, como É bom frisar que para testes utilizando esta abordagem, o
classes, métodos, etc.; software que será testado não precisa sofrer alteração alguma.

6 Engenharia de Software Magazine - Experiência em Automação de Testes


Validação, Verificação e Teste

Não há necessidade de modificação, no sentido de padronizar atividades de desenvolvimento (Sprint). Geralmente é empre-
o código, para que a aplicação se torne fácil de testar (testa- gado um período de duas semanas ou um mês para a iteração.
bilidade). Os testes nessa abordagem são baseados na mesma Ao final de cada iteração, incrementos do produto são gerados.
interface gráfica que o usuário irá utilizar. O trabalho aqui é O círculo menor na figura representa as inspeções diárias
encontrar uma ferramenta que ofereça o recurso necessário (daily meeting ou daily Scrum) que ocorrem durante as iterações.
para testar sua aplicação específica. Os membros da equipe se encontram para observarem o que
Existem ferramentas rec-and-play para aplicações Desktop e os outros estão fazendo, e fazer adaptações apropriadas, se
Web. A maior desvantagem de se utilizar esta técnica de auto- necessárias [Schwaber (2004)].
mação é que o script se torna “escravo” da interface da aplica-
ção. Para que scripts, utilizando esta abordagem, sejam criados,
as ferramentas fazem uso dos nomes e das propriedades dos
componentes que estão dispostos na interface da aplicação.
Se alguma mudança de posição, nome, tipo do componente,
ocorrer, o script “quebra”, ou seja, não funciona mais.
A segunda maneira de se automatizar os casos de teste é com
o uso de Lógica de Negócio (Script Programming). Neste caso
são observadas as funcionalidades da aplicação, sem interagir
com a interface gráfica. Com esta abordagem serão testadas das
maiores até as menores porções do código: funções, métodos,
Figura 1. Esqueleto do Scrum
classes, componentes, entre outros.
Geralmente é pedido que se faça uma alteração no código
para que o trabalho de automação fique fácil. Muitas vezes As histórias de usuário (requisitos de funcionalidade) que
o código é melhorado (Refactoring) e padronizado para que deverão ser feitas vêm de um documento chamado Product
se consiga testar mais facilmente e sem muitos problemas. Backlog, que é usado pelo cliente (Product Owner) para gerir
São necessários profissionais com conhecimento em código os requisitos. No início de cada iteração é feita uma seleção
e programação para criar os scripts automatizados. O uso nesse documento para estabelecer quais funcionalidades (his-
deste método traz muitos benefícios, por exemplo, testes que tórias) serão desenvolvidas. É então gerado outro documento,
necessitam de centenas de repetições, cálculos complexos e chamado Sprint Backlog, que contém apenas as histórias que
até mesmo integração entre sistemas são feitos facilmente serão desenvolvidas no ciclo de iteração, ou seja, no Sprint.
utilizando esta abordagem. Processos de teste para softwares desenvolvidos dessa maneira
Existem bibliotecas, ferramentas e frameworks que suportam usam geralmente as histórias de usuário como base para a
esta abordagem. Bons exemplos são: JUnit, para testar unidade construção dos Casos de Teste.
de código Java; FitNesse, que é um framework para testes de A pessoa responsável por garantir que esse processo seja
aceitação; MbUnit, para testar a unidade em códigos .NET; Nes- cumprido corretamente é conhecida como Scrum Master. Ela
ter, para fazer testes de mutação em códigos C#; httpUnit, para é responsável por saber todas as regras e práticas do Scrum e
testar aplicações WEB; Cactus, para testar EJB; jfcUnit e Abbot, passar aos demais. Ela também é responsável pela realização e
para testar aplicações baseadas em interfaces gráficas. documentação das reuniões, gerenciamento dos impedimentos
Entre estas duas maneiras de se automatizar, o presente ar- e facilitação do processo de desenvolvimento.
tigo tem como base a abordagem rec-and-play. É com ela que
compartilharemos as experiências, destacando suas vantagens Visão Geral sobre o Projeto Testado
e desvantagens em um projeto web que foi desenvolvido uti- O projeto que serviu de base para este estudo contava com
lizando SCRUM. uma equipe formada por: dois desenvolvedores, um designer,
um testador, um Scrum Master e um Product Owner. Este
Ambiente Ágil de Desenvolvimento – SCRUM projeto tinha como objetivo ser um sistema capaz de fornecer
Scrum é uma metodologia extremamente ágil e flexível, o resultado sobre Pesquisa de Satisfação do Cliente ao time de
centrada na equipe, utilizada para o desenvolvimento in- desenvolvimento do projeto relacionado. Com ele era possível
cremental e iterativo de qualquer produto, no caso do nosso o cadastro de projetos, líderes, clientes e dos times de desenvol-
artigo, desenvolvimento de software [Bissi (2007)]. Suas vimento destes projetos. O sistema se chama On Line Customer
principais características são: auto-organização da equipe de Satisfaction Survey – OCSS.
desenvolvimento, acompanhamento da evolução do produto, O OCSS basicamente fornecia informações sobre: a qualidade
desenvolvimento incremental das funcionalidades do produto dos releases (incremento de software) liberados, comunicação
[Schwaber (2004)] e gerenciamento dos requisitos através do com o cliente, tempo de entrega dos releases e necessidade do
documento chamado “backlog do produto”. cliente. O principal objetivo do OCSS em produção era mandar
O esqueleto do Scrum é mostrado na Figura 1. O círculo maior um relatório de satisfação para o cliente ao final de cada entrega
na figura representa o período em que ocorrerá a iteração de (release). O cliente então recebia este relatório e o respondia. Ao

Edição 22 - Engenharia de Software Magazine 7


Figura 2. Caso de Teste

final, o time que fazia parte do projeto recebia um e-mail com resultados obtidos a partir da execução dos testes. A ferra-
as impressões do cliente sobre o release entregue. menta escolhida para o controle de bugs (bugtracking) foi o
A aplicação desenvolvida possui as seguintes características Mantis, que também é open source e oferece bons recursos
técnicas: para este controle.
• Plataforma Web; Para que métricas de aceitação e qualidade das histórias
• Linguagem Ruby; fossem geradas e tidas como base para os testes, houve a uti-
• Rails como framework de desenvolvimento; lização de uma prática chamada Desenvolvimento Dirigido
• Aptana St udio como IDE (Ambiente Integrado de por Testes de Histórias (Story-Test Driven Development). Esta
Desenvolvimento); prática diz que antes de começar a desenvolver a história, a
• MySQL como Banco de Dados. equipe de programadores, analistas, gerentes, testadores e
clientes devem colaborar para definir os critérios de aceitação
Experiência no Processo de Automação de Teste da história. Critérios esses que foram utilizados pela equipe
Como no Scrum o desenvolvimento e o teste precisam ser de teste do OCSS, como base para que a qualidade nos testes
ágeis, a equipe de teste do OCSS decidiu automatizar os casos e nas funcionalidades testadas fosse alcançada.
de teste sabendo que isso minimizaria custos, aumentaria a O ciclo de teste que era executado a cada Sprint se baseava
produtividade e garantiria sua qualidade, reduzindo prin- em seis práticas comuns:
cipalmente, o tempo de teste. Além disso, a automação iria 1) Fazer regressão dos casos de teste relacionados a histórias
ajudar a cobrir as funcionalidades verificadas adequadamente desenvolvidas na iteração anterior;
[Pressman (1995)]. 2) Escrever casos de teste (Figura 2) para as histórias (Figura 3)
Pelo OCSS se tratar de uma aplicação Web, a ferramenta do Sprint atual, se baseando nos critérios de aceitação (Figura 4)
escolhida para os testes de Sistema e Aceitação foi o Selenium de cada história;
– Selenium Core e IDE [Selenium], um software open source
que utiliza a abordagem rec-and-play e oferece suporte a testes
em aplicações Web. O Selenium IDE é um plugin do Mozilla
Firefox. Com ele é possível gravar ações do usuário no browser
e executá-las posteriormente. Esta ferramenta é bastante útil e
ajuda muito na automação de Casos de Teste, trazendo agili-
dade na execução. Os scripts gerados pelo Selenium, a partir
da navegação de um usuário pelo browser, são por padrão em Figura 3. História que descreve o Caso de Uso
HTML, porém o Selenium oferece o recurso de ter esse código
gerado em Ruby, Java, Perl, Python, Php, C#.
Porém, esta não foi a única automação feita no OCSS. Houve
também a automação no gerenciamento e elaboração dos tes-
tes, visto que os resultados obtidos precisavam também ser
reportados aos desenvolvedores de maneira rápida e prática.
Para isso foi usada outra ferramenta open source, chamada
TestLink [TestLink]. Com esta ferramenta é possível a escrita
dos Casos de Teste e a geração de relatórios com base nos Figura 4. Critério de Aceitação para o fechamento da história

8 Engenharia de Software Magazine - Experiência em Automação de Testes


Validação, Verificação e Teste

3) Com base neste Caso de Teste, eram criados os scripts de funcionalidades desenvolvidas e as métricas de teste geradas
teste. Para isso o sistema desenvolvido foi executado em um pelos gráficos e relatórios do TestLink.
browser. Neste momento o Selenium IDE trabalhava gravando
toda a ação do browser e transformando-a em scripts HTML.
Estes scripts sofriam modificações para atender a alguma outra
condição que pudesse vir a ocorrer. Os casos mais comuns em
que ocorriam alterações nos scripts gerados eram:
• Acrescentar chamadas da função ‘pause’ do próprio Selenium
Figura 6. Exemplo de execução de caso de teste que passou
entre as linhas de ação geradas automaticamente pela navega-
ção do browser. Como a execução do Selenium é muito rápida,
às vezes casos de teste que estavam certos eram tidos como
errados pelo Selenium pelo fato de algum dado do servidor
ainda não ter chegado, portanto o uso de um delay ajudava
bastante na verificação;
• Modificar chamadas de funções do Selenium quando os
campos relacionados testados eram alimentados por Ajax.
Por padrão o script automático do Selenium faz referência Figura 7. Exemplo de execução de caso de teste que falhou e gerou um
a função “clickAndWait” do Selenium, esta função só retor- bug no Mantis
na o valor atualizado, do servidor, após um refresh na tela
inteira do sistema. Em campos carregados dinamicamente Pontos Positivos
por Ajax, é necessário que seja feita uma chamada a função A automação trouxe inúmeros benefícios para a equipe de
“waitForValue”, esta função carrega o campo assim que ele teste e para a qualidade do projeto:
recebe um valor novo, sem necessariamente ter que dar Quanto à equipe foi observado que:
refresh na tela inteira; • Aumentou a segurança da equipe quanto ao teste, já que
4) Após a execução dos scripts, o testador cadastrava os bugs foram feitos testes mais elaborados e complexos utilizando
no Mantis (Figura 5) e os direcionava ao desenvolvedor res- a opção de exportar para Java os scripts HTML gerados pelo
ponsável pela história testada; Selenium;
• Não houve sobrecarga de execução de casos de teste, pois
grande parte estava automatizada;
• Na maioria das vezes, o ciclo de teste era completamente
executado em no máximo dois dias de trabalho, levando em
consideração a execução da etapa dos testes de regressão e dos
testes das novas funcionalidades;
• Os testes de regressão foram responsáveis por identificar a
grande parte dos bugs encontrados no projeto. Estes, na sua
maioria, estavam automatizados;
• Houve uma diminuição considerável com o tempo gasto com
a identificação e correção de erros, já que os bugs de regressão
eram encontrados mais rapidamente;
Figura 5. Exemplo de bugs cadastrados no Mantis • Os scripts automáticos foram na sua grande maioria atuali-
zados e modificados poucas vezes;
5) Em seguida o testador informava o resultado da execução • Foi possível a montagem de uma Suíte de Testes onde todos
(Figura 6 e Figura 7) dos scripts no TestLink. Isso era necessário os scripts automáticos eram executados sequencialmente. Isto
para a prática seguinte; economizou muito tempo.
6) Gerar relatórios automáticos a partir das execuções infor-
madas. O TestLink oferece diversas opções para analisar os Quanto à qualidade do projeto:
resultados gerados com base nas execuções de casos de Teste. • Testes manuais, que poderiam contribuir para que erros fos-
Os relatórios do TestLink mais utilizados foram: General Test sem encontrados tardiamente, foram evitados com o processo
Plan Metrics, Failed Test Cases, Charts e Total Bugs For Each Test de automação. Portanto, os bugs eram encontrados e resolvidos
Case. Eles podem ser acessados a partir da opção Results do rapidamente, evitando desperdício de tempo do projeto;
menu superior do TestLink. • Por ser uma aplicação WEB, era satisfatório que o Sistema
executasse perfeitamente em pelo menos dois navegadores.
Eram estas as práticas de Teste que ocorriam no Processo de Os mais utilizados pelos clientes eram o Internet Explorer 6 e
Qualidade do OCSS na medida em que os Sprints aconteciam. o Mozilla Firefox. Testes de regressão encontraram inúmeros
Nas reuniões de Retropective e Review eram observadas as erros de cross-browser. Estes eram identificados rapidamente

Edição 22 - Engenharia de Software Magazine 9


e repassados à equipe de desenvolvimento, contribuindo lar- um projeto de software desenvolvido com Scrum, é de grande
gamente para a qualidade do Sistema; importância que se faça este tipo de teste, só assim a qualidade
• A automação serviu como base de estudo para os projetos entre as iterações é garantida.
posteriores. A equipe se focou em conhecer mais sobre auto-
mação, no sentido de práticas, de novas ferramentas e novos
tipos de teste. Links

[Bernardo e Kon (2008)] Bernardo, P. e Kon, F., A Importância dos Testes Automatizados
Pontos Negativos http://www.ime.usp.br/~kon/papers/EngSoftMagazine-IntroducaoTestes.pdf
Como toda e qualquer prática, a automação de testes através
da abordagem rec-and-play também possui pontos negativos. [Bissi (2007)] Bissi, W., Scrum – Metodologia de Desenvolvimento Ágil
http://revista.grupointegrado.br/revista/index.php/campodigital/article/view/312/146
Houve vários pontos negativos e desgastes quanto à adoção
desta prática, que foram: [Correia e Silva 2004] Correia, S. e Silva, A., Técnicas para Construção de Testes
• Como no Scrum parte de funcionalidades são feitas separa- Funcionais Automáticos
damente (entre Sprints), alguns scripts tiveram que ser atua- http://paginas.fe.up.pt/~jpf/teach/TQS0405/sc-Quatic2004.pdf
lizados. Exemplo: pedia-se em um Sprint para desenvolver a
[Costa 2006] Costa, M., Estratégia de Automação em Testes: requisitos, arquitetura
parte de cadastro da tela, e no Sprint seguinte a parte de edição e acompanhamento de sua implantação
da mesma tela. Com as funcionalidades entregues aos pedaços, http://libdigi.unicamp.br/document/?down=vtls000389004
os scripts deixavam de ser abrangentes;
[Dasso & Funes (2007)] Dasso, A. and Funes, A.,Verification, Validation and Testing in
• O Scrum também possibilita a mudança de requisitos no
Software Engineering. Idea Group, 2007
meio do processo. Assim, houve scripts automáticos que
foram totalmente perdidos por terem ficado obsoletos após a [Leal (2009)] Leal, I. Requisitos de Metodologias de Teste de Software para Processos Ágeis
mudança de algum requisito; http://homepages.dcc.ufmg.br/~rodolfo/dcc823-1-09/Entrega2Pos/igor2.pdf
• Aplicações Web são bastante instáveis, então a cada mudança
[Presman (1995)] Presman, R. S. Engenharia de Software. São Paulo: Makron Books
das propriedades de algum componente o script que testava do Brasil, 1995.
aquilo se tornava inválido, pois na abordagem rec-and-play o
Selenium recupera o nome e propriedades do objeto seleciona- [Selenium] Selenium Documentation. Selenium HQ - Web Application Testing System
http://seleniumhq.org
do para gravar o script. Se o componente mudou, naturalmente
o script automático não serve mais; [Schwaber (2004)] Schwaber, K., Agile Project Management with Scrum. Microsoft
Press, 2004
Conclusão
[TestLink] TestLink Documentation. TEAMST - Home of TestLink developers Community
A demanda por soluções através de software tem crescido
http://www.teamst.org/
progressivamente a cada ano, e softwares cada vez mais
complexos são solicitados. Com as metodologias ágeis, o [Tuschling (2008)] Tuschling, O., Software Test Automation
desenvolvimento destas soluções está cada vez mais rápido, http://www.stickyminds.com/getfile.asp?ot=XML&id=14908&fn=XDD14908filelistfilename1
%2Epdf
exigindo dos profissionais um considerável nível técnico além
de comportamentos e características específicos para uma [Vercauteren (2009)] Vercauteren, T., Agile development and functional testing:
rápida tomada de decisão e adaptação caso requisitos mudem friend or foe?
no meio do processo. http://www.stickyminds.com/getfile.asp?ot=XML&id=15206&fn=XDD15206filelistfilename1
%2Epdf
A exigência por qualidade, em um cenário assim, natural-
mente é maior. Empresas têm investido em Testes de software [Wilson (2009)] Wilson, G., The reality of software testing in an Agile Environment
com mais frequência. Como apresentado neste artigo, testar Testing Experience - The Magazine for Professional Testers 03/2009 (pág. 94 a 96)
manualmente sistemas complexos que precisam ser desenvol-
vidos rapidamente é inviável. Dessa forma, para maximizar a Feedback
Dê seu feedback sobre esta edição! eu
qualidade e minimizar o tempo de um ciclo de testes, é preciso
s

aderir às práticas de automação. A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

Apesar de algumas desvantagens demonstradas aqui, a Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
edição
prática de automação é vantajosa em projetos que utilizam Dê seu voto sobre este artigo, através do link:
o SCRUM, desde que se tenha um planejamento para isso. A www.devmedia.com.br/esmag/feedback
automação garante bons e abrangentes testes de regressão. Em

10 Engenharia de Software Magazine - Experiência em Automação de Testes


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Guias 2009 do MPS.BR: o que mudou?


Conheça as mudanças na versão 2009 dos guias do modelo MPS

De que se trata o artigo?


Neste artigo veremos as principais mudanças
ocorridas nos guias do modelo MPS versão 2009,
além de apresentarmos os novos guias que
descrevem orientações para organizações que
realizam atividades específicas do processo de
software.

Para que serve?


A nova versão dos guias oferece orientações que
passaram a ser utilizadas em avaliações e MPS

D
esde 1º de Janeiro de 2010 as desde o dia 1º de Janeiro de 2010. Todas as provas
avaliações MPS estão seguindo de habilitação para novos avaliadores também já
somente o modelo de referência utilizam os novos guias.
MR-MPS: 2009. Por este motivo, orga-
nizações que estão implementando o Em que situação o tema é útil?
modelo para a futura avaliação ou rea- Além de ser um modelo atualizado que des-
valiação devem levar em consideração as creve práticas para obter maturidade em pro-
Davi Viana dos Santos mudanças dos guias da versão 1.2 para a cessos de software, é utilizado quando se faz
davi.viana@gmail.com versão 2009, pois isto pode ser decisivo necessário uma reavaliação dos processos já
Atua no ramo de implementação de pro- para o sucesso de uma avaliação MPS. implementados na organização.
gramas de melhoria de processo de sof- Além das avaliações, é importante lem-
tware tendo como base o programa MPS.
BR. É Bacharel em Ciência da Computação
brar que os guias descrevem requisitos
pela Universidade Federal do Amazonas e condições para quem quer se tornar seguir serão apresentadas as mudanças
(UFAM) e Mestrando em Informática pelo um avaliador adjunto, avaliador líder nos guias.
Programa de Pós-Graduação em Informá- ou consultor de Aquisição MPS, tam- Este artigo tem como base os guias do
tica (PPGI) da mesma Universidade. Suas bém apresenta orientações para criação modelo MPS versão 2009 e versão 1.2,
pesquisas são focadas em Engenharia de
Software, principalmente em Qualidade de
de novas Instituições Implementadoras que estão disponibilizados no site da
Processo de Software. (II) e Instituições Avaliadoras (IA). A SOFTEX. Inicialmente são explanadas as

Edição 22 - Engenharia de Software Magazine 11


alterações nos guias de implementação, além da apresentação Um novo processo foi incluído neste nível de maturidade:
dos novos guias. Em seguida, as modificações no guia de ava- Gerência de Portfólio de Projetos (GPP), cujo objetivo é ge-
liação são apresentadas. Por fim, são verificadas as mudanças renciar, de forma estratégica, os projetos que são vitais para a
no guia de aquisição. organização. A diferença entre o processo Gerência de Projetos
e Gerência de Portfólio de Projetos é que o primeiro processo
Guias de Implementação gerência atividades de um projeto e o segundo gerência o
Os guias de implementação que apresentam orientações de conjunto de projetos que a organização possui. Este processo
como implementar o modelo de referência MR-MPS sofreram é obrigatório, exceto se a atividade da unidade organizacional
grandes mudanças: processos foram incluídos ou alterados, a ser avaliada for evolução de produto.
alguns resultados esperados dos processos foram modificados Este processo atua em duas frentes: selecionando os projetos
em todos os níveis e aumentou-se o número de resultados de que devem ser executados e, depois de começar a execução,
atributos de processo (RAPs). verificar se os mesmos continuam viáveis para a organização.
As alterações nos processos específicos e nos resultados de O novo processo possui cinco resultados esperados, que são:
atributos de processo são abordadas por nível de maturidade • GPP1 – As oportunidades de negócio, as necessidades e os
que, por sua vez, são descritas nos guias de implementação. investimentos são identificados, qualificados, priorizados e
selecionados. Neste resultado é levado em consideração os
Nível G – Parcialmente Gerenciado objetivos estratégicos da organização junto com a seleção das
No que diz respeito aos processos deste nível, podemos oportunidades;
destacar uma melhor descrição do resultado esperado para o • GPP2 – Os recursos e orçamentos para cada projeto são
processo Gerência de Projetos GPR7. Algumas organizações identificados e alocados. Este resultado se difere do GPR7 e
não possuem recursos humanos para desempenhar determi- GPR8 pelo fato de haver uma análise dos possíveis conflitos
nadas tarefas do projeto, logo o MPS estabelece a realização de de recursos entre os projetos;
treinamentos e mentoring para minimizar os riscos em relação • GPP3 – A responsabilidade e autoridade pelo gerenciamento
à competência do profissional alocado. Outras modificações dos projetos são estabelecidas. Neste resultado é importante
verificadas são referentes ao GPR10 e ao GPR13, que possuíam definir e comunicar ao responsável sua autoridade pelo ge-
outras definições a partir do nível E, agora passaram a ser renciamento de cada projeto;
válidos para todos os níveis de maturidade. • GPP4 – Os conflitos sobre recursos entre os projetos são
Os resultados esperados GRE1 e GRE2 do processo Gerência tratados e resolvidos. Esses conflitos devem ser resolvidos
de Requisitos foram unificados no GRE1. O GRE2 estabelece a no âmbito organizacional, ou seja, registrar, analisar, tratar e
necessidade de um comprometimento da equipe técnica com resolver os conflitos referentes aos recursos utilizados pelos
os requisitos, ou seja, comprometimento dos colaboradores projetos em execução;
que estão envolvidos diretamente com o desenvolvimento do • GPP5 – Projetos que atendem aos acordos e requisitos que
produto com os requisitos estabelecidos. Este comprometimen- levaram à sua aprovação são mantidos, e os que não atendem
to deve ser obtido novamente quando houver mudanças nos são redirecionados ou cancelados. Essa verificação pode ser
requisitos. Por fim, no GRE5 é apresentado que se deve haver feita juntamente com o monitoramento ou revisão descritas
pelo menos um projeto evidenciando mudanças de requisitos, como resultado esperado do processo de Gerência de Projetos,
para que seja avaliada a tratativa aplicada a essas mudanças. ou pode ser criada uma revisão específica para seleção de pro-
Neste nível, as maiores mudanças ocorreram nos RAPs. Pri- jetos. O ponto chave deste resultado é analisar se os projetos
meiramente temos que o RAP 5, RAP7 e o RAP 9 passaram a continuam alinhados aos objetivos estratégicos pretendidos,
ser válidos somente até o nível F. A partir do nível E, os mesmos caso contrário é necessário tomar medidas em relação a sua
recebem novas definições. Incluiu-se um novo RAP6, que trata continuidade de execução.
a respeito das responsabilidades e autoridades para executar
o processo e também recebe uma nova definição a partir do No resultado esperado GQA2 do processo Garantia da Qua-
nível E. Por fim, foi incluso um novo RAP10, que descreve lidade, é retratado que há uma interação entre este resultado
que o projeto é conduzido a partir da execução do seu processo esperado com o RAP 10 (A partir do nível F) e, consequen-
planejado, e a partir do nível F o mesmo recebe uma nova defi- temente a esta interação, é necessário avaliar a aderência a
nição. Com a inclusão desses dois RAPs, o atributo de processo todos os processos descritos no MR-MPS que a organização
AP2.1 passou a ter nove RAPs (RAP2 ao RAP10). implementa.
O MED1 (primeiro resultado esperado do processo Medição)
Nível F - Gerenciado deixa claro que os objetivos de medição são estabelecidos e
O processo de Gerência de Configuração sofreu alteração mantidos a partir dos objetivos de negócio da organização.
no resultado esperado GCO5, pois além de controlar as mo- O MED4 ainda acrescenta a importância da definição de
dificações nos itens de configuração, este resultado descreve metas no auxilio a análise das medidas. Apesar do título do
que é necessário, também, apresentar essas modificações às resultado esperado MED7 ter sido modificado, seu propósito
partes interessadas. continua o mesmo.

12 Engenharia de Software Magazine - Guias 2009 do MPS.BR: o que mudou?


PROcesso

O atributo de processo 2.2 acrescenta um novo infraestrutura e do ambiente de trabalho e, por fim, produtos de trabalho
RAP cujo objetivo é garantir que os requisitos dos e lições aprendidas são gerenciados na biblioteca de ativos do processo.
produtos de trabalho tenham sido identificados.
Nível D – Largamente Definido
Nível E – Parcialmente Definido Este nível sofreu poucas modificações, em relação ao processo Projeto
Segundo o resultado esperado para o processo Ge- e Construção do Produto (PCP). Seu primeiro resultado esperado – PCP1
rência de Projetos (Evolução) GPR4, a partir do nível – destaca a importância dos requisitos definidos em relação ao produto e
E, a utilização de um método parametrizado para aos componentes do produto.
dimensionar as tarefas e os produtos de trabalho Verificando o processo Validação (VAL), constatou-se algumas informa-
do projeto é obrigatório. Exemplos de métodos são: ções que foram acrescidas nos resultados esperados deste processo, por
Análise de Pontos por Função e Análise de Pontos exemplo: no resultado esperado VAL5 o guia descreve que não é necessário
por Caso de Uso. Já o GPR18 passa a ser implemen- corrigir todos os problemas encontrados, desde que a organização tenha
tado para todos os níveis a partir do nível E. definido critérios que facilitem essa análise.
O processo Gerência de Recursos Humanos (GRH) Em relação aos atributos de processo, vale lembrar que este nível não
acrescenta mais resultados esperados: o GRH5 des- apresenta novidades em relação aos implementados no nível E. Entretanto,
creve a criação de um plano tático de treinamento é necessário a definição e implementação dos cinco processos específicos
que deve ser definido para suprir as necessidades com a mesma capacidade dos processos já implantados.
estratégicas de treinamento da organização e dos Todas as informações referentes aos resultados esperados de processos
projetos. que podem ser excluídos do escopo da avaliação são mais bem detalhadas
A mudança no resultado esperado para o processo nos novos guias da versão 2009, pois tratam de informações a cerca de
Gerência de Reutilização – GRU3 – refere-se à im- organizações que realizam atividades específicas do desenvolvimento
plementação deste resultado para todos os níveis de software.
a partir de onde é definido pela primeira vez, ou
seja, no nível E. Ainda neste resultado, é feito uma
descrição mais detalhada sobre o mesmo quando a
organização quer atingir o nível C.
Novas definições em relação ao RAP5, RAP6,
RAP7 e RAP9 são apresentadas:
• RAP5 (a partir do nível E): que trata a respeito dos
recursos e informações para executar o processo de-
finido são disponibilizados, alocados e utilizados;
• RAP6 (a partir do nível E): garante a atribuição e
a comunicação dos papéis requeridos, responsabi-
lidades e autoridades às pessoas responsáveis pela
execução do processo definido;
• RAP7 (a partir do nível E): verifica se as pessoas
alocadas para executar o processo definido possuem
o perfil adequado;
• RAP9 (a partir do nível E): estabelece que confor-
me o processo padrão é executado na organização
na forma de processo definido, dados de uso do
processo devem ser coletados para formar uma base
para acumular conhecimento sobre o comportamen-
to do processo padrão.

Ainda foram incluídos dois novos RAPs no atri-


buto de processo 3.1. Ambos tratam de elementos
(“papéis e competências requeridos” e “infraes-
trutura e ambiente de trabalho”) que precisam ser
identificados como parte do processo padrão.
Já no atributo de processo 3.2 foram acrescidos três
novos RAPs: O primeiro descreve que o processo
definido é implementado para o projeto baseado
nas diretrizes para seleção e/ou adaptação do
processo padrão; o segundo trata da gerência da

Edição 22 - Engenharia de Software Magazine 13


Nível C - Definido verificar se as mudanças no processo corrigiram o problema e
Neste nível a evolução do processo Gerência de Reutilização melhoraram seu desempenho. Essa verificação é feita através
(GRU) foi retirada. O processo Análise de Decisão e Resolução de medições;
(ADR) foi alterado para processo Gerência de Decisões (GDE), • RAP46 – Refere-se ao antigo resultado de processo ACP5,
contudo, o propósito, a fundamentação teórica e resultados cujo objetivo é armazenar os dados de análise de causas de
esperados deste processo continuam os mesmos. Por fim, problemas e resoluções para eventuais situações similares.
no processo Gerência de Riscos (GRI), o resultado esperado
GRI8 sofreu uma pequena modificação em relação à medição Novos guias de implementação
dos riscos. Assim como no nível D, os RAPs não sofreram Na versão 2009 foram criados mais três guias de implemen-
alterações. tação que possuem o objetivo de melhor orientar organizações
que possuem atividades específicas do processo de software,
Nível B – Gerenciado Quantitativamente detalhando quais processos, resultados esperados de pro-
O guia referente ao nível B não sofreu nenhuma altera- cessos e de atributos de processos essas organizações devem
ção a ponto de modificar o propósito do processo Gerência implementar.
de Projetos (Evolução), logo os resultados esperados deste Estes novos guias são apresentados visando o propósito
processo continuam iguais. Os RAPs também não sofreram do mesmo, e em seguida descrevendo como os processos do
modificações. modelo de referência MR-MPS devem ser implementados ou
não em cada tipo de organização.
Nível A – Em Otimização
Na versão 2009 dos guias de implementação, este nível não Organizações que adquirem software
possui processos específicos. Anteriormente, o mesmo pos- O primeiro guia é referente às organizações que adquirem
suía o processo Análise de Causas de Problemas e resolução software. Este apresenta orientações de como implementar o
(ACP). processo Aquisição (AQU), explicitando quando este processo
Os resultados esperados do processo ACP passaram a in- é obrigatório ou não em uma organização e que medidas tomar
corporar os resultados esperados do Atributo de Processo em relação aos demais processos.
5.1 e 5.2. Para uma organização que deseja implementar o nível G
No atributo de processo 5.1 seu propósito foi modificado do MPS.BR, deve deixar claro os papéis do adquirente e do
a fim de tratar das melhorias e não somente das inovações, fornecedor com o objetivo de: especificar as responsabilidades
alguns RAPs foram modificados e dois outros foram incluídos de cada um; o que cada parte tem que fazer; como criar seu
(antigos ACP1 e ACP2). cronograma e realizar seu monitoramento; quem é responsável
Os RAPs modificados são: pelas definições do projeto (recursos humanos, infraestrutura,
• RAP36 – que ao invés de somente definir os objetivos de me- recursos financeiros, entre outros); como será realizado o aces-
lhoria, é necessário fazer o levantamento de todas as propostas so aos dados, o fluxo de dados entre todos os envolvidos; como
de melhoria e fazer um estudo em cima dessas propostas; será realizada as revisões do projeto nas partes envolvidas; e
• RAP42 – este resultado de atributo de processo descreve que, como será obtido o comprometimento do projeto e dos requi-
além de estabelecer uma estratégia de implementação para os sitos com as partes envolvidas. Por fim, é importante lembrar
objetivos de melhoria do processo, é necessário que essa estra- que nenhum resultado esperado de processo e atributo de
tégia também seja estabelecida para resolver problemas. processo pode deixar de ser implementado.
Quando a organização deseja implementar o nível F do
Os novos RAPS são: MPS.BR é necessário que, além do processo Aquisição, sejam
• RAP37 – Refere-se ao antigo resultado de processo ACP1 que implementados: o processo gerência de configuração (onde o
trata sobre a identificação, classificação e seleção para análise adquirente deve estabelecer e manter seu próprio sistema de
dos defeitos e outros problemas; gerência de configuração); o processo Garantia da Qualidade
• RAP38 – Refere-se ao antigo resultado de processo ACP2 (onde o adquirente deve avaliar os produtos de trabalho gera-
que descreve sobre a análise de identificação da causa raiz dos dos pela atividade que executa, bem como analisar e aprovar
defeitos e outros problemas, e análise sobre soluções aceitáveis os resultados das avaliações da qualidade do produto gerados
para evitar a ocorrência futura; pelo fornecedor); o processo Medição (onde são medidos tanto
os produtos de trabalho gerados pelo adquirente quanto os
No AP 5.2 foram adicionados dois RAPs (antigos ACP4 e gerados pelo fornecedor). Por fim, pode ser excluído do escopo
ACP5) que se referem à gerência das ações implementadas, da avaliação o processo de Gerência de Portfólio de Projetos
são eles: quando a única atividade da organização adquirente seja
• RAP 45 – Incorporou o antigo RAP36 cujo objetivo é avaliar evolução do produto.
a efetividade das mudanças, e também se refere ao antigo re- Se a organização quer implementar o nível E do MPS.BR é
sultado do processo ACP4 cujo objetivo é o acompanhamento necessário implementar: os resultados esperados da evolução
das ações implementadas para resolução de problemas para do processo Gerência de Projetos; o processo Avaliação e

14 Engenharia de Software Magazine - Guias 2009 do MPS.BR: o que mudou?


PROcesso

Melhoria do Processo Organizacional; Definição do Processo ser implementados todos os resultados esperados, pois são
Organizacional; o processo Gerência de Recursos Humanos processos comuns a todo tipo de organização;
(levando em consideração os recursos humanos da organização
adquirente); o processo Gerência de Reutilização (válidos tanto Já os processos que permitem a exclusão de seus resultados
para reutilização de ativos da organização adquirente quanto esperados são:
para os ativos do fornecedor). • Aquisição – Este tipo de processo pode não se aplicar às
Para a implementação do nível D são solicitados: somente organizações que possuem como única atividade fabricar
um resultado esperado do processo Desenvolvimento de código;
Requisitos (DRE), trata-se do DRE1, os demais resultados • Desenvolvimento de requisitos – Apenas o resultado
esperados podem ser excluídos, isto vai depender do tipo de esperado DRE1 é obrigatório, pois auxilia a compreensão e a
aquisição do projeto; no processo Integração do Produto (ITP) aceitação das especificações;
é obrigatório somente a implementação do ITP9, os demais • Integração de Produto – Poderá ser excluído caso a or-
também dependem do projeto; no processo Validação (VAR) ganização não realize atividades de integração de código
apenas os resultados esperados VAL1, VAL6 e VAL7 são obri- desenvolvido;
gatórios. Por fim, podem ser excluídos de uma avaliação o • Projeto e Construção do Produto – Somente o PCP6 é obriga-
processo Projeto e Construção do Produto (PCP) e o processo tório. Caso a Fabrica de Software também faça a documentação,
Verificação (VER). o PCP7 e PCP8 podem ser necessários;
A implementação do nível C requer que sejam satisfeitas • Validação – Poderá ser excluído se a organização não realizar
as seguintes condições: os resultados esperados do processo atividades de teste de homologação/aceitação;
Desenvolvimento para Reutilização variam conforme o tipo • Desenvolvimento para Reutilização – A exclusão dos
de aquisição que a organização executa; todos os resultados resultados esperados deste processo depende das atividades
esperados do processo Gerência de Decisões e do processo executadas pela organização do tipo Fábrica de Software.
Gerência de Riscos são obrigatórios.
Para a implementação dos níveis B, deve-se atentar para os Organizações do tipo Fábrica de Teste
resultados esperados da evolução do processo Gerência de O último novo guia da versão 2009 apresenta orientações para
Projetos, cujo objetivo é estabelecer critérios para o fornecedor a implementação do MR-MPS em organizações do tipo Fábrica
visando qualidade do produto e desempenho do processo de Teste. As fabricas de teste devem possuir independência
com base nos objetivos da organização e do processo. Outro organizacional para testar seus produtos, ou seja, liberdade e
fator relevante é a definição de um acordo a cerca dos dados autoridade para realizar os testes e comunicar seus resultados
estatísticos dos processos da organização. para os interessados.
Como o nível A não possui processos específicos, não há Os processos que não podem ter seus resultados esperados
processos a serem implementados em uma organização que excluídos são:
adquire software. Contudo, é importante ressaltar que os re- • Gerência de Projetos e suas evoluções – As organizações
sultados de atributos de processo devem ser implementados deste tipo devem definir seu projeto de acordo com as ativi-
no contexto dos processos para este tipo de organização, assim dades para as quais foi contratada, ou seja, teste do produto
como para qualquer nível que se deseja implementar. de software;
• Gerência de Requisitos – Neste tipo de organização este
Organizações do tipo Fábrica de Software processo é tratado como gerência dos requisitos de teste. A
O segundo guia descreve a implementação do MR-MPS fábrica de testes é responsável por entender, avaliar e aceitar
em organizações do tipo Fábrica de Software, pois algumas os requisitos com a utilização de critérios definidos, incluindo
atividades do processo de software são de responsabilidade os requisitos para teste; a rastreabilidade bidirecional é feita
da contratante da fábrica, fazendo com que alguns processos levando em consideração os produtos gerados pela fabrica de
não se apliquem a este tipo de organização. Os processos e testes; quando há mudanças nos requisitos, a maneira como
resultados esperados onde não são permitidas exclusões são: os mesmos são gerenciados e/ou repassados para a Fábrica de
• Gerência de Projetos e suas evoluções – O gerenciamento Testes é estabelecido e declarado pelo adquirente;
de projetos pode ser feito da mesma forma que nos demais • Gerência de Configuração, Gerência de Portfólio de Projetos,
tipos de organização. A diferença geralmente está no escopo Garantia da qualidade, Medição, Avaliação e Melhoria do Pro-
do trabalho que prioriza a etapa de construção de código; cesso Organizacional, Definição do Processo Organizacional,
• Gerência de Requisitos – Envolve gerenciar as modificações Gerência de Recursos Humanos, Gerência de Reutilização,
nas especificações provenientes da organização contratante; Verificação, Gerência de Decisões e Gerência de Riscos – De-
• Gerência de Configuração, Gerência de Portfólio de Projetos, vem ser implementados todos os resultados esperados, pois
Garantia da qualidade, Medição, Avaliação e Melhoria do Pro- são processos comuns a todo tipo de organização.
cesso Organizacional, Definição do Processo Organizacional,
Gerência de Recursos Humanos, Gerência de Reutilização, Ve- Já os processos que permitem exclusão de seus resultados
rificação, Gerência de Decisões e Gerência de Riscos – Devem esperados são:

Edição 22 - Engenharia de Software Magazine 15


• Aquisição – Este tipo de processo pode não se aplicar às Quando se trata das entrevistas realizadas na avaliação
organizações deste tipo, pois as mesmas realizam atividades final, a nova versão dos guias deixa claro que é necessário
de teste; registrar as afirmações coletadas na Planilha de Indicadores
• Desenvolvimento de requisitos – Apenas o resultado espera- logo após as entrevistas, pois outras atividades da avaliação
do DRE1 é obrigatório, pois auxilia a compreensão e a aceitação podem comprometer o que foi dito pelos entrevistados.
dos requisitos que serão utilizados para testes; As caracterizações de atributo de processo para satisfazer
• Integração de Produto e Projeto e Construção do Produto os níveis do MR-MPS sofreram pequenas alterações: o AP
– Poderão ser excluídos totalmente do escopo da avaliação, 1.1 tem que ser, obrigatoriamente, Totalmente implemen-
pois normalmente fabricas de teste não realizam atividades de tado (T) em todos os níveis, o AP 2.1 e AP 2.2 passou a ser
construção (desenvolvimento) e integração de código; T a partir do nível E, os demais continuam com a mesma
• Validação – Poderá ser excluído se a organização não realizar caracterização.
atividades de teste de homologação/aceitação; Já para evitar o descredenciamento de uma IA, além das
• Desenvolvimento para Reutilização – A exclusão dos condições que já existiam, passou a ser obrigatório a pre-
resultados esperados deste processo depende das atividades sença do coordenador da IA anualmente ao workshop de
executadas pela organização do tipo Fábrica de Testes. avaliadores (W3-MPS.BR) e na reunião de coordenadores
de IA.
É muito importante lembrar que a exclusão de qualquer Para se tornar um avaliador líder inicial foi adicionado
processo ou determinados resultados esperados deve estar mais uma condição que trata a respeito de ser aprovado na
bem justificado por parte da organização. Em relação à ava- prova para implementadores (P2-MPS.BR) e a condição que
liação MPS, a aprovação das exclusões é responsabilidade do trata a respeito do número de participações em avaliações
avaliador Líder. como avaliador adjunto foi acrescido para seis. Agora um
avaliador líder intermediário tem que possuir, como experi-
Guia de Avaliação ência profissional comprovada, envolvimento significativo
Na versão 2009, o guia de avaliação sofreu algumas modi- de processos de software onde a organização obteve o nível
ficações no contexto do processo e regras para a execução da D ou C do MR-MPS ou CMMI nível 3 ou superior, e ter lide-
avaliação. Nesta nova versão ficou estabelecido que uma Ins- rado pelo menos seis avaliações de níveis G ou F. Por fim,
tituição Avaliadora (IA) não poderá ser contratada caso: tenha para se tornar um avaliador líder experiente, foram alterados
dado consultoria na organização a ser avaliada durante os a formação acadêmica no que diz respeito ao conhecimento
últimos três anos, mesmo que tenha sido somente um membro do controle estatístico de processos.
da equipe da IA; algum membro da IA tenha realizado um “gap
analysis” na unidade organizacional a ser avaliada, além das Guia de Aquisição
restrições já contidas na versão anterior do modelo. A principal O Guia de aquisição descreve um processo de aquisição de
diferença é na validade dessas restrições (três anos) que não Software e Serviços Correlatos (S&SC) baseado na Norma
estava presente no guia de avaliação da versão anterior. Internacional ISO/IEC 12207:2008, complementado pela
Foram adicionados passos na condução da avaliação inicial norma IEEE STD 1062:1998. Porém, é importante ressaltar
do subprocesso de preparar a realização da avaliação, como: que o processo Aquisição (AQU) a ser verificado em uma
apresentar os processos da unidade organizacional e confirmar avaliação MPS é descrito no guia de implementação refe-
a realização da avaliação final. rente ao nível F.
Em relação à equipe de avaliação, é detalhado o perfil do Neste guia, as mudanças são apresentadas conforme a se-
representante da organização avaliada, e a estimativa de tempo quência das atividades previstas para aquisição de S&SC.
para realização da avaliação também foi alterado: níveis A, B, Houve algumas mudanças nas tarefas previstas para
C e D passaram a ter a duração de três a quatro dias para a aquisição de software, por exemplo, na tarefa prevista
avaliação inicial e de três a cinco dias para a avaliação final; “Desenvolver uma estratégia de aquisição”, o guia apre-
no nível E, a duração é de dois a quatro dias tanto para a ava- senta opções viáveis para aquisição de software e serviço
liação final quanto para a avaliação final; no nível F dura de correlato (S&SC).
dois a três dias para ambos, e no nível G a duração é de um Os relacionamentos das tarefas do processo de Aquisição
a dois dias. com os demais processos do MR-MPS foram retirados da
Ao se tratar do número mínimo de membros da equipe versão 2009.
de avaliação, o guia descreve que é possível completar Para a execução de algumas tarefas foram incluídos novos
a equipe com membros da organização que atendam às produtos requeridos, como na tarefa prevista de monitorar
condições estabelecidas ou aumentar a equipe da IA ou, a aquisição da atividade de monitoramento do contrato, são
ainda, aumentar o número de dias da avaliação. Executar eles: “Resultado da análise do desempenho do fornecedor”
uma dessas medidas é importante para manter a seriedade e “Software e Serviço Correlato”.
da avaliação no que diz respeito à quantidade mínima de Como o processo de Aquisição também forma profissionais
membros da equipe. (consultores de aquisição MPS), as condições para se tornar

16 Engenharia de Software Magazine - Guias 2009 do MPS.BR: o que mudou?


PROcesso

um consultor sofreram alterações. Foi incluída uma condição É muito importante que todos estejam atentos a essas altera-
que une as condições II, III e IV da versão 1.2 que descreve ções, pois são mudanças relevantes que podem ser fatores de-
a necessidade da elaboração de um Plano de Aquisição de cisivos para um bom desempenho do profissional responsável
Software (PAS) de um projeto real ou teórico, com o objetivo pela implementação dos processos, um bom desempenho da
de mostrar sua capacidade. Esse PAS deverá ser apresentado organização em uma avaliação e, por fim, pode ser decisivo
presencialmente ou via internet para uma banca avaliadora para a habilitação de um futuro avaliador do modelo MPS.
constituída por membros da SOFTEX, e esta banca indicará
se o candidato foi aprovado. Referências/Links

Baseado nos guias, versão 2009.


Conclusão
Disponíveis em: http://www.softex.br/mpsbr/_guias/default.asp
As modificações, descritas nos guias versão 2009, represen-
tam melhorias do modelo MPS, além de ajustar a conformi-
Dê seu feedback sobre esta edição! Feedback
dade com a norma internacional ISO/IEC 12207:2008 e com eu

s

a norma ISO/IEC 15504, que também tiveram atualizações. A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
Isto mostra a seriedade de manter no mercado um modelo Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
atualizado, em concordância com a realidade brasileira e,
edição
Dê seu voto sobre este artigo, através do link:
ao mesmo tempo, compatível com o modelo mais adotado
www.devmedia.com.br/esmag/feedback
no mundo, o CMMI.

Edição 22 - Engenharia de Software Magazine 17


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Fatores críticos de sucesso em programas de


melhoria de processo de forma cooperada
De que se trata o artigo?
Este artigo descreve as experiências vivenciadas pelo
SOFTEXRECIFE na organização de programas de me-
lhoria de forma cooperada com base no modelo MPS.
BR. O principal objetivo do trabalho é compartilhar os
Geovane Nogueira Lima Marcos André Gomes aprendizados, analisando os principais pontos que fo-
geovane@next.org.br marcos@recife.softex.br
Bacharel em Ciência da Computação pela ram determinantes para o sucesso obtido.
Bacharel em Administração de Empresas pela
Universidade Federal de Lavras (UFLA). Universidade Federal de Pernambuco. Pós-
Mestre em Engenharia de Software pela graduado em Gestão da Tecnologia da Infor- Para que serve?
Universidade Federal de Pernambuco mação pela UPE (Universidade de Pernambu- Para todos os interessados em implementar melhoria
(UFPE) possui pós-graduação em Melhoria co). Atua a mais de 25 anos, em empresas de
do Processo de Software, e em CMMI pela de processo de forma colaborativa, o artigo indica os
grande porte no setor do comercio, indústria
UFLA. Profissional certificado pelo ISTQB primeiros passos e desta os principais pontos impac-
e serviços na área de TI, 15 dos quais como
(International Software Testing Qualifica- gerente de TI. Implantou processos e meto- tantes no sucesso da implementação.
tions Board) e pelo PROQUALITY (Núcleo dologias de desenvolvimento de software
de estudos em Engenharia e Qualidade de e gestão de equipes, em diversas empresas. Em que situação o tema é útil?
Software). Possui 10 anos de experiência Implementou certificação ISO 9001-2000 Este tema é de grande utilidade para a melhoria
em TI, tendo atuado em diversos projetos em empresas de desenvolvimento de sof-
de desenvolvimento de software e em pro- da qualidade e produtividade do software nacio-
tware. Atualmente exerce o cargo de Diretor
jetos de pesquisa e inovação tecnológica de Tecnologia do SOFTEX RECIFE, onde dirige nal, abordar forma de se implementar modelos
financiados pelo CNPQ. Há 5 anos, atua projetos, junto a empresas e organismos de qualidade em grupos de empresa, o que reduz
como consultor e instrutor em Melhoria governamentais (BNDES, FINEP, MCT, SEBRAE expressivamente os custos de implementação.
de Processo de Software, realizando ativi- e outros). Gestor do projeto de melhoria da
dades de consultoria e implantação de Me- qualidade de software em Pernambuco, atra-

E
lhoria do Processo de Desenvolvimento de vés de convênio para implementação do MPS.
Software, com base em diversos modelos: BR (Melhoria do Processo de Software) junto ste artigo tem por objetivo com-
CMMI, ITIL, ISO/IEC 15504, ISO/IEC 12207, com a Sociedade SOFTEX,O MCT(Ministério da partilhar a experiência bem suce-
MPS.BR, BPM, PMBOK, SCRUM dentre Ciência e Tecnologia) e o BID(Banco Interame- dida vivida pelo SOFTEXRECIFE
outros. Entre suas principais atuações ricano de Desenvolvimento). Gestor do NEXT na organização de cooperativas para
como consultor em projetos de melhoria, (Núcleo de Excelência em Teste de Sistemas),
destacam-se empresas como ATAN/ Ac- implantação do programa de melho-
o laboratório de teste de software do SOFTEX
centure, TOTVS, FlagIntelliwan, Procenge RECIFE. Diretor regional da ALATS (Associação ria com base no modelo MPS.BR. De
e MV Sistemas. Latino Americana de Teste de Software). forma sucinta, esperamos repassar os

18 Engenharia de Software Magazine - Fatores críticos de sucesso em programas de melhoria de processo de forma cooperada
Processo

aprendizados adquiridos, apresentar e discutir os principais com outras instituições, elemento chave de uma estratégia,
pontos determinantes do sucesso da cooperativa, na ótica da em curso, para consolidar a cidade do Recife como um pólo
IOGE (Instituição Organizadora de Grupo de Empresas). reconhecido e respeitado de geração, produção e difusão de
O SOFTEXRECIFE em parceria com a SWQuality organi- Tecnologia da Informação.
zou em 2006 o primeiro grupo de empresas em Recife para a O SOFTEXRECIFE atuou no papel de IOGE (Instituição
implantação do programa de melhoria, com base no Modelo Organizadora de Grupo de Empresas) na primeira e segunda
de Referência do MPS.BR [MR-MPS.BR] e em 2007 o segundo cooperativa MPS.BR Recife.
grupo de empresas, motivado pelo comunicado da Sociedade Podemos observar que a organização das cooperativas está
SOFTEX Nacional para a formação de grupos de empresas totalmente alinhada aos objetivos do SOFTEXRECIFE, e neste
para a implantação do MR-MPS.BR no modelo cooperado. Esta ponto todos os esforços foram realizados para ajudar as em-
primeira cooperativa de empresas teve por objetivo apoiar a presas, na sua busca por competividade.
implementação do nível G do modelo em 5 empresas de de-
senvolvimento de software da região Nordeste, e a avaliação As cooperativas
seguindo o Método de Avaliação do MPS.BR [MA-MPS.BR]. A primeira cooperativa foi formada em abril de 2006, com o
A primeira cooperativa MPS.BR nível G desenvolveu suas objetivo de implantação de um programa de melhoria baseado
atividades no período de abril de 2006 a junho de 2007, quando no nível G do MR-MPS.BR, além da avaliação oficial neste nível
as últimas empresas do grupo foram avaliadas obtendo o nível do modelo de 5 empresas organizadas em grupo.
G. Das 5 empresas que iniciaram o grupo, 4 empresas foram A cooperativa foi organizada em parceria com a SWQuality
avaliadas e todas foram bem sucedidas com as avaliações Consultoria e Sistemas, a qual atuou como II (Instituição
realizadas conforme previsto no projeto. Com isto obtive- Implementadora), ficando responsável pelas atividades de
mos uma taxa de sucesso de 80%, maior do que a prevista consultoria, treinamento e comunicação do grupo.
inicialmente. As empresas selecionadas para compor esta primeira coope-
Em 2007 foi organizada a segunda cooperativa com 9 empre- rativa foram: CAPITAL LOGIN, PROCENGE, PROVIDER, MV
sas organizadas em dois grupos, um grupo com 5 empresas SISTEMAS e NEUS. Todas as empresas são classificadas como
objetivando o nível G e o outro com 4 empresas objetivando empresas de médio ou pequeno porte, e estão todas situadas
o nível F. Estes grupos foram finalizados no início de 2009, na região Nordeste do país.
com a avaliação oficial de 3 empresas no nível F e 4 no nível A cooperativa, conforme definido no seu próprio Plano de
G. Com estes resultados, obtivemos um índice de 78% das Projeto, teve como principais objetivos:
empresas que iniciaram o grupo avaliadas oficialmente, e • Avaliar e aprovar 5 empresas de desenvolvimento no nível
com 100% de aproveitamento nas avaliações, ou seja todas as G do MPS.BR;
empresas que se submeteram à avaliação oficial obtiveram o • Promover a cultura da qualidade em desenvolvimento de
nível pretendido. software no ecossistema de Pernambuco;
• Difundir o MPS.BR.
A IOGE
O SOFTEXRECIFE, criado em 1994, é o Centro de Tecnologia Sendo a principal prioridade a avaliação oficial das empresas
de Software para Exportação do Recife. Sua missão é articular, no nível G do MPS.BR, num prazo de doze meses.
fomentar e apoiar ações direcionadas à excelência do setor de Os resultados alcançados foram bastante expressivos, atin-
software em Pernambuco. gindo todos os objetivos planejados e superando inclusive
No momento, o SOFTEXRECIFE conta com mais de 70 em- algumas das expectativas iniciais. Das 5 empresas participan-
presas a ele associadas, o que significa uma parcela importante tes, 4 foram avaliadas e todas obtiveram resultado positivo
das empresas que formam o setor de Tecnologia da Informação na avaliação, obtendo assim o nível G do modelo. A única
e Comunicação em Pernambuco. empresa não avaliada deveu-se à mudança no seu foco de atu-
A principal missão do SOFTEXRECIFE é aumentar a com- ação, extinguindo sua área de desenvolvimento de software.
petividade das empresas de Tecnologia da Informação e Assim, obtivemos um indicador de desempenho, com 100%
Comunicação, buscando instrumentos para fomentar o desen- de sucesso.
volvimento do setor de software no Estado de Pernambuco. O Temos plena convicção que todo este sucesso se deve ao
SOFTEXRECIFE tem como visão tornar-se dentro de 2 anos, um esforço conjunto de todos os atores envolvidos na cooperati-
centro difusor da cultura da qualidade e referência em teste de va: IOGE, II e empresas; e principalmente a harmonia entre
software e, com isso, contribuir para a consolidação do Recife estes atores. Os fatores de sucesso da cooperativa dependem
como um pólo de excelência na produção de TI. da união, esforço e comprometimento de todos. Por parte da
O SOFTEXRECIFE é na verdade uma comunidade viva de IOGE, entendemos que o principal fator de sucesso foi assumir
empresas da área de Tecnologia da Informação que dispõe uma postura pró-ativa, e, sobretudo, valorizar a comunicação
de um espaço institucional para se aperfeiçoar e promover entre os envolvidos.
o seu crescimento e inserção no mercado local, nacional e O principal desafio enfrentado logo no início dos trabalhos
internacional. Em face desse papel, o SOFTEXRECIFE é, junto foi conseguir despertar o interesse das empresas e selecionar

Edição 22 - Engenharia de Software Magazine 19


algumas delas para a formação do grupo. A princípio, pou- foram elaborados e aplicados alguns questionários às empre-
cas empresas se interessaram pelo programa de melhoria de sas. O processo de seleção ocorreu junto com a participação
processo com base no MR-MPS.BR, que, de certa forma, já era da II (Instituição Implementadora).
de se esperar, pois o modelo MPS.BR ainda estava se desenvol- Subsídio vinculado ao cumprimento das metas: embora
vendo e em processo de aceitação pelo mercado. Para superar as condições estabelecidas pela Sociedade SOFTEX Nacional
esta dificuldade o SOFTEXRECIFE atuou fortemente junto à permitam que as empresas recebam a primeira parcela na
gestão das empresas filiadas e várias rodadas de apresentações assinatura do convênio, o SOFTEXRECIFE achou por bem
sobre melhoria de processo e do modelo MPS.BR foram pro- adotar outra postura. Foi então definido que, para se obter os
movidas, a fim de que os executivos das empresas tomassem subsídios, as empresas teriam que atingir primeiro as metas es-
conhecimento do modelo. Esta medida surtiu o efeito desejado tabelecidas (50%, 100% e a avaliação). Embora esta abordagem
e conseguimos formar o primeiro grupo de empresas. possa dificultar a participação das empresas, ela serve como
A segunda cooperativa foi formada em agosto de 2007 e se incentivo e aumenta significativamente o compromisso com
mostrou mais complexa do que a primeira, visto que o número o sucesso do projeto. Pudemos perceber que além do aumento
de empresas é significativamente maior, e também por ser do compromisso, as empresas ficaram motivadas a atingir as
composta de 2 grupos, a saber: um grupo com 5 empresas metas no menor espaço de tempo possível.
trabalhando para obter o nível G, e outro grupo de 4 empresas Termo de cooperação técnica: os acordos para a formação
trabalhando para obter o nível F. Estes fatores foram ampla- da cooperativa foram tratados como “Termo de Cooperação
mente compensados pela experiência adquirida com a primeira Técnica Financeira” e não simplesmente como um Contrato Co-
cooperativa. De forma geral todas as ações estruturantes da mercial entre as partes. Tal abordagem explicita que o sucesso
cooperativa anterior foram mantidas, sendo realizados apenas do projeto é de responsabilidade de todos, e que depende do
alguns pequenos ajustes no modelo de gestão. desempenho do grupo como um todo. Em outras palavras, o
Algumas ações foram reforçadas por terem apresentado sucesso de uma das partes está estritamente ligado ao sucesso
resultados positivos na cooperativa anterior. Dentre elas, po- das outras partes, sendo o contrário também verdadeiro.
demos destacar: o incentivo a colaboração e, o reconhecimento Regras claramente definidas: é de extrema importância estar
das particularidades de cada empresa. Enquanto a primeira com todas as regras muito bem definidas e compreendidas por
ação aumenta o comprometimento da empresa; a segunda todos, antes do início dos trabalhos. E tão importante quanto a
diminui a resistência a mudanças, o que é muito comum em sua definição, é sua implementação. Para atender este item, re-
projetos desta natureza. alizamos reuniões onde as regras administrativas, financeiras
Os resultados alcançados, com a aprovação de 7 empresas e técnicas foram apresentadas aos participantes do grupo. Isto
(4 no nível G e 3 no nível F) vem confirmar a efetividade do foi feito antes mesmo da formação oficial do grupo.
modelo implementado pelo SOFTEXRECIFE, que tem como Relacionamento estreito com a II: um relacionamento
principio básico a integração entre os atores do projeto (IOGE, estreito entre a II e a IOGE, desde o início dos trabalhos, foi
II e empresas). sem dúvida, um ponto fundamental para o sucesso obtido.
A relação entre IOGE e II deve ser vista como uma parceria,
O Aprendizado e não uma simples contratação de prestação de serviço. O
Analisamos o desempenho obtido nas cooperativas, bus- alinhamento entre estratégia/metodologia de implantação e a
cando identificar algumas das práticas adotadas que tenham gestão da cooperativa é primordial para um bom andamento
contribuído para o sucesso do projeto. Pudemos observar que dos trabalhos. Como a II está mais próxima das empresas,
algumas destas práticas não têm nada de inovador, são apenas participando do seu dia a dia e consegue identificar as dificul-
boas práticas da Gerência de Projetos, contudo, trouxeram uma dades tão logo estas surjam, este relacionamento permite que
ótima contribuição para os resultados obtidos. a IOGE tome medidas antecipadas e até mesmo preventivas
Desde o início da formação da cooperativa as atividades de solução de problemas.
foram tratadas como um Projeto. Observamos que algumas Metodologia de trabalho bem definida: ter uma metodolo-
práticas são próprias do contexto da organização de trabalhos gia de trabalho clara e bem definida é importante e passa con-
de forma cooperada. A seguir apresentaremos e comentaremos fiabilidade do processo para as empresas. É recomendável que
estas práticas. as etapas/fases da metodologia estejam claramente divididas.
Critério para formação do Grupo: ao selecionar os partici- Uma divisão bem estruturada permite um acompanhamento
pantes que irão compor o grupo, é importante buscar empresas da evolução do projeto de forma mais precisa e menos árdua.
que tenham uma boa afinidade entre si e que não tenha con- A SWQuality apresentou uma metodologia de trabalho divi-
flitos de interesse. Deve-se tomar o cuidado de não colocar no dida em 8 fases bem nítidas, e com os resultados esperados
mesmo grupo empresas que sejam concorrentes diretas, ou que para cada uma delas claramente definidos, o que contribuiu
não tenham um bom relacionamento. Na medida do possível para o acompanhamento do projeto. Outro ponto observado,
é interessante selecionar empresas no mesmo nível de matu- é que a utilização de uma metodologia facilita o nivelamento
ridade. Para que se possa fazer uma seleção e agrupamento das expectativas entre as partes envolvidas, e serve como base
adequado das empresas é fundamental conhecê-las. Para tal, para o planejamento das atividades da cooperativa.

20 Engenharia de Software Magazine - Fatores críticos de sucesso em programas de melhoria de processo de forma cooperada
Processo

Figura 1. Organograma do projeto


Canal de comunicação: logo no início dos trabalhos foi criada Na Tabela 1 é apresentado os papéis no projeto, e descrito quais
uma intranet para que todos os participantes da cooperativa são as responsabilidades de cada uma das partes. Observe que
pudessem trocar informação livremente, gerando assim um por parte da empresa foram definidos três papéis, cada um com
canal de comunicação. Pela intranet podemos trocar experi- suas responsabilidades bem delineadas.
ências, divulgar notícias, compartilhar material e enviar os Grupo Executivo: foi definido um modelo de gestão da coo-
comunicados das atividades do grupo. Foi de suma impor- perativa que estabelece a criação do Grupo Executivo, o qual é
tância incentivar a comunicação entre as empresas sem que constituído por representantes de todas as partes envolvidas:
a mesma dependesse do intermédio da IOGE, especialmente IOGE, II, e um representante de cada empresa. Como podemos
para troca de experiências. observar no Organograma (Figura 1), este é o topo da hierarquia,
Incentivo à colaboração: observamos que no início do projeto garantindo assim um processo democrático à cooperativa. O
as empresas ficam relativamente tímidas e resistentes em com- Grupo Executivo é responsável por aprovar requisições de mu-
partilhar suas experiências, mas é função da IOGE tentar reverter danças que afetam custo, prazo e/ou escopo, bem como tratar os
esta situação. É importante que a IOGE atue incentivando a todo o problemas escalados, e principalmente acompanhar a evolução do
momento a constante troca de experiência. No início as empresas projeto. Esta prática foi de fundamental importância para manter
foram obrigadas a apresentar o andamento dos trabalhos para todo o comprometimento do grupo, a clareza dos trabalhos e garantir
o grupo periodicamente. Ocorreram reuniões técnicas para troca certa flexibilidade ao grupo.
de experiências, aprendizado e debate das dificuldades. Com a Reunião de acompanhamento: as reuniões de acompanha-
evolução do projeto a colaboração tornou-se bastante natural, não mento foram realizadas ao longo de todo o projeto, sendo mais
sendo mais necessária uma forte intervenção da IOGE. Esta postura frequente nas fases iniciais. Nestas reuniões cada empresa ela-
da IOGE foi bastante elogiada pelas próprias empresas. borava e apresentava um relatório de andamento do projeto e a II
Reconhecer a particularidade de cada empresa: embora as apresentava um acompanhamento de cada empresa em relação
atividades ocorram de forma cooperada, as particularidades aos marcos da cooperativa. Em todas as reuniões os principais
de cada empresa foram a todo o momento respeitadas. Obser- pontos do projeto eram monitorados, como por exemplo: crono-
vamos que as empresas evoluem em ritmos diferentes, seja em grama, consumo dos recursos (horas de consultoria) e questões
função de suas características ou de uma situação específica. É financeiras. Com isto podemos observar a importância destas
de extrema importância respeitar o ritmo de evolução individual reuniões na redução de conflitos, comunicação e reforço no
de cada empresa. Para tanto, cada empresa elabora seu próprio comprometimento do grupo.
cronograma considerando suas particularidades, mas manten-
do os pré-requisitos dos marcos definidos pelo cronograma da Conclusões
cooperativa. Esta abordagem permitiu, por exemplo, que uma A experiência da primeira cooperativa MPS.BR organizada
das empresas evoluísse mais rápido e obtivesse o nível G em pelo SOFTEXRECIFE em parceria com a SWQuality foi um
menos de 8 meses, enquanto o planejado pela cooperativa era de projeto que conseguiu alcançar todos os seus objetivos tanto
aproximadamente 12 meses. na avaliação das empresas, quanto na divulgação do Modelo
Definição clara dos papéis e responsabilidades: um projeto MPS.BR. O sucesso desta iniciativa pôde ser confirmado com
de cooperativa envolve vários atores, e cada um com interesses a formação da segunda cooperativa. Atendendo à demanda, o
particulares. Por isso a definição clara dos papéis e responsabi- SOFTEXRECIFE em parceria com a SWQuality, formaram dois
lidades, faz-se extremamente necessário. A definição dos papéis novos grupos de empresa. Um grupo com 5 novas empresas
e responsabilidades ocorreu logo no início do projeto e foi di- para a implantação do nível G, e um outro grupo, formado por
vulgado e aprovado por todos os envolvidos. A Figura 1 ilustra 4 empresas que participaram da primeira cooperativa, agora
o organograma do projeto. com o objetivo de implementar o nível F do modelo MPS.BR.

Edição 22 - Engenharia de Software Magazine 21


Definição de Papeis e Responsabilidades
Papel Responsabilidades
Grupo Executivo • Aprovar requisições de mudanças que afetem custo, prazo ou escopo;
• Resolver conflitos e problemas escalados;
• Acompanhar situação do projeto.
Gerente do Projeto • Acompanhar atividades;
Softex • Resolver conflitos e problemas;
• Gerenciar os riscos do projeto;
• Promover reunião de acompanhamento;
• Revisar relatórios de homologação;
• Gerenciar recursos oriundos do Softex Nacional;
• Aprovar requisições de mudanças que não afetem custo, prazo ou escopo;
• Gerenciar ações corretivas e/ou preventivas;
• Gerenciar a comunicação do projeto;
• Disponibilizar recursos.
Coordenador Técnico • Apoiar Gerente do Projeto Softex nas questões técnicas do projeto
Softex • Realizar homologação de produtos técnicos da SWQuality
Coordenador Técnico • Preparar relatórios de acompanhamento;
SWQuality • Participar de reuniões de progresso;
• Reportar conflitos e riscos a qualquer momento ao Gerente do • Projeto Softex;
• Gerenciar ações corretivas e preventivas designadas a ele;
• Manter site técnico do projeto atualizado.
Equipe Consultores • Executar treinamentos e consultorias;
• Elaborar documentos técnicos;
• Reportar status ao coordenador técnico SWQuality.
Patrocinador No âmbito do projeto dentro da empresa:
• Acompanhar progresso do projeto;
• Resolver conflitos e problemas;
• Disponibilizar recursos.
Gerente do Projeto No âmbito do projeto dentro da empresa:
Melhoria • Acompanhar progresso do projeto;
• Reportar status do projeto ao Patrocinador;
• Gerenciar os riscos do projeto;
• Gerenciar ações corretivas e/ou preventivas;
• Homologar serviços e produtos prestados pelo projeto;
• Participar das reuniões de progresso agendadas pelo Softex.
Equipe Técnica No âmbito do projeto dentro da empresa:
• Participar das reuniões de consultoria e treinamentos do projeto;
• Reportar status do projeto;
• Apoiar na identificação de riscos técnicos do projeto.
Tabela 1. Definição de Papéis e Responsabilidades

Os dois novos grupos de empresas, nível G e nível F, adotaram Referências


a mesma abordagem da primeira cooperativa e os primeiros [MA-MPS] Associação para Promoção da Excelência do Software Brasileiro – SOFTEX. MPS.BR
resultados foram bastante positivos, com a aprovação de 7 das Guia de Avaliação, v 1.0 2006. Disponível em www.softex.br.
9 empresas envolvidas no modelo MR-MPS.
[MR-MPS] Associação para Promoção da Excelência do Software Brasileiro –
A experiência vivida na primeira e segunda cooperativa nos
mostra que o início das atividades é o momento crucial para SOFTEX. MPS.BR - Guia Geral, v 1.1 2006. Disponível em www.softex.br.
sucesso ou fracasso do projeto. É importante que todas as partes
Dê seu feedback sobre esta edição! Feedback
tenham conhecimento dos objetivos do trabalho, o esforço espe- eu
s

rado, e que as expectativas estejam bem alinhadas e que tenham A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

conhecimento da metodologia de gestão e de execução das consul- Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
torias. Em outras palavras, é fundamental um bom planejamento, Dê seu voto sobre este artigo, através do link:
edição

e um forte comprometimento de todos os envolvidos. www.devmedia.com.br/esmag/feedback

22 Engenharia de Software Magazine - Fatores críticos de sucesso em programas de melhoria de processo de forma cooperada
Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

ITIL: Por onde começar?


Como dar os primeiros passos na implementação desse framework

De que se trata o artigo?


Veremos como se pode dar os primeiros passos
para implementar os processos ITIL com o objetivo
de adotar o gerenciamento de serviços de TI pro-
posto por esse framework, que é um dos pilares da
Governança de TI.

Para que serve?


O propósito do ITIL é implementar o gerenciamento
de serviços de TI com o objetivo de garantir a manu-
tenção dos processos de negócio e o alinhamento en-
tre a área de TI e as demais áreas fins da empresa ou
cliente externo. Sem o ITIL fica difícil visualizar os ser-
viços providos pela área de TI e garantir o atendimen-
to dos níveis de serviço demandados pelo cliente.

N
os últimos três anos, o ITIL Em que situação o tema é útil?
virou uma febre nas áreas de Empresas que vêm enfrentando dificuldades em
TI. Em uma pesquisa realizada garantir a disponibilidade de seus serviços e pro-
Samuel Diniz Casimiro em 2007 pelo ITSMF Internacional, em blemas para alinhar seus esforços com as áreas
samuel.casimiro@gmail.com parceria com o capítulo Brasil, revelou negociais devem considerar a implementação
É servidor público e trabalha como analista
que, no universo das empresas que in- parcial ou total desse framework.
de sistemas em um grande órgão do gover-
no; trabalhou cerca de 10 anos na área de vestem em gerenciamento de serviços de
desenvolvimento de sistemas de um grande TI, cerca de 23% disponibiliza recursos
banco brasileiro; é certificado SCJP, SCWCD para ITIL – Cobit é o framework que desse framework (veja o quadro “O que é
e ITILF; especialista em soluções J2EE para vem em segundo lugar, com 16%. Nesse um framework?”) também estão em alta.
intranets; consultor de TI para pequenas
período, a demanda por treinamento Executivos, gerentes e técnicos criam
e médias empresas; e crítico ferrenho dos
modelos de desenvolvimento adotados aumentou vertiginosamente. Os servi- enormes expectativas após um primeiro
atualmente nas grandes empresas. ços de consultoria para implementação contato com o assunto. Áreas inteiras de

Edição 22 - Engenharia de Software Magazine 23


TI são treinadas, profissionais são certificados e todos correm
para a implementação. Projetos são iniciados, diversas reuni-
O que é um framework?
ões são realizadas, consultores preenchem relatórios e muito Essa palavra é muito comum na área de informática. Mas muita
dinheiro é gasto na compra de ferramentas, assessoramento e gente a usa sem nem saber o que realmente significa. A tradução
treinamento. O tempo vai passando e os projetos de implemen- literal de framework é armação ou estrutura. Alguns dicionários
tação, já atrasados, vão sendo prorrogados. Expectativas são traduzem também como esqueleto ou arcabouço. O dicionário
frustradas ou, na melhor das hipóteses, adiadas. Contratos de Cambridge traduz como “estrutura de sustentação arredor da
consultoria são revistos, gerentes de projetos são substituídos qual algo pode ser construído”. No caso do ITIL, é justamente isso!
e novas reuniões são marcadas. Quando parecia que quase O ITIL é um esqueleto, resultado da união de diversos “ossos” que
tudo estava pronto, as pessoas começam a perceber que quase são as boas práticas. Entretanto, como é um esqueleto, se trata de
nada foi feito. algo incompleto. Os livros dão apenas linhas gerais dos processos.
Essa é a situação de várias empresas brasileiras que ten- Políticas, fluxos e procedimentos devem ser construídos. Imagine
taram, ou ainda estão tentando, implementar os processos o ITIL como um grande prédio onde existe apenas a estrutura de
ITIL nos últimos anos. Não é preciso fazer uma pesquisa sustentação. É uma estrutura robusta, não se pode ter dúvida. Mas
científica para perceber isso. Basta aproveitar os eventos de levantar as paredes e terminar a construção fica por conta de cada
TI e treinamentos para se relacionar com outros profissio- empresa que vai implementar esse framework.
nais e chegar a essa conclusão. Fóruns de discussão, sites
de comunidades e até o Twitter estão lotados de desabafos
e frustrações relacionadas com a implementação desse fra- Contudo, a literatura não oficial sugere que o ITIL surgiu
mework. Também não faltam artigos sobre isso. em decorrência da Guerra das Malvinas, quando o governo
Diante desses problemas, surgem algumas perguntas. Por- britânico, apesar de vencedor, levou uma surra dos argen-
que as áreas de TI estão se esforçando para implementar o tinos. Como quase toda guerra, a TI foi determinante para
ITIL? Porque existe tanta expectativa em torno disso? Porque a vitória britânica, mais a rainha não ficou nem um pouco
muitas empresas não estão conseguindo implementar esse satisfeita com as constantes falhas e indisponibilidades dos
framework? Quais são os principais problemas? E como diversos serviços de TI envolvidos no conflito. Foi aí que
podem ser solucionados? surgiu o ITIL.
Este artigo vai tentar analisar essas e outras questões O ITIL não é uma metodologia, tão pouco uma certificação,
com o objetivo de oferecer ao leitor um caminho prático apesar de profissionais poderem ter o seu conhecimento
para começar a implementação do ITIL. A meta é ser bem certificado naquele framework. O ITIL é um conjunto de
sucedido com o menor custo possível. Afinal, em tempos de melhores práticas para gerenciar serviços de TI, assim como
crise financeira, as empresas não podem se arriscar a gastar o PMBOK é um conjunto de melhores práticas para gerenciar
milhões tentando melhorar seus processos quando não se projetos – mas uma coisa não tem nada a ver com a outra. O
sabe exatamente qual o benefício financeiro que terão em foco é, portanto, gerenciamento de serviços de TI.
retorno. Na dúvida, portanto, ou as empresas deverão tentar E o que é um serviço de TI? É tudo aquilo que as áreas de
implementar os processos ITIL com o menor esforço possível TI oferecem para suportar os objetivos de negócio do cliente,
ou é melhor elas tentarem uma outra abordagem. seja ele interno ou externo. Essa abordagem precisa ficar
clara. A área de TI é que provê os serviços de TI e o cliente
Antes de começar é quem utiliza esses serviços. Assim, note que os serviços
Existe muita confusão em torno do ITIL. Já presenciei de TI devem estar alinhados com o negócio. O serviço é
verdadeiras discussões sobre qual framework uma empresa algo que o cliente percebe como sendo importante para a
deveria adotar. Alguns defendem o ITIL, outros preferem o operacionalização do negócio. Isso deixa claro que o geren-
CMMI, Cobit, ISO, Six Sigma, etc. Esse tipo de discussão só ciamento de serviços não é um objetivo por si só e sim um
deixa claro que muitos ainda não sabem do quê realmente meio de se atingir os objetivos de negócio do cliente. Como
se trata cada um desses frameworks. Por isso, a primeira essa visão de serviços de TI facilita o alinhamento da TI com
coisa a ser feita antes de se pensar em implementar o ITIL os objetivos estratégicos da empresa, o ITIL é tido como um
é entender claramente o que é e o que não é. dos pilares da Governança de TI.
As melhores práticas estão contidas em sete livros. Basica-
Entenda o que é o ITIL mente, cada livro descreve alguns processos que podem ser
O ITIL é mais antigo do que muitos pensam. Surgiu na implementados para viabilizar um gerenciamento de servi-
década de 80. Diz a literatura oficial que ele foi encomen- ços de TI bastante robusto. Cada processo é descrito como
dado pelo governo britânico para regular os contratos de uma série de ações ou atividades executadas por papéis
terceirização de TI que existiam na época. Naquela época, já específicos para obter um ou mais resultados importantes
existia uma forte dependência de serviços de TI e o governo no gerenciamento de serviços de TI. Apesar de serem sete
britânico estava insatisfeito com o custo e com a qualidade livros, o foco do ITIL está contido em apenas dois livros,
desses serviços. um que trata do Suporte aos Serviços e outro que trata da

24 Engenharia de Software Magazine - ITIL: Por onde começar?


Processo

Entrega dos Serviços. O conteúdo desses livros será tratado MPS.BR, têm tudo a ver com Gerenciamento de Mudanças
em futuros artigos. e Gerenciamento de Liberações, do ITIL.

Não é gerenciamento de projetos Não é uma ferramenta


Como já foi dito, o ITIL é um conjunto de boas práticas Já vi empresas comprando uma ferramenta e dizendo
para gerenciar serviços de TI assim como o PMBOK o é que estão adotando o ITIL na empresa. Mesmo aquelas
para gerenciar projetos. Mas entenda que uma coisa não empresas que entendem que a implementação do ITIL
tem nada a ver com a outra. De um lado estamos falando de vai muito além da utilização de uma ferramenta acabam
serviços de TI, geralmente prestados de forma continuada, focando demais nela. Precisamos entender uma coisa de
em que os objetivos estão relacionados com a manutenção uma vez por todas: Ferramenta é a última coisa com a qual
de um ou mais processos de negócio. De outro lado esta- você vai ter que se preocupar. ITIL é sobre implementar
mos falando de projetos, que têm início e fim determina- processos e, antes de mais nada, isso envolve definição
dos, em que os objetivos são produzir algo de novo. Para de atividades e papéis, pessoas, normas e treinamento.
exemplificar isso, imaginemos um banco. Para suportar o A ferramenta só deve ser escolhida quando tudo o mais
processo de abertura de conta-corrente, a área de TI desse estiver pronto, ou seja, quando os fluxos dos processos
banco poderá prover um serviço de TI, composto de um ou estiverem bem definidos e os papéis bem acordados.
mais sistemas, para informatizar os trabalhos. Mas perceba Além do mais, existem diversas ferramentas disponíveis
que um serviço pode muito bem nascer de um projeto. no mercado. E se a sua estratégia de implementação for de
Quando esse banco trabalha para criar um novo tipo de implementar um processo de cada vez, talvez seja interes-
conta-corrente e os serviços de TI relacionados, estamos sante adquirir apenas os módulos da ferramenta referentes
falando de projeto. Após a conclusão do projeto, quando aos processos que estão sendo implementados naquele
a área de TI começar a prover os serviços, os processos momento. Assim, você dilui o custo de implementação e
ITIL entram em ação. Dessa forma, perceba que esses obtém retorno financeiro mais cedo. Se a sua empresa já
frameworks, apesar de serem completamente distintos e possui um ambiente de desenvolvimento e uma intranet,
utilizados em situações e momentos diferentes do negócio, considere desenvolver a sua própria ferramenta. Utilizar
eles são, ao mesmo tempo, complementares. uma ferramenta que tenha a cara da empresa ajudará a
Mesmo assim, muito provavelmente sua empresa iniciará reduzir a resistência das pessoas bem como a diminuir os
um projeto para implementar o ITIL. Nesse contexto, os custos de integração de uma ferramenta de mercado ao
processos e técnicas propostos pelo PMBOK serão úteis legado que porventura já exista.
para auxiliar a gestão do projeto de implementação do
ITIL. Fora isso, esses livros, apesar de falarem de gestão Não é uma abordagem tudo ou nada
de forma geral, tratam de temas bem distintos. Como já foi dito, o ITIL é um conjunto de boas práticas.
Infelizmente, assim como ocorre com o PMBOK, alguns
Não é MPS.BR pensam que precisam implementar tudo. E isso não verdade
Qual é o melhor framework a se implementar, o ITIL por vários motivos! Primeiro, mesmo que você implemente
ou o MPS.BR? Resposta: os dois. Apesar de terem alguns tudo, entidade alguma vai certificar que a sua empresa é
processos em comum, esses frameworks são complemen- 100% ITIL. Isso porque não existe certificação de empresas,
tares. No ITIL, o foco é gerenciar serviços de TI que este- tal como ocorre com o MPS.BR ou ISO, apenas certificação
jam alinhados ao negócio. No MPS.BR, que é baseado no de profissionais como já foi dito. Em segundo lugar, não
CMMI, o foco é produzir um software de qualidade que existe nenhuma garantia que, caso você implemente todos
suportará, depois de pronto, um ou mais serviços de TI. os processos e funções do ITIL, todos os resultados espera-
No primeiro, o objetivo é suportar os processos de negócio dos serão obtidos. Em terceiro lugar, o ITIL é um conjunto
e garantir que o cliente esteja satisfeito com o serviço. No de boas práticas coletadas em diversos setores da indústria
segundo, o objetivo é melhorar o processo de desenvolvi- de serviços de TI. Então nem tudo se aplicará a sua empresa
mento de software para que se possa produzir de forma ou, mesmo que se aplique, os custos dos controles podem
mais eficiente e eficaz. superar os benefícios.
Algumas empresas preferem começar pela implantação Portanto, tenha muita cautela ao escolher os processos que
do MPS.BR, alegando que precisam primeiro por ordem serão implementados na sua empresa. Vá devagar e, após
na casa para depois poderem se preocupar com os serviços cada passo, reavalie os resultados obtidos. Talvez com alguns
de TI que são oferecidos aos seus clientes. Mas muito vai poucos processos você consiga resolver os problemas que
depender do nível de maturidade que o seu processo de motivaram a implementação desse framework.
desenvolvimento de software já apresenta. Na dúvida, tal-
vez seja interessante intercalar a implementação de alguns Levante os problemas a resolver
processos do MPS.BR com alguns processos de ITIL. Por Como foi dito no último parágrafo, é importante monitorar
exemplo, Gerência de Projeto e Garantia da Qualidade, do se a implementação do ITIL está resolvendo os problemas

Edição 22 - Engenharia de Software Magazine 25


da empresa e melhorando o provimento dos serviços de TI. os problemas a serem resolvidos, escolheu os processos que
O problema é que muitas empresas nem sequer sabem quais serão adotados e definiu políticas para cada um deles. Não
problemas se espera resolver com a implementação desse fra- foi dito, mas vale a pena ressaltar, que todos os envolvidos
mework. Sem conhecer esses problemas fica difícil avaliar a nesse trabalho que antecede o início do projeto precisaram
implementação e saber exatamente qual foi o retorno obtido. ser treinados no ITIL, de outra forma não teriam o correto
Para evitar isso, é importante levantar todos os problemas que entendimento do assunto e não saberiam decidir sobre quais
se espera serem sanados com a implementação do ITIL. Reúna processos seriam adotados. É interessante que alguns, em
todas as áreas interessadas, faça uma lista de problemas, des- especial os gerentes que vão assumir a responsabilidade pelos
creva em detalhe cada um deles, suas causas e consequências e processos, recebam um treinamento mais avançado tal como
verifique quais deles podem ser resolvidos e quais os processos o fornecido para obter a certificação de Practioner. Parece
envolvidos em cada um deles. Essa análise servirá, inclusive, pouco, mas esse início talvez leve um ou dois anos. O marco
para que se possa decidir sobre quais processos serão imple- dessa fase inicial é a conclusão das políticas e o compromisso
mentados primeiro, pois em geral são priorizados aqueles que formal dos patrocinadores. O projeto de implementação já
resolverão o maior número de problemas. pode ser iniciado.

Suas políticas estão definidas? Iniciando um projeto


Certos frameworks, como a ISO, deixam bem claro que me- Dependendo da estratégia que será adotada, pode-se tratar
lhorar a qualidade de produtos ou serviços envolve considerar a implementação de todos os processos que foram escolhidos
melhorias em três camadas ou podemos dizer dimensões: em um único projeto ou dividir esses processos em vários
Políticas, processos e procedimentos. Isso é algo básico em projetos debaixo de um mesmo programa. Alguns preferem
qualquer framework de melhoria de processos. O MPS.BR, por criar um projeto por processo ou reunir um grupo de proces-
exemplo, força a definição das políticas por meio do primeiro sos afins em um mesmo projeto. Dividir o trabalho em vários
resultado esperado para cada processo. No ITIL, a necessidade projetos ajuda a diminuir a complexidade, a obter resultados
de definir políticas nem sempre é muito clara. A descrição de mais cedo e contribui para evitar a recorrência de problemas
alguns processos nem sequer menciona uma política. na implementação dos processos seguintes graças às lições
Apesar disso, a definição das políticas deve anteceder a aprendidas ao final de cada projeto ou processo.
implementação de cada processo. Mesmo sendo o ITIL um Nesse momento os gerentes de projeto são designados e
framework focado no nível operacional da empresa, ficará as equipes que trabalharão nos primeiros projetos são alo-
muito difícil para o grupo responsável pela implementação cadas. Mais uma vez, vale ressaltar que, apesar de ser bom
tomar decisões sem uma política clara do que a administra- ter uma equipe multidisciplinar, é importante que todos que
ção da empresa deseja. A não ser que os executivos estejam trabalharão diretamente no projeto recebam um treinamento
diretamente envolvidos no projeto, participando de todas as mais profundo sobre os conceitos e práticas ITIL. Se a equipe
reuniões, o que raramente ocorre. Começar com a definição das do projeto envolver representantes de várias áreas, o que é
políticas permitirá também que as ideias sejam amadurecidas ótimo, sugere-se que eles estejam dedicados integralmente
com antecedência. Isso evitará muita discussão desnecessária, ao projeto. Sugere-se também que se envolva a auditoria de
retrabalho, reduzirá os custos de implementação – especial- TI, caso exista uma.
mente se uma consultoria for contratada – e contribuirá para
uma visão do ITIL mais alinhada com os objetivos estratégicos Defina uma estrutura
da administração. Na prática, a definição das políticas vai Se o ITIL for o primeiro framework que a empresa estiver
representar a materialização do compromisso da administra- implementando, é bem provável que ainda não exista uma
ção com a implementação do framework – algo vital para o estrutura no organograma da área de TI que seja responsável
sucesso do projeto. pela gestão de processos e qualidade da TI como um todo.
Vale ressaltar que o ITIL, apesar de muito popular, não tem Empresas que já implementaram o MPS.BR, por exemplo,
muito conteúdo. Os livros contêm apenas linhas gerais para geralmente já terão um departamento responsável pela gestão
guiar a implementação dos processos. Como não se trata de dos processos, qualidade e melhoria contínua. Caso já exista
uma metodologia, faltam alguns detalhes de implementa- uma área assim, ela é uma ótima candidata a assumir a gestão
ção. Além das políticas, os procedimentos de cada processo de alguns dos processos do ITIL que serão implementados.
precisarão ser construídos inteiramente pela empresa. Outra Diz-se de alguns, e não de todos, porque alguns processos
coisa que falta no ITIL é um ordem lógica para implementar são tipicamente geridos por áreas específicas. O processo de
os processos, coisa que o MPS.BR oferece por meio dos níveis incidentes é um deles, sendo tipicamente gerido e executado
de maturidade. pela central de serviços.
De qualquer forma, para garantir que a implementação de um
Começando processo não se deteriore com o tempo, é importante que exista
Considerando o conteúdo apresentado acima, vamos supor uma área responsável pelo monitoramento e qualidade dos
que a empresa obteve o entendimento correto do ITIL, levantou processos ITIL. Quando uma área assim não existe, é comum

26 Engenharia de Software Magazine - ITIL: Por onde começar?


Processo

os membros da equipe do projeto assumirem essas funções ITIL. Os treinamentos para a certificação ITIL Foundation são
após a conclusão da implementação. Como essa é uma área ótimos para esse fim, pois são curtos e relativamente baratos.
tipicamente de controle, é interessante que ela esteja ligada Se não for possível promover esse curso para todos, tente rea-
diretamente à alta administração ou tenha pelo menos um lizar palestras e workshops sobre o assunto. Promova debates
executivo responsável por ela. sobre o tema. Crie fóruns de discussão. Incentive a colaboração
Deixar de criar uma estrutura organizacional para cuidar dos por meio de artigos para resolver determinados problemas le-
processos e da qualidade é um erro comum nas empresas que vantados pelas equipes dos projetos durante a implementação
implementam ITIL. Nesses casos, os gerentes dos processos e premie as melhores contribuições. Isso vai criar um clima de
implementados acabam sendo funcionários de outras áreas compromisso e expectativa vitais para o sucesso.
que precisarão dividir o tempo deles entre as atividades que já
vinham desempenhando e a gestão dos processos envolvendo Defina a estratégia
o gerenciamento de serviços de TI. O problema é que esses Com base nas políticas que foram definidas e nos proble-
funcionários acabam por priorizar suas atividades corriqueiras mas que foram levantados, pode-se agora definir qual será a
em detrimento dos processos e muito do que foi implementado estratégia de implementação. Já se falou sobre a possibilida-
acaba ficando apenas no papel. de de criar projetos para cada processo ou um projeto para
Portanto, a criação de uma estrutura responsável pela gestão todos. Mais ainda restam duas perguntas: Quais processos
dos processos é vital para garantir a institucionalização deles implementar? E em qual ordem os processos devem ser
e promover a melhoria contínua. A definição de indicadores, o implementados?
monitoramento e controle já é muito trabalho para ser dividido Vamos tentar responder à primeira pergunta. Como já foi
com outras funções. mencionado, o ITIL não utiliza uma abordagem tudo ou
nada. Trata-se de um repositório de boas práticas, de onde
Traga as pessoas para o seu lado se pode selecionar aquelas que melhor se adéquam à reali-
Preste atenção na Figura 1. A engrenagem “people”, pessoas, dade da empresa. Um bom ponto de partida é a análise dos
não é a maior por mero acaso. As pessoas são a parte mais problemas que foram levantados antes do projeto. Quais
importante em qualquer framework de melhoria de processos. os principais problemas que a área de TI vem enfrentan-
Não adianta desenhar processos perfeitos se as pessoas não do? Como a abordagem de gestão de serviços de TI pode
souberem ou não estiverem a fim de executá-los. contribuir para resolver esses problemas? Quais processos
Já falamos aqui sobre treinamento de executivos, gerentes sugeridos pelo ITIL estão diretamente relacionados com
e da equipe do projeto de implementação. Mas serão outras esses problemas? As respostas dessas perguntas devem
pessoas que vão executar as atividades de cada processo, que indicar os processos mais importantes. Contudo, aqui vai
vão exercer papéis nesses processos. Por isso, é importante con- uma palavra de cautela. Apesar de não ser obrigatória a
vencer também esses de que o ITIL vai trazer melhorias e não adoção de todos os processos, é importante verificar que
simplesmente ordenar-lhes que executem os procedimentos. E, existe uma certa dependência entre alguns deles. Talvez a
para isso, nada melhor do que uma boa dose de catequização sua análise de problemas aponte apenas alguns processos.
Mas às vezes não se pode obter todos os resultados espera-
dos implementando apenas um processo isoladamente. É
claro que os processos definidos como prioritários podem
e devem ser focados. Os processos dependentes podem
ficar para depois. Como já foi considerado, processos afins
podem ser agrupados em um mesmo projeto.
Sabendo quais os processos que serão implementados,
agora é o momento de decidir a ordem de implementação
deles. Em geral, não é viável implementar todos de uma
vez só, mesmo que sejam apenas aqueles priorizados pela
análise acima. Implementar muitos processos de uma
vez só requer muitas pessoas e é pouco provável que elas
possam interromper suas atividades corriqueiras para se
dedicarem ao projeto. Tenha em mente que implementar o
ITIL geralmente leva de um a dois anos. Portanto, não crie
falsas expectativas. Dê um passo de cada vez, ou seja, cada
processo a seu tempo.
Independentemente da sua análise, é bem provável que
sua empresa implementará os processos de gerenciamento
de incidentes e o de mudanças. Esses são processos chaves
Figura 1. Aspectos vitais do ITIL que não podem ser desconsiderados por nenhuma empresa.

Edição 22 - Engenharia de Software Magazine 27


As características desses dois processos e os ótimos resul- serviço para poder ter um catálogo de serviços. A definição
tados que podem ser obtidos com a implementação deles os do catálogo de serviços é, portanto, prioridade também.
tornam bons candidatos para começar a implementação. É
o que será analisado no tópico a seguir. Providenciar uma ferramenta
A pergunta que precisa ser respondida é: De que ferramen-
Incidentes x mudanças tas precisamos para começar a implementação do ITIL?
Historicamente, a grande maioria das áreas de TI tem co- Já foi mencionado que a construção de uma CMDB é pré-
meçado a implementação pelo gerenciamento de incidentes. requisito para vários processos ITIL. Assim, a primeira
Parece uma boa opção, mas em geral ela é tomada com base ferramenta de que precisamos é uma solução para criar e
em palpites. O gerenciamento de incidentes permite que os manter uma base de todos os ativos de TI de uma organiza-
serviços de TI de uma empresa sejam rapidamente restabele- ção e os relacionamentos entre eles. É uma base de metada-
cidos em caso de indisponibilidades. Assim, por meio desses dos e não dos ativos propriamente ditos. Essa base precisa
processos, é possível garantir a satisfação dos clientes com os basicamente guardar quatro tipos de informação: descrição
serviços prestados. Esse é um dos principais motivos pelo qual do ativo, área técnica responsável, relacionamentos com
empresas no mundo inteiro começam com o gerenciamento outros ativos e relacionamentos com os serviços. Estruturar
de incidentes. uma base assim é bem simples. O difícil é alimentar os da-
Entretanto, recentemente algumas empresas têm deixado dos. Existem algumas ferramentas disponíveis no mercado,
essa abordagem de lado e passaram a iniciar suas imple- comerciais ou open-source, que varrem a estrutura de TI via
mentações pelo gerenciamento de mudanças. Isso tem rede e catalogam automaticamente os ativos encontrados.
ocorrido porque boa parte dos problemas que afetam a Outra opção é catalogar os ativos de TI à medida que inci-
disponibilidade dos serviços de TI tem sua origem em um dentes são encontrados ou mudanças são solicitadas.
gerenciamento de mudanças mal feito e precário. De fato, Dado esse primeiro passo, o próximo vai depender da estra-
com um gerenciamento de mudanças ruim, a área de TI tégia de implementação. Se uma empresa resolveu começar
vai ficar constantemente apagando incêndios, ou seja, re- pelo gerenciamento de incidentes e central de serviços, ela vai
solvendo indisponibilidades. E isso acaba sobrecarregando precisar basicamente de uma ferramenta típica de help-desk
pessoas que, de outra forma, poderiam estar produzindo com funções de workflow para repassar as solicitações. Por
novas soluções e viabilizando mais serviços de TI. Por outro lado, se a estratégia adotada foi começar pelo geren-
essas e outras, o gerenciamento de mudanças parece ser a ciamento de mudanças, é de uma ferramenta de controle de
escolha mais natural para começar, pois dele dependem o mudanças que a empresa vai precisar. E é importantíssimo
gerenciamento de incidentes, de problemas e de liberação, que essa ferramenta esteja integrada à CMDB.
só para citar alguns. A escolha de uma ferramenta vai depender muito do ta-
manho da área de TI. Ao passo que microempresas podem
CMDB implementar diversos controles em uma simples planilha,
Mas daí alguns talvez possam dizer: Ah, mas o gerencia- empresas maiores acharão por bem adquirir ferramentas
mento de mudanças depende do gerenciamento de configu- comerciais mais robustas. Nesse sentido, os fornecedores
ração, então é melhor começar por ele. Resposta: sim e não. mais comuns são a BMC, com a sua suíte Remedy, a CA, com
Sim, considerando que o gerenciamento de mudanças só o Unicenter, a HP, com o Openview, e finalmente a IBM, com
alcançará sua plenitude se trabalhar em cima de uma base de o Tivoli. Mas vale ressaltar a que implementação do ITIL
dados de configuração (CMDB) 100% confiável. E não porque pode envolver diversas outras ferramentas, dependendo dos
não precisamos ter o gerenciamento de configuração para fluxos que foram definidos para cada processo.
ter uma CMDB. Agora, uma coisa é certa, nenhum processo
funcionará sem uma CMDB. É essa base que apontará os Passo-a-passo resumido
ativos de TI do qual dependem cada serviço de TI e isso é Considerando o que foi apresentado acima, chegamos ao
o que viabilizará vários outros processos como o gerencia- seguinte passo-a-passo resumido para começar a imple-
mento de mudanças, de liberação, de disponibilidade, etc. mentação dos processos ITIL:
Portanto, se a empresa ainda não tiver uma CMDB, fazer • Obter a correta compreensão do framework, treinando
o inventário dos ativos de TI e mapear os relacionamentos executivos e gerentes;
entre eles é um ótimo ponto de partida, algo a se fazer antes • Levantar os problemas da área de TI que poderiam ser
de implementar qualquer processo. resolvidos com a implementação;
• Escolher os processos que serão implementados;
Catálogo de serviços • Definir políticas para cada processo;
Do catálogo de serviços também dependem todos os de- • Escolher a estratégia de gerenciamento de projetos que
mais processos do ITIL, afinal estamos falando em gerencia- será utilizada na implementação;
mento de serviços. Contudo, tal como ocorre com o CMDB, • Definir a equipe do projeto de implementação e fornecer
não é necessário implementar o gerenciamento de nível de treinamento avançado;

28 Engenharia de Software Magazine - ITIL: Por onde começar?


Processo

• Trazer as demais pessoas para o seu lado por meio de Links


treinamento, oficinas e promoções; 10 things you should know about ITIL
• Escolher a ordem de implementação dos processos; http://articles.techrepublic.com.com/5100-10878_11-6134345.html
• Montar o CMDB; Change management: A better starting point for ITIL
• Publicar o catálogo de serviços; http://searchcio.techtarget.com/news/column/0,294698,sid182_gci1242026,00.html
• Implementar os processos na ordem definida;
ITIL and Configuration Management: Where to begin
• Rever lições aprendidas ao final de cada projeto ou marco; http://articles.techrepublic.com.com/5100-22_11-6177192.html
• Providenciar uma ferramenta.
ITIL® Implementation: Where to Start and Pitfalls to Avoid!
http://www.kpeak.com/ITIL%20Implementation%20-%20Sept%20%2706%20SIG.pdf
Conclusão
Este artigo mostrou a importância de se obter um correto ITIL process success: Get people on your side
entendimento do ITIL antes de iniciar a implementação desse http://searchcio.techtarget.com/news/column/0,294698,sid182_gci1249840,00.html
framework. Para reduzir o tempo e o custo de implementação, ITIL: Top five tips to kick-start your strategy
as empresas fazem bem em levantar seus problemas e definir h t t p : / / s e a rc h c i o. t e c h t a rg e t . c o m / t i p / 0 , 2 8 9 4 8 3 , s i d 1 8 2 _ g c i 1 3 1 5 2 9 8 , 0 0 .
suas políticas antes mesmo de contratar uma consultoria e/ou html?mboxConv=searchSecurity_RegActivate_Submit&
iniciar um projeto para a implementação de processos ITIL. Where to begin implementing service management
Outra coisa que vale a pena ser destacada é a necessidade de http://articles.techrepublic.com.com/5100-10878_11-1058518.html
deixar a ferramenta por último, de forma que seja possível
obter uma que se adéque a tudo o mais que tenha sido defini-
Dê seu feedback sobre esta edição! Feedback
eu
do. Por fim, mostrou-se que praticamente todos os processos

s

ITIL dependem do CMDB e do catálogo de serviços. Por isso, é A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
vital que estes sejam providenciados antes da implementação Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
de qualquer processo.
edição
Dê seu voto sobre este artigo, através do link:
www.devmedia.com.br/esmag/feedback

Existem coisas
que não conseguimos
ficar sem!

...só pra lembrar,


sua assinatura pode Renove Já!
estar acabando!

AMIGO www.devmedia.com.br/renovacao

Para mais informações:


www.devmedia.com.br/central
Edição 22 - Engenharia de Software Magazine 29
Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Arquitetura Orientada a Serviços


Sobre o que você precisa refletir para adotá-la em um contexto empresarial

De que se trata o artigo?


SOA traz diversos benefícios em um contexto empre-
sarial. Porém não podemos simplesmente comprar
uma SOA em uma prateleira. Neste intuito, este arti-

E
m seu livro, Josuttis faz a seguin- go discute alguns desafios e ingredientes que devem
te afirmação sobre Arquitetura ser considerados e pensados na adoção de uma SOA.
Orientada a Serviço (SOA): “O
problema é que você não pode simplesmente Para que serve?
comprar SOA, você tem que entendê-la e Mostrar alguns dos desafios e ingredientes que deve-
vivê-la. SOA é um paradigma. SOA é uma mos ter em mente e que precisamos definir para im-
maneira de pensar. SOA é um sistema de va- plantarmos uma SOA em um contexto empresarial,
lores para a arquitetura e design” [Josuttis, minimizando os riscos e as chances de fracasso.
2007]. Isso quer dizer que, assim como
o paradigma de Orientação a Objetos, o Em que situação o tema é útil?
paradigma Orientado a Serviços requer Em um contexto empresarial, SOA permite que or-
aspectos tecnológicos e não tecnológicos ganizações com infra-estrutura de aplicações frag-
Jorge Dias Jr. para ser bem sucedido. Ou seja, além do mentadas, sob a administração de diferentes áreas
josejorgejr@gmail.com
amparo ferramental, é necessário um de negócio, possam integrar estas aplicações no
www.jorgediasjr.com
Doutorando em Ciência da Computação conjunto de métodos, técnicas, processos nível de serviço. Além disso, SOA permite um maior
(UFPE). Mestre em Ciência da Computação e boas práticas para adotar uma SOA alinhamento da TI com o negócio. Tendo estes bene-
(UFPE). Graduado em Ciência da Computa- com sucesso. fícios em mente, é importante considerar os aspectos
ção (UFPB). Desenvolve pesquisas na área Este artigo não tem o objetivo de tecnológicos e não tecnológicos que podem influen-
de SOA desde 2005. Possui vários artigos
apresentar um passo a passo de como ciar o sucesso de sua adoção.
publicados em conferências nacionais e
internacionais. Tem experiência como ana- adotar uma SOA em uma empresa, mas
lista de TI na indústria, onde desenvolveu de mostrar alguns dos desafios e ingre-
sistemas no âmbito do governo federal, dientes que devemos ter em mente e que Conceitos iniciais
além de ter atuado em vários projetos da precisamos definir para implantarmos Existem diversas definições sobre SOA
iniciativa privada. Atualmente, é professor
uma SOA, minimizando os riscos e as e serviço, porém nenhuma delas é tida
e pesquisador no Departamento de Ciên-
cias Exatas da UFPB, Campus IV. chances de fracasso. como a oficial. Muitas destas definições

30 Engenharia de Software Magazine - Arquitetura Orientada a Serviços


PROJETO

vêm de fornecedores que as definem de acordo com as soluções A Figura 2 ilustra esta idéia. Perceba que os diferentes de-
que eles fornecem. Alguns exemplos de grandes fornecedores partamentos de uma empresa possuem diferentes sistemas
são a IBM, Microsoft e Oracle. de software que podem ser um CRM, um ERP, ou qualquer
Iremos definir SOA de uma maneira bem simples: SOA é uma outro sistema que automatize processos de negócio do seu
forma de se projetar uma arquitetura baseada na composição departamento. A idéia é disponibilizar a lógica desses sistemas
de serviços interoperáveis e reutilizáveis. A Figura 1 mostra os em forma de serviços interoperáveis e reutilizáveis. Acima
principais elementos de uma SOA: o fornecedor do serviço é desses serviços, existe uma camada onde estão os processos de
aquele que implementa e tem domínio sobre um serviço; o re- negócio que são executados através da invocação dos serviços,
gistro de serviço é um repositório onde fornecedores de serviço ou seja, os serviços são chamados em uma seqüência lógica de
podem registrar seus serviços para que eles sejam localizados acordo com os processos organizacionais. Neste cenário, novas
pelos consumidores; e o consumidor do serviço é aquele que aplicações clientes, com pouca ou nenhuma lógica de negócio,
localiza um serviço e o executa. O contrato é a especificação podem ser desenvolvidas em cima destes processos de negócio.
do serviço que possui as informações necessárias para que o Neste caso, estas aplicações clientes funcionam simplesmente
consumidor possa localizá-lo e invocá-lo. como entrada e apresentação dos dados.

Figura 1. Principais elementos de uma SOA

Esta é a idéia simplista que temos sobre SOA. A seguir vamos


analisar SOA em um contexto empresarial e quais os benefícios Figura 2. SOA em um contexto empresarial
que este tipo de arquitetura traz para as organizações.
O cenário ideal é que analistas de negócio da organização
SOA em um contexto empresarial possam fazer alterações nos processos e que isso seja refletido
Atualmente, muitas organizações possuem um conjunto de automaticamente no sistema empresarial como um todo, sem
diferentes sistemas, aplicações e arquiteturas com diferentes precisar alterar nenhuma linha de código. Esta é a idéia “Run
idades, tecnologias e plataformas. Além disso, os processos de what I just drew”, ou seja, “execute o que eu acabei de dese-
negócio destas organizações estão sujeitos a mudanças, ou devido nhar”. Este é um dos focos da área de BPM (Business Process
a alguma reestruturação de negócio, ou talvez devido à abertura Management). Atualmente, os conceitos de SOA e BPM estão
para novos parceiros de negócio. Neste contexto, como os sistemas bem relacionados e, por este motivo, as pessoas os confundem,
da organização conseguirão acompanhar estas mudanças? Este é achando que estas idéias de gerenciamento de processos per-
um cenário ideal para se pensar em adotar uma SOA. tencem a SOA. SOA dá o suporte tecnológico e metodológico
Neste contexto empresarial, SOA permite que organizações para expor serviços de negócio. Já BPM tem como objetivo
com infra-estrutura de aplicações fragmentadas, sob a admi- capturar, projetar, executar, gerenciar e monitorar processos,
nistração de diferentes áreas de negócio ou departamentos, geralmente através de ferramentas visuais. Como estes temas
possam integrar estas aplicações no nível de serviço. Portanto, estão bem interligados, ao longo deste artigo, iremos nos referir
as aplicações destes departamentos se tornam fornecedores e apenas ao termo SOA, sabendo que as idéias de BPM estão
consumidores de serviços de outros departamentos. incorporadas a ela.
Além disso, serviços representam bem funções de negócio e, É importante dizer que este é o cenário que SOA, juntamente
portanto, são considerados uma boa maneira para desenvolver com BPM, pode alcançar. Porém, SOA também pode ser utili-
aplicações que suportam processos de negócio, permitindo zado em outros cenários mais simples que não envolva BPM.
assim, alinhar TI às necessidades organizacionais. Cada
serviço representa uma determinada funcionalidade que é Benefícios na adoção de SOA
mapeada para um passo, ou vários passos, em um processo A adoção de SOA traz alguns benefícios devido às suas
de negócio. características. Esta lista de benefícios não está completa, e

Edição 22 - Engenharia de Software Magazine 31


é apenas uma indicação do potencial que essa plataforma os modelos de processos de negócio destas áreas organi-
arquitetural pode oferecer. zacionais. Além disso, é importante que estejam claras
as expectativas e necessidades de cada área em relação à
Flexibilidade implantação da SOA.
Como foi dito, todo sistema empresarial está sujeito a mu- Como foi explicado, SOA é uma boa solução para integra-
danças. Ele precisa continuamente ser adaptado para suportar ção. Mas não adianta tentar integrar sistemas de diferentes
novos requisitos devido às necessidades que envolvem o mer- unidades organizacionais se estas não estão integradas no
cado, mudanças na lei, ou mesmo reorganizações de negócio. nível de negócio. Portanto é importante, primeiramente,
Portanto, a arquitetura empresarial deve ser configurada de integrar as áreas de negócio e seus processos.
maneira flexível. As características de SOA possibilitam o
desenvolvimento de novos serviços de negócio e permitem Processo
que uma organização reuse estes serviços a fim de responder Para desenvolver serviços que atendam os princípios da
a estas mudanças. abordagem orientada a serviços, são necessários técnicas,
métodos e boas práticas de design específicas.
Manutenabilidade O processo de desenvolvimento de serviços envolve duas
A comunicação entre o consumidor e o fornecedor é baseada etapas: desenvolvimento para reuso e desenvolvimento
em interfaces bem definidas e padronizadas. Esta caracte- com reuso. O primeiro se preocupa em desenvolver servi-
rística aumenta o poder de manutenabilidade dos sistemas ços para que eles se tornem os mais reutilizáveis possíveis.
empresariais porque os detalhes de implementação ficam O segundo é criar aplicações reutilizando os serviços
escondidos. existentes.
Existem algumas metodologias encontradas na literatura.
Reusabilidade Algumas delas tentam dar suporte a todo o ciclo de vida
Reusabilidade tem sido um dos maiores objetivos da enge- de SOA, incluindo atividades de planejamento, análise e
nharia de software nos últimos anos, com diferentes graus projeto, construção, teste, implantação e governança, en-
de sucesso. Na SOA, a habilidade de compor novos serviços a quanto outras limitam seu escopo a um subconjunto destas
partir de serviços existentes fornece uma maior possibilidade atividades. Entretanto, este artigo não tem o objetivo de
para o reuso e uma vantagem distinta para uma organização detalhar nenhuma dessas metodologias, mas de apenas
que tem que ser ágil para responder às necessidades de negócio. dar uma noção geral de atividades que podem fazer parte
Desta maneira, o desenvolvimento das aplicações através do de uma metodologia orientada a serviços.
reuso de serviços torna mais rápido, aumenta a qualidade e É comum, em um contexto empresarial, existirem dife-
diminui os custos de desenvolvimento e tempo de entrega. rentes áreas de negócio onde cada uma possui seu próprio
time de desenvolvimento. Neste contexto, sob a perspectiva
Integração de processo de desenvolvimento, um dos principais bene-
Como já foi dito, muitas organizações possuem uma infra- fícios de usar SOA, é que ela possibilita um alto grau de
estrutura de aplicações fragmentadas na qual uma variedade modularização. Esta característica permite que os serviços
de aplicações clientes têm que ser criadas utilizando múltiplas possam ser implementados por diversos times. Evidente-
plataformas de programação e comunicação. Neste contexto, mente, estes times devem respeitar os contratos de serviços.
SOA pode facilitar a integração de sistemas heterogêneos já A Figura 3 ilustra um processo de desenvolvimento para
que a idéia é disponibilizar a lógica desses sistemas em forma SOA. O processo possui duas fases. A primeira fase objetiva
de serviços interoperáveis. especificar a SOA empresarial como um todo, definindo,
entre outras coisas, os serviços que irão compor a SOA.
Ingredientes para adoção Uma vez definidos os serviços, estes são alocados para os
Como foi dito anteriormente, SOA não é só tecnologia. SOA diferentes times de desenvolvimento que tem a responsa-
é um conceito amplo, que envolve outros aspectos para que bilidade de construir os serviços sob sua responsabilidade
sua adoção tenha sucesso em um contexto empresarial. Neste [Dias, 2009].
sentido, podemos citar quatro ingredientes fundamentais para
o sucesso de uma SOA: organização, processo, tecnologia e
governança.

Organização
Não adianta tentar implantar uma SOA sem alinhar a TI
com o negócio. Para tanto, é necessário entender a estru-
tura organizacional, suas áreas e unidades, assim como os
processos de negócio de cada uma delas. Neste sentido, é
Figura 3. Processo de desenvolvimento de uma SOA em um contexto
necessário revisar, caso existam, ou criar, caso não existam, empresarial

32 Engenharia de Software Magazine - Arquitetura Orientada a Serviços


PROJETO

As próximas subseções discutem algumas atividades que importante definir os contratos destes serviços. Um contrato
devemos considerar ao projetar uma arquitetura de sistema de serviço contém os termos acordados pelo fornecedor e
baseado em SOA. Porém, não significa que estas atividades consumidor do serviço.
são o suficiente para projetar uma SOA com sucesso, mas Algumas informações importantes que o contrato deve
apenas um indicativo para mostrar que, para termos uma abranger são as seguintes:
SOA de sucesso, não precisamos apenas de tecnologia, mas • interface do serviço: o nome e as operações do serviço;
também de uma arquitetura bem projetada. • mensagens do serviço: as mensagens que o consumidor
e o fornecedor irão trocar para executar o serviço; os tipos
Identificação de serviços de dados também deverão ser especificados;
Esta é uma das mais importantes atividades do projeto orien- • pré e pós condições: as pré e pós condições de cada ope-
tado a serviços. O objetivo é descobrir os serviços que compõe ração do serviço;
a SOA. Em um contexto empresarial onde existem diversas • atributos de qualidade: os atributos de qualidade que o
áreas de negócio, é importante a participação de todos os serviço deverá satisfazer;
interessados, não só dos que fazem parte da área tecnológica, • consumidores potenciais: a lista dos consumidores
mas também daqueles que são especialistas nos processos de conhecidos;
negócio de sua área. Isto porque os serviços precisam repre- • fornecedor: a entidade, a área, o sistema que irá fornecer
sentar bem as funções de negócio destes processos. o serviço;
A maioria das técnicas para identificar serviços é baseada • SLA: se houver um Service-Level Agreement envolvido no
nos modelos de processos de negócio. Por isso é importante contrato, ele deverá ser especificado.
ter estes modelos bem especificados.
Projetar e construir serviços
Aplicação dos princípios da orientação a serviços Depois de projetar a arquitetura baseada em SOA, os ser-
Da mesma forma que o paradigma orientado a objetos viços identificados serão alocados para os times de desen-
possui um conjunto de princípios que devem ser satisfeitos, volvimento. Cada time de desenvolvimento deve analisar,
o paradigma orientado a serviços também possui princípios projetar, construir e testar os seus serviços. Para tanto, é
específicos que devem ser seguidos. Depois que os serviços importante observar os atributos de qualidade especifica-
são identificados, é importante garantir que eles atendam dos na fase de definição da SOA. Além disso, o contrato de
a estes princípios da orientação a serviço. Entretanto, não serviço deve ser respeitado. A equipe deverá tomar decisões
existe uma lista oficial destes princípios. Thomas Erl, em de como expor as funcionalidades dos seus sistemas (caso
seu livro “SOA – Princípios de design de serviços”, lista existam) em forma de serviço.
um conjunto de princípios que devem ser atendidos, tais
como: contratos, acoplamento, abstração, capacidade de Tecnologia
reuso, autonomia, independência de estado, visibilidade e Atualmente, existe uma variedade de tecnologias rela-
composição de serviços. cionadas à SOA. Porém, não é necessário utilizar todas as
tecnologias para dizer que está implementando uma SOA.
Especificação dos atributos de qualidade Por outro lado, o fato de apenas utilizar uma das tecnologias
Escolher uma arquitetura que satisfaça aos requisitos não quer dizer necessariamente que está usando SOA. Outra
funcionais e aos requisitos não funcionais (atributos de questão importante é que SOA não está presa a nenhuma
qualidade) é vital para o sucesso de qualquer sistema. Para tecnologia. Porém, é evidente que algumas tecnologias já co-
SOA não é diferente. É importante entender como uma SOA nhecidas são ditas como a melhor forma de se implementar
suporta os diferentes atributos de qualidade e quais são uma SOA, como por exemplo Web Services.
suas implicações para criar um projeto com sucesso. Neste Abaixo seguem algumas das tecnologias relacionadas à
sentido, as pessoas interessadas e envolvidas na definição SOA [Davis, 2009]:
da SOA precisam definir e priorizar os atributos de quali-
dade que irão ser satisfeitos pela SOA. Alguns atributos de Web Services
qualidade são: interoperabilidade, performance, segurança, Para descrever Web Services, podemos seguir as definições
confiabilidade, disponibilidade, escalabilidade, testabili- de alguns fornecedores e institutos de pesquisa, como o
dade, adaptabilidade e reusabilidade. Para cada atributo Gartner: “são componentes de software com baixo fator de
definido, é necessário especificar como ele será garantido, acoplamento, utilizados por meio de padrões de tecnologia
seja através de aplicação de boas práticas de projeto, seja Internet. Um Web Service representa uma função de negócio
através de tecnologias. ou um serviço que pode ser acessado por uma outra aplica-
ção, sobre redes públicas e, geralmente, disponibilizado por
Especificação dos contratos de serviços protocolos conhecidos”. Web Service pode ser visto como um
Uma vez conhecidas as interfaces dos serviços e seus framework de tecnologias que permite a comunicação entre
respectivos fornecedores e consumidores em potencial, é aplicações heterogêneas através de serviços interoperáveis,

Edição 22 - Engenharia de Software Magazine 33


onde estes serviços podem ser localizados e executados dados simples que descrevem os diversos ativos. Porém,
através de protocolos padronizados. As três especificações para grandes organizações, é interessante ter um repositório
conhecidas do Web Services são o SOAP como protocolo de mais profissional e focado nos ativos da SOA.
comunicação, o WSDL como padrão de descrição de serviços
e o UDDI como padrão de registro de serviço. Governança
A Gartner declarou que a carência de planejamento rela-
Enterprise Service Bus (ESB) cionado à governança será o principal motivo dos fracassos
Um ESB pode ser visto como um middleware que tem o em SOA. Um estudo realizado pelo SOA Forum mostra que
objetivo de facilitar a integração de sistemas. Geralmente as políticas de governança são insuficientes em 88% das
um ESB possui as seguintes funcionalidades: prover se- organizações, o que pode comprometer o projeto. Ainda
gurança, prover transparência de localização, transformar segundo a Gartner, Governança SOA está relacionada à
mensagens, rotear e monitorar as mensagens, gerenciar os garantia de que os ativos de software e artefatos da sua
serviços, entre outros. arquitetura estão operando como esperado e dentro de um
Existem muitos produtos de ESB disponíveis no mercado certo nível de qualidade.
atualmente de fornecedores como IBM, TIBCO, Microsoft e Na SOA, consumidores de serviço e fornecedores de serviço
Oracle. A maioria desses produtos tem um background do são executados em diferentes processos, são desenvolvidos
mercado de EAI (Enterprise Application Integration). Porém e gerenciados por diferentes departamentos e exigem um
também existem soluções open source tais como Mule, Servi- grande esforço de coordenação para trabalharem juntos com
ceMix, OpenESB e JBossESB. Para quem quer se especializar sucesso. Para SOA ter êxito, múltiplas aplicações precisam
mais nestes ESBs open source recomendo o livro Open Source compartilhar serviços, o que significa que eles precisam ser
ESBs in Action [Rademakers, 2009]. coordenados para se tornarem comuns e reutilizáveis. Estes são
os problemas de governança e eles são muito mais complexos
Business Process Management System (BPMS) do que nos dias de aplicações monolíticas ou mesmo nos dias
Esta ferramenta permite a gestão automatizada dos pro- de componentes e códigos reutilizáveis [InfoQ, 2009].
cessos de negócio da organização. Como foi dito, os serviços Para o sucesso da governança numa organização é impor-
representam funções de negócio na organização. Neste tante a combinação de pessoas, processos e tecnologias. Além
sentido, os serviços podem ser orquestrados representan- disso, estando presente essa preocupação desde o início da
do fluxos de execução dos processos de negócio. O BPMS implantação da SOA, a transição é mais confortável para a
fornece estes recursos, permitindo a execução, controle e empresa, além de ajudar no estabelecimento do alinhamento
monitoração desses fluxos. Geralmente uma ferramenta de necessário entre as áreas de negócio e a área de TI, tão im-
BPMS possui as seguintes características: ferramenta para portante para pontos como a redução de custos e retorno de
modelagem e desenho do processo; engenho de execução investimento.
do processo; orquestração de Web Services e interface de
workflow para usuários. Desafios
De acordo com um estudo feito pela InformationWeek [Infor-
Enterprise Decision Management (EDM) mationWeek, 2008], 32% dos projetos SOA não atenderam às
Um sistema EDM incorpora uma máquina de regra de expectativas.
negócio para execução de regras de negócio definidas e um Como qualquer mudança de paradigma, a adoção de SOA
sistema para gerenciar estas regras. Uma regra de negócio é envolve muitos riscos e desafios. Além do desafio de se defi-
uma instrução bem definida relacionada ao negócio, que faz nir os aspectos discutidos anteriormente como organização,
alguma afirmação sobre algum aspecto de como o negócio processos, tecnologias e governança, existem alguns outros
deve funcionar. que devem ser considerados.
A idéia de um sistema baseado em regras, ou EDM, é Abaixo segue alguns dos limitadores para se adotar SOA.
separar as regras do código do programa, deixando estas
regras centralizadas, permitindo que as aplicações ou ser- Cultura
viços utilizem-nas. Todas as empresas possuem sua própria cultura, suas crenças
e suas formas de executar suas atividades. A implantação de
Repositório uma SOA em uma organização fará com que algumas pessoas
Os artefatos gerados em uma SOA devem ser registra- tenham que mudar um pouco sua forma de pensar em relação
dos dentro de um repositório para proporcionar o reuso a algumas atividades que elas executam. Qualquer mudança de
e fornecer infra-estrutura para gerenciamento dos ativos. paradigma é passível a resistência. Neste sentido, é importante
Estes ativos podem incluir serviços, processos de negócio, primeiro convencer as pessoas envolvidas e interessadas no
orquestrações, regras de negócio, entre outros. projeto SOA sobre seus benefícios. É importante que todas
Para pequenas organizações, repositórios informais podem as pessoas envolvidas estejam motivadas e interessadas na
ser utilizados, como por exemplo um wiki ou uma base de transição para SOA.

34 Engenharia de Software Magazine - Arquitetura Orientada a Serviços


PROJETO

Falta de conhecimento Links


Muitas pessoas acham que para adotar uma SOA é necessário Site do DCE/UFPB
comprar uma caixa com uma solução SOA pronta. Mas como http://www.ccae.ufpb.br/dce
vimos ao longo deste artigo, a adoção de SOA exige outros SOA Forum
conhecimentos para ter sucesso. Neste sentido, é importante http://www.soaforum.org
que a empresa que queira adotar uma SOA busque estes co-
nhecimentos necessários ou então contrate uma consultoria Referências
externa.
[InformationWeek, 2008] Smith Roger. A simpler approach to SOA (2008).
Disponível em http://www.informationweek.com/news/software/soa/showArticle.
Falta de um projeto piloto jhtml?articleID=209904293
Como diz o ditado popular: “a pressa é inimiga da perfei-
ção”. Quando queremos realizar grandes mudanças em uma [Josuttis, 2007] Josuttis, N. SOA in Practice – The Art of Distributed System Design.
empresa, é importante que elas sejam feitas de maneira plane- O’Reilly, 2007.
jada e que primeiro se realize um projeto piloto, diminuindo [Erl, 2008] Erl, Thomas. SOA – Princípios de design de serviços. Prentice Hall, 2008.
assim os riscos. Com SOA não é diferente. Deve-se escolher
um projeto piloto e executá-lo de maneira controlada para [Davis, 2009] Davis, Jeff. Open Source SOA. Manning, 2009.
analisar os riscos.
[Rademakers, 2009] Rademakers, T., Dirksen, J. Open Source ESBs in Action.
Manning, 2009.
Falta de comprometimento
Como foi dito, a adoção de SOA envolve muitas mudanças em [Dias, 2009] Dias, J. J.; Almeida, E. S.; Meira, S. R. L. A Systematic SOA-based
uma organização. Por esta razão é importante ter uma equipe Architecture Process, 21st International Conference on Software Engineering and
Knowledge Engineering (SEKE), Service Oriented Architecture Track, Boston, U.S.,
ou uma pessoa totalmente envolvida nestas questões. 2009.

Considerações Finais [InfoQ, 2009] Artigo da InfoQ. Como Alinhar Processos de TI e Governança SOA
Vimos neste artigo que a adoção de SOA em um contexto para suportar Iniciativas BPM? (2009) Disponível em http://www.infoq.com/br/
news/2009/02/process-it-soa-governance.
empresarial pode trazer vários benefícios, porém envolve tam-
bém muitos desafios, sendo necessário um bom conhecimento
Dê seu feedback sobre esta edição! Feedback
eu
não só das tecnologias que dão suporte a SOA, mas também

s

de todo o ciclo de desenvolvimento de uma SOA. A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
Entretanto, SOA não é a solução para todos os problemas. Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
Cada caso deve ser analisado de forma apropriada para que
edição
Dê seu voto sobre este artigo, através do link:
seja avaliado o seu custo e se o retorno do investimento é
www.devmedia.com.br/esmag/feedback
interessante.

Edição 22 - Engenharia de Software Magazine 35


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Arquitetura de Software
Atributos para decisões do projeto arquitetural

De que se trata o artigo?


Apresenta um conjunto de informações que po-
dem subsidiar decisões de projeto arquitetural de
sistemas de software.

Para que serve?


Entender o papel do projeto arquitetural dentro do
processo de desenvolvimento de software orienta-
do para arquitetura e identificação de informações
necessárias às decisões de projeto.
Antonio Mendes da Silva Filho
antoniom.silvafilho@gmail.com

S
Professor e consultor em área de tecnologia Em que situação o tema é útil?
da informação e comunicação com mais oftware é uma entidade que se Identificação de informações e critérios que
de 20 anos de experiência profissional, é encontra quase permanentemente apóiam as atividades de análise e projeto de
autor do livros Arquitetura de Software sendo modificado. Tais mudanças arquitetura de software.
e Programando com XML, ambos pela ocorrem devido à necessidade de corrigir
Editora Campus/Elsevier, tem mais de 30
artigos publicados em eventos nacionais
erros existentes no software ou de adi-
e internacionais, colunista para Ciência e cionar novos recursos e funcionalidades. os profissionais da área raciocinem, pro-
Tecnologia pela Revista Espaço Acadêmico Igualmente, os sistemas computacionais jetem, codifiquem e se comuniquem por
com mais de 80 artigos publicados, tendo (isto é, aqueles que têm software como meio de componentes de software. Como
feitos palestras em eventos nacionais e ex- um de seus elementos) também estão resultado, qualquer projeto ou solução de
terior. Foi Professor Visitante da University
of Texas at Dallas e da University of Ottawa.
sujeito a mudanças frequentes. Isso sistema requer decisões arquiteturais (de
Formado em Engenharia Elétrica pela Uni- pode motivar um sistema de software a projeto) que podem impactar o produto
versidade de Pernambuco, com Mestrado se tornar ‘não confiável’ e predisposto a final. A necessidade da arquitetura de
em Engenharia Elétrica pela Universidade defeitos, bem como ocasionar atraso na software prover suporte a um conjunto
Federal da Paraíba (Campina Grande), entrega e elevação de custos acima do de requisitos, geralmente conflitantes,
Mestrado em Engenharia da Computação
pela University of Waterloo e Doutor em
estimado. Concomitante com esses fatos, exige que decisões arquiteturais sejam
Ciência da Computação pela Univesidade o crescimento em tamanho e complexi- tomadas ainda durante o projeto, tema
Federal de Pernambuco. dade dos sistemas de software exige que esse tratado neste artigo.

36 Engenharia de Software Magazine - Arquitetura de Software


PROJETO

Projeto da Arquitetura de Software A interação existente entre as fases de projeto e análise


Um projetista desenvolve um projeto considerando um con- arquitetural permite o refinamento da documentação da ar-
junto de decisões de projeto. Para tomar decisões, ele leva em quitetura do sistema que culminará com sua implementação.
conta os requisitos arquiteturais que motivam e justificam suas É importante observar ainda que, durante a implementação,
decisões. Por trás disto, também estão metas de qualidade de- pode haver necessidade de reconsiderar decisões de projeto
sejadas para o sistema a ser desenvolvido, bem como cenários tomadas anteriormente.
de uso, estilos arquiteturais existentes e padrões de projeto. A Uma vez que a arquitetura de software tenha sido obtida,
Figura 1 ilustra essa visão do projeto arquitetural. essa pode evoluir e, portanto, requer que novos requisitos
arquiteturais sejam elicitados a fim de satisfazer às mudanças
estilos arquiteturais desejadas. Deste modo, características são adicionadas e/ou
modificadas.
cenários de uso
Projeto Documentação
arquitetural da
Dimensões e Regras de Projeto
padrões de projeto arquitetura Projetos inovadores são, geralmente, desenvolvidos para
resolver novos tipos de problemas ou até mesmo prover
requisitos arquiteturais
solução a algum problema com requisitos bem específicos.
Figura 1. Elementos de decisão do projeto arquitetural Entretanto, os custos associados podem ser elevados. Nesse
sentido, a comunidade de engenharia de software e, mais
Perceba que o projeto arquitetural é uma fase iterativa do especificamente, de arquitetura de software, tem procurado
processo de desenvolvimento de sistema software sobre a organizar o conhecimento de projeto de sistemas de software.
qual o projetista ou arquiteto de software precisa raciocinar Uma forma de fazer isto é desenvolvendo um vocabulário,
a fim de tomar decisões, levando em consideração os requisi- englobando conceitos e padrões de projetos que possam ser
tos arquiteturais e cenários de uso, por exemplo. O arquiteto facilmente compreendidos e reutilizáveis. Como resultado
pode ainda fazer uso de técnicas de análise arquitetural para deste esforço, tem-se:
apoiar seu raciocínio sobre o comportamento de atributos 1. A possibilidade de desenvolver um projeto de sistema a
de qualidade. Tais técnicas podem acrescentar informações partir de blocos estruturais.
aos estilos arquiteturais de modo a possibilitar o raciocínio 2. Entendimento e antecipação das propriedades de um projeto.
qualitativo e quantitativo. 3. Redução do esforço necessário para compreender o projeto
Perceba que há uma interação entre as fases de análise e de outra pessoa.
projeto de arquitetura de software. Tal interação surge da
necessidade de refinar os requisitos arquiteturais elicitados Um exemplo de organização de conhecimento através de
na fase anterior do processo de desenvolvimento orientado um vocabulário é a codificação de estruturas de controle do
para arquitetura, como ilustrado na Figura 2. fluxo de instruções em um algoritmo, onde dispomos de es-
truturas sequenciais, de decisão e repetição. Isto oferece um
entendimento sobre os padrões de fluxo de controle no qual é
Elicitação de feito uso desses blocos estruturais. Uma forma de organizar o
requisitos arquiteturais
conhecimento a ser utilizado no projeto arquitetural é obtendo
um conjunto de soluções de projeto em termos de dimensões
de projeto. Cada dimensão nesse conjunto solução descreve
uma característica do sistema ou decisão de projeto.
Projeto Documentação Considere, por exemplo, que o tempo de resposta de um sistema
arquitetural da arquitetura seja uma dimensão no conjunto solução. Similarmente, o meca-
nismo de sincronização entre processos também pode ser visto
como outra dimensão. A Figura 3 ilustra essas duas dimensões
envolvendo dois sistemas exemplo quaisquer. A figura sugere
que o mecanismo de mensagens oferece um tempo de resposta
Análise melhor quando comparado a semáforos.
arquitetural A existência de diferentes dimensões não implica que elas
sejam independentes. Na realidade, é de suma importância
identificar correlações entre as dimensões. Como resultado,
isto permite a criação de regras de projeto que especificam
quão adequada é a combinação de opções. Uma forma empírica
Implementação
da arquitetura de determinar a existência de correlações é checando se há
agrupamento de soluções de projeto em uma região do conjun-
Figura 2. Desenvolvimento orientado para arquitetura de software to solução e sua ausência é verificada em outras regiões.

Edição 22 - Engenharia de Software Magazine 37


tempo de
resposta procedimentos e métodos. Os tipos de conexão envolvem pas-
rápido sistema X
sagem de controle, passagem de dados, compartilhamento de
dados, dentre outras.
médio sistema Y • Estrutura de concorrência – refere-se à concorrência lógica. Os
lento
componentes dessa estrutura compreendem entidades de con-
corrência que são refinadas em processos e threads (ou processos
mensagens semáforos monitores rendezvous outro sincronização leves). Alguns tipos de conexões incluem: enviar dados para,
entre processos
ter prioridade maior do que, sincronizar com, dentre outras.
Figura 3. Exemplo simples de conjunto solução de projeto Adicionalmente, as propriedades associadas a essa estrutura
envolvem, por exemplo, tempo de execução e prioridade. Essa
Um aspecto essencial no conjunto solução é escolher algumas estrutura é de suma importância para entender desempenho.
dimensões que reflitam requisitos não funcionais (desempe- Também, ela é considerada essencial para confiabilidade e
nho, confiabilidade), ao passo que outras dimensões reflitam segurança. Informações relevantes associadas a essa estrutura
a organização do sistema. A existência de correlações entre compreendem o número de processos e threads, o tempo de
essas dimensões servirá à orientação do projeto, ou seja, elas execução, bem como prioridades dos processos e threads.
mostrarão como opções de projeto podem satisfazer aos re- • Estrutura física – está intimamente associada ao hardware
quisitos de um sistema. do sistema. Inclui a unidade central de processamento (CPU),
O conjunto solução, juntamente com as regras de projeto barramentos, memória, dispositivos de entrada e saída (E/S).
(derivadas das correlações existentes entre as dimensões do Propriedades relevantes à estrutura compreendem capacidade
sistema), compreende alternativas de projeto arquitetural para e disponibilidade.
o sistema a ser desenvolvido. Nas seções subsequentes, toma-se • Estrutura de desenvolvimento – refere-se aos arquivos e
um sistema interativo como exemplo para ilustrar dimensões diretórios. As metas dessa estrutura incluem gerenciar e as-
e regras de projeto. Antes, contudo, um modelo arquitetural segurar o controle administrativo do sistema à medida que ele
e estruturas associadas a ele é discutido. evolui. Isso envolve gerenciamento de configuração e divisão
de tarefas entre membros da equipe.
Modelo Arquitetural
Conforme ilustrado na Figura 2, o projeto arquitetural é uma Perceba que, durante o desenvolvimento de um sistema ou,
atividade iterativa onde decisões de projeto importantes são mais especificamente, durante o projeto da arquitetura de um
tomadas. Os requisitos arquiteturais, juntamente com cenários sistema, um projetista ou arquiteto de software pode recorrer
de uso, são utilizados na tomada dessas decisões. Um modelo a uma ou mais estruturas, podendo expor as informações
arquitetural é utilizado para descrever um sistema decomposto necessárias e ocultar as desnecessárias. Assim, se ele analisa,
em um conjunto de módulos ou componentes conectados por por exemplo, a funcionalidade e facilidade de modificações de
meio de conectores. Tanto os componentes quanto os conecto- um sistema, a distribuição não constituirá um fator relevante.
res possuem propriedades que são utilizadas para diferenciar Note que a estrutura de código abstrai questões associadas à
tipos de componentes e tipos de conectores, bem como oferecer distribuição. Todavia, se o arquiteto está raciocinando sobre
informações úteis às diversas análises realizadas. Exemplos o desempenho, então a distribuição passa a ser fator relevan-
incluem as análises de confiabilidade e desempenho. te, enquanto que a parte funcional passa a ter importância
O modelo arquitetural pode ainda ser descrito em termos secundária. Nesse caso, considera-se a estrutura de concor-
de estruturas básicas. Essas estruturas são consideradas como rência como sendo a mais adequada. A Tabela 1 ilustra um
representações fundamentais da informação arquitetural, conjunto de requisitos não funcionais e estruturas relevantes
ou seja, elas representam os artefatos resultantes de projeto associadas a eles.
e implementação. Exemplos compreendem classes, objetos,
funções, arquivos, bibliotecas, e assim por diante. Abaixo, Requisito não funcional Estruturas relevantes
apresentamos um conjunto de cinco estruturas que podem ser Desempenho concorrência, física
utilizadas para descrever um modelo arquitetural. Manutenibilidade funcional, código, desenvolvimento
• Estrutura funcional – refere-se à decomposição de funcio-
Confiabilidade física, concorrência
nalidade que o sistema precisa suportar. Os componentes são
entidades funcionais enquanto que os conectores servem à Disponibilidade física, concorrência
passagem de dados entre os componentes. Essa estrutura é útil Tabela 1. Requisitos não funcionais e estruturas relevantes
para entender as interações existentes entre os componentes e
para planejar a funcionalidade do sistema. Dimensões Funcionais e Arquiteturais
• Estrutura de código – está relacionada com as abstrações de As dimensões funcionais e arquiteturais de um sistema
código usadas no desenvolvimento do sistema. Componentes descrevem requisitos associados à funcionalidade e organi-
são entidades que empacotam funcionalidades do sistema em zação do sistema que compreende o conjunto solução de um
vários níveis de abstração, tais como: classes, objetos, funções, projeto. Uma dimensão pode ser vista como uma alternativa

38 Engenharia de Software Magazine - Arquitetura de Software


PROJETO

ou opção de projeto. Assim, cada dimensão descreve uma Requisitos Externos


alternativa na caracterização ou decisão de projeto de um Um exemplo de requisito externo é o tratamento de even-
sistema. tos externos. Em outras palavras, essa dimensão indica se a
Objetivando caracterizar essas dimensões, tomaremos aplicação necessita responder a eventos externos (definidos
como exemplo um sistema interativo. Um sistema interativo, como eventos que não se originam na interface com usu-
como o próprio nome indica, oferece suporte à comunicação ário). Desse modo, no conjunto solução de projeto, há três
bidirecional entre usuário e computador. O sistema reage às alternativas:
ações de usuários, exibindo alguma informação, ou ativando • Sem eventos externos – a aplicação não é afetada por eventos
algum dispositivo para execução de um serviço. Tudo isto externos ou então em função da execução de comandos específi-
ocorre através da interface com usuário que fornece acesso às cos dos usuários. Um exemplo disso ocorre no programa de cor-
funcionalidades e recursos do sistema. reio eletrônico que apenas checa se há mensagens novas quando
O modelo arquitetural de um sistema interativo, no qual recebe comando específico para realizar esta tarefa. Assim, não
a interface com usuário é o principal componente, pode ser há necessidade de prover suporte a eventos externos.
decomposto em três componentes, conforme mostrado na • Processar eventos enquanto aguarda entrada – a aplicação deve
Figura 4. tratar os eventos externos. Todavia, os requisitos de tempo de
resposta não são tão severos de modo a interromper a execução
Componente Componente Componente de comandos de usuários. Nesse caso, o sistema responde a
dependente compartilhado específico da eventos externos enquanto aguarda por algum comando.
de dispositivo de interface aplicação
com usuário • Eventos externos interrompem comandos de usuários – o aten-
dimento a eventos externos tem prioridade maior do que a
interface com interface com
dispositivo aplicação execução de comandos de usuários, a qual é interrompida
quando algum evento externo ocorre. Esse requisito é comum
Figura 4. Modelo arquitetural de um sistema interativo de ser encontrado em sistemas de tempo real.

O componente específico da aplicação compreende o código Um segundo exemplo de requisito externo é a customização
que é específico ao programa de uma aplicação, não sendo de usuário. O conjunto solução de projeto pode decompor a
reutilizado em qualquer outra aplicação. Especificamente, customização de usuário de uma interface em três níveis:
este componente incorpora o núcleo funcional da aplicação. • Alta – o usuário pode adicionar novos comandos ou redefinir
Ele pode ainda incluir o código da interface de usuário que os existentes. Além disso, ele poderia modificar detalhes da
é específica da aplicação. O componente compartilhado de interface com usuário.
interface com usuário engloba o código que provê suporte à • Média – o usuário pode alterar detalhes da interface com
interface com usuário de múltiplos programas de aplicação. usuário que não afetem a semântica como, por exemplo, mo-
Se o sistema de software pode acomodar diferentes tipos dificar o tamanho de janelas, cores, dentre outros.
de dispositivos de entrada e saída (E/S), então apenas a • Baixa – nesse caso, pouca ou nenhuma customização é
parte do código que é associado aos tipos de dispositivos exigida do usuário.
é incorporada aqui. O componente dependente de dispositivos
compreende o código que é pertinente a uma classe espe- Outro exemplo de dimensão é a adaptabilidade da in-
cífica de dispositivos de entrada e saída (E/S), não sendo terface com usuário a dispositivos, a qual depende da
específico da aplicação. quantidade esperada de dispositivos de entrada e saída
que a interface com usuário precisa oferecer suporte. Essa
Dimensões Funcionais em Sistemas Interativos dimensão indica o grau de mudança no comportamento
As dimensões funcionais identificam os requisitos de um da interface com usuário em função da modificação no
sistema interativo que mais afetam a organização do sistema, dispositivo de entrada e saída.
ou seja, elas identificam as especificações que precedem o • Nenhuma – todos os aspectos de comportamento perma-
projeto arquitetural do sistema. Estas dimensões podem ser necem os mesmos em todos os dispositivos de entrada e
divididas em três categorias: saída. Isso pode ocorrer quando apenas um único conjunto
1. Requisitos externos – engloba requisitos de aplicações, de dispositivos de entrada e saída é suportado.
usuários, dispositivos de entrada e saída, bem como restrições • Modificações locais no comportamento – aqui, há apenas alte-
impostas ao sistema. rações de poucos detalhes no comportamento da interface
2. Comportamento da interface – inclui decisões sobre o com usuário. Um exemplo disso é a alteração da aparência
comportamento da interface com usuário que afetam a orga- de menus.
nização do sistema. • Modificações globais no comportamento – há mudanças
3. Considerações práticas – considerações de custo de desen- maiores no comportamento da interface com usuário. Uma
volvimento bem como nível de adaptabilidade do sistema são modificação de interface baseada em menus para interface
enquadradas aqui. baseada em linguagem de comando é um exemplo.

Edição 22 - Engenharia de Software Magazine 39


• Modificações na semântica da aplicação – nesse caso, há mudança quantidade maior de aplicações, embora ele possa ter um
na semântica de comandos. Um exemplo ocorre numa alteração custo mais elevado. Os termos adaptabilidade e portabilidade
de exibição contínua de um estado e exibição sob comando. são utilizados algumas vezes indistintamente. Aqui, fazemos
opção pelo segundo.
Um quarto exemplo de dimensão é organização do sistema Um exemplo de dimensão é a portabilidade da aplicação
de software. Essa dimensão categoriza a natureza básica da junto a estilos de interação. Nesse caso, estamos interessados
organização global do sistema em: em saber o nível de portabilidade de aplicações que utilizarão
• Uniprocessamento – apenas uma aplicação é executada de os estilos de interação. Assim, pode-se ter:
cada vez. • Alta – as aplicações deveriam ser portáveis em estilos de
• Multiprocessamento – múltiplas aplicações podem ser execu- interação distintos como, por exemplo, seleção de menus ou
tadas concorrentemente. linguagem de comandos.
• Processamento distribuído – aqui o ambiente envolve uma rede • Média – as aplicações não deveriam ser dependentes de
de computadores com múltiplas CPUs e custos de comunicação pequenas variações no estilo. Um exemplo é a aparência de
associados. menus.
• Baixa – variações na interface com usuário não é um fator
Outra dimensão compreende os mecanismos existentes para preponderante, implicando que uma aplicação pode sofrer
múltiplas threads de controle. Essa dimensão depende do mudanças desde que a interface com usuário possa ser mo-
sistema operacional o qual pode oferecer suporte aos seguintes dificada, também.
mecanismos para múltiplas threads de controle:
• Processos – estes são processos padrões com proteção entre Outra dimensão nessa categoria é a portabilidade da apli-
processos (tipicamente, espaço de endereçamento distintos). cação junto a sistemas operacionais. Aqui, o interesse recai
• Processos leves – estes constituem processos que podem em saber o nível de portabilidade exigido pelas aplicações
ser executados de forma independente, sem proteção entre que usarão o software de interface junto a vários sistemas
processos. operacionais. O nível de portabilidade pode ser:
• Processos não preemptivos – são processo que não são inter- • Alta – as aplicações deveriam ser portáveis em diferentes
rompidos durante sua execução. sistemas operacionais e hardware distintos.
• Rotinas de serviços de interrupção – refere-se ao tratamento de even- • Média – nesse caso, as aplicações deveriam ser portáveis
tos a nível de hardware. Nesse caso, execuções de rotinas de serviço em variantes de um sistema operacional como, por exemplo,
de interrupção podem ser vistas como threads de controle. diferentes versões do Unix.
• Nenhum – ocorre quando o sistema não oferece suporte a • Baixa – aqui, a portabilidade não constitui um fator
múltiplas threads de controle. relevante.

Comportamento da Interface Dimensões Arquiteturais em Sistemas Interativos


Esta categoria de dimensão funcional identifica o tipo de inte- As dimensões estruturais representam as decisões que de-
ração que sistema interativo suporta. O conjunto solução, nesse terminam a organização global de um sistema computacional.
caso, pode englobar os seguintes mecanismos de interação: As dimensões estruturais podem ser enquadradas em três
• Seleção de menu – este tipo de interação é baseado na seleção classes:
repetida de um conjunto de opções. Em caso passo, as opções 1. Divisão de funções e conhecimento entre componentes
são mostradas. – aqui, o interesse maior encontra-se em saber como a funcio-
• Manipulação direta – faz uso de representação gráfica e ma- nalidade é dividida e associada a componentes, bem como se
nipulação de dados do programa. dá a interação entre componentes.
• Formulários – nesse tipo de interação o usuário entra com da- 2. Comunicação, sincronização e fluxo de controle – refere-
dos (geralmente na forma textual) em um conjunto de campos se ao comportamento dinâmico do software da interface com
associados a variáveis. usuário.
• Linguagem de comando – esse tipo de interação é baseado em 3. Representação de informação – refere-se à representação
linguagem simbólica. Normalmente, pode-se ter uma extensão de dados utilizados pelo sistema. Esses dados compreendem
de definições de procedimentos similares àqueles encontrados tanto os dados passados à interface com usuário bem como
em linguagens de programação. os dados que especificam a aparência e comportamento da
• Linguagem natural – faz uso de um subconjunto de alguma interface.
língua como, por exemplo, o Inglês.
Divisão de funções e conhecimento entre componentes
Considerações Práticas A Figura 4 ilustra as principais divisões encontradas num
Outra categoria da dimensão funcional especifica o nível de sistema interativo. Aqui, o principal interesse recai em saber
adaptabilidade exigido pelo sistema. Geralmente, um sistema como as funções são associadas a componentes e como estes
que oferece um maior nível de adaptabilidade suporta uma componentes interagem uns com os outros. Perceba que há

40 Engenharia de Software Magazine - Arquitetura de Software


PROJETO

duas divisões importantes no sistema interativo mostrado na fi- A terceira dimensão é a granulosidade de comunicação da
gura: a interface com aplicação e a interface com dispositivo. aplicação. Essa dimensão refere-se à frequência na qual se dá
O conjunto solução engloba alguns tipos de interface com a comunicação entre a aplicação e componente da interface
aplicação. Essa dimensão é baseada no nível de abstração da com usuário. A granulosidade pode ser:
comunicação, dentre os quais destacamos: • Fina – uma vez para cada evento de entrada. Nesse caso, a
• Programa monolítico – nesse caso, não há separação entre aplicação é fortemente acoplada às ações de usuários e, tam-
o código específico da aplicação e o código compartilhado. bém, participa na geração de resposta ou feedback.
Portanto, não existe qualquer interfaceamento entre eles. Este • Grossa – ocorre uma vez a cada comando completo, sendo
pode ser adequado em programas menores. a aplicação desacoplada de ações de usuários e geração de
• Toolkit – a parte do código que é compartilha fornece uma feedback.
biblioteca de mecanismos de interação, tais como menus e
barras deslizantes. Desse modo, a aplicação é encarregada de Outra dimensão importante é o mecanismo de comunica-
escolher os elementos adequados do toolkit (ou kit de ferramen- ção por eventos. Esse mecanismo deveria ser oferecido para
tas) a fim de compor a interface com usuário. Sendo assim, a suportar a comunicação através da passagem de eventos entre
parte do código que é compartilhada pode controlar apenas componentes. Podem-se ter os seguintes mecanismos de co-
aspectos locais do estilo da interface com usuário, ficando o municação por eventos:
comportamento global sob o controle da aplicação. • Nenhum – quando eventos não são utilizados. Se isso ocorre,
• Gerente de interação – se existe a necessidade de prover suporte tem-se a comunicação baseada simplesmente em estados.
à portabilidade da aplicação junto a dispositivos e estilos de in- • Chamada direta de procedimentos – trata-se do mecanismo
teração, então dispor de um gerente de interação constitui uma padrão de chamada de procedimentos. Isso inclui chamada
boa opção. O gerente de interação permite fazer a separação de procedimentos remoto, contanto que a parte chamada do
entre o comportamento da interface com usuário e a aplicação. código seja diretamente informada.
Além disso, o gerente de interação faz com que a aplicação • Chamada indireta de procedimentos – refere-se à chamada de
tenha menos controle sobre a interface com usuário. procedimentos na qual a parte do código chamado não é total-
mente especificada. Ao invés, é determinada dinamicamente
Comunicação, Sincronização e Fluxo de Controle como ocorre numa chamada de um método em orientação a
Similarmente às classes de dimensões anteriormente vistas, objetos.
aqui o interesse está sobre a comunicação entre componentes. • Mensagem assíncrona – ocorre quando um evento é passado de
Também, o comportamento da interface com usuário é consi- uma thread de controle para outra sem que a origem do evento
derado. Essa classe pode englobar as dimensões abaixo. aguarde o recebimento do evento.
O fluxo de controle da aplicação refere-se à forma na qual • Mensagem síncrona – diferentemente de uma mensagem as-
se dá o processamento de entrada no fluxo de controle da síncrona, aqui o evento é passado de uma thread de controle
aplicação. Pode ser: para outra e a thread que originou a mensagem fica bloqueada
• Ponto de entrada único – o sistema possui um laço de eventos até que a thread de destino tenha recebido e respondido a
que constitui o único ponto no qual qualquer entrada do mensagem.
usuário é aceito. Dessa forma, quando um evento de entrada
é recebido, ele é processado e depois o controle é devolvido ao Note que, embora o mecanismo de comunicação utilizando
laço de evento que aguardará o próximo evento. mensagem síncrona tenha menor custo de implementação,
• Múltiplos pontos de entrada – a entrada é aceita em múltiplos quando comparado ao uso de mensagem assíncrona, pode se
pontos do fluxo de controle da aplicação. Geralmente, cada deparar com problemas de sincronização devido às dependên-
um desses pontos pode tratar apenas um subconjunto de cias de tempo entre as threads de controle.
entradas.
Representação da Informação
Outra dimensão é o tratamento de entradas assíncronas. Como o foco principal dá-se na organização global do
Está relacionada com a forma na qual eventos ou ações de sistema, o interesse maior recai sobre as representações que
usuários são tratados quando as aplicações estão ocupadas. são compartilhadas entre os componentes do sistema. Desse
Nesse caso, elas podem ser: modo, as representações utilizadas para dados da interface
• Ignoradas – a entrada assíncrona é, simplesmente, ignorada. com usuário são consideradas. Pode-se então vislumbrar duas
• Enfileirada antes do processamento – os eventos de entrada são dimensões associadas a tipos de representação:
colocados numa fila sem que haja processamento. Com isso, • Representação para definição da interface com usuário - é
não há resposta imediata (ou feedback) até que a aplicação esteja uma dimensão que permite classificar as técnicas utilizadas
habilitada. a fim de definir tanto o comportamento quanto a aparência
• Ter um processamento parcial e serem enfileiradas – algum proces- da interface com usuário.
samento é realizado para fornecer feedback. Depois, os eventos • Representação de informação semântica - classifica as téc-
são colocados numa fila do tipo FIFO (First-In, First-Out). nicas usadas para definir a informação semântica da aplicação

Edição 22 - Engenharia de Software Magazine 41


necessária à interface com usuário. Esse tipo representação contribuição no esforço de codificar o conhecimento sobre
inclui notações declarativa e procedimental. projeto de sistemas interativos.
Adicionalmente, as regras de projeto apresentadas abaixo
Regras de Projetos para Sistemas Interativos se encontram expressas na forma narrativa. Uma alternativa
Esta seção discute um conjunto de regras de projeto para a esta apresentação seria colocá-las numa descrição mais for-
sistemas interativos que relacionam as dimensões funcionais mal com pesos associados de modo a combinar as diferentes
e arquiteturais do conjunto solução. As regras apresentadas a dimensões, identificando as correlações existentes e atribuindo
seguir não constituem um conjunto completo. A intenção é de escores a elas. Assim, por exemplo, uma combinação envol-
ilustrá-las, tomando como exemplo os sistemas interativos. São vendo o uso de uma única thread de controle e a inexistência
descritas em forma de narrativa de uma maneira informal, po- de eventos externos receberia um escore positivo. Esse escore
dendo serem vistas como um conjunto de diretrizes de projeto. positivo indicaria que utilizar uma única thread de controle é
Abaixo, apresenta-se o conjunto dessas diretrizes. uma boa solução para o requisito dado (ou seja, a inexistência
• Requisitos mais restritos para a portabilidade da interface de eventos externos).
com usuário junto a dispositivos favorecem a níveis mais Perceba que, uma vez um escore seja obtido em cada de-
elevados da abstração da interface de aplicação de modo a cisão arquitetural, então a combinação de regras de projeto
desacoplar o componente de aplicação do componente de utilizadas com os respectivos escores resultam no escore
interface com usuário, uma vez que este último pode sofrer geral que reflete o escore obtido para o projeto do sistema em
modificações em função da necessidade de conectar com dis- desenvolvimento.
positivos. Note que, se existe um requisito de comportamento Se um conjunto de regras for desenvolvido para uma classe
global ou se a semântica da aplicação muda, então dispositivos de aplicações, então se torna possível automatizar o processo
abstratos parametrizados são favorecidos. Isto decorre do fato de determinar as decisões de um projeto arquitetural. Neste
de que tais mudanças precisam ser implementadas numa parte caso, o sistema automatizado iria apresentar um conjunto de
do código compartilhado da interface com usuário ou no có- recomendações de projeto que poderiam ser comparadas com
digo da aplicação, ao invés de ser implementado no driver do as decisões que o projetista ou arquiteto de software tenha
dispositivo. É importante observar que a informação sobre o tomado.
dispositivo em consideração não pode ser ocultada em níveis
mais elevados de abstração (da forma como outras classes de Divisão de Funcionalidade
dispositivos abstratos tentam fazer). A Figura 4 ilustra um modelo arquitetural de um sistema
• Um requisito de portabilidade da aplicação junto a estilos de interativo composto de três componentes: componente de
interface com usuário favorece a opção por níveis mais eleva- aplicação, componente de interface com usuário e componente
dos da abstração da interface de aplicação. Também favorece específico de dispositivos. Esses componentes são agrupados
a mecanismos de comunicação baseado em eventos. Por outro através de duas interfaces: interface de aplicação e interface
lado, um mecanismo de comunicação híbrido não seria o mais de dispositivos.
adequado desde que ele atenda a padrões de comunicação que
podem sofrer alteração quando o estilo de interface muda. Interface de Aplicação
• Se existe a necessidade de tratar eventos externos, então • Programa monolítico – essa é uma solução adequada em sis-
devem-se fornecer threads de controle separadas, objetivando temas pequenos onde a aplicação tem maior controle sobre
desacoplar a lógica de tratamento de eventos da lógica de o componente de interface com usuário e dispõe de pouca
interface com usuário. capacidade de processamento. Essa opção não deveria ser
• Os mecanismos de threads de controle mais comuns são pro- selecionada se há estrito requisito de flexibilidade, tais como:
cessos, processos leves e tratadores de eventos. Para suportar flexibilidade de estilos de interação da interface com usuário,
as atividades das interfaces com usuário, o uso de processos variabilidade de dispositivos de entrada e saída ou customi-
leves é mais apropriado. zação pelo usuário. Essa opção pode atender aos requisitos
• Se o tempo máximo de execução de comando é curto, então a de interfaces de manipulação direta, embora o esforço de
alternativa mais simples é utilizar uma única thread de controle. desenvolvimento seja maior.
Todavia, para comandos com tempos maiores, há a necessidade • Toolkit – essa alternativa é recomendada quando um nível
de usar múltiplas threads de controle a fim de possibilitar que moderado de flexibilidade é desejado. Além disso, essa solução
o processamento de solicitações de usuário continue. oferece economia significativa de esforço de desenvolvimento,
bem como suporta flexibilidade ao sistema. O toolkit pode ser
Acima, algumas diretrizes a serem seguidas no projeto desconsiderado quando necessário. Também, se existe a meta
arquitetural de um sistema interativo foram discutidas. A de que um estilo de interação de interface com usuário padro-
seguir, apresenta-se um conjunto de regras de projeto base- nizado seja implementado, então constitui um boa opção uma
adas na correlação das dimensões discutidas anteriormente. vez que alguns componentes padrões como menus podem ser
Note que essas regras constituem recomendações e o conjunto mais facilmente suportados pelo toolkit, tornando desnecessá-
apresentado não é completo. Entretanto, serve como uma rio qualquer esforço adicional de implementação.

42 Engenharia de Software Magazine - Arquitetura de Software


PROJETO

• Gerente de interação – se existe um requisito de que o sistema interesse está sobre as relações de controle existentes entre os
deve prover portabilidade junto a estilos de interação e dispo- componentes do sistema e a maneira como ocorre a sincroni-
sitivos, então uma solução é dispor de um gerente de interação zação da sequência de eventos. Além disso, há ainda interesse
que permite a separação entre o componente da aplicação e na maneira como ocorre a comunicação entre os diversos
comportamento de interface com usuário. Adicionalmente, componentes do sistema.
o gerente de interação faz com que a aplicação tenha menos Uma forma conveniente de analisar isso é visualizar o fluxo
controle sobre a interface com usuário. de controle em termos de threads de controle. Uma thread de
• Dispositivo abstrato – se existe um requisito de que o sistema controle é um entidade capaz de realizar, de modo independen-
deve prover portabilidade junto a estilos de interação da inter- te, computações e esperar pela ocorrência de eventos. Assim,
face com usuário, então essa solução não é uma boa opção. Essa thread de controle é um termo mais genérico que pode ser usado
solução é recomendada quando a portabilidade da aplicação para designar, por exemplo, processos e processos leves.
é desejada junto a uma pequena quantidade de dispositivos.
Note, contudo, que a maior parte do controle da interface com Comunicação
usuário fica sob responsabilidade do componente de aplicação. • Comunicação através de estado compartilhado – a comunicação
Essa solução não deveria ser utilizada quando se deseja supor- entre componentes pode depender do estado compartilhado
tar uma quantidade maior de dispositivos de entrada e saída, ou evento (uma transferência de informação que ocorre num
pois isto exigirá um esforço muito maior de desenvolvimento, tempo discreto através, por exemplo, de uma mensagem ou
devido à necessidade de tratar uma quantidade maior de casos, chamada de procedimento). A comunicação através de vari-
bem como pode se perder o controle sobre aspectos da interface áveis de estado compartilhadas é muito diferente porque o
com usuário, caso o driver oculte muitos detalhes). recebedor do evento não precisa usar a informação na mesma
ordem na qual ela foi enviada. Essa solução é apropriada para
Interface de Dispositivos guiar os dispositivos que exibem estados persistentes. Por
• Dispositivo ideal – nessa opção, todas as questões da varia- outro lado, se não há uma caracterização de estados, então a
bilidade de dispositivos são ocultadas do software no nível comunicação baseada em eventos é mais adequada. Entretanto,
acima do driver de dispositivo. Dessa forma, há suporte à deve-se observar que os sistemas baseados em estado são mais
portabilidade da aplicação. Essa alternativa não é adequada se simples do que os sistemas baseados em eventos, embora sejam
existe a necessidade de grandes mudanças no comportamento menos eficientes. Já um sistema híbrido, combinando eventos
da interface com usuário para atender as diferenças entre os com estados compartilhados, oferece um desempenho melhor
dispositivos. Em outras palavras, essa opção satisfaz apenas ao custo de complexidade maior. Uma grande desvantagem da
a um pequeno número de dispositivos. comunicação baseada em estado é que ela exige acesso eficiente
• Dispositivo parametrizado – essa solução acomoda uma quan- à memória compartilhada (o qual pode não ser disponível em
tidade maior de dispositivos de entrada e saída e possibilita sistemas de multiprocessamento).
modificações no comportamento da interface com usuário • Comunicação baseada em eventos – esse mecanismo de comu-
junto a dispositivos. Uma desvantagem é que a parte do código nicação requer a passagem de eventos entre componentes. Na
independente de dispositivo pode precisar fazer análises com- comunicação com uma única thread de controle, há duas alter-
plexas a fim de atender a um espectro maior de dispositivos. nativas: chamada direta de procedimento e chamada indireta
Essas análises podem requerer uma significativa capacidade de procedimento. As chamadas indiretas de procedimento
de processamento. Se isso tiver de ser feito em cada aplicação, oferecem separação desejável entre os componentes. Além
então seu custo será elevado. Assim, uma alternativa é reduzir disso, caso a linguagem de programação suporte chamadas
a quantidade de casos a serem suportados nessa abordagem. indiretas, então essa solução é mais apropriada visto que ela
• Dispositivo com operações variáveis – se as operações de dispo- possui menor tempo de execução. Por outro lado, se a comu-
sitivos são selecionadas num nível elevado de abstração para nicação ocorrer entre threads de controle, então existem duas
permitir que o driver de dispositivo tenha liberdade de escolha, alternativas: mensagens assíncronas e mensagens síncronas.
então esta é uma boa solução. Nesse caso, apenas mudanças Mensagens assíncronas têm a vantagem de reduzir problemas
locais no comportamento da interface com usuário podem ser de sincronização. Já as mensagens síncronas possuem semân-
suportados a nível do driver de dispositivo. Entretanto, mu- tica mais simples e podem ser implementadas mais facilmente.
danças na semântica da aplicação não podem ser suportadas. Para os propósitos de sistemas interativos, a solução mais
Se essas condições casam com as metas do sistema, então essa adequada é utilizar mensagens assíncronas.
solução pode oferecer suporte a uma quantidade maior de • Mecanismo de fluxo de controle – refere-se à thread de controle.
dispositivos. Além disso, os custos na capacidade de proces- Dentre as formas de oferecem a noção de thread de controle,
samento dessa alternativa são relativamente baixos. tem-se: processos, processos leves, tratadores de eventos e ro-
tinas de serviço de interrupções. As três primeiras formas são
Comunicação, Sincronização e Fluxo de Controle mais comumente usadas. Os processos podem ser utilizados
O foco dessa seção está em questões que englobam meca- em ambientes de rede onde pode ser útil colocar processos em
nismos de comunicação e fluxo de controle. Dessa forma, o máquinas distintas. Entretanto, especificamente para sistemas

Edição 22 - Engenharia de Software Magazine 43


interativos, o uso de processos leves é a solução mais apropria- a aplicação desacoplada de ações de usuários e geração de fee-
da. Agora, se nenhuma dessas situações ocorre e as limitações dback, então se tem que a granulosidade é grossa. Essa solução
de tempo de resposta são aceitáveis, então os tratadores de é apropriada se a aplicação possui comandos com longo tempo
eventos podem ser uma opção. de execução ou precisa lidar com eventos externos. Agora,
se a aplicação é fortemente acoplada às ações de usuários e,
Fluxo de Controle e Sincronização também, participa na geração de resposta ou feedback, tem-se
• Fluxo de controle da aplicação – refere-se à forma na qual se dá que a granulosidade é fina. Essa segunda solução é adequada
o processamento de entrada no fluxo de controle da aplicação. em interfaces de manipulação direta. Note que nessa opção
Existem dois tipos: (i) ponto de entrada único, onde o sistema os custos de comunicação e portabilidade da aplicação ficam
possui um laço de eventos que constitui o único ponto no qual comprometidos. Assim, essa solução não deveria ser adotada
qualquer entrada do usuário é aceito, e (ii) múltiplos pontos de a menos que estritamente necessária.
entrada, onde a entrada é aceita em múltiplos pontos do fluxo
de controle da aplicação. O primeiro tipo é a solução mais Desenvolvimento do Projeto Arquitetural
apropriada uma vez que permite desacoplar o componente A Figura 2 ilustra o contexto no qual se dá o desenvolvimento
de aplicação de detalhes do sequenciamento da interface com do projeto arquitetural. Um conjunto de elementos, tais como
usuário. Além disso, suporta requisito de portabilidade da requisitos arquiteturais, cenários de uso e estilos arquiteturais,
aplicação. fornecem informações que objetivam subsidiar o projeto arqui-
• Número de threads de controle – como o próprio nome designa, tetural de um sistema. Isso é mostrado na Figura 1.
está relacionado à quantidade de threads de controle. Uma so- Inicialmente, é feita a suposição que dispomos de uma lista
lução adequada em sistemas simples, onde há um único ponto de requisitos arquiteturais e um conjunto de funcionalidades
de entrada, é utilizar apenas uma única thread. Entretanto, se derivadas dos requisitos funcionais. Note que as dimensões
há o requisito de desacoplar o fluxo de controle da interface de projeto (ou características do sistema) servem de suporte
com usuário da aplicação, então a alternativa mais apropriada à identificação desses requisitos. A meta desse passo inicial
é utilizar uma thread para interface com usuário e uma thread para é identificar um conjunto de subsistema e/ou componentes
aplicação. Duas threads são suficientes para permitir que as candidatos a serem usados na arquitetura do sistema. Todas
operações da interface com usuário possam ser executadas as funcionalidades derivadas dos requisitos funcionais são
concorrentemente com a aplicação. Isso permite que ações vislumbrados como subsistemas. Outros possíveis subsistemas
do usuário sejam processadas e telas com resposta sejam são derivados dos requisitos arquiteturais.
atualizadas enquanto comandos estão sendo processados. Para cada requisito arquitetural, enumeram-se as possíveis
Além disso, eventos externos podem ser tratados sem que alternativas arquiteturais que satisfazem àquele requisito. Para
haja interrupção na resposta da interface. O resultado é que o tanto, o arquiteto pode desenvolver regras de projeto para a
componente de aplicação fica mais independente do sequen- classe de sistemas que pretende desenvolver. Considere, por
ciamento de eventos da interface com usuário. Uma outra exemplo, que um requisito arquitetural seja possibilitar a mu-
alternativa é dispor de múltiplas threads de interface com usuário, dança de sistema operacional. Uma solução para atender esse
pois isto simplificaria o tratamento de interações paralelas requisito é dispor de um adaptador de sistema operacional. É
logicamente independentes, quando múltiplos dispositivos importante observar que os requisitos arquiteturais podem ter,
de entrada são utilizados. Uma quarta solução é usar múltiplas possivelmente, múltiplas soluções, ao passo que outros podem
threads de aplicação. Esse tipo de solução seria apropriado para possuir apenas uma. Essa enumeração é fruto de considerar os
tratar múltiplos eventos externos. estilos arquiteturais existentes, padrões de projeto bem, como
• Tratamento de entradas assíncronas – a interface com usuário a experiência do arquiteto.
deve dispor de algum mecanismo para tratar eventos de en- Com a lista de alternativas de solução em mãos, o arquiteto
trada assíncronos, ou seja, eventos que ocorrem enquanto a de software pode minimizar a lista de soluções existentes,
aplicação está fazendo alguma computação. Se os eventos não selecionando aquelas que satisfazem os requisitos de forma
permanecerem numa fila longa, a solução mais adequada é consistente. Essa seleção pode fazer uso de regras de projeto.
enfileirar os eventos antes de efetuar o processamento. Entretanto, Perceba que, uma vez o arquiteto disponha de um conjunto
se a execução de comandos tomam um longo período, então de regras de projeto para uma categoria de sistema, essas
essa solução não seria apropriada, pois a falta de resposta do podem ser reutilizadas em novos desenvolvimentos. Deve-se
sistema compromete sua usabilidade. Outra solução que ofe- procurar reduzir o número de opções de modo a resultar num
rece mais flexibilidade é fazer o processamento parcial junto com número menor de componentes, o que exigirá menor esforço
enfileiramento. Essa solução, contudo, requer múltiplas threads de implementação e manutenção. Cada opção selecionada é
de controle e preocupações com a sincronização. adicionada à lista de subsistemas candidatos.
• Granulosidade de comunicação da aplicação - refere-se à fre- O passo seguinte é escolher os subsistemas. Cada candidato a
quência na qual se dá a comunicação entre a aplicação e subsistema será classificado como um subsistema real podendo
componente da interface com usuário. Se a frequência de aglutinar componentes e sendo incorporado à arquitetura do
comunicação é de uma vez a cada comando completo, sendo sistema.

44 Engenharia de Software Magazine - Arquitetura de Software


PROJETO

Assim, uma vez que o conjunto de subsistemas seja obtido, a reuso, considerando tanto o aspecto econômico quanto a
o próximo passo é verificar a estrutura de concorrência. Essa produtividade, além de sua incorporação nos processos de
estrutura pode ser obtida analisando a necessidade de distri- desenvolvimento de software. Neste artigo, foi visto que a es-
buição e paralelismo. Cada subsistema pode ser distribuído trutura global ou modelo arquitetural de sistemas de software
em vários nós físicos. Nesse caso, uma unidade de distribuição pode ser estudada através do uso de dimensões de projeto.
pode acomodar os componentes pertencentes a um subsistema. Uma dimensão de projeto identifica as opções funcionais
Além disso, unidades de paralelismo podem ser identificadas e arquiteturais feitas durante o projeto de um sistema e
analisando as threads existentes, bem como a necessidade de classifica as alternativas existentes para cada escolha. Além
sincronização dessas threads. disso, regras podem ser formuladas, objetivando correlacio-
Ao final do projeto, os subsistemas e os relacionamentos nar as opções existentes a uma dimensão de projeto. Esse
existentes terão sido identificados. Há então um passo de vali- conjunto de regras constitui ferramenta de projeto e pode
dação, bem como refinamento dos subsistemas. A estrutura de ser empregada como orientação do projeto arquitetural.
concorrência é novamente analisada. Esse passo de validação Exemplos de regras de projeto para sistemas interativos
pode requerer que as etapas iniciais sejam repetidas. Note foram apresentados.
que o projeto arquitetural é altamente interativo, conforme
ilustra Figura 1. Links
Durante a validação da arquitetura do sistema de software,
História da Indústria de Software
cenários de qualidade são utilizados como mecanismo de va- www.softwarehistory.org
lidação. A arquitetura proposta é examinada, buscando checar
se os cenários de uso são realizáveis a nível de projeto. Se a An introduction to software architecture
http://www.cs.cmu.edu/afs/cs/project/able/www/paper_abstracts/intro_softarch.html
arquitetura atende aos cenários, o processo de refinamento
prossegue. Caso contrário, a arquitetura proposta é reconsi- SEI’s Software Architecture Technology Initiative
derada a fim de checar em qual subsistema e/ou conexão entre www.sei.cmu.edu/architecture/sat_init.html
subsistemas os cenários de qualidade não são alcançados. Worldwide Institute of Software Architects
É importante observar que durante a atividade de projeto, www.wwisa.org/wwisamain/index.htm
são feitas várias análises arquiteturais a fim de validar a ar- The Software Architecture Portal
quitetura proposta. Nesse contexto, os cenários servem para http://www.softwarearchitectureportal.org/
estruturar o processo de análise. Uma vez que a arquitetura
SEI’s Software Architecture Technology Initiative
tenha sido obtida, é importante que avaliadores externos fa- www.sei.cmu.edu/architecture/sat_init.html
çam uma avaliação a fim de confirmar os resultados obtidos
durante o projeto arquitetural.
Dê seu feedback sobre esta edição! Feedback
eu

s
Conclusão


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

sobre e
Arquitetura de software e, mais especificamente, decisões Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
de projeto arquitetural, têm grande importância no contexto Dê seu voto sobre este artigo, através do link:
edição

atual para desenvolvimento de sistemas de software. Essa


www.devmedia.com.br/esmag/feedback
importância vem em parte da necessidade de prover suporte

Edição 22 - Engenharia de Software Magazine 45


Abordagens Tradicionais de Desenvolvimento
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
tradicionais de apoio ao desenvolvimento de projetos de software

Experiências da Domínio Informática na


Implantação do MPS.BR

Ticiana da Mota Gentil Parente De que se trata o artigo?


ticianagentil@yahoo.com.br Este artigo relata a experiência da Domínio In-
Bacharel em Economia pela Universidade Federal formática com a definição e implementação dos
do Ceará, pós-graduada em Processamento de seus processos de desenvolvimento de software,
Dados pela Universidade de Fortaleza - UNI-
aderentes ao modelo de maturidade MPS.BR.
FOR, participou dos seguintes cursos: Curso de
Gerenciamento de Projetos baseado no PMBOK, Para tanto, discorre sobre a estratégia usada, as
Curso Oficial de Introdução ao MPS.BR e Curso de ações necessárias para se alcançar estes objeti-
Auditoria da Qualidade ISO 9001:2000. Foi coor- vos, os aprendizados obtidos, suas dificuldades,
denadora do projeto de implantação do MPS.BR fatores de sucesso e os benefícios iniciais a partir
na Domínio Informática, bem como, responsável
desta experiência.

A
pela implantação da fábrica de software e res-
ponsável pela inclusão no escopo da ISO do item Domínio Informática é uma
referente a desenvolvimento de sistemas e fábrica empresa especializada em Ter- Para que serve?
de software na Domínio Informática. Atualmente ceirização de Tecnologia da In- Este artigo é importante para que outras empresas
trabalha na Secretaria do Planejamento e Gestão formação e Comunicação e mão-de-obra possam conhecer as dificuldades enfrentadas pela
do Governo do Estado do Ceará na Coordenadoria
especializada para todos os segmentos Domínio Informática para conseguir dois níveis de
de Gestão Estratégica de TIC.
de informática como: Desenvolvimento maturidade do MPS.BR, bem como os fatores de su-
Adriano Bessa Albuquerque de Sistemas, Suporte Técnico, Consul- cesso de tal empreitada.
adriano.ba@terra.com.br toria e Treinamento. É uma empresa
Doutor em Engenharia de Sistemas e Computa- full service, ou seja, fornece aos seus Em que situação o tema é útil?
ção pela Universidade Federal do Rio de Janeiro clientes infra-estrutura completa de su- O tema é útil, tendo em vista estar crescendo
(2008). Atualmente é professor do Mestrado em
porte, manutenção e acompanhamento a procura das empresas brasileiras pelas ava-
Informática Aplicada da Universidade de Forta-
leza, estando envolvido com a linha de pesquisa de serviços e produtos. liações MPS.BR.
de Engenharia de Software. Atua principalmente Em 1998, a Domínio iniciou o de-
nos seguintes temas: qualidade de software, senvolvimento de uma metodologia
avaliação e melhoria de processos de software, de trabalho própria, tendo sempre a
métricas, normas iso e modelos de maturidade
preocupação de adequar seus serviços desenvolvimento de sistemas, recruta-
de software, sendo, também, implementador e
avaliador oficial dos modelos de maturidade de às reais demandas dos clientes. Em mento e seleção de pessoal especiali-
software: CMMI e MPS.BR. 1999, obteve a certificação ISO 9001 em zado, e projetos de comércio eletrônico

46 Engenharia de Software Magazine - Experiências da Domínio Informática na Implantação do MPS.BR


processo

na Internet. A certificação foi feita pelo BVQI (Bureau Veritas Como a empresa também faz terceirização, decidiu-se imple-
Quality International), que tem reconhecimento do INMETRO mentar os processos também em um cliente, o Departamento
(Instituto Nacional de Metrologia, Normalização e Qualidade de Edificações e Rodovias do Estado do Ceará (DER-CE). Lá, a
Industrial) e ANSI/RAB (American National Standards Ins- empresa é responsável por todo o desenvolvimento e manutenção
titute/Registrar Accreditation Board). A partir de 2006, as re- de sistemas, possibilitando grande autonomia nos processos da
certificações passaram a ser realizadas pelo BRTÜV, organismo área terceirizada. Esta decisão teve como objetivo disseminar o
certificador, credenciado também pelo INMETRO. conhecimento e buscar uma maior qualidade em seus serviços.
No final do primeiro semestre de 2007, a empresa contratou
a Universidade de Fortaleza - UNIFOR como instituição im- Ações Necessárias
plementadora, no intuito de orientá-la e ajudá-la na definição Outros fatores que também motivaram a empresa a imple-
e implementação dos processos do nível G e F do MPS.BR - mentar o MPS.BR (SOFTEX, 2007) foram: a expectativa de redu-
Melhoria de Processo do Software Brasileiro (SOFTEX, 2007). ção do retrabalho, o aumento da produtividade, a redução do
Como resultado inicial deste trabalho, em fevereiro de 2008, a tempo de entrega do produto, a otimização da previsibilidade
empresa foi avaliada com sucesso no nível G, tendo como uni- e o aumento da satisfação do cliente (VARKOI, 2002).
dades organizacionais avaliadas o setor de desenvolvimento Para o que a empresa se propunha em termos da melhoria
da própria Domínio Informática e o site do Departamento de continua dos seus processos foi necessário:
Edificações e Rodovias do Estado do Ceará (DER-CE), cliente • Disponibilizar recursos suficientes (HEFNER e TAUSER,
da empresa. Em relação ao nível F, em setembro de 2008, houve 2001, DYBA, 2003), visto que o sucesso de um Programa de
a avaliação inicial da Fábrica de Software da Domínio, tendo Melhoria depende do investimento em pessoal, em ferramentas
sua avaliação final prevista para Outubro de 2008. de apoio e do apoio de consultorias especializadas.
O fato de a empresa ter optado por obter as avaliações do • Analisar freqüentemente, o retorno do investimento (ROI)
nível G e do nível F no mesmo ano, com um intervalo de apenas com as melhorias dos processos de software e torná-las visíveis
seis meses, exigiu um alto investimento, além de uma grande (ERDOGMUS et al., 2004). Com isto, a organização se motiva
dedicação e tempo dos profissionais. e diminui o risco de parar o processo de melhoria contínua,
A Fábrica de Software, que é um conjunto de recursos hu- visto que percebe os ganhos obtidos e que estão influenciando
manos e materiais, processos e metodologias estruturadas, positivamente os seus negócios.
de forma semelhante às indústrias tradicionais, utiliza-se • Adaptar o Programa de Melhoria às características da organiza-
das melhores práticas para o processo de desenvolvimento, ção (HEFNER e TAUSER, 2001, DYBA, 2003), visto que a eficiência
teste e manutenção dos softwares. Além disso, utiliza em sua e aderência aos processos dependem do quão os processos estão
operação, indicadores de qualidade e produtividade em cada em sintonia com a cultura organizacional da empresa.
etapa do ciclo de desenvolvimento de software, bem como • Existir, por parte da empresa, uma visão e compromisso de
busca maximizar a reutilização de componentes anteriormente longo prazo com o investimento em melhoria (VARKOI, 2002),
desenvolvidos. de forma que as dificuldades enfrentadas e os prazos de cada
A qualidade dos produtos e serviços da Fábrica de Soluções de passo rumo à melhoria contínua dos processos, que nem sem-
Software da Domínio Informática é baseada no modelo MPS. pre são curtos, não venham desmotivar a organização.
BR (SOFTEX, 2007), no processo interno de desenvolvimento • Existir uma alta gerência comprometida e que forneça o
de sistemas certificado pela ISO desde 1999, bem como no devido suporte (DYBA, 2003, BASILI et al., 2002), visto que o
PMBOK (PMI, 2004). início e continuidade do Programa de Melhoria depende dos
recursos disponibilizados pelos dirigentes da organização.
Estratégia Utilizada • Definir uma baseline dos resultados do Programa de Melho-
Como diferencial competitivo, a Domínio procurou iden- ria desde o seu início (BASILI et al., 2002), para que a empresa
tificar uma metodologia que otimizasse seus processos de não perca a noção do quanto a melhoria dos processos está
trabalho, objetivando melhorar a qualidade de seus produtos sendo benéfica para a organização e seus negócios.
e serviços, aumentar a competitividade e reduzir custo. Desta • Ajustar os objetivos de melhoria aos objetivos de negócio da
forma, identificou no MPS.BR (SOFTEX, 2007) a melhor opção, organização (HEFNER e TAUSER, 2001). Com isto, espera-se
visto o atual reconhecimento nacional deste modelo de matu- que o foco do Programa de Melhoria seja o crescimento dos
ridade, a possibilidade de um menor investimento e a empresa negócios da empresa e que a melhoria dos processos não se
ter sua atuação ainda restrita ao mercado interno. torne uma iniciativa à parte e desvinculada das outras áreas
Assim, contratou uma instituição implementadora que da organização.
pudesse auxiliá-la nesta mudança e iniciou o processo de • Considerar não apenas os fatores técnicos da organização
capacitação do seu quadro técnico. (HEFNER e TAUSER, 2001, DYBA, 2003). É importante ana-
Inicialmente, a Universidade de Fortaleza (UNIFOR) realizou lisar fatores relacionados à cultura da empresa, bem como
um diagnóstico da situação atual da empresa, para que pudesse à sua estrutura organizacional, pois alguns destes fatores
definir de uma forma mais rápida e eficaz o quanto os processos podem inviabilizar o início e a continuidade do Programa de
da Domínio estavam aderentes ao MPS.BR (SOFTEX, 2007). Melhoria.

Edição 22 - Engenharia de Software Magazine 47


• Ter o envolvimento de todos os colaboradores (DYBA,
2003), já que são eles que irão executar os processos
implementados.
• Investir em melhoria de pessoal (contratação, melhoria de
habilidades, ambientes de trabalho, entre outras) em para-
lelo ao Programa de Melhoria (BASILI et al., 2002). Talvez,
este deve ser o maior orientador de qualquer Programa de
Melhoria, visto que a qualidade do pessoal da empresa é
o principal diferencial na definição e execução dos proces-
sos, ou seja, a maturidade dos processos da empresa está
diretamente relacionada à maturidade dos colaboradores
da organização.
• Aproveitar conhecimentos já existentes na organização
(DYBA, 2003), para que a empresa não parta da estaca zero e
os processos definidos sejam mais adequados à organização
e possam ser executados de maneira mais aderente.
• Ser apoiado por um ambiente ou abordagens de gestão de
conhecimento (SCHNEIDER e VON HUNNIUS, 2003). Dessa
forma a organização poderá implementar melhorias mais
úteis às necessidades dos processos e além disso, a partir
do reuso de conhecimentos, agilizar a implementação e
execução dos processos.

Além destes fatores de sucesso, a empresa, juntamente


com a consultoria, buscou definir claramente as responsa-
bilidades dos envolvidos no processo, bem como garantir
um bom nível de usabilidade da definição dos processos,
selecionando o tipo de representação mais adequada
(MENDONÇA, 2006). Para isto, utilizou a ferramenta Figura 1. Processo representado no EPF Composer
EPF Composer, que permite uma eficaz representação
gráfica dos processos, descrição das atividades, tarefas Aprendizados e Ajustes
e passos, bem como a definição dos papéis responsá- Na fase de implementação dos processos, o aprendizado teó-
veis por cada tarefa, conforme apresentado na Figura 1. rico unido à prática, quando do início do desenvolvimento dos
Esta ferramenta é também um repositório dos templates que projetos, propiciou um maior grau de maturidade, não apenas
devem ser utilizados durante a execução dos processos. da equipe, mas de toda a empresa, uma vez que efetivamente
Além disso, foram definidos os artefatos de entrada e saída houve uma maior e melhor gestão nos seus projetos.
para cada tarefa, os quais fossem de fácil utilização (com Inicialmente, foram realizados treinamentos para que hou-
informações claras, com diretrizes de preenchimento, com vesse um “nivelamento” do conhecimento entre a equipe
seções bem distribuídas) e ao mesmo tempo aderentes ao de trabalho e possibilitasse um maior senso crítico durante
MPS.BR (SOFTEX, 2007). a etapa de definição dos processos de Gerência de Projetos
A organização e a consultoria definiram os métodos e técnicas e Gerência de Requisitos (nível G do MPS.BR). Em seguida,
que poderiam apoiar de maneira mais adequada os processos, após várias reuniões para definir os processos e os respecti-
como por exemplo, a utilização de Pontos de Casos de Uso para vos templates, estes foram divulgados e institucionalizados
estimar o esforço dos projetos. Foram definidas também as ferra- na organização.
mentas que melhor poderiam apoiar a execução dos processos. Em paralelo a isso, para facilitar a implementação dos pro-
Finalmente, no início da implantação do Programa de Me- cessos, a Domínio deu início ao desenvolvimento de uma
lhoria na empresa, foram realizados treinamentos e principal- ferramenta que pudesse apoiar o processo de Gerência de
mente reuniões com os colaboradores, para sensibilizá-los em Projetos e de Requisitos, funcionando como um workflow.
relação: (i) à importância de iniciativas de melhoria contínua de Porém, com a implementação dos novos processos do nível F,
processos para uma organização, (ii) à relevância de executar mais especificamente, da Gerência de Configuração, em que
os processos de forma aderente e (iii) à importância para a passou a utilizar a ferramenta Team Foundation, esta idéia foi
vida profissional de cada um dos colaboradores, por estarem abandonada, visto que esta ferramenta permite que o método
participando de um Programa de Melhoria, tendo em vista de trabalho fique mais claro, permitindo, assim, um maior e
que aumentaria seu nível de conhecimento em Engenharia melhor entendimento do processo, bem como um repositório
de Software e sua empregabilidade. único de dados. Além disso, a ferramenta veio apoiar de forma

48 Engenharia de Software Magazine - Experiências da Domínio Informática na Implantação do MPS.BR


processo

significativa também a Gerência de Projetos e Garantia da Qua- rigoroso, (iii) sensibilizar os envolvidos em relação aos bene-
lidade, uma vez que se instituiu na empresa a cultura do uso fícios do Programa de Melhoria, (iv) disseminar a cultura de
de tarefas (tasks), em que se identifica o responsável, projeto e processos na empresa, (v) existir um colaborador dedicado
situação da mesma, permitindo um maior controle destas. para desenvolver as iniciativas de melhoria de processos na
organização e, principalmente, (vi) contar com um forte apoio
Principais Dificuldades da alta direção (patrocinador do Programa de Melhoria).
No início, até por falta de um maior grau de maturidade, Como o custo de implementação e avaliação de processos é
a empresa passou por um momento de adequação, havendo alto e o prazo para se enxergar os benefícios obtidos é longo, se
“certa” resistência, por considerar algumas etapas muito a alta direção não der o devido respaldo, e se não existir uma
burocráticas. boa coordenação do projeto de implementação dos processos
No decorrer dos trabalhos, percebeu-se que se poderia ter um aderentes ao modelo MPS.BR (SOFTEX, 2007), poderá ocasionar
maior controle e conseqüentemente uma melhor gestão dos um aumento do custo de implementação e até mesmo compro-
projetos. Porém, era necessário um trabalho em conjunto em meter o sucesso e a continuidade do Programa de Melhoria.
que ocorressem reuniões de analises críticas que permitissem Como fator de sucesso, vale ressaltar ainda, a estratégia de
revisões e identificação de melhorias. realizar uma avaliação informal na Domínio Informática,
Atrelado a isso, como o ser humano tem uma resistência antes da avaliação inicial do MPS.BR em todos os seus níveis,
natural à mudança, o que dificulta a implantação de um novo de forma que a empresa pudesse conhecer a atual realidade
processo de trabalho, uma vez que isso implica na saída de dos seus processos em relação aos resultados esperados e
uma zona de conforto, já totalmente conhecida, para uma atributos de processos definidos pelo modelo. Esta avaliação
nova, as quais muitas vezes expõem as pessoas a um desafio, foi realizada por uma avaliadora adjunta oficial do MPS.BR e
que nem sempre elas estão preparadas, alguns colaboradores que não tinha participado da implementação dos processos
se colocaram, muitas vezes, contra a execução de algumas na empresa.
tarefas e utilização de alguns métodos e técnicas.
Uma outra dificuldade enfrentada foi com a implantação do Benefícios Alcançados
novo processo de trabalho, o qual gera novas atribuições para Vários foram os benefícios obtidos com a implantação dos
do dia a dia, sem que as tarefas em andamento possam ser processos, porém, vale destacar o aumento do grau de matu-
colocadas em stand by. Desta forma, conciliar o que deveria ridade dos profissionais da empresa, bem como o rigor com
ser feito na rotina diária e ao mesmo tempo executar novas que os projetos passaram a ser gerenciados. Atualmente, não
tarefas dos processos implementados foi um esforço árduo, há dúvidas do que deve ser feito, quando e por quem. Isso
que exigiu uma determinação muito grande dos colaboradores por si só, já representa uma grande vantagem competitiva da
para mudar. organização.
Em relação a esta dificuldade, as iniciativas para motivar Além disso, podemos citar a institucionalização dos proces-
os envolvidos de forma que conseguíssemos torná-los uma sos, deixando-os cada vez menos pessoais, uma vez que todos
verdadeira equipe de trabalho foi fundamental. sabem que passos devem ser seguidos. A visão de começo,
Assim, viabilizar treinamentos, analisar casos de sucesso, meio e fim de um processo é facilmente entendida e visualizada
realizar reuniões de analises críticas, ver as tendências merca- através do que foi definido.
dológicas, identificar oportunidades de negócio para empresa, Como os softwares passaram a ser extremamente bem docu-
foram algumas das ações que motivaram a equipe. mentados, isto propiciou uma maior e melhor continuidade dos
Outra grande dificuldade enfrentada pela empresa foi definir serviços, visto que mesmo com a mudança de um profissional
os processos de forma que, quando executados, preservassem a no projeto, outro que entenda a forma de trabalho e que tenha
agilidade das entregas aos clientes e, ao mesmo tempo, atendes- acesso à documentação poderá dar continuidade ao mesmo
sem aos resultados esperados do MPS.BR (SOFTEX, 2007). com maior facilidade, permitindo assim um aumento da pro-
Nesse momento, ficou clara a importância de uma consulto- dutividade e segurança do projeto.
ria, onde os implementadores já tivessem tido oportunidades Outro beneficio advindo da implementação do processo de
de participar de avaliações MPS.BR e conhecessem a realidade Gerência de Projetos foi a utilização de Pontos de Casos de
e os processos de outras empresas (Benchmark). Percebeu-se Uso para estimar o esforço necessário dos projetos. Com isto, a
que uma orientação bem qualificada facilita a definição de empresa vem melhorando o nível de previsibilidade do esforço
processos mais adequados aos objetivos de negócio da empresa dos seus projetos e conseqüentemente, dos custos envolvidos,
e mais aderentes ao modelo de maturidade. embora ainda não considere que tenha uma calibração ade-
quada, visto o número de projetos, os quais utilizaram esta
Fatores de Sucesso técnica. Porém, considerando ser um método universal, e com
No caso da Domínio Informática, podemos definir os se- a nova prática que será adotada na conclusão dos projetos em
guintes fatores de sucesso: (i) ter contratado uma consultoria, andamento, em que será feita uma comparação do que foi esti-
(ii) tratar o Programa de Melhoria como um projeto, onde as mado, com o efetivamente realizado, a empresa espera colher
fases são bem definidas e é realizado um acompanhamento ainda mais frutos. A comparação entre os resultados obtidos

Edição 22 - Engenharia de Software Magazine 49


com Pontos de Caso de Uso e com o método utilizado ante- conhecimento e pela maior e melhor gestão de seus negócios.
riormente não foi realizada, uma vez que não tínhamos uma O cliente, por ter uma ferramenta de trabalho implantada em
base histórica confiável. Além disso, com esta nova forma de sua organização sem custo adicional ao seu contrato. O pro-
estimar, de planejar e de monitorar seus projetos, a organização fissional, por conseguir um maior grau de maturidade e em-
passou a ter uma maior visão da sua lucratividade. pregabilidade. E o mercado, por dispor de empresas com uma
Outro ponto importante a se destacar com a implantação maior capacitação em gestão e qualidade de software.
dos processos foi a utilização de abordagens de captura de
conhecimentos a fim de que pudessem ser reutilizados, au-
Referências
mentando, assim, a produtividade dos projetos da organização.
Um exemplo disto foi a realização das avaliações post-mortem BASILI, V. et al., 2002,“Lessons learned from 25 years of process improvement: The Rise and Fall
no final dos projetos, que permitiram identificar pontos fortes of the NASA Software Engineering Laboratory”, In: Proceedings of International Conference on
e fracos e, a partir de sua análise, propor melhorias para os Software Engineering (ICSE 2002), pp. 69-79, Orlando.
processos. DYBA, T., 2003, “Factors of Software Process Improvement Success in Small Organizations: An
Empirical Study in the Scandinavian Context”, In: Proceedings of the Software Engineering
Conclusão Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/
A empresa entende a melhoria contínua dos processos FSE’03), pp. 148-157, Helsinki.
como uma iniciativa sem volta e de grande valor agregado
ao negócio. ERDOGMUS, H. et al., 2004,“Return on Investment”, IEEE Software, pp. 18-22, May/June 2004.
Dando continuidade ao Programa de Melhoria, a empresa HEFNER, R., TAUSER, J., 2001,“Things They Never Taught You in CMM School”, In: Proceedings of
tem a intenção de ser avaliada no nível E. Indo mais além ainda, the 26th Annual NASA Goddard Software Engineering Workshop, pp. 27-29, November.
neste período, a organização entende que pode adquirir mais
maturidade, bem como explorar um nicho de mercado interna- MENDONÇA, R. M. L. O., 2006, “Usabilidade de Processos”, In: Anais do II Workshop “Um Olhar
cional, que irá exigir uma certificação CMMI. Assim, somente Sociotécnico sobre a Engenharia de Software” (WOSES), pp. 13-26, Vila Velha, Junho.
após galgar para o nível E, a empresa tem como estratégia se PMI - Project Management Institute, 2004, “PMBOK A guide to Project Management Body of
capacitar e solicitar uma avaliação CMMI nível 3. Knowledge”. 3ª ed. Pennsylvania: PMI – Project Management Institute Inc.
Adicionalmente, com a implementação dos processos, os
projetos passaram a ser melhor gerenciados, permitindo uma SCHNEIDER, K., VON HUNNIUS, J-P., 2003, “Effective Experience Repositories for Software
maior qualidade dos produtos e serviços. Com isso, a empresa Engineering”, In: Proceedings of the International Conference on Software Engineering
pôde se destacar diante de outras empresas ao implementar (ICSE’03), pp. 534-539, Portland, May.
processos também no seu cliente, DER-CE, propiciando, desta SOFTEX, 2007, Melhoria de Processo de Software Brasileiro - Guia Geral versão 1.2, disponível
forma, um grande diferencial, visto que a terceirização passou em: http://www.softex.br/mpsbr, acessado em: 08/10/2007.
a não ser uma mera mobilização de mão-de-obra. A Domínio
Informática passou a oferecer aos seus clientes um processo de VARKOI,T., 2002,“Management of Continuous Software Process Improvement”,In: Proceedings of the
desenvolvimento aderente ao MPS.BR e disponibilizar profis- International Engineering Management Conference (IEMC ‘02), pp. 334-337, Cambridge, August.
sionais capacitados em engenharia de software, sem nenhum
custo adicional aos seus contratos, possibilitando, dessa forma,
Dê seu feedback sobre esta edição! Feedback
o desenvolvimento de um produto e uma prestação de serviço s eu

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

sobre e
Assim, não é apenas a empresa que se beneficia quando Para isso, precisamos saber o que você, leitor, acha da revista! ta s
implementa a metodologia e obtém sucesso em uma avalia-
edição
Dê seu voto sobre este artigo, através do link:
ção que comprove o uso efetivo da mesma, mas também seus
www.devmedia.com.br/esmag/feedback
clientes, profissionais e o próprio mercado. A empresa, pelo

50 Engenharia de Software Magazine - Experiências da Domínio Informática na Implantação do MPS.BR


processo

Edição 22 - Engenharia de Software Magazine 51


Validação, Verificação e Teste
Esta seção traz artigos que apresentam como e quando utilizar as diferentes abordagens
de VV&T no apoio ao desenvolvimento de projetos de software

Gerenciamento de Defeitos em Projetos de


Software
Introdução à Ferramenta BugZilla
De que se trata o artigo? com qualidade e a relação do controle e identificação
Jenifer Vieira Toledo de bugs na busca por qualidade.
Gestão de bugs de software com a utilização da
jenifer@jenifer.eti.br
É graduada em Ciência da Computação pela ferramenta BugZilla. O artigo apresenta a utilização
Faculdade Governador Ozanam Coelho (FAGOC), da ferramenta para rastrear defeitos, desde a sua Em que situação o tema é útil?
pós-graduanda em Gerência de Projetos em identificação feita pelo usuário até a sua correção. O rastreio de defeitos fornece à equipe de desenvolvi-
Engenharia de Software pelo Centro de Ensino Aspectos gerenciais da ferramenta também são mento um importante diferencial para buscar qualidade
Superior de Juiz de Fora (CES/JF) e Técnica de
apresentados, desde a instalação, configuração de em seus produtos. Esta técnica permite que os defeitos
Hosting da Optical Soluções em Informática Ltda.
um novo produto de software e a evolução do defei- sejam catalogados, desde sua identificação até sua re-
to observada pela equipe de desenvolvimento. solução. Para este fim, a ferramenta BugZilla é utilizada
Marcelo Santos Daibert para controlar e automatizar o processo de rastreio dos
marcelo@daibert.pro
Twitter: @MSDaibert Para que serve? defeitos, o que diminui o tempo de resposta para a cor-
É professor e coordenador do Curso de Ba- Fornecer conhecimentos para verificar, na prática e reção, deixando o processo de verificação de bugs mais
charelado em Ciência da Computação da FA- de forma organizada, bugs de software rastreados organizado, aumentando assim a qualidade do produto
GOC - Faculdade Governador Ozanam Coelho, pela ferramenta BugZilla. Estabelecer uma visão crí- de software e satisfação dos usuários, auxiliando a orga-
Mestrando e Especialista em Ciência da Com-
tica sobre a necessidade de se desenvolver software nizar a fase de manutenção de software.
putação pela Universidade Federal de Viçosa,
Bacharel em Sistemas de Informação pela Fa-
culdade Metodista Granbery e Gerente Técnico
da Optical Soluções em Informática Ltda.

U
m dos primeiros grandes mar- e culturais, motivados pelo fenômeno
Marco Antônio Pereira Araújo cos da história da qualidade foi da revolução industrial, houve a ne-
maraujo@acessa.com a revolução industrial, iniciada cessidade da criação de produtos com
Doutor e Mestre em Engenharia de Sistemas em meados do século XVIII, quando algum diferencial, já que nascia ali a
e Computação pela COPPE/UFRJ, Especialista
houve um grande crescimento no núme- concorrência entre empresas, serviços
em Métodos Estatísticos Computacionais e
Bacharel em Matemática com Habilitação em ro de indústrias substituindo o processo e produtos. Muitas empresas buscaram
Informática pela UFJF, Professor dos cursos de de fabricação manual pelo industrial. então aprimorar seus métodos de produ-
Bacharelado em Sistemas de Informação do Esse processo permitiu a criação de ção, para que minimizassem as despesas
Centro de Ensino Superior de Juiz de Fora e produtos iguais, já que no processo ma- e maximizassem os lucros. Nascia ali
da Faculdade Metodista Granbery, Analista de
nual manter este padrão nem sempre era um conceito hoje chamado de processo
Sistemas da Prefeitura de Juiz de Fora e Editor
da Engenharia de Software Magazine. possível. Com os avanços tecnológicos de melhoria contínua de produtos. Mais

52 Engenharia de Software Magazine - Gerenciamento de Defeitos em Projetos de Software


Validação, Verificação & Teste

tarde, a partir da década de 20, a produção industrial passou clientes, redução da qualidade global do software e também
a se preocupar mais ainda com a qualidade dos produtos, insatisfação dos funcionários / desenvolvedores (envolvidos
com a finalidade de impedir que produtos com qualquer tipo na tarefa de desenvolvimento).
de defeito chegassem às mãos dos clientes. Nos dias atuais, Diante dos fatos apresentados e da dificuldade em identificar
a qualidade é o grande diferencial para qualquer produto ou e manter o controle sob os bugs / defeitos de um software (seja
serviço que uma empresa possa produzir ou oferecer. durante o desenvolvimento do software ou após a finalização
No atual contexto de desenvolvimento de software a qua- do desenvolvimento, especialmente na fase de manutenção),
lidade já não é mais um fator de diferenciação no mercado, este artigo tem como objetivo apresentar conceitos relacionados
mas sim, uma condição essencial para que as empresas e ao tema e introduzir a utilização da ferramenta BugZilla para
profissionais sejam bem-sucedidos. As empresas de software auxiliar nessa tarefa.
vêm buscando certificações ISO (International Organization Essa ferramenta é utilizada para o controle e manutenção de
for Standardization) e certificações dos modelos de maturi- bugs em projetos de software, e permite acompanhar / ras-
dade CMMI (Capability Maturity Model Integration) e MPS. trear o bug desde a sua identificação, reporte e correção. São
BR (Melhoria de Processos do Software Brasileiro) como meio apresentados, durante o artigo, quais os requisitos necessários
de comprovar sua qualidade no processo de desenvolvimento para instalação da ferramenta, bem como o seu funcionamento
de software (ler Nota 1). Assim, torna-se importante a utiliza- como um sistema Web. Também são apresentadas as principais
ção de métodos e técnicas que permitam avaliar de maneira configurações e as visões de utilização do sistema sob a ótica
abrangente a qualidade dos processos e dos produtos de sof- do administrador, usuário do software (software este cadas-
tware, garantindo que o usuário receba produtos dentro das trado no sistema para receber os bugs relatados) e a equipe de
especificações definidas e esperadas por ele. desenvolvimento.
Desde o surgimento da tarefa de desenvolvimento de sof-
tware, grande parte dos recursos, seja financeiro ou esforço, Bugs
são gastos na fase de manutenção do software. Segundo O primeiro bug foi citado por Thomas Edison em 1878, quan-
Roger Pressman, autor de um dos livros mais famosos de do um pequeno inseto identificado em seu fonógrafo causou
Engenharia de Software, a fase de manutenção pode ser problemas de leitura. Nos Estados Unidos, em 1957, encon-
responsável por mais de 70% de todo o esforço despendido traram uma traça entre os circuitos do primeiro computador
para a produção do software. Outros autores, e a experi- digital automático de larga escala, o que causou um erro nos
ência de algumas empresas, taxam números semelhantes, cálculos da máquina. Este foi considerado o “primeiro bug”
o que nos fazem refletir sobre a importância de padrões e de um computador.
processos nas fases anteriores para minimizar esses gastos
e esforço com manutenção.
Na fase de manutenção é onde são feitas melhorias e otimi- Nota do DevMan 1
zação de um software já finalizado. Nessa fase são feitos os
reparos de defeitos / bugs encontrados. Segundo Pressman, ISSO, CMMI, MPS.BR
o custo da manutenção de software tem aumentado firme- ISO significa International Organization for Standardization (Organização In-
mente durante os últimos 20 anos. Durante a década de 1970, ternacional de Normalização) e seu objetivo é promover o desenvolvimento de
a manutenção era responsável por um índice entre 35% e 40% normas, testes e certificação, com o objetivo de padronizar e encorajar o desen-
do orçamento de Software para uma organização de sistemas volvimento de comércio de bens e serviços. É uma organização formada por mais
de informação. Esse valor pulou para aproximadamente 60% de 90 países e as normas da série ISO 9000 são as principais normas internacionais
durante a década de 1980. O autor ainda estima que, se nada for sobre o gerenciamento e a garantia da qualidade.
feito para minimizar os problemas nos software e conseqüen- O CMMI é um modelo de referência que apresenta boas práticas necessárias à
temente minimizar os custos na fase de manutenção, muitas maturidade em áreas de conhecimento específicas, como, por exemplo, a enge-
empresas gastarão 80% de seus orçamentos de software em nharia de software. É uma evolução do CMM (Capability Maturity Model) e procura
manutenção. Quanto mais eficiente for a fase de manutenção integrar os processos de melhoria corporativo em um único modelo, integrando
do software, mais fácil é de mantê-lo, e por conseqüência mais diferentes modelos e disciplinas. É dividido, de acordo com a representação contí-
barato (seja mais barato financeiramente ou de esforço). nua, em níveis crescentes de maturidade, até o 5, sendo o nível 5 o mais elevado
Estes dados não levam em consideração uma importante da escala. Esses níveis de maturidade definem o grau de melhoria de processo para
parte envolvida no processo: o usuário e sua satisfação. A sa- um pré-determinado conjunto de processos no qual todos os resultados esperados
tisfação do usuário está diretamente ligada à funcionalidade do processo e dos atributos dos processos são atendidos.
correta da aplicação. Um software com muitos defeitos, além Assim como o CMMI, O MPS.BR é um modelo para melhoria de processo do sof-
de causar prejuízos financeiros, gera insatisfação, mitigando a tware brasileiro e está em desenvolvimento desde 2003. É dividido em sete níveis
possibilidade de sucesso do processo de desenvolvimento de de maturidade: A (em otimização), B (gerenciado quantitativamente), C (definido),
software. Ou seja, os custos de manutenção não se resumem D (largamente definido), E (parcialmente definido), F (gerenciado) e G (parcialmen-
ao gasto de dinheiro e esforço, mas também em atrasos no te gerenciado). A escala de maturidade se inicia no nível G e evolui até o nível A.
desenvolvimento, quebra de cronograma, insatisfação dos

Edição 22 - Engenharia de Software Magazine 53


Por conta destes episódios, até hoje, ainda são chamados de distribuída gratuita e com código fonte aberto (freeware e
bugs os defeitos de um software. Um defeito é considerado opensource) e foi portada para a linguagem PERL. O seu
um erro no funcionamento comum do programa ou uma código fonte é licenciado através do NPL (Netscape Public
falha na lógica da aplicação que causa impossibilidade de License) ou MPL (Mozilla Public License), junto com GNU
realização de uma determinada ação ou tarefa. ou GPL (Gnu Public License).
Um modelo de bug conhecido e que ficou muito famoso, Por ser uma ferramenta Web, o Bugzilla deve rodar em um
especialmente pelo potencial dos problemas que causaria, é servidor Web, configurado com suporte ao PERL em modo
o “Bug do Milênio”, onde na virada do ano de 1999 para 2000, CGI. O desenvolvedor sugere (fortemente) a utilização do
devido ao armazenamento de datas com apenas 2 dígitos APACHE (http://httpd.apache.org) como servidor Web.
para o ano, fez com que o computador entendesse que estava Há uma série de requisitos relacionados a módulos PERL
no ano de “19″ + “00”, ou seja, 1900 e não no ano 2000. que devem ser instalados, como o CGI, DATA::FORMAT,
Vários são os exemplos de defeitos em software que causa- EMAIL::SEND, EMAIL::MIME::MODIFIER, GD, entre ou-
ram prejuízos. Em 4 de junho de 1996, foi lançado o primeiro tros. Há uma relação completa destes módulos requeridos e
foguete Ariane e, após decorrer 40 segundos da sequência opcionais no manual de instalação da ferramenta, que pode
de lançamento e a uma altitude de 3700 metros, o foguete ser encontrado na própria página do Bugzilla.
se desviou de sua trajetória e se autodestruiu com uma ex- A ferramenta suporta o MySQL, PostgreSQL e Oracle como
plosão. O custo desse desastre foi avaliado em mais de 300 banco de dados. No contexto deste artigo foi utilizado o
milhões de dólares, quantia suficiente para pagar um salário MySQL, entretanto o processo de instalação é similar para
de 2,5 mil dólares a 100 programadores que trabalhassem qualquer dos bancos.
durante um século. As investigações sobre o acidente apon- O processo de instalação é um pouco complexo, uma vez
taram falhas no software de navegação, que causou um erro que os requisitos da ferramenta são vastos, especialmente
no cálculo da velocidade horizontal do foguete. com relação aos módulos PERL. Entretanto, o desenvolvedor
A gravidade de uma falha de software é relativa. Existem disponibilizou um script que busca automatizar este pro-
falhas com as quais usuários podem conviver, a tal ponto cesso, mas para executá-lo é necessário ter acesso ao shell
que o sucesso de aplicação de um produto não seja afeta- do servidor (SSH no Linux ou prompt do MS-DOS / telnet
do. Entretanto há outros casos, onde a falha do programa / terminal service no Windows), seja o servidor Windows
representa um completo fracasso comercial. Há ainda os ou Linux, uma vez que a ferramenta é compatível com
casos em que os bugs podem colocar em risco inclusive a qualquer um desses ambientes. Infelizmente nem todos os
segurança física de pessoas. Um exemplo são os softwares provedores de hospedagem comercial disponibilizam acesso
que controlam aviões, tão questionados nos últimos anos shell ao servidor, o que dificultará a configuração. Mas, para
por conta dos últimos acidentes / incidentes noticiados os casos onde há esta possibilidade, ou até mesmo quando
pela mídia. se for instalar a ferramenta na máquina local, a utilização
Nota-se que, apesar do relato de um defeito ser um dos prin- deste script facilitará o processo.
cipais passos do processo de gestão de defeitos, normalmente O script se chama checksetup.pl e automatiza o processo de
ele é relegado para segundo plano. O mito de software perfei- configuração inicial do Bugzilla. Para rodá-lo, é necessário
to, sem defeitos, está longe de ser uma realidade. Se nenhum já ter configurado o servidor web para hospedar os scripts
defeito foi encontrado em um software, certamente os defeitos do Bugzilla, o PERL, os módulos PERL, e ter criado uma
não foram procurados de forma correta. Para encontrá-los e base de dados no servidor de banco de dados escolhido. É
identificá-los é preciso um método e adoção de processos necessário também já ter associado um usuário ao banco de
para este suporte, já que, são diversos os profissionais que dados criado com as devidas permissões na base. Com isso,
dedicam seu tempo na tarefa de encontrar defeitos em aplica- o script, ao rodar, irá verificar se todos os módulos Perl estão
ções dos mais diferentes portes. Neste sentido, a ferramenta de fato configurados e caso falte algum, o script irá emitir
BugZilla atua como suporte a estas operações, provendo um um alerta e impedir a instalação. Caso todos os módulos
mecanismo eficiente de se reportar os bugs. estejam instalados corretamente, o script irá perguntar o
nome do banco de dados criado, o usuário associado ao
Bugzilla banco e irá criar as tabelas necessárias para que o BugZilla
O Bugzilla é uma ferramenta de apoio à tarefa de manu- rode. Neste processo, pelo script, é possível criar um usuário
tenção de software, sendo utilizada principalmente como no sistema, que será o usuário administrador do BugZilla,
centralizador para reporte de defeitos em software. É um onde terá acesso à interface administrativa da ferramenta.
ambiente onde o desenvolvedor pode avaliar os bugs desco- Feito isso, basta rodar a ferramenta via navegador no link
bertos e traçar metas para corrigi-los, registrando as soluções que foi configurado no servidor web. Caso tudo tenha sido
de forma a possibilitar o acompanhamento do status do feito com sucesso, a tela que será visualizada é a apresentada
sistema e seus problemas. na Figura 1. Esta interface representa a interface inicial da
Foi desenvolvido inicialmente em TCL (Tool Command ferramenta na sua versão 3.4.4, última versão estável libe-
Language) por Terry Weissmam. Hoje a ferramenta é rada quando este artigo foi escrito.

54 Engenharia de Software Magazine - Gerenciamento de Defeitos em Projetos de Software


Validação, Verificação & Teste

Visão Administrador
O usuário administrador possui todas as permissões no
sistema e é quem tem acesso à interface de configuração do
BugZilla. Nela são definidas todas as configurações e perso-
nalizações da ferramenta. Este usuário é criado no processo
de configuração para utilização da ferramenta. Para se logar
na ferramenta, basta clicar em Log in na interface inicial.
Assim que estiver autenticado, o administrador é levado para
a interface centralizadora de configurações, que é exibida na
Figura 2.
Sempre que qualquer usuário está logado, inclusive o Admi-
nistrador, é exibido no topo da página uma série de links para
ações genéricas no sistema. As opções são:
• Home (Principal) – Volta para a interface principal da
ferramenta;
Figura 1. Interface Inicial do BugZilla • New (Novo) – Reporta um novo defeito;
• Search (Busca) – Exibe uma interface de busca para defeitos
Nas próximas seções deste artigo são apresentadas três reportados;
óticas diferentes de utilização do sistema. Inicialmente é • Reports (Reportes) – Exibe os defeitos já reportados, inclusive
apresentada a ótica de configuração do sistema, através com a opção de visualização gráfica dos defeitos;
do Administrador do BugZilla. Após isso, é apresentada a • My Votes (Meus Votos) – Apresenta os votos feitos pelo usu-
visão do usuário comum, responsável por reportar defeitos, ário em algum defeito com o objetivo de confirmá-lo como
pesquisar defeitos já reportados, entre outros. Por fim, é um defeito;
apresentada a visão do desenvolvedor, onde pode visualizar • Preferences (Preferências) – Disponibiliza uma interface
os bugs já reportados, classificar estes defeitos e então traçar para configuração personalizada específica para o usuário
metas para corrigi-los. autenticado;
No artigo é apresentado o BugZilla na sua interface oficial e • Administration (Administração) – Somente o usuário Ad-
em inglês. No site do desenvolvedor há uma série de pacotes ministrador tem acesso a esta interface, que disponibiliza um
de tradução, inclusive Português-BR. Entretanto, a última centralizador de todas as configurações e personalizações da
versão do pacote de tradução BR é somente compatível com ferramenta. Ao clicar nesta opção, é exibida a interface exibida
a versão 3.0 da ferramenta. na Figura 2;

Figura 2. Interface Administrativa do BugZilla

Edição 22 - Engenharia de Software Magazine 55


• Log out (Sair) – Encerra a sessão do usuário autenticado na • Field Value (Valor dos Campos) – Define um valor padrão
ferramenta. para os campos padrão do sistema ou campos personalizados
definidos pelo administrador na opção Custom Fields (Campos
Na interface de Administração (Administration), onde Personalizados).
somente o usuário administrador tem acesso, são disponi- • Bug Status Workflow (Fluxo de Trabalho dos status dos
bilizadas as seguintes opções: bugs) – Cada bug reportado no sistema irá ter um status que
• Parameters (Parâmetros) – Viabiliza a configuração das será apresentado ainda neste artigo. Esta opção permite es-
principais propriedades e parâmetros da ferramenta. tabelecer um fluxo de trabalho entre esses status, inclusive a
• Default Preferences (Preferências Padrão) – Altera as pre- ordem que eles podem ser alterados, desde a sua criação até
ferências padrão dos usuários. Os valores definidos nesta seu fechamento.
interface são utilizados por todos os usuários da ferramenta. • Groups (Grupos) – Permite a definição de grupos para
Entretanto, o usuário após se autenticar, pode acessar a inter- usuários que estabelecem permissões de acesso ao sistema.
face Preferences (Preferências) para personalizar essas variá- A própria ferramenta já define um padrão, mas que pode ser
veis conforme seu gosto, e não ao gosto do Administrador. personalizado conforme a preferência do administrador.
• Sanity Check (Checagem de Sanidade) – Executa um teste • Keywords (Palavras Chaves) – Define palavras chaves para se-
de sanidade no sistema, especialmente na base de dados, rem usadas com os bugs. É usada para estabelecer uma TAG para
verificando se tudo está funcional. os bugs, facilitando a sua manipulação e classificação futura.
• Users (Usuários) – Possibilita a administração dos usuários • Whining (Uma espécie de tarefas agendadas) – Permite
no sistema. Criação de novos usuários, edição, exclusão e definir operações para serem executadas em dia e hora
visualização dos já cadastrados. Ainda é possível manipular programados.
as permissões dos usuários cadastrados.
• Products (Produtos) – Onde são definidos os produtos Ao selecionar a opção Parameters (Parâmetros) é apresen-
que poderão receber reportes de defeitos. Geralmente um tada a interface exibida pela Figura 3. Como já apresentado,
software. essa opção permite a edição das preferências e propriedades
• Flags (Bandeiras) - Flags são marcadores que identificam se da ferramenta, como o email do administrador do sistema,
um defeito ou anexo tenha sido autorizado ou negado algum qual é a URL que o sistema está configurado, como é feita a
status da ferramenta. autenticação dos usuários, como os emails são enviados pela
• Custom Fields (Campos Personalizados) – Permite a con- ferramenta (sendmail, smtp, entre outros), onde e como são
figuração de campos personalizados para o cadastro de armazenados os anexos que os usuários podem enviar quando
produtos (software) e defeitos. reportam um bug, entre outros.

Figura 3. Interface Administrativa de Parâmetros de Sistema

56 Engenharia de Software Magazine - Gerenciamento de Defeitos em Projetos de Software


Validação, Verificação & Teste

A Figura 4 apresenta a interface de Usuários, onde é pos- produtos cadastrados, como na Figura 6. Nessa mesma interface
sível configurar os usuários da ferramenta. Nessa interface, é disponibilizada uma opção para cadastrar um novo produto,
o Administrador pode editar os usuários já cadastrados, al- editar um produto existente ou excluí-lo. Veja que, no exemplo, há
terando inclusive suas permissões de acesso, e incluir novos um produto cadastrado com o nome Software Teste Bugzilla. Este
usuários. Entretanto, qualquer usuário pode se cadastrar no produto está aberto para recepcionar novos bugs dos usuários.
sistema pela interface inicial (Principal) do Bugzilla, sem a Foi ainda configurado um limite de 10000 votos para cada bug
necessidade que o Administrador o cadastre. reportado, e um mínimo de 3 votos para confirmar um bug.
Mas caso seja da vontade do Administrador, é possível Essa opção de confirmar um determinado bug é especialmen-
restringir os cadastros, sendo necessária a aprovação do te importante, pois permite alterar automaticamente o status de
Administrador para que o usuário cadastrado tenha per- um bug de Novo para Confirmado de acordo com os votos dos
missão de reportar bugs. usuários. Ou seja, se mais de 3 usuários estiverem reportando o
Já a Figura 5 apresenta a interface de edição de um usuário mesmo bug, este está confirmado e merece uma atenção maior
cadastrado, onde é possível alterar seus dados, e especial- da equipe de desenvolvimento e correção de defeitos.
mente seus Grupos, onde são definidas suas permissões
de acesso ao sistema. Esses grupos são definidos na opção
Groups (Grupos) na interface de Administração do Admi-
nistrador. No exemplo apresentado, observe que o usuário
está no grupo admin: Administrators, que possui permissão
de acesso total no sistema.
Na opção Products (Produtos) é onde são definidos os produtos
(geralmente softwares) que o Bugzilla irá rastrear os defeitos. As-
sim que selecionada, é exibida a interface onde são visualizados os

Figura 6. Interface Administrativa de Visualização dos Produtos

Ao selecionar um bug cadastrado, ou então clicar em adicio-


nar um novo produto (Add a product), é exibida a interface
apresentada na Figura 7. Nela é possível configurar os parâ-
metros do produto, como nome do produto, uma descrição,
se ele está aberto ou fechado para recepcionar novos reportes,
Figura 4. Interface Administrativa de Visualização de Usuários qual o máximo de votos que um usuário pode dar no produto,
globalmente, e em um defeito específico, o mínimo de votos
para confirmar o defeito, o componente do produto (pode haver
vários componentes, como por exemplo, interface do sistema,
módulo de pagamento em um sistema de vendas, entre outros),
a versão do sistema (define a baseline do software) e o grupo
que este produto está inserido.
Já na opção Bug Status Workflow (Figura 8) é onde são defi-
nidos os status dos defeitos no sistema. Especificamente nessa
interface é configurado o fluxo de trabalho entre os status. Os
principais status são definidos abaixo:
• Unconfirmed: não confirmado, geralmente o estado inicial
de todo bug. Significa que ninguém ainda verificou a validade
do bug (confirmação). Usuários com permissão podem passar
um bug de Unconfirmed para New. Geralmente o responsá-
vel pelo bug ou outra pessoa tenta reproduzir o bug e, se ele
realmente ocorrer, é marcado como New. O bug nesse estado
pode passar por votação para mudar para New (quantidade
mínima de votos), e ser um novo bug. O bug nesse estado pode
ser diretamente resolvido e marcado Resolved. Para todos os
Figura 5. Interface Administrativa de Edição de Usuários estados existe possibilidade de loop;

Edição 22 - Engenharia de Software Magazine 57


pela Figura 10. Nessa figura, é possível identificar o grupo
admin, que possui todas as permissões de acesso. Entre
as principais permissões destacam-se a possibilidade de
editar um bug, editar uma classificação de um bug, poder
confirmar um bug (geralmente atribuída a um membro da
equipe de desenvolvedores, por exemplo), editar usuários,
editar componentes dos produtos, entre outros.

Figura 7. Interface Administrativa de Configuração dos Produtos

• New: o bug é novo, pertence à lista de bugs pessoais do


responsável pelo bug, e deve ser processado. O responsável
(desenvolvedor), em conjunto com outras pessoas ou não,
analisa o bug e decide se o aceita. Se for aceito, o bug deve ser
passado para o status Assigned. Se não for aceito, a responsa-
bilidade pelo bug pode ser atribuída à outra pessoa e ele será
Figura 8. Interface Administrativa de Fluxo de Trabalho dos Status de
mantido como New. Bugs nesse estado podem ser diretamente Defeitos
solucionados e marcados como Resolved;
• Assigned: nesse estado, o bug foi aceito por alguma pessoa,
que é responsável por ele. Essa pessoa pode resolvê-lo sozinha
ou com participação de mais pessoas, e então o bug é passado
para Resolved. Esse estado é o principal e, geralmente, o bug
encontra-se nesse estado quando alguém está trabalhando em
uma solução para ele. Se necessário, a responsabilidade pelo
bug pode ser atribuída (Reassigned) para outra pessoa, e então
ele passa para estado New;
• Resolved: uma solução foi dada ao bug, para algum dos tipos
de solução. A partida desse estado pode acontecer da solução
dada ser incorreta ou conter falhas e o bug precisar ser rea-
berto (passar para Reopened). Se a solução estiver correta, ele
pode ser fechado e passar para Closed. Se for necessário esse Figura 9. Interface Administrativa de Visualização de Grupos
bug ser verificado por alguém ou por um grupo de pessoas
antes de ser fechado, isso deve ser feito e ele pode passar para
Verified ou ser reaberto.

Nesta opção de workflow, são definidos os estados em que


são permitidos a transição. Com isso o Administrador pode
proibir, por exemplo, que um bug não confirmado (Unconfir-
med) passe diretamente para o estado Assigned. Ou seja, é
definido um workflow para estes estados.
Por fim, temos a interface de administração (Figura 9)
responsável por gerir os grupos de usuários e suas permis-
sões. Nesta interface são apresentados os grupos existentes
e suas descrições, além de uma opção de adicionar um novo
grupo. Ao clicar em um grupo existente é exibida a interface
de edição de grupo (mesma quando se clica ao cadastrar
um novo). Nela é permitido configurar o grupo e atribuir
permissões a usuários deste grupo, como é apresentado Figura 10. Interface Administrativa de Configuração de Grupos

58 Engenharia de Software Magazine - Gerenciamento de Defeitos em Projetos de Software


Validação, Verificação & Teste

Visão Usuário acompanhar a evolução do defeito reportado por ele através da


Esta seção tem como objetivo apresentar a visão de um opção de busca. Ao encontrar o seu bug reportado, é exibida
usuário comum que se registra na ferramenta para reportar uma interface com todos os detalhes do bug e a possibilidade
algum bug em algum produto já previamente cadastrado pelo de adicionar comentários. Qualquer usuário pode adicionar
administrador. qualquer comentário ao bug, mesmo que seja um bug que ele
Ao entrar na URL da ferramenta que foi configurada, o usu- não tenha reportado.
ário irá visualizar exatamente a mesma página apresentada na
Figura 1. Nesta interface o usuário possui a possibilidade de Visão Desenvolvedor
procurar algum bug já reportado em Search (Busca), reportar O desenvolvedor, ao se autenticar no sistema, tem a opção de
um novo defeito (New / File a Bug), se autenticar no sistema pesquisar por bugs de um determinado produto e ver todos
(Log In) ou criar uma nova conta (New Account / Open a os bugs reportados, como visualizado na Figura 12. Ao clicar
New Account). no bug escolhido, ele irá visualizar os detalhes daquele bug,
Para criar uma nova conta, o processo é bem simples. Basta poderá interagir com o usuário que reportou e com os demais
acessar a opção correta que na interface seguinte será solici- usuários que estão acompanhando o reporte. Lá é possível
tado o seu email. O Bugzilla então irá enviar um email para o também evoluir o status do bug até corrigi-lo ou então não o
que foi digitado como forma de verificar se o email é válido. confirmar, como podemos ver na Figura 13.
Neste email enviado haverá um link com informações para
finalizar o cadastro.
Com seu cadastro ativo, o usuário pode se autenticar no sis-
tema para reportar algum bug. Assim que solicita esta opção,
o usuário é levado para a interface apresentada na Figura 11.
Nela é possível escolher o produto a qual se refere o reporte,
o componente do produto, sua versão, a severidade do defeito
encontrado, qual hardware foi utilizado ao encontrar o defeito
e o sistema operacional. Abaixo é solicitado um breve sumário
do defeito bem como sua descrição. Há ainda a opção de anexar
algum arquivo como, por exemplo, algum log do sistema ou
um screenshot da tela, como forma a auxiliar o desenvolvedor
a identificar o bug.
Figura 12. Visualização dos Defeitos Reportados

Figura 11. Interface de Reporte de Defeito


Figura 13. Visualização dos Detalhes de um Defeito
Assim que é cadastrado o defeito, é mantido sob o status
New (novo). Este poderá ser alterado automaticamente para Considerações Finais
confirmado se alcançar o número mínimo de votos ou então O Bugzilla é uma ferramenta de apoio à tarefa de manu-
manualmente pela equipe de desenvolvimento responsável por tenção de software. Por ser em ambiente Web, permite que
analisar os reportes enviados pela ferramenta. O usuário pode qualquer usuário facilmente reporte um defeito encontrado

Edição 22 - Engenharia de Software Magazine 59


em qualquer tipo de aplicação. Apesar da instalação ser um funcionalidade de gerenciador de casos de teste no Bugzilla,
pouco complicada, a ferramenta é amplamente utilizada permitindo ao desenvolvedor cadastrar seus casos de teste
pelas empresas de desenvolvimento de software como pla- na ferramenta e associar estes a defeitos reportados por
taforma de registro de defeitos. usuários. Esse é em especial importante para empresas de
Existem uma série de ferramentas de bug tracking, como desenvolvimento que mantém práticas de teste de software
o Bugzilla. Destacamos: Eventum (http://dev.mysql.com/do- no seu processo de desenvolvimento.
wnloads/other/eventum/), FogBugz (http://www.fogcreek.com/
FogBUGZ/), Jira (http://www.atlassian.com/software/jira/), Man-
tis (http://www.mantisbt.org/), Trac (http://trac.edgewall.org/),
Zephyr (http://www.getzephyr.com/), entre outras. Mesmo com Links
tantas outras opções, o Bugzilla é a ferramenta mais famosa Site Oficial da Ferramenta Bugzilla
e amplamente usada, especialmente por está presente no http://www.bugzilla.org
sistema de rastreio de defeitos de gigantes como Mozilla,
Gnome, Nasa, Wikipedia, entre outros. Dê seu feedback sobre esta edição! Feedback
eu
A Ferramenta Bugzilla foi construída com suporte a adi-

s

ções, chamadas de Bugzilla Additions. Esses additions são A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
realmente adições na ferramenta que permitem que qual- Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
edição
quer desenvolvedor possa desenvolver uma nova funcio- Dê seu voto sobre este artigo, através do link:
nalidade a ser agregada. Um que merece especial destaque www.devmedia.com.br/esmag/feedback
é o Addition chamado Bugzilla Test Runner. Ele adiciona a

60 Engenharia de Software Magazine - Gerenciamento de Defeitos em Projetos de Software


62 Engenharia de Software Magazine - Gerenciamento de Defeitos em Projetos de Software

Você também pode gostar