Você está na página 1de 58

+ 81% de professores mestres e doutores + Opes de cursos tambm aos sbados + Bolsas, Crditos e Descontos

Especializao (Lato Sensu) nas reas de:


Cincias Biolgicas, Cincias da Sade, Cincias Jurdicas, Comunicao, Finanas Corporativas,
Gesto Empresarial e Estratgias Corporativas, Letras, Artes e Cincias da Educao e Tecnologia.

Mestrado em:
Arquitetura e Urbanismo, Cincias do Envelhecimento, Educao Fsica e Filosofia.

Doutorado em Educao Fsica


O nico oferecido por uma instituio privada no Estado de So Paulo.

SEU DIPLOMA GANHA,


O MERCADO GANHA E VOC
GANHA MAIS AINDA.

Butant: Av. Vital Brasil, 1000 - Ao lado da futura estao Butant e prxima da estao Pinheiros (CPTM).
Mooca: Rua Taquari, 546 - A poucos minutos da estao Bresser-Mooca. www.usjt.br - Tel.: 11 2799-1972

EDITORIAL

P
Ano 3 - 25 Edio - 2010

Impresso no Brasil

Corpo Editorial
Colaboradores
Rodrigo Oliveira Spnola
rodrigo@sqlmagazine.com.br
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Capa e Diagramao
Romulo Araujo - romulo@devmedia.com.br
Coordenao Geral
Daniella Costa - daniella@devmedia.com.br
Revisor e Supervisor
Thiago Vincenzo - thiago.v.ciancio@devmedia.com.br
Na Web
www.devmedia.com.br/esmag

Apoio

Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor.
Se voc tiver algum problema no recebimento do seu exemplar ou precisar de
algum esclarecimento sobre assinaturas, exemplares anteriores, endereo de
bancas de jornal, entre outros, entre em contato com:
Cristiany Queirz Atendimento ao Leitor
www.devmedia.com.br/mancad
(21) 2220-5338

Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
(21) 2220-5338

Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
Kaline Dolabella
publicidade@devmedia.com.br

Fale com o Editor!


muito importante para a equipe saber o que voc est achando da revista: que tipo de artigo
voc gostaria de ler, que artigo voc mais gostou e qual artigo voc menos gostou. Fique a
vontade para entrar em contato com os editores e dar a sua sugesto!
Se voc estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
entre em contato com os editores, informando o ttulo e mini-resumo do tema que voc
gostaria de publicar:
Rodrigo Oliveira Spnola - Colaborador
editor@sqlmagazine.com.br

ode-se definir Governana em TIC como o alinhamento estratgico de TIC com


o negcio de forma que se obtenha o mximo valor deste atravs do desenvolvimento e manuteno de controles efetivos de TIC orientados ao controle de
custos, gesto do retorno dos investimentos relacionados e gesto dos riscos associados
(WEILL e ROSS, 2006).
Pretendendo cumprir este objetivo, so muitos os mecanismos de relao entre os processos de negcio e os processos de TIC que tm sido gerados pela disciplina de Governana em TIC. O resultado final uma infinidade de padres e boas prticas, envolvendo: processos, indicadores, perfis, diretrizes, dentre outros, cuja aplicao geralmente exige muito
investimento, tempo e esforo, em funo do formalismo adotado por estes padres.
No artigo IT Governance: Reviewing 17 IT Governance Tools and Analysing the Case
of Novozymes A/S , Holm et al. apresentam uma sntese das intenes de melhoria da
relao entre a TIC e o negcio mediante a classificao de 17 padres e ferramentas de
melhores prticas existentes em termos de variveis, como: tipo de processo e organizao. O trabalho citado aborda a investigao de como a Governana em TIC adotada
no caso de uma companhia lder no mercado mundial de biotecnologia em enzimas e
micro-organismos industriais. Neste processo realizada a reviso de 17 ferramentas de
Governana em TIC.
Neste contexto, a Engenharia de Software Magazine destaca nesta edio um artigo
muito interessante sobre governana em tecnologia de informao. O objetivo do artigo
no discutir em detalhes os xitos ou melhorias que estas ferramentas tm alcanado
(em especial ITIL e COBIT) para os processos de suporte ao core business de nossas organizaes. O artigo objetiva apresentar uma reviso sistemtica a respeito de nove modelos de governana em TIC, procurando permitir ao leitor a criao de uma viso crtica
a respeito do corpo de conhecimento de governana em TIC ICTGBOK, suas principais
caractersticas, carncias e limitaes. Ao final, identifica o surgimento de um novo paradigma: Governana gil em TIC, que se prope a sanar as limitaes existentes.
Alm desta matria, esta edio traz mais seis artigos:
Natureza do Software e a Necessidade de Princpios e Processo
Engenharia de sistemas orientada ao conhecimento
Ferramentas para Gerncia de Projetos
Reportando de forma simples os resultados dos testes
Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage
Humanos, Formigas e o Trabalho em Equipe
Desejamos uma tima leitura!
Equipe Editorial Engenharia de Software Magazine

Rodrigo Oliveira Spnola


rodrigo@sqlmagazine.com.br
Doutorando em Engenharia de Sistemas e Computao (COPPE/UFRJ). Mestre em
Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Cincias da Computao
(UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), tendo ministrado cursos na rea de Qualidade de Produtos e Processos de Software, Requisitos e
Desenvolvimento Orientado a Objetos. Consultor para implementao do MPS.BR. Atua
como Gerente de Projeto e Analista de Requisitos em projetos de consultoria na COPPE/
UFRJ. Colaborador da Engenharia de Software Magazine.

Marco Antnio Pereira Arajo - Editor


(maraujo@devmedia.com.br)
Doutor e Mestre em Engenharia de Sistemas e Computao pela COPPE/UFRJ - Linha de Pesquisa em Engenharia de Software, Especialista em Mtodos Estatsticos
Computacionais e Bacharel em Matemtica com Habilitao em Informtica pela
UFJF, Professor e Coordenador do curso de Bacharelado em Sistemas de Informao
do Centro de Ensino Superior de Juiz de Fora, Professor do curso de Bacharelado em
Sistemas de Informao da Faculdade Metodista Granbery, Professor e Diretor do Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas da Fundao
Educacional D. Andr Arcoverde, Analista de Sistemas da Prefeitura de Juiz de Fora,
Colaborador da Engenharia de Software Magazine.

Eduardo Oliveira Spnola


(eduspinola@gmail.com)
Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine. bacharel em Cincias da Computao pela Universidade Salvador (UNIFACS)
onde atualmente cursa o mestrado em Sistemas e Computao na linha de Engenharia
de Software, sendo membro do GESA (Grupo de Engenharia de Software e Aplicaes).

Caro Leitor

Caro Leitor,

Para esta edio, temos um conjunto de 4 vdeo aulas. Estas vdeo aulas esto disponveis para download no Portal da Engenharia de Software Magazine e certamente traro uma significativa contribuio para seu aprendizado. A lista de aulas
publicadas pode ser vista abaixo:
Tipo: Validao,Verificao & Teste
Ttulo: Teste de Interface
Autor: Arilo Claudio Dias Neto
Mini-Resumo: Esta vdeo aula aborda a aplicao de testes de interface (ou teste
GUI), apresentando sua definio, desafios, estratgias, aplicabilidade e os elementos
que compem o teste de interface. Ao final, apresentado um exemplo de teste de
interface aplicado em uma aplicao do SO Windows.

Tipo: Validao,Verificao & Teste


Ttulo: Teste Baseado em Modelos - Definies e Conceitos - Parte 1
Autor: Arilo Claudio Dias Neto
Mini-Resumo: Esta vdeo aula aborda o tema de testes baseado em modelos,
apresentando o processo de teste baseado em modelos, tcnicas de teste baseado
em modelos, sua aplicabilidade em um projeto de software e a integrao entre teste
baseado em modelos e os diagramas UML.

Tipo: Validao,Verificao & Teste


Ttulo: Automao de Testes
Autor: Arilo Claudio Dias Neto
Mini-Resumo: Esta vdeo aula aborda o tema de automao dos testes, apresentando os diferentes tipos de estratgias de automao, decises a serem tomadas
para automatizar o processo de testes, a importncia da automao para o sucesso
dos testes e um exemplo de cenrio de testes automatizado.

Tipo: Validao,Verificao & Teste


Ttulo: Teste Baseado em Modelos - Exemplo de Tcnica:TDE - Parte 2
Autor: Arilo Claudio Dias Neto
Mini-Resumo: Esta vdeo-aula d continuidade aula anterior, apresentando um
exemplo de tcnica de teste baseado em modelos que utiliza diagramas UML para
viabilizar a gerao de casos de teste. Esta tcnica ser apresentada atravs de uma
aplicao de exemplo.

NDICE
Por trs do obvio
05 - Humanos, Formigas e o Trabalho em Equipe
Glnio Cabral

Engenharia
06 - Natureza do software e a necessidade de princpios e processo
Antonio Mendes da Silva Filho

14 - Engenharia de sistemas orientada ao conhecimento


Viviane Schneider e Ivan Correia Filagrana

Agilidade
21 - Da Gesto Governana em Tecnologia da Informao e Comunicao TIC
Alexandre Jos de Oliveira, Cleyverson Pereira Costa e Hermano Perrelli de Moura

Planejamento e Gerncia
32 - Ferramentas para Gerncia de Projetos
Marco Antnio Pereira Arajo , Patrcia Lima Quinto e Jurema Florinda Lembe de Veiga

Desenvolvimento
40 - Reportando de forma simples os resultados dos testes
Daniel Scaldaferri Lages

49 - Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage


Jenifer Vieira Toledo, Elessandro Rodrigues Marques, Marcelo Santos Daibert e Marco Antnio Pereira Arajo

Engenharia de Software Magazine

Pos trs do bvio

Administrador de Empresas, ps-graduado em Gesto de Pessoas


e msico.

desmotivao para o bicho homem, que um ser racional e


por isso tem necessidades insaciveis a cada estao. As formigas so sempre ativas, pois dentro de cada uma delas arde
a chama implacvel da auto-motivao gerada pela ditadura
do instinto animal e perpetuada pela me natureza.
Ao contrrio dos animais, ns, seres humanos, evolumos
ao longo da nossa histria atravs das tenses e dos conflitos.
Faz parte da nossa natureza nascer incompletos e evoluir
atravs das turbulncias. Se assim , chegamos a uma bvia
concluso: h uma grande diferena entre o trabalho em equipe realizado pelas formigas e o trabalho em equipe realizado
pelos seres humanos. No primeiro, a ausncia de tenses
fundamental para a sobrevivncia da espcie. No segundo,
a ausncia de conflitos o atestado de bito da organizao.
Nas organizaes humanas, os conflitos no devem deixar
de existir, mas devem ser administrados e canalizados para
a promoo do bem comum. A no ser que a sua organizao
seja um formigueiro.

D seu feedback sobre esta edio!


A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:

Feedback
eu

www.devmedia.com.br/esmag/feedback

Edio 25 - Engenharia de Software Magazine

sobre e
s

odos ns concordamos que o trabalho em equipe


fundamental para o desenvolvimento de qualquer
organizao. Atravs da unio de competncias e
habilidades, a diversidade direcionada para um objetivo
comum: o progresso do todo. O problema que para muitos
de ns, seres humanos, trabalhar em equipe um processo
complexo e penoso.
As formigas, no entanto, no agem dessa forma. Cada formiga tem um papel muito bem definido no seu formigueiro, e
atravs de um excepcional trabalho em conjunto elas realizam
atividades complexas como estocagem de alimentos, controle
de natalidade e expanso territorial. Observar o comportamento desses insetos faz o trabalho em equipe parecer a coisa
mais simples e previsvel do mundo. Como insetos irracionais
conseguem tamanha proeza?
Talvez uma possvel explicao seja o fato de que as formigas
no tm aspiraes individuais. Formigas so seres desprovidos de vaidades e sonhos, como qualquer ser irracional que
se preze. Por isso elas no sentem a menor necessidade de
serem reconhecidas por seu desempenho, nem de galgarem
andares hierrquicos no formigueiro e muito menos de se
realizarem como insetos. No h registros de paralisaes ou
de revolues operrias entre as formigas. J nas organizaes
humanas...
Talvez uma outra possvel explicao seja o fato de que esses
insetos no so vulnerveis aos ventos da desmotivao. Alis,

Humanos, Formigas e o
Trabalho em Equipe

D
s

gleniocabral@yahoo.com.br

edio
ta

Glnio Cabral

Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros

Natureza do Software e a Necessidade de


Princpios e Processo
De que se trata o artigo?
Discute a natureza do software e apresenta um
conjunto de princpios de engenharia empregados no desenvolvimento de sistemas de software, destacando a necessidade de um processo.

Para que serve?


Antonio Mendes da Silva Filho
antoniom.silvafilho@gmail.com

Professor e consultor em rea de tecnologia


da informao e comunicao com mais
de 20 anos de experincia profissional,
autor do livros Arquitetura de Software e
Programando com XML, ambos pela Editora Campus/Elsevier, tem mais de 30 artigos
publicados em eventos nacionais e internacionais, colunista para Cincia e Tecnologia pela Revista Espao Acadmico com
mais de 80 artigos publicados, tendo feitos
palestras em eventos nacionais e exterior.
Foi Professor Visitante da University of
Texas at Dallas e da University of Ottawa.
Formado em Engenharia Eltrica pela Universidade de Pernambuco, com Mestrado
em Engenharia Eltrica pela Universidade
Federal da Paraba (Campina Grande),
Mestrado em Engenharia da Computao
pela University of Waterloo e Doutor em
Cincia da Computao pela Univesidade
Federal de Pernambuco.

bserve a Figura 1 e identifique


o que h de comum nos vrios
produtos ilustrados.
Se voc respondeu software, ento
acertou. isso mesmo. Software est
praticamente em todas as coisas de nosso cotidiano, servindo s mais variadas
necessidades das pessoas. Entretanto,
voc j parou para pensar como o software construdo? O que necessrio
para obter um software?
Para construir ou desenvolver um
software, voc precisa entender sua
natureza, conhecer a aplicao na qual
ser usado, bem como compreender os
princpios e processo para guiar como e
quando as atividades sero realizadas,
alm de definir quem vai executlas. A leitura deste artigo lhe dar a

Engenharia de Software Magazine - Natureza do Software e a Necessidade de Princpios e Processo

Entender a natureza do software e conhecer


os princpios que fundamentam a engenharia
de software, enfatizando a importncia de um
processo.

Em que situao o tema til?


No desenvolvimento de sistemas de software, quando o engenheiro precisa conhecer
a natureza do produto a ser desenvolvido, e
como as atividades e princpios que norteiam
seu desenvolvimento so cruciais para a obteno do produto.

oportunidade de entender a natureza


do software e importncia do uso de
princpios e processo no desenvolvimento de software.
Voc j percebeu que software est
praticamente em todas as coisas de seu
cotidiano?

Engen haria de Soft ware

um aparelho de TV, um equipamento de som, um aparelho


celular ou um computador propriamente dito. No entanto, via
de regra, os equipamentos (hardware) sofrem desgaste e, como
resultado, comeam a apresentar defeitos decorrentes desse
desgaste (fsico) causado, por exemplo, por longo perodo de
uso, poeira, variaes na tenso da rede eltrica e umidade.
Todos esses fatores contribuem para o desgaste do hardware,
como mostrado na Figura 2.
Figura 1. Conjunto de produtos

Um exemplo disso a central telefnica que permite s


pessoas conversarem ao telefone. O controle da operao das
centrais telefnicas , hoje em dia, todo feito por software.
Voc j foi a alguma casa lotrica para efetuar um pagamento
de conta de gua ou energia? Ou j arriscou jogar na loteria?
Quando voc vai a uma casa lotrica, por quaisquer um dos
motivos acima, voc est usando o sistema que tem todo seu
controle feito por software e o mesmo acontece quando voc
vai ao banco. Perceba que quase todos os sistemas hoje em dia
tm seu controle operacional sendo feito por software. E, com
certeza, voc usurio de computador que possui diversos
tipos de software operando nele.
Observe que o software tem se tornado um companheiro e
sido uma ferramenta fundamental de nosso dia-a-dia. Dessa
forma, as sees subsequentes do artigo apresentam a natureza do software e princpios e processo de desenvolvimento
de software.

Natureza do software
H aproximadamente cinco dcadas atrs, software constitua uma pequena, seno nfima, parcela dos sistemas computacionais quando comparado ao hardware. Naquela poca,
os custos de desenvolvimento e manuteno de software eram
desprezveis. Hoje, porm, software responsvel por significativa poro dos sistemas computacionais. Encontramos
software nas mais diversas aplicaes. No uso domstico,
fazemos uso de processadores de texto e planilhas (como,
por exemplo, Word e Excel da Microsoft). Adicionalmente,
software tem sido um componente importante e muito utilizado em diversos sistemas. Pode-se exemplificar seu uso no
controle e superviso dos sistemas de gerao e distribuio
de energia, bem como em sistemas de telecomunicaes, onde
ele encarregado do controle e roteamento de milhares de
ligaes telefnicas.
Cabe destacar que, hoje em dia, empresas e pessoas tm
conseguido otimizar o tempo de realizao de suas atividades,
geralmente, fazendo uso de sistemas computacionais, isto ,
sistemas onde o computador e, mais especificamente, o software, uma pea essencial.
Software compreende um conjunto de instrues que, quando so executadas em um dispositivo, fornecem funcionalidades a seus usurios com desempenho desejado. Todavia,
o software tem uma caracterstica que o diferencia de outros
produtos, e especificamente do hardware. Hardware um
artefato fsico (geralmente tecnolgico) como, por exemplo,

Figura 2. Curva de falhas de hardware

E o software? Ele sofre desgaste?


A resposta no. Software no uma entidade fsica e, portanto, no software qualquer tipo de desgaste (fsico) como
ocorre com o hardware. Observe na Figura 3 que, depois que
os defeitos decorrentes do desenvolvimento so corrigidos,
no caso ideal, no haver mais falhas j que software no se
desgasta. Mas pode haver insero de novos defeitos devido
s modificaes no software.

Figura 3. Curva real e ideal de falhas de software

importante voc observar o comportamento da curva real


de falhas (em funo do tempo) de software quando comparada com a curva ideal de falhas de software. Por exemplo,
toda vez que uma nova funcionalidade desejada, torna-se
necessrio adicionar e/ou modificar as instrues j existentes no software e, por conta dessas mudanas, novos defeitos
podem ser introduzidos, aumentando o nmero de falhas
e, portanto, podendo causar a deteriorao na qualidade do
software. Ento, voc pode estar se perguntando: o que seria

Edio 25 - Engenharia de Software Magazine

necessrio fazer para evitar ou, pelo menos, minimizar esse


aumento do nmero de falhas?
Nesse momento, antes de responder, importante lembrar que
algo que o desenvolvimento de qualquer produto ou artefato requer saber quais os passos necessrios para alcanar o objetivo
de ter o produto pronto (desenvolvido). E, o que seria isso?
A resposta a esta questo engenharia e, especificamente,
neste caso, engenharia de software, tendo como premissa
assegurar a confiabilidade desejada do sistema. O leitor
pode consultar o artigo sobre confiabilidade de software no
quadro de links no final deste artigo. Contudo, observe que
o desenvolvimento de sistemas de software, similarmente a
outros sistemas (como na analogia com a construo de uma
casa), pode ser decomposto em trs fases genricas definio, desenvolvimento e manuteno conforme ilustrado na
Figura 4.

Esse guia, que define quais atividades devem ser realizadas,


determina a sequncia na qual as atividades so realizadas e
as relaes entre elas, estabelece critrios para a transio entre
tarefas, compreendendo o processo de desenvolvimento de
software. Em outras palavras, o processo guia o desenvolvimento desde sua concepo quando os clientes (ou usurios)
expressam quais funcionalidades (ou requisitos do sistema)
eles desejam at a entrega do produto final (software). Isto
ilustrado na Figura 5.

Figura 5. Papel do processo de desenvolvimento de software

Note que o processo parte da engenharia de software, cujo


objetivo principal fazer uso de princpios de engenharia a fim
de produzir, a baixo custo, software que opere corretamente e
com eficincia em equipamentos (como o computador), onde
o software instalado.
Figura 4. Fases genricas no desenvolvimento de software

A fase de definio engloba a identificao de informaes


que deveriam ser processadas, funes e desempenho desejados, tipo de interface a ser utilizada, tarefas que o sistema
deveria prover suporte, perfil de usurios do sistema, dentre
outras.
J a fase de desenvolvimento concentra-se no projeto de
estruturas de dados e arquitetura de software do sistema
(isto , como ele est organizado), converso do projeto para
alguma linguagem de programao (ou seja, implementao),
realizao de testes e avaliao.
Finalmente, a manuteno considera modificaes e/ou
correes necessrias no sistema a fim de que este atenda
aos requisitos do sistema. Perceba que o processo de desenvolvimento de um sistema de software tem duas grandes
atividades de interesse que envolve o desenvolvimento da
poro de software que implementa as funcionalidades do
sistema, e a atividade que a antecede e norteia o desenvolvimento, que o projeto de software. Essa ltima atividade
resultado do levantamento e anlise de requisitos que prov
informaes para decises de projeto.
De tudo o que foi discutido acima, voc poder perceber
que h um guia de desenvolvimento de software, o qual
encarregado de:
Definir a sequncia de aplicao de mtodos (em cada uma
das etapas de desenvolvimento);
Definir os produtos (documentos ou outros artefatos) a
serem entregues;
Estabelecer as datas de entrega (isto , os milestones) dos
produtos ou artefatos;
Assegura qualidade de desenvolvimento.

Engenharia de Software
Antigamente (isto , cerca de quatro dcadas atrs), o
desenvolvimento de software era realizado sem qualquer
planejamento, sem uso de tcnicas, e podemos at dizer que
era desenvolvido por tentativa e erro. Em outras palavras, no
havia qualquer disciplina de engenharia, faltavam mtodos
para o desenvolvimento e havia muitas questes que eram
feitas dcadas atrs para pequenos programas (software), que
ainda podem ser feitas hoje em dia para grandes sistemas computacionais (onde software parte essencial). Essas questes
levantadas no livro Why Software Cost so Much? (1975) de Tom
DeMarco ainda so atuais:
Por que demora tanto tempo para que os programas sejam
concludos?
Por que os custos so to elevados?
Por que no descobrimos todos os erros antes de entregarmos o software ao nosso cliente?
Por que temos dificuldades em medir o progresso enquanto
o software est sendo desenvolvido?
Responder a essas questes tem sido uma das metas da engenharia de software a qual tem uma definio clssica dada
por Fritz Bauer em 1969, onde ele a definiu como:
O estabelecimento e uso de slidos princpios de engenharia para
que se possa obter economicamente um software que seja confivel e
que funcione eficientemente em mquinas reais.
Neste momento, voc deve perceber que a engenharia de
software consiste de um conjunto de tcnicas que visam apoiar
as atividades de levantamento de requisitos, mas tambm a

Engenharia de Software Magazine - Natureza do Software e a Necessidade de Princpios e Processo

Engen haria de Soft ware

anlise e especificao dos requisitos do sistema de software a


ser desenvolvido. Essa documentao ser ento utilizada nas
etapas seguintes do desenvolvimento que engloba o projeto
de software, implementao ou codificao (isto , a escrita do
programa), testes e manuteno de software.
Vale, contudo, ressaltar que a execuo dessas atividades
ocorre de maneira disciplinada, ou seja, guiadas por um
processo (discutido adiante), alm de adotar prticas de gerenciamento de projetos que visam assegurar produtividade
e qualidade do software, bem como reduo de custos de
desenvolvimento. Alm disso, necessrio um processo que
serve de guia de desenvolvimento de software e:
Define a sequncia de aplicao dos mtodos;
Define os produtos (artefatos) a serem entregues;
Busca assegurar qualidade de desenvolvimento;
Ajuda a estabelecer marcos no cronograma (milestones) para
entrega de artefatos.
Perceba que o papel do processo integrar o uso de mtodos
e ferramentas coordenando as atividades de desenvolvimento
de software como planejado. Agora voc pode concluir que a
engenharia de software uma rea onde feita a aplicao
disciplinada e sistemtica (ou seja, que considera princpios de
engenharia) para desenvolvimento e manuteno de software.
Ento, o papel do engenheiro de software no se restringe a
apenas atividades de programao, mas tambm ele precisa
saber como conversar com o cliente (a pessoa ou empresa interessada no software a ser desenvolvido) com o objetivo de
levantar os requisitos de software que sero depois documentados na especificao de requisitos. E, a partir do momento
que ele estiver com a especificao em mos, ele poder iniciar
as atividades seguintes (projeto, implementao e testes).
E o porqu da engenharia de software ou pra que ela
serve?
A engenharia de software visa assegurar:
A qualidade do software (produto);
Entrega do software conforme cronograma;
Desenvolvimento do software conforme oramento.
Observe que o processo um elemento essencial, pois se ele
for adequadamente seguido, a qualidade do produto poder
ser assegurada. A qualidade do produto determinante para
o sucesso de um software. H vrios atributos da qualidade
que servem de indicativo para aceitao e satisfao do cliente
(usurio do software). Dentre elas, podemos destacar:
Corretude Um software correto se ele satisfaz os requisitos de funcionalidades descritos na especificao.
Confiabilidade Um software confivel se voc pode utilizar o software por um determinado perodo de tempo com
probabilidade mnima da ocorrncia de falhas.
Manutenibilidade (ou facilidade de manuteno) Considera-se que um software facilita a sua manuteno quando ele
desenvolvido (ou escrito) de modo que possa evoluir para

atender as necessidades de mudana de requisitos do cliente.


Trata-se de um atributo importante, j que a mudana das caractersticas de um software algo, praticamente, inevitvel.
Eficincia Um software considerado eficiente quando ele
no desperdia capacidade de memria e de processamento.
Isto mais facilmente entendido como tempo de processamento e de resposta de um software.
Usabilidade Um software prov usabilidade quando ele
fcil de usar e de aprender a usar. Se o usurio consegue
utilizar um software sem ajuda de outras pessoas, sem um
treinamento, ou seja, se o software intuitivo, o usurio conseguir utiliz-lo sem dificuldade. Em tal situao, diz-se que
a interface de usurio amigvel.
H outros atributos da qualidade como disponibilidade,
robustez, modularidade, extensibilidade, reusabilidade. O
intuito aqui no de apresentar todos, mas destacar aqueles
mais importantes na maioria dos sistemas de software. Adicionalmente, cabe ainda destacar que, geralmente, podemos
afirmar que se uma especificao de requisitos de software
est correta, ento ele confivel, embora o contrrio no
possa ser afirmado, pois um software ser confivel no implica que sua especificao seja correta, conforme mostrado
na Figura 6.

Figura 6. Atributos da qualidade de software

Princpios de Engenharia
Cabe destacar ainda que a Engenharia de Software se baseia
em princpios de engenharia que so aplicados ao desenvolvimento de software e, mais especificamente, anlise e
modelagem de sistemas. Estes princpios compreendem:
Abstrao
Modularidade
Generalizao
Extensibilidade
Separao de interesses
Antecipao de mudanas
Modelagem (como base ao projeto)
Observe que no momento em que voc precisa criar um modelo, o que precede a essa atividade entender o problema.
Nesse sentido, voc deve entender que uma das principais
caractersticas do ser humano, quando deparado com um
problema, buscar uma soluo baseada em alguma soluo
existente de problemas similares. Todavia, se nessa busca voc
descobre que as solues existentes no so suficientes para
o problema em mos, ento voc procura estender algumas
dessas solues a fim de solucionar um novo problema.

Edio 25 - Engenharia de Software Magazine

Adicionalmente, voc (engenheiro), e tambm ser humano,


