Escolar Documentos
Profissional Documentos
Cultura Documentos
r/esti
Acesse nosso site e conheça todos os nossos programas: www.infnet.edu.br/esti
TURMAS
NO RIO DE
JANEIRO
www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800
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
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
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
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
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
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
[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
Dê
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
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
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.
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:
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
s
Dê
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.
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
20 Engenharia de Software Magazine - Fatores críticos de sucesso em programas de melhoria de processo de forma cooperada
Processo
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
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
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
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.
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.
s
Dê
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!
AMIGO www.devmedia.com.br/renovacao
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
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.
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
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,
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
Dê
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.
Arquitetura de Software
Atributos para decisões do projeto arquitetural
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.
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.
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
• 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
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
Dê
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
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
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.
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
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
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
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
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;
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
s
Dê
çõ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