tem feito uso da abstrao como forma de lidar com situaes
de complexidade. Ao explorar a abstrao, voc identifica
aspectos importantes do problema (ou fenmeno que est
sendo investigado) e ignora os detalhes (na etapa inicial de
levantamento e anlise de requisitos). Por exemplo, equaes
de circuitos em modelos de engenharia e plantas baixas em
projetos de casas oferecem a voc (projetista) modelos (semi-)
formais que lhe permite raciocinar sobre o problema em mos.
Uma planta baixa de uma casa lhe fornece a disposio dos
cmodos da casa como: quartos, sala de estar, sala de jantar,
cozinha, etc.
Outro princpio essencial e determinante no processo de desenvolvimento de software a modularidade. Voc, projetista,
precisa fazer uso da modularidade quando lidando com um
problema (ou sistema) grande, o qual precisa ser dividido em
partes menores de modo que permita voc resolver as partes
e depois o todo.
Dentro deste contexto, note que medida que sistemas crescem, tambm cresce sua complexidade e torna-se mais difcil
satisfazer a um nmero cada vez maior de requisitos, muitas
vezes conflitantes. Atualmente, o paradigma de orientao a
objetos tem se mostrado como o mais adequado, comparativamente aos demais, para ser empregado no desenvolvimento de
sistemas de software complexos e de grande porte.
importante observar que para resolver problemas ou
implementar sistemas pequenos, nenhum princpio organizacional (ou paradigma) necessrio. Entretanto, medida
que os sistemas se tornam maiores e com grande nmero de
funcionalidades, fica muito mais difcil tratar isso numa nica
lista de instrues. Da, a necessidade de prover suporte
modularidade. Um sistema que composto de mdulos (ou
componentes) denominado de modular.
A modularidade tambm oferece suporte separao de
interesses, ou seja, quando voc (projetista) est lidando com
um componente especfico, ento voc ignora detalhes de
outros componentes. De um modo geral, recomenda-se que os
componentes do sistema possuam baixo nvel de acoplamento,
como ilustrado na Figura 7.

Figura 7. Acoplamento entre componentes

Aqui, acoplamento deve ser entendido de duas formas: primeiro cada componente (isoladamente) deve possuir elevado
grau de acoplamento de modo a ser tratado como uma unidade. Por outro lado, cada componente deve ter um menor grau

10

de acoplamento (ou interao) com os outros componentes,


permitindo serem manipulados quase separadamente.
Esses princpios discutidos acima servem para guiar voc
durante o processo de desenvolvimento de um sistema. Perceba
que seu papel como engenheiro engloba compreender o problema que voc tem em mos, analis-lo e fazer a modelagem,
projeto, implementao e testes. Para tanto, voc precisa de um
processo para guiar o desenvolvimento.

Processo de Desenvolvimento
Um aspecto importante no desenvolvimento de um sistema de software o contnuo feedback durante o processo. A
importncia de ter um feedback (resposta e comentrios) do
cliente mais cedo no desenvolvimento implica na necessidade
de fazer um prottipo. Alm disso, a necessidade de melhor
planejar o desenvolvimento, fazendo um balanceamento entre
custos e benefcios. Isto requer uma avaliao preliminar se
vivel ou no desenvolver o software desejado pelo cliente.
Como consequncia, voc pode perceber que duas atividades
importantes so planejamento e anlise de riscos, que procuram exatamente responder a questo: vivel desenvolver
esse software?
Tudo isso visa minimizar custos e assegurar que o desenvolvimento ir ocorrer da forma como planejada e dentro dos
prazos propostos. Agora, voc poderia ainda questionar: Por
que tudo isso?
Se voc for analisar cuidadosamente, voc perceber que um
processo requer feedback do cliente, pois isto reduz as chances
de problemas como, por exemplo, do projeto precisar de alteraes medida que ele avana, alm de dar maior visibilidade
do sistema. Portanto, um processo de desenvolvimento de
software necessrio, porque ele:
Serve de guia para controlar as atividades de desenvolvimento do sistema;
Aloca tarefas para desenvolvedores especficos;
Especifica quais artefatos precisam ser desenvolvidos em
cada uma das etapas de desenvolvimento;
Oferece critrios para monitorar as atividades de um
projeto.
Para atender essas necessidades de modo mais adequado, um
processo como o RUP (Rational Unified Process), e customizaes
dele, tem sido empregado em projetos de software. O RUP
considerado como um framework ou arcabouo que serve para
gerar processos.
O RUP um framework porque ele configurvel, ou seja,
voc pode customizar ou especializar o processo para diversos
tipos de sistemas. Alm disso, o RUP, como processo, agrega os
mtodos empregados no desenvolvimento e tambm faz uso da
linguagem UML (Unified Modeling Language) para modelagem
do sistema a ser desenvolvido.
O RUP um processo que define bem o conjunto de atividades a serem executadas, alm de informar os responsveis
pela execuo delas. Adicionalmente, o processo explicita a
ordem de execuo das tarefas e se existe dependncias entre

Engenharia de Software Magazine - Natureza do Software e a Necessidade de Princpios e Processo

Engen haria de Soft ware

elas, informando quais os artefatos de entrada e


sada de cada tarefa. A Figura 8 mostra uma viso
geral do RUP.

Figura 8. Viso geral do RUP. (Disponvel no site http://


www.wthreex.com/rup/portugues/index.htm, acessado em
abril de 2010)

Observe a parte inferior da figura. Ela informa


que o RUP composto de quatro fases: concepo,
elaborao, construo e transio. No lado esquerdo da figura, olhando verticalmente de cima para
baixo, h um conjunto de disciplinas, como requisitos
e implementao, que engloba atividades relacionadas. importante destacar que essas disciplinas
compreendem as atividades do ciclo de software,
pois elas so necessrias ao desenvolvimento de
um software. Outras disciplinas foram adicionadas,
como gerenciamento de mudanas e gerenciamento de
projeto, as quais so essenciais no desenvolvimento
de um sistema de software.
Como ressaltado acima, cada uma das disciplinas envolve vrias atividades. Por exemplo, se
considerarmos a disciplina requisitos, ento nela o
desenvolvedor deve analisar o problema de um
cliente (ou seja, entender as funcionalidades que
o cliente deseja para o sistema e quais as pessoas
envolvidas) a fim de definir o escopo do sistema que
consiste definir qual o conjunto de funcionalidades
ir fazer parte do sistema. Observe que saber isso
muito importante, pois permitir voc trabalhar e
gerenciar o escopo do sistema.
O RUP determina como o sistema deve ser desenvolvido e, portanto, o desenvolvimento de sistema
de software seguindo o processo RUP :
Interativo e incremental;
Guiado por casos de uso (ou use cases);
Centrado na arquitetura de software.

seja, inicialmente, apenas as funcionalidades mais importantes so desenvolvidas e as demais so desenvolvidas em outras iteraes, incrementando
novas funcionalidades ao sistema. como se cada iterao fosse um miniprojeto no qual voc teria de levantar e analisar requisitos, fazer o projeto,
codificar e testar. Concluda parte do sistema, uma nova iterao (ou miniprojeto) seria feita at que todas as funcionalidades fossem implementadas.
Note tambm que o RUP guiado por casos de uso (ou use case).
Um caso de uso um modelo que define uma funcionalidade do sistema
sob a tica de um ator, que pode ser um usurio, subsistema de software
ou algum dispositivo de hardware (ou equipamento). Um ator, na grande maioria dos casos, ser um usurio (humano) que interage com uma
funcionalidade do sistema, descrita por um caso de uso.
Um caso de uso descreve o que um usurio deve fazer para utilizar uma
funcionalidade, e como o sistema responde. Um exemplo de caso de uso
sacar num sistema de caixa eletrnico de um banco. Para sacar, o usurio
precisa antes ter tido seu carto do banco autenticado e, no momento
que o sistema (caixa eletrnico) solicita que o usurio informe a quantia
que ele deseja sacar, o usurio ento digita o valor de saque e aguarda a
realizao da operao com sucesso (caso o usurio tem saldo suficiente)
ou no (se ele no possuir saldo).
Um conjunto de casos de uso faz parte da especificao de um sistema
de software e, para tanto, voc deve fazer uso de um diagrama de casos
de uso. Entretanto, a apresentao desse assunto est fora do escopo

Se voc olhar na parte superior da Figura 8, ento


pode observar que o RUP composto de iteraes.
Isto significa que todas as funcionalidades do sistema no precisam ser identificadas, especificadas,
implementadas e testadas de uma nica vez. O
desenvolvimento se d de modo incremental, ou

Edio 25 - Engenharia de Software Magazine

11

Voc estar entendendo e especificando as principais funcionalidades do software a ser desenvolvido;


Tambm, nessa fase, voc dever definir como o software deve
ser organizado (isto , como o cdigo deve ser estruturado);
Voc deve ainda fazer uma avaliao inicial dos riscos;
Outra preocupao sua (supondo voc como desenvolvedor)
planejar atividades (a serem realizadas) e estimar custo de
desenvolvimento.

Elaborao
Voc deve levantar, detalhar e especificar a maioria dos
casos de uso;
Tambm espera-se que voc possa implementar os casos de
uso mais essenciais;
Projetar a forma na qual o software ser estruturado (isto ,
a arquitetura do sistema), buscando valid-la;
Revisar o planejamento de atividades e estimativa dos recursos necessrios para completar o projeto.

Construo

12

Nesta fase, voc deve implantar o sistema no ambiente do


cliente (ou seja, o software sai do ambiente de laboratrio,
onde foi desenvolvido, e instalado no ambiente do cliente).
Isto tambm denominado de evoluo do produto da verso
beta para a verso final.
natural que possa haver alguns defeitos aps a entrega
do software, e quando os usurios relatam a ocorrncia de
defeitos, ento essas reclamaes de problemas e sugestes de
melhorias so classificadas para que defeitos sejam corrigidos
e melhorias possam ser implementadas.
Em alguns sistemas de software, nesta fase onde so realizados treinamentos e assistncia aos usurios.
importante observar que o RUP uma evoluo de propostas de modelos de desenvolvimento de software. Cabe tambm
destacar que, ao mesmo tempo em que o RUP procura tratar
questes pertinentes do desenvolvimento de software, ele pode
ser customizado ou configurado para atender a necessidades
especficas de um sistema de software.

Concluso
Este artigo trata de uma viso geral da engenharia de software, analisando a natureza do software e levantando a
necessidade de considerar princpios de engenharia e utilizar
um processo no desenvolvimento de software. O foco do artigo
recai em entender e explorar atributos essenciais da qualidade
como corretude e confiabilidade, em conjunto com os princpios de engenharia de software. Alm disso, verificou-se a
importncia do processo de desenvolvimento.
Links
Processo RUP
http://www.wthreex.com/rup/portugues/index.htm
Histria da Indstria de Software
www.softwarehistory.org
Software Engineering Body of Knowledge
http://www.computer.org/portal/web/swebok
Creating a Software Engineering Culture
http://www.processimpact.com/articles/culture.pdf
Processo de Desenvolvimento de Software
http://pt.wikipedia.org/wiki/Processo_de_desenvolvimento_de_software
The Nature of Software: Whats So Special About Software Engineering?
http://www.ibm.com/developerworks/rational/library/4700.html

D seu feedback sobre esta edio!


A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
www.devmedia.com.br/esmag/feedback

Engenharia de Software Magazine - Natureza do Software e a Necessidade de Princpios e Processo

Feedback
eu
sobre e
s

Esta a fase na qual o desenvolvimento (principalmente, a


implementao) do software feita.
Refinar o projeto da arquitetura, adicionando detalhes e
fazendo correes.
Nesta fase, voc deve tambm realizar testes de software,
verificando se ele funciona da forma como foi especificado e,
ento, a primeira verso (chamada de verso beta) gerada.

Transio

D
s

Concepo

Outra atividade nesta fase que voc deve fazer planejar a


implantao do sistema no ambiente do cliente (realizada na
fase de Transio).

edio
ta

deste artigo. Leitores interessados podero encontrar material


complementar sobre documento de requisitos na edio 10 e
sobre especificao de caso de uso nas edies 11 e 23. Outras
atividades de desenvolvimento como planejamento, anlise,
codificao e testes so baseadas e validadas com o modelo de
caso de uso do sistema.
Alm disso, o RUP centrado na arquitetura, o que significa
dizer que o conjunto de funcionalidades vai ditar a forma na
qual o sistema ser desenvolvido e como poder ter manuteno. Para entender isso, vamos fazer uma analogia com a
planta baixa de uma casa que nos diz como os cmodos esto
distribudos.
Por exemplo, voc tem sala, cozinha, banheiro e trs quartos.
Voc, olhando uma planta baixa, pode ver como eles esto distribudos e, na hora de construir, voc pode priorizar por construir
a cozinha, banheiro e um quarto e, s depois, construir os outros
2 quartos. Em outras palavras, a planta baixa orienta o que tem
de ser feito em termos de construo de uma casa, e a arquitetura
(de software) informa como ele deveria ser estruturado (ou organizado) e orienta como ele deveria ser desenvolvido.
Agora, como voc viu na Figura 8, o processo RUP composto
de quatro fases: concepo, elaborao, construo e transio.
Essas fases acomodam o conjunto de disciplinas discutidas
acima. Mas, qual o objetivo de cada uma dessas fases? Para
responder a essa questo, apresentada uma lista daquilo que
compreende cada uma delas.

Engen haria de Soft ware

Modstia parte, sua


melhor opo para
se destacar no mercado!
A Escola Superior da Tecnologia da
Informao oferece as melhores
opes em cursos, formaes,
graduaes e ps-graduaes para
profissionais de desenvolvimento
e programao.
So programas voltados para a
formao de profissionais de elite,
com aulas 100% prticas, corpo
docente atuante no mercado,
acesso mais atualizada biblioteca
de TI do Rio, laboratrios equipados
com tecnologia de ponta, salas de
estudo e exames.

PS- GRADUAO

Engenharia de Software:
Desenvolvimento Java
Engenharia de Software:
Desenvolvimento .NET
GRADUAO

Engenharia de Computao
Anlise e Desenv. de Sistemas
F ORMAES

Desenvolvedor Java
Desenv. Java: Sist. Distribudos
Gestor de TI
Desenvolvedor Web .NET 2008
MCITP Server Administrator
SQL Server 2008

r/esti
Acesse nosso site e conhea 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

EDUCAO SUPERIOR ORIENTADA AO MERCADO


Edio 25 - Engenharia de Software Magazine

13

Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros

Engenharia de sistemas orientada ao


conhecimento
Sistemas de Gesto de Contedo Organizacional - Enterprise Content
Manangement (ECM)
De que se trata o artigo?

Viviane Schneider
viviane.sch@gmail.com

Atua no ramo de gerncia de informaes de


projetos. Bacharel em Sistemas de Informao. Gestora de informaes de projetos.

Ivan Correia Filagrana


gc@ivanfilagrana.com.br

Atua h 17 anos com desenvolvimento de


Software, bacharel em Cincia da Computao, Especialista em Gerncia de Projetos,
Mestrando em Engenharia de Produo, Palestrante, Consultor, Gerente de TI.

14

nterprise Content Management


(ECM), em portugus, Gerenciador de Contedo Organizacional,
um novo conceito de tecnologia da
informao que surge com a promessa de suprir algumas necessidades
organizacionais que os sistemas de
gesto empresarial (Enterprise Resource
Planning ERP), sistemas de gesto de
relacionamento com o cliente (Constumer
Relationship Manangement CRM), sistemas de inteligncia de negcios (Business
Intelligence BI), entre outras solues de
software, no suprem.
Conforme Santos (2007), Enterprise
Content Management (ECM) uma tecnologia usada para capturar, gerenciar,
armazenar e disponibilizar contedo e
documentos relacionados com o processo organizacional. Um sistema ECM
integra o gerenciamento da informao

Engenharia de Software Magazine - Engenharia de sistemas orientada ao conhecimento

Este artigo aborda uma nova viso de desenvolvimento de software que considera o fator humano, seus
mecanismos de processamento e armazenamento de
informaes como ponto de partida para a construo de um sistema de informao ECM. Atravs dos
preceitos da gesto do conhecimento, sistemas sob o
conceito ECM realizam o gerenciamento de contedos
estruturados (documentos digitais), semiestruturados
(URL, processos) e no estruturados (conhecimento
humano) em uma organizao.

Para que serve?


Ferramentas de software sob o conceito ECM servem
para criar valor a uma organizao a partir de seus
contedos corporativos. Entretanto, para que a ferramenta obtenha sucesso, seu desenvolvimento deve ser
realizado concomitantemente com uma mudana de
paradigma administrativo que requer da organizao
a adoo de uma cultura de gesto do conhecimento.

Em que situao o tema til?


Um sistema ECM til nas corporaes que necessitam gerenciar seu contedo organizacional
(documentos eletrnicos, processos e capital intelectual) visando tomada de decises estratgicas
e operacionais comprovadamente bem sucedidas
em transaes anteriores.

Ges to de Conhecimento

estruturada, semiestruturada e no estruturada, como documentos, informaes em qualquer formato de sistemas legados,
textos, pginas WEB, digitalizados, PDF, grficos, vdeos,
udio, XML, aplicaes WAP, etc.
Neste contexto, ECM um nome genrico ou o conceito de
um grupo de ferramentas desenvolvidas para possibilitar o
acesso a mltiplos tipos de repositrios de contedo com a
finalidade de compartilhar conhecimento independente do
tempo e espao. A sua principal meta promover uma organizao lgica em tempo e sequncia dos processos operacionais
e estratgicos, bem como de todo o contedo oriundo destes,
que esto contidos em arquivos, planilhas, mdias, sites web,
sistemas, entre outros. O conceito de solues ECM proporciona uma nova viso na construo de sistemas de informao,
pois visa a rdua tarefa de gerenciar o conhecimento humano,
proveniente de processos de negcio e artefatos oriundos
destes processos, em uma entidade organizacional. Sob este
ponto de vista, os sistemas ECM vo ao encontro de uma nova
abordagem administrativa, que preza a inter-relao do indivduo com a organizao para gerar valor mesma.

Dados, Informao e Conhecimento


Dados, informao e conhecimento so elementos base que
formam a comunicao humana. Dados so fragmentos de
informao, Informao um conjunto de dados que possuem
um significado dentro de um determinado contexto, e conhecimento, por sua vez, a compreenso da melhor forma de
uso dos dados e informaes. Para que esses trs componentes
sejam utilizados de forma otimizada, dentro de um sistema
ECM, algumas consideraes so necessrias.
Em uma organizao, os dados so considerados registros
estruturados de transaes (Davenport, 1998). Dessa forma,
h uma necessidade de tratamento e validao dos mesmos,
tendo em vista que os dados devem ser organizados por meios
confiveis, alm de ter sua origem em fontes seguras, para que
a informao criada pelo seu agrupamento seja vlida.
A importncia dos dados muitas vezes supera a informao,
quando esta inconsistente. No gerenciamento do conhecimento
o dado fundamental para que se possa gerar mais conhecimento (Cruz, 2007). Os dados formam a base do conhecimento,
e por este motivo devem ter uma estrutura slida, que sustente
o mesmo. Quanto informao, para que a mesma fornea relevante otimizao dos processos gerenciais, deve-se ter como
prioridade sua coerncia, consolidao e distribuio, alm de
continuamente primar pela confiabilidade de sua formao.
Utilizar os dados e informaes requer conhecimento que
provm do uso inteligente dos processos organizacionais para
obter o resultado almejado. Uma informao no necessariamente produz valor para uma organizao, pois encontrada
em praticamente toda corporao sem que produza efeitos
positivos ao setor de origem. A otimizao de seu processamento e forma de armazenamento o que pode produzir
resultados positivos para uma organizao. Portanto, a ateno
no mtodo que processa as informaes o que produz os
melhores ganhos.

A distino de informao e dados sutil, pois um dado pode


ser uma informao quando possui um significado. Partindo
desta viso, qualquer dado pode se tornar uma informao,
desde que acrescente relevncia dentro de uma determinada
conjuntura e possa contribuir para a criao de um novo
conhecimento. Dentro de um sistema ECM a informao possui um ciclo de vida que parte da sua criao, passa por sua
organizao, armazenamento, distribuio e utilizao, at o
momento que ela perde seu valor, quando ento descartada,
finalizando desta forma o ciclo. O grande desafio das organizaes a elaborao de mtodos que retirem o mximo de
conhecimento que a informao possa oferecer.
No que se refere a este item, o conhecimento, h alguns
aspectos que devem ser analisados para desenvolver um
sistema ECM. No aspecto organizacional, a criao do conhecimento um processo complexo, que envolve um conjunto
de variveis tecnolgicas, estruturais e principalmente de
ordem scio-comportamental, com implicaes mltiplas
nas formas de funcionamento da corporao e nas posturas e
aes das pessoas (Holanda, 2009). Para se obter o melhor uso
do conhecimento dentro de um sistema ECM, necessrio
observar que o mesmo est intrinsecamente conectado ao
carter humano, sendo desta forma til a considerao dos
complexos mecanismos de construo que o formam, dentro
da mente humana, alm dos aspectos inerentes gesto do
conhecimento corporativo.

Gesto do Conhecimento
A gesto do conhecimento surge com o intuito de apresentar
uma soluo de gesto mais abrangente, que considera alm
de dados e informaes, os mecanismos humanos de compreenso destes elementos. Esta gesto pode possuir trs pilares,
denominados os trs Cs e que compreendem consultar,
compartilhar e colaborar. Os trs pilares atuam de forma transversal, exigindo a atuao em trs dimenses: ferramentas ou
mecanismos, cultura e capital humano (Filho, 2006). Esta viso
da gesto do conhecimento surge para suprir a necessidade de
transformao de dados e informao em conhecimento relevante para decises estratgicas na otimizao dos processos
organizacionais, sendo desta forma um estgio acima da gesto
da informao, esta que somente prev o gerenciamento de dados operacionais que ainda no agregam valor a determinada
situao ou organizao como um todo.
Para Takeuchi e Nonaka (2008), a gesto do conhecimento torna possvel que o conhecimento pessoal de um indivduo possa
ser convertido em conhecimento organizacional, que permanecer agindo de forma produtiva na empresa, independente
da presena do indivduo. A vivncia dos colaboradores com
os processos operacionais, legais e estratgicos dirios, juntamente com as informaes oriundas dos ambientes externos,
formam o conhecimento corporativo. Neste ponto a gesto do
conhecimento e seu alinhamento com a tecnologia de informao pode promover vantagem competitiva, mesmo atravs das
crescentes contradies, dilemas, inconsistncias e polaridades
abundantes numa organizao do mundo moderno.

Edio 25 - Engenharia de Software Magazine

15

A organizao deve manter, segundo os preceitos da gesto


do conhecimento, duas vises opostas e ao mesmo tempo uslas para encontrar o melhor caminho. Neste sentido a gesto
do conhecimento ocorre atravs do conflito, com o chamado
raciocnio dialtico. O ponto inicial deste raciocnio a tese de
um processo organizacional. Esta tese, que pode ser formulada
por um ou mais indivduos, negada com a apresentao de
uma anttese. Desta dialtica ocorre uma sntese, formulada
com base nos preceitos da tese e anttese. O resultado desta
sntese uma nova tese de um processo. Com o tempo poder
haver a necessidade de aperfeioamento do processo (surgido
da sntese), devido s presses internas e externas sofridas
pela organizao. Esta tese de processo pode ento se tornar
a anttese de um processo atualizado, o que promover um
novo movimento dialtico de modo espiralado, conforme
demonstrado na Figura 1.

Tese 7
Sntese 6
Anttese
5
Sntese 3

Tese 1

Tese 4
Anttese 2

Figura 1. Espiral Tese Anttese Sntese (Fonte: Adaptado de Takeuchi e


Nonaka, 2008)

Com isso se conclui que o conhecimento organizacional


pode ter sua origem nos indivduos que se contradizem, criam
dilemas, promovem inconsistncias e polaridades. Na gesto
do conhecimento a utilizao do espiral tese-anttese-sntese
busca converter o conhecimento subjetivo em um conhecimento consistente e coerente com as vrias perspectivas dos
indivduos referente a um processo, sempre com o intuito de
enriquecer seu mecanismo. Esta transformao do conhecimento tcito (conhecimento subjetivo) em conhecimento
explcito (conhecimento registrado formalmente) um dos
alicerces da gesto do conhecimento e uma das tcnicas de
criao do conhecimento corporativo.
O mtodo de aperfeioamento do conhecimento humano que
possui o intuito de otimizar a gesto organizacional pode ser
automatizado com o uso de ferramentas de software com conceito ECM. Um sistema ECM pode armazenar, editar e difundir
por toda organizao este conhecimento corporativo para
promover sua adaptabilidade aos novos desafios do mercado.
Em um sistema ECM, estes procedimentos so obtidos atravs
de mdulos que suportam o compartilhamento de informaes
e permitem sua edio de forma colaborativa.
O desenvolvimento de estratgias organizacionais que possibilitem a gerao de conhecimento espontneo algo essencial
na gesto do conhecimento, pois a troca de experincias pode
acarretar na descoberta de caminhos que promovam solues
para os percalos que as organizaes enfrentam no mundo

16

ps-moderno, sendo o papel de um sistema ECM o de tutor


deste conhecimento.
O ser humano, atravs do acmulo e compartilhamento de
conhecimento, foi e capaz de lidar cada vez melhor com os
percalos do seu meio, transformando sua prpria natureza,
criando novas formas de aumentar sua perspectiva de vida
atravs das descobertas cientficas e tecnolgicas. O conceito
de um sistema ECM busca justamente a mesma analogia do
sucesso humano, atravs da criao de procedimentos para
armazenagem, edio e compartilhamento de conhecimentos
que conduzam ao alcance dos objetivos organizacionais. A
gesto do conhecimento realizada atravs de um sistema ECM
pode colocar uma organizao um passo a frente de seus concorrentes, pois torna possvel o armazenamento e socializao
de experincias bem sucedidas, alm de seu constante aperfeioamento alinhado com as transformaes dos tempos.
Para que a gesto do conhecimento acontea efetivamente,
a troca de conhecimento deve ser estimulada pelo lder da
organizao atravs da criao de ambientes virtuais (sistema
ECM) e no virtuais (reunies, ou mesmo conversas informais),
criando assim um terreno frtil para germinao do conhecimento atravs da introduo de uma cultura de socializao
de ideias. Dessa forma, as organizaes tornaro produtivos
os conhecimentos e tero suporte para enfrentar o desafio de
criar mecanismos que permitam sua evoluo.

Engenharia de sistemas baseada no conhecimento


Para desenvolver ferramentas computacionais tendo como
base o conhecimento, novas vises e mtodos de engenharia
devem ser adotados com o intuito de favorecer seu conceito
de gesto do conhecimento. Para nortear o desenvolvimento
destes sistemas a modelagem pode partir do foco principal do
negcio, tendo em vista a metodologia de organizao humana
dos contedos de conhecimento que conduzem o indivduo ao
alcance de seus objetivos. Assim, os mecanismos de organizao do conhecimento inerentes aos indivduos da corporao
o que determinar a engenharia de produo do software.
Esta abordagem coloca a relao cognitiva do indivduo com
os processos e contedos organizacionais como ponto principal de pesquisa dos requisitos funcionais e no funcionais do
negcio, que modelaro um sistema ECM.
Neste contexto, sistemas sob o conceito ECM devem ser
considerados peritos no gerenciamento do contedo especfico
de um negcio. Peritos possuem mecanismos estratgicos de
ao muito mais eficazes que principiantes. Para Atkinson
(2002), peritos e principiantes resolvem problemas de maneira
qualitativamente diferente, pois o conhecimento de principiantes superficial e no possui planos de ao, enquanto o
conhecimento especializado possui um nmero muito maior
de representaes baseadas em princpios, planejamento antes
da ao, partindo do objetivo para as metas de alcance deste.
O Perito traa uma meta e depois a divide em submetas para
facilitar a identificao de cada ao necessria para o alcance do objetivo, sendo que cada ao planejada antes de ser
realizada. Este conceito de funcionamento do conhecimento

Engenharia de Software Magazine - Engenharia de sistemas orientada ao conhecimento

Ges to de Conhecimento

humano especializado permite a construo de sistemas ECM


que processam informaes complexas, porm apresentam
resultados simplificados, que acrescentam valor para aes
estratgicas e operacionais de uma organizao.
Segundo a autora: a analogia entre computadores e mentes
humanas continua sendo atraente porque estes dois tipos de
entidades so os sistemas de processamento de informaes
mais complexo que conhecemos. Alm disso, medida que
os cientistas computacionais continuam a projetar computadores para funcionar como pessoas, a analogia entre mente e
computador ir tornar-se ainda mais forte.
Com base nestas consideraes, um sistema ECM deve promover familiaridade com os processos internos da mente dos
usurios atravs de sua interface propcia e busca de contedo
compatvel com esta analogia. Porm, compreender os difceis
mecanismos que formam o conhecimento no tarefa trivial,
pois exige um estudo aprofundado que conduza a compreenso
dos processos de cognio que constituem a mente humana.
Apesar disso, este entendimento de suma importncia para
a criao de tecnologias de informao anlogas aos processos
de formao de conhecimento.
Para Davenport (1998), o conhecimento uma mistura de
experincia sucinta, valores, informao contextual e insight
experimentado, a qual proporciona uma estrutura para a
avaliao e incorporao de novas experincias e informaes. O conhecimento tem origem e aplicado na mente dos
conhecedores, pois toda experincia que forma o conhecimento
pressupe um experimentador que a vivencia. Sendo assim,
no indivduo que se encontra a metodologia adequada de
formao e recepo do conhecimento, pois atravs das pessoas e da sua interao com o ambiente organizacional que o
conhecimento corporativo produzido. Importante observar
que os valores e as crenas das pessoas tambm exercem forte
impacto sobre a formao do conhecimento humano.
A mente humana um sistema de rgos de computao,
com componentes especializados, que, segundo Pinker (1998),
foi projetado pela seleo natural para resolver os tipos de
problemas que nossos ancestrais enfrentavam. Em especial,
entender e superar em estratgia os objetos, animais, plantas
e outras pessoas. A inteligncia, que cria o conhecimento,
consiste na especificao de um objetivo, posterior avaliao da situao vigente, com o intuito de conhecer como ela
difere deste objetivo, para s ento por em prtica uma srie
de processos para reduzir a discrepncia entre o objetivo e a
situao presente, sendo que tudo deve ocorrer em sintonia
com as crenas e valores do indivduo.
Com isso possvel constatar uma pista para a revelao
do funcionamento da mente, quando se percebe que o conhecimento envolvido ao longo dos pesos de suas conexes de
pensamentos, smbolos e esteretipos, ligando a camada de
perguntas com a camada das respostas, ao invs de ser armazenado em um banco de dados que pode ser acessado por
diferentes processos de recuperao. Neste sentido o conhecimento produz valor se focado em um determinado objetivo,
pois o mesmo possui um modelo com estrutura inata, sendo

talhado para uma meta especfica. Desta forma, sistemas ECM


podem possuir algoritmos de busca de contedo que partam
de princpios de indexao de objetivos especficos, em vez de
indexao de dados sem direcionamento.
O conhecimento humano formou-se ao longo de sculos
de solues de problemas atravs de tentativas e erros, ou
pela ordem superior de raciocnio criado por gnios raros em
nossa cultura. As pessoas formam este conhecimento atravs
da imensa quantidade de treinamento social que recebem
ao juntar palavras e sentenas de forma a conduzir a soluo
adaptativa de obstculos ao objetivo (Pinker, 1998). Nesta
perspectiva os sistemas ECM podem ser desenvolvidos com
base em uma analogia com o sistema humano de conservao
e recuperao de conhecimento, que preservam seus contedos
de forma no aleatria. Um sistema ECM, em vez de se tornar
um repositrio de dados, construdo de forma que sua base
consiga identificar o local onde o contedo armazenado possa
ser editado, levando em considerao sua posio dentro dos
procedimentos descritos de forma algortmica estruturada
para a obteno de um objetivo. Este objetivo generalizado
poder ser desde um simples procedimento, at um objetivo
mais amplo da organizao. Assim, um sistema ECM obter
uma gama imensa de dados indexados por seus respectivos
objetivos, que formaro o conhecimento que visa diversos
outros objetivos, que por sua vez tencionam alcanar o objetivo
primordial de uma corporao, o sucesso da mesma.
Sob este ponto de vista, um modelo de sistemas de informao
ECM, baseado nas estruturas humanas de formao do conhecimento, composto por um elemento primordial que molda
e conduz os processos que impelem a ao, o objetivo (Hall,
2000). Neste contexto, o objetivo de um processo organizacional
ser o n indexador dos contedos corporativos (documentos
e aes) geridos por um sistema de software ECM.
Para que um sistema ECM possa suportar a imensa quantidade de informaes e transform-las em conhecimento
vlido para uma organizao, alguns aspectos da formao do
conhecimento humano devem receber o devido estudo e aprofundamento. Neste ponto o indivduo recebe importncia no
sentido de fornecer os aspectos que produziro a metodologia
para construo de um sistema de informao ECM.
O mecanismo de formao do conhecimento humano parte
do indivduo, que deseja solucionar determinado problema.
Para alcanar tal objetivo o sujeito simboliza o contexto da
meta de alcance e a situao presente, justamente para identificar a discrepncia entre ambas. Depois de assimilar essa
inconsistncia ele formula estratgias de ajustes que iro
nivelar as duas situaes. Aps o cumprimento desta ao,
todo esse mecanismo registrado atravs da memria. O
registro em memria fator essencial para preservao deste
conhecimento especfico, que ser novamente utilizado em
situaes semelhantes no futuro. Um indivduo pode formular
vrias estratgias para alcanar um mesmo objetivo, porm
ele escolher apenas a estratgia que melhor se enquadra nas
suas prioridades de crenas e valores. Supe-se ento que cada
indivduo possui uma estratgia eficaz, e vrios indivduos, no

Edio 25 - Engenharia de Software Magazine

17

caso de uma organizao, possuem vrias estratgias eficazes


para um mesmo objetivo. Para que a identificao da melhor
estratgia acontea, essencial haver, entre os membros da
organizao, a socializao destes conhecimentos.
Assim, para alcanar um objetivo os indivduos definem
uma meta principal, que compreende o caminho total a ser
percorrido at o seu alcance, e para que o caminho seja mais
fcil de ser cursado ele subdividido em pequenas partes
(submetas). Esta descrio est exemplificada na Figura 2, onde
um indivduo divide o caminho a ser percorrido pelo balo em
submetas, com o intuito de traar todos os pontos que dever
voar at alcanar seu objetivo. Ao lado da abstrao da vida real
exemplificada uma analogia computacional para um sistema
ECM especializado, baseado nos mecanismos humanos de
formao e preservao do conhecimento.

formao do conhecimento, podem ser editados at que os


colaboradores, que executam estes procedimentos, cheguem
a um consenso de aprovao de seu contedo, que, dentro de
um sistema ECM se tornar um conhecimento explcito (ver
espiral tese-anttese-sntese na Figura 1). A Figura 3 representa
a entidade ETAPA visualizada na Figura 2 na abstrao do
sistema ECM. Esta entidade a abstrao que efetivamente
armazena o contedo do negcio, o descreve, preserva e permite a edio do conhecimento a ele relacionado.
Importante salientar que cada etapa deve comportar somente
um anexo de contedo explcito (documentos, mdias, planilhas, imagens, etc.) para facilitar a descrio dos processos
do negcio a ele relacionado, alm de permitir que o sistema
funcione sob um conceito que concatene os preceitos de sistemas GED (Gerenciador Eletrnico de Documentos) e Workflow
(Sistema de Gerenciamento de Processo) aliado gesto do
conhecimento (Cruz, 2007).
Cada etapa referencia uma ao que deve ser realizada
pela pessoa responsvel (ver campo responsvel na Figura 3)
para que o objetivo do negcio especfico seja alcanado. O
desenvolvimento de softwares que gerenciam conhecimento
busca a concretizao de um formato sistmico e coeso com a
realidade do negcio, tendo em vista os processos e fontes de
onde surge o conhecimento.

Modelagem de software sob o conceito ECM

Figura 2. Modelo abstrao vida real & abstrao sistema ECM


(Fonte: Modelo dos autores inspirado nas teorias de Atkinson (2002),
Pinker (1988) e Hall (2000))

A implementao de sistemas ECM deve seguir os preceitos


bsicos de gesto do conhecimento, e no caso de sistemas ECM
especializados, alguns conceitos caractersticos da especializao do conhecimento humano. O conhecimento tcito, que possui papel de destaque em um sistema ECM, deve ser registrado
de forma que possa ser editado at se tornar um consenso entre
os operantes do processo. Para tanto, necessria a existncia
de campos tipo Texto que permitam a edio destes contedos,
conforme demonstrado no campo conhecimento tcito, apresentado na Figura 3, que se refere tela de ETAPA no sistema
ECM. Esses campos so locais onde os usurios que realizam
determinadas aes possam indicar suas percepes acerca
do sucesso de um procedimento, e estas percepes possam
ser atualizadas sempre que necessrio, favorecendo assim a
preservao e aperfeioamento do conhecimento tcito que
se transforma, dentro de um sistema ECM, em conhecimento
explcito. Estes campos, anlogos aos processos humanos de

18

A escolha da UML para modelar um sistema ECM especialista pode ser a mais adequada, pois conforme Booch (2005),
modelos explcitos elaborados com uso de UML facilitam a
comunicao e a compreenso para o desenvolvedor. A UML
uma linguagem para especificao de software que possui
um vocabulrio escrito atravs de smbolos e regras para sua
combinao, totalmente focada na comunicao de uma representao conceitual e fsica de um software complexo. Desta
forma, sistemas de informao implementados com base nos
conceitos ECM podem fazer uso de mtodos e tecnologias que
promovam a construo de modelos precisos, desprovidos de
ambiguidades e que sejam completos.
Para Booch (2005), a utilizao das cinco vises interconectadas atravs da viso de caso de uso vlida para compreenso
do desenvolvimento de um sistema. As cinco vises correspondem a: viso de lgica, viso de implementao, viso de
interao, viso de implantao, onde todas as vises esto
integradas pela viso de caso de uso. Cada viso constitui uma
projeo na organizao da estrutura do sistema, conforme
apresentado na Figura 4.
Na Figura 4 possvel observar que cada viso produz diagramas que so a captura da abstrao de alto nvel do sistema.
Neste contexto so utilizados os diagramas de objetos, onde
demonstrado um conjunto de objetos com seus respectivos relacionamentos; diagramas de classes, que mostra um conjunto
de classes, interfaces e suas respectivas interaes; diagrama de
pacotes, que demonstra de forma estrutural a organizao do
modelo em pacotes; e diagrama de componentes, que apresenta
de maneira espacial as partes internas interconectadas. Vale

Engenharia de Software Magazine - Engenharia de sistemas orientada ao conhecimento

Ges to de Conhecimento

Figura 3. Tela de etapa de um sistema ECM especializado (Fonte: Prottipo Sistema ECM Projeto)

ressaltar que quando um componente instanciado as cpias


de suas partes internas tambm so.
Outros diagramas que podem favorecer o desenvolvimento de
sistemas baseados nos conceitos ECM so os diagramas de caso
de uso, que demonstram um conjunto de casos de uso e seus
respectivos atores; diagrama de atividades, que constitui um
digrama comportamental que mostra um processo com nfase
no fluxo de uma atividade para outra; e diagrama de implantao, cujo objetivo demonstrar as relaes entre conjuntos de
ns, artefatos, classes manifestadas e componentes. As vises de
desenvolvimento, demonstradas na Figura 4, permitem que se
observe um sistema ECM a partir de perspectivas operacionais e
estratgicas. Estas vises de desenvolvimento tambm permitem
que engenheiros, analistas e usurios finais compreendam a integrao dos diversos mdulos que formam um sistema ECM.

Conforme Bezerra (2007) e Teorey (2007), a UML 2.0 proporciona a utilizao das melhores prticas de modelagem
de sistemas, fundamentadas em estudos realizados por especialistas que criaram uma linguagem de modelagem que
pudesse ser usada por humanos e mquinas, alm de que o
desenvolvimento de um software, utilizando o paradigma de
orientao a objetos, permite a visualizao do sistema como
um conjunto de atores que se relacionam, chamados objetos.
Essa visualizao vlida por permitir abstraes de modelos
de funcionalidades de negcios, bem como funcionalidades
de sistemas, condizentes com a realidade percebida por seres
humanos no mundo real. Neste paradigma, os objetos realizam
tarefas especficas interagindo entre si, sendo que cada objeto
possui caractersticas prprias (atributos) e capacidades de
realizar determinadas tarefas (mtodos).
Para Silva (2007), o processo de desenvolvimento de um software
um conjunto de solues adotadas por um grupo para criar uma
soluo de automao, sendo que o autor divide o ciclo de vida do
sistema em anlise, projeto, implementao e testes, onde todo o
processo norteado pelo paradigma de orientao a objetos.
Baseado nestes conceitos, o desenvolvimento de um sistema
ECM pode seguir os passos descritos na Tabela 1.
Etapas de
Desenvolvimento
Anlise

Diagramas

Viso de Caso de Uso

Diagrama de Caso de Uso

Implementao

Viso de Lgica, Viso de


Processo
Viso de Implementao

Diagramas de Objetos, Classes e


Atividades
Diagramas de Componentes e Pacotes

Finalizaes e Testes

Viso de Implantao

Diagramas de Interaes

Projeto

Figura 4. Modelagem da arquitetura de um sistema ECM


(Fonte: Adaptado de Booch (2005))

Vises do Projeto

Tabela 1. Etapas de desenvolvimento de ferramentas ECM


(Fonte: Elaborado pelos autores, com base nas interpretaes da UML 2.0
de Bezerra (2007), Silva (2007), e Teorey (2007))

Edio 25 - Engenharia de Software Magazine

19

Concluses

20

Palestra O Papel da Tecnologia da Informao na Gesto do Conhecimento escrito


por Ivan Correia Filagrana
http://gc.ivanfilagrana.com.br/wp-content/uploads/2009/11/Palestra-Sinergia-Gestao-doConhecimento.pdf
Referncias
ATKINSON, Rita L; ATKINSON, Richard C.; SMITH, Edward E.; BEM, Dary J.; NOLEN-HOEKSEMA,
Susan e SMITH, Carolyn D. Introduo psicologia de Hilgard. Traduo de Daniel Bueno. 13ed.
Porto Alegre: Artmed, 2002.
BEZERRA, Eduardo.Princpios de anlise e projeto de sistemas com UML.Rio de Janeiro: Elsevier, 2007.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar; Traduo de Fbio Freitas da Silva e Cristina
de Amorim Machado. UML: guia do usurio. Rio de Janeiro: Elsevier, 2005.
CRUZ, Tadel. Gerncia do Conhecimento. 2.ed. Rio de Janeiro: E-papers, 2007.
DAVENPORT, Thomas H.; PRUSAK, Laurence. Conhecimento empresarial: como as organizaes
gerenciam o seu capital intelectual. Traduo Lenke Peres. Rio de Janeiro: Campus, 1998
FILHO, Antnio Mendes Da Silva. Os Trs Pilares da Gesto do Conhecimento. (Artigo Revista
Espao Acadmico, n 58, Maro de 2006 ISSN 1519.6186). Consulta em 08/02/2010 no
site:<http://www.espacoacademico.com.br/058/58silvafilho.htm>.
HALL, Calvin S.; LINDZEY, Gardner; CAMPBELL, John B. Teorias da personalidade. 4 ed. Porto
Alegre: Artmed, 2000.
HOLANDA, Lucyanno Moreira Cardoso; FRANCISCO, Antonio Carlos de; KOVALESKI, Joo Luiz.
A percepo dos alunos do mestrado em engenharia de produo sobre a existncia de
ambientes de criao do conhecimento. Ci. Inf., Braslia, v. 38, n. 2, p. 96-109, maio/ago. 2009.
(Artigo cientfico) Consulta em 10/02/2010 no site: <http://revista.ibict.br/index.php/ciinf/
article/viewArticle/1087>
PINKER, Steven. Como a mente funciona. Traduo Laura Teixeira Motta. So Paulo: Companhia
da Letras, 1998.
SILVA, Ricardo Pereira. UML: Modelagem Orientada a Objetos. Florianpolis: Visual Books, 2007.
TAKEUCHI, Hirotaka; NONAKA, Ikujiro; traduo Ana Thorell. Gesto do Conhecimento. Porto
Alegre: Bookman, 2008.
TEOREY, Toby J; LIGHTSTONE, Sam; NADEAU, Tom. Projeto e modelagem de banco de dados.
Traduo de Daniel Vieira. Rio de Janeiro: Elsevier, 2007.

D seu feedback sobre esta edio!


A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
www.devmedia.com.br/esmag/feedback

Engenharia de Software Magazine - Engenharia de sistemas orientada ao conhecimento

Feedback
eu
sobre e
s

O aumento exponencial de informaes a disposio de todos


aconteceu repentinamente, expondo dessa forma o ambiente
corporativo a falhas e a inabilidade de lidar com tal fato. Os
formatos de gesto organizacional que norteavam a construo de sistemas de informao j no so mais suficientes
para garantir o efetivo gerenciamento de processos de uma
organizao. As novas abordagens de gesto, como a gesto
do conhecimento, podem ser um caminho que conduza as
organizaes ao efetivo gerenciamento do aparato de contedo
corporativo.

Links

D
s

Ao todo so implementados sete diagramas, sendo eles: diagramas de caso de uso, diagramas de objetos, diagramas de
classes, diagramas de atividades, diagramas de componentes,
diagramas de pacotes e diagramas de interaes.

Neste contexto, a implementao de solues de software ECM


baseado no conhecimento humano pretende potencializar a
aquisio, o armazenamento e a disseminao do conhecimento
dentro das organizaes, o que promover o alinhamento da
tecnologia de informao com os preceitos da gesto do conhecimento. Esta nova abordagem de engenharia de sistemas
poder ser uma alternativa s metodologias de engenharia
vigentes, pois busca colocar uma organizao em sintonia com
a realidade vivenciada pelo mundo, que sofre um processo veloz
de profunda transformao em todos os campos.

edio
ta

Segue abaixo o detalhamento de cada etapa de desenvolvimento de um sistema ECM, conforme descrito na Tabela 1:
Anlise: nessa etapa so descritos os requisitos do negcio
considerando as necessidades do usurio e compreenso dos
desenvolvedores do software ECM. Para auxiliar na visualizao das funcionalidades do sistema ECM, modelos de caso
de uso podem ser utilizados para demonstraes de funes
como cadastros e busca de informaes. Em um sistema ECM
estes modelos tambm podem demonstrar abstraes que permitam a visualizao do compartilhamento de informaes em
grupo e envio e recebimento de aes previamente moldadas
pelo conhecimento de processos anteriores. Modelos de casos
de uso so informaes essenciais para atividades de anlise,
design e testes em um projeto de software e, no caso do desenvolvimento de sistemas ECM, podem tambm possibilitar
uma reorganizao dos processos do negcio. A implantao
de uma cultura baseada nos preceitos da gesto do conhecimento pode acontecer justamente nesta primeira etapa, onde
os processos do negcio so reformulados respectivamente
com o planejamento de construo do sistema ECM;
Projeto: essa etapa constitui a concepo dos diagramas
de classe, na viso de lgica, e os diagramas de atividades
numa viso de processo. Ambas as vises so utilizadas para
desenhar o sistema ainda independente da linguagem de
implementao. Importante observar que o sucesso de um
projeto de software ECM depende concomitantemente da
correta anlise dos requisitos do negcio e de um estudo de
formao do conhecimento humano, sob a perspectiva de uma
determinada organizao;
Implementao: essa etapa ocorre aps os modelos do projeto
estarem suficientemente refinados. A representao das abstraes desenhada utilizando-se diagramas de componentes
e pacotes, atravs da viso de implementao, que considera a
linguagem de programao orientada a objetos;
Finalizaes e Testes: nessa etapa so descritos os diagramas
de interaes, e sua arquitetura definida dentro de uma viso de implantao. Os testes so realizados e o sistema pode
finalmente ser implantado.

Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.

Da Gesto Governana em Tecnologia da


Informao e Comunicao TIC
Uma Viso Crtica
Alexandre Jos de Oliveira
ajhol@cin.ufpe.br
alexluna@mangve.org

Doutorando em Cincia da Computao pelo CInUFPE em Governana em TIC (em andamento).


Mestre em Cincia da Computao pelo CIn-UFPE
em Gerenciamento de Projetos (2009). MBA em
Gesto Estratgica de TIC, FACIPE (2003). Engenheiro Qumico pela UFPE (2001). Analista Consultor da ATI-PE, Gestor de Infraestrutura de TIC da
Secretaria Estadual de Educao e Pesquisador do
NUTES-HC-UFPE e GP2-CIn-UFPE.

Cleyverson Pereira Costa


cpc@cin.ufpe.br

Mestre em Cincia da Computao pelo CIn-UFPE


(2009). Especialista em Engenharia de Software
com nfase em Teste de Software pelo CIn-UFPE
(2007). Graduado em Cincia da Computao
(2005). Pesquisador do GP2-CIn-UFPE. Possui experincia na rea de testes, tendo atuado como Engenheiro de Testes pelo Motorola Brazil Test Center.

Hermano Perrelli de Moura


hermano@cin.ufpe.br

Possui graduao em Engenharia Eletrnica pela Universidade Federal de Pernambuco (1982), Mestrado
em Informtica pela Universidade Federal de Pernambuco (1989) e PhD in Computing Science pela University of Glasgow (1993). certificado PMP (2003) pelo
Project Management Institute. Atualmente Professor Adjunto e Vice-Diretor do Centro de Informtica da
Universidade Federal de Pernambuco.

De que se trata o artigo?


Este artigo tem por objetivo apresentar uma reviso sistemtica a respeito de nove modelos de
governana em TIC, procurando permitir ao leitor
a criao de uma viso crtica a respeito do corpo
de conhecimento de governana em TIC ICTGBOK, suas principais caractersticas, carncias e limitaes. Ao final, identifica o surgimento de um
novo paradigma: Governana gil em TIC, que se
prope a sanar as limitaes existentes.

Para que serve?


A Governana em TIC est se tornando o meio atravs do qual a TIC est assumindo o seu papel estratgico nas organizaes, atravs do alinhamento
das iniciativas de TIC e dos objetivos estratgicos
do negcio das organizaes. Outro aspecto que
torna o tema relevante o fato de que empresas

om o crescimento populacional,
a globalizao e o desenvolvimento do capitalismo no sculo
XX, surgem novas necessidades para o
ser humano. A quantidade de dados e informaes para serem armazenas e computadas atinge um volume incalculvel.

que desejam ter suas aes negociadas na Bolsa


de Valores precisam adotar Governana em TIC,
de acordo com a SOX, o que transforma o assunto
num tema essencial aos negcios. Para quem est
envolvido com aspectos de gesto, ou desejando
faz-lo, desenvolver uma viso crtica sobre o tema
e adquirir conhecimento a respeito das alternativas
disponveis essencial.

Em que situao o tema til?


Este tema til s organizaes que precisam
garantir a continuidade dos processos de negcio, reduzir os custos de indisponibilidade,
assegurar o retorno dos investimentos em TIC,
aumentando assim a competitividade organizacional. Neste contexto, a Governana em
TIC est intimamente ligada ao alcance destes
resultados.

A informtica surge, neste contexto, para


superar a necessidade do ser humano de
registrar e manipular dados em grandes
quantidades com preciso e rapidez
(NORTON, 1997).
Apesar de bastante presente atualmente, a definio de informtica no to

Edio 25 - Engenharia de Software Magazine

21

simples, pois envolve conceitos abstratos. O termo informtica


foi criado em 1957, pelo cientista Karl Steinbuch, em um artigo
que trata do processamento automtico da informao (STEINBUCH, 1957). A partir da o termo foi traduzido para o francs,
espanhol e portugus, sendo mais usado em idiomas latinos. A
informtica refere-se ao conjunto das Cincias da Computao
e da Informao que, por sua vez, dedicam-se ao estudo da
informao desde a sua gnese at o processo de transformao
de dados em informao, e desta, em conhecimento.
O termo informtica comeou a ser amplamente difundido
a partir de 1962, na Frana, e sua conotao mais conhecida
a divulgao da contrao das palavras INFORmation e autoMATIQUE (INFORMAO AUTOMTICA). O objetivo inicial
dessa cincia auxiliar o ser humano nos trabalhos rotineiros
e repetitivos, em geral clculos e gerenciamento. Atualmente,
o termo informtica comumente utilizado para se referir
manipulao e gnese da informao por meio de computadores, que so os responsveis diretos pelo processamento dos
dados (ALCALDE, 1991).

Evoluo da Informtica TIC


Na dcada de 1960, conhecida como a era do Processamento
de Dados, os computadores comearam a se tornar importantes
para grandes e mdias empresas, mas se apresentavam limitados e tinham sua aplicao restrita em funo da incompatibilidade entre si. Os avanos da informtica eram impulsionados
pelo hardware com avanos de reduo de custo e aumento
na velocidade de processamento, mas as aplicaes (softwares)
eram limitadas, seu desenvolvimento restrito e seu gerenciamento extremamente centralizado nos chamados Centros de
Processamento de Dados CPD (FOINA, 2001).
Em meados da dcada de 1970 as linhas telefnicas de voz
passaram a permitir o acesso a terminais remotos de computadores e as telecomunicaes se tornam uma base tecnolgica, levando diversas empresas a automatizao de suas
operaes. Nesta poca, conhecida como a era dos Sistemas
de Informaes, as transformaes tecnolgicas comearam
a abrir novas alternativas para a transformao de dados em
informaes e na melhoria dos sistemas de acordo com as
necessidades das organizaes, mas ainda num enfoque de
grande centralizao. Surgem ento os pacotes de software
que combinados flexibilidade do uso de terminais, permite
ao computador processar diversas tarefas simultaneamente.
De acordo com Ken (KENN, 1996), a maior evoluo tcnica
deste perodo foi a passagem do processamento de transaes
para o gerenciamento de banco de dados. Surgem, ento, os
Sistemas Gerenciadores de Bancos de Dados SGBDs.
Na dcada seguinte, 1980, ocorreram mudanas tecnolgicas
e a popularizao dos microcomputadores (PCs ou Personal
Computers), que iniciaram um processo de descentralizao
e maior difuso da informtica nas organizaes de qualquer
tamanho. Assim, o termo Tecnologia da Informao TI
passou a ser mais frequentemente empregado, ampliando o
contexto do que era conhecido como informtica. Este perodo
ficou conhecido como era da Inovao e Vantagem Competitiva.

22

Os softwares para microcomputadores se popularizaram e o


seu custo de produo e distribuio reduziu-se drasticamente. As telecomunicaes e os microcomputadores ajudaram a
difundir o uso da TI nas organizaes, criando programas de
conscientizao gerencial para os executivos e os centros de
suporte ao usurio, conhecidos como Help Desk, para apoiar
e disseminar o uso da TI nas organizaes como diferencial
e vantagem competitiva. Mesmo com todos os avanos como
as redes locais (Local Area Network LAN), ainda persistia o
problema da incompatibilidade entre os computadores, o que
dificultava a integrao dos sistemas e uma maior e flexibilidade ao negcio das organizaes (FOINA, 2001).
Na era da Integrao e Reestruturao do Negcio, iniciada
em meados de 1990, sistemas abertos, integrao e modelos
se tornam itens essenciais nas unidades de TI. A integrao
tecnolgica flexibilizou e simplificou o intercmbio e o acesso
s informaes otimizando o funcionamento das organizaes.
A TI passa a ser reconhecida como fator crtico de potencializao do negcio das organizaes, principalmente atravs
das telecomunicaes, que possibilita a eliminao de barreiras
fsicas e temporais, nas atividades de servios e colaborao.
Segundo Ken (KEN, 1996), de modo sbito estas mudanas
se aceleraram em quase todas as reas de negcio e da tecnologia. A convergncia das tecnologias, as transformaes
e a utilizao das ferramentas da TI se tornam globais e as
distines entre computador e comunicao desaparecem.
Desta forma, o termo TI tambm se transforma assumindo
sua denominao mais recente Tecnologias da Informao e
Comunicao TIC.
O termo Tecnologias da Informao e Comunicao TIC
serve para designar o conjunto de recursos tecnolgicos e computacionais para gerao e uso da informao. A TIC tambm
comumente utilizada para designar o conjunto de recursos
dedicados ao armazenamento, processamento e comunicao
da informao, por meio das funes de hardware, software
e telecomunicaes, assim como o modo como esses recursos
esto organizados. A TIC no se restringe a equipamentos
(hardware), programas (software) e comunicao de dados.
Existem tecnologias relativas: ao planejamento de informtica,
ao desenvolvimento de sistemas, ao suporte ao software, aos
processos de produo e operao, ao suporte de hardware,
todas essenciais no apoio aos processos de negcio, pesquisa
cientfica e de ensino e aprendizagem (NORTON, 1997).
A Figura 1 ilustra bem a linha do tempo dos acontecimentos
descritos neste artigo.
Sob uma tica mais ampla, a sigla TIC abrange todas as atividades desenvolvidas na sociedade com o apoio dos recursos da
informtica. a difuso social da informao em larga escala
de transmisso, a partir destes sistemas tecnolgicos inteligentes. Seu acesso pode ser de domnio pblico ou privado,
na prestao de servios das mais variadas formas. Pequenas
e grandes empresas dependem dela para alcanar maior produtividade e competitividade (FOINA, 2001).
Neste trabalho, adota-se o conceito mais amplo de Tecnologias
da Informao e Comunicao (TIC), incluindo os sistemas de

Engenharia de Software Magazine - Da Gesto Governana em Tecnologia da Informao e Comunicao TIC

Ges to de TI e Agilidade

informao, o uso de hardware e software, telecomunicaes,


automao e recursos multimdia, utilizados pelas organizaes para fornecer dados, informaes e conhecimento, para
meno a todas as tecnologias relacionadas com o contexto da
informao e comunicao, hoje em processo de convergncia
em um conceito nico (LUFTMAN et al., 1993). Contudo, para
evitar interpretaes errneas, sero utilizadas neste artigo as
siglas TI e TIC como sinnimos.

Figura 1. Timeline da TIC (Fonte: Elaborao prpria)

Relevncia da Gesto em TIC


Cada vez mais, as organizaes tornam-se mais dependentes
das Tecnologias da Informao e Comunicao a fim de atender
seus objetivos estratgicos e para satisfazer s necessidades do
negcio em que atuam. Uma unidade de TIC que no considerar os objetivos estratgicos da organizao em que se insere
como os seus prprios objetivos, ser uma unidade que deseja
apenas ser um simples provedor de tecnologia. Ainda assim,
at mesmo os provedores de tecnologia, atualmente, tendem
a preocupar-se com a estratgia de negcio de seus clientes,
condio bsica para a venda de servios sob demanda (MAGALHES e PINHEIRO, 2007).
O aumento da importncia da rea de TIC para a execuo
da estratgia de negcio faz com que ela seja vista como uma
parte essencial da organizao, possuindo sua estratgia estritamente interligada com a do negcio, de modo que todas
as iniciativas de TIC possam ser demonstradas na forma de
obteno de valor para a organizao. Assim, a rea de TIC
passa a se comportar como uma acionista, focada nos resultados que pode trazer para o negcio, e desenvolvendo uma
relao de parceria com as demais reas.
O papel desempenhado pela rea de TIC em uma organizao
que deseja ser lder em seu segmento de atuao, move-se da
eficincia e eficcia para a efetividade e a economicidade
em relao estratgia de negcio. Esta mudana fora a implementao de um Gerenciamento de Servios de TIC que
leve exteriorizao da contribuio da rea de TIC para a
gerao de valor para a organizao, maximizando o retorno
para o negcio dos investimentos e das despesas efetuadas em
Tecnologia da Informao (BERG, 2008).
Neste novo cenrio, jarges como melhores prticas, otimizao de processos, qualidade do servio e alinhamento
estratgico dos servios de TI ao negcio deixam de ser mero
discurso e passam a ser parte integrante do novo estilo de vida
das unidades de TIC. Sendo assim, tais unidades tendem a

adotar processos guiados pelas melhores prticas do mercado


com o objetivo de no terem de aprender e crescer de forma
experimental, por meio de tentativas, erros e atribulaes j
vivenciadas e superadas por outras organizaes.

Evoluo do Papel da TIC nas Organizaes


medida que estas organizaes comearam a reconhecer
a sua dependncia crescente da TIC para conseguirem satisfazer os objetivos do negcio, caminhando no encontro s
necessidades da organizao, muitos autores determinaram
como fundamental a garantia de uma maior qualidade dos
servios de TIC, e a sua gesto efetiva (MAGALHES e PINHEIRO, 2007).
Neste cenrio, a tecnologia deve, essencialmente, mudar o
modo de atuao a fim de agregar valor aos negcios da organizao. Caso no obtenha sucesso em efetuar essa mudana,
estar correndo o risco de ser considerada como estrategicamente irrelevante (LOBATO, 2000).
Para o direcionamento deste papel estratgico da TIC necessrio a existncia de um processo estruturado para gerenciar
e controlar as iniciativas de TIC nas organizaes, a fim de
garantir o retorno de investimentos e adio de melhorias nos
processos organizacionais. Desta forma, o termo Governana
em TIC utilizado como forma de obter controle e conhecimento, assegurando mais transparncia na gesto estratgica
(KOSHINO, 2004).
Neste contexto surge o Ato Sarbanes Oxley como um novo
impulso para as iniciativas j fomentadas h algum tempo
pela rea de TIC, formalizando a necessidade da abordagem
da TIC na camada estratgica das organizaes atravs da
Governana (COMPUTERWORLD, 2005).
O ato Sarbanes Oxley foi promovido pelo Congresso dos
EUA e liderado pelo Senador Paul S. Sarbanes (Democrata de
Maryland) e pelo Deputado Michael G. Oxley (Republicano de
Ohio), no intuito de evitar o esvaziamento dos investimentos e
a fuga dos investidores. Esta lei, promulgada em 2002, caracterizou os crimes financeiros e definiu penas severas, alm de
uma srie de procedimentos de governana que passariam a
ser adotados pelas empresas que desejassem abrir seus capitais
no mercado de aes (SOX, 2002).

Governana em TIC
A palavra de origem francesa gouvernance, vem, nestes
ltimos anos, adquirindo bastante notoriedade por intermdio
da sua traduo para o ingls: governance. Foram as instituies que participaram dos acordos da Conferncia de Bretton
Woods (BRETTONWOODS, 1944) Banco Mundial e Fundo
Monetrio Internacional que a difundiram mundialmente.
Esta palavra engloba o conjunto dos poderes legislativo, executivo e judicirio, a administrao, o governo, o parlamento, os
tribunais, as coletividades locais, a administrao do Estado, a
Comisso Europeia e o sistema das Naes Unidas.
De um ponto de vista amplo, a governana a capacidade das
sociedades humanas se dotarem de sistemas de representao,
de instituies e processos, de corpos sociais, para elas mesmas

Edio 25 - Engenharia de Software Magazine

23

se gerirem, em um movimento voluntrio. Esta capacidade


de conscincia (o movimento voluntrio), de organizao (as
instituies, os corpos sociais), de conceituao (os sistemas
de representao) e de adaptao a novas situaes so caractersticas das sociedades humanas. um dos traos que as
distinguem das outras sociedades de seres vivos, animais e
vegetais (UNESCAP, 2009).
Governana corporativa o conjunto de processos, costumes, polticas, leis e instituies que afetam a forma como
uma empresa dirigida, administrada ou controlada. Governana corporativa inclui tambm as relaes entre as vrias
partes envolvidas e os objetivos para os quais a sociedade
governada. Os principais intervenientes so os acionistas, da
gesto e do conselho de administrao. Outros participantes
incluem clientes, credores (por exemplo, bancos, portadores/
proprietrios de aplices/ttulos), fornecedores, entidades
reguladoras e da comunidade em geral (CALAME e TALMANT, 2001).
J Governana de Tecnologia da Informao, Governana
de TI ou Governana em TIC, definida por alguns autores
(ITGI, 2008; ISACA, 2009; ITSMF, 2008) como um subconjunto
da disciplina Governana Corporativa, centrado na tecnologia
da informao (TI) e seus sistemas de desempenho e gesto
de risco. O crescente interesse em governana de TI , em
parte, devido a uma srie de iniciativas que visam garantir
a criao de mecanismos de auditoria e segurana confiveis nas empresas, de modo a mitigar riscos aos negcios e
evitar a ocorrncia de fraudes (ou assegurar que haja meios
de identific-las), garantindo a transparncia na gesto das
empresas, como, por exemplo, Sarbanes-Oxley (REZZY, 2007)
nos EUA e Basileia II (BIS, 2006) na Europa. Movimentos como
estes demonstram como instituies de referncia no mercado
mundial reconhecem que os projetos de TIC podem facilmente
sair de controle e afetar profundamente o desempenho de
uma organizao.
O termo Governana em TI definido como uma estrutura
de relaes e processos que dirige e controla uma organizao
a fim de atingir seu objetivo de adicionar valor ao negcio
atravs do gerenciamento balanceado do risco com o retorno
do investimento de TI. Criar estruturas de governana significa
definir uma dinmica de papis e interaes entre membros
da organizao, de tal maneira a desenvolver a participao e
o engajamento dos membros no processo decisrio estratgico,
valorizando estruturas descentralizadas. A governana de
TI, como forma de obter controle e conhecimento em TI, o
modelo que assegura mais transparncia na gesto estratgica
(KOSHINO, 2004).
A Figura 2 procura ilustrar a relao de pertinncia e abrangncia entre as reas de conhecimento mencionadas. Uma
das diferenas mais marcantes entre Gesto em TIC e Governana em TIC pode ser considerada como o fato da primeira
se concentrar em aspectos tticos e operacionais, enquanto
a segunda procura alavancar a primeira para um nvel de
atuao estratgico, no alinhamento de suas iniciativas com
o negcio da organizao.

24

Figura 2. Diagrama de inter-relao entre as reas citadas (Fonte: Elaborao


prpria)

Com adoo de um modelo de Governana de TI espera-se


que as estruturas e processos venham a garantir que a TI
suporte e maximize os objetivos e estratgias da organizao, permitindo controlar a medio, auditagem, execuo
e a qualidade dos servios. Possibilitando ainda viabilizar o
acompanhamento de contratos internos e externos definindo
as condies para o exerccio eficaz da gesto com base em
conceitos consolidados de qualidade. Weill e Ross (2006) afirmam que o desempenho da governana avalia a eficcia da
governana de TI em cumprir quatro objetivos ordenados de
acordo com a sua importncia para a organizao: i) uso da
TI com boa relao custo/benefcio; ii) uso eficaz da TI para a
utilizao de ativos; iii) uso eficaz da TI para o crescimento;
iv) uso eficaz da TI para flexibilidade dos negcios.
Finalmente pode-se definir Governana em TIC como o alinhamento estratgico de TIC com o negcio de forma que se
obtenha o mximo valor deste atravs do desenvolvimento e
manuteno de controles efetivos de TIC orientados ao controle
de custos, gesto do retorno dos investimentos relacionados e
gesto dos riscos associados (WEILL e ROSS, 2006).
Pretendendo cumprir este objetivo, so muitos os mecanismos de relao entre os processos de negcio e os processos
de TIC que tm sido gerados pela disciplina de Governana
em TIC. O resultado final uma infinidade de padres e boas
prticas, envolvendo: processos, indicadores, perfis, diretrizes,
dentre outros, cuja aplicao geralmente exige muito investimento, tempo e esforo, em funo do formalismo adotado
por estes padres.
Holm et al. (2006) apresenta uma sntese das intenes de
melhoria da relao entre a TIC e o negcio mediante a classificao de 17 padres e ferramentas de melhores prticas
existentes em termos de variveis, como: tipo de processo e

Engenharia de Software Magazine - Da Gesto Governana em Tecnologia da Informao e Comunicao TIC

Ges to de TI e Agilidade

organizao. O trabalho citado aborda a investigao de como


a Governana em TIC adotada no caso de uma companhia
lder no mercado mundial de biotecnologia em enzimas e
micro-organismos industriais. Neste processo realizada a
reviso de 17 ferramentas de Governana em TIC.
No se deseja aqui discutir em detalhes os xitos ou melhorias que estas ferramentas tm alcanado (em especial ITIL e
COBIT) para os processos de suporte ao core business de nossas
organizaes, contudo pretende-se explorar alguns contextos
de potencializao destas, na nova abordagem de Governana
gil em TIC proposta neste trabalho, como fator catalisador
do rompimento do gap entre a TIC e o negcio.

Os mais difundidos modelos de Governana em TIC


Nesta seo sero abordados oito modelos de Governana
em TIC mais difundidos no mercado, e que so mais frequentemente mencionados em pesquisas especializadas (MAGALHES E PINHEIRO, 2007; COMPUTERWORLD, 2007b), alm
do modelo recentemente proposto por Luna (2009), totalizando
nove modelos.
Este trabalho utilizar a denominao genrica proposta por
Luna (2010): corpo de conhecimento de governana em TIC,
ou, em ingls, Information and Communication Technologies
Governance Body of Knowledge ICTGBOK, para o conjunto
de informaes disponveis no domnio de Governana em
TIC, que em parte est representado, neste artigo, de forma
sucinta.
Para cada modelo abordado nesta seo sero vistos: definio, histrico, foco e consideraes sobre sua adoo.
Ao final desta seo sero abordadas as principais caractersticas, carncias, dificuldades e limitaes dos modelos apresentados, que motivaram o desenvolvimento deste trabalho.
Antes de prosseguir, vale a pena mencionar que algumas
outras abordagens que aparecem em pesquisas sobre modelos
adotados por organizaes para iniciativas de governana em
TIC (COMPUTERWORLD, 2007b) no sero abordados neste
artigo pelos seguintes motivos:
Modelos do Project Management Institute (PMI): trata-se
do PMBOK e do PMgBOK, que na anlise realizada por este
trabalho foram considerados como sendo metodologias de
Gerenciamento de Projetos e Gerenciamento de Programas
e Portflio de Projetos, respectivamente. E, portanto, apoiam
projetos de governana, mas no fazem parte do contexto
central abordado neste tpico (PMI, 2008);
Six Sigma (6): no foi considerado por tratar-se de um
modelo de qualidade, expresso atravs de um conjunto de
prticas originalmente desenvolvidas pela Motorola para
melhorar sistematicamente os processos ao eliminar defeitos.
Apresenta baixa representatividade nas pesquisas e tambm
no faz parte do contexto central abordado neste tpico (HARRY et al., 2000);
eSourcing Capability Model for Service Providers (e-SCMSP): no foi abordado em funo da baixa representatividade
com que aparece nas pesquisas e tambm por se tratar de um
framework recente de abordagem especfica, que destinado

especialmente aos provedores de servio, podendo, inclusive,


ser utilizado como um apoio para aqueles que oferecem terceirizao (COMPUTERWORLD, 2007a);
PRINCE2 Project In a Controlled Environment: tambm
no foi considerado por ser um mtodo (no proprietrio)
para gerenciamento de projetos, desenvolvido pelo governo
britnico em 1996. Foi criado em 1989 a partir do PROMPTII,
o qual, por sua vez, surgiu em 1975 e foi adotado em 1979
como padro para gerenciamento dos projetos de sistemas de
informao do governo ingls. Contudo o PRINCE2 no um
modelo de Governana em TIC, muito embora a OGC Office
of Government Commerce sugira a sua aplicao como apoio
implantao de ITIL (BRADLEY, 2002). Alm disso, tambm
apresenta baixa representatividade nas pesquisas.

ITIL
ITIL a abreviao para Information Technology Infrastructure
Library, um framework de processos de gesto de TI que surgiu
no fim da dcada de 1980 da necessidade de se ter processos organizados e claros. Percebeu-se que as organizaes esto cada
vez mais dependentes da rea de TI e que necessrio organizar
os fluxos de processos neste departamento (ITGI 2009).
Esse modelo de gesto foi formulado pelo British Central
Computer and Telecommunication Agency (CCTA), que
posteriormente foi assimilado pela Secretaria de Comrcio
do Governo Ingls Office of Government Commerce (OGC,
2009), a partir de pesquisas realizadas com especialistas em
gesto de TI, para definir uma melhor forma de funcionamento e gesto das Tecnologias da Informao e Comunicao
(ITSMF, 2009).
ITIL uma compilao das melhores prticas e processos na
planificao, aprovisionamento e suporte de servios de Tecnologia de Informao (ITSMF, 2008) e pode ser considerado
um conjunto de boas prticas de governana organizado de
forma sistemtica, e, portanto um framework. medida que as
empresas reconheceram a sua dependncia crescente nas TIC
para conseguirem satisfazer os objetivos do negcio e irem ao
encontro s necessidades da empresa, muitos determinaram
que a maior qualidade dos servios de TI, e a sua gesto efetiva,
era necessria (EUROCOM, 2006).
A principal vantagem do ITIL, no contexto das boas prticas de gesto em TIC, que os processos descritos so
genricos aplicam-se independentemente da tecnologia,
plataforma, tipo ou tamanho do negcio envolvido. Quase
todas as organizaes das TIC de qualquer tamanho tm um
help desk, um mtodo de lidar com problemas ou mudanas, alguma compreenso de gesto de configurao, nveis
de servio de acordo com os clientes, uma maneira de lidar
com problemas de capacidade e disponibilidade e uma forma
de plano de contingncia. O foco primrio da metodologia
ITIL possibilitar que rea de TI seja mais efetiva e proativa,
satisfazendo assim clientes e usurios (ITIL, 2009).
Com a verso atual do ITIL, Verso 3, lanada em 2007, uma
das principais deficincias corrigidas foi um incremento em
matrias que ajudem a identificar o retorno dos investimentos

Edio 25 - Engenharia de Software Magazine

25

em TI. Um problema muito frequente em governana de TI que


era normalmente indicado como um problema para a adoo
efetiva do ITIL. A nova verso ainda mais concisa do que a
verso anterior, reduzida de oito para cinco livros principais
que compem seu ncleo e vrios outros livros que podero
complementar o ITIL posteriormente.
Seu foco : em Gerenciamento de Servios de TIC.

COBIT
O COBIT Control Objectives for Information and related
Technology um framework de governana de TI apoiado
por um conjunto de ferramentas que permite aos gestores
fazer a ponte entre as exigncias de controle, questes tcnicas e riscos do negcio. Ele permite o desenvolvimento de
polticas claras e boas prticas de controle de TI em toda a
organizao. Alm disso, o COBIT enfatiza a conformidade
regulamentar, ajuda as organizaes a aumentar o valor
obtido atravs da TI, permite o alinhamento e simplifica
sua implementao.
O COBIT representa a viso de um grupo de experts focado
no estudo de Governana em TIC. Trata-se de um conjunto
de boas prticas sobre processos de gerenciamento da TI nas
organizaes, que aborda desde aspectos tcnicos, at processos e pessoas. Sua estrutura organizada em processos que
so interligados com o objetivo de controlar a TI, atravs da
formao de um framework de controle que tem o propsito
de assegurar que os recursos de TI estaro alinhados com os
objetivos da organizao.
O COBIT baseado na premissa de que a TI precisa entregar
a informao que a empresa necessita para atingir seus objetivos, e por isso, tem como objetivo otimizar os investimentos e
garantir a entrega dos servios com as devidas mtricas.
O princpio do framework do COBIT vincular as expectativas dos gestores de negcio com as responsabilidades dos
gestores de TI. Assim, busca fazer com que a TI seja mais capaz
de responder s necessidades do negcio. O COBIT no se
trata de um padro definitivo, ele tem que ser adaptado para
cada organizao.
Segundo o ISACA Information Systems Audit and Control
Association, a misso do COBIT Pesquisar, desenvolver,
publicar e promover um conjunto de objetivos de controle para
tecnologia que seja embasado, atual, internacional e aceito em
geral para o uso do dia-a-dia de gerentes de negcio e auditores (ISACA, 2009a). Para tanto, o COBIT trabalha principalmente dentro do seguinte conjunto de atividades:
Alinhamento da TI com o negcio da empresa;
Def in io do papel da TI TI Estratg ica ou TI
Operacional;
Auxilia na organizao das atividades da TI a partir da
adoo de um modelo de gesto;
Ajuda identificar quais recursos de TI devem ser alavancados
com maior efetividade;
Define os objetivos e controles gerenciais a serem
observados;
Estabelece claramente papeis e responsabilidades.

26

importante destacar que os princpios bsicos da Governana de TI adotados pelo COBIT so:
Responsabilidade corporativa: trata-se de pensar e agir pela
perenidade da organizao, com responsabilidade social e
ambiental;
Prestao de contas: relacionado obrigao de prestar
contas;
Equidade: ligado ao tratamento justo e igualitrio;
Transparncia: relacionado ao desejo de informar.
Em sua verso atual, 4.1, o COBIT pode ser usado para reforar o trabalho j feito com base em verses anteriores, mas
isso no invalida os trabalhos anteriores. Quando as principais
atividades esto previstas com iniciativas de governana de
TI, ou quando uma reviso do quadro de controle da empresa
esperada, recomenda-se comear de novo com a verso mais
recente do COBIT (ISACA, 2009a).
Seus focos so: Alinhamento entre a TI e o negcio, Controle
Interno e Mtricas.

BSC
O Balanced Scorecard BSC um modelo de gesto, desenvolvido em 1992 por Robert Kaplan e David Norton da
Harvard Business School, para avaliar o desempenho estratgico e, consequentemente, gerir o sistema de estratgias de
uma organizao, sendo considerada uma das ferramentas
de grande importncia na rea de planejamento estratgico
com o objetivo de traduzir estratgia em ao (KAPLAN e
NORTON, 1997).
BSC uma sigla que pode ser traduzida para Indicadores Balanceados de Desempenho, ou ainda para Campos (CAMPOS,
1994), Cenrio Balanceado. O termo Indicadores Balanceados
se d ao fato da escolha dos indicadores de uma organizao
no se restringirem unicamente no foco econmico-financeiro,
as organizaes tambm se utilizam de indicadores focados
em ativos intangveis como: desempenho de mercado junto
a clientes, desempenhos dos processos internos e pessoas,
inovao e tecnologia. Isto porque a somatria destes fatores
alavancar o desempenho desejado pelas organizaes, consequentemente criando valor futuro.
Os requisitos para definio desses indicadores tratam dos
processos de um modelo da administrao de servios e a
busca pela maximizao dos resultados baseados em quatro
perspectivas que refletem a viso e estratgia empresarial:
Financeira;
Clientes;
Processos internos;
Aprendizado e crescimento.
O BSC no s direciona comportamentos dentro de uma
organizao, como tambm monitora o desempenho empresarial em prol da estratgia. Ele difundido com sucesso em
vrias organizaes privadas, pblicas e no governamentais
no mundo inteiro. O BSC tem como uma de suas funes
traduzir a criao de valor financeiro (tangvel) a partir dos

Engenharia de Software Magazine - Da Gesto Governana em Tecnologia da Informao e Comunicao TIC

Ges to de TI e Agilidade

ativos intangveis (no financeiros), que se baseia em um


sistema de medio de desempenho, atravs da utilizao
de indicadores e objetivos financeiros derivados da viso e
da estratgia organizacional (KAPLAN e NORTON, 1997).
A relao do BSC com o contexto de Gesto em TIC est intimamente associada definio de metas estratgicas para
organizao e ao acompanhamento de seu cumprimento por
meio de indicadores de negcio.
Seu foco em: Planejamento Estratgico e Gesto por
Indicadores.

IT Flex
A metodologia IT Flex, com sua proposta de transformao
da rea de TI em uma provedora de servios de forma continuada para a organizao, parte da estruturao dos diferentes processos da rea em correspondncia com a estratgia
de negcio da organizao. Desta forma, o modelo procura
prover um mecanismo de gerenciamento do desempenho que
possibilita a ela a oportunidade de fornecer servios de TI com
toda a qualidade que os seus clientes requerem, com custos e
nveis de servio associados que alinhem TI s necessidades
das diferentes reas de negcio da organizao (MAGALHES
E PINHEIRO, 2007).
Quando os servios de TI esto alinhados aos objetivos
estratgicos estabelecidos pela estratgia de negcio e otimizados para todo o ciclo de vida do servio, a organizao
consegue associar os custos da rea de TI ao valor produzido para o negcio, enxergando a verdadeira contribuio
da rea de TI. Isto obtido, segundo Magalhes e Pinheiro
(2007), atravs da aplicao da metodologia IT Flex conforme
descrito a seguir:
Responsabilidade da rea de TI pelos servios de TI, por meio
da alocao de custos baseada na utilizao real dos diferentes
servios de TI disponibilizados para as reas de negcio;
Maior produtividade e satisfao do usurio final, advinda
da automao dos processos de TI e do estabelecimento do
autoatendimento;
Menores custos e maior eficincia, integrando o Service Desk
a toda a infraestrutura de TI e gerenciando proativamente o
portflio de servios de TI;
Relaes de cooperao entre a rea de TI e as reas de
negcio, atravs do fornecimento de informaes sobre como
escolher nveis de servios que melhor atendam s necessidades da estratgia de negcio (no pagando taxas mais altas por
99,99 % de disponibilidade se o usurio no necessita realmente
desse nvel de disponibilidade) e do gerenciamento de nvel
de servio em tempo real para evitar violaes dos Acordos de
Nvel de Servio estabelecidos com as reas de negcio;
Crescimento mais rpido e constante, atendendo consistentemente as necessidades atuais das reas de negcio e suportando novas iniciativas do negcio, como a participao em novos
mercados atravs de uma maior capacidade de escalabilidade
da estrutura de entrega e suporte aos servios de TI, baseada
em um processo de gerenciamento de suprimentos adequado
estratgia do negcio;

Governana de TI, possibilitando o gerenciamento de


mudanas e a padronizao dos processos mais complexos
relacionados com a rea de TI.
Seu foco em: Gerenciamento de Servios de TI

COSO
Em 1985, foi criada, nos Estados Unidos, a National Commission
on Fraudulent Financial Reporting (Comisso Nacional sobre
Fraudes em Relatrios Financeiros) e seu primeiro objeto de
estudo foram os controles internos das organizaes. Em 1992,
atravs de uma iniciativa privada de cinco grupos (American
Accounting Association, The American Institute of Certified Public
Accountants, The Financial Executives Institute, The Institute of
Internal Auditors e The Institute of Management Accountants), foi
publicado o trabalho Internal Control Integrated Framework
(Controles Internos Um Modelo Integrado).
Esta publicao tornou-se referncia mundial para o estudo
e aplicao dos controles internos. Posteriormente a Comisso
transformou-se em Comit, que passou a ser conhecido como
C.O.S.O. The Comitee of Sponsoring Organizations (Comit
das Organizaes Patrocinadoras). O C.O.S.O. uma entidade
sem fins lucrativos e dedicada melhoria dos relatrios financeiros atravs da tica, efetividade dos controles internos e
governana corporativa (COCURULLO, 2006).
Em 2002, o ato de Sarbanes-Oxley foi criado para restaurar
a confiana de investidores dos mercados pblicos dos Estados Unidos, devastados por escndalos e lapsos nos negcios
envolvendo governana corporativa. Embora reescrevessem
literalmente as regras de contabilizao corporativa, bem como
a sua divulgao, as pginas inumerveis do ato da sustentao
legal seguem uma premissa simples: a governana corporativa
e as prticas ticas de negcio j no so mais opcionais em
TI, mas so leis.
O ato Sarbanes-Oxley SOX representa a parte a mais significativa de uma legislao sobre os negcios, desde a ltima
metade do sculo, pois evidencia a contabilizao corporativa.
Entretanto, importante enfatizar que a seo 404 no requer
apenas que as empresas estabeleam e mantenham uma estrutura interna adequada ao controle, mas avaliem tambm
sua eficcia anualmente. Em outras palavras, esta abordagem
extremamente relevante para aquelas organizaes que
comearam o processo de conformidade e que a TI exerce um
papel vital suportando os componentes de sistemas, de dados
e de infraestrutura, e que so crticos no processo de relatrio
financeiro (COSO, 2006).
Em 2003 o PCAOB emitiu um padro propondo que fosse
discutida a importncia da TI no contexto de controles internos.
A natureza e as caractersticas de uma empresa de TI que faz
uso de seu sistema de informao afeta o controle interno da
mesma sobre relatrios de desempenhos financeiros.
Recentemente vem se usando tambm a descrio Control
Objectives of Sarbanes Oxley, para a sigla COSO. Como o Internal Control Integrated Framework um modelo de trabalho
muito genrico, com viso de auditoria, muitas organizaes

Edio 25 - Engenharia de Software Magazine

27

usam o COBIT (Control Objectives for Information and Related


Technology) para aplicar o COSO. Na prtica, o que acontece
que empresas adotam o COSO de forma geral, para controles internos, principalmente financeiros. A rea de TI, por
sua vez, adota o COBIT como guarda-chuva para diversas
metodologias e melhores prticas indicadas para tecnologia
da informao.
Seu foco : em Governana Corporativa e Controle Interno.

ISO/IEC 20000
A ISO/IEC 20000 a primeira norma editada pela ISO
(International Organization for Standardization) e pela IEC
(International Electrotechnical Commission), que versa sobre
gerenciamento de servios de TIC. A ISO/IEC 20000 um
conjunto que define as melhores prticas de gerenciamento
de servios de TIC. O seu desenvolvimento foi baseado na BS
15000 (British Standard) e tem a inteno de ser completamente
compatvel com o ITIL. A sua primeira edio ocorreu em
dezembro de 2005.
O referencial ISO/IEC 20000 identifica os requisitos da Gesto
de Servios e relevante para os responsveis pela preparao,
implementao ou gesto continuada dos servios de TIC na
organizao. As organizaes podem assegurar a certificao
dos seus Sistemas de Gesto de Servios de TIC de modo independente, em conformidade com este referencial.
A ISO/IEC 20000 foi desenvolvida para responder s necessidades de uma audincia global e fornecer um entendimento
comum da gesto de servios de tecnologias de informao e
comunicao em todo o mundo. O escopo desta norma cobre
os aspectos responsveis por 80% do investimento total em
tecnologias de informao e comunicao da grande maioria
das organizaes. O ISO/IEC 20000 publicado em duas partes
e permite aos prestadores de servios compreenderem como
podem alcanar a qualidade no servio prestado aos seus
clientes, internos e externos. A certificao o resultado da
monitorao do nvel de servio face ao padro, acrescentando
valor real para as organizaes no s porque demonstram a
qualidade dos servios internos como lhes permite selecionar
parceiros externos adequados (ISO/IEC20000, 2005).
Seu foco em: certificao de organizaes sob o aspecto de
Governana em TIC.

VAL IT
O Val IT um framework baseado no COBIT e o complementa
desde a fase de negcios at as perspectivas financeiras, alm
de auxiliar a todos que tm interesse no valor de entrega de TI.
Trata-se de um framework de governana que consiste em um
conjunto de princpios orientadores e em um nmero de processos em conformidade com esses princpios, que esto mais
definidos como um conjunto de boas prticas de gesto.
O Val IT suportado por publicaes e ferramentas operacionais e fornece orientaes para:
Definir o relacionamento entre a TI e o negcio, alm
das funes da organizao com as responsabilidades de
governana;

28

Gerenciar o portflio de uma organizao de TI e permitir


investimentos empresariais;
Maximizar a qualidade dos processos de negcios para TI,
permitindo investimentos em negcios com particular nfase para a definio dos principais indicadores financeiros, a
quantificao de suaves prestaes e avaliao global do
risco de queda.
O Val IT enderea pressupostos, custos, riscos e resultados
relacionados a um portflio equilibrado de investimentos de
negcios. Ele tambm fornece a capacidade de benchmarking
e permite s empresas trocar experincias sobre as melhores
prticas para gesto de valor (ISACA, 2009).
Seu foco em: Gerenciamento dos Investimentos em TI.

CMMI sob a Perspectiva de Governana em TI


O CMMI Capability Maturity Model Integration uma
evoluo do CMM e procura estabelecer um modelo nico
para o processo de melhoria corporativo, integrando diferentes
modelos e disciplinas (SEI, 2009).
um Modelo de referncia, criado em 2000 e mantido pela
SEI Software Engineering Institute, que contm prticas
necessrias evoluo da maturidade em disciplinas especficas, como: Engenharia de Sistemas, Engenharia de Software,
Desenvolvimento integrado de Produtos e Processos, e Fornecimento de Cdigo (subcontratao).
Adota uma abordagem de melhoria de processos que fornece
s organizaes os elementos essenciais de processos eficazes
com a finalidade de melhorar seu desempenho.
A metodologia CMMI pode ser vista sob uma perspectiva de
Governana de TI, como um modelo de gesto que organiza
prticas j consideradas efetivas em uma estrutura que visa o
auxlio da organizao no estabelecimento de prioridades para
melhoria, como tambm no fornecimento de um guia para a
implementao dessas melhorias.
Seu foco em: Melhoria de processos.

MAnGve
O MAnGve Modelo gil no Apoio Governana em TIC,
um modelo gil para implantao e melhoria dos processos
e servios de governana em TIC direcionado a organizaes
de qualquer natureza e tamanho e que prov uma abordagem
de ao prtica.
Foi concebido por Luna, em 2009, para minimizar a carncia
de foco prtico encontrada nos modelos existentes. Sua grande
ambio a de complementar o corpo de conhecimento de
Governana em TIC j existente e se tornar uma alternativa
aplicao deste ICTGBOK.
O MAnGve pode ser lido como um modelo baseado em um
ciclo de vida gil, atravs da transio de princpios, valores
e boas prticas das Metodologias geis do paradigma da Engenharia de Software para o domnio de Governana em TIC.
Com isso, Luna (2009) sugere que o MAnGve possa atuar como
referncia prtica para implantao e melhoria de processos e
servios de governana em TIC, em organizaes de qualquer

Engenharia de Software Magazine - Da Gesto Governana em Tecnologia da Informao e Comunicao TIC

Ges to de TI e Agilidade

natureza e magnitude, com base no alinhamento dos objetivos


estratgicos da TIC com o negcio da organizao.
O MAnGve prov uma abordagem de ao prtica, adaptativa, orientada a pessoas, de maneira flexvel e iterativa
buscando continuamente a simplicidade, e se concentra na
contnua reflexo sobre a necessidade de adaptao realidade
das organizaes e sobre o enfoque comportamental da equipe
comprometida (MANGVE, 2009).
Seu foco em: Implantao e melhoria de Governana em
TIC.

Uma anlise crtica sobre Governana em TIC


A Tabela 1 o resultado de um estudo comparativo dos
modelos explorados neste artigo. Nesta anlise procurou-se
evidenciar as caractersticas e diferenciais de cada modelo
apontando o foco primrio, as principais caractersticas e as
carncias identificadas entre os mtodos aqui apresentados.
Conforme pode ser percebido no resultado deste estudo
comparativo, muitos dos modelos aqui apresentados findam
no sendo modelos cujo foco primrio a Governana em
TIC, apesar do filtro realizado no incio desta pesquisa e comentado no incio da seo anterior. Alguns, inclusive, sequer
esto no contexto de Governana. Contudo, todos abordam
aspectos extremamente significativos do contexto desta rea
Mtodos

Foco primrio

ITIL

Governana em TIC

COBIT

Governana em TIC

BSC

Gerenciamento Estratgico

IT Flex

Gerenciamento de TIC

COSO

Governana Corporativa

ISO/IEC 20000

Governana em TIC

Val IT

Governana Corporativa

CMMI

Gerenciamento Processos

MAnGve

Governana em TIC

do conhecimento, o que sugere que possam ser aplicados com


sucesso de forma articulada e combinada, quando necessrio.
Cita-se como exemplo a relevncia da abordagem do BSC para
a fase de preparao da implantao de governana, ou ainda
o caso do CMMI quando se trata da melhoria dos processos
de governana, uma vez implementados.
Por outro lado, como pode ser visto na Tabela 1, uma das
carncias mais frequentes nos primeiros oito modelos abordados a ausncia de orientaes sobre sua aplicao prtica.
O que dificulta em muito a sua adoo por parte das organizaes. Esta carncia de orientao ao ocasiona uma
grande dificuldade nas organizaes em identificar por onde
comear as iniciativas de implantao de Governana em TIC
(MENDEL & PARKER, 2005). Em muitos casos, esta situao
conduz inevitavelmente a organizao contratao de servios de consultoria especializada, o que, com efeito, requer
altos investimentos e muitas vezes faz com que o processo se
torne moroso.
Ainda importante observar que o ltimo modelo abordado
o MAnGve, alm de ser recente, foi originado com o objetivo de
eliminar ou minimizar as carncias j identificadas nos demais
modelos, o que um ponto extremamente positivo e relevante.
Neste contexto observam-se iniciativas com o intuito de minimizar as mencionadas limitaes ou carncias dos modelos citados.

Principais Caractersticas

Limitaes/ Carncias

Concentra-se no Gerenciamento de Servios de TIC. Os processos descritos so


genricos aplicam-se independentemente da tecnologia, plataforma, tipo
ou tamanho do negcio envolvido.
Concentra-se no alinhamento da TIC com o negcio, controle e auditoria dos
processos de TIC. Abrangente aplicvel para a auditoria e controle de processos
de TIC, desde o planejamento da tecnologia at a monitorao e auditoria de
todos os processos.
Concentra-se no planejamento e gesto estratgica, atravs do monitoramento
de indicadores do negcio.

No possui mtodo de implantao.


No contm um mapa detalhado dos processos.
No fornece instrues de trabalho.
Est num nvel mais genrico que o ITIL.
No possui mtodo de implantao.
No define padres de implementao, nem passos, tcnicas ou
procedimentos para aplicao.
No desce ao nvel ttico ou operacional, o que gera dificuldade de
alimentao dos indicadores.
No possui orientaes para sua aplicao.
Concentra-se em dotar a rea de TIC de um elevado grau de flexibilidade Abordagem superficial e genrica.
fazendo com que colabore com o aumento da adaptabilidade da organizao. No define passos, tcnicas ou procedimentos para aplicao.
Possui como proposta o conceito de Fbrica de Servios de TIC.
Modelo de trabalho para controle interno, muito genrico, com viso de Consegue ser mais genrico que o COBIT.
auditoria. Algumas organizaes utilizam o COBIT para implantar o COSO.
No define passos, tcnicas ou procedimentos para sua aplicao.
Concentra-se na definio das melhores prticas de gerenciamento de servios O alinhamento ao ITIL faz com que herde as mesmas carncias e
de TIC. Orienta o processo de certificao organizacional como resultado do limitaes.
monitoramente face ao padro documentado.
Baseado no COBIT, que prov uma estrutura para a governana de investimentos O alinhamento ao COBIT faz com que herde parte das mesmas carncias
de TIC. Complementa o COBIT no que diz respeito perspectiva financeira e ao e limitaes.
valor de entrega de TIC.
Contudo, apresenta um estudo de caso completo que pode servir de
orientao sua aplicao.
uma abordagem de melhoria de processos que fornece s organizaes os No focado em Governana, carecendo de alguma adequao neste sentido.
elementos essenciais de processos eficazes com a finalidade de melhorar seu Possui um guia que orienta a sua aplicao, contudo muito extenso e
desempenho.
precisa ser instanciado em cada organizao para um resultado efetivo.
Implantao e Melhoria de Governana em TIC atravs de uma abordagem Sua adaptabilidade requer um grau de liderana significativo no papel do
prtica, flexvel, adaptativa e com o foco nas pessoas.
MAnGveMaster
Grau de maturidade e auto-organizao da Equipe envolvida.

Tabela 1. Comparao entre os modelos revisados (Fonte: Elaborao prpria)

Edio 25 - Engenharia de Software Magazine

29

D seu feedback sobre esta edio!


A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
www.devmedia.com.br/esmag/feedback

Feedback
eu

Referncias
ALCALDE, E. L.(1991). Informtica bsica. So Paulo: Makron Books, 1991.
BERG, C. (2008). Value-DrivenIT,valuedrivenit.com. Cliff Berg Imprints, Reston VA, USA. Disponvel
em: <http://valuedrivenit.com/downloads/Value-Driven_IT.pdf>. Acesso em: 30/09/2009.
BIS - Bank for International Settlements (2006). Basel II: International Convergence of Capital
Measurementand Capital Standards. Disponvel em: <http://www.bis.org/publ/bcbs128.pdf>.
Acesso em: 22/01/2009.
BRADLEY, K. (2002). Understanding PRINCE 2. - SPOCE Project Management Limited - rsms.ac.uk,
2002. Disponvel em: < http://www.rsms.ac.uk/up2-may2-2002.pdf >. Acesso em: 03/10/2009.
BRETTONWOODS (1944), Conferncia Internacional Monetria de Bretton Woods. Disponvel em:
http://www.unificado.com.br/calendario/07/bretton.htm>. Acesso em: 22/01/2009.
C.O.S.O. (2006). INTERNAL Control Integrated Framework. The Committee of Sponsoring
Organizations of the Treadway Commission. Disponvel em: < http://www.snai.edu/cn/service/
library/book/0-Framework-final.pdf>. Acesso em: 08/09/2009.
CALAME, P.I.; TALMANT, A. (2001). Questo do Estado no Corao do Futuro - O mecano da
governana. So Paulo. Editora Vozes.
CAMPOS, Vicente Falconi. (1994). Gerenciamento pelas Diretrizes. Revista de Administrao de
Empresas. So Paulo, 1994. V. 34, n. 6, p 6-11.
COCURULLO, A. (2006). Gerenciamento de Riscos Corporativos. IBGC Instituto Brasileiro
de Governana Corporativa. Disponvel em: < http://www.ibgc.org.br/biblioteca/Download.
aspx?CodAcervo=2093 >. Acesso em: 08/09/2009.

Computerworld, 24 de novembro de 2005 - 14h54. Disponvel em: < http://computerworld.uol.


com.br/gestao/2005/11/24/idgnoticia.2006-03-29.9247266501/>. Acesso em: 05/10/2009
COMPUTERWORLD (2007a). Notcia: e-SCM: novo aliado para a governana convergente de TI.
Computerworld, 14 de fevereiro de 2007 - 12h53. Disponvel em: <http://computerworld.uol.com.
br/gestao/2007/02/14/idgnoticia.2007-02-14.1400978239/ >. Acesso em: 03/10/2009.
COMPUTERWORLD (2007b). Notcia: Pesquisa revela que 85% das empresas j usam modelos
de governana de TI no Brasil. Computerworld, 16 de outubro de 2007 - 11h48. Disponvel em:
<http://computerworld.uol.com.br/gestao/2007/10/16/idgnoticia.2007-10-16.0083336108/ >.
Acesso em: 03/10/2009.
EUROCOM (2006). EUROPEAN COMISSION. Europes Information Society. Research: 9 billion
injection to boost European ICT research. Disponvel em: <http://ec.europa.eu/information_
society/newsroom/cf/itemlongdetail.cfm?item_id=2994>, Bruxelas. Acesso em: 13/01/2009.
FOINA, P.R. (2001). Tecnologia de informao: planejamento e gesto / Paulo Rogrio Foina.
So Paulo: Atlas.
HARRY,MJ;SCHROEDER,R;LINSENMANN,DR.(2000).SixSigma.questuspoint.pl,2000.Disponvelem:<http://
www.questuspoint.pl/download/Z2Z4L2Fic3RyYWt0eS9wbC9kZWZhdWx0X29waXN5LzMzLzEvMQ
/k014.pdf >. Acesso em: 03/10/2009.
HOLM, M.L.; KHN, M.P.; VIBORG, K.A. (2006). IT Governance: Reviewing 17 IT Governance Tools and
Analysing the Case of Novozymes A/S. HICSS06 - Proceedings of the 39th Hawaii International
Conference. Disponvel em: < http://itu.dk/~petermeldgaard/B19/5_Case_Novozymes_
HICSSpaper.pdf>. Acesso em: 30/09/2009.

COMPUTERWORLD (2005). Notcia: SARBOX considerada um presente para rea de TI.

30

Engenharia de Software Magazine - Da Gesto Governana em Tecnologia da Informao e Comunicao TIC

sobre e
s

Nos ltimos anos a TIC Tecnologias da Informao e Comunicao tem sido objeto de investimentos e pesquisa crescente
tanto do meio acadmico quanto no ambiente organizacional,
demandando altos esforos no aperfeioamento de modelos de
gesto e implantao de prticas que trouxessem uma maior
competitividade s organizaes. Neste cenrio a Governana
em TIC tem se destacado como uma opo para o gerenciamento e controle efetivo das iniciativas de TIC nas organizaes,
garantindo o retorno de investimentos e adio de melhorias
aos processos organizacionais.
Este artigo apresentou um breve resgate do surgimento da
Informtica, como rea do conhecimento. Na sequncia, abordou-se uma sucinta narrativa da evoluo da informtica at o
que se conhece hoje como Tecnologias da Informao e Comunicao TIC. Num momento seguinte, tratou-se a relevncia
da Gesto de TIC e a evoluo do seu papel nas organizaes,
chegando at o conceito de Governana em TIC.

D
s

Concluses

Posteriormente, este artigo conceituou e delimitou o termo


corpo de conhecimento em Governana em TIC, Information
and Communication Technologies Governance Body of Knowledge ICTGBOK. Em seguida foram apresentadas nove abordagens diferentes no domnio de Governana em TIC, apontando
suas principais caractersticas, foco, carncias e limitaes.
Ao final desta reviso sistemtica elaborou-se um quadro
comparativo ressaltando as caractersticas essenciais e as
principais limitaes ou carncias de cada modelo abordado.
Por fim, identificou-se o surgimento de um novo paradigma:
Governana gil em TIC, proposto e conceituado por Luna
(2009) com o objetivo de minimizar ou eliminar boa parte das
carncias percebidas nos modelos existentes. A consolidao
desta proposta fica evidenciada pela caracterizao do nono
modelo abordado neste artigo, o MAnGve, cuja proposta ser
uma alternativa gil para implantao e melhoria do Corpo
de Conhecimento de Governana em TIC ou ICTGBOK,
existente. Esta proposta pode ser considerada uma abordagem
inovadora e bem-vinda para complementar o ICTGBOK, termo
tambm proposto por Luna (2009).

edio
ta

Estas iniciativas esto no estado da arte da Governana em TIC.


O diferencial desta abordagem prope a aplicao de princpios,
valores e boas prticas de metodologias geis da Engenharia de
Software para implantao e melhoria de Governana em TIC
nas organizaes sob o conceito de Governana gil em TIC
(LUNA, 2010). Esta proposta pode ser considerada uma abordagem inovadora e bem-vinda para complementar este prprio
ICTGBOK, termo tambm proposto por Luna (2010).

Ges to de TI e Agilidade

Continuao: Referncias
ISACA (2009). Disponvel em: <http://www.isaca.org/ >. Acesso em: 04/09/2009.
ISACA (2009a). COBIT Case Studies by Industry. Disponvel em:< http://www.isaca.org/
Template.cfm?Section=Case_Studies3&Template=/ContentManagement/ContentDisplay.
cfm&ContentID=50973>. Acesso em: 18/10/2009.
ISO/IEC 20000 Certification web site (2005). Disponvel em: <http://www.isoiec20000certification.
com/>. Acesso em: 08/09/2009.
ITGI (2007). Information Technology Governance Institute. CobiT - Control Objectives for
Information and related Technology. 4.1. ed. Rolling Meadows: ITGI.

LUNA, Alexandre J. H. de O.; COSTA, Cleyverson P.; de MOURA, Hermano P.; NOVAES, Magdala A.;
do NASCIMENTO, Csar A. D. C. ; (2010). Governana gil de TIC: rompendo paradigmas. JISTEM
- Journal of Information Systems and Technology Management; 2009. Disponvel em: < http://
www.jistem.fea.usp.br/index.php/jistem/issue/archive >. Acesso em: 17/11/2009.
MAGALHES, I.L.E PINHEIRO W.B.(2007).Gerenciamento de Servios de TI na Prtica:Uma abordagem
com base na ITIL Editora Novatec 1 edio, Cap.2 p86, p214 - ISBN: 978-85-7522-106-8.
MANGVE (2009). Portal do Movimento de fomento Governana gil em TIC. Disponvel: <www.
mangve.org>. Acesso em: 30/09/2009.

ITGI (2009). Information Technology Governance Institute. Disponvel em: <http://www.itgi.


org/>. Acesso em: 13/01/2009.

MENDEL, T. & PARKER, A. (2005). Not all ITIL processes are created equal. Network World, March
16. Disponvel em: < http://itpapers.techrepublic.com/abstract.aspx?docid=148585&promo=300
111&tag=wpr.7106,6202>. Acesso em: 02/10/2009.

ITIL (2009). INFORMATION TECHNOLOGY INFRASTRUCTURE LIBRARY. Disponvel em: <http://www.


itil.co.uk/>.Acesso em: 10/01/2009.

NORTON, P. (1997). Introduo Informtica. So Paulo: Makron Books.

itSMF (2008), IT Service Management Forum; An Introductory Overview of ITIL V3. Disponvel
em: <http://www.best-management-practice.com/gempdf/itSMF_An_Introductory_Overview_
of_ITIL_V3.pdf>. itSMF . Acesso em: 23/01/2009.
ItSMF (2009). Information Technology System Management Forum web site.Disponvel em: <
http://www.itsmf.net)>. Acesso em: 01/10/2009.
KAPLAN, R.S.; NORTON, D.P. (1997). A Estratgia em Ao: Balanced Scorecard. 22. Edio. Rio de
Janeiro: Campus.
KENN, Peter G. W. (1996). Guia Gerencial para a tecnologia da informao: Conceitos essenciais e
terminologia para empresas e gerentes. Rio de Janeiro: Campus, 1996.
KOSHINO, L. (2004). SERPRO apresenta no Congresso Nacional de Informtica Pblica, em Braslia,
suas solues em governana de TI. Revista Tema - Ano XXVIII - Edio 175, p. 23-25, setembro/
outubro 2004.
LOBATO, D. M. (2000). Administrao Estratgica uma viso orientada para a busca de vantagens
competitivas. Rio de Janeiro: Editorao.
LUFTMAN, J.N.; LEWIS, P.R. e OLDACH, S.H. (1993):Transforming The Enterprise: The Alignment Of
Business And Information Technology Strategies. IBM Systems Journal, v.32, n.1, p.198-221, 1993.
LUNA, A. J. H. de O. (2009). MAnGve: Um Modelo para Governana gil em Tecnologia da Informao
e Comunicao. Programa de Ps-graduao stricto sensu em Cincia da Computao. Centro de
Informtica, Universidade Federal de Pernambuco. Dissertao de Mestrado. Disponvel em: <
www.cin.ufpe.br/~ajhol/mangve>. Acesso em: 17/12/2009.

OGC (2009). Office of Government Commence web site. Disponvel em: <http:// www.ogc.gov.uk>.
Acesso em: 01/10/2009.
PMI (2008). Guide to the Project Management Body of Knowledge (PMBOK Guide, 2008, 4th
Edition), Project Management Institute, Newtown Square, PA, vol. 1.
REZZY, O. (2007). Sarbanes-Oxley: Progressive Punishment for Regressive Victimization. Houston
Law Review,Vol. 44, No. 1, p. 95. Disponvel em: <http://papers.ssrn.com/sol3/papers.cfm?abstract_
id=978834>. Acesso em: 22/01/2009.
SEI. Software Engineering Institute (2009). Disponvel em: <http://www.sei.cmu.edu/ cmmi/> .
Acesso em: 05/09/2009.
SOX (2002). SARBANES , Paul; OXLEY, Michael. Sarbanes-Oxley Act. Congress of United States
of America, 30/07/2002. Disponvel em: <http://news.findlaw.com/hdocs/docs/gwbush/
sarbanesoxley072302.pdf>. Acesso em: 05/10/2009.
STEINBUCH, K. Informatik: Automatische Informationsverarbeitung.
(Technische Mitteilungen der Standard). Berlin, 1957.

(SEG-Nachrichten)

UNESCAP United Nations (2009). An Introduction to good governance by the United Nations
Economic and Social Commission for Asia and the Pacific. Disponvel em: <http://www.unescap.
org/huset/gg/governance.htm>. Acesso em: 22/01/2009.
WEILL, P. & ROSS, J. W. (2005).GOVERNANA DE TI - TECNOLOGIA DA INFORMAO. 1. Edio. So
Paulo. M.Books do Brasil. ISBN: 8589384780.

Edio 25 - Engenharia de Software Magazine

31

Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software

Ferramentas para Gerncia de Projetos


Conhea as principais caractersticas das ferramentas mais populares

Marco Antnio Pereira Arajo

Jurema Florinda Lembe de Veiga

De que se trata o artigo?

maraujo@devmedia.com.br

jurveiga@hotmail.com

Doutor e Mestre em Engenharia de Sistemas e


Computao pela COPPE/UFRJ. Especialista em
Mtodos Estatsticos Computacionais e Bacharel
em Matemtica com Habilitao em Informtica
pela UFJF. Professor e Coordenador do curso de Bacharelado em Sistemas de Informao do Centro de
Ensino Superior de Juiz de Fora. Professor do curso
de Bacharelado em Sistemas de Informao da
Faculdade Metodista Granbery. Professor do curso
de Bacharelado em Cincia da Computao da
Faculdade Governador Ozanam Coelho. Professor e
Diretor do Curso Superior de Tecnologia em Anlise
e Desenvolvimento de Sistemas da Fundao Educacional D. Andr Arcoverde, Analista de Sistemas
da Prefeitura de Juiz de Fora. Editor da Engenharia
de Software Magazine.

Graduada em Sistemas de Informao pela Faculdade Metodista Granbery.

Este artigo apresenta uma viso abrangente das


ferramentas de gerenciamento de projetos MS
Project, Gantt Project, dotProject e Project
Open.

Patrcia Lima Quinto


pquintao@gmail.com

Mestre em Engenharia de Sistemas e Computao


pela COPPE/UFRJ. Especialista em Gerncia de
Informtica e Bacharel em Informtica pela UFV.
Professora e Coordenadora Pedaggica do curso
de Ps Graduao em Segurana da Informao da
Faculdade Metodista Granbery. Professora do curso
de Bacharelado em Sistemas de Informao da Faculdade Metodista Granbery e do curso de Tecnologia em Redes de Computadores da Faculdade Estcio de S de Juiz de Fora. Supervisora de Segurana
da Informao da Prefeitura de Juiz de Fora.

32

o desenvolvimento de um
projeto existe a necessidade de
um gerenciamento de projetos
adequado, aplicando tcnicas para o
auxlio do controle das pessoas envolvidas e dos servios atribudos a elas,
preocupandose com os prazos, custos
e benefcios de cada produto.
Para tanto, o uso de ferramentas para
gerenciamento de projetos indispensvel, uma vez que contribui para auxiliar
e prover de forma rpida e eficiente as
informaes necessrias para o correto
controle e acompanhamento on-line do
trabalho realizado.
Nesse contexto, este artigo destaca
quatro ferramentas para gerenciamento de projetos existentes no mercado:
o MS Project - um sistema desktop
desenvolvido pela Microsoft; o Gantt
Project - um sistema desktop, gratuito de

Engenharia de Software Magazine - Ferramentas para Gerncia de Projetos

Para que serve?


Apresentar essas ferramentas, destacando como podem auxiliar e prover de forma rpida e eficiente as
informaes necessrias para um efetivo controle e
acompanhamento on-line do trabalho realizado.

Em que situao o tema til?


Conhecer ferramentas de gerenciamento de
projetos cada vez mais importante na medida
em que uma organizao avana em seu nvel de
maturidade de gerenciamento de projetos. Nesse
contexto, a utilizao desse tipo de ferramenta
propicia padronizao de mtodos e processos e
a disponibilizao de informaes em tempo real
ao alcance de toda a equipe do projeto, aumentando a qualidade do gerenciamento e as chances de alcanar os objetivos traados.

cdigo aberto; o dotProject - um sistema


desktop e distribudo sob a licena GNUGPL; e o Project Open - um aplicativo de

Ges to de Projetos

cdigo aberto baseado na Web, ressaltando sua importncia


no auxlio para a gerncia de projetos.
Sero apresentadas as caractersticas principais de cada
ferramenta, como calendrios, definio de tarefas, grficos
utilizados, servio de envio de e-mail e o tipo de licenciamento,
alm de traar um comparativo entre elas.

Ferramentas para Gerenciamento de Projetos


A adoo de ferramentas de gerenciamento de projetos pelas
organizaes efetivamente gera resultados positivos, propiciando padronizao de mtodos e processos de trabalho,
alm da disponibilizao de informaes em tempo real ao
alcance de toda a equipe envolvida no projeto, aumentando
a qualidade do gerenciamento e as chances de alcanar os
objetivos traados.
A seguir so apresentadas de forma sucinta as quatro ferramentas de gerenciamento de projetos propostas para este
artigo. So elas: o MS Project, o Gantt Project, o dotProject e
o Project Open.

acompanhamento do cronograma importante, assim como


a necessidade de us-lo em diversos sistemas operacionais e
sua facilidade de uso.
dotProject
O dotProject uma ferramenta de gerncia de projetos de
software livre e cdigo aberto, distribudo sob a licena GNUGPL, ou seja, os seus usurios podem copiar gratuitamente a
ferramenta, fazer a instalao, fazer alteraes para melhor-la
e at mesmo distribu-la novamente desde que a licena seja
mantida.
O dotProject tem como objetivo proporcionar ao gerente
de projeto uma ferramenta para gerenciar e compartilhar as
tarefas, horrios, datas, e-mail e comunicao, dentre outras,
conforme mostra a Figura 2. Esta ferramenta utilizada em
vrias aplicaes e ambientes, desde pequenos escritrios,
pessoas que querem gerir a sua prpria carga de trabalho,
empresas, departamentos governamentais, organizaes sem
fins lucrativos e escolas.

Gantt Project
O Gantt Project uma ferramenta de gerenciamento de projeto de acesso gratuito, de cdigo aberto, baseado no grfico de
Gantt. O software um sistema desktop que possui interface
de fcil entendimento, conforme mostrado na Figura 1, que
representa a tela inicial do Gantt Project, com todos os seus
recursos iniciais para comear a cadastrar as informaes de
um projeto.

Figura 2. Tela de um projeto no dotProject

Figura 1. Tela inicial do Gantt Project

Esta ferramenta possui o recurso de dividir o projeto em


uma rvore de tarefas e atribu-las ao responsvel de cada
uma, podendo criar dependncias entre as tarefas, alm da
gerao de relatrios nos formatos PDF e HTML, associao
com aplicativos de planilha eletrnica, intercmbio com o
Microsoft Project, envio de e-mail para pessoas diretamente
envolvidas no projeto, definio de calendrios com feriados,
e definio de novos atributos para as atividades.
O Gantt Project est traduzido para o portugus do Brasil,
e trata-se de uma aplicao desenvolvida em Java e que roda
em Windows, Linux, MacOSX e outros sistemas operacionais
que suportem a linguagem Java. O grande destaque dessa
ferramenta sua grande facilidade de uso e a clareza da interface. recomendada para situaes em que a definio e

Essa ferramenta baseada na Web, e foi desenvolvida em


PHP, mas tambm pode ser instalada em Windows, e pode
ser utilizada em diferentes sistemas operacionais. Tem como
diferencial a sua operao via Web e o uso de um banco de
dados SQL, proporcionando bastante flexibilidade no uso
dos dados.
O seu funcionamento requer um servidor Web integrado com
suporte PHP e MYSQL e um navegador Web. O dotProject
recomendado para departamentos ou empresas em situaes
cujo o foco a agenda de tarefas dos membros da equipe,
gerenciamento da documentao associada aos projetos e
apropriao de horas trabalhadas, com menos nfase na manipulao de cronograma.
Project Open
O Project Open um aplicativo de cdigo aberto baseado na
Web, e usado por vrias empresas que utilizam o sistema para
gerenciar seus negcios. O software permite o monitoramento

Edio 25 - Engenharia de Software Magazine

33

e o planejamento do projeto, permite a utilizao de grficos


de Gantt atravs de interface com outras ferramentas, como a
Gantt Project, calcula perdas e lucros por projetos e clientes, e
define os oramentos do projeto baseados em tempo ou custo
absoluto.
O software tem como principais objetivos a administrao
dos custos de um projeto e a colaborao entre os membros da
equipe, possuindo uma rea colaborativa do tipo Wiki (pgina
Web editvel pelo usurio; ideal para trabalho colaborativo) e
chat. Os projetos podem ser estruturados em qualquer nvel
de subprojetos e projetos-tarefas. Alguns destes componentes
so mostrados na Figura 3.

Figura 3. Tela ProjectOpen

Os projetos e subprojetos permitem atribuir permisses de


acesso para os membros envolvidos, enquanto que os projetos/tarefas servem para monitorar o projeto e para registrar
o avano e dedicao dos colaboradores. A ferramenta possui
ainda um importador de contatos do Outlook, arquivo de
armazenamento do projeto, chat, notcias, pesquisa de texto
completo, dentre outras funcionalidades.
A ferramenta trabalha com os bancos de dados PostgreSQL
e Oracle, no est disponvel em portugus, mas como se
trata de software livre, pode ser adaptada s necessidades
da empresa. O Project Open uma ferramenta apropriada
para empresas que esto dispostas a investir em tecnologias
alternativas e procuram um sistema slido, focado nos custos
e na colaborao das equipes.
Microsoft Project
O Microsoft Project (MS Project) um software desenvolvido
pela Microsoft, cuja primeira verso foi lanada em 1985, e
desde ento tem sofrido inmeras modificaes que vo desde
o layout a requisitos funcionais, aumentado assim a oferta de
servios e recursos com relao gerncia de projetos.

34

O MS Project um software desktop desenvolvido para


gerenciar projetos simples ou complexos, e permite planejar,
organizar e gerenciar as tarefas e recursos para alcanar um
objetivo definido com restries de tempo, custos e recursos.
uma ferramenta utilizada para o gerenciamento de projetos,
e oferece vrios recursos para auxiliar o usurio nessa tarefa,
fornecendo a possibilidade de melhor controle de suas atividades, mais segurana, agilidade e eficcia em seus processos,
alm de possuir uma interface grfica simples e de fcil uso,
mesmo para quem no conhea a ferramenta (FIGUEIREDO
e FIGUEIREDO, 2001).
O software possui um ambiente padro de trabalho chamado
Grfico de Gantt, a partir do qual se pode ter uma visualizao
mais ampla e detalhada do projeto, que se baseia no modelo
de diagrama de rede, utiliza tabelas no processo de entrada
de dados, e as relaes de procedncia entre as tarefas so do
tipo fim-incio (a segunda tarefa iniciada quando a primeira
estiver concluda), fim-fim (as duas tarefas terminam ao mesmo tempo), incio-incio (ambas as tarefas iniciam ao mesmo
tempo) e incio-fim (acontece quando o trmino de uma tarefa
depende do incio da tarefa seguinte).
O MS Project permite que as tarefas ocorram de forma recorrente, possui um recurso que permite agrupar, classificar e
filtrar tarefas, um conjunto padro de relatrios, mas o usurio
pode criar seus prprios relatrios, e permite a incluso de
campos do usurio.
O software permite ainda que sejam definidos a semana e
expediente de trabalho, os feriados e o uso de datas programadas para as tarefas. Os recursos, assim como os custos do
projeto, esto ligados diretamente s tarefas. Como padro, o
MS Project agenda todas as tarefas a comearem na data de
incio do projeto (a menos que se especifique algo diferente),
e calcula a data de trmino como base na ltima tarefa a ser
concluda.
Outras caractersticas principais so a capacidade de gerenciar e entender efetivamente as agendas do projeto, obter
produtividade rapidamente, aproveitar dados existentes, criar
grficos e diagramas profissionais, comunicar informaes
com eficincia, obter maior controle sobre os recursos e finanas, acessar rapidamente informaes diversas, controlar
os projetos e personalizar a ferramenta de acordo com suas
necessidades, alm de obter ajuda quando necessrio.

Quadro Comparativo entre as Ferramentas


Na Tabela 1 feito um comparativo das ferramentas apresentadas, no qual possvel ver as informaes bsicas de
cada uma delas.
Percebe-se que as quatro ferramentas possuem igualmente
recursos de calendrio, relatrios e envio de e-mail. Enquanto
o MS Project possui tipo de licena paga, os outros trs possuem licena gratuita. Quanto interface, a do Project Open
de uso mais complexo, comparada s demais. Em relao
instalao, o Gantt e o MS Project so mais simples. Gantt Project e MS Project so acessveis atravs do desktop, enquanto
dotProject e Project Open necessitam de um servidor Web. Por

Engenharia de Software Magazine - Ferramentas para Gerncia de Projetos

Ges to de Projetos

FERRAMENTA

RECURSOS
Gantt Project

dotProject

Project Open

MS Project

Interface Grfica

Simples

Simples

Complexa

Simples

Instalao

Simples

Complexa

Complexa

Simples

Tipo de Licena

Gratuita

Gratuita (GNU-GPL)

Gratuita

Paga

Acessibilidade

Desktop

Web

Desktop

Intercmbio

MS Project

No

Web
Gantt
Project

Grfico Utilizado

Grfico de Gantt

Grfico de Gantt

No

Grfico de Gantt

Calendrio

Sim

Sim

Sim

Sim

Relatrios

Sim

Sim

Sim

Sim

Envio de e-mail

Sim

Sim

Sim

Sim

Gantt Project

Tabela 1. Quadro comparativo entre as ferramentas

fim, enquanto o Project Open no disponibiliza diretamente


o Grfico de Gantt para a realizao de sequncia de tarefas,
este grfico utilizado pelas trs outras ferramentas.

Um exemplo prtico
Agora que os conceitos relativos s ferramentas j foram
apresentados, poderemos entender como eles so aplicados
na prtica atravs de um projeto no MS-Project.
Como o gerenciamento de projetos envolve muitas etapas,
o gerente de projetos deve saber controlar todas as etapas do
projeto desde o planejamento at a sua concluso. O MS Project
vem auxiliar o gerente no seu trabalho, possibilitando planejar,
controlar e comandar o projeto de forma rpida e eficiente,
aumentando as chances de sucesso e oferecer um produto de
qualidade ao usurio final.
A Figura 4 destaca os principais elementos do ambiente MS
Project:
Menu Principal: a barra que contm todos os comandos
do MS Project.
Barra de Ferramentas: a barra que contm todos os comandos mais utilizados, e pode ser personalizada pelo usurio de
acordo as suas necessidades.
Barra de Tarefas: contm opes para as tarefas mais utilizadas pelo usurio.
rea de Tabelas: onde so cadastradas as tarefas do projeto, com nome, durao, data de incio e de fim, e tarefas de
precedncia.
Grfico de Gantt: nessa rea aparecem as visualizaes
grficas das tarefas medida que so descritas e vinculadas
umas s outras.
Iniciar um Projeto
Antes de iniciar o projeto, necessrio conhecer alguns
conceitos bsicos e importantes da ferramenta que ajudaro
a entend-la melhor:
Tarefas so todas as fases do projeto, e possuem cdigo, nome,
durao, tarefa precedente, data de incio e fim, e podem ser
do tipo fim-fim, fim-incio, incio-incio e incio-fim.

Recurso toda pessoa que trabalha diretamente no


projeto.
Custo o valor gasto na compra de material que ser usado
no projeto, e deve ser definido diretamente na tarefa.
Durao o tempo necessrio para completar a tarefa, que
pode exigir horas, dias, semanas ou meses, e quanto maior o
tempo, maior ser o custo do projeto.

Figura 4. Ambiente do MS Project

Para criao do projeto, ser usado o exemplo da Tabela 2,


que se refere s etapas de construo da fundao de uma casa.
Este exemplo est apresentado em dias, mas poderia estar em
horas, semanas ou meses.
Definir o Projeto
Para criar o projeto, basta clicar em Define the Project (Definir
o Projeto) na barra de tarefas. O programa ir abrir uma tela
pedindo que seja informada a data de incio do projeto. Como

Edio 25 - Engenharia de Software Magazine

35

padro, o MS Project usa a data atual como data de incio


do projeto, caso contrrio, outra data deve ser informada. A
Figura 5 apresenta o calendrio para escolha da data de
incio do projeto.

ou seja, fica a critrio do gerente definir as horas e os dias


de trabalho. Nessa fase so definidos ainda os dias de folga,
feriados, semanas de trabalho, que so editveis diretamente
no prprio calendrio ou ainda criar um novo calendrio de
acordo as necessidades do projeto.
Listar as Tarefas do Projeto
Conforme descrito anteriormente, tarefas so todas as fases
do projeto e podem ser do tipo fim-fim, fim-incio, incio-fim e
incio-incio. Para listar as tarefas basta clicar em List the Tasks
in the Project (Listar as Tarefas do Projeto) na barra de tarefas,
depois s comear a cadastrar as tarefas. A Figura 7 mostra
as tarefas do projeto que foram cadastradas.

Figura 5. Definir a data de incio do projeto


CDIGO

Figura 7. Listar as tarefas do projeto

NOME DA TAREFA

DURAO

PRECEDNCIA

Preparar o terreno

1d

Desenhar a planta no cho terreno

1d

Cavar o terreno conforme o desenho

2d

Preparar a massa

1d

Colocar a massa nos buracos

2d

Esperar a massa secar

3d

Fim fundao

0d

medida que as tarefas do projeto forem sendo listadas na


rea correspondente, elas sero representadas graficamente
no grfico de Gantt de acordo com a sua durao, conforme
mostra a Figura 8.

Tabela 2. Tarefas do projeto

Definir as Horas de Trabalho


Depois de definida a data de incio, pode-se definir as horas de
trabalho clicando em Define General Working Times (Definir Horas
de Trabalho) na barra de tarefas, conforme mostra a Figura 6.

Figura 8. Tarefas do projeto e grfico de Gantt

O prximo passo, dentro da fase de listar tarefas, organizar o projeto de acordo com a hierarquia das tarefas; para
isso, necessrio selecionar a opo Organize Tasks Into Phases
(Organizar as Tarefas em Fases), e selecionar as tarefas que se
tornaro subtarefas. Com as tarefas selecionadas, clique na seta
que se encontra no lado esquerdo da Barra de Tarefas, que elas
se ajustaro automaticamente (Figura 9).

Figura 6. Definir as horas de trabalho do projeto

Como padro, o MS Project usa o calendrio de oito horas


dirias de trabalho de segunda a sexta-feira, contudo, as horas
de trabalho podem variar de acordo as necessidades do projeto,

36

Figura 9. Hierarquia das tarefas

Engenharia de Software Magazine - Ferramentas para Gerncia de Projetos

Ges to de Projetos

As datas das tarefas podem ser alteradas sempre que necessrio sem afetar o projeto, pois o Project reagendar automaticamente a durao das tarefas caso a data de incio, a durao
ou data de trmino forem alteradas.
Criar Dependncia Entre as Tarefas
Aps seguir todos os passos descritos anteriormente, devese criar as dependncias entre as tarefas. Na Barra de Tarefas
deve-se clicar na opo Schedule Tasks (Dependncia Entre
Tarefas), e ser aberta uma lista explicando os tipos de dependncias que o Project oferece. Aps isso, devem-se selecionar
as tarefas dependentes e clicar no tipo de dependncia desejada. Dessa maneira, as tarefas se ajustaro automaticamente
no grfico de Gantt, conforme a Figura 10.
Para quebrar a dependncia j criada, basta selecionar as
tarefas desejadas e clicar no cone de quebra de dependncia
que se ajustar automaticamente no grfico. Com a criao
das dependncias entre as tarefas, possvel ter uma viso
mais abrangente do planejamento do projeto e saber tambm
quantos dias durar a sua execuo.

Figura 10. Dependncia entre tarefas

Adicionar Recursos ao Projeto


Aps a criao das tarefas, pode-se adicionar os recursos s
tarefas para que elas possam ser executadas. Para isso, deve-se
clicar na opo Resource Sheet na Barra de Tarefas, que abrir
uma tela com todas as informaes dos recursos. A Figura 11
mostra alguns recursos inseridos com as informaes bsicas,
tais como nome, tipo do recurso, unidade mxima, custo por uso
do recurso, dentre outras informaes que podem ser editveis
pelo usurio.

Figura 11. Adicionar recursos ao projeto

Com os recursos adicionados ao projeto, o prximo passo


adicion-los s tarefas. Para isso, basta dar um duplo clique
na tarefa em que se quer adicionar o recurso, em seguida, o

programa abrir uma tela com informaes sobre a tarefa. Na


aba Resources (Recursos), em Resources Name (Nome do Recurso) possvel escolher o recurso inserido anteriormente para a
tarefa desejada, e tambm outras opes oferecidas. Os recursos
alocados s tarefas aparecero no grfico de Gantt, conforme a
Figura 12.

Figura 12. Recursos alocados as tarefas

Aps a concluso de todo o planejamento descrito, deve-se


salvar as informaes do projeto que sero utilizadas em sua
fase de execuo. Para isso, basta clicar em File (Arquivo) no
menu principal, e em seguida clicar Save (Salvar).
Salvar a Linha de Base do Projeto
A linha de base do projeto uma maneira de salvar o
projeto a fim de fazer futuras comparaes, ou seja, se salva
o projeto de forma que no decorrer, ou trmino do projeto,
seja possvel fazer uma comparao do previsto/realizado
do planejamento inicial com o atual. Como exemplo, podese usar o projeto simulado neste estudo, o custo inicial da
areia, que poderia aumentar por motivos de inflao, fazendo assim com que ocorram mudanas no planejamento
inicial do projeto.
Para salvar a linha de base do projeto, basta clicar em
Track (trilha), em seguida, escolher a opo Save a Baseline
Plan to Compare With Later Versions (Salvar Linha de Base do
Projeto para Comparar com Futuras Verses). Na barra de
tarefas aparecer uma tela explicando por que importante
fazer esse procedimento, em seguida clica-se no boto Save
Baseline (Salvar Linha de Base). A Figura 13 mostra os procedimentos descritos.
importante lembrar que o MS Project permite salvar at
onze linhas de base do projeto. Na prxima vez que o projeto
for aberto, o Project ir perguntar se necessrio salvar uma
nova linha de base, ou atualizar a base j existente do projeto, pois possvel que o anterior tenha ficado obsoleto.
Diagrama de Rede e Uso de Tarefas
No MS Project, o projeto pode ser visualizado de vrias formas, uma delas atravs do Diagrama de Rede, ou Diagrama
de Precedncias, que exibe a precedncia entre as tarefas. Para
acessar o diagrama, clique em Network Diagram (Diagrama de
Rede) na barra de modos. Os passos descritos esto demonstrados na Figura 14.
No diagrama de rede possvel visualizar informaes como
a data de incio e fim de cada tarefa, a durao, bem como o
responsvel por ela.

Edio 25 - Engenharia de Software Magazine

37

Outra forma de visualizao do projeto atravs do Uso


das Tarefas, em que possvel visualizar com mais detalhes
as informaes de cada uma delas. Esse recurso permite
uma visualizao mais abrangente da alocao dos recursos
disponveis para a execuo de cada tarefa. Para acessar esse
recurso, basta clicar em Task Usage (Uso da Tarefa) na Barra
de Tarefas, em seguida aparecer a tela com as informaes
de cada tarefa. Como exemplo, pode-se observar a tarefa seis,
na Figura 15, cujas informaes so as seguintes: esto alocados Joo e Tiago, cada um com total de horas trabalhadas
de 16h, sendo 8 horas dirias totalizando 32h de trabalho
no projeto, a durao da tarefa que de dois dias, sendo que
comea no dia treze e termina no dia dezesseis.

Emitir Relatrios do Projeto


Os relatrios so de grande importncia para o projeto, pois
atravs deles possvel ter uma viso geral do projeto, e explicar aos participantes algumas informaes que no aparecem
nos diagramas. Para acessar as opes de relatrios deve-se
clicar em Report (Relatrio), em seguida selecionar a opo Reports (Relatrios) que abrir uma janela como a da Figura 17.

Figura 15. Uso das tarefas

Figura 16. Adicionar coluna

Figura 13. Salvar linha de base

Figura 14. Diagrama de rede

O MS Project deixa a critrio do usurio o acrscimo de


outras colunas, alm das consideradas padro. Para acrescentar outra coluna, basta selecionar uma coluna, clicar o boto
direito do mouse e escolher a opo Insert Column (Inserir
Coluna). O programa abrir uma janela com vrias opes de
campos, como mostrado na Figura 16. Aps isso, se escolhe a
coluna que se deseja acrescentar e clica-se em ok.

38

Figura 17. Emitir relatrio

Como se pode observar pela figura, so vrias as opes de


relatrios que o Project pode emitir, dentre elas: Overview (Viso Geral), na qual o usurio tem uma viso geral do projeto;
Current Activities (Tarefas Atuais), que d uma viso das tarefas
sendo executadas; Costs (Custos), que d uma viso do custo
geral do projeto e Assignments (Atribuies), que oferece a viso
das atribuies de cada recurso envolvido no projeto.

Engenharia de Software Magazine - Ferramentas para Gerncia de Projetos

Ges to de Projetos

Concluso

detalhas, observamos o uso da ferramenta MS Project, que


um poderoso instrumento na gerncia de projetos.

www.devmedia.com.br/esmag/feedback

DotProject - http://dotproject.net/
FIGUEIREDO, Francisco Constant de; FIGUEIREDO, Hlio Carlos. Dominando gerenciamento de
projetos com MS Project 2000. Rio de Janeiro: Cincia Moderna, 2001.

sobre e
s

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


Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:

Referncias

Feedback
eu

edio
ta

D seu feedback sobre esta edio!

D
s

As ferramentas apresentadas vieram para ajudar os gerentes a


ter um melhor controle do andamento de seus projetos. Neste
artigo, foi apresentada uma viso abrangente das ferramentas
de gerenciamento de projetos MS Project, Gantt Project, dotProject e Project Open. Alem disso, com um pouco mais de

Microsoft Project - http://www.microsoft.com/brasil/pr/ms_project.htm


Open Project - http://www.project-open.org
Gantt Project - http://ganttproject.biz/

Existem coisas
que no conseguimos
ficar sem!

COMIDA

...s pra lembrar,


sua assinatura pode
estar acabando!

Renove J!

www.devmedia.com.br/renovacao
Para mais informaes:
www.devmedia.com.br/central

Edio 25 - Engenharia de Software Magazine

39

Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software

Reportando de forma simples os resultados


dos testes
Tcnicas simples e objetivas para reportar os resultados das atividades de testes
De que se trata o artigo?
Este artigo apresenta uma maneira simples e objetiva para reportar os resultados dos testes funcionais, sejam eles dirios ou finais, assim como os
benefcios que podem ser extrados a partir das informaes e estatsticas geradas por um resultado
ou por um conjunto deles.

P
Daniel Scaldaferri Lages
dlages@gmail.com

Possui MBA em Gerncia de Projetos pela


Fundao Getlio Vargas, ps-graduado em
Gerncia de T.I. pela Universidade FUMEC e Bacharel em Cincia da Computao pela UFMG.
Atualmente Coordenador da equipe de Quality Assurance da CPM Braxis, filial BH. Sua experincia profissional inclui o cargo de Analista
de Testes no Synergia (ncleo de engenharia
de software do Departamento de Cincia da
Computao da UFMG), Gerente da fbrica de
software na Unitech (hoje CPM Braxis) e docncia no curso de graduao de Sistemas de
Informao na PUC-MG. Possui a certificao
ITIL para gerenciamento de servios de T.I.
certificado em testes de software pela ISTQB e
em qualidade de software pela IBM.

40

ara todas as atividades planejadas e executadas dentro de um


projeto, seja ele de desenvolvimento de software, ou de qualquer outra
natureza, existe a necessidade de que o
progresso das atividades seja reportado
e os resultados finais ou parciais sejam
apresentados s pessoas envolvidas.
So vrios os interessados nessas informaes, entre eles, o cliente, o gerente
do projeto, o patrocinador e as equipes
responsveis pelas demais etapas do
processo de desenvolvimento do software. Com as informaes do progresso,
seja um status report dirio, semanal, ou
com alguma outra periodicidade que
seja interessante para o projeto (a periodicidade ideal ir depender da durao
do projeto e do custo do controle, pois
quanto maior o controle maior o custo),

Engenharia de Software Magazine - Reportando de forma simples os resultados dos testes

Para que serve?


O artigo poder auxiliar, de uma maneira prtica, os
profissionais de testes que necessitam reportar os
seus resultados, apresentando exemplos simples e
de fcil implementao, para que possam agregar
ao seu processo. Serve tambm para mostrar os
motivos e benefcios do reporte dos resultados.

Em que situao o tema til?


Com os recursos do flashback possvel:
Para empresas e profissionais que possuem
interesse em criar mecanismos (ou apenas
complement-los) para reportar os resultados
das atividades de testes, juntamente com a definio do contedo necessrio e suficiente.

os envolvidos tero base para a tomada


de decises, uma vez que ser possvel
comparar o status atual com o planejado.

Validao, Verificao & Teste

J as informaes referentes aos resultados serviro como


lies aprendidas (positivas ou negativas) para os prximos
projetos ou para as prximas fases do projeto.
Para as atividades de Teste de Software no diferente. De
acordo com o Quality Assurance Institute [QAI] os testadores
devem possuir habilidades para reportarem suas atividades
de forma clara e precisa. Eles devem se basear no Plano de Testes, pois as informaes apresentadas no podem estar soltas,
e sim dentro de um contexto, que envolve algumas variveis
importantes, como prazo, esforo, complexidade, ambiente,
escopo, equipe etc. Essa questo reforada por [MARICK]
no seu artigo Classic Testing Mistakes, que classifica como
um erro clssico os grficos e relatrios que so apresentados
fora de um contexto.
Um exemplo trivial apresentado atravs da comparao
entre dois projetos, A e B. Ambos apresentam percentual de
concluso igual a 80%. Mas esse valor no diz nada sozinho. De
nada adianta apresentar o percentual de concluso dos testes
se no sabemos qual o prazo para concluso, pois nada indica
se essa data ser ou no cumprida. Para ajudar a encontrar
um indcio das chances de sucesso, os grficos da Figura 1
apresentam duas novas variveis: a data final e o histrico do
progresso dos testes. Com essas informaes a chance de se
prever o futuro aumenta. possvel deduzir que o projeto A
no cumprir o prazo, pois resta apenas um dia e o histrico
do progresso de 5% ao dia. J o projeto B, de acordo com
o mesmo histrico de progresso de 5% ao dia, ser possvel
chegar aos 100% no dia 16/12.

rapidamente, principalmente se nenhuma falha for encontrada.


O inverso poder se revelar no Projeto A, que mesmo com
muitos testadores, no conseguir finalizar os testes no prazo
definido devido complexidade dos casos de uso.
A mensagem principal aqui que os relatrios e grficos
devem estar dentro de um contexto muito bem definido,
apresentando o maior nmero de informaes (variveis)
possveis.
De acordo com o [QAI] existem duas categorias principais de
relatrios que podem ser apresentados: relatrios correntes
dos testes e relatrios finais dos testes. A primeira categoria
trata-se da apresentao do andamento atual dos testes, ou
seja, resultados apresentados durante as atividades de testes.
J a segunda, como o prprio nome diz, no final de uma atividade de testes. Cada uma das categorias ser apresentada
nos prximos itens.

Relatrio Corrente dos Testes


Esta categoria de relatrios bastante importante para o
gerenciamento do projeto. Os responsveis pela tomada de
decises precisam ser munidos de informaes do andamento e da qualidade do projeto. Nada mais interessante do que
obt-las atravs da perspectiva dos testadores. Esses relatrios
devem ser gerados com uma periodicidade que seja interessante, servindo como ferramenta pr-ativa para o projeto. O status
report no precisa ser complexo, mas precisa ser claro, objetivo
e, como j dito, contextualizado. As sugestes e os exemplos
apresentados a seguir consideram uma frequncia diria.
Antes de seguir, bom frisar que, apesar de estarem inseridos dentro desta categoria, os relatrios individuais sobre as
falhas encontradas durante a execuo dos testes que esto
em processo de anlise/correo no sero abordados nesse
artigo. Apenas um resumo geral do conjunto das falhas
informado no status report. Boas prticas para o registro e
acompanhamento das falhas rendem assunto suficiente para
outro artigo inteiro.

Figura 1. Progresso dos testes para os projetos A e B

Mas existem outras variveis que no so apresentadas no


grfico e que podem mudar todo o diagnstico realizado. Por
exemplo, pode ser que os casos de uso a serem testados no projeto B ainda no estejam liberados para testes, ou seja, ainda no
foram construdos. S sero liberados na manh do dia 16/12.
Considerando as mesmas condies de esforo de execuo
dos testes (nmero de testadores) e o progresso de 5% ao dia,
este cenrio indicar um atraso para o projeto B. Desta forma,
interessante que esse grfico seja apresentado juntamente
com as informaes de liberao de casos de uso para testes.
Outra varivel o esforo de execuo dos testes. Para o projeto
A foram disponibilizados mais trs testadores. Assim, ser
possvel atingir os 100% no dia 13/12, levando em considerao
que possvel dividir os testes entre os testadores.
Outras variveis ainda podem influenciar os prognsticos,
como por exemplo, a complexidade e a qualidade dos casos
de uso a serem testados. Nada impede que os casos de uso do
Projeto B a serem liberados sejam triviais e possam ser testados

Status Report Dirio


Como j informado, o objetivo principal desse status report
munir os lderes, gerentes e demais envolvidos de informaes
sobre a situao atual da atividade. um retrato da atividade.
Com ele torna-se possvel comparar a situao atual com a
planejada. Caso exista uma longa distncia entre elas, ou a
presena de sintomas de potenciais problemas, aes de modo
a contorn-los e elimin-los devem ser tomadas. Abaixo, so
apresentados e exemplificados alguns itens sugeridos para a
composio do status report. Tudo que ser apresentado so
sugestes, que podem ou no serem aceitas, ou adaptadas em
outros processos.
Percentual de Concluso
Este o item principal do status report. Todos os demais ajudaro a contextualiz-lo. Trata-se do percentual de concluso
da atividade. A Tabela 1 apresenta uma planilha que mostra o
percentual de concluso para a atividade de Elaborao de Casos

Edio 25 - Engenharia de Software Magazine

41

de Testes de um projeto fictcio, que contm cinco casos de uso.


Para que o percentual seja bem preciso, sugerido que os casos
de uso sejam detalhados em termos dos itens que devero ser
testados. No exemplo, os itens so: Fluxo Alternativo, Fluxo de
Exceo, Requisitos Especiais e Regras de Negcio. Para o UC_01
Efetuar Conferncia existem 14 itens ao todo: 3 fluxos alternativos, 4 fluxos de exceo, 1 requisito especial e 6 regras de
negcio. A coluna CTs Elaborados mostra a quantidade de itens
que j tiveram seus casos de testes elaborados. Para o UC_01,
foram finalizados 7 casos, o que significa 50% de concluso
deste UC. O mesmo clculo feito com os demais casos de uso,
e com a atividade como um todo.
A Tabela 2 sugere uma planilha para apresentar o percentual
de concluso da Execuo dos Casos de Testes. Alm de mostrar o
percentual de concluso, levando em conta a unidade Casos
de Testes, apresenta tambm o nmero de falhas registradas
por cada caso de uso.

A Figura 2 mostra outra forma de apresentao do percentual de concluso da execuo dos testes extradas da
ferramenta Testlink. O primeiro grfico mostra que 29% dos
casos de testes foram executados com sucesso e 5% executados com falhas. Os demais 66% ainda no foram executados.
No segundo grfico, 1% dos casos de testes est bloqueado,
ou seja, por algum motivo (por exemplo, falta de dados na
base ou dependncia da correo de alguma falha) no
possvel execut-los. A visualizao desses grficos melhor.
Entretanto, no exibem informaes por caso de uso, e sim
de forma geral.
A Figura 3 apresenta os dados do primeiro grfico de forma
tabular, complementando com informaes sobre a quantidade de casos de testes em cada situao em valores absolutos.
Como pode ser visto, so 58 casos de testes. Desses, 17 foram
executados com sucesso, 3 falharam e 38 ainda no foram
executados.

Status de Elaborao de Casos de Testes


Nome do Sistema

Sistema Fictcio

Nmero da Demanda

30450

Tipo do teste

Teste de Sistema

Data

20/3/2010

Responsvel

Daniel Lages
Nome UC

Fluxo Alternativo

Fluxo de Exceo

Requisitos Especiais

Regra de Negcio

CTs Elaborados

Perc. Por UC

UC_01 - Efetuar Conferncia

50,00%

UC_02 - Cadastrar Oportunidades

88,89%

UC_03 - Alterar Oportunidades

12

100,00%

UC_04 - Criar Atividades

11

100,00%

UC_05 - Enviar Oportunidades

10

22,73%

Total

15

18

32

43

Percentual Geral Casos de Uso Elaborados

63,24%

Tabela 1. Planilha de percentual de concluso da atividade de Elaborao de Casos de Testes


Status de Execuo de Testes
Nome do Sistema

Sistema Fictcio

Nmero da Demanda

30450

Tipo do teste

Teste de Sistema

Data

10/4/2010

Nome dos testadores

Karla Lages
N CTs

EXECUTADOS COM
SUCESSO

NO EXECUTADOS ou COM
FALHAS

Falhas
Pendentes

UC_01 - Efetuar Conferncia

14

10

71,43%

UC_02 - Cadastrar Oportunidades

100,00%

UC_03 - Alterar Oportunidades

12

33,33%

UC_04 - Criar Atividades

11

45,45%

UC_05 - Enviar Oportunidades

22

22

0,00%

Total

68

28

40

41,18%

58,82%

Nome UC

Percentuais

Tabela 2. Planilha de percentual de concluso da atividade de Execuo dos Testes

42

Engenharia de Software Magazine - Reportando de forma simples os resultados dos testes

Perc. Por UC

Validao, Verificao & Teste

Faltando apenas dois dias para terminar, apenas 19% da atividade foi concluda. Neste exemplo, j no primeiro dia era
possvel observar sintomas de potenciais problemas. Pois como
so apenas seis dias para executar a atividade, era esperado
no mnimo 17% de concluso. Portanto, alguma ao j teria
que ter sido tomada no primeiro dia.

Figura 2. Grfico de pizza para concluso da atividade de execuo dos


testes

Figura 3. Forma tabular para concluso da atividade de execuo dos testes

Figura 5. Progresso das atividades de testes com atraso no incio da tarefa

Como ressaltado na introduo, apenas essas informaes


sozinhas no dizem muita coisa. A seguir, os demais itens que
ajudam na contextualizao.
Progresso das atividades de Testes
O progresso dos testes mostra a evoluo da atividade ao
longo dos dias reservados para a realizao da mesma. A Figura 4 apresenta o grfico gerado no dia 18/03, um dia antes
do prazo final, 19/03. possvel perceber que essa atividade
transcorreu sem muitos problemas, com boa evoluo at o dia
15/03. Apenas um aperto entre os dias 15/03 e 16/03, e tambm
entre 17/03 e 18/03. A partir dessa informao, possvel agir
proativamente devido identificao de uma evoluo de
apenas 1% do dia 17/03 para 18/03. A pouca evoluo ao final
da atividade natural, uma vez que problemas encontrados ao
longo da atividade se tornam pendncias que so resolvidas
somente na concluso, gerando esse comportamento.

Figura 4. Progresso das atividade de testes com boa evoluo

J a Figura 5 apresenta um cenrio de alerta, pois ocorreu um


pequeno atraso no incio da atividade. Apesar do atraso, houve
uma boa evoluo de 58% em quatro dias (mdia de 14,5% ao
dia). Se essa mdia continuar assim, ser possvel concluir a
atividade no prazo final, pois no dia 19/03 teramos 72,6%; dia
22/03, 87,1%, e por fim, 100% no dia 23/03.
A Figura 6 apresenta um cenrio onde ser praticamente
impossvel realizar a atividade dentro do prazo determinado.

Figura 6. Progresso das atividades de testes com atraso previsto

Durante a execuo da atividade de testes pode ser que novos


casos de uso sejam acrescentados ou removidos, resultando
no aumento ou diminuio de casos de testes. Como consequncia, pode ser que o percentual de concluso diminua de um
dia para o outro. Nesse caso, basta colocar uma observao no
relatrio para que a diferena negativa seja justificada. Esse
relatrio pode ser aplicado tanto para execuo dos testes
quanto para a elaborao dos casos de testes.
Progresso de Liberao dos Casos de Uso
bastante interessante para os gerentes controlarem o progresso da liberao dos casos de uso para execuo dos testes.
Com esse controle possvel comparar o percentual concludo
em relao ao percentual disponibilizado. uma situao
diferente para o projeto, por exemplo, quando 40% dos testes
esto concludos com 100% dos casos de uso disponveis, de
quando 40% dos testes esto concludos com apenas 42% de
casos de testes disponveis. Para facilitar essa comparao deve-se
converter os casos de uso liberados em casos de testes liberados.
Por exemplo, caso existam 10 casos de uso no projeto, sendo que
os cinco primeiros possuem 5 casos de testes cada, os outros
cinco possuem 10 casos de testes cada, e apenas os 4 primeiros
casos de uso estejam liberados, teramos 26,67% de casos de
testes disponveis. Conta: (4*5) / (5*5 + 5*10) * 100. No primeiro
caso (100% disponvel) possvel, caso o gerente opte e possua
testadores disponveis, adiantar os testes, uma vez que existem

Edio 25 - Engenharia de Software Magazine

43

funcionalidades prontas a serem testadas. No segundo caso (42%


disponvel), mesmo que o gerente possua dois ou trs testadores
disponveis, de nada adianta, pois no existem funcionalidades a
serem testadas, apenas 2%. Caso as prximas liberaes estejam
planejadas para uma data distante, sinal que o testador ficar
ocioso nesse projeto (logicamente, dependendo da quantidade
de falhas registradas que ter que verificar).
Como foi demonstrado acima, a informao gerada pela
comparao entre o que foi realizado e o disponvel bastante importante. Esse controle da liberao dos casos de uso
bastante semelhante ao do progresso das atividades de testes.
Da mesma forma que se controla a disponibilidade dos casos
de uso implementados para execuo dos testes, pode-se controlar a disponibilidade dos casos de uso especificados para
elaborao dos casos de testes. A Figura 7 apresenta o par de
grficos que mostra a evoluo do percentual de concluso dos
testes e a evoluo do percentual de liberao de casos de uso,
j convertidos em casos de testes.

de serem executados, ou seja, dos liberados. A diferena recai


sobre os casos de testes que falharam, esto bloqueados, ou realmente ainda no foram executados. A informao sobre essa
diferena poder ser obtida no grfico apresentado na Figura 2.
Nessa situao, no possvel adiantar as atividades de testes.
Provavelmente o projeto ir atrasar, pois faltando apenas cinco
dias dos 17 planejados, apenas 55% dos casos de uso foram
implementados. A Figura 9 apresenta um cenrio que, desde
o primeiro dia, os testes poderiam ter sido adiantados.

Figura 9. Grfico unificado de Evoluo de Testes X Liberao de Casos


de Testes com grande diferena entre liberados e executados

Figura 7. Grfico de Evoluo de Testes comparado Liberao de Casos


de Testes

Resumo dos Incidentes


A quantidade de falhas registradas, e suas caractersticas, como
por exemplo, criticidade, prioridade e localizao, so fatores importantes e que influenciam o rumo da execuo dos testes (em
empresas responsveis, o rumo do projeto como um todo). Caso
muitas falhas estejam registradas, ou poucas falhas, mas sendo
crticas, a entrega do produto dever ser renegociada, ao invs de
se fazer vista grossa para as falhas apenas para cumprir o prazo.
No momento da homologao ou j em operao, a empresa
poder pagar caro o preo dos irresponsveis. Vale ressaltar que
quanto mais tarde a falha for encontrada, mais custosa torna-se a
correo. Portanto, bastante recomendado relatar no status report
a quantidade atual das falhas, assim como sua criticidade, e outras
informaes importantes para o projeto. A Figura 10 exemplifica
esse resumo, informando a situao das falhas por status e tambm por gravidade. A ferramenta utilizada o MANTIS.

Logicamente outras opes de grficos podem ser utilizadas


para facilitar a comparao, como o apresenta a Figura 8.

Figura 8. Grfico unificado de Evoluo de Testes X Liberao de Casos


de Testes com pouca diferena entre liberados e executados

A comparao mostra que o percentual dos casos de testes realizados est bastante prximo ao dos casos de testes possveis

44

Figura 10. Quadros retirados do MANTIS com informaes das falhas Por
Status e Por Gravidade

Engenharia de Software Magazine - Reportando de forma simples os resultados dos testes

Validao, Verificao & Teste

O primeiro quadro mostra: a quantidade de falhas atribuda


a algum desenvolvedor; a quantidade de falhas que j foi
admitida por um desenvolvedor (pode-se estabelecer que
este status indique que as falhas j esto sendo corrigidas); a
quantidade de falhas que j foram corrigidas e esto prontas
para verificao da correo; alm da quantidade que j foi
verificada, e, portanto, fechada. J o segundo quadro detalha
a quantidade de falhas nos status Aberto, Resolvido e Fechado
por gravidade.
Grfico de Correo Acumulado
Outra informao importante a respeito das falhas registradas a situao da correo dos mesmos. O ideal que
essa atividade no se acumule, pois a correo, como uma
interveno em cdigo, pode desmascarar novas falhas ou
impactar outras partes do sistema. E se feita muito tarde,
no existir tempo hbil para novas descobertas. Alm disso,
falhas registradas podem impedir a coleta das evidncias. Se
a correo for tardia, acumula-se a verificao e a coleta das
evidncias. O responsvel pelos testes e o gerente do projeto
devero estabelecer a frequncia e o tempo destinado para a
correo das falhas ao longo da execuo dos testes, para que
os problemas citados acima no aconteam.
O grfico de correo acumulado ajudar a monitorar a
correo das falhas registradas. A Figura 11 exemplifica
a evoluo da correo das falhas de um projeto, cuja
ferramenta de gerenciamento de incidentes utilizada o
MANTIS.

Figura 11. Grficos retirados do MANTIS com a evoluo da correo das


falhas

O eixo x representa o tempo, ou seja, os dias. O eixo y representa a quantidade de falhas registradas. No primeiro dia de
testes, dia 07/03 foram registradas 17 falhas. O grfico apresenta trs linhas. So elas: azul, que representa a quantidade
acumulada de falhas registradas ao longo dos dias; preta, que
representa a quantidade de falhas corrigidas; e vermelha, que
a diferena entre a linha azul e preta, representando as falhas
que ainda no foram corrigidas.
O ideal que a linha preta siga de perto a linha azul, mantendo a vermelha oscilando com amplitude baixa no grfico. Isso
significa que a correo est sendo feita, sem acmulo. Pelo
ltimo grfico, possvel perceber que at o dia 28/03 nunca
mais do que 20 falhas ficaram sem corrigir, e que nesse dia, j
existem quase 30 falhas ainda no corrigidas. Um alerta para o
projeto. Outra informao interessante que pode ser percebida
que os dias 14/03, 18/03 e 20/03 foram os dias onde a correo
estava mais em dia, que so os vales da linha vermelha, ou
o quase encontro das linhas preta e azul.
Registro de Ocorrncias
Este tipo de relatrio nada mais que um dirio de bordo da
atividade que est sendo realizada. O objetivo registrar os
eventos que impactam o andamento da atividade, principalmente os negativos. Os que impactam positivamente tambm
podem ser registrados. Eventos como paradas do ambiente
de testes, no existncia de dados especficos na massa de
dados, inexistncia de recursos para correo das falhas registradas, bugs de travamento que impedem o prosseguimento da
atividade, etc. so comuns nesse relatrio. Ou seja, tudo que
atrasa o andamento da atividade. Cada ocorrncia registrada
dever conter a data e a hora do registro, assim como o responsvel pelo seu cadastramento. O ideal que no se escreva
muito, apenas uma linha de texto, no mximo.
O relatrio gerado a partir dessas ocorrncias bem interessante, pois apresenta os principais eventos ocorridos durante
a atividade, um histrico de onde possvel tirar concluses
dos pontos que impactaram o andamento da atividade. Serve
para os testadores se resguardarem, pois os problemas ocorridos que no foram causados por eles estaro registrados. Mas
tambm pode apresentar suas falhas, caso tenham cometido
alguns erros, como testar uma verso incorreta do software ou
consultar uma especificao de requisitos desatualizada por
falta de ateno.
A partir de um conjunto de relatrios de ocorrncias pode-se
identificar os problemas mais recorrentes. Com essa informao torna-se possvel atacar a causa raiz desses problemas,
visando elimin-los nas prximas atividades. Esse relatrio
pode ser enviado semanalmente, ou, dependendo do nmero
de ocorrncias registradas, numa periodicidade menor. Abaixo,
um exemplo bsico de um relatrio de ocorrncias:
22/02/2010 - 08:12:20 - fulano.silva - Sistema ainda no
liberado.
22/02/2010 - 16:30:00 - fulano.silva - Sistema liberado para
iniciar os testes.

Edio 25 - Engenharia de Software Magazine

45

23/02/2010 - 08:05:18 - fulano.silva - Sistema fora do ar. Cicrano


ir verificar.
23/02/2010 - 09:35:40 - fulano.silva - Sistema no ar. O servidor
foi reiniciado.
24/02/2010 - 10:12:22 - fulano.silva - Bug blocante registrado.
Aguardando correo para prosseguir.
24/02/2010 - 10:20:20 - fulano.silva - Cicrano s ir corrigir
no final do dia.
25/02/2010 - 08:00:08 - fulano.silva - Bug ainda no foi corrigido. Testes continuam parados.
25/02/2010 - 09:40:20 - fulano.silva - Nova verso liberada com
correo para prosseguir com os testes.
25/02/2010 - 14:15:15 - fulano.silva - Testes finalizados. Aguardando correo dos bus para verific-los.
26/02/2010 - 11:42:45 - fulano.silva - Todos bugs corrigidos.
O dirio acima um exemplo bsico. Mas possvel verificar que houveram paralisaes no perodo destinado
atividade. Para comear, houve um atraso na liberao
do sistema para o incio dos testes de quase oito horas. O
servidor ficou parado durante uma hora e meia. Os testes
ficaram parados devido a uma falha de travamento das
10h12min do dia 24/02 at as 09h40min do dia seguinte.
Totalizando, aproximadamente, 17 horas de interrupo
dos testes.
Caso seja necessrio, pode-se controlar a indisponibilidade do servidor atravs da planilha da Figura 12. Podero
ser registradas as interrupes voluntrias, ou seja, paradas para subir novas verses do sistema. O ideal que esse
tipo de interrupo seja planejado, realizado em janelas.
O outro tipo diz respeito s interrupes involuntrias,
que so causadas por problemas tcnicos inesperados.
Esse controle, ao longo das demandas, poder identificar
pontos fracos na infraestrutura dos testes, gerando aes
preventivas para os prximos testes.

Relatrio Final dos Testes


Este relatrio normalmente emitido no final da atividade de execuo dos testes. Ele ir apresentar o resultado,
consolidando vrias informaes coletadas durante o andamento da atividade, como por exemplo, quantidade de
falhas e suas causas principais, casos de testes executados
no tempo previsto, no tempo adicional, ou no executados,
e qualquer outra informao que seja interessante para o
projeto e para a organizao.
Estes relatrios servem como entrada para um processo de lies aprendidas visando melhoria contnua
do processo. Atravs da identificao dos pontos fracos
reportados no relatrio, deve-se procurar entender suas
causas e estabelecer aes para que os problemas no
voltem a acontecer.
O relatrio dever iniciar com informaes gerais, identificando a atividade, as datas e os responsveis. possvel
saber se o planejamento foi ou no atendido. No exemplo, o
esforo previsto foi de 352 horas, entre os dias 04/01 e 29/01.
Entretanto, o prazo se estendeu at o dia 05/02, resultando
numa diferena de 25% para mais. Esse tipo de informao
interessante para que aes sejam tomadas objetivando
uma estimativa mais precisa. H espao tambm para
uma avaliao subjetiva da qualidade do Plano de Testes
e da Especificao, conforme os dois ltimos campos do
formulrio apresentado na Tabela 3.
A Tabela 4 mostra informaes sobre o resumo dos
incidentes. Esta parte do relatrio dividida em quatro
partes. A primeira delas, Resumo de Incidentes, separa os
incidentes em falhas e sugestes, pois nem tudo que foi
registrado realmente uma falha. Falhas que poderiam ser
detectadas caso um checklist de testes fosse utilizado, falhas
dentro e fora do escopo de uma manuteno, e sugestes de
melhorias aceitas e no aceitas tambm so contabilizadas.
A segunda, Retrabalho, diz respeito a situaes que oneram

Nome do Sistema

ESMAG

Nmero da Demanda

22767

Tipo do teste

Teste de Sistema

Evidncias colhidas?

Sim

Perodo de testes previsto

DE: 04/01/2010

Quantidade de horas de testes previsto

352

Perodo dos testes realizados

DE: 04/01/2010

Quantidade de horas dos testes realizados

440

Diferena entre previsto e realizado

88

Nome dos testadores

Karla Lages, Felipe Lages

N de casos de testes

141

N de ct executados no tempo previsto

AT: 05/02/2010
%

25,00%

110

78,01%

N de ct executados no tempo adicional

31

21,99%

N de ct no executados no tempo realizado

0,00%

Qualidade do Plano de Teste

Sistema

Boa

Qualidade da Especificao

EF

Boa

Tabela 3. Informaes gerais do Relatrio de Finalizao dos Testes

46

AT: 29/01/2010

Engenharia de Software Magazine - Reportando de forma simples os resultados dos testes

Validao, Verificao & Teste

o processo, como por exemplo, reabertura de falhas, falhas


abertas indevidamente (testador tambm erra!) e falhas
registradas duplicadamente.

As duas ltimas partes dizem respeito gravidade e a causa


das falhas. A causa da falha normalmente fornecida pelo
desenvolvedor no momento da correo. Com esses dados

Figura 12. Controle de Indisponibilidade do Servidor


Resumo de Incidentes
Total de incidentes

110

Total de falhas
(Exceto No um caso, sugestes e Duplicado)

100

Falhas dentro do escopo

100

Falhas fora do escopo

Total de falhas referente ao checklist

20

Total de sugestes Aceitas

Total de sugestes No Aceitas

Taxa de incidente por hora


Ex.: 1 incidente a cada X horas
Taxa de falhas por hora
Ex.: 1 falha a cada X horas

4,00
4,40

20,00%

Retrabalho
Total de reaberturas

10

Total de Duplicado

Total de No um caso

2,91%

Total de No ser corrigido

0,00%

Total de Incapaz de reproduzir

0,00%

Resumo por Gravidade das Falhas


Gravidade

TOTAL

Layout

9,00%

Texto

6,00%

Normal

70

70

70,00%

Grande

10

10

10,00%

Blocante

5,00%

100

100

100,00%

TOTAL

Resumo por Causa da Falhas


Causa da Falha

TOTAL

Ambiente

5,00%

Banco de Dados

5,00%

Cdigo-fonte

76

76

76,00%

Especificao

14

14

14,00%

Integrao

0,00%

100

100

100,00%

TOTAL

Tabela 4. Informaes sobre os incidentes do Relatrio de Finalizao dos Testes

Edio 25 - Engenharia de Software Magazine

47

possvel avaliar a qualidade da especificao, do ambiente


e BD de testes. Entretanto, a grande maioria das falhas est
mesmo no cdigo-fonte.
interessante que exista um espao aberto para observaes,
caso seja necessrio reportar alguma situao especfica, por
exemplo, quando algum caso de testes apresentou problemas
e no pode ser executado.

Concluses

www.devmedia.com.br/esmag/feedback

48

Referncias
QAI, Guide to the CSTE Common Body of Knowledge. Quality Assurance Institute, Version 6.1.1
2006, http://www.softwarecertifications.org
MARICK, Brian; Classic Testing Mistakes, STQE, 1997.
KOLAWA, A.; HUIZINGA, D. (2007). Automated Defect Prevention: Best Practices in Software
Management. Wiley-IEEE Computer Society Press. p.74.ISBN0470042125.
MARICK, B.When Should a Test Be Automated?. StickyMinds.com. Acessado em 10/03/2010.
PRETSCHNER, A. (2005), Model-based testing, Proceedings of 27th International Conference
on Software Engineering, (ICSE05), pp. 722-723.
UTTING, M.; LEGEARD, B.; (2007), Practical Model-Based Testing: A Tools Approach, ISBN-13:
978-0-12-372501-1, Morgan-Kaufmann.
CRAIG, R.D., JASKIEL, S. P.,Systematic Software Testing,Artech House Publishers, Boston, 2002.

sobre e
s

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


Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:

Feedback
eu

edio
ta

D seu feedback sobre esta edio!

D
s

Ao longo do tempo esses relatrios podero ser consolidados,


gerando informaes da qualidade durante o semestre, ou ano,
por exemplo. Ferramentas de qualidade, como por exemplo, os
grficos de Pareto e de Controle, podem e devem ser utilizadas
para se analisar as causas e as tendncias dos problemas encontrados nos processos, mirando a melhoria contnua e a garantia
de qualidade, e no apenas o controle da qualidade.
Vale ressaltar que quanto maior o controle inserido no processo de testes, maior ser o custo das suas atividades, pois as
tarefas de coleta, preparao e anlise dos dados, assim como

a comunicao dos resultados, exigem um esforo a mais dos


analistas de testes. Em contrapartida, quanto menor for o
controle, maior o risco de problemas no projeto. Dessa forma,
esse compromisso tem que ser muito bem pensado, para que
reflita no planejamento dos testes.

PRESSMAN, R. S., Software Engineering: A Practitioners Approach, McGraw-Hill, 6th ed, Nova
York, NY, 2005.
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al.,Qualidade de software Teoria e prtica,
Prentice Hall, So Paulo, 2001.

Engenharia de Software Magazine - Reportando de forma simples os resultados dos testes

Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software

Teste unitrio e de cobertura para Java


Script com JsUnit e JsCovarage
Jenifer Vieira Toledo

Marco Antnio Pereira Arajo

jenifer@jenifer.eti.br
Twitter: @Jenifer_Vieira

maraujo@devmedia.com.br

De que se trata o artigo?

Doutor e Mestre em Engenharia de Sistemas e


Computao pela COPPE/UFRJ, Especialista em
Mtodos Estatsticos Computacionais e Bacharel em Informtica pela UFJF, Professor dos Cursos de Bacharelado em Sistemas de Informao
do Centro de Ensino Superior de Juiz de Fora e
da Faculdade Metodista Granbery, Professor do
curso de Bacharelado em Cincia da Computao da FAGOC, Professor do Curso Superior de
Tecnologia em Anlise e Desenvolvimento de
Sistemas da FAA, Analista de Sistemas da Prefeitura de Juiz de Fora, Editor da Engenharia de
Software Magazine.

Teste Unitrio e de Cobertura com a utilizao das


ferramentas JsUnit e JsCovarage para a linguagem
de programao Java Script.

Graduada em Cincia da Computao pela


Faculdade Governador Ozanam Coelho (FAGOC), Ps-graduanda em Gerncia de Projetos
em Engenharia de Software pelo Centro de Ensino Superior de Juiz de Fora (CES/JF) e Tcnica
de Hosting da empresa Optical Solues em
Informtica Ltda.

Elessandro Rodrigues Marques


elessandrorm@gmail.com

Licenciado em Informtica pela Unipac Ub/


MG. Especialista em Administrao de Banco
de Dados e Ps-graduando em Gerncia de
Projetos em Engenharia de Software pelo
Centro de Ensino Superior de Juiz de Fora
(CES/JF). Tem experincia de 6 anos como
programador Clipper, Delphi e Java, h 2 anos
trabalha como Analista de Sistemas pela empresa Colches Paropas.

Marcelo Santos Daibert


marcelo@daibert.pro
Twitter: @msdaibert

Mestre e Especialista em Cincia da Computao pela Universidade Federal de Viosa, professor e coordenador do Curso de Bacharelado
em Cincia da Computao da FAGOC (Faculdade Governador Ozanam Coelho) e Bacharel
em Sistemas de Informao pela Faculdade
Metodista Granbery. Gerente tcnico da Optical
Solues em Informtica Ltda.

Para que serve?


Fornecer conhecimentos tericos e prticos na utilizao da abordagem baseada em testes no desenvolvimento com a linguagem Java Script. Definir o
passo a passo para a utilizao da ferramenta JsUnit
e JsCoverage.

Em que situao o tema til?

conceito de teste de software


surgiu no final dos anos 50
como uma atividade isolada da
Engenharia de Software. Era aplicado de
forma manual pelos desenvolvedores
com o objetivo de revisar seus cdigos
fonte. Com o passar dos anos, com esta
abordagem sendo aplicada, os projetos
passaram a apresentar melhora na
qualidade do produto final quando
comparados a projetos de software que
no aplicavam nenhuma etapa de testes.
Mesmo assim, a tarefa de efetuar testes
em software foi considerada secundria

A abordagem de desenvolvimento baseado em


testes hoje um importante diferencial para a
busca de qualidade em qualquer software. Nesse contexto, o JsUnit se apresenta como uma
ferramenta para automatizar os testes unitrios
no ambiente de desenvolvimento JavaScript. J
o JsCoverage uma ferramenta para execuo
dos testes de cobertura.

por algum tempo, chegando a ser vista


at mesmo como uma punio para os
programadores, ou como uma tarefa
onde no se deveria gastar muito tempo
e despender grandes investimentos.

Edio 25 - Engenharia de Software Magazine

49

Alm disso, testar software para descobrir os defeitos que


desqualificam os produtos para os consumidores era visto
como um trabalho tedioso e cansativo, a ser evitado pelos mais
artificiosos dos especialistas em tecnologia. Entretanto, a responsabilidade com a qualidade do produto final desenvolvido
deve ser levada em considerao e justamente por isso o tema
teste de software est em evidncia.
Nos dias atuais, teste de software visto como um subitem
dentro da Qualidade de Software, sendo que para conseguir
tal qualidade necessrio definir padres de trabalho, mtodos
e melhorar o processo de desenvolvimento, assegurando de
fato que os defeitos sejam identificados o mais cedo possvel
durante o processo de desenvolvimento de software. O custo
de um defeito em um software no deve ser avaliado somente
pelo aspecto financeiro. Os softwares so escritos para controlar equipamentos com propsitos mais variados possveis,
como dosagens de medicamentos, exames mdicos, construo
e controle de avies, aeronaves espaciais, satlites, entre outros
vrios sistemas. E, em muitos casos, um defeito pode causar
a destruio total de um caro equipamento ou at mesmo em
perda de vidas humanas. Veja abaixo alguns exemplos de
problemas causados por defeitos de software:
Intel: gastou 475 milhes dlares na correo do erro da
vrgula flutuante do Pentium em 1994 (Computer Science,
Springer Verlag - 1995);
Prime Personal Communications: cancelou contrato de US$
500 milhes com a Motorola por causa de falhas de Software
(Wall Street Journal-24/02/1998);
Ariane 5: 10 anos de desenvolvimento no valor de US$ 7 bilhes, com uma carga de US$ 500 milhes em equipamentos,
explodiu 40 segundos aps lanamento (ESA-1996);
Therac-25: seu software ministrou doses de radiao em
pacientes entre 1985 e 1987 resultando em seis bitos (IEEE
Computer - 07/07/1993).
Existem vrios outros exemplos e relatos onde defeitos de
software foram decisivos para a ocorrncia de algum problema
ou acidente, o que motiva a busca e identificao prematura
destes defeitos, evitando assim a sua manifestao atravs das
falhas que podem impactar as vidas de seus usurios.
O autor Alexandre Bartie, em seu livro sobre Garantia da
Qualidade, apresenta um quadro estatstico sobre projetos
americanos de desenvolvimento de software relatando que
mais de 30% dos Projetos de Software so cancelados antes
de serem finalizados. Mais de 70% dos Projetos de Software
falham nas entregas das funcionalidades esperadas. Os custos
extrapolam mais de 180% os valores originalmente previstos e
os prazos excedem em 200% os cronogramas originais.
Neste sentido, o teste de software um componente a mais
dentro do processo de desenvolvimento de software que
busca contribuir para a busca de qualidade. O objetivo deste
artigo apresentar as tcnicas de teste unitrio e de cobertura
no contexto de desenvolvimento Web, mais especificamente
para a linguagem Java Script. Para isso, so apresentadas
as ferramentas JsUnit e JsCoverage para, respectivamente,

50

auxiliarem na tarefa de teste unitrio e de cobertura, ambos


de forma automatizada.

Teste Unitrio
O Teste de Unidade, ou Teste Unitrio, classificado como
teste caixa-branca por ser baseado na estrutura lgica do
cdigo, responsvel por testar a unidade de codificao da
aplicao. Em um sistema orientado a objetos essa unidade
pode ser representada pelos mtodos das classes, ou outro
nvel de granularidade, dependendo da complexidade dos
elementos a serem testados. Esta tcnica testa apenas o cdigo
da aplicao, e podem-se testar todas as regras de negcio
da mesma.
Gerard Meszaros, em seu livro xUnit Test Patterns: Refactoring Test Code Hardcover, relata muito bem a importncia
dos testes unitrios, definindo-o para os dias atuais como um
ponto de importncia em mtodos de desenvolvimento gil,
como Extreme Programming (XP), reforando a disponibilidade dos sistemas com testes integrados automatizados.
Desta forma, permite aos desenvolvedores serem mais ousados nas modificaes do software alcanando um desenvolvimento evolutivo do que com entregas incrementais de
funcionalidades, acelerando assim, o feedback dos usurios
que contribuem para a qualidade do produto.
Praticamente todas as abordagens geis de desenvolvimento
evidenciam o teste como principal aliado para absorver o
no formalismo da documentao de software e garantir
assim que a funcionalidade correta est sendo desenvolvida
e entregue ao cliente.
Por testar a lgica da funcionalidade, o cdigo fonte analisado, e um fundamental conceito o de caso de teste, que
representa uma instncia de teste para aquela funcionalidade que percorre um determinado caminho no algoritmo de
acordo com seus valores de teste. Um algoritmo pode possuir
vrios casos de teste, cada um deles contendo os valores que
devem ser testados para analisar e percorrer os caminhos
do algoritmo.
Para definir o nmero mnimo de casos de teste para cobrir
todas as possibilidades de caminhos de processamento de um
trecho de cdigo, possvel utilizar uma mtrica de software
chamada Complexidade Ciclomtica. Esta tcnica define o
nmero de caminhos independentes que um algoritmo deve
percorrer para efetuar todos os processamentos. Juntamente
com esta tcnica, pode-se utilizar outra chamada Anlise do
Valor Limite que define os valores limites que sero utilizados
para efetuar os testes.

Teste de Cobertura
O teste de cobertura responsvel por verificar se o teste
unitrio est verificando todos os caminhos possveis do algoritmo de alguma funcionalidade do software. Apresenta a
porcentagem de cobertura de um teste unitrio, por exemplo,
sob um determinado mtodo. O objetivo ter a maior cobertura
possvel identificando reas do projeto que ainda no esto
cobertas pelos testes automatizados.

Engenharia de Software Magazine - Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage

Validao, Verificao & Teste

JsUnit
JsUnit um framework open-source para testes unitrios em
Java Script e que segue as conformidades e padres do pacote
xUnit frameworks.
A famlia xUnit possui variantes que so especializaes
para diversas outras linguagens e outros propsitos. Algumas destas ramificaes so cUnit para a linguagem C, dUnit
para a linguagem Delphi, csUnit para o C# ou qualquer
linguagem .NET, jUnit para a linguagem Java, PyUnit para
a linguagem Python, DBUnit para teste em banco de dados,
PHPUnit para a linguagem PHP, entre outras.
JsUnit foi criada em 2001 e roda nas mais variadas combinaes de browser/plataformas (navegadores), conseguindo
assim, um vasto nmero de utilizadores, alm de ter sua
configurao considerada simples. O JsUnit um componente de software escrito na linguagem Java Script que disponibiliza todo o ambiente necessrio para o teste unitrio.
Para utiliz-lo, basta fazer download deste componente de
software e estender sua utilizao s funcionalidades do
Java Script.
Com o JsUnit baixado (http://www.jsunit.net/) e tendo
descompactado o arquivo em um diretrio qualquer, cabe
descrever a estrutura e principais diretrios e arquivos da
ferramenta, conforme apresentado na Tabela 1.
Elemento
testRunner.html
app
css

Descrio
pgina web configurada como um painel para a execuo dos testes unitrios
com o JsUnit.
diretrio onde o ncleo da ferramenta apresentado e onde o arquivo
jsUnitCore.js disponibilizado.
diretrio que contm arquivos de folhas de estilos que so utilizados na pgina
testRunner.html.

doc

diretrio que contm toda a documentao da ferramenta

java

diretrio que contm o cdigo fonte Java e bibliotecas (JARs) para rodar o JsUnit
diretamente em um ambiente Java.

Licenses

diretrio que contm os termos e licena de uso da ferramenta.

logs

diretrio que contm os logs de um servidor JsUnit.

testeB. No exemplo, o primeiro caso de teste afere o resultado de testeA como verdadeiro, e o segundo tambm para
a funo testeB. Entretanto, a funo testeB retorna falso
(linha 10), configurando assim um erro com base no valor
que seria esperado. Erro este que capturado pelo teste
unitrio como apresentado a seguir.
Listagem 1. Cdigo Exemplo para o JsUnit.
1. <html>
2. <head>
3. <title>Teste Unitrio 1</title>
4. <script type=text/javascript src=app/jsUnitCore.js> </script>
5. <script type=text/javascript>
6. function testeA() {
7. return true;
8.
}
9. function testeB() {
10. return false;
11. }
12. function teste_verificacao1() {
13. assertEquals(true, testeA());
14. }
15. function teste_verificacao2() {
16. assertEquals(true, testeB());
17. }
18. </script>
19. </head>
20. <body>
21. </body>
22. </html>

Para a execuo dos testes, necessrio executar o testRunner.html. Esse arquivo fica armazenado dentro do diretrio
app da ferramenta. Assim que executado, apresentada
a interface exibida na Figura 1, que possui uma opo para
se carregar o arquivo HTML com os testes unitrios. Onde
exibida a opo Enter the location of the Test Page/Test
Suite Page to be run, entre com o local da pgina de teste
para executar. Basta adicionar no campo o local completo do
endereo do arquivo e clicar em Run para executar os testes.
O resultado do exemplo exibido pela Figura 2.

Tabela 1. Estrutura de Diretrios e Arquivos do JsUnit

Os testes unitrios em JsUnit recebem o nome de funes de


testes e so inseridas em pginas HTML que fazem referncia
(include) a uma biblioteca especfica que fica dentro do diretrio app de nome jsUnitcore.js. Esta biblioteca contm funes e mtodos que permitem a aplicao dos testes unitrios
nos cdigos escritos em Java Script.
A seguir apresentado um exemplo utilizando o JsUnit.
possvel observar que dentro do trecho de cdigo exibido
na Listagem 1 existem quatro funes: duas chamadas teste_verificacao1 e teste_verificacao2 que foram criadas para
executar os testes (se configuram como dois casos de teste), a
terceira a funo testeA e, por fim, a funo testeB, que
representam os testes propriamente ditos.
A funo testeA retorna verdadeiro (true) e a funo testeB retorna falso (false). J as funes teste_verificacao1 e
teste_verificacao2 aferem o resultado das funes testeA e

Figura 1. Interface do testRunner.html do JsUnit

Edio 25 - Engenharia de Software Magazine

51

Figura 2. Resultado do Teste no testRunner

Na tela de resultado possvel observar o erro que foi intencionalmente adicionado no cdigo para o exemplo. Alm de
apresentar a barra vermelha, possvel verificar detalhes do
erro na parte de baixo da interface. Ao clicar na opo com
erro exibido um detalhamento: Expected <true> but was
<false> Esperado <verdadeiro> mas foi <falso>. Fazendo
uma clara aluso funo testeB que retorna falso e o caso de
teste espera por verdadeiro. Fazendo uma pequena alterao
no caso de teste teste_verificacao2 para que ele espere falso,
alterando a linha 16 da Listagem 1 para assertEquals(false,
testeB());, o resultado exibido na Figura 3, sem erros desta
vez, conforme esperado.

Figura 3. Resultado do Teste no testRunner sem erros

JsCoverage
JsCoverage uma ferramenta que faz testes de cobertura em
programas escritos na linguagem JavaScript. Para conseguir

52

analisar um cdigo, o JsCoverage instrumenta a biblioteca que


est sendo referenciada pela pgina HTML, acrescentando
chamadas a funes especficas do JsCoverage que visam
retornar o nmero de execues de cada linha de cdigo da
biblioteca, conseguindo assim apresentar uma anlise de
cobertura completa da biblioteca utilizada.
Assim como a JsUnit, a JsCoverage disponibilizada em um
pacote compactado (http://siliconforks.com/jscoverage/). A
organizao dos diretrios tambm simples e disponibiliza
na pasta principal os executveis responsveis por instrumentar as bibliotecas que so jscoverage.exe e jscoverage-server.
exe. O diretrio DOC contm a documentao da ferramenta
e exemplos de utilizao.
Como apresentado, a JsCoverage precisa instrumentar os
cdigos Java Script para poder identificar a cobertura da sua
execuo. H, basicamente, trs formas essenciais para essa
atividade.
A primeira utilizar o utilitrio jscoverage.exe que est dentro da pasta principal. A sua utilizao simples e basta digitar
o comando abaixo no prompt de comandos do MS-DOS, onde o
DIRETORIO-FONTE o diretrio que possui os cdigos fonte
a serem instrumentados e o DIRETORIO-DESTINO ser o diretrio onde os cdigos instrumentados sero enviados. Observe
que sero instrumentados todos os arquivos com a extenso .js
de todo o diretrio e subdiretrios do diretrio fonte.
jscoverage.exe DIRETORIO-FONTE DIRETORIO-DESTINO

A segunda forma usar o jscoverage-server, que um servidor Web simples que instrumenta os cdigos Java Script
automaticamente, no sendo necessria a execuo de qualquer
comando adicional. Para se iniciar o servidor, basta executar
jscoverage-server.exe no prompt do MS-DOS que o servidor
ser instanciado em memria. Ele abrir o servidor na porta
8080 e, portanto, se houver algum outro aplicativo no servidor
que esteja utilizando essa porta, o JsCoverage no ir funcionar
nas suas configuraes padro.
Para testar, basta acessar em qualquer navegador o endereo
http://127.0.0.1:8080/jscoverage.html. Ao abrir este link, uma
interface para a instrumentao dos cdigos Java Script
exibida ao usurio conforme pode ser visto na Figura 4. Para
desligar o servidor, basta fechar a janela do prompt do MSDOS. Quando os cdigos so instrumentados na primeira
forma (a forma manual), gerada no diretrio destino a mesma
interface exibida nesta segunda forma basta para isso acessar
o arquivo jscoverage.html no diretrio destino.
Um detalhe que merece destaque quanto necessidade dos
arquivos de cdigo fonte do seu site (HTML, Java Script, entre
outros) a serem testados estarem no mesmo diretrio do arquivo jscoverage-server, ou ento ser chamado pelo diretrio dos
cdigos fonte do site. Mas, nesse caso, necessrio configurar
a ferramenta na varivel PATH das variveis de ambiente do
sistema operacional.
E h ainda uma terceira forma, que utilizando o jscoverageserver com a opo de proxy ativada. Com essa forma, os
cdigos so instrumentados de forma automtica ao serem

Engenharia de Software Magazine - Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage

Validao, Verificao & Teste

acessados pelo proxy. Entretanto, necessria uma configurao de portas para o proxy, no sendo essa opo tratada
neste artigo.

Figura 4. Interface do JsCoverage-server

Para exemplificar a sua utilizao, apresentado um exemplo


nas Listagens 2 e 3. Na Listagem 2 exibido um cdigo HTML
de uma pequena pgina que possui um campo de texto para
insero de qualquer valor. H tambm um boto que submete
o formulrio com o valor digitado pelo usurio da pgina. O
formulrio, no evento onSubmit, faz acesso uma funo Java
Script definida na Listagem 3.
Listagem 2. Cdigo Exemplo HTML para o JsCoverage.

acionado e ir informar o valor digitado juntamente com a


informao que o valor maior que 100.

Figura 5. Exemplo JsCoverage Interface Principal

Aps ser executado ao menos uma vez, basta acessar a aba


Summary na interface do JsCoverage para visualizar a interface exibida na Figura 6. Ela apresenta todos os arquivos Java
Script da pgina executada e as respectivas coberturas de cada
um dos arquivos. Para o exemplo, somente h um arquivo, o
script.js, apresentando 83% de cobertura. Ao clicar no nome
do arquivo, o JsCoverage exibe linha a linha a cobertura do
cdigo fonte. Desta forma, foi possvel observar que a linha
que identifica a mensagem de menor ou igual que 100 no foi
executada, como apresentado na Figura 7.

1. <html>
2. <head>
3. <title>Teste de Cobertura</title>
4. <script type=text/javascript src=script.js> </script>
5. </head>
6. <body>
7. <form name=frmTeste action= onSubmit=enviaJavaScript()
method=post>
8. Valor: <input type=text name=inptValor>
9. <input type=submit value=Enviar...>
10. </form>
11. </body>
12. </html>
Listagem 3. Cdigo Exemplo Java Script para o JsCoverage.
1. function enviaJavaScript(){
2. var vValor = document.frmTeste.inptValor.value;
3. alert(Resultado: +vValor);
4. if (vValor > 100){
5. alert(Valor maior que 100);
6. }else{
7. alert(Valor menor ou igual que 100);
8.
}
9. }

A funo enviaJavaScript, definida na Listagem 3, captura


o valor do campo do HTML e o exibe com o comando alert.
Aps isso, verifica se o valor maior que 100. Se for, informa
ao usurio e, caso seja menor ou igual que 100, uma mensagem
tambm exibida.
Tanto utilizando a primeira ou a segunda forma de instrumentao, o resultado exibido na Figura 5. Em URL, basta
digitar o nome do arquivo HTML e acionar a funo Open in
frame (Abrir no frame). Esta funo abre a pgina HTML no
frame da interface do JsCoverage. Aps, basta testar a interface, digitando, por exemplo, o valor 200. O Java Script ir ser

Figura 6. Sumrio de Cobertura dos Arquivos Java Script

Estudo de Caso
Buscando exemplificar o uso das ferramentas jsUnit e jsCoverage, proposto um estudo de caso criado utilizando
a linguagem Java Script. Nele criada uma funo chamada
calcularAprovacao, responsvel por verificar se um aluno, por
exemplo, foi aprovado ou no em uma disciplina. A funo
recebe por parmetro a nota 1, nota 2, nota de uma prova final (notaFinal) e a freqncia, como pode ser observado pela
Listagem 4.

Edio 25 - Engenharia de Software Magazine

53

Listagem 4. Cdigo da Funo calcularAprovacao

Figura 7. Cobertura da Funo enviaJavaScript()

O calcularAprovacao verifica inicialmente se a frequncia do


aluno menor que 75%. Caso seja, o aluno reprovado de imediato, fazendo com que a funo retorne falso. Caso contrrio,
verificada a mdia da nota1 com a nota2. Caso essa mdia seja
menor que 30, o aluno tambm reprovado. Caso contrrio,
se a mdia for maior ou igual a 70, o aluno aprovado. Se a
mdia for maior ou igual a 30 e menor que 70, o aluno estar
em prova final e ser aprovado caso o valor da mdia de sua
nota de prova final com a mdia anterior for superior ou igual
a 50. Caso contrrio, ele ser reprovado.
Com a funo definida, o objetivo agora criar os casos de
teste, buscando testar as regras descritas pela funo. Os casos
de teste so definidos em um documento HTML que importa
o core do jsunit e o arquivo Java Script que define o mtodo
calcularAprovacao. Esse documento HTML apresentado na
Listagem 5. Para isso, pode-se calcular sua Complexidade Ciclomtica (CC) utilizando alguma ferramenta de mtricas, ou
ento pode-se descobrir quais so as possibilidades de retorno
de valor para este mtodo, de acordo com os dados informados. Observando atentamente a funo calcularAprovacao(),
possvel identificar cinco possibilidades de retorno, de forma
a percorrer todos os caminhos do algoritmo:
Frequncia inferior a 75, a funo retorna falso;
Frequncia igual ou superior a 75 e mdia inferior a 30, a
funo retorna falso;
Frequncia igual ou superior a 75 e mdia igual ou superior
a 70, a funo retorna verdadeiro;
Frequncia igual ou superior a 75 e mdia final igual ou
superior a 50, retorna verdadeiro;
Frequncia igual ou superior a 75 e mdia final inferior a 50,
a funo retorna falso.
Ainda na Listagem 5, possvel identificar um formulrio
para o teste manual. Esse formulrio, ao ser submetido, invoca
a funo Java Script executaJS(). Esta, por sua vez, est sendo
definida no arquivo avaliarAluno.js, abaixo da funo calcularAprovacao, na Listagem 4. A funo basicamente captura os

54

1. function calcularAprovacao (nota1, nota2, notaFinal, frequencia) {


2. var media;
3. media = 0;
4. if (frequencia < 75) {
5. return false;
6.
}
7. else {
8. media = (nota1 + nota2) / 2;
9. if (media < 30) {
10. return false;
11.
}
12. else {
13. if (media > 70) {
14. return true;
15.
}
16. else {
17. if (((media + notaFinal) / 2) >= 50) {
18. return true;
19.
}
20. else {
21. return false;
22.
}
23.
}
24.
}
25.
}
26. }
27. function executaJS(){
28. var vForm = document.frmTeste;
29. var vNota1 = vForm.edtNota1.value;
30. var vNota2 = vForm.edtNota2.value;
31. var vNotaFinal = vForm.edtNotaFinal.value;
32. var vFrequencia = vForm.edtFrequencia.value;
33. if (calcularAprovacao(vNota1, vNota2, vNotaFinal, vFrequencia)){
34. alert(Aprovado);
35. }else{
36. alert(Reprovado);
37. }
38. }
Listagem 5. Casos de Teste e HTML - jsUnitTestAvaliarAluno.html
1. <html>
2. <head>
3. <title>JsUnit Test Aprovao </title>
4. <link rel=stylesheet type=text/css href=css/jsUnitStyle.css>
5. <script type=text/javascript src=app/jsUnitCore.js></script>
6. <script type=text/javascript src=avaliarAluno.js></script>
7. <script type=text/javascript>
8. function testVericarAprovacao_ReprovacaoFrequencia() {
9. assertEquals(false, calcularAprovacao(0, 0, 0, 74))
10.
}
11. function testVericarAprovacao_ReprovacaoDiretoPorNota() {
12. assertEquals(false, calcularAprovacao(30, 29, 0, 75))
13.
}
14. function testVericarAprovacao_AprovacaoDiretoPorNota() {
15. assertEquals(true, calcularAprovacao(70, 70, 0, 75))
16.
}
17. function testVericarAprovacao_AprovacaoComNotaFinal() {
18. assertEquals(true, calcularAprovacao(30, 30, 70, 75))
19.
}
20. function testVericarAprovacao_ReprovacaoComNotaFinal() {
21. assertEquals(false, calcularAprovacao(30, 30, 69, 75))
22.
}
23. </script>
24. </head>
25. <body>
26. <h1>Teste com as Assertivas JsUnit</h1>
27. <p>Esta pgina contm testes para as funes assertivas do
JsUnit.</p>
28. <form name=frmTeste onsubmit=return executaJS() action=>
29. Nota 1: <input type=text name=edtNota1 /> <br>
30. Nota 2: <input type=text name=edtNota2 /> <br>
31. Nota Final: <input type=text name=edtNotaFinal /> <br>
32. Frequncia: <input type=text name=edtFrequencia />
<br><br>
33. <input type=submit value=Enviar>
34. </form>
35. </body>
36. </html>

Engenharia de Software Magazine - Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage

Validao, Verificao & Teste

valores do formulrio e invoca a funo calcularAprovacao(),


exibindo o resultado final ao usurio.

Execuo dos Testes


Com os testes unitrios criados, possvel execut-los de
forma automatizada pelo jsUnit e posteriormente verificar a
cobertura dos testes com o jsCoverage. Entretanto, para que
as ferramentas funcionem juntas necessria uma adaptao
no jsUnit de forma a enviar a execuo dos testes ferramenta de cobertura. O jsCoverage disponibiliza, dentro de
um dos exemplos oficiais (o exemplo com nome jsunit), uma
verso modificada do jsUnit que sofreu alguns ajustes para
funcionar em conjunto com a ferramenta de cobertura. A
principal modificao que pode ser observada visualmente
que a pgina testRunner.html, responsvel pela execuo
dos testes unitrios, agora traz um boto que chama a ferramenta jsCoverage aps os testes terem sido executados.
com essa verso modificada do jsunit que este estudo de caso
ir ser executado.
Durante os testes para o desenvolvimento deste artigo, esta
integrao do jsUnit e jsCoverage foi testada com as trs formas
de instrumentao apresentadas. Entretanto, a integrao somente foi funcional com a segunda forma de instrumentao,
na qual utiliza o jscoverage-server.
Com o servidor do jscoverage rodando, abre-se a pgina:
http://127.0.0.1:8080/testRunner.html e acionam-se os casos de
teste no arquivo jsUnitTestAvaliarAluno.html: 127.0.0.1:8080/
jsUnitTestAvaliarAluno.html. Os testes so executados, apresentando o resultado exibido na Figura 8. Importante destacar
que os arquivos do estudo de caso devem estar no mesmo
diretrio que o servidor do jscoverage (jscoverage-server.exe).
possvel observar que um dos casos de teste apresentou
problema (o testVericarAprovacao_AprovacaoDiretoPorNota). Buscando investigar, foi acionada a opo de visualizar
o relatrio do jsCoverage (Coverage Report) e o resultado
exibido na Figura 9.

Figura 9. Resultado do jsCoverage Estudo de Caso

Na Figura 9 so apresentados os resultados do teste de cobertura com os trechos do cdigo fonte que esto sendo cobertos
ou no. Quando coberto, o trecho marcado em verde. Caso
contrrio, em vermelho. Nesse caso, o calcularAprovacao no
est sendo coberto onde a varivel mdia est sendo testada
com o valor 70. Esse trecho de cdigo, como pode ser visualizado, est sendo mostrado em vermelho.
Como foi dito, o caso de teste testVericarAprovacao_AprovacaoDiretoPorNota falhou sua execuo. Isso se deve ao fato
que se esperaria que alunos com mdia 70 fossem aprovados
e, na realidade, esto sendo reprovados. De acordo com o
cdigo-fonte, quem possuir mdia entre 30 e 70 (inclusive)
deve fazer prova final.
Como esse aluno possui valor 0 na sua prova final, o mesmo
foi reprovado, sendo retornado o valor falso, onde o valor
esperado deveria ser verdadeiro, falhando assim o caso de
teste. Com isso, foi possvel identificar uma falha no cdigo
fonte, uma vez que o aluno com mdia de valor 70 deveria
ser aprovado.
Deve-se ento fazer uma alterao no mtodo calcularAprovacao para que sejam aprovados os alunos com mdia superior ou IGUAL a 70. A alterao deve ser realizada na linha
referente verificao da mdia ser maior que 70. Modifique-a
para media >= 70.
As Figuras 10 e 11 apresentam os resultados do jsUnit e
jsCoverage, respectivamente, aps a modificao. Observe
que todos os casos de teste so executados de forma correta e
a funo Java Script possui cobertura de 100%.

Consideraes Finais

Figura 8. Resultado do jsUnit Estudo de Caso

Uma questo importante ao se trabalhar com testes unitrios a definio do nmero de casos de teste necessrios
para avaliar os caminhos possveis de um algoritmo. Como
impossvel testar todas as situaes, torna-se primordial no
construir casos de teste desnecessrios, testando as mesmas
situaes.
Uma importante tcnica conhecida como Complexidade
Ciclomtica de McCabe, j citada, que avalia o nmero de

Edio 25 - Engenharia de Software Magazine

55

Figura 10. Resultado do jsUnit Estudo de Caso Erro Resolvido

Para isso, uma outra tcnica conhecida como Particionamento


por Classes de Equivalncia, auxiliada por outra tcnica chamada Anlise do Valor Limite, podem ser teis, mas fogem
ao escopo deste artigo.
O sucesso de uma abordagem de desenvolvimento apoiada
por testes d-se em funo da qualidade dos casos de teste. Se
um sistema no falha nos testes planejados, fica a dvida se
o sistema de boa qualidade ou se os casos de teste que so
de baixa qualidade. Portanto, investir num bom planejamento
de testes fundamental para essa estratgia.
O ambiente de execuo de testes deve ser cuidadosamente
planejado. importante garantir que o ambiente seja o mesmo
a cada execuo do teste, preocupando-se, por exemplo, com
o estado das informaes no banco de dados.
A utilizao de tcnicas de teste proporciona aos desenvolvedores um menor ndice de defeitos no cdigo fonte e,
consequentemente, uma maior confiabilidade do sistema no
ambiente de produo e maior qualidade da aplicao. Nesse
sentido, vimos nesse artigo que o jsUnit um framework de
testes unitrios e o jsCoverage de testes de cobertura, ambos
para a linguagem Java Script, que buscam automatizar o
processo de testes, tornando possvel a implantao de uma
poltica de testes na prtica.
Links
Famlia xUnit
http://xunitpatterns.com/
JsUnit
http://www.jsunit.net/

56

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


Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
www.devmedia.com.br/esmag/feedback

Engenharia de Software Magazine - Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage

Feedback
eu
sobre e
s

caminhos possveis em um algoritmo, indicando o nmero de


casos de teste necessrios para avaliar as suas possibilidades.
Contudo, essa tcnica apenas determina o nmero de casos
de teste, no os valores que devem ser utilizados no mesmo.

D seu feedback sobre esta edio!

edio
ta

Figura 11. Resultado do jsCoverage Estudo de Caso Erro Resolvido

D
s

JsCoverage
http://siliconforks.com/jscoverage/

Edio 25 - Engenharia de Software Magazine

57

58

Engenharia de Software Magazine - Teste unitrio e de cobertura para Java Script com JsUnit e JsCovarage

Você também pode gostar