17.04.2013 Views

Engenharia de Softwa..

Engenharia de Softwa..

Engenharia de Softwa..

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

+ 81% <strong>de</strong> professores mestres e doutores + Opções <strong>de</strong> cursos também aos sábados + Bolsas, Créditos e Descontos<br />

Especialização (Lato Sensu) nas áreas <strong>de</strong>:<br />

Ciências Biológicas, Ciências da Saú<strong>de</strong>, Ciências Jurídicas, Comunicação, Finanças Corporativas,<br />

Gestão Empresarial e Estratégias Corporativas, Letras, Artes e Ciências da Educação e Tecnologia.<br />

Mestrado em:<br />

Arquitetura e Urbanismo, Ciências do Envelhecimento, Educação Física e Filosofia.<br />

Doutorado em Educação Física<br />

O único oferecido por uma instituição privada no Estado <strong>de</strong> São Paulo.<br />

SEU DIPLOMA GANHA,<br />

O MERCADO GANHA E VOCÊ<br />

GANHA MAIS AINDA.<br />

Butantã: Av. Vital Brasil, 1000 - Ao lado da futura estação Butantã e próxima da estação Pinheiros (CPTM).<br />

Mooca: Rua Taquari, 546 - A poucos minutos da estação Bresser-Mooca. www.usjt.br - Tel.: 11 2799-1972


Ano 3 - 25ª Edição - 2010 Impresso no Brasil<br />

Corpo Editorial<br />

Colaboradores<br />

Rodrigo Oliveira Spínola<br />

rodrigo@sqlmagazine.com.br<br />

Marco Antônio Pereira Araújo<br />

Eduardo Oliveira Spínola<br />

Capa e Diagramação<br />

Romulo Araujo - romulo@<strong>de</strong>vmedia.com.br<br />

Coor<strong>de</strong>nação Geral<br />

Daniella Costa - daniella@<strong>de</strong>vmedia.com.br<br />

Revisor e Supervisor<br />

Thiago Vincenzo - thiago.v.ciancio@<strong>de</strong>vmedia.com.br<br />

Na Web<br />

www.<strong>de</strong>vmedia.com.br/esmag<br />

Apoio<br />

Atendimento ao Leitor<br />

A DevMedia conta com um <strong>de</strong>partamento exclusivo para o atendimento ao leitor.<br />

Se você tiver algum problema no recebimento do seu exemplar ou precisar <strong>de</strong><br />

algum esclarecimento sobre assinaturas, exemplares anteriores, en<strong>de</strong>reço <strong>de</strong><br />

bancas <strong>de</strong> jornal, entre outros, entre em contato com:<br />

Cristiany Queiróz– Atendimento ao Leitor<br />

www.<strong>de</strong>vmedia.com.br/mancad<br />

(21) 2220-5338<br />

Kaline Dolabella<br />

Gerente <strong>de</strong> Marketing e Atendimento<br />

kalined@terra.com.br<br />

(21) 2220-5338<br />

Publicida<strong>de</strong><br />

Para informações sobre veiculação <strong>de</strong> anúncio na revista ou no site entre em<br />

contato com:<br />

Kaline Dolabella<br />

publicida<strong>de</strong>@<strong>de</strong>vmedia.com.br<br />

Fale com o Editor!<br />

É muito importante para a equipe saber o que você está achando da revista: que tipo <strong>de</strong> artigo<br />

você gostaria <strong>de</strong> ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a<br />

vonta<strong>de</strong> para entrar em contato com os editores e dar a sua sugestão!<br />

Se você estiver interessado em publicar um artigo na revista ou no site SQL Magazine,<br />

entre em contato com os editores, informando o título e mini-resumo do tema que você<br />

gostaria <strong>de</strong> publicar:<br />

Rodrigo Oliveira Spínola - Colaborador<br />

editor@sqlmagazine.com.br<br />

EDITORIAL<br />

P<br />

o<strong>de</strong>-se <strong>de</strong>finir Governança em TIC como o alinhamento estratégico <strong>de</strong> TIC com<br />

o negócio <strong>de</strong> forma que se obtenha o máximo valor <strong>de</strong>ste através do <strong>de</strong>senvolvimento<br />

e manutenção <strong>de</strong> controles efetivos <strong>de</strong> TIC orientados ao controle <strong>de</strong><br />

custos, gestão do retorno dos investimentos relacionados e gestão dos riscos associados<br />

(WEILL e ROSS, 2006).<br />

Preten<strong>de</strong>ndo cumprir este objetivo, são muitos os mecanismos <strong>de</strong> relação entre os processos<br />

<strong>de</strong> negócio e os processos <strong>de</strong> TIC que têm sido gerados pela disciplina <strong>de</strong> Governança<br />

em TIC. O resultado final é uma infinida<strong>de</strong> <strong>de</strong> padrões e boas práticas, envolvendo: processos,<br />

indicadores, perfis, diretrizes, <strong>de</strong>ntre outros, cuja aplicação geralmente exige muito<br />

investimento, tempo e esforço, em função do formalismo adotado por estes padrões.<br />

No artigo IT Governance: Reviewing 17 IT Governance Tools and Analysing the Case<br />

of Novozymes A/S , Holm et al. apresentam uma síntese das intenções <strong>de</strong> melhoria da<br />

relação entre a TIC e o negócio mediante a classificação <strong>de</strong> 17 padrões e ferramentas <strong>de</strong><br />

melhores práticas existentes em termos <strong>de</strong> variáveis, como: tipo <strong>de</strong> processo e organização.<br />

O trabalho citado aborda a investigação <strong>de</strong> como a Governança em TIC é adotada<br />

no caso <strong>de</strong> uma companhia lí<strong>de</strong>r no mercado mundial <strong>de</strong> biotecnologia em enzimas e<br />

micro-organismos industriais. Neste processo é realizada a revisão <strong>de</strong> 17 ferramentas <strong>de</strong><br />

Governança em TIC.<br />

Neste contexto, a <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine <strong>de</strong>staca nesta edição um artigo<br />

muito interessante sobre governança em tecnologia <strong>de</strong> informação. O objetivo do artigo<br />

não é discutir em <strong>de</strong>talhes os êxitos ou melhorias que estas ferramentas têm alcançado<br />

(em especial ITIL e COBIT) para os processos <strong>de</strong> suporte ao core business <strong>de</strong> nossas organizações.<br />

O artigo objetiva apresentar uma revisão sistemática a respeito <strong>de</strong> nove mo<strong>de</strong>los<br />

<strong>de</strong> governança em TIC, procurando permitir ao leitor a criação <strong>de</strong> uma visão crítica<br />

a respeito do corpo <strong>de</strong> conhecimento <strong>de</strong> governança em TIC – ICTGBOK, suas principais<br />

características, carências e limitações. Ao final, i<strong>de</strong>ntifica o surgimento <strong>de</strong> um novo paradigma:<br />

Governança Ágil em TIC, que se propõe a sanar as limitações existentes.<br />

Além <strong>de</strong>sta matéria, esta edição traz mais seis artigos:<br />

• Natureza do <strong>Softwa</strong>re e a Necessida<strong>de</strong> <strong>de</strong> Princípios e Processo<br />

• <strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao conhecimento<br />

• Ferramentas para Gerência <strong>de</strong> Projetos<br />

• Reportando <strong>de</strong> forma simples os resultados dos testes<br />

• Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage<br />

• Humanos, Formigas e o Trabalho em Equipe<br />

Desejamos uma ótima leitura!<br />

Equipe Editorial <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine<br />

Rodrigo Oliveira Spínola<br />

rodrigo@sqlmagazine.com.br<br />

Doutorando em <strong>Engenharia</strong> <strong>de</strong> Sistemas e Computação (COPPE/UFRJ). Mestre em<br />

<strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re (COPPE/UFRJ, 2004). Bacharel em Ciências da Computação<br />

(UNIFACS, 2001). Colaborador da Kali <strong>Softwa</strong>re (www.kalisoftware.com), tendo ministrado<br />

cursos na área <strong>de</strong> Qualida<strong>de</strong> <strong>de</strong> Produtos e Processos <strong>de</strong> <strong>Softwa</strong>re, Requisitos e<br />

Desenvolvimento Orientado a Objetos. Consultor para implementação do MPS.BR. Atua<br />

como Gerente <strong>de</strong> Projeto e Analista <strong>de</strong> Requisitos em projetos <strong>de</strong> consultoria na COPPE/<br />

UFRJ. É Colaborador da <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine.<br />

Marco Antônio Pereira Araújo - Editor<br />

(maraujo@<strong>de</strong>vmedia.com.br)<br />

Doutor e Mestre em <strong>Engenharia</strong> <strong>de</strong> Sistemas e Computação pela COPPE/UFRJ - Linha<br />

<strong>de</strong> Pesquisa em <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re, Especialista em Métodos Estatísticos<br />

Computacionais e Bacharel em Matemática com Habilitação em Informática pela<br />

UFJF, Professor e Coor<strong>de</strong>nador do curso <strong>de</strong> Bacharelado em Sistemas <strong>de</strong> Informação<br />

do Centro <strong>de</strong> Ensino Superior <strong>de</strong> Juiz <strong>de</strong> Fora, Professor do curso <strong>de</strong> Bacharelado em<br />

Sistemas <strong>de</strong> Informação da Faculda<strong>de</strong> Metodista Granbery, Professor e Diretor do Curso<br />

Superior <strong>de</strong> Tecnologia em Análise e Desenvolvimento <strong>de</strong> Sistemas da Fundação<br />

Educacional D. André Arcover<strong>de</strong>, Analista <strong>de</strong> Sistemas da Prefeitura <strong>de</strong> Juiz <strong>de</strong> Fora,<br />

Colaborador da <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine.<br />

Eduardo Oliveira Spínola<br />

(eduspinola@gmail.com)<br />

É Colaborador das revistas <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine, Java Magazine e SQL Magazine.<br />

É bacharel em Ciências da Computação pela Universida<strong>de</strong> Salvador (UNIFACS)<br />

on<strong>de</strong> atualmente cursa o mestrado em Sistemas e Computação na linha <strong>de</strong> <strong>Engenharia</strong><br />

<strong>de</strong> <strong>Softwa</strong>re, sendo membro do GESA (Grupo <strong>de</strong> <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re e Aplicações).


Caro Leitor<br />

Caro Leitor,<br />

Para esta edição, temos um conjunto <strong>de</strong> 4 ví<strong>de</strong>o aulas. Estas ví<strong>de</strong>o aulas estão disponíveis para download no Portal da <strong>Engenharia</strong><br />

<strong>de</strong> <strong>Softwa</strong>re Magazine e certamente trarão uma significativa contribuição para seu aprendizado. A lista <strong>de</strong> aulas<br />

publicadas po<strong>de</strong> ser vista abaixo:<br />

Tipo: Validação, Verificação & Teste<br />

Título: Teste <strong>de</strong> Interface<br />

Autor: Arilo Claudio Dias Neto<br />

Mini-Resumo: Esta ví<strong>de</strong>o aula aborda a aplicação <strong>de</strong> testes <strong>de</strong> interface (ou teste<br />

GUI), apresentando sua <strong>de</strong>finição, <strong>de</strong>safios, estratégias, aplicabilida<strong>de</strong> e os elementos<br />

que compõem o teste <strong>de</strong> interface. Ao final, é apresentado um exemplo <strong>de</strong> teste <strong>de</strong><br />

interface aplicado em uma aplicação do SO Windows.<br />

Tipo: Validação, Verificação & Teste<br />

Título: Automação <strong>de</strong> Testes<br />

Autor: Arilo Claudio Dias Neto<br />

Mini-Resumo: Esta ví<strong>de</strong>o aula aborda o tema <strong>de</strong> automação dos testes, apresentando<br />

os diferentes tipos <strong>de</strong> estratégias <strong>de</strong> automação, <strong>de</strong>cisões a serem tomadas<br />

para automatizar o processo <strong>de</strong> testes, a importância da automação para o sucesso<br />

dos testes e um exemplo <strong>de</strong> cenário <strong>de</strong> testes automatizado.<br />

ÍNDICE<br />

Por trás do obvio<br />

05 - Humanos, Formigas e o Trabalho em Equipe<br />

<strong>Engenharia</strong><br />

06 - Natureza do software e a necessida<strong>de</strong> <strong>de</strong> princípios e processo<br />

14 - <strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao conhecimento<br />

Agilida<strong>de</strong><br />

21 - Da Gestão à Governança em Tecnologia da Informação e Comunicação – TIC<br />

Planejamento e Gerência<br />

32 - Ferramentas para Gerência <strong>de</strong> Projetos<br />

Desenvolvimento<br />

40 - Reportando <strong>de</strong> forma simples os resultados dos testes<br />

49 - Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage<br />

4 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine<br />

Tipo: Validação, Verificação & Teste<br />

Título: Teste Baseado em Mo<strong>de</strong>los - Definições e Conceitos - Parte 1<br />

Autor: Arilo Claudio Dias Neto<br />

Mini-Resumo: Esta ví<strong>de</strong>o aula aborda o tema <strong>de</strong> testes baseado em mo<strong>de</strong>los,<br />

apresentando o processo <strong>de</strong> teste baseado em mo<strong>de</strong>los, técnicas <strong>de</strong> teste baseado<br />

em mo<strong>de</strong>los, sua aplicabilida<strong>de</strong> em um projeto <strong>de</strong> software e a integração entre teste<br />

baseado em mo<strong>de</strong>los e os diagramas UML.<br />

Tipo: Validação, Verificação & Teste<br />

Título: Teste Baseado em Mo<strong>de</strong>los - Exemplo <strong>de</strong> Técnica: TDE - Parte 2<br />

Autor: Arilo Claudio Dias Neto<br />

Mini-Resumo: Esta ví<strong>de</strong>o-aula dá continuida<strong>de</strong> à aula anterior, apresentando um<br />

exemplo <strong>de</strong> técnica <strong>de</strong> teste baseado em mo<strong>de</strong>los que utiliza diagramas UML para<br />

viabilizar a geração <strong>de</strong> casos <strong>de</strong> teste. Esta técnica será apresentada através <strong>de</strong> uma<br />

aplicação <strong>de</strong> exemplo.<br />

Glênio Cabral<br />

Antonio Men<strong>de</strong>s da Silva Filho<br />

Viviane Schnei<strong>de</strong>r e Ivan Correia Filagrana<br />

Alexandre José <strong>de</strong> Oliveira, Cleyverson Pereira Costa e Hermano Perrelli <strong>de</strong> Moura<br />

Marco Antônio Pereira Araújo , Patrícia Lima Quintão e Jurema Florinda Lembe <strong>de</strong> Veiga<br />

Daniel Scaldaferri Lages<br />

Jenifer Vieira Toledo, Elessandro Rodrigues Marques, Marcelo Santos Daibert e Marco Antônio Pereira Araújo


Pos trás do Óbvio<br />

Glênio Cabral<br />

gleniocabral@yahoo.com.br<br />

É Administrador <strong>de</strong> Empresas, pós-graduado em Gestão <strong>de</strong> Pessoas<br />

e músico.<br />

Todos nós concordamos que o trabalho em equipe é<br />

fundamental para o <strong>de</strong>senvolvimento <strong>de</strong> qualquer<br />

organização. Através da união <strong>de</strong> competências e<br />

habilida<strong>de</strong>s, a diversida<strong>de</strong> é direcionada para um objetivo<br />

comum: o progresso do todo. O problema é que para muitos<br />

<strong>de</strong> nós, seres humanos, trabalhar em equipe é um processo<br />

complexo e penoso.<br />

As formigas, no entanto, não agem <strong>de</strong>ssa forma. Cada formiga<br />

tem um papel muito bem <strong>de</strong>finido no seu formigueiro, e<br />

através <strong>de</strong> um excepcional trabalho em conjunto elas realizam<br />

ativida<strong>de</strong>s complexas como estocagem <strong>de</strong> alimentos, controle<br />

<strong>de</strong> natalida<strong>de</strong> e expansão territorial. Observar o comportamento<br />

<strong>de</strong>sses insetos faz o trabalho em equipe parecer a coisa<br />

mais simples e previsível do mundo. Como insetos irracionais<br />

conseguem tamanha proeza?<br />

Talvez uma possível explicação seja o fato <strong>de</strong> que as formigas<br />

não têm aspirações individuais. Formigas são seres <strong>de</strong>sprovidos<br />

<strong>de</strong> vaida<strong>de</strong>s e sonhos, como qualquer ser irracional que<br />

se preze. Por isso elas não sentem a menor necessida<strong>de</strong> <strong>de</strong><br />

serem reconhecidas por seu <strong>de</strong>sempenho, nem <strong>de</strong> galgarem<br />

andares hierárquicos no formigueiro e muito menos <strong>de</strong> se<br />

realizarem como insetos. Não há registros <strong>de</strong> paralisações ou<br />

<strong>de</strong> revoluções operárias entre as formigas. Já nas organizações<br />

humanas...<br />

Talvez uma outra possível explicação seja o fato <strong>de</strong> que esses<br />

insetos não são vulneráveis aos ventos da <strong>de</strong>smotivação. Aliás,<br />

Humanos, Formigas e o<br />

Trabalho em Equipe<br />

<strong>de</strong>smotivação é para o bicho homem, que é um ser racional e<br />

por isso tem necessida<strong>de</strong>s insaciáveis a cada estação. As formigas<br />

são sempre ativas, pois <strong>de</strong>ntro <strong>de</strong> cada uma <strong>de</strong>las ar<strong>de</strong><br />

a chama implacável da auto-motivação gerada pela ditadura<br />

do instinto animal e perpetuada pela mãe natureza.<br />

Ao contrário dos animais, nós, seres humanos, evoluímos<br />

ao longo da nossa história através das tensões e dos conflitos.<br />

Faz parte da nossa natureza nascer incompletos e evoluir<br />

através das turbulências. Se assim é, chegamos a uma óbvia<br />

conclusão: há uma gran<strong>de</strong> diferença entre o trabalho em equipe<br />

realizado pelas formigas e o trabalho em equipe realizado<br />

pelos seres humanos. No primeiro, a ausência <strong>de</strong> tensões é<br />

fundamental para a sobrevivência da espécie. No segundo,<br />

a ausência <strong>de</strong> conflitos é o atestado <strong>de</strong> óbito da organização.<br />

Nas organizações humanas, os conflitos não <strong>de</strong>vem <strong>de</strong>ixar<br />

<strong>de</strong> existir, mas <strong>de</strong>vem ser administrados e canalizados para<br />

a promoção do bem comum. A não ser que a sua organização<br />

seja um formigueiro.<br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

Dê seu Feedback<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 5<br />

sobre esta edição


<strong>Engenharia</strong><br />

Nesta seção você encontra artigos voltados para testes, processo,<br />

mo<strong>de</strong>los, documentação, entre outros<br />

Natureza do <strong>Softwa</strong>re e a Necessida<strong>de</strong> <strong>de</strong><br />

Princípios e Processo<br />

Antonio Men<strong>de</strong>s da Silva Filho<br />

antoniom.silvafilho@gmail.com<br />

Professor e consultor em área <strong>de</strong> tecnologia<br />

da informação e comunicação com mais<br />

<strong>de</strong> 20 anos <strong>de</strong> experiência profissional, é<br />

autor do livros Arquitetura <strong>de</strong> <strong>Softwa</strong>re e<br />

Programando com XML, ambos pela Editora<br />

Campus/Elsevier, tem mais <strong>de</strong> 30 artigos<br />

publicados em eventos nacionais e internacionais,<br />

colunista para Ciência e Tecnologia<br />

pela Revista Espaço Acadêmico com<br />

mais <strong>de</strong> 80 artigos publicados, tendo feitos<br />

palestras em eventos nacionais e exterior.<br />

Foi Professor Visitante da University of<br />

Texas at Dallas e da University of Ottawa.<br />

Formado em <strong>Engenharia</strong> Elétrica pela Universida<strong>de</strong><br />

<strong>de</strong> Pernambuco, com Mestrado<br />

em <strong>Engenharia</strong> Elétrica pela Universida<strong>de</strong><br />

Fe<strong>de</strong>ral da Paraíba (Campina Gran<strong>de</strong>),<br />

Mestrado em <strong>Engenharia</strong> da Computação<br />

pela University of Waterloo e Doutor em<br />

Ciência da Computação pela Univesida<strong>de</strong><br />

Fe<strong>de</strong>ral <strong>de</strong> Pernambuco.<br />

Observe a Figura 1 e i<strong>de</strong>ntifique<br />

o que há <strong>de</strong> comum nos vários<br />

produtos ilustrados.<br />

Se você respon<strong>de</strong>u software, então<br />

acertou. É isso mesmo. <strong>Softwa</strong>re está<br />

praticamente em todas as coisas <strong>de</strong> nosso<br />

cotidiano, servindo às mais variadas<br />

necessida<strong>de</strong>s das pessoas. Entretanto,<br />

você já parou para pensar como o software<br />

é construído? O que é necessário<br />

para obter um software?<br />

Para construir ou <strong>de</strong>senvolver um<br />

software, você precisa enten<strong>de</strong>r sua<br />

natureza, conhecer a aplicação na qual<br />

será usado, bem como compreen<strong>de</strong>r os<br />

princípios e processo para guiar como e<br />

quando as ativida<strong>de</strong>s serão realizadas,<br />

além <strong>de</strong> <strong>de</strong>finir quem vai executálas.<br />

A leitura <strong>de</strong>ste artigo lhe dará a<br />

6 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Natureza do <strong>Softwa</strong>re e a Necessida<strong>de</strong> <strong>de</strong> Princípios e Processo<br />

De que se trata o artigo?<br />

Discute a natureza do software e apresenta um<br />

conjunto <strong>de</strong> princípios <strong>de</strong> engenharia empregados<br />

no <strong>de</strong>senvolvimento <strong>de</strong> sistemas <strong>de</strong> software,<br />

<strong>de</strong>stacando a necessida<strong>de</strong> <strong>de</strong> um processo.<br />

Para que serve?<br />

Enten<strong>de</strong>r a natureza do software e conhecer<br />

os princípios que fundamentam a engenharia<br />

<strong>de</strong> software, enfatizando a importância <strong>de</strong> um<br />

processo.<br />

Em que situação o tema é útil?<br />

No <strong>de</strong>senvolvimento <strong>de</strong> sistemas <strong>de</strong> software,<br />

quando o engenheiro precisa conhecer<br />

a natureza do produto a ser <strong>de</strong>senvolvido, e<br />

como as ativida<strong>de</strong>s e princípios que norteiam<br />

seu <strong>de</strong>senvolvimento são cruciais para a obtenção<br />

do produto.<br />

oportunida<strong>de</strong> <strong>de</strong> enten<strong>de</strong>r a natureza<br />

do software e importância do uso <strong>de</strong><br />

princípios e processo no <strong>de</strong>senvolvimento<br />

<strong>de</strong> software.<br />

Você já percebeu que software está<br />

praticamente em todas as coisas <strong>de</strong> seu<br />

cotidiano?


Figura 1. Conjunto <strong>de</strong> produtos<br />

Um exemplo disso é a central telefônica que permite às<br />

pessoas conversarem ao telefone. O controle da operação das<br />

centrais telefônicas é, hoje em dia, todo feito por software.<br />

Você já foi a alguma casa lotérica para efetuar um pagamento<br />

<strong>de</strong> conta <strong>de</strong> água ou energia? Ou já arriscou jogar na loteria?<br />

Quando você vai a uma casa lotérica, por quaisquer um dos<br />

motivos acima, você está usando o sistema que tem todo seu<br />

controle feito por software e o mesmo acontece quando você<br />

vai ao banco. Perceba que quase todos os sistemas hoje em dia<br />

têm seu controle operacional sendo feito por software. E, com<br />

certeza, você é usuário <strong>de</strong> computador que possui diversos<br />

tipos <strong>de</strong> software operando nele.<br />

Observe que o software tem se tornado um companheiro e<br />

sido uma ferramenta fundamental <strong>de</strong> nosso dia-a-dia. Dessa<br />

forma, as seções subsequentes do artigo apresentam a natureza<br />

do software e princípios e processo <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> software.<br />

Natureza do software<br />

Há aproximadamente cinco décadas atrás, software constituía<br />

uma pequena, senão ínfima, parcela dos sistemas computacionais<br />

quando comparado ao hardware. Naquela época,<br />

os custos <strong>de</strong> <strong>de</strong>senvolvimento e manutenção <strong>de</strong> software eram<br />

<strong>de</strong>sprezíveis. Hoje, porém, software é responsável por significativa<br />

porção dos sistemas computacionais. Encontramos<br />

software nas mais diversas aplicações. No uso doméstico,<br />

fazemos uso <strong>de</strong> processadores <strong>de</strong> texto e planilhas (como,<br />

por exemplo, Word e Excel da Microsoft). Adicionalmente,<br />

software tem sido um componente importante e muito utilizado<br />

em diversos sistemas. Po<strong>de</strong>-se exemplificar seu uso no<br />

controle e supervisão dos sistemas <strong>de</strong> geração e distribuição<br />

<strong>de</strong> energia, bem como em sistemas <strong>de</strong> telecomunicações, on<strong>de</strong><br />

ele é encarregado do controle e roteamento <strong>de</strong> milhares <strong>de</strong><br />

ligações telefônicas.<br />

Cabe <strong>de</strong>stacar que, hoje em dia, empresas e pessoas têm<br />

conseguido otimizar o tempo <strong>de</strong> realização <strong>de</strong> suas ativida<strong>de</strong>s,<br />

geralmente, fazendo uso <strong>de</strong> sistemas computacionais, isto é,<br />

sistemas on<strong>de</strong> o computador e, mais especificamente, o software,<br />

é uma peça essencial.<br />

<strong>Softwa</strong>re compreen<strong>de</strong> um conjunto <strong>de</strong> instruções que, quando<br />

são executadas em um dispositivo, fornecem funcionalida<strong>de</strong>s<br />

a seus usuários com <strong>de</strong>sempenho <strong>de</strong>sejado. Todavia,<br />

o software tem uma característica que o diferencia <strong>de</strong> outros<br />

produtos, e especificamente do hardware. Hardware é um<br />

artefato físico (geralmente tecnológico) como, por exemplo,<br />

ENGENhARIA DE SoFtWARE<br />

um aparelho <strong>de</strong> TV, um equipamento <strong>de</strong> som, um aparelho<br />

celular ou um computador propriamente dito. No entanto, via<br />

<strong>de</strong> regra, os equipamentos (hardware) sofrem <strong>de</strong>sgaste e, como<br />

resultado, começam a apresentar <strong>de</strong>feitos <strong>de</strong>correntes <strong>de</strong>sse<br />

<strong>de</strong>sgaste (físico) causado, por exemplo, por longo período <strong>de</strong><br />

uso, poeira, variações na tensão da re<strong>de</strong> elétrica e umida<strong>de</strong>.<br />

Todos esses fatores contribuem para o <strong>de</strong>sgaste do hardware,<br />

como mostrado na Figura 2.<br />

Figura 2. Curva <strong>de</strong> falhas <strong>de</strong> hardware<br />

E o software? Ele sofre <strong>de</strong>sgaste?<br />

A resposta é não. <strong>Softwa</strong>re não é uma entida<strong>de</strong> física e, portanto,<br />

não software qualquer tipo <strong>de</strong> <strong>de</strong>sgaste (físico) como<br />

ocorre com o hardware. Observe na Figura 3 que, <strong>de</strong>pois que<br />

os <strong>de</strong>feitos <strong>de</strong>correntes do <strong>de</strong>senvolvimento são corrigidos,<br />

no caso i<strong>de</strong>al, não haverá mais falhas já que software não se<br />

<strong>de</strong>sgasta. Mas po<strong>de</strong> haver inserção <strong>de</strong> novos <strong>de</strong>feitos <strong>de</strong>vido<br />

às modificações no software.<br />

Figura 3. Curva real e i<strong>de</strong>al <strong>de</strong> falhas <strong>de</strong> software<br />

É importante você observar o comportamento da curva real<br />

<strong>de</strong> falhas (em função do tempo) <strong>de</strong> software quando comparada<br />

com a curva i<strong>de</strong>al <strong>de</strong> falhas <strong>de</strong> software. Por exemplo,<br />

toda vez que uma nova funcionalida<strong>de</strong> é <strong>de</strong>sejada, torna-se<br />

necessário adicionar e/ou modificar as instruções já existentes<br />

no software e, por conta <strong>de</strong>ssas mudanças, novos <strong>de</strong>feitos<br />

po<strong>de</strong>m ser introduzidos, aumentando o número <strong>de</strong> falhas<br />

e, portanto, po<strong>de</strong>ndo causar a <strong>de</strong>terioração na qualida<strong>de</strong> do<br />

software. Então, você po<strong>de</strong> estar se perguntando: o que seria<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 7


necessário fazer para evitar ou, pelo menos, minimizar esse<br />

aumento do número <strong>de</strong> falhas?<br />

Nesse momento, antes <strong>de</strong> respon<strong>de</strong>r, é importante lembrar que<br />

algo que o <strong>de</strong>senvolvimento <strong>de</strong> qualquer produto ou artefato requer<br />

é saber quais os passos necessários para alcançar o objetivo<br />

<strong>de</strong> ter o produto pronto (<strong>de</strong>senvolvido). E, o que seria isso?<br />

A resposta a esta questão é engenharia e, especificamente,<br />

neste caso, engenharia <strong>de</strong> software, tendo como premissa<br />

assegurar a confiabilida<strong>de</strong> <strong>de</strong>sejada do sistema. O leitor<br />

po<strong>de</strong> consultar o artigo sobre confiabilida<strong>de</strong> <strong>de</strong> software no<br />

quadro <strong>de</strong> links no final <strong>de</strong>ste artigo. Contudo, observe que<br />

o <strong>de</strong>senvolvimento <strong>de</strong> sistemas <strong>de</strong> software, similarmente a<br />

outros sistemas (como na analogia com a construção <strong>de</strong> uma<br />

casa), po<strong>de</strong> ser <strong>de</strong>composto em três fases genéricas – <strong>de</strong>finição,<br />

<strong>de</strong>senvolvimento e manutenção – conforme ilustrado na<br />

Figura 4.<br />

Figura 4. Fases genéricas no <strong>de</strong>senvolvimento <strong>de</strong> software<br />

A fase <strong>de</strong> <strong>de</strong>finição engloba a i<strong>de</strong>ntificação <strong>de</strong> informações<br />

que <strong>de</strong>veriam ser processadas, funções e <strong>de</strong>sempenho <strong>de</strong>sejados,<br />

tipo <strong>de</strong> interface a ser utilizada, tarefas que o sistema<br />

<strong>de</strong>veria prover suporte, perfil <strong>de</strong> usuários do sistema, <strong>de</strong>ntre<br />

outras.<br />

Já a fase <strong>de</strong> <strong>de</strong>senvolvimento concentra-se no projeto <strong>de</strong><br />

estruturas <strong>de</strong> dados e arquitetura <strong>de</strong> software do sistema<br />

(isto é, como ele está organizado), conversão do projeto para<br />

alguma linguagem <strong>de</strong> programação (ou seja, implementação),<br />

realização <strong>de</strong> testes e avaliação.<br />

Finalmente, a manutenção consi<strong>de</strong>ra modificações e/ou<br />

correções necessárias no sistema a fim <strong>de</strong> que este atenda<br />

aos requisitos do sistema. Perceba que o processo <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> um sistema <strong>de</strong> software tem duas gran<strong>de</strong>s<br />

ativida<strong>de</strong>s <strong>de</strong> interesse que envolve o <strong>de</strong>senvolvimento da<br />

porção <strong>de</strong> software que implementa as funcionalida<strong>de</strong>s do<br />

sistema, e a ativida<strong>de</strong> que a antece<strong>de</strong> e norteia o <strong>de</strong>senvolvimento,<br />

que é o projeto <strong>de</strong> software. Essa última ativida<strong>de</strong> é<br />

resultado do levantamento e análise <strong>de</strong> requisitos que provê<br />

informações para <strong>de</strong>cisões <strong>de</strong> projeto.<br />

De tudo o que foi discutido acima, você po<strong>de</strong>rá perceber<br />

que há um guia <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software, o qual é<br />

encarregado <strong>de</strong>:<br />

• Definir a sequência <strong>de</strong> aplicação <strong>de</strong> métodos (em cada uma<br />

das etapas <strong>de</strong> <strong>de</strong>senvolvimento);<br />

• Definir os produtos (documentos ou outros artefatos) a<br />

serem entregues;<br />

• Estabelecer as datas <strong>de</strong> entrega (isto é, os milestones) dos<br />

produtos ou artefatos;<br />

• Assegura qualida<strong>de</strong> <strong>de</strong> <strong>de</strong>senvolvimento.<br />

8 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Natureza do <strong>Softwa</strong>re e a Necessida<strong>de</strong> <strong>de</strong> Princípios e Processo<br />

Esse guia, que <strong>de</strong>fine quais ativida<strong>de</strong>s <strong>de</strong>vem ser realizadas,<br />

<strong>de</strong>termina a sequência na qual as ativida<strong>de</strong>s são realizadas e<br />

as relações entre elas, estabelece critérios para a transição entre<br />

tarefas, compreen<strong>de</strong>ndo o processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong><br />

software. Em outras palavras, o processo guia o <strong>de</strong>senvolvimento<br />

<strong>de</strong>s<strong>de</strong> sua concepção quando os clientes (ou usuários)<br />

expressam quais funcionalida<strong>de</strong>s (ou requisitos do sistema)<br />

eles <strong>de</strong>sejam até a entrega do produto final (software). Isto é<br />

ilustrado na Figura 5.<br />

Figura 5. Papel do processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software<br />

Note que o processo é parte da engenharia <strong>de</strong> software, cujo<br />

objetivo principal é fazer uso <strong>de</strong> princípios <strong>de</strong> engenharia a fim<br />

<strong>de</strong> produzir, a baixo custo, software que opere corretamente e<br />

com eficiência em equipamentos (como o computador), on<strong>de</strong><br />

o software é instalado.<br />

<strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re<br />

Antigamente (isto é, cerca <strong>de</strong> quatro décadas atrás), o<br />

<strong>de</strong>senvolvimento <strong>de</strong> software era realizado sem qualquer<br />

planejamento, sem uso <strong>de</strong> técnicas, e po<strong>de</strong>mos até dizer que<br />

era <strong>de</strong>senvolvido por tentativa e erro. Em outras palavras, não<br />

havia qualquer disciplina <strong>de</strong> engenharia, faltavam métodos<br />

para o <strong>de</strong>senvolvimento e havia muitas questões que eram<br />

feitas décadas atrás para pequenos programas (software), que<br />

ainda po<strong>de</strong>m ser feitas hoje em dia para gran<strong>de</strong>s sistemas computacionais<br />

(on<strong>de</strong> software é parte essencial). Essas questões<br />

levantadas no livro Why <strong>Softwa</strong>re Cost so Much? (1975) <strong>de</strong> Tom<br />

DeMarco ainda são atuais:<br />

• “Por que <strong>de</strong>mora tanto tempo para que os programas sejam<br />

concluídos?”<br />

• “Por que os custos são tão elevados?”<br />

• “Por que não <strong>de</strong>scobrimos todos os erros antes <strong>de</strong> entregarmos<br />

o software ao nosso cliente?”<br />

• “Por que temos dificulda<strong>de</strong>s em medir o progresso enquanto<br />

o software está sendo <strong>de</strong>senvolvido?”<br />

Respon<strong>de</strong>r a essas questões tem sido uma das metas da engenharia<br />

<strong>de</strong> software a qual tem uma <strong>de</strong>finição clássica dada<br />

por Fritz Bauer em 1969, on<strong>de</strong> ele a <strong>de</strong>finiu como:<br />

“O estabelecimento e uso <strong>de</strong> sólidos princípios <strong>de</strong> engenharia para<br />

que se possa obter economicamente um software que seja confiável e<br />

que funcione eficientemente em máquinas reais.”<br />

Neste momento, você <strong>de</strong>ve perceber que a engenharia <strong>de</strong><br />

software consiste <strong>de</strong> um conjunto <strong>de</strong> técnicas que visam apoiar<br />

as ativida<strong>de</strong>s <strong>de</strong> levantamento <strong>de</strong> requisitos, mas também a


análise e especificação dos requisitos do sistema <strong>de</strong> software a<br />

ser <strong>de</strong>senvolvido. Essa documentação será então utilizada nas<br />

etapas seguintes do <strong>de</strong>senvolvimento que engloba o projeto<br />

<strong>de</strong> software, implementação ou codificação (isto é, a escrita do<br />

programa), testes e manutenção <strong>de</strong> software.<br />

Vale, contudo, ressaltar que a execução <strong>de</strong>ssas ativida<strong>de</strong>s<br />

ocorre <strong>de</strong> maneira disciplinada, ou seja, guiadas por um<br />

processo (discutido adiante), além <strong>de</strong> adotar práticas <strong>de</strong> gerenciamento<br />

<strong>de</strong> projetos que visam assegurar produtivida<strong>de</strong><br />

e qualida<strong>de</strong> do software, bem como redução <strong>de</strong> custos <strong>de</strong><br />

<strong>de</strong>senvolvimento. Além disso, é necessário um processo que<br />

serve <strong>de</strong> guia <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software e:<br />

• Define a sequência <strong>de</strong> aplicação dos métodos;<br />

• Define os produtos (artefatos) a serem entregues;<br />

• Busca assegurar qualida<strong>de</strong> <strong>de</strong> <strong>de</strong>senvolvimento;<br />

• Ajuda a estabelecer marcos no cronograma (milestones) para<br />

entrega <strong>de</strong> artefatos.<br />

Perceba que o papel do processo é integrar o uso <strong>de</strong> métodos<br />

e ferramentas coor<strong>de</strong>nando as ativida<strong>de</strong>s <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> software como planejado. Agora você po<strong>de</strong> concluir que a<br />

engenharia <strong>de</strong> software é uma área on<strong>de</strong> é feita a aplicação<br />

disciplinada e sistemática (ou seja, que consi<strong>de</strong>ra princípios <strong>de</strong><br />

engenharia) para <strong>de</strong>senvolvimento e manutenção <strong>de</strong> software.<br />

Então, o papel do engenheiro <strong>de</strong> software não se restringe a<br />

apenas ativida<strong>de</strong>s <strong>de</strong> programação, mas também ele precisa<br />

saber como conversar com o cliente (a pessoa ou empresa interessada<br />

no software a ser <strong>de</strong>senvolvido) com o objetivo <strong>de</strong><br />

levantar os requisitos <strong>de</strong> software que serão <strong>de</strong>pois documentados<br />

na especificação <strong>de</strong> requisitos. E, a partir do momento<br />

que ele estiver com a especificação em mãos, ele po<strong>de</strong>rá iniciar<br />

as ativida<strong>de</strong>s seguintes (projeto, implementação e testes).<br />

E o porquê da engenharia <strong>de</strong> software ou pra que ela<br />

serve?<br />

A engenharia <strong>de</strong> software visa assegurar:<br />

• A qualida<strong>de</strong> do software (produto);<br />

• Entrega do software conforme cronograma;<br />

• Desenvolvimento do software conforme orçamento.<br />

Observe que o processo é um elemento essencial, pois se ele<br />

for a<strong>de</strong>quadamente seguido, a qualida<strong>de</strong> do produto po<strong>de</strong>rá<br />

ser assegurada. A qualida<strong>de</strong> do produto é <strong>de</strong>terminante para<br />

o sucesso <strong>de</strong> um software. Há vários atributos da qualida<strong>de</strong><br />

que servem <strong>de</strong> indicativo para aceitação e satisfação do cliente<br />

(usuário do software). Dentre elas, po<strong>de</strong>mos <strong>de</strong>stacar:<br />

• Corretu<strong>de</strong> – Um software é correto se ele satisfaz os requisitos<br />

<strong>de</strong> funcionalida<strong>de</strong>s <strong>de</strong>scritos na especificação.<br />

• Confiabilida<strong>de</strong> – Um software é confiável se você po<strong>de</strong> utilizar<br />

o software por um <strong>de</strong>terminado período <strong>de</strong> tempo com<br />

probabilida<strong>de</strong> mínima da ocorrência <strong>de</strong> falhas.<br />

• Manutenibilida<strong>de</strong> (ou facilida<strong>de</strong> <strong>de</strong> manutenção) – Consi<strong>de</strong>ra-se<br />

que um software facilita a sua manutenção quando ele<br />

é <strong>de</strong>senvolvido (ou escrito) <strong>de</strong> modo que possa evoluir para<br />

ENGENhARIA DE SoFtWARE<br />

aten<strong>de</strong>r as necessida<strong>de</strong>s <strong>de</strong> mudança <strong>de</strong> requisitos do cliente.<br />

Trata-se <strong>de</strong> um atributo importante, já que a mudança das características<br />

<strong>de</strong> um software é algo, praticamente, inevitável.<br />

• Eficiência – Um software é consi<strong>de</strong>rado eficiente quando ele<br />

não <strong>de</strong>sperdiça capacida<strong>de</strong> <strong>de</strong> memória e <strong>de</strong> processamento.<br />

Isto é mais facilmente entendido como tempo <strong>de</strong> processamento<br />

e <strong>de</strong> resposta <strong>de</strong> um software.<br />

• Usabilida<strong>de</strong> – Um software provê usabilida<strong>de</strong> quando ele<br />

é fácil <strong>de</strong> usar e <strong>de</strong> apren<strong>de</strong>r a usar. Se o usuário consegue<br />

utilizar um software sem ajuda <strong>de</strong> outras pessoas, sem um<br />

treinamento, ou seja, se o software é intuitivo, o usuário conseguirá<br />

utilizá-lo sem dificulda<strong>de</strong>. Em tal situação, diz-se que<br />

a interface <strong>de</strong> usuário é amigável.<br />

Há outros atributos da qualida<strong>de</strong> como disponibilida<strong>de</strong>,<br />

robustez, modularida<strong>de</strong>, extensibilida<strong>de</strong>, reusabilida<strong>de</strong>. O<br />

intuito aqui não é <strong>de</strong> apresentar todos, mas <strong>de</strong>stacar aqueles<br />

mais importantes na maioria dos sistemas <strong>de</strong> software. Adicionalmente,<br />

cabe ainda <strong>de</strong>stacar que, geralmente, po<strong>de</strong>mos<br />

afirmar que se uma especificação <strong>de</strong> requisitos <strong>de</strong> software<br />

está correta, então ele é confiável, embora o contrário não<br />

possa ser afirmado, pois um software ser confiável não implica<br />

que sua especificação seja correta, conforme mostrado<br />

na Figura 6.<br />

Figura 6. Atributos da qualida<strong>de</strong> <strong>de</strong> software<br />

Princípios <strong>de</strong> <strong>Engenharia</strong><br />

Cabe <strong>de</strong>stacar ainda que a <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re se baseia<br />

em princípios <strong>de</strong> engenharia que são aplicados ao <strong>de</strong>senvolvimento<br />

<strong>de</strong> software e, mais especificamente, à análise e<br />

mo<strong>de</strong>lagem <strong>de</strong> sistemas. Estes princípios compreen<strong>de</strong>m:<br />

• Abstração<br />

• Modularida<strong>de</strong><br />

• Generalização<br />

• Extensibilida<strong>de</strong><br />

• Separação <strong>de</strong> interesses<br />

• Antecipação <strong>de</strong> mudanças<br />

• Mo<strong>de</strong>lagem (como base ao projeto)<br />

Observe que no momento em que você precisa criar um mo<strong>de</strong>lo,<br />

o que prece<strong>de</strong> a essa ativida<strong>de</strong> é enten<strong>de</strong>r o problema.<br />

Nesse sentido, você <strong>de</strong>ve enten<strong>de</strong>r que uma das principais<br />

características do ser humano, quando <strong>de</strong>parado com um<br />

problema, é buscar uma solução baseada em alguma solução<br />

existente <strong>de</strong> problemas similares. Todavia, se nessa busca você<br />

<strong>de</strong>scobre que as soluções existentes não são suficientes para<br />

o problema em mãos, então você procura esten<strong>de</strong>r algumas<br />

<strong>de</strong>ssas soluções a fim <strong>de</strong> solucionar um novo problema.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 9


Adicionalmente, você (engenheiro), e também ser humano,<br />

tem feito uso da abstração como forma <strong>de</strong> lidar com situações<br />

<strong>de</strong> complexida<strong>de</strong>. Ao explorar a abstração, você i<strong>de</strong>ntifica<br />

aspectos importantes do problema (ou fenômeno que está<br />

sendo investigado) e ignora os <strong>de</strong>talhes (na etapa inicial <strong>de</strong><br />

levantamento e análise <strong>de</strong> requisitos). Por exemplo, equações<br />

<strong>de</strong> circuitos em mo<strong>de</strong>los <strong>de</strong> engenharia e plantas baixas em<br />

projetos <strong>de</strong> casas oferecem a você (projetista) mo<strong>de</strong>los (semi-)<br />

formais que lhe permite raciocinar sobre o problema em mãos.<br />

Uma planta baixa <strong>de</strong> uma casa lhe fornece a disposição dos<br />

cômodos da casa como: quartos, sala <strong>de</strong> estar, sala <strong>de</strong> jantar,<br />

cozinha, etc.<br />

Outro princípio essencial e <strong>de</strong>terminante no processo <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> software é a modularida<strong>de</strong>. Você, projetista,<br />

precisa fazer uso da modularida<strong>de</strong> quando lidando com um<br />

problema (ou sistema) gran<strong>de</strong>, o qual precisa ser dividido em<br />

partes menores <strong>de</strong> modo que permita você resolver as partes<br />

e <strong>de</strong>pois o todo.<br />

Dentro <strong>de</strong>ste contexto, note que à medida que sistemas crescem,<br />

também cresce sua complexida<strong>de</strong> e torna-se mais difícil<br />

satisfazer a um número cada vez maior <strong>de</strong> requisitos, muitas<br />

vezes conflitantes. Atualmente, o paradigma <strong>de</strong> orientação a<br />

objetos tem se mostrado como o mais a<strong>de</strong>quado, comparativamente<br />

aos <strong>de</strong>mais, para ser empregado no <strong>de</strong>senvolvimento <strong>de</strong><br />

sistemas <strong>de</strong> software complexos e <strong>de</strong> gran<strong>de</strong> porte.<br />

É importante observar que para resolver problemas ou<br />

implementar sistemas pequenos, nenhum princípio organizacional<br />

(ou paradigma) é necessário. Entretanto, à medida<br />

que os sistemas se tornam maiores e com gran<strong>de</strong> número <strong>de</strong><br />

funcionalida<strong>de</strong>s, fica muito mais difícil tratar isso numa única<br />

lista <strong>de</strong> instruções. Daí, a necessida<strong>de</strong> <strong>de</strong> prover suporte à<br />

modularida<strong>de</strong>. Um sistema que é composto <strong>de</strong> módulos (ou<br />

componentes) é <strong>de</strong>nominado <strong>de</strong> modular.<br />

A modularida<strong>de</strong> também oferece suporte à separação <strong>de</strong><br />

interesses, ou seja, quando você (projetista) está lidando com<br />

um componente específico, então você ignora <strong>de</strong>talhes <strong>de</strong><br />

outros componentes. De um modo geral, recomenda-se que os<br />

componentes do sistema possuam baixo nível <strong>de</strong> acoplamento,<br />

como ilustrado na Figura 7.<br />

Figura 7. Acoplamento entre componentes<br />

Aqui, acoplamento <strong>de</strong>ve ser entendido <strong>de</strong> duas formas: primeiro<br />

cada componente (isoladamente) <strong>de</strong>ve possuir elevado<br />

grau <strong>de</strong> acoplamento <strong>de</strong> modo a ser tratado como uma ‘unida<strong>de</strong>’.<br />

Por outro lado, cada componente <strong>de</strong>ve ter um menor grau<br />

10 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Natureza do <strong>Softwa</strong>re e a Necessida<strong>de</strong> <strong>de</strong> Princípios e Processo<br />

<strong>de</strong> acoplamento (ou interação) com os outros componentes,<br />

permitindo serem manipulados ‘quase’ separadamente.<br />

Esses princípios discutidos acima servem para guiar você<br />

durante o processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> um sistema. Perceba<br />

que seu papel como engenheiro engloba compreen<strong>de</strong>r o problema<br />

que você tem em mãos, analisá-lo e fazer a mo<strong>de</strong>lagem,<br />

projeto, implementação e testes. Para tanto, você precisa <strong>de</strong> um<br />

processo para guiar o <strong>de</strong>senvolvimento.<br />

Processo <strong>de</strong> Desenvolvimento<br />

Um aspecto importante no <strong>de</strong>senvolvimento <strong>de</strong> um sistema<br />

<strong>de</strong> software é o contínuo feedback durante o processo. A<br />

importância <strong>de</strong> ter um feedback (resposta e comentários) do<br />

cliente mais cedo no <strong>de</strong>senvolvimento implica na necessida<strong>de</strong><br />

<strong>de</strong> fazer um protótipo. Além disso, a necessida<strong>de</strong> <strong>de</strong> melhor<br />

planejar o <strong>de</strong>senvolvimento, fazendo um balanceamento entre<br />

custos e benefícios. Isto requer uma avaliação preliminar se<br />

é viável ou não <strong>de</strong>senvolver o software <strong>de</strong>sejado pelo cliente.<br />

Como consequência, você po<strong>de</strong> perceber que duas ativida<strong>de</strong>s<br />

importantes são planejamento e análise <strong>de</strong> riscos, que procuram<br />

exatamente respon<strong>de</strong>r a questão: é viável <strong>de</strong>senvolver<br />

esse software?<br />

Tudo isso visa minimizar custos e assegurar que o <strong>de</strong>senvolvimento<br />

irá ocorrer da forma como planejada e <strong>de</strong>ntro dos<br />

prazos propostos. Agora, você po<strong>de</strong>ria ainda questionar: Por<br />

que tudo isso?<br />

Se você for analisar cuidadosamente, você perceberá que um<br />

processo requer feedback do cliente, pois isto reduz as chances<br />

<strong>de</strong> problemas como, por exemplo, do projeto precisar <strong>de</strong> alterações<br />

à medida que ele avança, além <strong>de</strong> dar maior visibilida<strong>de</strong><br />

do sistema. Portanto, um processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong><br />

software é necessário, porque ele:<br />

• Serve <strong>de</strong> guia para controlar as ativida<strong>de</strong>s <strong>de</strong> <strong>de</strong>senvolvimento<br />

do sistema;<br />

• Aloca tarefas para <strong>de</strong>senvolvedores específicos;<br />

• Especifica quais artefatos precisam ser <strong>de</strong>senvolvidos em<br />

cada uma das etapas <strong>de</strong> <strong>de</strong>senvolvimento;<br />

• Oferece critérios para monitorar as ativida<strong>de</strong>s <strong>de</strong> um<br />

projeto.<br />

Para aten<strong>de</strong>r essas necessida<strong>de</strong>s <strong>de</strong> modo mais a<strong>de</strong>quado, um<br />

processo como o RUP (Rational Unified Process), e customizações<br />

<strong>de</strong>le, tem sido empregado em projetos <strong>de</strong> software. O RUP é<br />

consi<strong>de</strong>rado como um framework ou arcabouço que serve para<br />

gerar processos.<br />

O RUP é um framework porque ele é configurável, ou seja,<br />

você po<strong>de</strong> customizar ou especializar o processo para diversos<br />

tipos <strong>de</strong> sistemas. Além disso, o RUP, como processo, agrega os<br />

métodos empregados no <strong>de</strong>senvolvimento e também faz uso da<br />

linguagem UML (Unified Mo<strong>de</strong>ling Language) para mo<strong>de</strong>lagem<br />

do sistema a ser <strong>de</strong>senvolvido.<br />

O RUP é um processo que <strong>de</strong>fine bem o conjunto <strong>de</strong> ativida<strong>de</strong>s<br />

a serem executadas, além <strong>de</strong> informar os responsáveis<br />

pela execução <strong>de</strong>las. Adicionalmente, o processo explicita a<br />

or<strong>de</strong>m <strong>de</strong> execução das tarefas e se existe <strong>de</strong>pendências entre


elas, informando quais os artefatos <strong>de</strong> entrada e<br />

saída <strong>de</strong> cada tarefa. A Figura 8 mostra uma visão<br />

geral do RUP.<br />

Figura 8. Visão geral do RUP. (Disponível no site http://<br />

www.wthreex.com/rup/portugues/in<strong>de</strong>x.htm, acessado em<br />

abril <strong>de</strong> 2010)<br />

Observe a parte inferior da figura. Ela informa<br />

que o RUP é composto <strong>de</strong> quatro fases: concepção,<br />

elaboração, construção e transição. No lado esquerdo<br />

da figura, olhando verticalmente <strong>de</strong> cima para<br />

baixo, há um conjunto <strong>de</strong> disciplinas, como requisitos<br />

e implementação, que engloba ativida<strong>de</strong>s relacionadas.<br />

É importante <strong>de</strong>stacar que essas disciplinas<br />

compreen<strong>de</strong>m as ativida<strong>de</strong>s do ciclo <strong>de</strong> software,<br />

pois elas são necessárias ao <strong>de</strong>senvolvimento <strong>de</strong><br />

um software. Outras disciplinas foram adicionadas,<br />

como gerenciamento <strong>de</strong> mudanças e gerenciamento <strong>de</strong><br />

projeto, as quais são essenciais no <strong>de</strong>senvolvimento<br />

<strong>de</strong> um sistema <strong>de</strong> software.<br />

Como ressaltado acima, cada uma das disciplinas<br />

envolve várias ativida<strong>de</strong>s. Por exemplo, se<br />

consi<strong>de</strong>rarmos a disciplina requisitos, então nela o<br />

<strong>de</strong>senvolvedor <strong>de</strong>ve analisar o problema <strong>de</strong> um<br />

cliente (ou seja, enten<strong>de</strong>r as funcionalida<strong>de</strong>s que<br />

o cliente <strong>de</strong>seja para o sistema e quais as pessoas<br />

envolvidas) a fim <strong>de</strong> <strong>de</strong>finir o escopo do sistema que<br />

consiste <strong>de</strong>finir qual o conjunto <strong>de</strong> funcionalida<strong>de</strong>s<br />

irá fazer parte do sistema. Observe que saber isso é<br />

muito importante, pois permitirá você trabalhar e<br />

gerenciar o escopo do sistema.<br />

O RUP <strong>de</strong>termina como o sistema <strong>de</strong>ve ser <strong>de</strong>senvolvido<br />

e, portanto, o <strong>de</strong>senvolvimento <strong>de</strong> sistema<br />

<strong>de</strong> software seguindo o processo RUP é:<br />

• Interativo e incremental;<br />

• Guiado por casos <strong>de</strong> uso (ou use cases);<br />

• Centrado na arquitetura <strong>de</strong> software.<br />

Se você olhar na parte superior da Figura 8, então<br />

po<strong>de</strong> observar que o RUP é composto <strong>de</strong> iterações.<br />

Isto significa que todas as funcionalida<strong>de</strong>s do sistema<br />

não precisam ser i<strong>de</strong>ntificadas, especificadas,<br />

implementadas e testadas <strong>de</strong> uma única vez. O<br />

<strong>de</strong>senvolvimento se dá <strong>de</strong> modo incremental, ou<br />

ENGENhARIA DE SoFtWARE<br />

seja, inicialmente, apenas as funcionalida<strong>de</strong>s mais importantes são <strong>de</strong>senvolvidas<br />

e as <strong>de</strong>mais são <strong>de</strong>senvolvidas em outras iterações, incrementando<br />

novas funcionalida<strong>de</strong>s ao sistema. É como se cada iteração fosse um miniprojeto<br />

no qual você teria <strong>de</strong> levantar e analisar requisitos, fazer o projeto,<br />

codificar e testar. Concluída parte do sistema, uma nova iteração (ou miniprojeto)<br />

seria feita até que todas as funcionalida<strong>de</strong>s fossem implementadas.<br />

Note também que o RUP é guiado por casos <strong>de</strong> uso (ou use case).<br />

Um caso <strong>de</strong> uso é um mo<strong>de</strong>lo que <strong>de</strong>fine uma funcionalida<strong>de</strong> do sistema<br />

sob a ótica <strong>de</strong> um ator, que po<strong>de</strong> ser um usuário, subsistema <strong>de</strong> software<br />

ou algum dispositivo <strong>de</strong> hardware (ou equipamento). Um ator, na gran<strong>de</strong><br />

maioria dos casos, será um usuário (humano) que interage com uma<br />

funcionalida<strong>de</strong> do sistema, <strong>de</strong>scrita por um caso <strong>de</strong> uso.<br />

Um caso <strong>de</strong> uso <strong>de</strong>screve o que um usuário <strong>de</strong>ve fazer para utilizar uma<br />

funcionalida<strong>de</strong>, e como o sistema respon<strong>de</strong>. Um exemplo <strong>de</strong> caso <strong>de</strong> uso é<br />

sacar num sistema <strong>de</strong> caixa eletrônico <strong>de</strong> um banco. Para sacar, o usuário<br />

precisa antes ter tido seu cartão do banco autenticado e, no momento<br />

que o sistema (caixa eletrônico) solicita que o usuário informe a quantia<br />

que ele <strong>de</strong>seja sacar, o usuário então digita o valor <strong>de</strong> saque e aguarda a<br />

realização da operação com sucesso (caso o usuário tem saldo suficiente)<br />

ou não (se ele não possuir saldo).<br />

Um conjunto <strong>de</strong> casos <strong>de</strong> uso faz parte da especificação <strong>de</strong> um sistema<br />

<strong>de</strong> software e, para tanto, você <strong>de</strong>ve fazer uso <strong>de</strong> um diagrama <strong>de</strong> casos<br />

<strong>de</strong> uso. Entretanto, a apresentação <strong>de</strong>sse assunto está fora do escopo<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 11


<strong>de</strong>ste artigo. Leitores interessados po<strong>de</strong>rão encontrar material<br />

complementar sobre documento <strong>de</strong> requisitos na edição 10 e<br />

sobre especificação <strong>de</strong> caso <strong>de</strong> uso nas edições 11 e 23. Outras<br />

ativida<strong>de</strong>s <strong>de</strong> <strong>de</strong>senvolvimento como planejamento, análise,<br />

codificação e testes são baseadas e validadas com o mo<strong>de</strong>lo <strong>de</strong><br />

caso <strong>de</strong> uso do sistema.<br />

Além disso, o RUP é centrado na arquitetura, o que significa<br />

dizer que o conjunto <strong>de</strong> funcionalida<strong>de</strong>s vai ditar a forma na<br />

qual o sistema será <strong>de</strong>senvolvido e como po<strong>de</strong>rá ter manutenção.<br />

Para enten<strong>de</strong>r isso, vamos fazer uma analogia com a<br />

planta baixa <strong>de</strong> uma casa que nos diz como os cômodos estão<br />

distribuídos.<br />

Por exemplo, você tem sala, cozinha, banheiro e três quartos.<br />

Você, olhando uma planta baixa, po<strong>de</strong> ver como eles estão distribuídos<br />

e, na hora <strong>de</strong> construir, você po<strong>de</strong> priorizar por construir<br />

a cozinha, banheiro e um quarto e, só <strong>de</strong>pois, construir os outros<br />

2 quartos. Em outras palavras, a planta baixa orienta o que tem<br />

<strong>de</strong> ser feito em termos <strong>de</strong> construção <strong>de</strong> uma casa, e a arquitetura<br />

(<strong>de</strong> software) informa como ele <strong>de</strong>veria ser estruturado (ou organizado)<br />

e orienta como ele <strong>de</strong>veria ser <strong>de</strong>senvolvido.<br />

Agora, como você viu na Figura 8, o processo RUP é composto<br />

<strong>de</strong> quatro fases: concepção, elaboração, construção e transição.<br />

Essas fases acomodam o conjunto <strong>de</strong> disciplinas discutidas<br />

acima. Mas, qual o objetivo <strong>de</strong> cada uma <strong>de</strong>ssas fases? Para<br />

respon<strong>de</strong>r a essa questão, é apresentada uma lista daquilo que<br />

compreen<strong>de</strong> cada uma <strong>de</strong>las.<br />

Concepção<br />

• Você estará enten<strong>de</strong>ndo e especificando as principais funcionalida<strong>de</strong>s<br />

do software a ser <strong>de</strong>senvolvido;<br />

• Também, nessa fase, você <strong>de</strong>verá <strong>de</strong>finir como o software <strong>de</strong>ve<br />

ser organizado (isto é, como o código <strong>de</strong>ve ser estruturado);<br />

• Você <strong>de</strong>ve ainda fazer uma avaliação inicial dos riscos;<br />

• Outra preocupação sua (supondo você como <strong>de</strong>senvolvedor)<br />

é planejar ativida<strong>de</strong>s (a serem realizadas) e estimar custo <strong>de</strong><br />

<strong>de</strong>senvolvimento.<br />

Elaboração<br />

• Você <strong>de</strong>ve levantar, <strong>de</strong>talhar e especificar a maioria dos<br />

casos <strong>de</strong> uso;<br />

• Também espera-se que você possa implementar os casos <strong>de</strong><br />

uso mais essenciais;<br />

• Projetar a forma na qual o software será estruturado (isto é,<br />

a arquitetura do sistema), buscando validá-la;<br />

• Revisar o planejamento <strong>de</strong> ativida<strong>de</strong>s e estimativa dos recursos<br />

necessários para completar o projeto.<br />

Construção<br />

• Esta é a fase na qual o <strong>de</strong>senvolvimento (principalmente, a<br />

implementação) do software é feita.<br />

• Refinar o projeto da arquitetura, adicionando <strong>de</strong>talhes e<br />

fazendo correções.<br />

• Nesta fase, você <strong>de</strong>ve também realizar testes <strong>de</strong> software,<br />

verificando se ele funciona da forma como foi especificado e,<br />

então, a primeira versão (chamada <strong>de</strong> versão beta) é gerada.<br />

12 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Natureza do <strong>Softwa</strong>re e a Necessida<strong>de</strong> <strong>de</strong> Princípios e Processo<br />

• Outra ativida<strong>de</strong> nesta fase que você <strong>de</strong>ve fazer é planejar a<br />

implantação do sistema no ambiente do cliente (realizada na<br />

fase <strong>de</strong> Transição).<br />

Transição<br />

• Nesta fase, você <strong>de</strong>ve implantar o sistema no ambiente do<br />

cliente (ou seja, o software sai do ambiente <strong>de</strong> laboratório,<br />

on<strong>de</strong> foi <strong>de</strong>senvolvido, e é instalado no ambiente do cliente).<br />

Isto também é <strong>de</strong>nominado <strong>de</strong> evolução do produto da versão<br />

beta para a versão final.<br />

• É natural que possa haver alguns <strong>de</strong>feitos após a entrega<br />

do software, e quando os usuários relatam a ocorrência <strong>de</strong><br />

<strong>de</strong>feitos, então essas reclamações <strong>de</strong> problemas e sugestões <strong>de</strong><br />

melhorias são classificadas para que <strong>de</strong>feitos sejam corrigidos<br />

e melhorias possam ser implementadas.<br />

• Em alguns sistemas <strong>de</strong> software, é nesta fase on<strong>de</strong> são realizados<br />

treinamentos e assistência aos usuários.<br />

É importante observar que o RUP é uma evolução <strong>de</strong> propostas<br />

<strong>de</strong> mo<strong>de</strong>los <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software. Cabe também<br />

<strong>de</strong>stacar que, ao mesmo tempo em que o RUP procura tratar<br />

questões pertinentes do <strong>de</strong>senvolvimento <strong>de</strong> software, ele po<strong>de</strong><br />

ser customizado ou configurado para aten<strong>de</strong>r a necessida<strong>de</strong>s<br />

específicas <strong>de</strong> um sistema <strong>de</strong> software.<br />

Conclusão<br />

Este artigo trata <strong>de</strong> uma visão geral da engenharia <strong>de</strong> software,<br />

analisando a natureza do software e levantando a<br />

necessida<strong>de</strong> <strong>de</strong> consi<strong>de</strong>rar princípios <strong>de</strong> engenharia e utilizar<br />

um processo no <strong>de</strong>senvolvimento <strong>de</strong> software. O foco do artigo<br />

recai em enten<strong>de</strong>r e explorar atributos essenciais da qualida<strong>de</strong><br />

como corretu<strong>de</strong> e confiabilida<strong>de</strong>, em conjunto com os princípios<br />

<strong>de</strong> engenharia <strong>de</strong> software. Além disso, verificou-se a<br />

importância do processo <strong>de</strong> <strong>de</strong>senvolvimento.<br />

Links<br />

Processo RUP<br />

http://www.wthreex.com/rup/portugues/in<strong>de</strong>x.htm<br />

História da Indústria <strong>de</strong> <strong>Softwa</strong>re<br />

www.softwarehistory.org<br />

<strong>Softwa</strong>re Engineering Body of Knowledge<br />

http://www.computer.org/portal/web/swebok<br />

Creating a <strong>Softwa</strong>re Engineering Culture<br />

http://www.processimpact.com/articles/culture.pdf<br />

Processo <strong>de</strong> Desenvolvimento <strong>de</strong> <strong>Softwa</strong>re<br />

http://pt.wikipedia.org/wiki/Processo_<strong>de</strong>_<strong>de</strong>senvolvimento_<strong>de</strong>_software<br />

The Nature of <strong>Softwa</strong>re: What’s So Special About <strong>Softwa</strong>re Engineering?<br />

http://www.ibm.com/<strong>de</strong>veloperworks/rational/library/4700.html<br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

Dê seu Feedback<br />

sobre esta edição


www.infnet.edu.br - cursos@infnet.edu.br - Central <strong>de</strong> Atendimento: (21) 2122-8800<br />

EDUCAÇÃO SUPERIOR ORIENTADA AO MERCADO<br />

ENGENhARIA DE SoFtWARE<br />

Modéstia à parte, sua<br />

melhor opção para<br />

se <strong>de</strong>stacar no mercado!<br />

A Escola Superior da Tecnologia da<br />

Informação oferece as melhores<br />

opções em cursos, formações,<br />

graduações e pós-graduações para<br />

profissionais <strong>de</strong> <strong>de</strong>senvolvimento<br />

e programação.<br />

São programas voltados para a<br />

formação <strong>de</strong> profissionais <strong>de</strong> elite,<br />

com aulas 100% práticas, corpo<br />

docente atuante no mercado,<br />

acesso à mais atualizada biblioteca<br />

<strong>de</strong> TI do Rio, laboratórios equipados<br />

com tecnologia <strong>de</strong> ponta, salas <strong>de</strong><br />

estudo e exames.<br />

PÓS-GRADUAÇÃO<br />

<strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re:<br />

Desenvolvimento Java<br />

<strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re:<br />

Desenvolvimento .NET<br />

GRADUAÇÃO<br />

<strong>Engenharia</strong> <strong>de</strong> Computação<br />

Análise e Desenv. <strong>de</strong> Sistemas<br />

FORMAÇÕES<br />

Desenvolvedor Java<br />

Desenv. Java: Sist. Distribuídos<br />

Gestor <strong>de</strong> TI<br />

Desenvolvedor Web .NET 2008<br />

MCITP Server Administrator<br />

SQL Server 2008<br />

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

TURMAS<br />

NO RIO DE<br />

JANEIRO<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 13


<strong>Engenharia</strong><br />

Nesta seção você encontra artigos voltados para testes, processo,<br />

mo<strong>de</strong>los, documentação, entre outros<br />

<strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao<br />

conhecimento<br />

Sistemas <strong>de</strong> Gestão <strong>de</strong> Conteúdo Organizacional - Enterprise Content<br />

Manangement (ECM)<br />

Viviane Schnei<strong>de</strong>r<br />

viviane.sch@gmail.com<br />

Atua no ramo <strong>de</strong> gerência <strong>de</strong> informações <strong>de</strong><br />

projetos. Bacharel em Sistemas <strong>de</strong> Informação.<br />

Gestora <strong>de</strong> informações <strong>de</strong> projetos.<br />

Ivan Correia Filagrana<br />

gc@ivanfilagrana.com.br<br />

Atua há 17 anos com <strong>de</strong>senvolvimento <strong>de</strong><br />

<strong>Softwa</strong>re, é bacharel em Ciência da Computação,<br />

Especialista em Gerência <strong>de</strong> Projetos,<br />

Mestrando em <strong>Engenharia</strong> <strong>de</strong> Produção, Palestrante,<br />

Consultor, Gerente <strong>de</strong> TI.<br />

Enterprise Content Management<br />

(ECM), em português, Gerenciador<br />

<strong>de</strong> Conteúdo Organizacional,<br />

é um novo conceito <strong>de</strong> tecnologia da<br />

informação que surge com a promessa<br />

<strong>de</strong> suprir algumas necessida<strong>de</strong>s<br />

organizacionais que os sistemas <strong>de</strong><br />

gestão empresarial (Enterprise Resource<br />

Planning – ERP), sistemas <strong>de</strong> gestão <strong>de</strong><br />

relacionamento com o cliente (Constumer<br />

Relationship Manangement – CRM), sistemas<br />

<strong>de</strong> inteligência <strong>de</strong> negócios (Business<br />

Intelligence – BI), entre outras soluções <strong>de</strong><br />

software, não suprem.<br />

Conforme Santos (2007), Enterprise<br />

Content Management (ECM) é uma tecnologia<br />

usada para capturar, gerenciar,<br />

armazenar e disponibilizar conteúdo e<br />

documentos relacionados com o processo<br />

organizacional. Um sistema ECM<br />

integra o gerenciamento da informação<br />

14 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - <strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao conhecimento<br />

De que se trata o artigo?<br />

Este artigo aborda uma nova visão <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> software que consi<strong>de</strong>ra o fator humano, seus<br />

mecanismos <strong>de</strong> processamento e armazenamento <strong>de</strong><br />

informações como ponto <strong>de</strong> partida para a construção<br />

<strong>de</strong> um sistema <strong>de</strong> informação ECM. Através dos<br />

preceitos da gestão do conhecimento, sistemas sob o<br />

conceito ECM realizam o gerenciamento <strong>de</strong> conteúdos<br />

estruturados (documentos digitais), semiestruturados<br />

(URL, processos) e não estruturados (conhecimento<br />

humano) em uma organização.<br />

Para que serve?<br />

Ferramentas <strong>de</strong> software sob o conceito ECM servem<br />

para criar valor a uma organização a partir <strong>de</strong> seus<br />

conteúdos corporativos. Entretanto, para que a ferramenta<br />

obtenha sucesso, seu <strong>de</strong>senvolvimento <strong>de</strong>ve ser<br />

realizado concomitantemente com uma mudança <strong>de</strong><br />

paradigma administrativo que requer da organização<br />

a adoção <strong>de</strong> uma cultura <strong>de</strong> gestão do conhecimento.<br />

Em que situação o tema é útil?<br />

Um sistema ECM é útil nas corporações que necessitam<br />

gerenciar seu conteúdo organizacional<br />

(documentos eletrônicos, processos e capital intelectual)<br />

visando à tomada <strong>de</strong> <strong>de</strong>cisões estratégicas<br />

e operacionais comprovadamente bem sucedidas<br />

em transações anteriores.


estruturada, semiestruturada e não estruturada, como documentos,<br />

informações em qualquer formato <strong>de</strong> sistemas legados,<br />

textos, páginas WEB, digitalizados, PDF, gráficos, ví<strong>de</strong>os,<br />

áudio, XML, aplicações WAP, etc.<br />

Neste contexto, ECM é um nome genérico ou o conceito <strong>de</strong><br />

um grupo <strong>de</strong> ferramentas <strong>de</strong>senvolvidas para possibilitar o<br />

acesso a múltiplos tipos <strong>de</strong> repositórios <strong>de</strong> conteúdo com a<br />

finalida<strong>de</strong> <strong>de</strong> compartilhar conhecimento in<strong>de</strong>pen<strong>de</strong>nte do<br />

tempo e espaço. A sua principal meta é promover uma organização<br />

lógica em tempo e sequência dos processos operacionais<br />

e estratégicos, bem como <strong>de</strong> todo o conteúdo oriundo <strong>de</strong>stes,<br />

que estão contidos em arquivos, planilhas, mídias, sites web,<br />

sistemas, entre outros. O conceito <strong>de</strong> soluções ECM proporciona<br />

uma nova visão na construção <strong>de</strong> sistemas <strong>de</strong> informação,<br />

pois visa a árdua tarefa <strong>de</strong> gerenciar o conhecimento humano,<br />

proveniente <strong>de</strong> processos <strong>de</strong> negócio e artefatos oriundos<br />

<strong>de</strong>stes processos, em uma entida<strong>de</strong> organizacional. Sob este<br />

ponto <strong>de</strong> vista, os sistemas ECM vão ao encontro <strong>de</strong> uma nova<br />

abordagem administrativa, que preza a inter-relação do indivíduo<br />

com a organização para gerar valor à mesma.<br />

Dados, Informação e Conhecimento<br />

Dados, informação e conhecimento são elementos base que<br />

formam a comunicação humana. Dados são fragmentos <strong>de</strong><br />

informação, Informação é um conjunto <strong>de</strong> dados que possuem<br />

um significado <strong>de</strong>ntro <strong>de</strong> um <strong>de</strong>terminado contexto, e conhecimento,<br />

por sua vez, é a compreensão da melhor forma <strong>de</strong><br />

uso dos dados e informações. Para que esses três componentes<br />

sejam utilizados <strong>de</strong> forma otimizada, <strong>de</strong>ntro <strong>de</strong> um sistema<br />

ECM, algumas consi<strong>de</strong>rações são necessárias.<br />

Em uma organização, os dados são consi<strong>de</strong>rados registros<br />

estruturados <strong>de</strong> transações (Davenport, 1998). Dessa forma,<br />

há uma necessida<strong>de</strong> <strong>de</strong> tratamento e validação dos mesmos,<br />

tendo em vista que os dados <strong>de</strong>vem ser organizados por meios<br />

confiáveis, além <strong>de</strong> ter sua origem em fontes seguras, para que<br />

a informação criada pelo seu agrupamento seja válida.<br />

A importância dos dados muitas vezes supera a informação,<br />

quando esta é inconsistente. No gerenciamento do conhecimento<br />

o dado é fundamental para que se possa gerar mais conhecimento<br />

(Cruz, 2007). Os dados formam a base do conhecimento,<br />

e por este motivo <strong>de</strong>vem ter uma estrutura sólida, que sustente<br />

o mesmo. Quanto à informação, para que a mesma forneça relevante<br />

otimização dos processos gerenciais, <strong>de</strong>ve-se ter como<br />

priorida<strong>de</strong> sua coerência, consolidação e distribuição, além <strong>de</strong><br />

continuamente primar pela confiabilida<strong>de</strong> <strong>de</strong> sua formação.<br />

Utilizar os dados e informações requer conhecimento que<br />

provém do uso inteligente dos processos organizacionais para<br />

obter o resultado almejado. Uma informação não necessariamente<br />

produz valor para uma organização, pois é encontrada<br />

em praticamente toda corporação sem que produza efeitos<br />

positivos ao setor <strong>de</strong> origem. A otimização <strong>de</strong> seu processamento<br />

e forma <strong>de</strong> armazenamento é o que po<strong>de</strong> produzir<br />

resultados positivos para uma organização. Portanto, a atenção<br />

no método que processa as informações é o que produz os<br />

melhores ganhos.<br />

GEStão DE CoNhECIMENto<br />

A distinção <strong>de</strong> informação e dados é sutil, pois um dado po<strong>de</strong><br />

ser uma informação quando possui um significado. Partindo<br />

<strong>de</strong>sta visão, qualquer dado po<strong>de</strong> se tornar uma informação,<br />

<strong>de</strong>s<strong>de</strong> que acrescente relevância <strong>de</strong>ntro <strong>de</strong> uma <strong>de</strong>terminada<br />

conjuntura e possa contribuir para a criação <strong>de</strong> um novo<br />

conhecimento. Dentro <strong>de</strong> um sistema ECM a informação possui<br />

um ciclo <strong>de</strong> vida que parte da sua criação, passa por sua<br />

organização, armazenamento, distribuição e utilização, até o<br />

momento que ela per<strong>de</strong> seu valor, quando então é <strong>de</strong>scartada,<br />

finalizando <strong>de</strong>sta forma o ciclo. O gran<strong>de</strong> <strong>de</strong>safio das organizações<br />

é a elaboração <strong>de</strong> métodos que retirem o máximo <strong>de</strong><br />

conhecimento que a informação possa oferecer.<br />

No que se refere a este item, o conhecimento, há alguns<br />

aspectos que <strong>de</strong>vem ser analisados para <strong>de</strong>senvolver um<br />

sistema ECM. No aspecto organizacional, a criação do conhecimento<br />

é um processo complexo, que envolve um conjunto<br />

<strong>de</strong> variáveis tecnológicas, estruturais e principalmente <strong>de</strong><br />

or<strong>de</strong>m sócio-comportamental, com implicações múltiplas<br />

nas formas <strong>de</strong> funcionamento da corporação e nas posturas e<br />

ações das pessoas (Holanda, 2009). Para se obter o melhor uso<br />

do conhecimento <strong>de</strong>ntro <strong>de</strong> um sistema ECM, é necessário<br />

observar que o mesmo está intrinsecamente conectado ao<br />

caráter humano, sendo <strong>de</strong>sta forma útil a consi<strong>de</strong>ração dos<br />

complexos mecanismos <strong>de</strong> construção que o formam, <strong>de</strong>ntro<br />

da mente humana, além dos aspectos inerentes à gestão do<br />

conhecimento corporativo.<br />

Gestão do Conhecimento<br />

A gestão do conhecimento surge com o intuito <strong>de</strong> apresentar<br />

uma solução <strong>de</strong> gestão mais abrangente, que consi<strong>de</strong>ra além<br />

<strong>de</strong> dados e informações, os mecanismos humanos <strong>de</strong> compreensão<br />

<strong>de</strong>stes elementos. Esta gestão po<strong>de</strong> possuir três pilares,<br />

<strong>de</strong>nominados os três “C’s” e que compreen<strong>de</strong>m consultar,<br />

compartilhar e colaborar. Os três pilares atuam <strong>de</strong> forma transversal,<br />

exigindo a atuação em três dimensões: ferramentas ou<br />

mecanismos, cultura e capital humano (Filho, 2006). Esta visão<br />

da gestão do conhecimento surge para suprir a necessida<strong>de</strong> <strong>de</strong><br />

transformação <strong>de</strong> dados e informação em conhecimento relevante<br />

para <strong>de</strong>cisões estratégicas na otimização dos processos<br />

organizacionais, sendo <strong>de</strong>sta forma um estágio acima da gestão<br />

da informação, esta que somente prevê o gerenciamento <strong>de</strong> dados<br />

operacionais que ainda não agregam valor a <strong>de</strong>terminada<br />

situação ou à organização como um todo.<br />

Para Takeuchi e Nonaka (2008), a gestão do conhecimento torna<br />

possível que o conhecimento pessoal <strong>de</strong> um indivíduo possa<br />

ser convertido em conhecimento organizacional, que permanecerá<br />

agindo <strong>de</strong> forma produtiva na empresa, in<strong>de</strong>pen<strong>de</strong>nte<br />

da presença do indivíduo. A vivência dos colaboradores com<br />

os processos operacionais, legais e estratégicos diários, juntamente<br />

com as informações oriundas dos ambientes externos,<br />

formam o conhecimento corporativo. Neste ponto a gestão do<br />

conhecimento e seu alinhamento com a tecnologia <strong>de</strong> informação<br />

po<strong>de</strong> promover vantagem competitiva, mesmo através das<br />

crescentes contradições, dilemas, inconsistências e polarida<strong>de</strong>s<br />

abundantes numa organização do mundo mo<strong>de</strong>rno.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 15


A organização <strong>de</strong>ve manter, segundo os preceitos da gestão<br />

do conhecimento, duas visões opostas e ao mesmo tempo usálas<br />

para encontrar o melhor caminho. Neste sentido a gestão<br />

do conhecimento ocorre através do conflito, com o chamado<br />

raciocínio dialético. O ponto inicial <strong>de</strong>ste raciocínio é a tese <strong>de</strong><br />

um processo organizacional. Esta tese, que po<strong>de</strong> ser formulada<br />

por um ou mais indivíduos, é negada com a apresentação <strong>de</strong><br />

uma antítese. Desta dialética ocorre uma síntese, formulada<br />

com base nos preceitos da tese e antítese. O resultado <strong>de</strong>sta<br />

síntese é uma nova tese <strong>de</strong> um processo. Com o tempo po<strong>de</strong>rá<br />

haver a necessida<strong>de</strong> <strong>de</strong> aperfeiçoamento do processo (surgido<br />

da síntese), <strong>de</strong>vido às pressões internas e externas sofridas<br />

pela organização. Esta tese <strong>de</strong> processo po<strong>de</strong> então se tornar<br />

a antítese <strong>de</strong> um processo atualizado, o que promoverá um<br />

novo movimento dialético <strong>de</strong> modo espiralado, conforme<br />

<strong>de</strong>monstrado na Figura 1.<br />

Síntese 3<br />

Antítese<br />

5<br />

Tese 7<br />

Tese 1 Antítese 2<br />

Síntese 6<br />

Tese 4<br />

Figura 1. Espiral Tese – Antítese – Síntese (Fonte: Adaptado <strong>de</strong> Takeuchi e<br />

Nonaka, 2008)<br />

Com isso se conclui que o conhecimento organizacional<br />

po<strong>de</strong> ter sua origem nos indivíduos que se contradizem, criam<br />

dilemas, promovem inconsistências e polarida<strong>de</strong>s. Na gestão<br />

do conhecimento a utilização do espiral tese-antítese-síntese<br />

busca converter o conhecimento subjetivo em um conhecimento<br />

consistente e coerente com as várias perspectivas dos<br />

indivíduos referente a um processo, sempre com o intuito <strong>de</strong><br />

enriquecer seu mecanismo. Esta transformação do conhecimento<br />

tácito (conhecimento subjetivo) em conhecimento<br />

explícito (conhecimento registrado formalmente) é um dos<br />

alicerces da gestão do conhecimento e uma das técnicas <strong>de</strong><br />

criação do conhecimento corporativo.<br />

O método <strong>de</strong> aperfeiçoamento do conhecimento humano que<br />

possui o intuito <strong>de</strong> otimizar a gestão organizacional po<strong>de</strong> ser<br />

automatizado com o uso <strong>de</strong> ferramentas <strong>de</strong> software com conceito<br />

ECM. Um sistema ECM po<strong>de</strong> armazenar, editar e difundir<br />

por toda organização este conhecimento corporativo para<br />

promover sua adaptabilida<strong>de</strong> aos novos <strong>de</strong>safios do mercado.<br />

Em um sistema ECM, estes procedimentos são obtidos através<br />

<strong>de</strong> módulos que suportam o compartilhamento <strong>de</strong> informações<br />

e permitem sua edição <strong>de</strong> forma colaborativa.<br />

O <strong>de</strong>senvolvimento <strong>de</strong> estratégias organizacionais que possibilitem<br />

a geração <strong>de</strong> conhecimento espontâneo é algo essencial<br />

na gestão do conhecimento, pois a troca <strong>de</strong> experiências po<strong>de</strong><br />

acarretar na <strong>de</strong>scoberta <strong>de</strong> caminhos que promovam soluções<br />

para os percalços que as organizações enfrentam no mundo<br />

16 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - <strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao conhecimento<br />

pós-mo<strong>de</strong>rno, sendo o papel <strong>de</strong> um sistema ECM o <strong>de</strong> tutor<br />

<strong>de</strong>ste conhecimento.<br />

O ser humano, através do acúmulo e compartilhamento <strong>de</strong><br />

conhecimento, foi e é capaz <strong>de</strong> lidar cada vez melhor com os<br />

percalços do seu meio, transformando sua própria natureza,<br />

criando novas formas <strong>de</strong> aumentar sua perspectiva <strong>de</strong> vida<br />

através das <strong>de</strong>scobertas científicas e tecnológicas. O conceito<br />

<strong>de</strong> um sistema ECM busca justamente a mesma analogia do<br />

sucesso humano, através da criação <strong>de</strong> procedimentos para<br />

armazenagem, edição e compartilhamento <strong>de</strong> conhecimentos<br />

que conduzam ao alcance dos objetivos organizacionais. A<br />

gestão do conhecimento realizada através <strong>de</strong> um sistema ECM<br />

po<strong>de</strong> colocar uma organização um passo a frente <strong>de</strong> seus concorrentes,<br />

pois torna possível o armazenamento e socialização<br />

<strong>de</strong> experiências bem sucedidas, além <strong>de</strong> seu constante aperfeiçoamento<br />

alinhado com as transformações dos tempos.<br />

Para que a gestão do conhecimento aconteça efetivamente,<br />

a troca <strong>de</strong> conhecimento <strong>de</strong>ve ser estimulada pelo lí<strong>de</strong>r da<br />

organização através da criação <strong>de</strong> ambientes virtuais (sistema<br />

ECM) e não virtuais (reuniões, ou mesmo conversas informais),<br />

criando assim um terreno fértil para germinação do conhecimento<br />

através da introdução <strong>de</strong> uma cultura <strong>de</strong> socialização<br />

<strong>de</strong> i<strong>de</strong>ias. Dessa forma, as organizações tornarão produtivos<br />

os conhecimentos e terão suporte para enfrentar o <strong>de</strong>safio <strong>de</strong><br />

criar mecanismos que permitam sua evolução.<br />

<strong>Engenharia</strong> <strong>de</strong> sistemas baseada no conhecimento<br />

Para <strong>de</strong>senvolver ferramentas computacionais tendo como<br />

base o conhecimento, novas visões e métodos <strong>de</strong> engenharia<br />

<strong>de</strong>vem ser adotados com o intuito <strong>de</strong> favorecer seu conceito<br />

<strong>de</strong> gestão do conhecimento. Para nortear o <strong>de</strong>senvolvimento<br />

<strong>de</strong>stes sistemas a mo<strong>de</strong>lagem po<strong>de</strong> partir do foco principal do<br />

negócio, tendo em vista a metodologia <strong>de</strong> organização humana<br />

dos conteúdos <strong>de</strong> conhecimento que conduzem o indivíduo ao<br />

alcance <strong>de</strong> seus objetivos. Assim, os mecanismos <strong>de</strong> organização<br />

do conhecimento inerentes aos indivíduos da corporação<br />

é o que <strong>de</strong>terminará a engenharia <strong>de</strong> produção do software.<br />

Esta abordagem coloca a relação cognitiva do indivíduo com<br />

os processos e conteúdos organizacionais como ponto principal<br />

<strong>de</strong> pesquisa dos requisitos funcionais e não funcionais do<br />

negócio, que mo<strong>de</strong>larão um sistema ECM.<br />

Neste contexto, sistemas sob o conceito ECM <strong>de</strong>vem ser<br />

consi<strong>de</strong>rados peritos no gerenciamento do conteúdo específico<br />

<strong>de</strong> um negócio. Peritos possuem mecanismos estratégicos <strong>de</strong><br />

ação muito mais eficazes que principiantes. Para Atkinson<br />

(2002), peritos e principiantes resolvem problemas <strong>de</strong> maneira<br />

qualitativamente diferente, pois o conhecimento <strong>de</strong> principiantes<br />

é superficial e não possui planos <strong>de</strong> ação, enquanto o<br />

conhecimento especializado possui um número muito maior<br />

<strong>de</strong> representações baseadas em princípios, planejamento antes<br />

da ação, partindo do objetivo para as metas <strong>de</strong> alcance <strong>de</strong>ste.<br />

O Perito traça uma meta e <strong>de</strong>pois a divi<strong>de</strong> em submetas para<br />

facilitar a i<strong>de</strong>ntificação <strong>de</strong> cada ação necessária para o alcance<br />

do objetivo, sendo que cada ação é planejada antes <strong>de</strong> ser<br />

realizada. Este conceito <strong>de</strong> funcionamento do conhecimento


humano especializado permite a construção <strong>de</strong> sistemas ECM<br />

que processam informações complexas, porém apresentam<br />

resultados simplificados, que acrescentam valor para ações<br />

estratégicas e operacionais <strong>de</strong> uma organização.<br />

Segundo a autora: a analogia entre computadores e mentes<br />

humanas continua sendo atraente porque estes dois tipos <strong>de</strong><br />

entida<strong>de</strong>s são os sistemas <strong>de</strong> processamento <strong>de</strong> informações<br />

mais complexo que conhecemos. Além disso, à medida que<br />

os cientistas computacionais continuam a projetar computadores<br />

para funcionar como pessoas, a analogia entre mente e<br />

computador irá tornar-se ainda mais forte.<br />

Com base nestas consi<strong>de</strong>rações, um sistema ECM <strong>de</strong>ve promover<br />

familiarida<strong>de</strong> com os processos internos da mente dos<br />

usuários através <strong>de</strong> sua interface propícia e busca <strong>de</strong> conteúdo<br />

compatível com esta analogia. Porém, compreen<strong>de</strong>r os difíceis<br />

mecanismos que formam o conhecimento não é tarefa trivial,<br />

pois exige um estudo aprofundado que conduza a compreensão<br />

dos processos <strong>de</strong> cognição que constituem a mente humana.<br />

Apesar disso, este entendimento é <strong>de</strong> suma importância para<br />

a criação <strong>de</strong> tecnologias <strong>de</strong> informação análogas aos processos<br />

<strong>de</strong> formação <strong>de</strong> conhecimento.<br />

Para Davenport (1998), o conhecimento é uma mistura <strong>de</strong><br />

experiência sucinta, valores, informação contextual e insight<br />

experimentado, a qual proporciona uma estrutura para a<br />

avaliação e incorporação <strong>de</strong> novas experiências e informações.<br />

O conhecimento tem origem e é aplicado na mente dos<br />

conhecedores, pois toda experiência que forma o conhecimento<br />

pressupõe um experimentador que a vivencia. Sendo assim,<br />

é no indivíduo que se encontra a metodologia a<strong>de</strong>quada <strong>de</strong><br />

formação e recepção do conhecimento, pois é através das pessoas<br />

e da sua interação com o ambiente organizacional que o<br />

conhecimento corporativo é produzido. Importante observar<br />

que os valores e as crenças das pessoas também exercem forte<br />

impacto sobre a formação do conhecimento humano.<br />

A mente humana é um sistema <strong>de</strong> órgãos <strong>de</strong> computação,<br />

com componentes especializados, que, segundo Pinker (1998),<br />

foi projetado pela seleção natural para resolver os tipos <strong>de</strong><br />

problemas que nossos ancestrais enfrentavam. Em especial,<br />

enten<strong>de</strong>r e superar em estratégia os objetos, animais, plantas<br />

e outras pessoas. A inteligência, que cria o conhecimento,<br />

consiste na especificação <strong>de</strong> um objetivo, posterior avaliação<br />

da situação vigente, com o intuito <strong>de</strong> conhecer como ela<br />

difere <strong>de</strong>ste objetivo, para só então por em prática uma série<br />

<strong>de</strong> processos para reduzir a discrepância entre o objetivo e a<br />

situação presente, sendo que tudo <strong>de</strong>ve ocorrer em sintonia<br />

com as crenças e valores do indivíduo.<br />

Com isso é possível constatar uma “pista” para a revelação<br />

do funcionamento da mente, quando se percebe que o conhecimento<br />

é envolvido ao longo dos pesos <strong>de</strong> suas conexões <strong>de</strong><br />

pensamentos, símbolos e estereótipos, ligando a camada <strong>de</strong><br />

perguntas com a camada das respostas, ao invés <strong>de</strong> ser armazenado<br />

em um banco <strong>de</strong> dados que po<strong>de</strong> ser acessado por<br />

diferentes processos <strong>de</strong> recuperação. Neste sentido o conhecimento<br />

produz valor se focado em um <strong>de</strong>terminado objetivo,<br />

pois o mesmo possui um mo<strong>de</strong>lo com estrutura inata, sendo<br />

GEStão DE CoNhECIMENto<br />

talhado para uma meta específica. Desta forma, sistemas ECM<br />

po<strong>de</strong>m possuir algoritmos <strong>de</strong> busca <strong>de</strong> conteúdo que partam<br />

<strong>de</strong> princípios <strong>de</strong> in<strong>de</strong>xação <strong>de</strong> objetivos específicos, em vez <strong>de</strong><br />

in<strong>de</strong>xação <strong>de</strong> dados sem direcionamento.<br />

O conhecimento humano formou-se ao longo <strong>de</strong> séculos<br />

<strong>de</strong> soluções <strong>de</strong> problemas através <strong>de</strong> tentativas e erros, ou<br />

pela or<strong>de</strong>m superior <strong>de</strong> raciocínio criado por gênios raros em<br />

nossa cultura. As pessoas formam este conhecimento através<br />

da imensa quantida<strong>de</strong> <strong>de</strong> treinamento social que recebem<br />

ao juntar palavras e sentenças <strong>de</strong> forma a conduzir a solução<br />

adaptativa <strong>de</strong> obstáculos ao objetivo (Pinker, 1998). Nesta<br />

perspectiva os sistemas ECM po<strong>de</strong>m ser <strong>de</strong>senvolvidos com<br />

base em uma analogia com o sistema humano <strong>de</strong> conservação<br />

e recuperação <strong>de</strong> conhecimento, que preservam seus conteúdos<br />

<strong>de</strong> forma não aleatória. Um sistema ECM, em vez <strong>de</strong> se tornar<br />

um repositório <strong>de</strong> dados, é construído <strong>de</strong> forma que sua base<br />

consiga i<strong>de</strong>ntificar o local on<strong>de</strong> o conteúdo armazenado possa<br />

ser editado, levando em consi<strong>de</strong>ração sua posição <strong>de</strong>ntro dos<br />

procedimentos <strong>de</strong>scritos <strong>de</strong> forma algorítmica estruturada<br />

para a obtenção <strong>de</strong> um objetivo. Este objetivo generalizado<br />

po<strong>de</strong>rá ser <strong>de</strong>s<strong>de</strong> um simples procedimento, até um objetivo<br />

mais amplo da organização. Assim, um sistema ECM obterá<br />

uma gama imensa <strong>de</strong> dados in<strong>de</strong>xados por seus respectivos<br />

objetivos, que formarão o conhecimento que visa diversos<br />

outros objetivos, que por sua vez tencionam alcançar o objetivo<br />

primordial <strong>de</strong> uma corporação, o sucesso da mesma.<br />

Sob este ponto <strong>de</strong> vista, um mo<strong>de</strong>lo <strong>de</strong> sistemas <strong>de</strong> informação<br />

ECM, baseado nas estruturas humanas <strong>de</strong> formação do conhecimento,<br />

é composto por um elemento primordial que molda<br />

e conduz os processos que impelem a ação, o objetivo (Hall,<br />

2000). Neste contexto, o objetivo <strong>de</strong> um processo organizacional<br />

será o nó in<strong>de</strong>xador dos conteúdos corporativos (documentos<br />

e ações) geridos por um sistema <strong>de</strong> software ECM.<br />

Para que um sistema ECM possa suportar a imensa quantida<strong>de</strong><br />

<strong>de</strong> informações e transformá-las em conhecimento<br />

válido para uma organização, alguns aspectos da formação do<br />

conhecimento humano <strong>de</strong>vem receber o <strong>de</strong>vido estudo e aprofundamento.<br />

Neste ponto o indivíduo recebe importância no<br />

sentido <strong>de</strong> fornecer os aspectos que produzirão a metodologia<br />

para construção <strong>de</strong> um sistema <strong>de</strong> informação ECM.<br />

O mecanismo <strong>de</strong> formação do conhecimento humano parte<br />

do indivíduo, que <strong>de</strong>seja solucionar <strong>de</strong>terminado problema.<br />

Para alcançar tal objetivo o sujeito simboliza o contexto da<br />

meta <strong>de</strong> alcance e a situação presente, justamente para i<strong>de</strong>ntificar<br />

a discrepância entre ambas. Depois <strong>de</strong> assimilar essa<br />

inconsistência ele formula estratégias <strong>de</strong> ajustes que irão<br />

nivelar as duas situações. Após o cumprimento <strong>de</strong>sta ação,<br />

todo esse mecanismo é registrado através da memória. O<br />

registro em memória é fator essencial para preservação <strong>de</strong>ste<br />

conhecimento específico, que será novamente utilizado em<br />

situações semelhantes no futuro. Um indivíduo po<strong>de</strong> formular<br />

várias estratégias para alcançar um mesmo objetivo, porém<br />

ele escolherá apenas a estratégia que melhor se enquadra nas<br />

suas priorida<strong>de</strong>s <strong>de</strong> crenças e valores. Supõe-se então que cada<br />

indivíduo possui uma estratégia eficaz, e vários indivíduos, no<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 17


caso <strong>de</strong> uma organização, possuem várias estratégias eficazes<br />

para um mesmo objetivo. Para que a i<strong>de</strong>ntificação da melhor<br />

estratégia aconteça, é essencial haver, entre os membros da<br />

organização, a socialização <strong>de</strong>stes conhecimentos.<br />

Assim, para alcançar um objetivo os indivíduos <strong>de</strong>finem<br />

uma meta principal, que compreen<strong>de</strong> o caminho total a ser<br />

percorrido até o seu alcance, e para que o caminho seja mais<br />

fácil <strong>de</strong> ser cursado ele é subdividido em pequenas partes<br />

(submetas). Esta <strong>de</strong>scrição está exemplificada na Figura 2, on<strong>de</strong><br />

um indivíduo divi<strong>de</strong> o caminho a ser percorrido pelo balão em<br />

submetas, com o intuito <strong>de</strong> traçar todos os pontos que <strong>de</strong>verá<br />

voar até alcançar seu objetivo. Ao lado da abstração da vida real<br />

é exemplificada uma analogia computacional para um sistema<br />

ECM especializado, baseado nos mecanismos humanos <strong>de</strong><br />

formação e preservação do conhecimento.<br />

Figura 2. Mo<strong>de</strong>lo abstração vida real & abstração sistema ECM<br />

(Fonte: Mo<strong>de</strong>lo dos autores inspirado nas teorias <strong>de</strong> Atkinson (2002),<br />

Pinker (1988) e Hall (2000))<br />

A implementação <strong>de</strong> sistemas ECM <strong>de</strong>ve seguir os preceitos<br />

básicos <strong>de</strong> gestão do conhecimento, e no caso <strong>de</strong> sistemas ECM<br />

especializados, alguns conceitos característicos da especialização<br />

do conhecimento humano. O conhecimento tácito, que possui<br />

papel <strong>de</strong> <strong>de</strong>staque em um sistema ECM, <strong>de</strong>ve ser registrado<br />

<strong>de</strong> forma que possa ser editado até se tornar um consenso entre<br />

os operantes do processo. Para tanto, é necessária a existência<br />

<strong>de</strong> campos tipo Texto que permitam a edição <strong>de</strong>stes conteúdos,<br />

conforme <strong>de</strong>monstrado no campo conhecimento tácito, apresentado<br />

na Figura 3, que se refere à tela <strong>de</strong> ETAPA no sistema<br />

ECM. Esses campos são locais on<strong>de</strong> os usuários que realizam<br />

<strong>de</strong>terminadas ações possam indicar suas percepções acerca<br />

do sucesso <strong>de</strong> um procedimento, e estas percepções possam<br />

ser atualizadas sempre que necessário, favorecendo assim a<br />

preservação e aperfeiçoamento do conhecimento tácito que<br />

se transforma, <strong>de</strong>ntro <strong>de</strong> um sistema ECM, em conhecimento<br />

explícito. Estes campos, análogos aos processos humanos <strong>de</strong><br />

18 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - <strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao conhecimento<br />

formação do conhecimento, po<strong>de</strong>m ser editados até que os<br />

colaboradores, que executam estes procedimentos, cheguem<br />

a um consenso <strong>de</strong> aprovação <strong>de</strong> seu conteúdo, que, <strong>de</strong>ntro <strong>de</strong><br />

um sistema ECM se tornará um conhecimento explícito (ver<br />

espiral tese-antítese-síntese na Figura 1). A Figura 3 representa<br />

a entida<strong>de</strong> ETAPA visualizada na Figura 2 na abstração do<br />

sistema ECM. Esta entida<strong>de</strong> é a abstração que efetivamente<br />

armazena o conteúdo do negócio, o <strong>de</strong>screve, preserva e permite<br />

a edição do conhecimento a ele relacionado.<br />

Importante salientar que cada etapa <strong>de</strong>ve comportar somente<br />

um anexo <strong>de</strong> conteúdo explícito (documentos, mídias, planilhas,<br />

imagens, etc.) para facilitar a <strong>de</strong>scrição dos processos<br />

do negócio a ele relacionado, além <strong>de</strong> permitir que o sistema<br />

funcione sob um conceito que concatene os preceitos <strong>de</strong> sistemas<br />

GED (Gerenciador Eletrônico <strong>de</strong> Documentos) e Workflow<br />

(Sistema <strong>de</strong> Gerenciamento <strong>de</strong> Processo) aliado à gestão do<br />

conhecimento (Cruz, 2007).<br />

Cada etapa referencia uma ação que <strong>de</strong>ve ser realizada<br />

pela pessoa responsável (ver campo responsável na Figura 3)<br />

para que o objetivo do negócio específico seja alcançado. O<br />

<strong>de</strong>senvolvimento <strong>de</strong> softwares que gerenciam conhecimento<br />

busca a concretização <strong>de</strong> um formato sistêmico e coeso com a<br />

realida<strong>de</strong> do negócio, tendo em vista os processos e fontes <strong>de</strong><br />

on<strong>de</strong> surge o conhecimento.<br />

Mo<strong>de</strong>lagem <strong>de</strong> software sob o conceito ECM<br />

A escolha da UML para mo<strong>de</strong>lar um sistema ECM especialista<br />

po<strong>de</strong> ser a mais a<strong>de</strong>quada, pois conforme Booch (2005),<br />

mo<strong>de</strong>los explícitos elaborados com uso <strong>de</strong> UML facilitam a<br />

comunicação e a compreensão para o <strong>de</strong>senvolvedor. A UML<br />

é uma linguagem para especificação <strong>de</strong> software que possui<br />

um vocabulário escrito através <strong>de</strong> símbolos e regras para sua<br />

combinação, totalmente focada na comunicação <strong>de</strong> uma representação<br />

conceitual e física <strong>de</strong> um software complexo. Desta<br />

forma, sistemas <strong>de</strong> informação implementados com base nos<br />

conceitos ECM po<strong>de</strong>m fazer uso <strong>de</strong> métodos e tecnologias que<br />

promovam a construção <strong>de</strong> mo<strong>de</strong>los precisos, <strong>de</strong>sprovidos <strong>de</strong><br />

ambiguida<strong>de</strong>s e que sejam completos.<br />

Para Booch (2005), a utilização das cinco visões interconectadas<br />

através da visão <strong>de</strong> caso <strong>de</strong> uso é válida para compreensão<br />

do <strong>de</strong>senvolvimento <strong>de</strong> um sistema. As cinco visões correspon<strong>de</strong>m<br />

a: visão <strong>de</strong> lógica, visão <strong>de</strong> implementação, visão <strong>de</strong><br />

interação, visão <strong>de</strong> implantação, on<strong>de</strong> todas as visões estão<br />

integradas pela visão <strong>de</strong> caso <strong>de</strong> uso. Cada visão constitui uma<br />

projeção na organização da estrutura do sistema, conforme<br />

apresentado na Figura 4.<br />

Na Figura 4 é possível observar que cada visão produz diagramas<br />

que são a captura da abstração <strong>de</strong> alto nível do sistema.<br />

Neste contexto são utilizados os diagramas <strong>de</strong> objetos, on<strong>de</strong> é<br />

<strong>de</strong>monstrado um conjunto <strong>de</strong> objetos com seus respectivos relacionamentos;<br />

diagramas <strong>de</strong> classes, que mostra um conjunto<br />

<strong>de</strong> classes, interfaces e suas respectivas interações; diagrama <strong>de</strong><br />

pacotes, que <strong>de</strong>monstra <strong>de</strong> forma estrutural a organização do<br />

mo<strong>de</strong>lo em pacotes; e diagrama <strong>de</strong> componentes, que apresenta<br />

<strong>de</strong> maneira espacial as partes internas interconectadas. Vale


Figura 3. Tela <strong>de</strong> etapa <strong>de</strong> um sistema ECM especializado (Fonte: Protótipo Sistema ECM Projeto)<br />

ressaltar que quando um componente é instanciado as cópias<br />

<strong>de</strong> suas partes internas também são.<br />

Outros diagramas que po<strong>de</strong>m favorecer o <strong>de</strong>senvolvimento <strong>de</strong><br />

sistemas baseados nos conceitos ECM são os diagramas <strong>de</strong> caso<br />

<strong>de</strong> uso, que <strong>de</strong>monstram um conjunto <strong>de</strong> casos <strong>de</strong> uso e seus<br />

respectivos atores; diagrama <strong>de</strong> ativida<strong>de</strong>s, que constitui um<br />

digrama comportamental que mostra um processo com ênfase<br />

no fluxo <strong>de</strong> uma ativida<strong>de</strong> para outra; e diagrama <strong>de</strong> implantação,<br />

cujo objetivo é <strong>de</strong>monstrar as relações entre conjuntos <strong>de</strong><br />

nós, artefatos, classes manifestadas e componentes. As visões <strong>de</strong><br />

<strong>de</strong>senvolvimento, <strong>de</strong>monstradas na Figura 4, permitem que se<br />

observe um sistema ECM a partir <strong>de</strong> perspectivas operacionais e<br />

estratégicas. Estas visões <strong>de</strong> <strong>de</strong>senvolvimento também permitem<br />

que engenheiros, analistas e usuários finais compreendam a integração<br />

dos diversos módulos que formam um sistema ECM.<br />

Figura 4. Mo<strong>de</strong>lagem da arquitetura <strong>de</strong> um sistema ECM<br />

(Fonte: Adaptado <strong>de</strong> Booch (2005))<br />

GEStão DE CoNhECIMENto<br />

Conforme Bezerra (2007) e Teorey (2007), a UML 2.0 proporciona<br />

a utilização das melhores práticas <strong>de</strong> mo<strong>de</strong>lagem<br />

<strong>de</strong> sistemas, fundamentadas em estudos realizados por especialistas<br />

que criaram uma linguagem <strong>de</strong> mo<strong>de</strong>lagem que<br />

pu<strong>de</strong>sse ser usada por humanos e máquinas, além <strong>de</strong> que o<br />

<strong>de</strong>senvolvimento <strong>de</strong> um software, utilizando o paradigma <strong>de</strong><br />

orientação a objetos, permite a visualização do sistema como<br />

um conjunto <strong>de</strong> atores que se relacionam, chamados objetos.<br />

Essa visualização é válida por permitir abstrações <strong>de</strong> mo<strong>de</strong>los<br />

<strong>de</strong> funcionalida<strong>de</strong>s <strong>de</strong> negócios, bem como funcionalida<strong>de</strong>s<br />

<strong>de</strong> sistemas, condizentes com a realida<strong>de</strong> percebida por seres<br />

humanos no mundo real. Neste paradigma, os objetos realizam<br />

tarefas específicas interagindo entre si, sendo que cada objeto<br />

possui características próprias (atributos) e capacida<strong>de</strong>s <strong>de</strong><br />

realizar <strong>de</strong>terminadas tarefas (métodos).<br />

Para Silva (2007), o processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> um software<br />

é um conjunto <strong>de</strong> soluções adotadas por um grupo para criar uma<br />

solução <strong>de</strong> automação, sendo que o autor divi<strong>de</strong> o ciclo <strong>de</strong> vida do<br />

sistema em análise, projeto, implementação e testes, on<strong>de</strong> todo o<br />

processo é norteado pelo paradigma <strong>de</strong> orientação a objetos.<br />

Baseado nestes conceitos, o <strong>de</strong>senvolvimento <strong>de</strong> um sistema<br />

ECM po<strong>de</strong> seguir os passos <strong>de</strong>scritos na Tabela 1.<br />

Etapas <strong>de</strong><br />

Visões do Projeto Diagramas<br />

Desenvolvimento<br />

Análise Visão <strong>de</strong> Caso <strong>de</strong> Uso Diagrama <strong>de</strong> Caso <strong>de</strong> Uso<br />

Projeto Visão <strong>de</strong> Lógica, Visão <strong>de</strong><br />

Diagramas <strong>de</strong> Objetos, Classes e<br />

Processo<br />

Ativida<strong>de</strong>s<br />

Implementação Visão <strong>de</strong> Implementação Diagramas <strong>de</strong> Componentes e Pacotes<br />

Finalizações e Testes Visão <strong>de</strong> Implantação Diagramas <strong>de</strong> Interações<br />

tabela 1. Etapas <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> ferramentas ECM<br />

(Fonte: Elaborado pelos autores, com base nas interpretações da UML 2.0<br />

<strong>de</strong> Bezerra (2007), Silva (2007), e Teorey (2007))<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 19


Segue abaixo o <strong>de</strong>talhamento <strong>de</strong> cada etapa <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> um sistema ECM, conforme <strong>de</strong>scrito na Tabela 1:<br />

• Análise: nessa etapa são <strong>de</strong>scritos os requisitos do negócio<br />

consi<strong>de</strong>rando as necessida<strong>de</strong>s do usuário e compreensão dos<br />

<strong>de</strong>senvolvedores do software ECM. Para auxiliar na visualização<br />

das funcionalida<strong>de</strong>s do sistema ECM, mo<strong>de</strong>los <strong>de</strong> caso<br />

<strong>de</strong> uso po<strong>de</strong>m ser utilizados para <strong>de</strong>monstrações <strong>de</strong> funções<br />

como cadastros e busca <strong>de</strong> informações. Em um sistema ECM<br />

estes mo<strong>de</strong>los também po<strong>de</strong>m <strong>de</strong>monstrar abstrações que permitam<br />

a visualização do compartilhamento <strong>de</strong> informações em<br />

grupo e envio e recebimento <strong>de</strong> ações previamente moldadas<br />

pelo conhecimento <strong>de</strong> processos anteriores. Mo<strong>de</strong>los <strong>de</strong> casos<br />

<strong>de</strong> uso são informações essenciais para ativida<strong>de</strong>s <strong>de</strong> análise,<br />

<strong>de</strong>sign e testes em um projeto <strong>de</strong> software e, no caso do <strong>de</strong>senvolvimento<br />

<strong>de</strong> sistemas ECM, po<strong>de</strong>m também possibilitar<br />

uma reorganização dos processos do negócio. A implantação<br />

<strong>de</strong> uma cultura baseada nos preceitos da gestão do conhecimento<br />

po<strong>de</strong> acontecer justamente nesta primeira etapa, on<strong>de</strong><br />

os processos do negócio são reformulados respectivamente<br />

com o planejamento <strong>de</strong> construção do sistema ECM;<br />

• Projeto: essa etapa constitui a concepção dos diagramas<br />

<strong>de</strong> classe, na visão <strong>de</strong> lógica, e os diagramas <strong>de</strong> ativida<strong>de</strong>s<br />

numa visão <strong>de</strong> processo. Ambas as visões são utilizadas para<br />

<strong>de</strong>senhar o sistema ainda in<strong>de</strong>pen<strong>de</strong>nte da linguagem <strong>de</strong><br />

implementação. Importante observar que o sucesso <strong>de</strong> um<br />

projeto <strong>de</strong> software ECM <strong>de</strong>pen<strong>de</strong> concomitantemente da<br />

correta análise dos requisitos do negócio e <strong>de</strong> um estudo <strong>de</strong><br />

formação do conhecimento humano, sob a perspectiva <strong>de</strong> uma<br />

<strong>de</strong>terminada organização;<br />

• Implementação: essa etapa ocorre após os mo<strong>de</strong>los do projeto<br />

estarem suficientemente refinados. A representação das abstrações<br />

é <strong>de</strong>senhada utilizando-se diagramas <strong>de</strong> componentes<br />

e pacotes, através da visão <strong>de</strong> implementação, que consi<strong>de</strong>ra a<br />

linguagem <strong>de</strong> programação orientada a objetos;<br />

• Finalizações e Testes: nessa etapa são <strong>de</strong>scritos os diagramas<br />

<strong>de</strong> interações, e sua arquitetura é <strong>de</strong>finida <strong>de</strong>ntro <strong>de</strong> uma visão<br />

<strong>de</strong> implantação. Os testes são realizados e o sistema po<strong>de</strong><br />

finalmente ser implantado.<br />

Ao todo são implementados sete diagramas, sendo eles: diagramas<br />

<strong>de</strong> caso <strong>de</strong> uso, diagramas <strong>de</strong> objetos, diagramas <strong>de</strong><br />

classes, diagramas <strong>de</strong> ativida<strong>de</strong>s, diagramas <strong>de</strong> componentes,<br />

diagramas <strong>de</strong> pacotes e diagramas <strong>de</strong> interações.<br />

Conclusões<br />

O aumento exponencial <strong>de</strong> informações a disposição <strong>de</strong> todos<br />

aconteceu repentinamente, expondo <strong>de</strong>ssa forma o ambiente<br />

corporativo a falhas e a inabilida<strong>de</strong> <strong>de</strong> lidar com tal fato. Os<br />

formatos <strong>de</strong> gestão organizacional que norteavam a construção<br />

<strong>de</strong> sistemas <strong>de</strong> informação já não são mais suficientes<br />

para garantir o efetivo gerenciamento <strong>de</strong> processos <strong>de</strong> uma<br />

organização. As novas abordagens <strong>de</strong> gestão, como a gestão<br />

do conhecimento, po<strong>de</strong>m ser um caminho que conduza as<br />

organizações ao efetivo gerenciamento do aparato <strong>de</strong> conteúdo<br />

corporativo.<br />

20 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - <strong>Engenharia</strong> <strong>de</strong> sistemas orientada ao conhecimento<br />

Neste contexto, a implementação <strong>de</strong> soluções <strong>de</strong> software ECM<br />

baseado no conhecimento humano preten<strong>de</strong> potencializar a<br />

aquisição, o armazenamento e a disseminação do conhecimento<br />

<strong>de</strong>ntro das organizações, o que promoverá o alinhamento da<br />

tecnologia <strong>de</strong> informação com os preceitos da gestão do conhecimento.<br />

Esta nova abordagem <strong>de</strong> engenharia <strong>de</strong> sistemas<br />

po<strong>de</strong>rá ser uma alternativa às metodologias <strong>de</strong> engenharia<br />

vigentes, pois busca colocar uma organização em sintonia com<br />

a realida<strong>de</strong> vivenciada pelo mundo, que sofre um processo veloz<br />

<strong>de</strong> profunda transformação em todos os campos.<br />

Links<br />

Palestra “O Papel da Tecnologia da Informação na Gestão do Conhecimento” escrito<br />

por Ivan Correia Filagrana<br />

http://gc.ivanfilagrana.com.br/wp-content/uploads/2009/11/Palestra-Sinergia-Gestao-do-<br />

Conhecimento.pdf<br />

Referências<br />

ATKINSON, Rita L; ATKINSON, Richard C.; SMITH, Edward E.; BEM, Dary J.; NOLEN-HOEKSEMA,<br />

Susan e SMITH, Carolyn D. Introdução à psicologia <strong>de</strong> Hilgard. Tradução <strong>de</strong> Daniel Bueno. 13ed.<br />

Porto Alegre: Artmed, 2002.<br />

BEZERRA, Eduardo. Princípios <strong>de</strong> análise e projeto <strong>de</strong> sistemas com UML. Rio <strong>de</strong> Janeiro: Elsevier, 2007.<br />

BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar; Tradução <strong>de</strong> Fábio Freitas da Silva e Cristina<br />

<strong>de</strong> Amorim Machado. UML: guia do usuário. Rio <strong>de</strong> Janeiro: Elsevier, 2005.<br />

CRUZ, Ta<strong>de</strong>l. Gerência do Conhecimento. 2.ed. Rio <strong>de</strong> Janeiro: E-papers, 2007.<br />

DAVENPORT, Thomas H.; PRUSAK, Laurence. Conhecimento empresarial: como as organizações<br />

gerenciam o seu capital intelectual. Tradução Lenke Peres. Rio <strong>de</strong> Janeiro: Campus, 1998<br />

FILHO, Antônio Men<strong>de</strong>s Da Silva. Os Três Pilares da Gestão do Conhecimento. (Artigo Revista<br />

Espaço Acadêmico, nº 58, Março <strong>de</strong> 2006 – ISSN 1519.6186). Consulta em 08/02/2010 no<br />

site:.<br />

HALL, Calvin S.; LINDZEY, Gardner; CAMPBELL, John B. Teorias da personalida<strong>de</strong>. 4 ed. Porto<br />

Alegre: Artmed, 2000.<br />

HOLANDA, Lucyanno Moreira Cardoso; FRANCISCO, Antonio Carlos <strong>de</strong>; KOVALESKI, João Luiz.<br />

A percepção dos alunos do mestrado em engenharia <strong>de</strong> produção sobre a existência <strong>de</strong><br />

ambientes <strong>de</strong> criação do conhecimento. Ci. Inf., Brasília, v. 38, n. 2, p. 96-109, maio/ago. 2009.<br />

(Artigo científico) Consulta em 10/02/2010 no site: <br />

PINKER, Steven. Como a mente funciona. Tradução Laura Teixeira Motta. São Paulo: Companhia<br />

da Letras, 1998.<br />

SILVA, Ricardo Pereira. UML: Mo<strong>de</strong>lagem Orientada a Objetos. Florianópolis: Visual Books, 2007.<br />

TAKEUCHI, Hirotaka; NONAKA, Ikujiro; tradução Ana Thorell. Gestão do Conhecimento. Porto<br />

Alegre: Bookman, 2008.<br />

TEOREY, Toby J; LIGHTSTONE, Sam; NADEAU, Tom. Projeto e mo<strong>de</strong>lagem <strong>de</strong> banco <strong>de</strong> dados.<br />

Tradução <strong>de</strong> Daniel Vieira. Rio <strong>de</strong> Janeiro: Elsevier, 2007.<br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

Dê seu Feedback<br />

sobre esta edição


Agilida<strong>de</strong><br />

Nesta seção você encontra artigos voltados para as práticas e métodos ágeis.<br />

Da Gestão à Governança em Tecnologia da<br />

Informação e Comunicação – TIC<br />

Uma Visão Crítica<br />

Alexandre José <strong>de</strong> Oliveira<br />

ajhol@cin.ufpe.br<br />

alexluna@mangve.org<br />

Doutorando em Ciência da Computação pelo CIn-<br />

UFPE em Governança em TIC (em andamento).<br />

Mestre em Ciência da Computação pelo CIn-UFPE<br />

em Gerenciamento <strong>de</strong> Projetos (2009). MBA em<br />

Gestão Estratégica <strong>de</strong> TIC, FACIPE (2003). Engenheiro<br />

Químico pela UFPE (2001). É Analista Consultor<br />

da ATI-PE, Gestor <strong>de</strong> Infraestrutura <strong>de</strong> TIC da<br />

Secretaria Estadual <strong>de</strong> Educação e Pesquisador do<br />

NUTES-HC-UFPE e GP2-CIn-UFPE.<br />

Cleyverson Pereira Costa<br />

cpc@cin.ufpe.br<br />

Mestre em Ciência da Computação pelo CIn-UFPE<br />

(2009). Especialista em <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re<br />

com Ênfase em Teste <strong>de</strong> <strong>Softwa</strong>re pelo CIn-UFPE<br />

(2007). Graduado em Ciência da Computação<br />

(2005). Pesquisador do GP2-CIn-UFPE. Possui experiência<br />

na área <strong>de</strong> testes, tendo atuado como Engenheiro<br />

<strong>de</strong> Testes pelo Motorola Brazil Test Center.<br />

Hermano Perrelli <strong>de</strong> Moura<br />

hermano@cin.ufpe.br<br />

Possui graduação em <strong>Engenharia</strong> Eletrônica pela Universida<strong>de</strong><br />

Fe<strong>de</strong>ral <strong>de</strong> Pernambuco (1982), Mestrado<br />

em Informática pela Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Pernambuco<br />

(1989) e PhD in Computing Science pela University<br />

of Glasgow (1993). É certificado PMP (2003) pelo<br />

Project Management Institute. Atualmente é Professor<br />

Adjunto e Vice-Diretor do Centro <strong>de</strong> Informática da<br />

Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Pernambuco.<br />

De que se trata o artigo?<br />

Este artigo tem por objetivo apresentar uma revisão<br />

sistemática a respeito <strong>de</strong> nove mo<strong>de</strong>los <strong>de</strong><br />

governança em TIC, procurando permitir ao leitor<br />

a criação <strong>de</strong> uma visão crítica a respeito do corpo<br />

<strong>de</strong> conhecimento <strong>de</strong> governança em TIC – ICTG-<br />

BOK, suas principais características, carências e limitações.<br />

Ao final, i<strong>de</strong>ntifica o surgimento <strong>de</strong> um<br />

novo paradigma: Governança Ágil em TIC, que se<br />

propõe a sanar as limitações existentes.<br />

Para que serve?<br />

A Governança em TIC está se tornando o meio através<br />

do qual a TIC está assumindo o seu papel estratégico<br />

nas organizações, através do alinhamento<br />

das iniciativas <strong>de</strong> TIC e dos objetivos estratégicos<br />

do negócio das organizações. Outro aspecto que<br />

torna o tema relevante é o fato <strong>de</strong> que empresas<br />

Com o crescimento populacional,<br />

a globalização e o <strong>de</strong>senvolvimento<br />

do capitalismo no século<br />

XX, surgem novas necessida<strong>de</strong>s para o<br />

ser humano. A quantida<strong>de</strong> <strong>de</strong> dados e informações<br />

para serem armazenas e computadas<br />

atinge um volume incalculável.<br />

que <strong>de</strong>sejam ter suas ações negociadas na Bolsa<br />

<strong>de</strong> Valores precisam adotar Governança em TIC,<br />

<strong>de</strong> acordo com a SOX, o que transforma o assunto<br />

num tema essencial aos negócios. Para quem está<br />

envolvido com aspectos <strong>de</strong> gestão, ou <strong>de</strong>sejando<br />

fazê-lo, <strong>de</strong>senvolver uma visão crítica sobre o tema<br />

e adquirir conhecimento a respeito das alternativas<br />

disponíveis é essencial.<br />

Em que situação o tema é útil?<br />

Este tema é útil às organizações que precisam<br />

garantir a continuida<strong>de</strong> dos processos <strong>de</strong> negócio,<br />

reduzir os custos <strong>de</strong> indisponibilida<strong>de</strong>,<br />

assegurar o retorno dos investimentos em TIC,<br />

aumentando assim a competitivida<strong>de</strong> organizacional.<br />

Neste contexto, a Governança em<br />

TIC está intimamente ligada ao alcance <strong>de</strong>stes<br />

resultados.<br />

A informática surge, neste contexto, para<br />

superar a necessida<strong>de</strong> do ser humano <strong>de</strong><br />

registrar e manipular dados em gran<strong>de</strong>s<br />

quantida<strong>de</strong>s com precisão e rapi<strong>de</strong>z<br />

(NORTON, 1997).<br />

Apesar <strong>de</strong> bastante presente atualmente,<br />

a <strong>de</strong>finição <strong>de</strong> informática não é tão<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 21


simples, pois envolve conceitos abstratos. O termo informática<br />

foi criado em 1957, pelo cientista Karl Steinbuch, em um artigo<br />

que trata do processamento automático da informação (STEIN-<br />

BUCH, 1957). A partir daí o termo foi traduzido para o francês,<br />

espanhol e português, sendo mais usado em idiomas latinos. A<br />

informática refere-se ao conjunto das Ciências da Computação<br />

e da Informação que, por sua vez, <strong>de</strong>dicam-se ao estudo da<br />

informação <strong>de</strong>s<strong>de</strong> a sua gênese até o processo <strong>de</strong> transformação<br />

<strong>de</strong> dados em informação, e <strong>de</strong>sta, em conhecimento.<br />

O termo informática começou a ser amplamente difundido<br />

a partir <strong>de</strong> 1962, na França, e sua conotação mais conhecida é<br />

a divulgação da contração das palavras INFORmation e auto-<br />

MATIQUE (INFORMAÇÃO AUTOMÁTICA). O objetivo inicial<br />

<strong>de</strong>ssa ciência é auxiliar o ser humano nos trabalhos rotineiros<br />

e repetitivos, em geral cálculos e gerenciamento. Atualmente,<br />

o termo informática é comumente utilizado para se referir à<br />

manipulação e gênese da informação por meio <strong>de</strong> computadores,<br />

que são os responsáveis diretos pelo processamento dos<br />

dados (ALCALDE, 1991).<br />

Evolução da Informática à TIC<br />

Na década <strong>de</strong> 1960, conhecida como a era do Processamento<br />

<strong>de</strong> Dados, os computadores começaram a se tornar importantes<br />

para gran<strong>de</strong>s e médias empresas, mas se apresentavam limitados<br />

e tinham sua aplicação restrita em função da incompatibilida<strong>de</strong><br />

entre si. Os avanços da informática eram impulsionados<br />

pelo hardware com avanços <strong>de</strong> redução <strong>de</strong> custo e aumento<br />

na velocida<strong>de</strong> <strong>de</strong> processamento, mas as aplicações (softwares)<br />

eram limitadas, seu <strong>de</strong>senvolvimento restrito e seu gerenciamento<br />

extremamente centralizado nos chamados Centros <strong>de</strong><br />

Processamento <strong>de</strong> Dados – CPD (FOINA, 2001).<br />

Em meados da década <strong>de</strong> 1970 as linhas telefônicas <strong>de</strong> voz<br />

passaram a permitir o acesso a terminais remotos <strong>de</strong> computadores<br />

e as telecomunicações se tornam uma base tecnológica,<br />

levando diversas empresas a automatização <strong>de</strong> suas<br />

operações. Nesta época, conhecida como a era dos Sistemas<br />

<strong>de</strong> Informações, as transformações tecnológicas começaram<br />

a abrir novas alternativas para a transformação <strong>de</strong> dados em<br />

informações e na melhoria dos sistemas <strong>de</strong> acordo com as<br />

necessida<strong>de</strong>s das organizações, mas ainda num enfoque <strong>de</strong><br />

gran<strong>de</strong> centralização. Surgem então os pacotes <strong>de</strong> software<br />

que combinados à flexibilida<strong>de</strong> do uso <strong>de</strong> terminais, permite<br />

ao computador processar diversas tarefas simultaneamente.<br />

De acordo com Ken (KENN, 1996), a maior evolução técnica<br />

<strong>de</strong>ste período foi a passagem do processamento <strong>de</strong> transações<br />

para o gerenciamento <strong>de</strong> banco <strong>de</strong> dados. Surgem, então, os<br />

Sistemas Gerenciadores <strong>de</strong> Bancos <strong>de</strong> Dados – SGBDs.<br />

Na década seguinte, 1980, ocorreram mudanças tecnológicas<br />

e a popularização dos microcomputadores (PCs ou Personal<br />

Computers), que iniciaram um processo <strong>de</strong> <strong>de</strong>scentralização<br />

e maior difusão da informática nas organizações <strong>de</strong> qualquer<br />

tamanho. Assim, o termo “Tecnologia da Informação – TI”<br />

passou a ser mais frequentemente empregado, ampliando o<br />

contexto do que era conhecido como informática. Este período<br />

ficou conhecido como era da Inovação e Vantagem Competitiva.<br />

Os softwares para microcomputadores se popularizaram e o<br />

seu custo <strong>de</strong> produção e distribuição reduziu-se drasticamente.<br />

As telecomunicações e os microcomputadores ajudaram a<br />

difundir o uso da TI nas organizações, criando programas <strong>de</strong><br />

conscientização gerencial para os executivos e os centros <strong>de</strong><br />

suporte ao usuário, conhecidos como Help Desk, para apoiar<br />

e disseminar o uso da TI nas organizações como diferencial<br />

e vantagem competitiva. Mesmo com todos os avanços como<br />

as re<strong>de</strong>s locais (Local Area Network – LAN), ainda persistia o<br />

problema da incompatibilida<strong>de</strong> entre os computadores, o que<br />

dificultava a integração dos sistemas e uma maior e flexibilida<strong>de</strong><br />

ao negócio das organizações (FOINA, 2001).<br />

Na era da Integração e Reestruturação do Negócio, iniciada<br />

em meados <strong>de</strong> 1990, sistemas abertos, integração e mo<strong>de</strong>los<br />

se tornam itens essenciais nas unida<strong>de</strong>s <strong>de</strong> TI. A integração<br />

tecnológica flexibilizou e simplificou o intercâmbio e o acesso<br />

às informações otimizando o funcionamento das organizações.<br />

A TI passa a ser reconhecida como fator crítico <strong>de</strong> potencialização<br />

do negócio das organizações, principalmente através<br />

das telecomunicações, que possibilita a eliminação <strong>de</strong> barreiras<br />

físicas e temporais, nas ativida<strong>de</strong>s <strong>de</strong> serviços e colaboração.<br />

Segundo Ken (KEN, 1996), <strong>de</strong> modo súbito estas mudanças<br />

se aceleraram em quase todas as áreas <strong>de</strong> negócio e da tecnologia.<br />

A convergência das tecnologias, as transformações<br />

e a utilização das ferramentas da TI se tornam globais e as<br />

distinções entre computador e comunicação <strong>de</strong>saparecem.<br />

Desta forma, o termo TI também se transforma assumindo<br />

sua <strong>de</strong>nominação mais recente “Tecnologias da Informação e<br />

Comunicação – TIC”.<br />

O termo Tecnologias da Informação e Comunicação – TIC<br />

serve para <strong>de</strong>signar o conjunto <strong>de</strong> recursos tecnológicos e computacionais<br />

para geração e uso da informação. A TIC também<br />

é comumente utilizada para <strong>de</strong>signar o conjunto <strong>de</strong> recursos<br />

<strong>de</strong>dicados ao armazenamento, processamento e comunicação<br />

da informação, por meio das funções <strong>de</strong> hardware, software<br />

e telecomunicações, assim como o modo como esses recursos<br />

estão organizados. A TIC não se restringe a equipamentos<br />

(hardware), programas (software) e comunicação <strong>de</strong> dados.<br />

Existem tecnologias relativas: ao planejamento <strong>de</strong> informática,<br />

ao <strong>de</strong>senvolvimento <strong>de</strong> sistemas, ao suporte ao software, aos<br />

processos <strong>de</strong> produção e operação, ao suporte <strong>de</strong> hardware,<br />

todas essenciais no apoio aos processos <strong>de</strong> negócio, pesquisa<br />

científica e <strong>de</strong> ensino e aprendizagem (NORTON, 1997).<br />

A Figura 1 ilustra bem a linha do tempo dos acontecimentos<br />

<strong>de</strong>scritos neste artigo.<br />

Sob uma ótica mais ampla, a sigla TIC abrange todas as ativida<strong>de</strong>s<br />

<strong>de</strong>senvolvidas na socieda<strong>de</strong> com o apoio dos recursos da<br />

informática. É a difusão social da informação em larga escala<br />

<strong>de</strong> transmissão, a partir <strong>de</strong>stes sistemas tecnológicos inteligentes.<br />

Seu acesso po<strong>de</strong> ser <strong>de</strong> domínio público ou privado,<br />

na prestação <strong>de</strong> serviços das mais variadas formas. Pequenas<br />

e gran<strong>de</strong>s empresas <strong>de</strong>pen<strong>de</strong>m <strong>de</strong>la para alcançar maior produtivida<strong>de</strong><br />

e competitivida<strong>de</strong> (FOINA, 2001).<br />

Neste trabalho, adota-se o conceito mais amplo <strong>de</strong> Tecnologias<br />

da Informação e Comunicação (TIC), incluindo os sistemas <strong>de</strong><br />

22 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Da Gestão à Governança em Tecnologia da Informação e Comunicação – TIC


informação, o uso <strong>de</strong> hardware e software, telecomunicações,<br />

automação e recursos multimídia, utilizados pelas organizações<br />

para fornecer dados, informações e conhecimento, para<br />

menção a todas as tecnologias relacionadas com o contexto da<br />

informação e comunicação, hoje em processo <strong>de</strong> convergência<br />

em um conceito único (LUFTMAN et al., 1993). Contudo, para<br />

evitar interpretações errôneas, serão utilizadas neste artigo as<br />

siglas TI e TIC como sinônimos.<br />

Figura 1. Timeline da TIC (Fonte: Elaboração própria)<br />

Relevância da Gestão em TIC<br />

Cada vez mais, as organizações tornam-se mais <strong>de</strong>pen<strong>de</strong>ntes<br />

das Tecnologias da Informação e Comunicação a fim <strong>de</strong> aten<strong>de</strong>r<br />

seus objetivos estratégicos e para satisfazer às necessida<strong>de</strong>s do<br />

negócio em que atuam. Uma unida<strong>de</strong> <strong>de</strong> TIC que não consi<strong>de</strong>rar<br />

os objetivos estratégicos da organização em que se insere<br />

como os seus próprios objetivos, será uma unida<strong>de</strong> que <strong>de</strong>seja<br />

apenas ser um simples provedor <strong>de</strong> tecnologia. Ainda assim,<br />

até mesmo os provedores <strong>de</strong> tecnologia, atualmente, ten<strong>de</strong>m<br />

a preocupar-se com a estratégia <strong>de</strong> negócio <strong>de</strong> seus clientes,<br />

condição básica para a venda <strong>de</strong> serviços sob <strong>de</strong>manda (MA-<br />

GALHÃES e PINHEIRO, 2007).<br />

O aumento da importância da área <strong>de</strong> TIC para a execução<br />

da estratégia <strong>de</strong> negócio faz com que ela seja vista como uma<br />

parte essencial da organização, possuindo sua estratégia estritamente<br />

interligada com a do negócio, <strong>de</strong> modo que todas<br />

as iniciativas <strong>de</strong> TIC possam ser <strong>de</strong>monstradas na forma <strong>de</strong><br />

obtenção <strong>de</strong> valor para a organização. Assim, a área <strong>de</strong> TIC<br />

passa a se comportar como uma “acionista”, focada nos resultados<br />

que po<strong>de</strong> trazer para o negócio, e <strong>de</strong>senvolvendo uma<br />

relação <strong>de</strong> parceria com as <strong>de</strong>mais áreas.<br />

O papel <strong>de</strong>sempenhado pela área <strong>de</strong> TIC em uma organização<br />

que <strong>de</strong>seja ser lí<strong>de</strong>r em seu segmento <strong>de</strong> atuação, move-se da<br />

“eficiência e eficácia” para a “efetivida<strong>de</strong> e a economicida<strong>de</strong>”<br />

em relação à estratégia <strong>de</strong> negócio. Esta mudança força a implementação<br />

<strong>de</strong> um Gerenciamento <strong>de</strong> Serviços <strong>de</strong> TIC que<br />

leve à exteriorização da contribuição da área <strong>de</strong> TIC para a<br />

geração <strong>de</strong> valor para a organização, maximizando o retorno<br />

para o negócio dos investimentos e das <strong>de</strong>spesas efetuadas em<br />

Tecnologia da Informação (BERG, 2008).<br />

Neste novo cenário, jargões como “melhores práticas”, “otimização<br />

<strong>de</strong> processos”, “qualida<strong>de</strong> do serviço” e “alinhamento<br />

estratégico dos serviços <strong>de</strong> TI ao negócio” <strong>de</strong>ixam <strong>de</strong> ser mero<br />

discurso e passam a ser parte integrante do novo estilo <strong>de</strong> vida<br />

das unida<strong>de</strong>s <strong>de</strong> TIC. Sendo assim, tais unida<strong>de</strong>s ten<strong>de</strong>m a<br />

GEStão DE tI E AGILIDADE<br />

adotar processos guiados pelas melhores práticas do mercado<br />

com o objetivo <strong>de</strong> não terem <strong>de</strong> apren<strong>de</strong>r e crescer <strong>de</strong> “forma<br />

experimental”, por meio <strong>de</strong> tentativas, erros e atribulações já<br />

vivenciadas e superadas por outras organizações.<br />

Evolução do Papel da TIC nas Organizações<br />

À medida que estas organizações começaram a reconhecer<br />

a sua <strong>de</strong>pendência crescente da TIC para conseguirem satisfazer<br />

os objetivos do negócio, caminhando no encontro às<br />

necessida<strong>de</strong>s da organização, muitos autores <strong>de</strong>terminaram<br />

como fundamental a garantia <strong>de</strong> uma maior qualida<strong>de</strong> dos<br />

serviços <strong>de</strong> TIC, e a sua gestão efetiva (MAGALHÃES e PI-<br />

NHEIRO, 2007).<br />

Neste cenário, a tecnologia <strong>de</strong>ve, essencialmente, mudar o<br />

modo <strong>de</strong> atuação a fim <strong>de</strong> agregar valor aos negócios da organização.<br />

Caso não obtenha sucesso em efetuar essa mudança,<br />

estará correndo o risco <strong>de</strong> ser consi<strong>de</strong>rada como estrategicamente<br />

irrelevante (LOBATO, 2000).<br />

Para o direcionamento <strong>de</strong>ste papel estratégico da TIC é necessário<br />

a existência <strong>de</strong> um processo estruturado para gerenciar<br />

e controlar as iniciativas <strong>de</strong> TIC nas organizações, a fim <strong>de</strong><br />

garantir o retorno <strong>de</strong> investimentos e adição <strong>de</strong> melhorias nos<br />

processos organizacionais. Desta forma, o termo Governança<br />

em TIC é utilizado como forma <strong>de</strong> obter controle e conhecimento,<br />

assegurando mais transparência na gestão estratégica<br />

(KOSHINO, 2004).<br />

Neste contexto surge o Ato Sarbanes Oxley como um novo<br />

impulso para as iniciativas já fomentadas há algum tempo<br />

pela área <strong>de</strong> TIC, formalizando a necessida<strong>de</strong> da abordagem<br />

da TIC na camada estratégica das organizações através da<br />

Governança (COMPUTERWORLD, 2005).<br />

O ato Sarbanes Oxley foi promovido pelo Congresso dos<br />

EUA e li<strong>de</strong>rado pelo Senador Paul S. Sarbanes (Democrata <strong>de</strong><br />

Maryland) e pelo Deputado Michael G. Oxley (Republicano <strong>de</strong><br />

Ohio), no intuito <strong>de</strong> evitar o esvaziamento dos investimentos e<br />

a fuga dos investidores. Esta lei, promulgada em 2002, caracterizou<br />

os crimes financeiros e <strong>de</strong>finiu penas severas, além <strong>de</strong><br />

uma série <strong>de</strong> procedimentos <strong>de</strong> governança que passariam a<br />

ser adotados pelas empresas que <strong>de</strong>sejassem abrir seus capitais<br />

no mercado <strong>de</strong> ações (SOX, 2002).<br />

Governança em TIC<br />

A palavra <strong>de</strong> origem francesa “gouvernance”, vem, nestes<br />

últimos anos, adquirindo bastante notorieda<strong>de</strong> por intermédio<br />

da sua tradução para o inglês: governance. Foram as instituições<br />

que participaram dos acordos da Conferência <strong>de</strong> Bretton<br />

Woods (BRETTONWOODS, 1944) – Banco Mundial e Fundo<br />

Monetário Internacional – que a difundiram mundialmente.<br />

Esta palavra engloba o conjunto dos po<strong>de</strong>res legislativo, executivo<br />

e judiciário, a administração, o governo, o parlamento, os<br />

tribunais, as coletivida<strong>de</strong>s locais, a administração do Estado, a<br />

Comissão Europeia e o sistema das Nações Unidas.<br />

De um ponto <strong>de</strong> vista amplo, a governança é a capacida<strong>de</strong> das<br />

socieda<strong>de</strong>s humanas se dotarem <strong>de</strong> sistemas <strong>de</strong> representação,<br />

<strong>de</strong> instituições e processos, <strong>de</strong> corpos sociais, para elas mesmas<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 23


se gerirem, em um movimento voluntário. Esta capacida<strong>de</strong><br />

<strong>de</strong> consciência (o movimento voluntário), <strong>de</strong> organização (as<br />

instituições, os corpos sociais), <strong>de</strong> conceituação (os sistemas<br />

<strong>de</strong> representação) e <strong>de</strong> adaptação a novas situações são características<br />

das socieda<strong>de</strong>s humanas. É um dos traços que as<br />

distinguem das outras socieda<strong>de</strong>s <strong>de</strong> seres vivos, animais e<br />

vegetais (UNESCAP, 2009).<br />

Governança corporativa é o conjunto <strong>de</strong> processos, costumes,<br />

políticas, leis e instituições que afetam a forma como<br />

uma empresa é dirigida, administrada ou controlada. Governança<br />

corporativa inclui também as relações entre as várias<br />

partes envolvidas e os objetivos para os quais a socieda<strong>de</strong> é<br />

governada. Os principais intervenientes são os acionistas, da<br />

gestão e do conselho <strong>de</strong> administração. Outros participantes<br />

incluem clientes, credores (por exemplo, bancos, portadores/<br />

proprietários <strong>de</strong> apólices/títulos), fornecedores, entida<strong>de</strong>s<br />

reguladoras e da comunida<strong>de</strong> em geral (CALAME e TAL-<br />

MANT, 2001).<br />

Já Governança <strong>de</strong> Tecnologia da Informação, Governança<br />

<strong>de</strong> TI ou Governança em TIC, é <strong>de</strong>finida por alguns autores<br />

(ITGI, 2008; ISACA, 2009; ITSMF, 2008) como um subconjunto<br />

da disciplina Governança Corporativa, centrado na tecnologia<br />

da informação (TI) e seus sistemas <strong>de</strong> <strong>de</strong>sempenho e gestão<br />

<strong>de</strong> risco. O crescente interesse em governança <strong>de</strong> TI é, em<br />

parte, <strong>de</strong>vido a uma série <strong>de</strong> iniciativas que visam garantir<br />

a criação <strong>de</strong> mecanismos <strong>de</strong> auditoria e segurança confiáveis<br />

nas empresas, <strong>de</strong> modo a mitigar riscos aos negócios e<br />

evitar a ocorrência <strong>de</strong> frau<strong>de</strong>s (ou assegurar que haja meios<br />

<strong>de</strong> i<strong>de</strong>ntificá-las), garantindo a transparência na gestão das<br />

empresas, como, por exemplo, Sarbanes-Oxley (REZZY, 2007)<br />

nos EUA e Basileia II (BIS, 2006) na Europa. Movimentos como<br />

estes <strong>de</strong>monstram como instituições <strong>de</strong> referência no mercado<br />

mundial reconhecem que os projetos <strong>de</strong> TIC po<strong>de</strong>m facilmente<br />

sair <strong>de</strong> controle e afetar profundamente o <strong>de</strong>sempenho <strong>de</strong><br />

uma organização.<br />

O termo Governança em TI é <strong>de</strong>finido como uma estrutura<br />

<strong>de</strong> relações e processos que dirige e controla uma organização<br />

a fim <strong>de</strong> atingir seu objetivo <strong>de</strong> adicionar valor ao negócio<br />

através do gerenciamento balanceado do risco com o retorno<br />

do investimento <strong>de</strong> TI. Criar estruturas <strong>de</strong> governança significa<br />

<strong>de</strong>finir uma dinâmica <strong>de</strong> papéis e interações entre membros<br />

da organização, <strong>de</strong> tal maneira a <strong>de</strong>senvolver a participação e<br />

o engajamento dos membros no processo <strong>de</strong>cisório estratégico,<br />

valorizando estruturas <strong>de</strong>scentralizadas. A governança <strong>de</strong><br />

TI, como forma <strong>de</strong> obter controle e conhecimento em TI, é o<br />

mo<strong>de</strong>lo que assegura mais transparência na gestão estratégica<br />

(KOSHINO, 2004).<br />

A Figura 2 procura ilustrar a relação <strong>de</strong> pertinência e abrangência<br />

entre as áreas <strong>de</strong> conhecimento mencionadas. Uma<br />

das diferenças mais marcantes entre Gestão em TIC e Governança<br />

em TIC po<strong>de</strong> ser consi<strong>de</strong>rada como o fato da primeira<br />

se concentrar em aspectos táticos e operacionais, enquanto<br />

a segunda procura alavancar a primeira para um nível <strong>de</strong><br />

atuação estratégico, no alinhamento <strong>de</strong> suas iniciativas com<br />

o negócio da organização.<br />

Figura 2. Diagrama <strong>de</strong> inter-relação entre as áreas citadas (Fonte: Elaboração<br />

própria)<br />

Com adoção <strong>de</strong> um mo<strong>de</strong>lo <strong>de</strong> Governança <strong>de</strong> TI espera-se<br />

que as estruturas e processos venham a garantir que a TI<br />

suporte e maximize os objetivos e estratégias da organização,<br />

permitindo controlar a medição, auditagem, execução<br />

e a qualida<strong>de</strong> dos serviços. Possibilitando ainda viabilizar o<br />

acompanhamento <strong>de</strong> contratos internos e externos <strong>de</strong>finindo<br />

as condições para o exercício eficaz da gestão com base em<br />

conceitos consolidados <strong>de</strong> qualida<strong>de</strong>. Weill e Ross (2006) afirmam<br />

que o <strong>de</strong>sempenho da governança avalia a eficácia da<br />

governança <strong>de</strong> TI em cumprir quatro objetivos or<strong>de</strong>nados <strong>de</strong><br />

acordo com a sua importância para a organização: i) uso da<br />

TI com boa relação custo/benefício; ii) uso eficaz da TI para a<br />

utilização <strong>de</strong> ativos; iii) uso eficaz da TI para o crescimento;<br />

iv) uso eficaz da TI para flexibilida<strong>de</strong> dos negócios.<br />

Finalmente po<strong>de</strong>-se <strong>de</strong>finir Governança em TIC como o alinhamento<br />

estratégico <strong>de</strong> TIC com o negócio <strong>de</strong> forma que se<br />

obtenha o máximo valor <strong>de</strong>ste através do <strong>de</strong>senvolvimento e<br />

manutenção <strong>de</strong> controles efetivos <strong>de</strong> TIC orientados ao controle<br />

<strong>de</strong> custos, gestão do retorno dos investimentos relacionados e<br />

gestão dos riscos associados (WEILL e ROSS, 2006).<br />

Preten<strong>de</strong>ndo cumprir este objetivo, são muitos os mecanismos<br />

<strong>de</strong> relação entre os processos <strong>de</strong> negócio e os processos<br />

<strong>de</strong> TIC que têm sido gerados pela disciplina <strong>de</strong> Governança<br />

em TIC. O resultado final é uma infinida<strong>de</strong> <strong>de</strong> padrões e boas<br />

práticas, envolvendo: processos, indicadores, perfis, diretrizes,<br />

<strong>de</strong>ntre outros, cuja aplicação geralmente exige muito investimento,<br />

tempo e esforço, em função do formalismo adotado<br />

por estes padrões.<br />

Holm et al. (2006) apresenta uma síntese das intenções <strong>de</strong><br />

melhoria da relação entre a TIC e o negócio mediante a classificação<br />

<strong>de</strong> 17 padrões e ferramentas <strong>de</strong> melhores práticas<br />

existentes em termos <strong>de</strong> variáveis, como: tipo <strong>de</strong> processo e<br />

24 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Da Gestão à Governança em Tecnologia da Informação e Comunicação – TIC


organização. O trabalho citado aborda a investigação <strong>de</strong> como<br />

a Governança em TIC é adotada no caso <strong>de</strong> uma companhia<br />

lí<strong>de</strong>r no mercado mundial <strong>de</strong> biotecnologia em enzimas e<br />

micro-organismos industriais. Neste processo é realizada a<br />

revisão <strong>de</strong> 17 ferramentas <strong>de</strong> Governança em TIC.<br />

Não se <strong>de</strong>seja aqui discutir em <strong>de</strong>talhes os êxitos ou melhorias<br />

que estas ferramentas têm alcançado (em especial ITIL e<br />

COBIT) para os processos <strong>de</strong> suporte ao core business <strong>de</strong> nossas<br />

organizações, contudo preten<strong>de</strong>-se explorar alguns contextos<br />

<strong>de</strong> potencialização <strong>de</strong>stas, na nova abordagem <strong>de</strong> Governança<br />

Ágil em TIC proposta neste trabalho, como fator catalisador<br />

do rompimento do gap entre a TIC e o negócio.<br />

Os mais difundidos mo<strong>de</strong>los <strong>de</strong> Governança em TIC<br />

Nesta seção serão abordados oito mo<strong>de</strong>los <strong>de</strong> Governança<br />

em TIC mais difundidos no mercado, e que são mais frequentemente<br />

mencionados em pesquisas especializadas (MAGA-<br />

LHÃES E PINHEIRO, 2007; COMPUTERWORLD, 2007b), além<br />

do mo<strong>de</strong>lo recentemente proposto por Luna (2009), totalizando<br />

nove mo<strong>de</strong>los.<br />

Este trabalho utilizará a <strong>de</strong>nominação genérica proposta por<br />

Luna (2010): “corpo <strong>de</strong> conhecimento <strong>de</strong> governança em TIC”,<br />

ou, em inglês, Information and Communication Technologies<br />

Governance Body of Knowledge – ICTGBOK, para o conjunto<br />

<strong>de</strong> informações disponíveis no domínio <strong>de</strong> Governança em<br />

TIC, que em parte está representado, neste artigo, <strong>de</strong> forma<br />

sucinta.<br />

Para cada mo<strong>de</strong>lo abordado nesta seção serão vistos: <strong>de</strong>finição,<br />

histórico, foco e consi<strong>de</strong>rações sobre sua adoção.<br />

Ao final <strong>de</strong>sta seção serão abordadas as principais características,<br />

carências, dificulda<strong>de</strong>s e limitações dos mo<strong>de</strong>los apresentados,<br />

que motivaram o <strong>de</strong>senvolvimento <strong>de</strong>ste trabalho.<br />

Antes <strong>de</strong> prosseguir, vale a pena mencionar que algumas<br />

outras abordagens que aparecem em pesquisas sobre mo<strong>de</strong>los<br />

adotados por organizações para iniciativas <strong>de</strong> governança em<br />

TIC (COMPUTERWORLD, 2007b) não serão abordados neste<br />

artigo pelos seguintes motivos:<br />

• Mo<strong>de</strong>los do Project Management Institute (PMI): trata-se<br />

do PMBOK e do PMgBOK, que na análise realizada por este<br />

trabalho foram consi<strong>de</strong>rados como sendo metodologias <strong>de</strong><br />

Gerenciamento <strong>de</strong> Projetos e Gerenciamento <strong>de</strong> Programas<br />

e Portfólio <strong>de</strong> Projetos, respectivamente. E, portanto, apoiam<br />

projetos <strong>de</strong> governança, mas não fazem parte do contexto<br />

central abordado neste tópico (PMI, 2008);<br />

• Six Sigma (6σ): não foi consi<strong>de</strong>rado por tratar-se <strong>de</strong> um<br />

mo<strong>de</strong>lo <strong>de</strong> qualida<strong>de</strong>, expresso através <strong>de</strong> um conjunto <strong>de</strong><br />

práticas originalmente <strong>de</strong>senvolvidas pela Motorola para<br />

melhorar sistematicamente os processos ao eliminar <strong>de</strong>feitos.<br />

Apresenta baixa representativida<strong>de</strong> nas pesquisas e também<br />

não faz parte do contexto central abordado neste tópico (HAR-<br />

RY et al., 2000);<br />

• eSourcing Capability Mo<strong>de</strong>l for Service Provi<strong>de</strong>rs (e-SCM-<br />

SP): não foi abordado em função da baixa representativida<strong>de</strong><br />

com que aparece nas pesquisas e também por se tratar <strong>de</strong> um<br />

framework recente <strong>de</strong> abordagem específica, que é <strong>de</strong>stinado<br />

GEStão DE tI E AGILIDADE<br />

especialmente aos provedores <strong>de</strong> serviço, po<strong>de</strong>ndo, inclusive,<br />

ser utilizado como um apoio para aqueles que oferecem terceirização<br />

(COMPUTERWORLD, 2007a);<br />

• PRINCE2 – Project In a Controlled Environment: também<br />

não foi consi<strong>de</strong>rado por ser um método (não proprietário)<br />

para gerenciamento <strong>de</strong> projetos, <strong>de</strong>senvolvido pelo governo<br />

britânico em 1996. Foi criado em 1989 a partir do PROMPTII,<br />

o qual, por sua vez, surgiu em 1975 e foi adotado em 1979<br />

como padrão para gerenciamento dos projetos <strong>de</strong> sistemas <strong>de</strong><br />

informação do governo inglês. Contudo o PRINCE2 “não é” um<br />

mo<strong>de</strong>lo <strong>de</strong> Governança em TIC, muito embora a OGC – Office<br />

of Government Commerce – sugira a sua aplicação como apoio<br />

à implantação <strong>de</strong> ITIL (BRADLEY, 2002). Além disso, também<br />

apresenta baixa representativida<strong>de</strong> nas pesquisas.<br />

ITIL<br />

ITIL é a abreviação para “Information Technology Infrastructure<br />

Library”, um framework <strong>de</strong> processos <strong>de</strong> gestão <strong>de</strong> TI que surgiu<br />

no fim da década <strong>de</strong> 1980 da necessida<strong>de</strong> <strong>de</strong> se ter processos organizados<br />

e claros. Percebeu-se que as organizações estão cada<br />

vez mais <strong>de</strong>pen<strong>de</strong>ntes da área <strong>de</strong> TI e que é necessário organizar<br />

os fluxos <strong>de</strong> processos neste <strong>de</strong>partamento (ITGI 2009).<br />

Esse mo<strong>de</strong>lo <strong>de</strong> gestão foi formulado pelo British Central<br />

Computer and Telecommunication Agency (CCTA), que<br />

posteriormente foi assimilado pela Secretaria <strong>de</strong> Comércio<br />

do Governo Inglês – Office of Government Commerce (OGC,<br />

2009), a partir <strong>de</strong> pesquisas realizadas com especialistas em<br />

gestão <strong>de</strong> TI, para <strong>de</strong>finir uma melhor forma <strong>de</strong> funcionamento<br />

e gestão das Tecnologias da Informação e Comunicação<br />

(ITSMF, 2009).<br />

ITIL é uma compilação das melhores práticas e processos na<br />

planificação, aprovisionamento e suporte <strong>de</strong> serviços <strong>de</strong> Tecnologia<br />

<strong>de</strong> Informação (ITSMF, 2008) e po<strong>de</strong> ser consi<strong>de</strong>rado<br />

um conjunto <strong>de</strong> boas práticas <strong>de</strong> governança organizado <strong>de</strong><br />

forma sistemática, e, portanto um framework. À medida que as<br />

empresas reconheceram a sua <strong>de</strong>pendência crescente nas TIC<br />

para conseguirem satisfazer os objetivos do negócio e irem ao<br />

encontro às necessida<strong>de</strong>s da empresa, muitos <strong>de</strong>terminaram<br />

que a maior qualida<strong>de</strong> dos serviços <strong>de</strong> TI, e a sua gestão efetiva,<br />

era necessária (EUROCOM, 2006).<br />

A principal vantagem do ITIL, no contexto das “boas práticas”<br />

<strong>de</strong> gestão em TIC, é que os processos <strong>de</strong>scritos são<br />

genéricos – aplicam-se in<strong>de</strong>pen<strong>de</strong>ntemente da tecnologia,<br />

plataforma, tipo ou tamanho do negócio envolvido. Quase<br />

todas as organizações das TIC <strong>de</strong> qualquer tamanho têm um<br />

“help <strong>de</strong>sk”, um método <strong>de</strong> lidar com problemas ou mudanças,<br />

alguma compreensão <strong>de</strong> gestão <strong>de</strong> configuração, níveis<br />

<strong>de</strong> serviço <strong>de</strong> acordo com os clientes, uma maneira <strong>de</strong> lidar<br />

com problemas <strong>de</strong> capacida<strong>de</strong> e disponibilida<strong>de</strong> e uma forma<br />

<strong>de</strong> plano <strong>de</strong> contingência. O foco primário da metodologia<br />

ITIL é possibilitar que área <strong>de</strong> TI seja mais efetiva e proativa,<br />

satisfazendo assim clientes e usuários (ITIL, 2009).<br />

Com a versão atual do ITIL, Versão 3, lançada em 2007, uma<br />

das principais <strong>de</strong>ficiências corrigidas foi um incremento em<br />

matérias que aju<strong>de</strong>m a i<strong>de</strong>ntificar o retorno dos investimentos<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 25


em TI. Um problema muito frequente em governança <strong>de</strong> TI que<br />

era normalmente indicado como um problema para a adoção<br />

efetiva do ITIL. A nova versão é ainda mais concisa do que a<br />

versão anterior, reduzida <strong>de</strong> oito para cinco livros principais<br />

que compõem seu núcleo e vários outros livros que po<strong>de</strong>rão<br />

complementar o ITIL posteriormente.<br />

Seu foco é: em Gerenciamento <strong>de</strong> Serviços <strong>de</strong> TIC.<br />

COBIT<br />

O COBIT – Control Objectives for Information and related<br />

Technology é um framework <strong>de</strong> governança <strong>de</strong> TI apoiado<br />

por um conjunto <strong>de</strong> ferramentas que permite aos gestores<br />

fazer a ponte entre as exigências <strong>de</strong> controle, questões técnicas<br />

e riscos do negócio. Ele permite o <strong>de</strong>senvolvimento <strong>de</strong><br />

políticas claras e boas práticas <strong>de</strong> controle <strong>de</strong> TI em toda a<br />

organização. Além disso, o COBIT enfatiza a conformida<strong>de</strong><br />

regulamentar, ajuda as organizações a aumentar o valor<br />

obtido através da TI, permite o alinhamento e simplifica<br />

sua implementação.<br />

O COBIT representa a visão <strong>de</strong> um grupo <strong>de</strong> experts focado<br />

no estudo <strong>de</strong> Governança em TIC. Trata-se <strong>de</strong> um conjunto<br />

<strong>de</strong> boas práticas sobre processos <strong>de</strong> gerenciamento da TI nas<br />

organizações, que aborda <strong>de</strong>s<strong>de</strong> aspectos técnicos, até processos<br />

e pessoas. Sua estrutura é organizada em processos que<br />

são interligados com o objetivo <strong>de</strong> controlar a TI, através da<br />

formação <strong>de</strong> um framework <strong>de</strong> controle que tem o propósito<br />

<strong>de</strong> assegurar que os recursos <strong>de</strong> TI estarão alinhados com os<br />

objetivos da organização.<br />

O COBIT é baseado na premissa <strong>de</strong> que a TI precisa entregar<br />

a informação que a empresa necessita para atingir seus objetivos,<br />

e por isso, tem como objetivo otimizar os investimentos e<br />

garantir a entrega dos serviços com as <strong>de</strong>vidas métricas.<br />

O princípio do framework do COBIT é vincular as expectativas<br />

dos gestores <strong>de</strong> negócio com as responsabilida<strong>de</strong>s dos<br />

gestores <strong>de</strong> TI. Assim, busca fazer com que a TI seja mais capaz<br />

<strong>de</strong> respon<strong>de</strong>r às necessida<strong>de</strong>s do negócio. O COBIT não se<br />

trata <strong>de</strong> um padrão <strong>de</strong>finitivo, ele tem que ser adaptado para<br />

cada organização.<br />

Segundo o ISACA – Information Systems Audit and Control<br />

Association, a missão do COBIT é “Pesquisar, <strong>de</strong>senvolver,<br />

publicar e promover um conjunto <strong>de</strong> objetivos <strong>de</strong> controle para<br />

tecnologia que seja embasado, atual, internacional e aceito em<br />

geral para o uso do dia-a-dia <strong>de</strong> gerentes <strong>de</strong> negócio e auditores”<br />

(ISACA, 2009a). Para tanto, o COBIT trabalha principalmente<br />

<strong>de</strong>ntro do seguinte conjunto <strong>de</strong> ativida<strong>de</strong>s:<br />

• Alinhamento da TI com o negócio da empresa;<br />

• Definição do papel da TI TI Estratégica ou TI<br />

Operacional;<br />

• Auxilia na organização das ativida<strong>de</strong>s da TI a partir da<br />

adoção <strong>de</strong> um mo<strong>de</strong>lo <strong>de</strong> gestão;<br />

• Ajuda i<strong>de</strong>ntificar quais recursos <strong>de</strong> TI <strong>de</strong>vem ser alavancados<br />

com maior efetivida<strong>de</strong>;<br />

• Define os objetivos e controles gerenciais a serem<br />

observados;<br />

• Estabelece claramente papeis e responsabilida<strong>de</strong>s.<br />

É importante <strong>de</strong>stacar que os princípios básicos da Governança<br />

<strong>de</strong> TI adotados pelo COBIT são:<br />

• Responsabilida<strong>de</strong> corporativa: trata-se <strong>de</strong> pensar e agir pela<br />

perenida<strong>de</strong> da organização, com responsabilida<strong>de</strong> social e<br />

ambiental;<br />

• Prestação <strong>de</strong> contas: relacionado à obrigação <strong>de</strong> prestar<br />

contas;<br />

• Equida<strong>de</strong>: ligado ao tratamento justo e igualitário;<br />

• Transparência: relacionado ao <strong>de</strong>sejo <strong>de</strong> informar.<br />

Em sua versão atual, 4.1, o COBIT po<strong>de</strong> ser usado para reforçar<br />

o trabalho já feito com base em versões anteriores, mas<br />

isso não invalida os trabalhos anteriores. Quando as principais<br />

ativida<strong>de</strong>s estão previstas com iniciativas <strong>de</strong> governança <strong>de</strong><br />

TI, ou quando uma revisão do quadro <strong>de</strong> controle da empresa<br />

é esperada, recomenda-se começar <strong>de</strong> novo com a versão mais<br />

recente do COBIT (ISACA, 2009a).<br />

Seus focos são: Alinhamento entre a TI e o negócio, Controle<br />

Interno e Métricas.<br />

BSC<br />

O Balanced Scorecard – BSC é um mo<strong>de</strong>lo <strong>de</strong> gestão, <strong>de</strong>senvolvido<br />

em 1992 por Robert Kaplan e David Norton da<br />

Harvard Business School, para avaliar o <strong>de</strong>sempenho estratégico<br />

e, consequentemente, gerir o sistema <strong>de</strong> estratégias <strong>de</strong><br />

uma organização, sendo consi<strong>de</strong>rada uma das ferramentas<br />

<strong>de</strong> gran<strong>de</strong> importância na área <strong>de</strong> planejamento estratégico<br />

com o objetivo <strong>de</strong> traduzir estratégia em ação (KAPLAN e<br />

NORTON, 1997).<br />

BSC é uma sigla que po<strong>de</strong> ser traduzida para Indicadores Balanceados<br />

<strong>de</strong> Desempenho, ou ainda para Campos (CAMPOS,<br />

1994), Cenário Balanceado. O termo “Indicadores Balanceados”<br />

se dá ao fato da escolha dos indicadores <strong>de</strong> uma organização<br />

não se restringirem unicamente no foco econômico-financeiro,<br />

as organizações também se utilizam <strong>de</strong> indicadores focados<br />

em ativos intangíveis como: <strong>de</strong>sempenho <strong>de</strong> mercado junto<br />

a clientes, <strong>de</strong>sempenhos dos processos internos e pessoas,<br />

inovação e tecnologia. Isto porque a somatória <strong>de</strong>stes fatores<br />

alavancará o <strong>de</strong>sempenho <strong>de</strong>sejado pelas organizações, consequentemente<br />

criando valor futuro.<br />

Os requisitos para <strong>de</strong>finição <strong>de</strong>sses indicadores tratam dos<br />

processos <strong>de</strong> um mo<strong>de</strong>lo da administração <strong>de</strong> serviços e a<br />

busca pela maximização dos resultados baseados em quatro<br />

perspectivas que refletem a visão e estratégia empresarial:<br />

• Financeira;<br />

• Clientes;<br />

• Processos internos;<br />

• Aprendizado e crescimento.<br />

O BSC não só direciona comportamentos <strong>de</strong>ntro <strong>de</strong> uma<br />

organização, como também monitora o <strong>de</strong>sempenho empresarial<br />

em prol da estratégia. Ele é difundido com sucesso em<br />

várias organizações privadas, públicas e não governamentais<br />

no mundo inteiro. O BSC tem como uma <strong>de</strong> suas funções<br />

traduzir a criação <strong>de</strong> valor financeiro (tangível) a partir dos<br />

26 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Da Gestão à Governança em Tecnologia da Informação e Comunicação – TIC


ativos intangíveis (não financeiros), que se baseia em um<br />

sistema <strong>de</strong> medição <strong>de</strong> <strong>de</strong>sempenho, através da utilização<br />

<strong>de</strong> indicadores e objetivos financeiros <strong>de</strong>rivados da visão e<br />

da estratégia organizacional (KAPLAN e NORTON, 1997).<br />

A relação do BSC com o contexto <strong>de</strong> Gestão em TIC está intimamente<br />

associada à <strong>de</strong>finição <strong>de</strong> metas estratégicas para<br />

organização e ao acompanhamento <strong>de</strong> seu cumprimento por<br />

meio <strong>de</strong> indicadores <strong>de</strong> negócio.<br />

Seu foco é em: Planejamento Estratégico e Gestão por<br />

Indicadores.<br />

IT Flex<br />

A metodologia IT Flex, com sua proposta <strong>de</strong> transformação<br />

da área <strong>de</strong> TI em uma provedora <strong>de</strong> serviços <strong>de</strong> forma continuada<br />

para a organização, parte da estruturação dos diferentes<br />

processos da área em correspondência com a estratégia<br />

<strong>de</strong> negócio da organização. Desta forma, o mo<strong>de</strong>lo procura<br />

prover um mecanismo <strong>de</strong> gerenciamento do <strong>de</strong>sempenho que<br />

possibilita a ela a oportunida<strong>de</strong> <strong>de</strong> fornecer serviços <strong>de</strong> TI com<br />

toda a qualida<strong>de</strong> que os seus clientes requerem, com custos e<br />

níveis <strong>de</strong> serviço associados que alinhem TI às necessida<strong>de</strong>s<br />

das diferentes áreas <strong>de</strong> negócio da organização (MAGALHÃES<br />

E PINHEIRO, 2007).<br />

Quando os serviços <strong>de</strong> TI estão alinhados aos objetivos<br />

estratégicos estabelecidos pela estratégia <strong>de</strong> negócio e otimizados<br />

para todo o ciclo <strong>de</strong> vida do serviço, a organização<br />

consegue associar os custos da área <strong>de</strong> TI ao valor produzido<br />

para o negócio, enxergando a verda<strong>de</strong>ira contribuição<br />

da área <strong>de</strong> TI. Isto é obtido, segundo Magalhães e Pinheiro<br />

(2007), através da aplicação da metodologia IT Flex conforme<br />

<strong>de</strong>scrito a seguir:<br />

• Responsabilida<strong>de</strong> da área <strong>de</strong> TI pelos serviços <strong>de</strong> TI, por meio<br />

da alocação <strong>de</strong> custos baseada na utilização real dos diferentes<br />

serviços <strong>de</strong> TI disponibilizados para as áreas <strong>de</strong> negócio;<br />

• Maior produtivida<strong>de</strong> e satisfação do usuário final, advinda<br />

da automação dos processos <strong>de</strong> TI e do estabelecimento do<br />

autoatendimento;<br />

• Menores custos e maior eficiência, integrando o Service Desk<br />

a toda a infraestrutura <strong>de</strong> TI e gerenciando proativamente o<br />

portfólio <strong>de</strong> serviços <strong>de</strong> TI;<br />

• Relações <strong>de</strong> cooperação entre a área <strong>de</strong> TI e as áreas <strong>de</strong><br />

negócio, através do fornecimento <strong>de</strong> informações sobre como<br />

escolher níveis <strong>de</strong> serviços que melhor atendam às necessida<strong>de</strong>s<br />

da estratégia <strong>de</strong> negócio (não pagando taxas mais altas por<br />

99,99 % <strong>de</strong> disponibilida<strong>de</strong> se o usuário não necessita realmente<br />

<strong>de</strong>sse nível <strong>de</strong> disponibilida<strong>de</strong>) e do gerenciamento <strong>de</strong> nível<br />

<strong>de</strong> serviço em tempo real para evitar violações dos Acordos <strong>de</strong><br />

Nível <strong>de</strong> Serviço estabelecidos com as áreas <strong>de</strong> negócio;<br />

• Crescimento mais rápido e constante, aten<strong>de</strong>ndo consistentemente<br />

as necessida<strong>de</strong>s atuais das áreas <strong>de</strong> negócio e suportando<br />

novas iniciativas do negócio, como a participação em novos<br />

mercados através <strong>de</strong> uma maior capacida<strong>de</strong> <strong>de</strong> escalabilida<strong>de</strong><br />

da estrutura <strong>de</strong> entrega e suporte aos serviços <strong>de</strong> TI, baseada<br />

em um processo <strong>de</strong> gerenciamento <strong>de</strong> suprimentos a<strong>de</strong>quado<br />

à estratégia do negócio;<br />

GEStão DE tI E AGILIDADE<br />

• Governança <strong>de</strong> TI, possibilitando o gerenciamento <strong>de</strong><br />

mudanças e a padronização dos processos mais complexos<br />

relacionados com a área <strong>de</strong> TI.<br />

Seu foco é em: Gerenciamento <strong>de</strong> Serviços <strong>de</strong> TI<br />

COSO<br />

Em 1985, foi criada, nos Estados Unidos, a National Commission<br />

on Fraudulent Financial Reporting (Comissão Nacional sobre<br />

Frau<strong>de</strong>s em Relatórios Financeiros) e seu primeiro objeto <strong>de</strong><br />

estudo foram os controles internos das organizações. Em 1992,<br />

através <strong>de</strong> uma iniciativa privada <strong>de</strong> cinco grupos (American<br />

Accounting Association, The American Institute of Certified Public<br />

Accountants, The Financial Executives Institute, The Institute of<br />

Internal Auditors e The Institute of Management Accountants), foi<br />

publicado o trabalho “Internal Control – Integrated Framework”<br />

(Controles Internos – Um Mo<strong>de</strong>lo Integrado).<br />

Esta publicação tornou-se referência mundial para o estudo<br />

e aplicação dos controles internos. Posteriormente a Comissão<br />

transformou-se em Comitê, que passou a ser conhecido como<br />

C.O.S.O. – The Comitee of Sponsoring Organizations (Comitê<br />

das Organizações Patrocinadoras). O C.O.S.O. é uma entida<strong>de</strong><br />

sem fins lucrativos e <strong>de</strong>dicada à melhoria dos relatórios financeiros<br />

através da ética, efetivida<strong>de</strong> dos controles internos e<br />

governança corporativa (COCURULLO, 2006).<br />

Em 2002, o ato <strong>de</strong> Sarbanes-Oxley foi criado para restaurar<br />

a confiança <strong>de</strong> investidores dos mercados públicos dos Estados<br />

Unidos, <strong>de</strong>vastados por escândalos e lapsos nos negócios<br />

envolvendo governança corporativa. Embora reescrevessem<br />

literalmente as regras <strong>de</strong> contabilização corporativa, bem como<br />

a sua divulgação, as páginas inumeráveis do ato da sustentação<br />

legal seguem uma premissa simples: a governança corporativa<br />

e as práticas éticas <strong>de</strong> negócio já não são mais opcionais em<br />

TI, mas são leis.<br />

O ato Sarbanes-Oxley – SOX representa a parte a mais significativa<br />

<strong>de</strong> uma legislação sobre os negócios, <strong>de</strong>s<strong>de</strong> a última<br />

meta<strong>de</strong> do século, pois evi<strong>de</strong>ncia a contabilização corporativa.<br />

Entretanto, é importante enfatizar que a seção 404 não requer<br />

apenas que as empresas estabeleçam e mantenham uma estrutura<br />

interna a<strong>de</strong>quada ao controle, mas avaliem também<br />

sua eficácia anualmente. Em outras palavras, esta abordagem<br />

é extremamente relevante para aquelas organizações que<br />

começaram o processo <strong>de</strong> conformida<strong>de</strong> e que a TI exerce um<br />

papel vital suportando os componentes <strong>de</strong> sistemas, <strong>de</strong> dados<br />

e <strong>de</strong> infraestrutura, e que são críticos no processo <strong>de</strong> relatório<br />

financeiro (COSO, 2006).<br />

Em 2003 o PCAOB emitiu um padrão propondo que fosse<br />

discutida a importância da TI no contexto <strong>de</strong> controles internos.<br />

A natureza e as características <strong>de</strong> uma empresa <strong>de</strong> TI que faz<br />

uso <strong>de</strong> seu sistema <strong>de</strong> informação afeta o controle interno da<br />

mesma sobre relatórios <strong>de</strong> <strong>de</strong>sempenhos financeiros.<br />

Recentemente vem se usando também a <strong>de</strong>scrição Control<br />

Objectives of Sarbanes Oxley, para a sigla COSO. Como o Internal<br />

Control – Integrated Framework é um mo<strong>de</strong>lo <strong>de</strong> trabalho<br />

muito genérico, com visão <strong>de</strong> auditoria, muitas organizações<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 27


usam o COBIT (Control Objectives for Information and Related<br />

Technology) para aplicar o COSO. Na prática, o que acontece<br />

é que empresas adotam o COSO <strong>de</strong> forma geral, para controles<br />

internos, principalmente financeiros. A área <strong>de</strong> TI, por<br />

sua vez, adota o COBIT como guarda-chuva para diversas<br />

metodologias e melhores práticas indicadas para tecnologia<br />

da informação.<br />

Seu foco é: em Governança Corporativa e Controle Interno.<br />

ISO/IEC 20000<br />

A ISO/IEC 20000 é a primeira norma editada pela ISO<br />

(International Organization for Standardization) e pela IEC<br />

(International Electrotechnical Commission), que versa sobre<br />

gerenciamento <strong>de</strong> serviços <strong>de</strong> TIC. A ISO/IEC 20000 é um<br />

conjunto que <strong>de</strong>fine as melhores práticas <strong>de</strong> gerenciamento<br />

<strong>de</strong> serviços <strong>de</strong> TIC. O seu <strong>de</strong>senvolvimento foi baseado na BS<br />

15000 (British Standard) e tem a intenção <strong>de</strong> ser completamente<br />

compatível com o ITIL. A sua primeira edição ocorreu em<br />

<strong>de</strong>zembro <strong>de</strong> 2005.<br />

O referencial ISO/IEC 20000 i<strong>de</strong>ntifica os requisitos da Gestão<br />

<strong>de</strong> Serviços e é relevante para os responsáveis pela preparação,<br />

implementação ou gestão continuada dos serviços <strong>de</strong> TIC na<br />

organização. As organizações po<strong>de</strong>m assegurar a certificação<br />

dos seus Sistemas <strong>de</strong> Gestão <strong>de</strong> Serviços <strong>de</strong> TIC <strong>de</strong> modo in<strong>de</strong>pen<strong>de</strong>nte,<br />

em conformida<strong>de</strong> com este referencial.<br />

A ISO/IEC 20000 foi <strong>de</strong>senvolvida para respon<strong>de</strong>r às necessida<strong>de</strong>s<br />

<strong>de</strong> uma audiência global e fornecer um entendimento<br />

comum da gestão <strong>de</strong> serviços <strong>de</strong> tecnologias <strong>de</strong> informação e<br />

comunicação em todo o mundo. O escopo <strong>de</strong>sta norma cobre<br />

os aspectos responsáveis por 80% do investimento total em<br />

tecnologias <strong>de</strong> informação e comunicação da gran<strong>de</strong> maioria<br />

das organizações. O ISO/IEC 20000 é publicado em duas partes<br />

e permite aos prestadores <strong>de</strong> serviços compreen<strong>de</strong>rem como<br />

po<strong>de</strong>m alcançar a qualida<strong>de</strong> no serviço prestado aos seus<br />

clientes, internos e externos. A certificação é o resultado da<br />

monitoração do nível <strong>de</strong> serviço face ao padrão, acrescentando<br />

valor real para as organizações não só porque <strong>de</strong>monstram a<br />

qualida<strong>de</strong> dos serviços internos como lhes permite selecionar<br />

parceiros externos a<strong>de</strong>quados (ISO/IEC20000, 2005).<br />

Seu foco é em: certificação <strong>de</strong> organizações sob o aspecto <strong>de</strong><br />

Governança em TIC.<br />

VAL IT<br />

O Val IT é um framework baseado no COBIT e o complementa<br />

<strong>de</strong>s<strong>de</strong> a fase <strong>de</strong> negócios até as perspectivas financeiras, além<br />

<strong>de</strong> auxiliar a todos que têm interesse no valor <strong>de</strong> entrega <strong>de</strong> TI.<br />

Trata-se <strong>de</strong> um framework <strong>de</strong> governança que consiste em um<br />

conjunto <strong>de</strong> princípios orientadores e em um número <strong>de</strong> processos<br />

em conformida<strong>de</strong> com esses princípios, que estão mais<br />

<strong>de</strong>finidos como um conjunto <strong>de</strong> boas práticas <strong>de</strong> gestão.<br />

O Val IT é suportado por publicações e ferramentas operacionais<br />

e fornece orientações para:<br />

• Definir o relacionamento entre a TI e o negócio, além<br />

das funções da organização com as responsabilida<strong>de</strong>s <strong>de</strong><br />

governança;<br />

• Gerenciar o portfólio <strong>de</strong> uma organização <strong>de</strong> TI e permitir<br />

investimentos empresariais;<br />

• Maximizar a qualida<strong>de</strong> dos processos <strong>de</strong> negócios para TI,<br />

permitindo investimentos em negócios com particular ênfase<br />

para a <strong>de</strong>finição dos principais indicadores financeiros, a<br />

quantificação <strong>de</strong> “suaves” prestações e à avaliação global do<br />

risco <strong>de</strong> queda.<br />

O Val IT en<strong>de</strong>reça pressupostos, custos, riscos e resultados<br />

relacionados a um portfólio equilibrado <strong>de</strong> investimentos <strong>de</strong><br />

negócios. Ele também fornece a capacida<strong>de</strong> <strong>de</strong> benchmarking<br />

e permite às empresas trocar experiências sobre as melhores<br />

práticas para gestão <strong>de</strong> valor (ISACA, 2009).<br />

Seu foco é em: Gerenciamento dos Investimentos em TI.<br />

CMMI sob a Perspectiva <strong>de</strong> Governança em TI<br />

O CMMI – Capability Maturity Mo<strong>de</strong>l Integration é uma<br />

evolução do CMM e procura estabelecer um mo<strong>de</strong>lo único<br />

para o processo <strong>de</strong> melhoria corporativo, integrando diferentes<br />

mo<strong>de</strong>los e disciplinas (SEI, 2009).<br />

É um Mo<strong>de</strong>lo <strong>de</strong> referência, criado em 2000 e mantido pela<br />

SEI – <strong>Softwa</strong>re Engineering Institute, que contém práticas<br />

necessárias à evolução da maturida<strong>de</strong> em disciplinas específicas,<br />

como: <strong>Engenharia</strong> <strong>de</strong> Sistemas, <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re,<br />

Desenvolvimento integrado <strong>de</strong> Produtos e Processos, e Fornecimento<br />

<strong>de</strong> Código (subcontratação).<br />

Adota uma abordagem <strong>de</strong> melhoria <strong>de</strong> processos que fornece<br />

às organizações os elementos essenciais <strong>de</strong> processos eficazes<br />

com a finalida<strong>de</strong> <strong>de</strong> melhorar seu <strong>de</strong>sempenho.<br />

A metodologia CMMI po<strong>de</strong> ser vista sob uma perspectiva <strong>de</strong><br />

Governança <strong>de</strong> TI, como um mo<strong>de</strong>lo <strong>de</strong> gestão que organiza<br />

práticas já consi<strong>de</strong>radas efetivas em uma estrutura que visa o<br />

auxílio da organização no estabelecimento <strong>de</strong> priorida<strong>de</strong>s para<br />

melhoria, como também no fornecimento <strong>de</strong> um guia para a<br />

implementação <strong>de</strong>ssas melhorias.<br />

Seu foco é em: Melhoria <strong>de</strong> processos.<br />

MAnGve<br />

O MAnGve – Mo<strong>de</strong>lo Ágil no Apoio à Governança em TIC,<br />

é um mo<strong>de</strong>lo ágil para implantação e melhoria dos processos<br />

e serviços <strong>de</strong> governança em TIC direcionado a organizações<br />

<strong>de</strong> qualquer natureza e tamanho e que provê uma abordagem<br />

<strong>de</strong> ação prática.<br />

Foi concebido por Luna, em 2009, para minimizar a carência<br />

<strong>de</strong> foco prático encontrada nos mo<strong>de</strong>los existentes. Sua gran<strong>de</strong><br />

“ambição” é a <strong>de</strong> complementar o “corpo <strong>de</strong> conhecimento <strong>de</strong><br />

Governança em TIC” já existente e se tornar uma alternativa<br />

à aplicação <strong>de</strong>ste ICTGBOK.<br />

O MAnGve po<strong>de</strong> ser lido como um mo<strong>de</strong>lo baseado em um<br />

ciclo <strong>de</strong> vida ágil, através da transição <strong>de</strong> princípios, valores<br />

e boas práticas das Metodologias Ágeis do paradigma da <strong>Engenharia</strong><br />

<strong>de</strong> <strong>Softwa</strong>re para o domínio <strong>de</strong> Governança em TIC.<br />

Com isso, Luna (2009) sugere que o MAnGve possa atuar como<br />

referência prática para implantação e melhoria <strong>de</strong> processos e<br />

serviços <strong>de</strong> governança em TIC, em organizações <strong>de</strong> qualquer<br />

28 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Da Gestão à Governança em Tecnologia da Informação e Comunicação – TIC


natureza e magnitu<strong>de</strong>, com base no alinhamento dos objetivos<br />

estratégicos da TIC com o negócio da organização.<br />

O MAnGve provê uma abordagem <strong>de</strong> ação prática, adaptativa,<br />

orientada a pessoas, <strong>de</strong> maneira flexível e iterativa<br />

buscando continuamente a simplicida<strong>de</strong>, e se concentra na<br />

contínua reflexão sobre a necessida<strong>de</strong> <strong>de</strong> adaptação à realida<strong>de</strong><br />

das organizações e sobre o enfoque comportamental da equipe<br />

comprometida (MANGVE, 2009).<br />

Seu foco é em: Implantação e melhoria <strong>de</strong> Governança em<br />

TIC.<br />

Uma análise crítica sobre Governança em TIC<br />

A Tabela 1 é o resultado <strong>de</strong> um estudo comparativo dos<br />

mo<strong>de</strong>los explorados neste artigo. Nesta análise procurou-se<br />

evi<strong>de</strong>nciar as características e diferenciais <strong>de</strong> cada mo<strong>de</strong>lo<br />

apontando o foco primário, as principais características e as<br />

carências i<strong>de</strong>ntificadas entre os métodos aqui apresentados.<br />

Conforme po<strong>de</strong> ser percebido no resultado <strong>de</strong>ste estudo<br />

comparativo, muitos dos mo<strong>de</strong>los aqui apresentados findam<br />

não sendo mo<strong>de</strong>los cujo foco primário é a Governança em<br />

TIC, apesar do filtro realizado no início <strong>de</strong>sta pesquisa e comentado<br />

no início da seção anterior. Alguns, inclusive, sequer<br />

estão no contexto <strong>de</strong> Governança. Contudo, todos abordam<br />

aspectos extremamente significativos do contexto <strong>de</strong>sta área<br />

GEStão DE tI E AGILIDADE<br />

do conhecimento, o que sugere que possam ser aplicados com<br />

sucesso <strong>de</strong> forma articulada e combinada, quando necessário.<br />

Cita-se como exemplo a relevância da abordagem do BSC para<br />

a fase <strong>de</strong> preparação da implantação <strong>de</strong> governança, ou ainda<br />

o caso do CMMI quando se trata da melhoria dos processos<br />

<strong>de</strong> governança, uma vez implementados.<br />

Por outro lado, como po<strong>de</strong> ser visto na Tabela 1, uma das<br />

carências mais frequentes nos primeiros oito mo<strong>de</strong>los abordados<br />

é a ausência <strong>de</strong> orientações sobre sua aplicação prática.<br />

O que dificulta em muito a sua adoção por parte das organizações.<br />

Esta carência <strong>de</strong> orientação à ação ocasiona uma<br />

gran<strong>de</strong> dificulda<strong>de</strong> nas organizações em i<strong>de</strong>ntificar por on<strong>de</strong><br />

começar as iniciativas <strong>de</strong> implantação <strong>de</strong> Governança em TIC<br />

(MENDEL & PARKER, 2005). Em muitos casos, esta situação<br />

conduz inevitavelmente a organização à contratação <strong>de</strong> serviços<br />

<strong>de</strong> consultoria especializada, o que, com efeito, requer<br />

altos investimentos e muitas vezes faz com que o processo se<br />

torne moroso.<br />

Ainda é importante observar que o último mo<strong>de</strong>lo abordado –<br />

o MAnGve, além <strong>de</strong> ser recente, foi originado com o objetivo <strong>de</strong><br />

eliminar ou minimizar as carências já i<strong>de</strong>ntificadas nos <strong>de</strong>mais<br />

mo<strong>de</strong>los, o que é um ponto extremamente positivo e relevante.<br />

Neste contexto observam-se iniciativas com o intuito <strong>de</strong> minimizar<br />

as mencionadas limitações ou carências dos mo<strong>de</strong>los citados.<br />

Métodos Foco primário Principais Características Limitações/ Carências<br />

ITIL Governança em TIC Concentra-se no Gerenciamento <strong>de</strong> Serviços <strong>de</strong> TIC. Os processos <strong>de</strong>scritos são<br />

genéricos – aplicam-se in<strong>de</strong>pen<strong>de</strong>ntemente da tecnologia, plataforma, tipo<br />

Não possui método <strong>de</strong> implantação.<br />

Não contém um mapa <strong>de</strong>talhado dos processos.<br />

ou tamanho do negócio envolvido.<br />

Não fornece instruções <strong>de</strong> trabalho.<br />

COBIT Governança em TIC Concentra-se no alinhamento da TIC com o negócio, controle e auditoria dos Está num nível mais genérico que o ITIL.<br />

processos <strong>de</strong> TIC. Abrangente aplicável para a auditoria e controle <strong>de</strong> processos<br />

<strong>de</strong> TIC, <strong>de</strong>s<strong>de</strong> o planejamento da tecnologia até a monitoração e auditoria <strong>de</strong><br />

Não possui método <strong>de</strong> implantação.<br />

Não <strong>de</strong>fine padrões <strong>de</strong> implementação, nem passos, técnicas ou<br />

todos os processos.<br />

procedimentos para aplicação.<br />

BSC Gerenciamento Estratégico Concentra-se no planejamento e gestão estratégica, através do monitoramento Não <strong>de</strong>sce ao nível tático ou operacional, o que gera dificulda<strong>de</strong> <strong>de</strong><br />

<strong>de</strong> indicadores do negócio.<br />

alimentação dos indicadores.<br />

IT Flex Gerenciamento <strong>de</strong> TIC Concentra-se em dotar a área <strong>de</strong> TIC <strong>de</strong> um elevado grau <strong>de</strong> flexibilida<strong>de</strong><br />

Não possui orientações para sua aplicação.<br />

Abordagem superficial e genérica.<br />

fazendo com que colabore com o aumento da adaptabilida<strong>de</strong> da organização.<br />

Não <strong>de</strong>fine passos, técnicas ou procedimentos para aplicação.<br />

COSO Governança Corporativa<br />

Possui como proposta o conceito <strong>de</strong> “Fábrica <strong>de</strong> Serviços <strong>de</strong> TIC”.<br />

Mo<strong>de</strong>lo <strong>de</strong> trabalho para controle interno, muito genérico, com visão <strong>de</strong> Consegue ser mais genérico que o COBIT.<br />

auditoria. Algumas organizações utilizam o COBIT para implantar o COSO. Não <strong>de</strong>fine passos, técnicas ou procedimentos para sua aplicação.<br />

ISO/IEC 20000 Governança em TIC Concentra-se na <strong>de</strong>finição das melhores práticas <strong>de</strong> gerenciamento <strong>de</strong> serviços O alinhamento ao ITIL faz com que her<strong>de</strong> as mesmas carências e<br />

<strong>de</strong> TIC. Orienta o processo <strong>de</strong> certificação organizacional como resultado do<br />

<strong>de</strong> TIC. Complementa o COBIT no que diz respeito à perspectiva financeira e ao<br />

valor <strong>de</strong> entrega <strong>de</strong> TIC.<br />

limitações.<br />

Val IT Governança Corporativa<br />

monitoramente face ao padrão documentado.<br />

Baseado no COBIT, que provê uma estrutura para a governança <strong>de</strong> investimentos O alinhamento ao COBIT faz com que her<strong>de</strong> parte das mesmas carências<br />

e limitações.<br />

Contudo, apresenta um estudo <strong>de</strong> caso completo que po<strong>de</strong> servir <strong>de</strong><br />

CMMI Gerenciamento Processos É uma abordagem <strong>de</strong> melhoria <strong>de</strong> processos que fornece às organizações os<br />

orientação à sua aplicação.<br />

Não é focado em Governança, carecendo <strong>de</strong> alguma a<strong>de</strong>quação neste sentido.<br />

elementos essenciais <strong>de</strong> processos eficazes com a finalida<strong>de</strong> <strong>de</strong> melhorar seu<br />

Possui um guia que orienta a sua aplicação, contudo é muito extenso e<br />

<strong>de</strong>sempenho.<br />

precisa ser instanciado em cada organização para um resultado efetivo.<br />

MAnGve Governança em TIC Implantação e Melhoria <strong>de</strong> Governança em TIC através <strong>de</strong> uma abordagem Sua adaptabilida<strong>de</strong> requer um grau <strong>de</strong> li<strong>de</strong>rança significativo no papel do<br />

prática, flexível, adaptativa e com o foco nas pessoas.<br />

tabela 1. Comparação entre os mo<strong>de</strong>los revisados (Fonte: Elaboração própria)<br />

MAnGveMaster<br />

Grau <strong>de</strong> maturida<strong>de</strong> e auto-organização da Equipe envolvida.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 29


Estas iniciativas estão no estado da arte da Governança em TIC.<br />

O diferencial <strong>de</strong>sta abordagem propõe a aplicação <strong>de</strong> princípios,<br />

valores e boas práticas <strong>de</strong> metodologias ágeis da <strong>Engenharia</strong> <strong>de</strong><br />

<strong>Softwa</strong>re para implantação e melhoria <strong>de</strong> Governança em TIC<br />

nas organizações sob o conceito <strong>de</strong> “Governança Ágil em TIC”<br />

(LUNA, 2010). Esta proposta po<strong>de</strong> ser consi<strong>de</strong>rada uma abordagem<br />

inovadora e bem-vinda para complementar este próprio<br />

ICTGBOK, termo também proposto por Luna (2010).<br />

Conclusões<br />

Nos últimos anos a TIC – Tecnologias da Informação e Comunicação<br />

tem sido objeto <strong>de</strong> investimentos e pesquisa crescente<br />

tanto do meio acadêmico quanto no ambiente organizacional,<br />

<strong>de</strong>mandando altos esforços no aperfeiçoamento <strong>de</strong> mo<strong>de</strong>los <strong>de</strong><br />

gestão e implantação <strong>de</strong> práticas que trouxessem uma maior<br />

competitivida<strong>de</strong> às organizações. Neste cenário a Governança<br />

em TIC tem se <strong>de</strong>stacado como uma opção para o gerenciamento<br />

e controle efetivo das iniciativas <strong>de</strong> TIC nas organizações,<br />

garantindo o retorno <strong>de</strong> investimentos e adição <strong>de</strong> melhorias<br />

aos processos organizacionais.<br />

Este artigo apresentou um breve resgate do surgimento da<br />

Informática, como área do conhecimento. Na sequência, abordou-se<br />

uma sucinta narrativa da evolução da informática até o<br />

que se conhece hoje como Tecnologias da Informação e Comunicação<br />

– TIC. Num momento seguinte, tratou-se a relevância<br />

da Gestão <strong>de</strong> TIC e a evolução do seu papel nas organizações,<br />

chegando até o conceito <strong>de</strong> Governança em TIC.<br />

Referências<br />

ALCALDE, E. L.(1991). Informática básica. São Paulo: Makron Books, 1991.<br />

BERG, C. (2008). Value-DrivenIT,valuedrivenit.com. Cliff Berg Imprints, Reston VA, USA. Disponível<br />

em: . Acesso em: 30/09/2009.<br />

BIS - Bank for International Settlements (2006). Basel II: International Convergence of Capital<br />

Measurementand Capital Standards. Disponível em: .<br />

Acesso em: 22/01/2009.<br />

BRADLEY, K. (2002). Un<strong>de</strong>rstanding PRINCE 2. - SPOCE Project Management Limited - rsms.ac.uk,<br />

2002. Disponível em: < http://www.rsms.ac.uk/up2-may2-2002.pdf >. Acesso em: 03/10/2009.<br />

BRETTONWOODS (1944), Conferência Internacional Monetária <strong>de</strong> Bretton Woods. Disponível em:<br />

http://www.unificado.com.br/calendario/07/bretton.htm>. Acesso em: 22/01/2009.<br />

C.O.S.O. (2006). INTERNAL Control – Integrated Framework. The Committee of Sponsoring<br />

Organizations of the Treadway Commission. Disponível em: < http://www.snai.edu/cn/service/<br />

library/book/0-Framework-final.pdf>. Acesso em: 08/09/2009.<br />

CALAME, P.I.; TALMANT, A. (2001). Questão do Estado no Coração do Futuro - O mecano da<br />

governança. São Paulo. Editora Vozes.<br />

CAMPOS, Vicente Falconi. (1994). Gerenciamento pelas Diretrizes. Revista <strong>de</strong> Administração <strong>de</strong><br />

Empresas. São Paulo, 1994. V. 34, n. 6, p 6-11.<br />

COCURULLO, A. (2006). Gerenciamento <strong>de</strong> Riscos Corporativos. IBGC – Instituto Brasileiro<br />

<strong>de</strong> Governança Corporativa. Disponível em: < http://www.ibgc.org.br/biblioteca/Download.<br />

aspx?CodAcervo=2093 >. Acesso em: 08/09/2009.<br />

COMPUTERWORLD (2005). Notícia: SARBOX é consi<strong>de</strong>rada um presente para área <strong>de</strong> TI.<br />

Posteriormente, este artigo conceituou e <strong>de</strong>limitou o termo<br />

“corpo <strong>de</strong> conhecimento em Governança em TIC”, Information<br />

and Communication Technologies Governance Body of Knowledge<br />

– ICTGBOK. Em seguida foram apresentadas nove abordagens<br />

diferentes no domínio <strong>de</strong> Governança em TIC, apontando<br />

suas principais características, foco, carências e limitações.<br />

Ao final <strong>de</strong>sta revisão sistemática elaborou-se um quadro<br />

comparativo ressaltando as características essenciais e as<br />

principais limitações ou carências <strong>de</strong> cada mo<strong>de</strong>lo abordado.<br />

Por fim, i<strong>de</strong>ntificou-se o surgimento <strong>de</strong> um novo paradigma:<br />

“Governança Ágil em TIC”, proposto e conceituado por Luna<br />

(2009) com o objetivo <strong>de</strong> minimizar ou eliminar boa parte das<br />

carências percebidas nos mo<strong>de</strong>los existentes. A consolidação<br />

<strong>de</strong>sta proposta fica evi<strong>de</strong>nciada pela caracterização do nono<br />

mo<strong>de</strong>lo abordado neste artigo, o MAnGve, cuja proposta é ser<br />

uma alternativa ágil para implantação e melhoria do “Corpo<br />

<strong>de</strong> Conhecimento <strong>de</strong> Governança em TIC” ou ICTGBOK,<br />

existente. Esta proposta po<strong>de</strong> ser consi<strong>de</strong>rada uma abordagem<br />

inovadora e bem-vinda para complementar o ICTGBOK, termo<br />

também proposto por Luna (2009).<br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

Computerworld, 24 <strong>de</strong> novembro <strong>de</strong> 2005 - 14h54. Disponível em: < http://computerworld.uol.<br />

com.br/gestao/2005/11/24/idgnoticia.2006-03-29.9247266501/>. Acesso em: 05/10/2009<br />

COMPUTERWORLD (2007a). Notícia: e-SCM: novo aliado para a governança convergente <strong>de</strong> TI.<br />

Computerworld, 14 <strong>de</strong> fevereiro <strong>de</strong> 2007 - 12h53. Disponível em: . Acesso em: 03/10/2009.<br />

COMPUTERWORLD (2007b). Notícia: Pesquisa revela que 85% das empresas já usam mo<strong>de</strong>los<br />

<strong>de</strong> governança <strong>de</strong> TI no Brasil. Computerworld, 16 <strong>de</strong> outubro <strong>de</strong> 2007 - 11h48. Disponível em:<br />

.<br />

Acesso em: 03/10/2009.<br />

EUROCOM (2006). EUROPEAN COMISSION. Europe’s Information Society. “Research: 9 billion<br />

injection to boost European ICT research”. Disponível em: , Bruxelas. Acesso em: 13/01/2009.<br />

FOINA, P.R. (2001). Tecnologia <strong>de</strong> informação: planejamento e gestão / Paulo Rogério Foina. –<br />

São Paulo: Atlas.<br />

HARRY, MJ; SCHROEDER, R; LINSENMANN, DR. (2000). Six Sigma. questuspoint.pl, 2000. Disponível em: . Acesso em: 03/10/2009.<br />

HOLM, M.L.; KÜHN, M.P.; VIBORG, K.A. (2006). IT Governance: Reviewing 17 IT Governance Tools and<br />

Analysing the Case of Novozymes A/S. HICSS’06 - Proceedings of the 39th Hawaii International<br />

Conference. Disponível em: < http://itu.dk/~petermeldgaard/B19/5_Case_Novozymes_<br />

HICSSpaper.pdf>. Acesso em: 30/09/2009.<br />

30 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Da Gestão à Governança em Tecnologia da Informação e Comunicação – TIC<br />

Dê seu Feedback<br />

sobre esta edição


Continuação: Referências<br />

ISACA (2009). Disponível em: . Acesso em: 04/09/2009.<br />

ISACA (2009a). COBIT Case Studies by Industry. Disponível em:< http://www.isaca.org/<br />

Template.cfm?Section=Case_Studies3&Template=/ContentManagement/ContentDisplay.<br />

cfm&ContentID=50973>. Acesso em: 18/10/2009.<br />

ISO/IEC 20000 Certification web site (2005). Disponível em: . Acesso em: 08/09/2009.<br />

ITGI (2007). Information Technology Governance Institute. CobiT - Control Objectives for<br />

Information and related Technology. 4.1. ed. Rolling Meadows: ITGI.<br />

ITGI (2009). Information Technology Governance Institute. Disponível em: . Acesso em: 13/01/2009.<br />

ITIL (2009). INFORMATION TECHNOLOGY INFRASTRUCTURE LIBRARY. Disponível em: .Acesso em: 10/01/2009.<br />

itSMF (2008), IT Service Management Forum; An Introductory Overview of ITIL® V3. Disponível<br />

em: . itSMF . Acesso em: 23/01/2009.<br />

ItSMF (2009). Information Technology System Management Forum web site.Disponível em: <<br />

http://www.itsmf.net)>. Acesso em: 01/10/2009.<br />

KAPLAN, R.S.; NORTON, D.P. (1997). A Estratégia em Ação: Balanced Scorecard. 22. Edição. Rio <strong>de</strong><br />

Janeiro: Campus.<br />

KENN, Peter G. W. (1996). Guia Gerencial para a tecnologia da informação: Conceitos essenciais e<br />

terminologia para empresas e gerentes. Rio <strong>de</strong> Janeiro: Campus, 1996.<br />

KOSHINO, L. (2004). SERPRO apresenta no Congresso Nacional <strong>de</strong> Informática Pública, em Brasília,<br />

suas soluções em governança <strong>de</strong> TI. Revista Tema - Ano XXVIII - Edição 175, p. 23-25, setembro/<br />

outubro 2004.<br />

LOBATO, D. M. (2000). Administração Estratégica uma visão orientada para a busca <strong>de</strong> vantagens<br />

competitivas. Rio <strong>de</strong> Janeiro: Editoração.<br />

LUFTMAN, J.N.; LEWIS, P.R. e OLDACH, S.H. (1993):“Transforming The Enterprise: The Alignment Of<br />

Business And Information Technology Strategies”. IBM Systems Journal, v.32, n.1, p.198-221, 1993.<br />

LUNA, A. J. H. <strong>de</strong> O. (2009). MAnGve: Um Mo<strong>de</strong>lo para Governança Ágil em Tecnologia da Informação<br />

e Comunicação. Programa <strong>de</strong> Pós-graduação stricto sensu em Ciência da Computação. Centro <strong>de</strong><br />

Informática, Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Pernambuco. Dissertação <strong>de</strong> Mestrado. Disponível em: <<br />

www.cin.ufpe.br/~ajhol/mangve>. Acesso em: 17/12/2009.<br />

GEStão DE tI E AGILIDADE<br />

LUNA, Alexandre J. H. <strong>de</strong> O.; COSTA, Cleyverson P.; <strong>de</strong> MOURA, Hermano P.; NOVAES, Magdala A.;<br />

do NASCIMENTO, César A. D. C. ; (2010). Governança Ágil <strong>de</strong> TIC: rompendo paradigmas. JISTEM<br />

- Journal of Information Systems and Technology Management; 2009. Disponível em: < http://<br />

www.jistem.fea.usp.br/in<strong>de</strong>x.php/jistem/issue/archive >. Acesso em: 17/11/2009.<br />

MAGALHÃES, I. L. E PINHEIRO W. B. (2007). Gerenciamento <strong>de</strong> Serviços <strong>de</strong> TI na Prática: Uma abordagem<br />

com base na ITIL – Editora Novatec – 1ª edição, Cap.2 p86, p214 - ISBN: 978-85-7522-106-8.<br />

MANGVE (2009). Portal do Movimento <strong>de</strong> fomento à Governança Ágil em TIC. Disponível: . Acesso em: 30/09/2009.<br />

MENDEL, T. & PARKER, A. (2005). “Not all ITIL processes are created equal”. Network World, March<br />

16. Disponível em: < http://itpapers.techrepublic.com/abstract.aspx?docid=148585&promo=300<br />

111&tag=wpr.7106,6202>. Acesso em: 02/10/2009.<br />

NORTON, P. (1997). Introdução à Informática. São Paulo: Makron Books.<br />

OGC (2009). Office of Government Commence web site. Disponível em: .<br />

Acesso em: 01/10/2009.<br />

PMI (2008). Gui<strong>de</strong> to the Project Management Body of Knowledge (PMBOK® Gui<strong>de</strong>, 2008, 4th<br />

Edition), Project Management Institute, Newtown Square, PA, vol. 1.<br />

REZZY, O. (2007). Sarbanes-Oxley: Progressive Punishment for Regressive Victimization. Houston<br />

Law Review, Vol. 44, No. 1, p. 95. Disponível em: . Acesso em: 22/01/2009.<br />

SEI. <strong>Softwa</strong>re Engineering Institute (2009). Disponível em: .<br />

Acesso em: 05/09/2009.<br />

SOX (2002). SARBANES , Paul; OXLEY, Michael. Sarbanes-Oxley Act. Congress of United States<br />

of America, 30/07/2002. Disponível em: . Acesso em: 05/10/2009.<br />

STEINBUCH, K. Informatik: Automatische Informationsverarbeitung. (SEG-Nachrichten)<br />

(Technische Mitteilungen <strong>de</strong>r Standard). Berlin, 1957.<br />

UNESCAP – United Nations (2009). An Introduction to good governance by the United Nations<br />

Economic and Social Commission for Asia and the Pacific. Disponível em: . Acesso em: 22/01/2009.<br />

WEILL, P. & ROSS, J. W. (2005). “GOVERNANÇA DE TI - TECNOLOGIA DA INFORMAÇÃO”. 1ª. Edição. São<br />

Paulo. M.Books do Brasil. ISBN: 8589384780.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 31


Planejamento e Gerência<br />

Nesta seção você encontra artigos voltados para o planejamento<br />

e gerência <strong>de</strong> seus projetos <strong>de</strong> software<br />

Ferramentas para Gerência <strong>de</strong> Projetos<br />

Conheça as principais características das ferramentas mais populares<br />

Marco Antônio Pereira Araújo<br />

maraujo@<strong>de</strong>vmedia.com.br<br />

Doutor e Mestre em <strong>Engenharia</strong> <strong>de</strong> Sistemas e<br />

Computação pela COPPE/UFRJ. Especialista em<br />

Métodos Estatísticos Computacionais e Bacharel<br />

em Matemática com Habilitação em Informática<br />

pela UFJF. Professor e Coor<strong>de</strong>nador do curso <strong>de</strong> Bacharelado<br />

em Sistemas <strong>de</strong> Informação do Centro <strong>de</strong><br />

Ensino Superior <strong>de</strong> Juiz <strong>de</strong> Fora. Professor do curso<br />

<strong>de</strong> Bacharelado em Sistemas <strong>de</strong> Informação da<br />

Faculda<strong>de</strong> Metodista Granbery. Professor do curso<br />

<strong>de</strong> Bacharelado em Ciência da Computação da<br />

Faculda<strong>de</strong> Governador Ozanam Coelho. Professor e<br />

Diretor do Curso Superior <strong>de</strong> Tecnologia em Análise<br />

e Desenvolvimento <strong>de</strong> Sistemas da Fundação Educacional<br />

D. André Arcover<strong>de</strong>, Analista <strong>de</strong> Sistemas<br />

da Prefeitura <strong>de</strong> Juiz <strong>de</strong> Fora. Editor da <strong>Engenharia</strong><br />

<strong>de</strong> <strong>Softwa</strong>re Magazine.<br />

Patrícia Lima Quintão<br />

pquintao@gmail.com<br />

Mestre em <strong>Engenharia</strong> <strong>de</strong> Sistemas e Computação<br />

pela COPPE/UFRJ. Especialista em Gerência <strong>de</strong><br />

Informática e Bacharel em Informática pela UFV.<br />

Professora e Coor<strong>de</strong>nadora Pedagógica do curso<br />

<strong>de</strong> Pós Graduação em Segurança da Informação da<br />

Faculda<strong>de</strong> Metodista Granbery. Professora do curso<br />

<strong>de</strong> Bacharelado em Sistemas <strong>de</strong> Informação da Faculda<strong>de</strong><br />

Metodista Granbery e do curso <strong>de</strong> Tecnologia<br />

em Re<strong>de</strong>s <strong>de</strong> Computadores da Faculda<strong>de</strong> Estácio<br />

<strong>de</strong> Sá <strong>de</strong> Juiz <strong>de</strong> Fora. Supervisora <strong>de</strong> Segurança<br />

da Informação da Prefeitura <strong>de</strong> Juiz <strong>de</strong> Fora.<br />

Jurema Florinda Lembe <strong>de</strong> Veiga<br />

jurveiga@hotmail.com<br />

Graduada em Sistemas <strong>de</strong> Informação pela Faculda<strong>de</strong><br />

Metodista Granbery.<br />

No <strong>de</strong>senvolvimento <strong>de</strong> um<br />

projeto existe a necessida<strong>de</strong> <strong>de</strong><br />

um gerenciamento <strong>de</strong> projetos<br />

a<strong>de</strong>quado, aplicando técnicas para o<br />

auxílio do controle das pessoas envolvidas<br />

e dos serviços atribuídos a elas,<br />

preocupando-se com os prazos, custos<br />

e benefícios <strong>de</strong> cada produto.<br />

Para tanto, o uso <strong>de</strong> ferramentas para<br />

gerenciamento <strong>de</strong> projetos é indispensável,<br />

uma vez que contribui para auxiliar<br />

e prover <strong>de</strong> forma rápida e eficiente as<br />

informações necessárias para o correto<br />

controle e acompanhamento on-line do<br />

trabalho realizado.<br />

Nesse contexto, este artigo <strong>de</strong>staca<br />

quatro ferramentas para gerenciamento<br />

<strong>de</strong> projetos existentes no mercado:<br />

o MS Project - um sistema <strong>de</strong>sktop<br />

<strong>de</strong>senvolvido pela Microsoft; o Gantt<br />

Project - um sistema <strong>de</strong>sktop, gratuito <strong>de</strong><br />

32 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Ferramentas para Gerência <strong>de</strong> Projetos<br />

De que se trata o artigo?<br />

Este artigo apresenta uma visão abrangente das<br />

ferramentas <strong>de</strong> gerenciamento <strong>de</strong> projetos MS<br />

Project, Gantt Project, dotProject e Project<br />

Open.<br />

Para que serve?<br />

Apresentar essas ferramentas, <strong>de</strong>stacando como po<strong>de</strong>m<br />

auxiliar e prover <strong>de</strong> forma rápida e eficiente as<br />

informações necessárias para um efetivo controle e<br />

acompanhamento on-line do trabalho realizado.<br />

Em que situação o tema é útil?<br />

Conhecer ferramentas <strong>de</strong> gerenciamento <strong>de</strong><br />

projetos é cada vez mais importante na medida<br />

em que uma organização avança em seu nível <strong>de</strong><br />

maturida<strong>de</strong> <strong>de</strong> gerenciamento <strong>de</strong> projetos. Nesse<br />

contexto, a utilização <strong>de</strong>sse tipo <strong>de</strong> ferramenta<br />

propicia padronização <strong>de</strong> métodos e processos e<br />

a disponibilização <strong>de</strong> informações em tempo real<br />

ao alcance <strong>de</strong> toda a equipe do projeto, aumentando<br />

a qualida<strong>de</strong> do gerenciamento e as chances<br />

<strong>de</strong> alcançar os objetivos traçados.<br />

código aberto; o dotProject - um sistema<br />

<strong>de</strong>sktop e distribuído sob a licença GNU-<br />

GPL; e o Project Open - um aplicativo <strong>de</strong>


código aberto baseado na Web, ressaltando sua importância<br />

no auxílio para a gerência <strong>de</strong> projetos.<br />

Serão apresentadas as características principais <strong>de</strong> cada<br />

ferramenta, como calendários, <strong>de</strong>finição <strong>de</strong> tarefas, gráficos<br />

utilizados, serviço <strong>de</strong> envio <strong>de</strong> e-mail e o tipo <strong>de</strong> licenciamento,<br />

além <strong>de</strong> traçar um comparativo entre elas.<br />

Ferramentas para Gerenciamento <strong>de</strong> Projetos<br />

A adoção <strong>de</strong> ferramentas <strong>de</strong> gerenciamento <strong>de</strong> projetos pelas<br />

organizações efetivamente gera resultados positivos, propiciando<br />

padronização <strong>de</strong> métodos e processos <strong>de</strong> trabalho,<br />

além da disponibilização <strong>de</strong> informações em tempo real ao<br />

alcance <strong>de</strong> toda a equipe envolvida no projeto, aumentando<br />

a qualida<strong>de</strong> do gerenciamento e as chances <strong>de</strong> alcançar os<br />

objetivos traçados.<br />

A seguir são apresentadas <strong>de</strong> forma sucinta as quatro ferramentas<br />

<strong>de</strong> gerenciamento <strong>de</strong> projetos propostas para este<br />

artigo. São elas: o MS Project, o Gantt Project, o dotProject e<br />

o Project Open.<br />

Gantt Project<br />

O Gantt Project é uma ferramenta <strong>de</strong> gerenciamento <strong>de</strong> projeto<br />

<strong>de</strong> acesso gratuito, <strong>de</strong> código aberto, baseado no gráfico <strong>de</strong><br />

Gantt. O software é um sistema <strong>de</strong>sktop que possui interface<br />

<strong>de</strong> fácil entendimento, conforme mostrado na Figura 1, que<br />

representa a tela inicial do Gantt Project, com todos os seus<br />

recursos iniciais para começar a cadastrar as informações <strong>de</strong><br />

um projeto.<br />

Figura 1. Tela inicial do Gantt Project<br />

Esta ferramenta possui o recurso <strong>de</strong> dividir o projeto em<br />

uma árvore <strong>de</strong> tarefas e atribuí-las ao responsável <strong>de</strong> cada<br />

uma, po<strong>de</strong>ndo criar <strong>de</strong>pendências entre as tarefas, além da<br />

geração <strong>de</strong> relatórios nos formatos PDF e HTML, associação<br />

com aplicativos <strong>de</strong> planilha eletrônica, intercâmbio com o<br />

Microsoft Project, envio <strong>de</strong> e-mail para pessoas diretamente<br />

envolvidas no projeto, <strong>de</strong>finição <strong>de</strong> calendários com feriados,<br />

e <strong>de</strong>finição <strong>de</strong> novos atributos para as ativida<strong>de</strong>s.<br />

O Gantt Project está traduzido para o português do Brasil,<br />

e trata-se <strong>de</strong> uma aplicação <strong>de</strong>senvolvida em Java e que roda<br />

em Windows, Linux, MacOSX e outros sistemas operacionais<br />

que suportem a linguagem Java. O gran<strong>de</strong> <strong>de</strong>staque <strong>de</strong>ssa<br />

ferramenta é sua gran<strong>de</strong> facilida<strong>de</strong> <strong>de</strong> uso e a clareza da interface.<br />

É recomendada para situações em que a <strong>de</strong>finição e<br />

GEStão DE PRojEtoS<br />

acompanhamento do cronograma é importante, assim como<br />

a necessida<strong>de</strong> <strong>de</strong> usá-lo em diversos sistemas operacionais e<br />

sua facilida<strong>de</strong> <strong>de</strong> uso.<br />

dotProject<br />

O dotProject é uma ferramenta <strong>de</strong> gerência <strong>de</strong> projetos <strong>de</strong><br />

software livre e código aberto, distribuído sob a licença GNU-<br />

GPL, ou seja, os seus usuários po<strong>de</strong>m copiar gratuitamente a<br />

ferramenta, fazer a instalação, fazer alterações para melhorá-la<br />

e até mesmo distribuí-la novamente <strong>de</strong>s<strong>de</strong> que a licença seja<br />

mantida.<br />

O dotProject tem como objetivo proporcionar ao gerente<br />

<strong>de</strong> projeto uma ferramenta para gerenciar e compartilhar as<br />

tarefas, horários, datas, e-mail e comunicação, <strong>de</strong>ntre outras,<br />

conforme mostra a Figura 2. Esta ferramenta é utilizada em<br />

várias aplicações e ambientes, <strong>de</strong>s<strong>de</strong> pequenos escritórios,<br />

pessoas que querem gerir a sua própria carga <strong>de</strong> trabalho,<br />

empresas, <strong>de</strong>partamentos governamentais, organizações sem<br />

fins lucrativos e escolas.<br />

Figura 2. Tela <strong>de</strong> um projeto no dotProject<br />

Essa ferramenta é baseada na Web, e foi <strong>de</strong>senvolvida em<br />

PHP, mas também po<strong>de</strong> ser instalada em Windows, e po<strong>de</strong><br />

ser utilizada em diferentes sistemas operacionais. Tem como<br />

diferencial a sua operação via Web e o uso <strong>de</strong> um banco <strong>de</strong><br />

dados SQL, proporcionando bastante flexibilida<strong>de</strong> no uso<br />

dos dados.<br />

O seu funcionamento requer um servidor Web integrado com<br />

suporte PHP e MYSQL e um navegador Web. O dotProject é<br />

recomendado para <strong>de</strong>partamentos ou empresas em situações<br />

cujo o foco é a agenda <strong>de</strong> tarefas dos membros da equipe,<br />

gerenciamento da documentação associada aos projetos e<br />

apropriação <strong>de</strong> horas trabalhadas, com menos ênfase na manipulação<br />

<strong>de</strong> cronograma.<br />

Project Open<br />

O Project Open é um aplicativo <strong>de</strong> código aberto baseado na<br />

Web, e é usado por várias empresas que utilizam o sistema para<br />

gerenciar seus negócios. O software permite o monitoramento<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 33


e o planejamento do projeto, permite a utilização <strong>de</strong> gráficos<br />

<strong>de</strong> Gantt através <strong>de</strong> interface com outras ferramentas, como a<br />

Gantt Project, calcula perdas e lucros por projetos e clientes, e<br />

<strong>de</strong>fine os orçamentos do projeto baseados em tempo ou custo<br />

absoluto.<br />

O software tem como principais objetivos a administração<br />

dos custos <strong>de</strong> um projeto e a colaboração entre os membros da<br />

equipe, possuindo uma área colaborativa do tipo Wiki (página<br />

Web editável pelo usuário; i<strong>de</strong>al para trabalho colaborativo) e<br />

chat. Os projetos po<strong>de</strong>m ser estruturados em qualquer nível<br />

<strong>de</strong> subprojetos e projetos-tarefas. Alguns <strong>de</strong>stes componentes<br />

são mostrados na Figura 3.<br />

Figura 3. Tela ProjectOpen<br />

Os projetos e subprojetos permitem atribuir permissões <strong>de</strong><br />

acesso para os membros envolvidos, enquanto que os projetos/tarefas<br />

servem para monitorar o projeto e para registrar<br />

o avanço e <strong>de</strong>dicação dos colaboradores. A ferramenta possui<br />

ainda um importador <strong>de</strong> contatos do Outlook, arquivo <strong>de</strong><br />

armazenamento do projeto, chat, notícias, pesquisa <strong>de</strong> texto<br />

completo, <strong>de</strong>ntre outras funcionalida<strong>de</strong>s.<br />

A ferramenta trabalha com os bancos <strong>de</strong> dados PostgreSQL<br />

e Oracle, não está disponível em português, mas como se<br />

trata <strong>de</strong> software livre, po<strong>de</strong> ser adaptada às necessida<strong>de</strong>s<br />

da empresa. O Project Open é uma ferramenta apropriada<br />

para empresas que estão dispostas a investir em tecnologias<br />

alternativas e procuram um sistema sólido, focado nos custos<br />

e na colaboração das equipes.<br />

Microsoft Project<br />

O Microsoft Project (MS Project) é um software <strong>de</strong>senvolvido<br />

pela Microsoft, cuja primeira versão foi lançada em 1985, e<br />

<strong>de</strong>s<strong>de</strong> então tem sofrido inúmeras modificações que vão <strong>de</strong>s<strong>de</strong><br />

o layout a requisitos funcionais, aumentado assim a oferta <strong>de</strong><br />

serviços e recursos com relação à gerência <strong>de</strong> projetos.<br />

34 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Ferramentas para Gerência <strong>de</strong> Projetos<br />

O MS Project é um software <strong>de</strong>sktop <strong>de</strong>senvolvido para<br />

gerenciar projetos simples ou complexos, e permite planejar,<br />

organizar e gerenciar as tarefas e recursos para alcançar um<br />

objetivo <strong>de</strong>finido com restrições <strong>de</strong> tempo, custos e recursos.<br />

É uma ferramenta utilizada para o gerenciamento <strong>de</strong> projetos,<br />

e oferece vários recursos para auxiliar o usuário nessa tarefa,<br />

fornecendo a possibilida<strong>de</strong> <strong>de</strong> melhor controle <strong>de</strong> suas ativida<strong>de</strong>s,<br />

mais segurança, agilida<strong>de</strong> e eficácia em seus processos,<br />

além <strong>de</strong> possuir uma interface gráfica simples e <strong>de</strong> fácil uso,<br />

mesmo para quem não conheça a ferramenta (FIGUEIREDO<br />

e FIGUEIREDO, 2001).<br />

O software possui um ambiente padrão <strong>de</strong> trabalho chamado<br />

Gráfico <strong>de</strong> Gantt, a partir do qual se po<strong>de</strong> ter uma visualização<br />

mais ampla e <strong>de</strong>talhada do projeto, que se baseia no mo<strong>de</strong>lo<br />

<strong>de</strong> diagrama <strong>de</strong> re<strong>de</strong>, utiliza tabelas no processo <strong>de</strong> entrada<br />

<strong>de</strong> dados, e as relações <strong>de</strong> procedência entre as tarefas são do<br />

tipo fim-início (a segunda tarefa é iniciada quando a primeira<br />

estiver concluída), fim-fim (as duas tarefas terminam ao mesmo<br />

tempo), início-início (ambas as tarefas iniciam ao mesmo<br />

tempo) e início-fim (acontece quando o término <strong>de</strong> uma tarefa<br />

<strong>de</strong>pen<strong>de</strong> do início da tarefa seguinte).<br />

O MS Project permite que as tarefas ocorram <strong>de</strong> forma recorrente,<br />

possui um recurso que permite agrupar, classificar e<br />

filtrar tarefas, um conjunto padrão <strong>de</strong> relatórios, mas o usuário<br />

po<strong>de</strong> criar seus próprios relatórios, e permite a inclusão <strong>de</strong><br />

campos do usuário.<br />

O software permite ainda que sejam <strong>de</strong>finidos a semana e<br />

expediente <strong>de</strong> trabalho, os feriados e o uso <strong>de</strong> datas programadas<br />

para as tarefas. Os recursos, assim como os custos do<br />

projeto, estão ligados diretamente às tarefas. Como padrão, o<br />

MS Project agenda todas as tarefas a começarem na data <strong>de</strong><br />

início do projeto (a menos que se especifique algo diferente),<br />

e calcula a data <strong>de</strong> término como base na última tarefa a ser<br />

concluída.<br />

Outras características principais são a capacida<strong>de</strong> <strong>de</strong> gerenciar<br />

e enten<strong>de</strong>r efetivamente as agendas do projeto, obter<br />

produtivida<strong>de</strong> rapidamente, aproveitar dados existentes, criar<br />

gráficos e diagramas profissionais, comunicar informações<br />

com eficiência, obter maior controle sobre os recursos e finanças,<br />

acessar rapidamente informações diversas, controlar<br />

os projetos e personalizar a ferramenta <strong>de</strong> acordo com suas<br />

necessida<strong>de</strong>s, além <strong>de</strong> obter ajuda quando necessário.<br />

Quadro Comparativo entre as Ferramentas<br />

Na Tabela 1 é feito um comparativo das ferramentas apresentadas,<br />

no qual é possível ver as informações básicas <strong>de</strong><br />

cada uma <strong>de</strong>las.<br />

Percebe-se que as quatro ferramentas possuem igualmente<br />

recursos <strong>de</strong> calendário, relatórios e envio <strong>de</strong> e-mail. Enquanto<br />

o MS Project possui tipo <strong>de</strong> licença paga, os outros três possuem<br />

licença gratuita. Quanto à interface, a do Project Open<br />

é <strong>de</strong> uso mais complexo, comparada às <strong>de</strong>mais. Em relação à<br />

instalação, o Gantt e o MS Project são mais simples. Gantt Project<br />

e MS Project são acessíveis através do <strong>de</strong>sktop, enquanto<br />

dotProject e Project Open necessitam <strong>de</strong> um servidor Web. Por


RECURSOS<br />

FERRAMENTA<br />

GEStão DE PRojEtoS<br />

Gantt Project dotProject Project Open MS Project<br />

Interface Gráfica Simples Simples Complexa Simples<br />

Instalação Simples Complexa Complexa Simples<br />

Tipo <strong>de</strong> Licença Gratuita Gratuita (GNU-GPL) Gratuita Paga<br />

Acessibilida<strong>de</strong> Desktop Web Web<br />

Gantt<br />

Desktop<br />

Intercâmbio MS Project Não<br />

Project Gantt Project<br />

Gráfico Utilizado Gráfico <strong>de</strong> Gantt Gráfico <strong>de</strong> Gantt Não Gráfico <strong>de</strong> Gantt<br />

Calendário Sim Sim Sim Sim<br />

Relatórios Sim Sim Sim Sim<br />

Envio <strong>de</strong> e-mail Sim Sim Sim Sim<br />

tabela 1. Quadro comparativo entre as ferramentas<br />

fim, enquanto o Project Open não disponibiliza diretamente<br />

o Gráfico <strong>de</strong> Gantt para a realização <strong>de</strong> sequência <strong>de</strong> tarefas,<br />

este gráfico é utilizado pelas três outras ferramentas.<br />

Um exemplo prático<br />

Agora que os conceitos relativos às ferramentas já foram<br />

apresentados, po<strong>de</strong>remos enten<strong>de</strong>r como eles são aplicados<br />

na prática através <strong>de</strong> um projeto no MS-Project.<br />

Como o gerenciamento <strong>de</strong> projetos envolve muitas etapas,<br />

o gerente <strong>de</strong> projetos <strong>de</strong>ve saber controlar todas as etapas do<br />

projeto <strong>de</strong>s<strong>de</strong> o planejamento até a sua conclusão. O MS Project<br />

vem auxiliar o gerente no seu trabalho, possibilitando planejar,<br />

controlar e comandar o projeto <strong>de</strong> forma rápida e eficiente,<br />

aumentando as chances <strong>de</strong> sucesso e oferecer um produto <strong>de</strong><br />

qualida<strong>de</strong> ao usuário final.<br />

A Figura 4 <strong>de</strong>staca os principais elementos do ambiente MS<br />

Project:<br />

• Menu Principal: é a barra que contém todos os comandos<br />

do MS Project.<br />

• Barra <strong>de</strong> Ferramentas: é a barra que contém todos os comandos<br />

mais utilizados, e po<strong>de</strong> ser personalizada pelo usuário <strong>de</strong><br />

acordo as suas necessida<strong>de</strong>s.<br />

• Barra <strong>de</strong> Tarefas: contém opções para as tarefas mais utilizadas<br />

pelo usuário.<br />

• Área <strong>de</strong> Tabelas: é on<strong>de</strong> são cadastradas as tarefas do projeto,<br />

com nome, duração, data <strong>de</strong> início e <strong>de</strong> fim, e tarefas <strong>de</strong><br />

precedência.<br />

• Gráfico <strong>de</strong> Gantt: nessa área aparecem as visualizações<br />

gráficas das tarefas à medida que são <strong>de</strong>scritas e vinculadas<br />

umas às outras.<br />

Iniciar um Projeto<br />

Antes <strong>de</strong> iniciar o projeto, é necessário conhecer alguns<br />

conceitos básicos e importantes da ferramenta que ajudarão<br />

a entendê-la melhor:<br />

• Tarefas são todas as fases do projeto, e possuem código, nome,<br />

duração, tarefa prece<strong>de</strong>nte, data <strong>de</strong> início e fim, e po<strong>de</strong>m ser<br />

do tipo fim-fim, fim-início, início-início e início-fim.<br />

• Recurso é toda pessoa que trabalha diretamente no<br />

projeto.<br />

• Custo é o valor gasto na compra <strong>de</strong> material que será usado<br />

no projeto, e <strong>de</strong>ve ser <strong>de</strong>finido diretamente na tarefa.<br />

• Duração é o tempo necessário para completar a tarefa, que<br />

po<strong>de</strong> exigir horas, dias, semanas ou meses, e quanto maior o<br />

tempo, maior será o custo do projeto.<br />

Figura 4. Ambiente do MS Project<br />

Para criação do projeto, será usado o exemplo da Tabela 2,<br />

que se refere às etapas <strong>de</strong> construção da fundação <strong>de</strong> uma casa.<br />

Este exemplo está apresentado em dias, mas po<strong>de</strong>ria estar em<br />

horas, semanas ou meses.<br />

Definir o Projeto<br />

Para criar o projeto, basta clicar em Define the Project (Definir<br />

o Projeto) na barra <strong>de</strong> tarefas. O programa irá abrir uma tela<br />

pedindo que seja informada a data <strong>de</strong> início do projeto. Como<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 35


padrão, o MS Project usa a data atual como data <strong>de</strong> início<br />

do projeto, caso contrário, outra data <strong>de</strong>ve ser informada. A<br />

Figura 5 apresenta o calendário para escolha da data <strong>de</strong><br />

início do projeto.<br />

Figura 5. Definir a data <strong>de</strong> início do projeto<br />

CÓDIGO NOME DA TAREFA DURAÇÃO PRECEDÊNCIA<br />

1 Preparar o terreno 1d 0<br />

2 Desenhar a planta no chão terreno 1d 1<br />

3 Cavar o terreno conforme o <strong>de</strong>senho 2d 2<br />

4 Preparar a massa 1d 3<br />

5 Colocar a massa nos buracos 2d 4<br />

6 Esperar a massa secar 3d 5<br />

7 Fim fundação 0d 6<br />

tabela 2. Tarefas do projeto<br />

Definir as Horas <strong>de</strong> Trabalho<br />

Depois <strong>de</strong> <strong>de</strong>finida a data <strong>de</strong> início, po<strong>de</strong>-se <strong>de</strong>finir as horas <strong>de</strong><br />

trabalho clicando em Define General Working Times (Definir Horas<br />

<strong>de</strong> Trabalho) na barra <strong>de</strong> tarefas, conforme mostra a Figura 6.<br />

Figura 6. Definir as horas <strong>de</strong> trabalho do projeto<br />

Como padrão, o MS Project usa o calendário <strong>de</strong> oito horas<br />

diárias <strong>de</strong> trabalho <strong>de</strong> segunda a sexta-feira, contudo, as horas<br />

<strong>de</strong> trabalho po<strong>de</strong>m variar <strong>de</strong> acordo as necessida<strong>de</strong>s do projeto,<br />

36 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Ferramentas para Gerência <strong>de</strong> Projetos<br />

ou seja, fica a critério do gerente <strong>de</strong>finir as horas e os dias<br />

<strong>de</strong> trabalho. Nessa fase são <strong>de</strong>finidos ainda os dias <strong>de</strong> folga,<br />

feriados, semanas <strong>de</strong> trabalho, que são editáveis diretamente<br />

no próprio calendário ou ainda criar um novo calendário <strong>de</strong><br />

acordo as necessida<strong>de</strong>s do projeto.<br />

Listar as Tarefas do Projeto<br />

Conforme <strong>de</strong>scrito anteriormente, tarefas são todas as fases<br />

do projeto e po<strong>de</strong>m ser do tipo fim-fim, fim-início, início-fim e<br />

início-início. Para listar as tarefas basta clicar em List the Tasks<br />

in the Project (Listar as Tarefas do Projeto) na barra <strong>de</strong> tarefas,<br />

<strong>de</strong>pois é só começar a cadastrar as tarefas. A Figura 7 mostra<br />

as tarefas do projeto que foram cadastradas.<br />

Figura 7. Listar as tarefas do projeto<br />

À medida que as tarefas do projeto forem sendo listadas na<br />

área correspon<strong>de</strong>nte, elas serão representadas graficamente<br />

no gráfico <strong>de</strong> Gantt <strong>de</strong> acordo com a sua duração, conforme<br />

mostra a Figura 8.<br />

Figura 8. Tarefas do projeto e gráfico <strong>de</strong> Gantt<br />

O próximo passo, <strong>de</strong>ntro da fase <strong>de</strong> listar tarefas, é organizar<br />

o projeto <strong>de</strong> acordo com a hierarquia das tarefas; para<br />

isso, é necessário selecionar a opção Organize Tasks Into Phases<br />

(Organizar as Tarefas em Fases), e selecionar as tarefas que se<br />

tornarão subtarefas. Com as tarefas selecionadas, clique na seta<br />

que se encontra no lado esquerdo da Barra <strong>de</strong> Tarefas, que elas<br />

se ajustarão automaticamente (Figura 9).<br />

Figura 9. Hierarquia das tarefas


As datas das tarefas po<strong>de</strong>m ser alteradas sempre que necessário<br />

sem afetar o projeto, pois o Project reagendará automaticamente<br />

a duração das tarefas caso a data <strong>de</strong> início, a duração<br />

ou data <strong>de</strong> término forem alteradas.<br />

Criar Dependência Entre as Tarefas<br />

Após seguir todos os passos <strong>de</strong>scritos anteriormente, <strong>de</strong>vese<br />

criar as <strong>de</strong>pendências entre as tarefas. Na Barra <strong>de</strong> Tarefas<br />

<strong>de</strong>ve-se clicar na opção Schedule Tasks (Dependência Entre<br />

Tarefas), e será aberta uma lista explicando os tipos <strong>de</strong> <strong>de</strong>pendências<br />

que o Project oferece. Após isso, <strong>de</strong>vem-se selecionar<br />

as tarefas <strong>de</strong>pen<strong>de</strong>ntes e clicar no tipo <strong>de</strong> <strong>de</strong>pendência <strong>de</strong>sejada.<br />

Dessa maneira, as tarefas se ajustarão automaticamente<br />

no gráfico <strong>de</strong> Gantt, conforme a Figura 10.<br />

Para quebrar a <strong>de</strong>pendência já criada, basta selecionar as<br />

tarefas <strong>de</strong>sejadas e clicar no ícone <strong>de</strong> quebra <strong>de</strong> <strong>de</strong>pendência<br />

que se ajustará automaticamente no gráfico. Com a criação<br />

das <strong>de</strong>pendências entre as tarefas, é possível ter uma visão<br />

mais abrangente do planejamento do projeto e saber também<br />

quantos dias durará a sua execução.<br />

Figura 10. Dependência entre tarefas<br />

Adicionar Recursos ao Projeto<br />

Após a criação das tarefas, po<strong>de</strong>-se adicionar os recursos às<br />

tarefas para que elas possam ser executadas. Para isso, <strong>de</strong>ve-se<br />

clicar na opção Resource Sheet na Barra <strong>de</strong> Tarefas, que abrirá<br />

uma tela com todas as informações dos recursos. A Figura 11<br />

mostra alguns recursos inseridos com as informações básicas,<br />

tais como nome, tipo do recurso, unida<strong>de</strong> máxima, custo por uso<br />

do recurso, <strong>de</strong>ntre outras informações que po<strong>de</strong>m ser editáveis<br />

pelo usuário.<br />

Figura 11. Adicionar recursos ao projeto<br />

Com os recursos adicionados ao projeto, o próximo passo é<br />

adicioná-los às tarefas. Para isso, basta dar um duplo clique<br />

na tarefa em que se quer adicionar o recurso, em seguida, o<br />

GEStão DE PRojEtoS<br />

programa abrirá uma tela com informações sobre a tarefa. Na<br />

aba Resources (Recursos), em Resources Name (Nome do Recurso)<br />

é possível escolher o recurso inserido anteriormente para a<br />

tarefa <strong>de</strong>sejada, e também outras opções oferecidas. Os recursos<br />

alocados às tarefas aparecerão no gráfico <strong>de</strong> Gantt, conforme a<br />

Figura 12.<br />

Figura 12. Recursos alocados as tarefas<br />

Após a conclusão <strong>de</strong> todo o planejamento <strong>de</strong>scrito, <strong>de</strong>ve-se<br />

salvar as informações do projeto que serão utilizadas em sua<br />

fase <strong>de</strong> execução. Para isso, basta clicar em File (Arquivo) no<br />

menu principal, e em seguida clicar Save (Salvar).<br />

Salvar a Linha <strong>de</strong> Base do Projeto<br />

A linha <strong>de</strong> base do projeto é uma maneira <strong>de</strong> salvar o<br />

projeto a fim <strong>de</strong> fazer futuras comparações, ou seja, se salva<br />

o projeto <strong>de</strong> forma que no <strong>de</strong>correr, ou término do projeto,<br />

seja possível fazer uma comparação do previsto/realizado<br />

do planejamento inicial com o atual. Como exemplo, po<strong>de</strong>se<br />

usar o projeto simulado neste estudo, o custo inicial da<br />

areia, que po<strong>de</strong>ria aumentar por motivos <strong>de</strong> inflação, fazendo<br />

assim com que ocorram mudanças no planejamento<br />

inicial do projeto.<br />

Para salvar a linha <strong>de</strong> base do projeto, basta clicar em<br />

Track (trilha), em seguida, escolher a opção Save a Baseline<br />

Plan to Compare With Later Versions (Salvar Linha <strong>de</strong> Base do<br />

Projeto para Comparar com Futuras Versões). Na barra <strong>de</strong><br />

tarefas aparecerá uma tela explicando por que é importante<br />

fazer esse procedimento, em seguida clica-se no botão Save<br />

Baseline (Salvar Linha <strong>de</strong> Base). A Figura 13 mostra os procedimentos<br />

<strong>de</strong>scritos.<br />

É importante lembrar que o MS Project permite salvar até<br />

onze linhas <strong>de</strong> base do projeto. Na próxima vez que o projeto<br />

for aberto, o Project irá perguntar se é necessário salvar uma<br />

nova linha <strong>de</strong> base, ou atualizar a base já existente do projeto,<br />

pois é possível que o anterior tenha ficado obsoleto.<br />

Diagrama <strong>de</strong> Re<strong>de</strong> e Uso <strong>de</strong> Tarefas<br />

No MS Project, o projeto po<strong>de</strong> ser visualizado <strong>de</strong> várias formas,<br />

uma <strong>de</strong>las é através do Diagrama <strong>de</strong> Re<strong>de</strong>, ou Diagrama<br />

<strong>de</strong> Precedências, que exibe a precedência entre as tarefas. Para<br />

acessar o diagrama, clique em Network Diagram (Diagrama <strong>de</strong><br />

Re<strong>de</strong>) na barra <strong>de</strong> modos. Os passos <strong>de</strong>scritos estão <strong>de</strong>monstrados<br />

na Figura 14.<br />

No diagrama <strong>de</strong> re<strong>de</strong> é possível visualizar informações como<br />

a data <strong>de</strong> início e fim <strong>de</strong> cada tarefa, a duração, bem como o<br />

responsável por ela.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 37


Outra forma <strong>de</strong> visualização do projeto é através do Uso<br />

das Tarefas, em que é possível visualizar com mais <strong>de</strong>talhes<br />

as informações <strong>de</strong> cada uma <strong>de</strong>las. Esse recurso permite<br />

uma visualização mais abrangente da alocação dos recursos<br />

disponíveis para a execução <strong>de</strong> cada tarefa. Para acessar esse<br />

recurso, basta clicar em Task Usage (Uso da Tarefa) na Barra<br />

<strong>de</strong> Tarefas, em seguida aparecerá a tela com as informações<br />

<strong>de</strong> cada tarefa. Como exemplo, po<strong>de</strong>-se observar a tarefa seis,<br />

na Figura 15, cujas informações são as seguintes: estão alocados<br />

João e Tiago, cada um com total <strong>de</strong> horas trabalhadas<br />

<strong>de</strong> 16h, sendo 8 horas diárias totalizando 32h <strong>de</strong> trabalho<br />

no projeto, a duração da tarefa que é <strong>de</strong> dois dias, sendo que<br />

começa no dia treze e termina no dia <strong>de</strong>zesseis.<br />

Figura 13. Salvar linha <strong>de</strong> base<br />

Figura 14. Diagrama <strong>de</strong> re<strong>de</strong><br />

O MS Project <strong>de</strong>ixa a critério do usuário o acréscimo <strong>de</strong><br />

outras colunas, além das consi<strong>de</strong>radas padrão. Para acrescentar<br />

outra coluna, basta selecionar uma coluna, clicar o botão<br />

direito do mouse e escolher a opção Insert Column (Inserir<br />

Coluna). O programa abrirá uma janela com várias opções <strong>de</strong><br />

campos, como mostrado na Figura 16. Após isso, se escolhe a<br />

coluna que se <strong>de</strong>seja acrescentar e clica-se em ok.<br />

38 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Ferramentas para Gerência <strong>de</strong> Projetos<br />

Emitir Relatórios do Projeto<br />

Os relatórios são <strong>de</strong> gran<strong>de</strong> importância para o projeto, pois<br />

através <strong>de</strong>les é possível ter uma visão geral do projeto, e explicar<br />

aos participantes algumas informações que não aparecem<br />

nos diagramas. Para acessar as opções <strong>de</strong> relatórios <strong>de</strong>ve-se<br />

clicar em Report (Relatório), em seguida selecionar a opção Reports<br />

(Relatórios) que abrirá uma janela como a da Figura 17.<br />

Figura 15. Uso das tarefas<br />

Figura 16. Adicionar coluna<br />

Figura 17. Emitir relatório<br />

Como se po<strong>de</strong> observar pela figura, são várias as opções <strong>de</strong><br />

relatórios que o Project po<strong>de</strong> emitir, <strong>de</strong>ntre elas: Overview (Visão<br />

Geral), na qual o usuário tem uma visão geral do projeto;<br />

Current Activities (Tarefas Atuais), que dá uma visão das tarefas<br />

sendo executadas; Costs (Custos), que dá uma visão do custo<br />

geral do projeto e Assignments (Atribuições), que oferece a visão<br />

das atribuições <strong>de</strong> cada recurso envolvido no projeto.


Conclusão<br />

As ferramentas apresentadas vieram para ajudar os gerentes a<br />

ter um melhor controle do andamento <strong>de</strong> seus projetos. Neste<br />

artigo, foi apresentada uma visão abrangente das ferramentas<br />

<strong>de</strong> gerenciamento <strong>de</strong> projetos MS Project, Gantt Project, dotProject<br />

e Project Open. Alem disso, com um pouco mais <strong>de</strong><br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

COMIDA<br />

Dê seu Feedback<br />

sobre esta edição<br />

DotProject - http://dotproject.net/<br />

GEStão DE PRojEtoS<br />

<strong>de</strong>talhas, observamos o uso da ferramenta MS Project, que é<br />

um po<strong>de</strong>roso instrumento na gerência <strong>de</strong> projetos.<br />

Referências<br />

FIGUEIREDO, Francisco Constant <strong>de</strong>; FIGUEIREDO, Hélio Carlos. Dominando gerenciamento <strong>de</strong><br />

projetos com MS Project 2000. Rio <strong>de</strong> Janeiro: Ciência Mo<strong>de</strong>rna, 2001.<br />

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

Open Project - http://www.project-open.org<br />

Gantt Project - http://ganttproject.biz/<br />

Existem coisas<br />

que não conseguimos<br />

ficar sem!<br />

...só pra lembrar,<br />

sua assinatura po<strong>de</strong><br />

estar acabando!<br />

Renove Já!<br />

www.<strong>de</strong>vmedia.com.br/renovacao<br />

Para mais informações:<br />

www.<strong>de</strong>vmedia.com.br/central<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 39


Desenvolvimento<br />

Nesta seção você encontra artigos voltados para diferentes<br />

abordagens <strong>de</strong> apoio ao <strong>de</strong>senvolvimento <strong>de</strong> projetos <strong>de</strong> software<br />

Reportando <strong>de</strong> forma simples os resultados<br />

dos testes<br />

Técnicas simples e objetivas para reportar os resultados das ativida<strong>de</strong>s <strong>de</strong> testes<br />

Daniel Scaldaferri Lages<br />

dlages@gmail.com<br />

Possui MBA em Gerência <strong>de</strong> Projetos pela<br />

Fundação Getúlio Vargas, é pós-graduado em<br />

Gerência <strong>de</strong> T.I. pela Universida<strong>de</strong> FUMEC e Bacharel<br />

em Ciência da Computação pela UFMG.<br />

Atualmente é Coor<strong>de</strong>nador da equipe <strong>de</strong> Quality<br />

Assurance da CPM Braxis, filial BH. Sua experiência<br />

profissional inclui o cargo <strong>de</strong> Analista<br />

<strong>de</strong> Testes no Synergia (núcleo <strong>de</strong> engenharia<br />

<strong>de</strong> software do Departamento <strong>de</strong> Ciência da<br />

Computação da UFMG), Gerente da fábrica <strong>de</strong><br />

software na Unitech (hoje CPM Braxis) e docência<br />

no curso <strong>de</strong> graduação <strong>de</strong> Sistemas <strong>de</strong><br />

Informação na PUC-MG. Possui a certificação<br />

ITIL para gerenciamento <strong>de</strong> serviços <strong>de</strong> T.I. É<br />

certificado em testes <strong>de</strong> software pela ISTQB e<br />

em qualida<strong>de</strong> <strong>de</strong> software pela IBM.<br />

Para todas as ativida<strong>de</strong>s planejadas<br />

e executadas <strong>de</strong>ntro <strong>de</strong> um<br />

projeto, seja ele <strong>de</strong> <strong>de</strong>senvolvimento<br />

<strong>de</strong> software, ou <strong>de</strong> qualquer outra<br />

natureza, existe a necessida<strong>de</strong> <strong>de</strong> que o<br />

progresso das ativida<strong>de</strong>s seja reportado<br />

e os resultados finais ou parciais sejam<br />

apresentados às pessoas envolvidas.<br />

São vários os interessados nessas informações,<br />

entre eles, o cliente, o gerente<br />

do projeto, o patrocinador e as equipes<br />

responsáveis pelas <strong>de</strong>mais etapas do<br />

processo <strong>de</strong> <strong>de</strong>senvolvimento do software.<br />

Com as informações do progresso,<br />

seja um status report diário, semanal, ou<br />

com alguma outra periodicida<strong>de</strong> que<br />

seja interessante para o projeto (a periodicida<strong>de</strong><br />

i<strong>de</strong>al irá <strong>de</strong>pen<strong>de</strong>r da duração<br />

do projeto e do custo do controle, pois<br />

quanto maior o controle maior o custo),<br />

40 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Reportando <strong>de</strong> forma simples os resultados dos testes<br />

De que se trata o artigo?<br />

Este artigo apresenta uma maneira simples e objetiva<br />

para reportar os resultados dos testes funcionais,<br />

sejam eles diários ou finais, assim como os<br />

benefícios que po<strong>de</strong>m ser extraídos a partir das informações<br />

e estatísticas geradas por um resultado<br />

ou por um conjunto <strong>de</strong>les.<br />

Para que serve?<br />

O artigo po<strong>de</strong>rá auxiliar, <strong>de</strong> uma maneira prática, os<br />

profissionais <strong>de</strong> testes que necessitam reportar os<br />

seus resultados, apresentando exemplos simples e<br />

<strong>de</strong> fácil implementação, para que possam agregar<br />

ao seu processo. Serve também para mostrar os<br />

motivos e benefícios do reporte dos resultados.<br />

Em que situação o tema é útil?<br />

Com os recursos do flashback é possível:<br />

Para empresas e profissionais que possuem<br />

interesse em criar mecanismos (ou apenas<br />

complementá-los) para reportar os resultados<br />

das ativida<strong>de</strong>s <strong>de</strong> testes, juntamente com a <strong>de</strong>finição<br />

do conteúdo necessário e suficiente.<br />

os envolvidos terão base para a tomada<br />

<strong>de</strong> <strong>de</strong>cisões, uma vez que será possível<br />

comparar o status atual com o planejado.


Já as informações referentes aos resultados servirão como<br />

lições aprendidas (positivas ou negativas) para os próximos<br />

projetos ou para as próximas fases do projeto.<br />

Para as ativida<strong>de</strong>s <strong>de</strong> Teste <strong>de</strong> <strong>Softwa</strong>re não é diferente. De<br />

acordo com o Quality Assurance Institute [QAI] os testadores<br />

<strong>de</strong>vem possuir habilida<strong>de</strong>s para reportarem suas ativida<strong>de</strong>s<br />

<strong>de</strong> forma clara e precisa. Eles <strong>de</strong>vem se basear no Plano <strong>de</strong> Testes,<br />

pois as informações apresentadas não po<strong>de</strong>m estar soltas,<br />

e sim <strong>de</strong>ntro <strong>de</strong> um contexto, que envolve algumas variáveis<br />

importantes, como prazo, esforço, complexida<strong>de</strong>, ambiente,<br />

escopo, equipe etc. Essa questão é reforçada por [MARICK]<br />

no seu artigo “Classic Testing Mistakes”, que classifica como<br />

um erro clássico os gráficos e relatórios que são apresentados<br />

fora <strong>de</strong> um contexto.<br />

Um exemplo trivial é apresentado através da comparação<br />

entre dois projetos, A e B. Ambos apresentam percentual <strong>de</strong><br />

conclusão igual a 80%. Mas esse valor não diz nada sozinho. De<br />

nada adianta apresentar o percentual <strong>de</strong> conclusão dos testes<br />

se não sabemos qual o prazo para conclusão, pois nada indica<br />

se essa data será ou não cumprida. Para ajudar a encontrar<br />

um indício das chances <strong>de</strong> sucesso, os gráficos da Figura 1<br />

apresentam duas novas variáveis: a data final e o histórico do<br />

progresso dos testes. Com essas informações a chance <strong>de</strong> se<br />

“prever o futuro” aumenta. É possível <strong>de</strong>duzir que o projeto A<br />

não cumprirá o prazo, pois resta apenas um dia e o histórico<br />

do progresso é <strong>de</strong> 5% ao dia. Já o projeto B, <strong>de</strong> acordo com<br />

o mesmo histórico <strong>de</strong> progresso <strong>de</strong> 5% ao dia, será possível<br />

chegar aos 100% no dia 16/12.<br />

Figura 1. Progresso dos testes para os projetos A e B<br />

Mas existem outras variáveis que não são apresentadas no<br />

gráfico e que po<strong>de</strong>m mudar todo o diagnóstico realizado. Por<br />

exemplo, po<strong>de</strong> ser que os casos <strong>de</strong> uso a serem testados no projeto<br />

B ainda não estejam liberados para testes, ou seja, ainda não<br />

foram construídos. Só serão liberados na manhã do dia 16/12.<br />

Consi<strong>de</strong>rando as mesmas condições <strong>de</strong> esforço <strong>de</strong> execução<br />

dos testes (número <strong>de</strong> testadores) e o progresso <strong>de</strong> 5% ao dia,<br />

este cenário indicará um atraso para o projeto B. Desta forma,<br />

é interessante que esse gráfico seja apresentado juntamente<br />

com as informações <strong>de</strong> liberação <strong>de</strong> casos <strong>de</strong> uso para testes.<br />

Outra variável é o esforço <strong>de</strong> execução dos testes. Para o projeto<br />

A foram disponibilizados mais três testadores. Assim, será<br />

possível atingir os 100% no dia 13/12, levando em consi<strong>de</strong>ração<br />

que é possível dividir os testes entre os testadores.<br />

Outras variáveis ainda po<strong>de</strong>m influenciar os prognósticos,<br />

como por exemplo, a complexida<strong>de</strong> e a qualida<strong>de</strong> dos casos<br />

<strong>de</strong> uso a serem testados. Nada impe<strong>de</strong> que os casos <strong>de</strong> uso do<br />

Projeto B a serem liberados sejam triviais e possam ser testados<br />

VALIDAção, VERIFICAção & tEStE<br />

rapidamente, principalmente se nenhuma falha for encontrada.<br />

O inverso po<strong>de</strong>rá se revelar no Projeto A, que mesmo com<br />

muitos testadores, não conseguirá finalizar os testes no prazo<br />

<strong>de</strong>finido <strong>de</strong>vido à complexida<strong>de</strong> dos casos <strong>de</strong> uso.<br />

A mensagem principal aqui é que os relatórios e gráficos<br />

<strong>de</strong>vem estar <strong>de</strong>ntro <strong>de</strong> um contexto muito bem <strong>de</strong>finido,<br />

apresentando o maior número <strong>de</strong> informações (variáveis)<br />

possíveis.<br />

De acordo com o [QAI] existem duas categorias principais <strong>de</strong><br />

relatórios que po<strong>de</strong>m ser apresentados: relatórios correntes<br />

dos testes e relatórios finais dos testes. A primeira categoria<br />

trata-se da apresentação do andamento atual dos testes, ou<br />

seja, resultados apresentados durante as ativida<strong>de</strong>s <strong>de</strong> testes.<br />

Já a segunda, como o próprio nome diz, no final <strong>de</strong> uma ativida<strong>de</strong><br />

<strong>de</strong> testes. Cada uma das categorias será apresentada<br />

nos próximos itens.<br />

Relatório Corrente dos Testes<br />

Esta categoria <strong>de</strong> relatórios é bastante importante para o<br />

gerenciamento do projeto. Os responsáveis pela tomada <strong>de</strong><br />

<strong>de</strong>cisões precisam ser munidos <strong>de</strong> informações do andamento<br />

e da qualida<strong>de</strong> do projeto. Nada mais interessante do que<br />

obtê-las através da perspectiva dos testadores. Esses relatórios<br />

<strong>de</strong>vem ser gerados com uma periodicida<strong>de</strong> que seja interessante,<br />

servindo como ferramenta pró-ativa para o projeto. O status<br />

report não precisa ser complexo, mas precisa ser claro, objetivo<br />

e, como já dito, contextualizado. As sugestões e os exemplos<br />

apresentados a seguir consi<strong>de</strong>ram uma frequência diária.<br />

Antes <strong>de</strong> seguir, é bom frisar que, apesar <strong>de</strong> estarem inseridos<br />

<strong>de</strong>ntro <strong>de</strong>sta categoria, os relatórios individuais sobre as<br />

falhas encontradas durante a execução dos testes que estão<br />

em processo <strong>de</strong> análise/correção não serão abordados nesse<br />

artigo. Apenas um resumo geral do conjunto das falhas é<br />

informado no status report. Boas práticas para o registro e<br />

acompanhamento das falhas ren<strong>de</strong>m assunto suficiente para<br />

outro artigo inteiro.<br />

Status Report Diário<br />

Como já informado, o objetivo principal <strong>de</strong>sse status report é<br />

munir os lí<strong>de</strong>res, gerentes e <strong>de</strong>mais envolvidos <strong>de</strong> informações<br />

sobre a situação atual da ativida<strong>de</strong>. É um retrato da ativida<strong>de</strong>.<br />

Com ele torna-se possível comparar a situação atual com a<br />

planejada. Caso exista uma longa distância entre elas, ou a<br />

presença <strong>de</strong> sintomas <strong>de</strong> potenciais problemas, ações <strong>de</strong> modo<br />

a contorná-los e eliminá-los <strong>de</strong>vem ser tomadas. Abaixo, são<br />

apresentados e exemplificados alguns itens sugeridos para a<br />

composição do status report. Tudo que será apresentado são<br />

sugestões, que po<strong>de</strong>m ou não serem aceitas, ou adaptadas em<br />

outros processos.<br />

Percentual <strong>de</strong> Conclusão<br />

Este é o item principal do status report. Todos os <strong>de</strong>mais ajudarão<br />

a contextualizá-lo. Trata-se do percentual <strong>de</strong> conclusão<br />

da ativida<strong>de</strong>. A Tabela 1 apresenta uma planilha que mostra o<br />

percentual <strong>de</strong> conclusão para a ativida<strong>de</strong> <strong>de</strong> Elaboração <strong>de</strong> Casos<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 41


<strong>de</strong> Testes <strong>de</strong> um projeto fictício, que contém cinco casos <strong>de</strong> uso.<br />

Para que o percentual seja bem preciso, é sugerido que os casos<br />

<strong>de</strong> uso sejam <strong>de</strong>talhados em termos dos itens que <strong>de</strong>verão ser<br />

testados. No exemplo, os itens são: Fluxo Alternativo, Fluxo <strong>de</strong><br />

Exceção, Requisitos Especiais e Regras <strong>de</strong> Negócio. Para o UC_01<br />

– Efetuar Conferência existem 14 itens ao todo: 3 fluxos alternativos,<br />

4 fluxos <strong>de</strong> exceção, 1 requisito especial e 6 regras <strong>de</strong><br />

negócio. A coluna CTs Elaborados mostra a quantida<strong>de</strong> <strong>de</strong> itens<br />

que já tiveram seus casos <strong>de</strong> testes elaborados. Para o UC_01,<br />

foram finalizados 7 casos, o que significa 50% <strong>de</strong> conclusão<br />

<strong>de</strong>ste UC. O mesmo cálculo é feito com os <strong>de</strong>mais casos <strong>de</strong> uso,<br />

e com a ativida<strong>de</strong> como um todo.<br />

A Tabela 2 sugere uma planilha para apresentar o percentual<br />

<strong>de</strong> conclusão da Execução dos Casos <strong>de</strong> Testes. Além <strong>de</strong> mostrar o<br />

percentual <strong>de</strong> conclusão, levando em conta a unida<strong>de</strong> “Casos<br />

<strong>de</strong> Testes”, apresenta também o número <strong>de</strong> falhas registradas<br />

por cada caso <strong>de</strong> uso.<br />

Status <strong>de</strong> Elaboração <strong>de</strong> Casos <strong>de</strong> Testes<br />

Nome do Sistema Sistema Fictício<br />

Número da Demanda 30450<br />

Tipo do teste Teste <strong>de</strong> Sistema<br />

Data 20/3/2010<br />

Responsável Daniel Lages<br />

Nome UC Fluxo Alternativo Fluxo <strong>de</strong> Exceção Requisitos Especiais Regra <strong>de</strong> Negócio CTs Elaborados Perc. Por UC<br />

UC_01 - Efetuar Conferência 3 4 1 6 7 50,00%<br />

UC_02 - Cadastrar Oportunida<strong>de</strong>s 2 2 0 5 8 88,89%<br />

UC_03 - Alterar Oportunida<strong>de</strong>s 2 4 0 6 12 100,00%<br />

UC_04 - Criar Ativida<strong>de</strong>s 3 3 0 5 11 100,00%<br />

UC_05 - Enviar Oportunida<strong>de</strong>s 5 5 2 10 5 22,73%<br />

Total 15 18 3 32 43<br />

Percentual Geral Casos <strong>de</strong> Uso Elaborados 63,24%<br />

tabela 1. Planilha <strong>de</strong> percentual <strong>de</strong> conclusão da ativida<strong>de</strong> <strong>de</strong> Elaboração <strong>de</strong> Casos <strong>de</strong> Testes<br />

Status <strong>de</strong> Execução <strong>de</strong> Testes<br />

Nome do Sistema Sistema Fictício<br />

Número da Demanda 30450<br />

Tipo do teste Teste <strong>de</strong> Sistema<br />

Data 10/4/2010<br />

Nome dos testadores Karla Lages<br />

Nome UC Nº CTs<br />

EXECUTADOS COM<br />

SUCESSO<br />

NÃO EXECUTADOS ou COM<br />

42 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Reportando <strong>de</strong> forma simples os resultados dos testes<br />

FALHAS<br />

Falhas<br />

Pen<strong>de</strong>ntes<br />

Perc. Por UC<br />

UC_01 - Efetuar Conferência 14 10 4 3 71,43%<br />

UC_02 - Cadastrar Oportunida<strong>de</strong>s 9 9 0 0 100,00%<br />

UC_03 - Alterar Oportunida<strong>de</strong>s 12 4 8 2 33,33%<br />

UC_04 - Criar Ativida<strong>de</strong>s 11 5 6 2 45,45%<br />

UC_05 - Enviar Oportunida<strong>de</strong>s 22 0 22 0 0,00%<br />

Total 68 28 40 7<br />

Percentuais 41,18% 58,82%<br />

tabela 2. Planilha <strong>de</strong> percentual <strong>de</strong> conclusão da ativida<strong>de</strong> <strong>de</strong> Execução dos Testes<br />

A Figura 2 mostra outra forma <strong>de</strong> apresentação do percentual<br />

<strong>de</strong> conclusão da execução dos testes extraídas da<br />

ferramenta Testlink. O primeiro gráfico mostra que 29% dos<br />

casos <strong>de</strong> testes foram executados com sucesso e 5% executados<br />

com falhas. Os <strong>de</strong>mais 66% ainda não foram executados.<br />

No segundo gráfico, 1% dos casos <strong>de</strong> testes está bloqueado,<br />

ou seja, por algum motivo (por exemplo, falta <strong>de</strong> dados na<br />

base ou <strong>de</strong>pendência da correção <strong>de</strong> alguma falha) não é<br />

possível executá-los. A visualização <strong>de</strong>sses gráficos é melhor.<br />

Entretanto, não exibem informações por caso <strong>de</strong> uso, e sim<br />

<strong>de</strong> forma geral.<br />

A Figura 3 apresenta os dados do primeiro gráfico <strong>de</strong> forma<br />

tabular, complementando com informações sobre a quantida<strong>de</strong><br />

<strong>de</strong> casos <strong>de</strong> testes em cada situação em valores absolutos.<br />

Como po<strong>de</strong> ser visto, são 58 casos <strong>de</strong> testes. Desses, 17 foram<br />

executados com sucesso, 3 falharam e 38 ainda não foram<br />

executados.


Figura 2. Gráfico <strong>de</strong> pizza para conclusão da ativida<strong>de</strong> <strong>de</strong> execução dos<br />

testes<br />

Figura 3. Forma tabular para conclusão da ativida<strong>de</strong> <strong>de</strong> execução dos testes<br />

Como ressaltado na introdução, apenas essas informações<br />

sozinhas não dizem muita coisa. A seguir, os <strong>de</strong>mais itens que<br />

ajudam na contextualização.<br />

Progresso das ativida<strong>de</strong>s <strong>de</strong> Testes<br />

O progresso dos testes mostra a evolução da ativida<strong>de</strong> ao<br />

longo dos dias reservados para a realização da mesma. A Figura<br />

4 apresenta o gráfico gerado no dia 18/03, um dia antes<br />

do prazo final, 19/03. É possível perceber que essa ativida<strong>de</strong><br />

transcorreu sem muitos problemas, com boa evolução até o dia<br />

15/03. Apenas um aperto entre os dias 15/03 e 16/03, e também<br />

entre 17/03 e 18/03. A partir <strong>de</strong>ssa informação, é possível agir<br />

proativamente <strong>de</strong>vido à i<strong>de</strong>ntificação <strong>de</strong> uma evolução <strong>de</strong><br />

apenas 1% do dia 17/03 para 18/03. A pouca evolução ao final<br />

da ativida<strong>de</strong> é natural, uma vez que problemas encontrados ao<br />

longo da ativida<strong>de</strong> se tornam pendências que são resolvidas<br />

somente na conclusão, gerando esse comportamento.<br />

Figura 4. Progresso das ativida<strong>de</strong> <strong>de</strong> testes com boa evolução<br />

Já a Figura 5 apresenta um cenário <strong>de</strong> alerta, pois ocorreu um<br />

pequeno atraso no início da ativida<strong>de</strong>. Apesar do atraso, houve<br />

uma boa evolução <strong>de</strong> 58% em quatro dias (média <strong>de</strong> 14,5% ao<br />

dia). Se essa média continuar assim, será possível concluir a<br />

ativida<strong>de</strong> no prazo final, pois no dia 19/03 teríamos 72,6%; dia<br />

22/03, 87,1%, e por fim, 100% no dia 23/03.<br />

A Figura 6 apresenta um cenário on<strong>de</strong> será praticamente<br />

impossível realizar a ativida<strong>de</strong> <strong>de</strong>ntro do prazo <strong>de</strong>terminado.<br />

VALIDAção, VERIFICAção & tEStE<br />

Faltando apenas dois dias para terminar, apenas 19% da ativida<strong>de</strong><br />

foi concluída. Neste exemplo, já no primeiro dia era<br />

possível observar sintomas <strong>de</strong> potenciais problemas. Pois como<br />

são apenas seis dias para executar a ativida<strong>de</strong>, era esperado<br />

no mínimo 17% <strong>de</strong> conclusão. Portanto, alguma ação já teria<br />

que ter sido tomada no primeiro dia.<br />

Figura 5. Progresso das ativida<strong>de</strong>s <strong>de</strong> testes com atraso no início da tarefa<br />

Figura 6. Progresso das ativida<strong>de</strong>s <strong>de</strong> testes com atraso previsto<br />

Durante a execução da ativida<strong>de</strong> <strong>de</strong> testes po<strong>de</strong> ser que novos<br />

casos <strong>de</strong> uso sejam acrescentados ou removidos, resultando<br />

no aumento ou diminuição <strong>de</strong> casos <strong>de</strong> testes. Como consequência,<br />

po<strong>de</strong> ser que o percentual <strong>de</strong> conclusão diminua <strong>de</strong> um<br />

dia para o outro. Nesse caso, basta colocar uma observação no<br />

relatório para que a diferença negativa seja justificada. Esse<br />

relatório po<strong>de</strong> ser aplicado tanto para execução dos testes<br />

quanto para a elaboração dos casos <strong>de</strong> testes.<br />

Progresso <strong>de</strong> Liberação dos Casos <strong>de</strong> Uso<br />

É bastante interessante para os gerentes controlarem o progresso<br />

da liberação dos casos <strong>de</strong> uso para execução dos testes.<br />

Com esse controle é possível comparar o percentual concluído<br />

em relação ao percentual disponibilizado. É uma situação<br />

diferente para o projeto, por exemplo, quando 40% dos testes<br />

estão concluídos com 100% dos casos <strong>de</strong> uso disponíveis, <strong>de</strong><br />

quando 40% dos testes estão concluídos com apenas 42% <strong>de</strong><br />

casos <strong>de</strong> testes disponíveis. Para facilitar essa comparação <strong>de</strong>ve-se<br />

converter os casos <strong>de</strong> uso liberados em casos <strong>de</strong> testes liberados.<br />

Por exemplo, caso existam 10 casos <strong>de</strong> uso no projeto, sendo que<br />

os cinco primeiros possuem 5 casos <strong>de</strong> testes cada, os outros<br />

cinco possuem 10 casos <strong>de</strong> testes cada, e apenas os 4 primeiros<br />

casos <strong>de</strong> uso estejam liberados, teríamos 26,67% <strong>de</strong> casos <strong>de</strong><br />

testes disponíveis. Conta: (4*5) / (5*5 + 5*10) * 100. No primeiro<br />

caso (100% disponível) é possível, caso o gerente opte e possua<br />

testadores disponíveis, adiantar os testes, uma vez que existem<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 43


funcionalida<strong>de</strong>s prontas a serem testadas. No segundo caso (42%<br />

disponível), mesmo que o gerente possua dois ou três testadores<br />

disponíveis, <strong>de</strong> nada adianta, pois não existem funcionalida<strong>de</strong>s a<br />

serem testadas, apenas 2%. Caso as próximas liberações estejam<br />

planejadas para uma data distante, é sinal que o testador ficará<br />

ocioso nesse projeto (logicamente, <strong>de</strong>pen<strong>de</strong>ndo da quantida<strong>de</strong><br />

<strong>de</strong> falhas registradas que terá que verificar).<br />

Como foi <strong>de</strong>monstrado acima, a informação gerada pela<br />

comparação entre o que foi realizado e o disponível é bastante<br />

importante. Esse controle da liberação dos casos <strong>de</strong> uso é<br />

bastante semelhante ao do progresso das ativida<strong>de</strong>s <strong>de</strong> testes.<br />

Da mesma forma que se controla a disponibilida<strong>de</strong> dos casos<br />

<strong>de</strong> uso implementados para execução dos testes, po<strong>de</strong>-se controlar<br />

a disponibilida<strong>de</strong> dos casos <strong>de</strong> uso especificados para<br />

elaboração dos casos <strong>de</strong> testes. A Figura 7 apresenta o par <strong>de</strong><br />

gráficos que mostra a evolução do percentual <strong>de</strong> conclusão dos<br />

testes e a evolução do percentual <strong>de</strong> liberação <strong>de</strong> casos <strong>de</strong> uso,<br />

já convertidos em casos <strong>de</strong> testes.<br />

Figura 7. Gráfico <strong>de</strong> Evolução <strong>de</strong> Testes comparado à Liberação <strong>de</strong> Casos<br />

<strong>de</strong> Testes<br />

Logicamente outras opções <strong>de</strong> gráficos po<strong>de</strong>m ser utilizadas<br />

para facilitar a comparação, como o apresenta a Figura 8.<br />

Figura 8. Gráfico unificado <strong>de</strong> Evolução <strong>de</strong> Testes X Liberação <strong>de</strong> Casos<br />

<strong>de</strong> Testes com pouca diferença entre liberados e executados<br />

A comparação mostra que o percentual dos casos <strong>de</strong> testes realizados<br />

está bastante próximo ao dos casos <strong>de</strong> testes possíveis<br />

44 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Reportando <strong>de</strong> forma simples os resultados dos testes<br />

<strong>de</strong> serem executados, ou seja, dos liberados. A diferença recai<br />

sobre os casos <strong>de</strong> testes que falharam, estão bloqueados, ou realmente<br />

ainda não foram executados. A informação sobre essa<br />

diferença po<strong>de</strong>rá ser obtida no gráfico apresentado na Figura 2.<br />

Nessa situação, não é possível adiantar as ativida<strong>de</strong>s <strong>de</strong> testes.<br />

Provavelmente o projeto irá atrasar, pois faltando apenas cinco<br />

dias dos 17 planejados, apenas 55% dos casos <strong>de</strong> uso foram<br />

implementados. A Figura 9 apresenta um cenário que, <strong>de</strong>s<strong>de</strong><br />

o primeiro dia, os testes po<strong>de</strong>riam ter sido adiantados.<br />

Figura 9. Gráfico unificado <strong>de</strong> Evolução <strong>de</strong> Testes X Liberação <strong>de</strong> Casos<br />

<strong>de</strong> Testes com gran<strong>de</strong> diferença entre liberados e executados<br />

Resumo dos Inci<strong>de</strong>ntes<br />

A quantida<strong>de</strong> <strong>de</strong> falhas registradas, e suas características, como<br />

por exemplo, criticida<strong>de</strong>, priorida<strong>de</strong> e localização, são fatores importantes<br />

e que influenciam o rumo da execução dos testes (em<br />

empresas responsáveis, o rumo do projeto como um todo). Caso<br />

muitas falhas estejam registradas, ou poucas falhas, mas sendo<br />

críticas, a entrega do produto <strong>de</strong>verá ser renegociada, ao invés <strong>de</strong><br />

se fazer vista grossa para as falhas apenas para cumprir o prazo.<br />

No momento da homologação ou já em operação, a empresa<br />

po<strong>de</strong>rá pagar caro o preço dos irresponsáveis. Vale ressaltar que<br />

quanto mais tar<strong>de</strong> a falha for encontrada, mais custosa torna-se a<br />

correção. Portanto, é bastante recomendado relatar no status report<br />

a quantida<strong>de</strong> atual das falhas, assim como sua criticida<strong>de</strong>, e outras<br />

informações importantes para o projeto. A Figura 10 exemplifica<br />

esse resumo, informando a situação das falhas por status e também<br />

por gravida<strong>de</strong>. A ferramenta utilizada é o MANTIS.<br />

Figura 10. Quadros retirados do MANTIS com informações das falhas Por<br />

Status e Por Gravida<strong>de</strong>


O primeiro quadro mostra: a quantida<strong>de</strong> <strong>de</strong> falhas atribuída<br />

a algum <strong>de</strong>senvolvedor; a quantida<strong>de</strong> <strong>de</strong> falhas que já foi<br />

admitida por um <strong>de</strong>senvolvedor (po<strong>de</strong>-se estabelecer que<br />

este status indique que as falhas já estão sendo corrigidas); a<br />

quantida<strong>de</strong> <strong>de</strong> falhas que já foram corrigidas e estão prontas<br />

para verificação da correção; além da quantida<strong>de</strong> que já foi<br />

verificada, e, portanto, fechada. Já o segundo quadro <strong>de</strong>talha<br />

a quantida<strong>de</strong> <strong>de</strong> falhas nos status Aberto, Resolvido e Fechado<br />

por gravida<strong>de</strong>.<br />

Gráfico <strong>de</strong> Correção Acumulado<br />

Outra informação importante a respeito das falhas registradas<br />

é a situação da correção dos mesmos. O i<strong>de</strong>al é que<br />

essa ativida<strong>de</strong> não se acumule, pois a correção, como é uma<br />

intervenção em código, po<strong>de</strong> <strong>de</strong>smascarar novas falhas ou<br />

impactar outras partes do sistema. E se feita muito tar<strong>de</strong>,<br />

não existirá tempo hábil para novas <strong>de</strong>scobertas. Além disso,<br />

falhas registradas po<strong>de</strong>m impedir a coleta das evidências. Se<br />

a correção for tardia, acumula-se a verificação e a coleta das<br />

evidências. O responsável pelos testes e o gerente do projeto<br />

<strong>de</strong>verão estabelecer a frequência e o tempo <strong>de</strong>stinado para a<br />

correção das falhas ao longo da execução dos testes, para que<br />

os problemas citados acima não aconteçam.<br />

O gráfico <strong>de</strong> correção acumulado ajudará a monitorar a<br />

correção das falhas registradas. A Figura 11 exemplifica<br />

a evolução da correção das falhas <strong>de</strong> um projeto, cuja<br />

ferramenta <strong>de</strong> gerenciamento <strong>de</strong> inci<strong>de</strong>ntes utilizada é o<br />

MANTIS.<br />

Figura 11. Gráficos retirados do MANTIS com a evolução da correção das<br />

falhas<br />

VALIDAção, VERIFICAção & tEStE<br />

O eixo x representa o tempo, ou seja, os dias. O eixo y representa<br />

a quantida<strong>de</strong> <strong>de</strong> falhas registradas. No primeiro dia <strong>de</strong><br />

testes, dia 07/03 foram registradas 17 falhas. O gráfico apresenta<br />

três linhas. São elas: azul, que representa a quantida<strong>de</strong><br />

acumulada <strong>de</strong> falhas registradas ao longo dos dias; preta, que<br />

representa a quantida<strong>de</strong> <strong>de</strong> falhas corrigidas; e vermelha, que<br />

é a diferença entre a linha azul e preta, representando as falhas<br />

que ainda não foram corrigidas.<br />

O i<strong>de</strong>al é que a linha preta siga <strong>de</strong> perto a linha azul, mantendo<br />

a vermelha oscilando com amplitu<strong>de</strong> baixa no gráfico. Isso<br />

significa que a correção está sendo feita, sem acúmulo. Pelo<br />

último gráfico, é possível perceber que até o dia 28/03 nunca<br />

mais do que 20 falhas ficaram sem corrigir, e que nesse dia, já<br />

existem quase 30 falhas ainda não corrigidas. Um alerta para o<br />

projeto. Outra informação interessante que po<strong>de</strong> ser percebida<br />

é que os dias 14/03, 18/03 e 20/03 foram os dias on<strong>de</strong> a correção<br />

estava mais “em dia”, que são os vales da linha vermelha, ou<br />

o quase encontro das linhas preta e azul.<br />

Registro <strong>de</strong> Ocorrências<br />

Este tipo <strong>de</strong> relatório nada mais é que um diário <strong>de</strong> bordo da<br />

ativida<strong>de</strong> que está sendo realizada. O objetivo é registrar os<br />

eventos que impactam o andamento da ativida<strong>de</strong>, principalmente<br />

os negativos. Os que impactam positivamente também<br />

po<strong>de</strong>m ser registrados. Eventos como “paradas” do ambiente<br />

<strong>de</strong> testes, não existência <strong>de</strong> dados específicos na massa <strong>de</strong><br />

dados, inexistência <strong>de</strong> recursos para correção das falhas registradas,<br />

bugs <strong>de</strong> travamento que impe<strong>de</strong>m o prosseguimento da<br />

ativida<strong>de</strong>, etc. são comuns nesse relatório. Ou seja, tudo que<br />

atrasa o andamento da ativida<strong>de</strong>. Cada ocorrência registrada<br />

<strong>de</strong>verá conter a data e a hora do registro, assim como o responsável<br />

pelo seu cadastramento. O i<strong>de</strong>al é que não se escreva<br />

muito, apenas uma linha <strong>de</strong> texto, no máximo.<br />

O relatório gerado a partir <strong>de</strong>ssas ocorrências é bem interessante,<br />

pois apresenta os principais eventos ocorridos durante<br />

a ativida<strong>de</strong>, um histórico <strong>de</strong> on<strong>de</strong> é possível tirar conclusões<br />

dos pontos que impactaram o andamento da ativida<strong>de</strong>. Serve<br />

para os testadores se resguardarem, pois os problemas ocorridos<br />

que não foram causados por eles estarão registrados. Mas<br />

também po<strong>de</strong> apresentar suas falhas, caso tenham cometido<br />

alguns erros, como testar uma versão incorreta do software ou<br />

consultar uma especificação <strong>de</strong> requisitos <strong>de</strong>satualizada por<br />

falta <strong>de</strong> atenção.<br />

A partir <strong>de</strong> um conjunto <strong>de</strong> relatórios <strong>de</strong> ocorrências po<strong>de</strong>-se<br />

i<strong>de</strong>ntificar os problemas mais recorrentes. Com essa informação<br />

torna-se possível atacar a causa raiz <strong>de</strong>sses problemas,<br />

visando eliminá-los nas próximas ativida<strong>de</strong>s. Esse relatório<br />

po<strong>de</strong> ser enviado semanalmente, ou, <strong>de</strong>pen<strong>de</strong>ndo do número<br />

<strong>de</strong> ocorrências registradas, numa periodicida<strong>de</strong> menor. Abaixo,<br />

um exemplo básico <strong>de</strong> um relatório <strong>de</strong> ocorrências:<br />

22/02/2010 - 08:12:20 - fulano.silva - Sistema ainda não<br />

liberado.<br />

22/02/2010 - 16:30:00 - fulano.silva - Sistema liberado para<br />

iniciar os testes.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 45


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

irá verificar.<br />

23/02/2010 - 09:35:40 - fulano.silva - Sistema no ar. O servidor<br />

foi reiniciado.<br />

24/02/2010 - 10:12:22 - fulano.silva - Bug blocante registrado.<br />

Aguardando correção para prosseguir.<br />

24/02/2010 - 10:20:20 - fulano.silva - Cicrano só irá corrigir<br />

no final do dia.<br />

25/02/2010 - 08:00:08 - fulano.silva - Bug ainda não foi corrigido.<br />

Testes continuam parados.<br />

25/02/2010 - 09:40:20 - fulano.silva - Nova versão liberada com<br />

correção para prosseguir com os testes.<br />

25/02/2010 - 14:15:15 - fulano.silva - Testes finalizados. Aguardando<br />

correção dos bus para verificá-los.<br />

26/02/2010 - 11:42:45 - fulano.silva - Todos bugs corrigidos.<br />

O diário acima é um exemplo básico. Mas é possível verificar<br />

que houveram paralisações no período <strong>de</strong>stinado<br />

à ativida<strong>de</strong>. Para começar, houve um atraso na liberação<br />

do sistema para o início dos testes <strong>de</strong> quase oito horas. O<br />

servidor ficou parado durante uma hora e meia. Os testes<br />

ficaram parados <strong>de</strong>vido a uma falha <strong>de</strong> travamento das<br />

10h12min do dia 24/02 até as 09h40min do dia seguinte.<br />

Totalizando, aproximadamente, 17 horas <strong>de</strong> interrupção<br />

dos testes.<br />

Caso seja necessário, po<strong>de</strong>-se controlar a indisponibilida<strong>de</strong><br />

do servidor através da planilha da Figura 12. Po<strong>de</strong>rão<br />

ser registradas as interrupções voluntárias, ou seja, paradas<br />

para subir novas versões do sistema. O i<strong>de</strong>al é que esse<br />

tipo <strong>de</strong> interrupção seja planejado, realizado em “janelas”.<br />

O outro tipo diz respeito às interrupções involuntárias,<br />

que são causadas por problemas técnicos inesperados.<br />

Esse controle, ao longo das <strong>de</strong>mandas, po<strong>de</strong>rá i<strong>de</strong>ntificar<br />

pontos fracos na infraestrutura dos testes, gerando ações<br />

preventivas para os próximos testes.<br />

Nome do Sistema ESMAG<br />

Número da Demanda 22767<br />

Tipo do teste Teste <strong>de</strong> Sistema<br />

Evidências colhidas? Sim<br />

46 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Reportando <strong>de</strong> forma simples os resultados dos testes<br />

Relatório Final dos Testes<br />

Este relatório normalmente é emitido no final da ativida<strong>de</strong><br />

<strong>de</strong> execução dos testes. Ele irá apresentar o resultado,<br />

consolidando várias informações coletadas durante o andamento<br />

da ativida<strong>de</strong>, como por exemplo, quantida<strong>de</strong> <strong>de</strong><br />

falhas e suas causas principais, casos <strong>de</strong> testes executados<br />

no tempo previsto, no tempo adicional, ou não executados,<br />

e qualquer outra informação que seja interessante para o<br />

projeto e para a organização.<br />

Estes relatórios servem como entrada para um processo<br />

<strong>de</strong> lições aprendidas visando à melhoria contínua<br />

do processo. Através da i<strong>de</strong>ntificação dos pontos fracos<br />

reportados no relatório, <strong>de</strong>ve-se procurar enten<strong>de</strong>r suas<br />

causas e estabelecer ações para que os problemas não<br />

voltem a acontecer.<br />

O relatório <strong>de</strong>verá iniciar com informações gerais, i<strong>de</strong>ntificando<br />

a ativida<strong>de</strong>, as datas e os responsáveis. É possível<br />

saber se o planejamento foi ou não atendido. No exemplo, o<br />

esforço previsto foi <strong>de</strong> 352 horas, entre os dias 04/01 e 29/01.<br />

Entretanto, o prazo se esten<strong>de</strong>u até o dia 05/02, resultando<br />

numa diferença <strong>de</strong> 25% para mais. Esse tipo <strong>de</strong> informação<br />

é interessante para que ações sejam tomadas objetivando<br />

uma estimativa mais precisa. Há espaço também para<br />

uma avaliação subjetiva da qualida<strong>de</strong> do Plano <strong>de</strong> Testes<br />

e da Especificação, conforme os dois últimos campos do<br />

formulário apresentado na Tabela 3.<br />

A Tabela 4 mostra informações sobre o resumo dos<br />

inci<strong>de</strong>ntes. Esta parte do relatório é dividida em quatro<br />

partes. A primeira <strong>de</strong>las, Resumo <strong>de</strong> Inci<strong>de</strong>ntes, separa os<br />

inci<strong>de</strong>ntes em falhas e sugestões, pois nem tudo que foi<br />

registrado realmente é uma falha. Falhas que po<strong>de</strong>riam ser<br />

<strong>de</strong>tectadas caso um checklist <strong>de</strong> testes fosse utilizado, falhas<br />

<strong>de</strong>ntro e fora do escopo <strong>de</strong> uma manutenção, e sugestões <strong>de</strong><br />

melhorias aceitas e não aceitas também são contabilizadas.<br />

A segunda, Retrabalho, diz respeito a situações que oneram<br />

Período <strong>de</strong> testes previsto DE: 04/01/2010 ATÉ: 29/01/2010<br />

Quantida<strong>de</strong> <strong>de</strong> horas <strong>de</strong> testes previsto 352<br />

Período dos testes realizados DE: 04/01/2010 ATÉ: 05/02/2010<br />

Quantida<strong>de</strong> <strong>de</strong> horas dos testes realizados 440<br />

Diferença entre previsto e realizado 88 % 25,00%<br />

Nome dos testadores Karla Lages, Felipe Lages<br />

Nº <strong>de</strong> casos <strong>de</strong> testes 141<br />

Nº <strong>de</strong> ct executados no tempo previsto 110 % 78,01%<br />

Nº <strong>de</strong> ct executados no tempo adicional 31 % 21,99%<br />

Nº <strong>de</strong> ct não executados no tempo realizado 0 % 0,00%<br />

Qualida<strong>de</strong> do Plano <strong>de</strong> Teste Sistema Boa<br />

Qualida<strong>de</strong> da Especificação EF Boa<br />

tabela 3. Informações gerais do Relatório <strong>de</strong> Finalização dos Testes


o processo, como por exemplo, reabertura <strong>de</strong> falhas, falhas<br />

abertas in<strong>de</strong>vidamente (testador também erra!) e falhas<br />

registradas duplicadamente.<br />

Figura 12. Controle <strong>de</strong> Indisponibilida<strong>de</strong> do Servidor<br />

Total <strong>de</strong> inci<strong>de</strong>ntes 110<br />

Total <strong>de</strong> falhas<br />

(Exceto ‘Não é um caso’, sugestões e ‘Duplicado’)<br />

100<br />

Falhas <strong>de</strong>ntro do escopo 100<br />

Falhas fora do escopo 0<br />

VALIDAção, VERIFICAção & tEStE<br />

Resumo <strong>de</strong> Inci<strong>de</strong>ntes<br />

Taxa <strong>de</strong> inci<strong>de</strong>nte por hora<br />

Ex.: 1 inci<strong>de</strong>nte a cada X horas<br />

Taxa <strong>de</strong> falhas por hora<br />

Ex.: 1 falha a cada X horas<br />

Total <strong>de</strong> falhas referente ao checklist 20 % 20,00%<br />

Total <strong>de</strong> sugestões Aceitas 4<br />

Total <strong>de</strong> sugestões Não Aceitas 3<br />

Retrabalho<br />

Total <strong>de</strong> reaberturas 10<br />

Total <strong>de</strong> “Duplicado” 0<br />

Total <strong>de</strong> “Não é um caso” 3 % 2,91%<br />

Total <strong>de</strong> “Não será corrigido” 0 % 0,00%<br />

Total <strong>de</strong> “Incapaz <strong>de</strong> reproduzir” 0 % 0,00%<br />

Resumo por Gravida<strong>de</strong> das Falhas<br />

Gravida<strong>de</strong> TOTAL %<br />

Layout 9 9 9,00%<br />

Texto 6 6 6,00%<br />

Normal 70 70 70,00%<br />

Gran<strong>de</strong> 10 10 10,00%<br />

Blocante 5 5 5,00%<br />

TOTAL 100 100 100,00%<br />

Resumo por Causa da Falhas<br />

Causa da Falha TOTAL %<br />

Ambiente 5 5 5,00%<br />

Banco <strong>de</strong> Dados 5 5 5,00%<br />

Código-fonte 76 76 76,00%<br />

Especificação 14 14 14,00%<br />

Integração 0 0 0,00%<br />

TOTAL 100 100 100,00%<br />

tabela 4. Informações sobre os inci<strong>de</strong>ntes do Relatório <strong>de</strong> Finalização dos Testes<br />

As duas últimas partes dizem respeito à gravida<strong>de</strong> e a causa<br />

das falhas. A causa da falha normalmente é fornecida pelo<br />

<strong>de</strong>senvolvedor no momento da correção. Com esses dados<br />

4,00<br />

4,40<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 47


é possível avaliar a qualida<strong>de</strong> da especificação, do ambiente<br />

e BD <strong>de</strong> testes. Entretanto, a gran<strong>de</strong> maioria das falhas está<br />

mesmo no código-fonte.<br />

É interessante que exista um espaço aberto para observações,<br />

caso seja necessário reportar alguma situação específica, por<br />

exemplo, quando algum caso <strong>de</strong> testes apresentou problemas<br />

e não po<strong>de</strong> ser executado.<br />

Conclusões<br />

Ao longo do tempo esses relatórios po<strong>de</strong>rão ser consolidados,<br />

gerando informações da qualida<strong>de</strong> durante o semestre, ou ano,<br />

por exemplo. Ferramentas <strong>de</strong> qualida<strong>de</strong>, como por exemplo, os<br />

gráficos <strong>de</strong> Pareto e <strong>de</strong> Controle, po<strong>de</strong>m e <strong>de</strong>vem ser utilizadas<br />

para se analisar as causas e as tendências dos problemas encontrados<br />

nos processos, mirando a melhoria contínua e a garantia<br />

<strong>de</strong> qualida<strong>de</strong>, e não apenas o controle da qualida<strong>de</strong>.<br />

Vale ressaltar que quanto maior o controle inserido no processo<br />

<strong>de</strong> testes, maior será o custo das suas ativida<strong>de</strong>s, pois as<br />

tarefas <strong>de</strong> coleta, preparação e análise dos dados, assim como<br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

Dê seu Feedback<br />

sobre esta edição<br />

48 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Reportando <strong>de</strong> forma simples os resultados dos testes<br />

a comunicação dos resultados, exigem um esforço a mais dos<br />

analistas <strong>de</strong> testes. Em contrapartida, quanto menor for o<br />

controle, maior o risco <strong>de</strong> problemas no projeto. Dessa forma,<br />

esse compromisso tem que ser muito bem pensado, para que<br />

reflita no planejamento dos testes.<br />

Referências<br />

QAI, Gui<strong>de</strong> to the CSTE Common Body of Knowledge. Quality Assurance Institute, Version 6.1.1<br />

– 2006, http://www.softwarecertifications.org<br />

MARICK, Brian; Classic Testing Mistakes, STQE, 1997.<br />

KOLAWA, A.; HUIZINGA, D. (2007). Automated Defect Prevention: Best Practices in <strong>Softwa</strong>re<br />

Management. Wiley-IEEE Computer Society Press. p. 74. ISBN 0470042125.<br />

MARICK, B. “When Should a Test Be Automated?”. StickyMinds.com. Acessado em 10/03/2010.<br />

PRETSCHNER, A. (2005), “Mo<strong>de</strong>l-based testing”, Proceedings of 27th International Conference<br />

on <strong>Softwa</strong>re Engineering, (ICSE‘05), pp. 722-723.<br />

UTTING, M.; LEGEARD, B.; (2007), “Practical Mo<strong>de</strong>l-Based Testing: A Tools Approach”, ISBN-13:<br />

978-0-12-372501-1, Morgan-Kaufmann.<br />

CRAIG, R.D., JASKIEL, S. P., “Systematic <strong>Softwa</strong>re Testing”, Artech House Publishers, Boston, 2002.<br />

PRESSMAN, R. S., “<strong>Softwa</strong>re Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova<br />

York, NY, 2005.<br />

ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualida<strong>de</strong> <strong>de</strong> software – Teoria e prática”,<br />

Prentice Hall, São Paulo, 2001.


Desenvolvimento<br />

Nesta seção você encontra artigos voltados para diferentes<br />

abordagens <strong>de</strong> apoio ao <strong>de</strong>senvolvimento <strong>de</strong> projetos <strong>de</strong> software<br />

Teste unitário e <strong>de</strong> cobertura para Java<br />

Script com JsUnit e JsCovarage<br />

Jenifer Vieira Toledo<br />

jenifer@jenifer.eti.br<br />

Twitter: @Jenifer_Vieira<br />

É Graduada em Ciência da Computação pela<br />

Faculda<strong>de</strong> Governador Ozanam Coelho (FA-<br />

GOC), Pós-graduanda em Gerência <strong>de</strong> Projetos<br />

em <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re pelo Centro <strong>de</strong> Ensino<br />

Superior <strong>de</strong> Juiz <strong>de</strong> Fora (CES/JF) e Técnica<br />

<strong>de</strong> Hosting da empresa Optical Soluções em<br />

Informática Ltda.<br />

Elessandro Rodrigues Marques<br />

elessandrorm@gmail.com<br />

É Licenciado em Informática pela Unipac Ubá/<br />

MG. Especialista em Administração <strong>de</strong> Banco<br />

<strong>de</strong> Dados e Pós-graduando em Gerência <strong>de</strong><br />

Projetos em <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re pelo<br />

Centro <strong>de</strong> Ensino Superior <strong>de</strong> Juiz <strong>de</strong> Fora<br />

(CES/JF). Tem experiência <strong>de</strong> 6 anos como<br />

programador Clipper, Delphi e Java, há 2 anos<br />

trabalha como Analista <strong>de</strong> Sistemas pela empresa<br />

Colchões Paropas.<br />

Marcelo Santos Daibert<br />

marcelo@daibert.pro<br />

Twitter: @msdaibert<br />

É Mestre e Especialista em Ciência da Computação<br />

pela Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Viçosa, professor<br />

e coor<strong>de</strong>nador do Curso <strong>de</strong> Bacharelado<br />

em Ciência da Computação da FAGOC (Faculda<strong>de</strong><br />

Governador Ozanam Coelho) e Bacharel<br />

em Sistemas <strong>de</strong> Informação pela Faculda<strong>de</strong><br />

Metodista Granbery. Gerente técnico da Optical<br />

Soluções em Informática Ltda.<br />

Marco Antônio Pereira Araújo<br />

maraujo@<strong>de</strong>vmedia.com.br<br />

É Doutor e Mestre em <strong>Engenharia</strong> <strong>de</strong> Sistemas e<br />

Computação pela COPPE/UFRJ, Especialista em<br />

Métodos Estatísticos Computacionais e Bacharel<br />

em Informática pela UFJF, Professor dos Cursos<br />

<strong>de</strong> Bacharelado em Sistemas <strong>de</strong> Informação<br />

do Centro <strong>de</strong> Ensino Superior <strong>de</strong> Juiz <strong>de</strong> Fora e<br />

da Faculda<strong>de</strong> Metodista Granbery, Professor do<br />

curso <strong>de</strong> Bacharelado em Ciência da Computação<br />

da FAGOC, Professor do Curso Superior <strong>de</strong><br />

Tecnologia em Análise e Desenvolvimento <strong>de</strong><br />

Sistemas da FAA, Analista <strong>de</strong> Sistemas da Prefeitura<br />

<strong>de</strong> Juiz <strong>de</strong> Fora, Editor da <strong>Engenharia</strong> <strong>de</strong><br />

<strong>Softwa</strong>re Magazine.<br />

O<br />

conceito <strong>de</strong> teste <strong>de</strong> software<br />

surgiu no final dos anos 50<br />

como uma ativida<strong>de</strong> isolada da<br />

<strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re. Era aplicado <strong>de</strong><br />

forma manual pelos <strong>de</strong>senvolvedores<br />

com o objetivo <strong>de</strong> revisar seus códigos<br />

fonte. Com o passar dos anos, com esta<br />

abordagem sendo aplicada, os projetos<br />

passaram a apresentar melhora na<br />

qualida<strong>de</strong> do produto final quando<br />

comparados a projetos <strong>de</strong> software que<br />

não aplicavam nenhuma etapa <strong>de</strong> testes.<br />

Mesmo assim, a tarefa <strong>de</strong> efetuar testes<br />

em software foi consi<strong>de</strong>rada secundária<br />

De que se trata o artigo?<br />

Teste Unitário e <strong>de</strong> Cobertura com a utilização das<br />

ferramentas JsUnit e JsCovarage para a linguagem<br />

<strong>de</strong> programação Java Script.<br />

Para que serve?<br />

Fornecer conhecimentos teóricos e práticos na utilização<br />

da abordagem baseada em testes no <strong>de</strong>senvolvimento<br />

com a linguagem Java Script. Definir o<br />

passo a passo para a utilização da ferramenta JsUnit<br />

e JsCoverage.<br />

Em que situação o tema é útil?<br />

A abordagem <strong>de</strong> <strong>de</strong>senvolvimento baseado em<br />

testes é hoje um importante diferencial para a<br />

busca <strong>de</strong> qualida<strong>de</strong> em qualquer software. Nesse<br />

contexto, o JsUnit se apresenta como uma<br />

ferramenta para automatizar os testes unitários<br />

no ambiente <strong>de</strong> <strong>de</strong>senvolvimento JavaScript. Já<br />

o JsCoverage é uma ferramenta para execução<br />

dos testes <strong>de</strong> cobertura.<br />

por algum tempo, chegando a ser vista<br />

até mesmo como uma punição para os<br />

programadores, ou como uma tarefa<br />

on<strong>de</strong> não se <strong>de</strong>veria gastar muito tempo<br />

e <strong>de</strong>spen<strong>de</strong>r gran<strong>de</strong>s investimentos.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 49


Além disso, testar software para <strong>de</strong>scobrir os <strong>de</strong>feitos que<br />

<strong>de</strong>squalificam os produtos para os consumidores era visto<br />

como um trabalho tedioso e cansativo, a ser evitado pelos mais<br />

artificiosos dos especialistas em tecnologia. Entretanto, a responsabilida<strong>de</strong><br />

com a qualida<strong>de</strong> do produto final <strong>de</strong>senvolvido<br />

<strong>de</strong>ve ser levada em consi<strong>de</strong>ração e justamente por isso o tema<br />

teste <strong>de</strong> software está em evidência.<br />

Nos dias atuais, teste <strong>de</strong> software é visto como um subitem<br />

<strong>de</strong>ntro da Qualida<strong>de</strong> <strong>de</strong> <strong>Softwa</strong>re, sendo que para conseguir<br />

tal qualida<strong>de</strong> é necessário <strong>de</strong>finir padrões <strong>de</strong> trabalho, métodos<br />

e melhorar o processo <strong>de</strong> <strong>de</strong>senvolvimento, assegurando <strong>de</strong><br />

fato que os <strong>de</strong>feitos sejam i<strong>de</strong>ntificados o mais cedo possível<br />

durante o processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software. O custo<br />

<strong>de</strong> um <strong>de</strong>feito em um software não <strong>de</strong>ve ser avaliado somente<br />

pelo aspecto financeiro. Os softwares são escritos para controlar<br />

equipamentos com propósitos mais variados possíveis,<br />

como dosagens <strong>de</strong> medicamentos, exames médicos, construção<br />

e controle <strong>de</strong> aviões, aeronaves espaciais, satélites, entre outros<br />

vários sistemas. E, em muitos casos, um <strong>de</strong>feito po<strong>de</strong> causar<br />

a <strong>de</strong>struição total <strong>de</strong> um caro equipamento ou até mesmo em<br />

perda <strong>de</strong> vidas humanas. Veja abaixo alguns exemplos <strong>de</strong><br />

problemas causados por <strong>de</strong>feitos <strong>de</strong> software:<br />

• Intel: gastou 475 milhões dólares na correção do erro da<br />

vírgula flutuante do Pentium em 1994 (Computer Science,<br />

Springer Verlag - 1995);<br />

• Prime Personal Communications: cancelou contrato <strong>de</strong> US$<br />

500 milhões com a Motorola por causa <strong>de</strong> falhas <strong>de</strong> <strong>Softwa</strong>re<br />

(Wall Street Journal - 24/02/1998);<br />

• Ariane 5: 10 anos <strong>de</strong> <strong>de</strong>senvolvimento no valor <strong>de</strong> US$ 7 bilhões,<br />

com uma carga <strong>de</strong> US$ 500 milhões em equipamentos,<br />

explodiu 40 segundos após lançamento (ESA - 1996);<br />

• Therac-25: seu software ministrou doses <strong>de</strong> radiação em<br />

pacientes entre 1985 e 1987 resultando em seis óbitos (IEEE<br />

Computer - 07/07/1993).<br />

Existem vários outros exemplos e relatos on<strong>de</strong> <strong>de</strong>feitos <strong>de</strong><br />

software foram <strong>de</strong>cisivos para a ocorrência <strong>de</strong> algum problema<br />

ou aci<strong>de</strong>nte, o que motiva a busca e i<strong>de</strong>ntificação prematura<br />

<strong>de</strong>stes <strong>de</strong>feitos, evitando assim a sua manifestação através das<br />

falhas que po<strong>de</strong>m impactar as vidas <strong>de</strong> seus usuários.<br />

O autor Alexandre Bartie, em seu livro sobre Garantia da<br />

Qualida<strong>de</strong>, apresenta um quadro estatístico sobre projetos<br />

americanos <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software relatando que<br />

mais <strong>de</strong> 30% dos Projetos <strong>de</strong> <strong>Softwa</strong>re são cancelados antes<br />

<strong>de</strong> serem finalizados. Mais <strong>de</strong> 70% dos Projetos <strong>de</strong> <strong>Softwa</strong>re<br />

falham nas entregas das funcionalida<strong>de</strong>s esperadas. Os custos<br />

extrapolam mais <strong>de</strong> 180% os valores originalmente previstos e<br />

os prazos exce<strong>de</strong>m em 200% os cronogramas originais.<br />

Neste sentido, o teste <strong>de</strong> software é um componente a mais<br />

<strong>de</strong>ntro do processo <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> software que<br />

busca contribuir para a busca <strong>de</strong> qualida<strong>de</strong>. O objetivo <strong>de</strong>ste<br />

artigo é apresentar as técnicas <strong>de</strong> teste unitário e <strong>de</strong> cobertura<br />

no contexto <strong>de</strong> <strong>de</strong>senvolvimento Web, mais especificamente<br />

para a linguagem Java Script. Para isso, são apresentadas<br />

as ferramentas JsUnit e JsCoverage para, respectivamente,<br />

50 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage<br />

auxiliarem na tarefa <strong>de</strong> teste unitário e <strong>de</strong> cobertura, ambos<br />

<strong>de</strong> forma automatizada.<br />

Teste Unitário<br />

O Teste <strong>de</strong> Unida<strong>de</strong>, ou Teste Unitário, classificado como<br />

teste caixa-branca por ser baseado na estrutura lógica do<br />

código, é responsável por testar a unida<strong>de</strong> <strong>de</strong> codificação da<br />

aplicação. Em um sistema orientado a objetos essa unida<strong>de</strong><br />

po<strong>de</strong> ser representada pelos métodos das classes, ou outro<br />

nível <strong>de</strong> granularida<strong>de</strong>, <strong>de</strong>pen<strong>de</strong>ndo da complexida<strong>de</strong> dos<br />

elementos a serem testados. Esta técnica testa apenas o código<br />

da aplicação, e po<strong>de</strong>m-se testar todas as regras <strong>de</strong> negócio<br />

da mesma.<br />

Gerard Meszaros, em seu livro “xUnit Test Patterns: Refactoring<br />

Test Co<strong>de</strong> Hardcover”, relata muito bem a importância<br />

dos testes unitários, <strong>de</strong>finindo-o para os dias atuais como um<br />

ponto <strong>de</strong> importância em métodos <strong>de</strong> <strong>de</strong>senvolvimento ágil,<br />

como Extreme Programming (XP), reforçando a disponibilida<strong>de</strong><br />

dos sistemas com testes integrados automatizados.<br />

Desta forma, permite aos <strong>de</strong>senvolvedores serem mais ousados<br />

nas modificações do software alcançando um <strong>de</strong>senvolvimento<br />

evolutivo do que com entregas incrementais <strong>de</strong><br />

funcionalida<strong>de</strong>s, acelerando assim, o feedback dos usuários<br />

que contribuem para a qualida<strong>de</strong> do produto.<br />

Praticamente todas as abordagens ágeis <strong>de</strong> <strong>de</strong>senvolvimento<br />

evi<strong>de</strong>nciam o teste como principal aliado para absorver o<br />

não formalismo da documentação <strong>de</strong> software e garantir<br />

assim que a funcionalida<strong>de</strong> correta está sendo <strong>de</strong>senvolvida<br />

e entregue ao cliente.<br />

Por testar a lógica da funcionalida<strong>de</strong>, o código fonte é analisado,<br />

e um fundamental conceito é o <strong>de</strong> caso <strong>de</strong> teste, que<br />

representa uma instância <strong>de</strong> teste para aquela funcionalida<strong>de</strong><br />

que percorre um <strong>de</strong>terminado caminho no algoritmo <strong>de</strong><br />

acordo com seus valores <strong>de</strong> teste. Um algoritmo po<strong>de</strong> possuir<br />

vários casos <strong>de</strong> teste, cada um <strong>de</strong>les contendo os valores que<br />

<strong>de</strong>vem ser testados para analisar e percorrer os caminhos<br />

do algoritmo.<br />

Para <strong>de</strong>finir o número mínimo <strong>de</strong> casos <strong>de</strong> teste para cobrir<br />

todas as possibilida<strong>de</strong>s <strong>de</strong> caminhos <strong>de</strong> processamento <strong>de</strong> um<br />

trecho <strong>de</strong> código, é possível utilizar uma métrica <strong>de</strong> software<br />

chamada Complexida<strong>de</strong> Ciclomática. Esta técnica <strong>de</strong>fine o<br />

número <strong>de</strong> caminhos in<strong>de</strong>pen<strong>de</strong>ntes que um algoritmo <strong>de</strong>ve<br />

percorrer para efetuar todos os processamentos. Juntamente<br />

com esta técnica, po<strong>de</strong>-se utilizar outra chamada Análise do<br />

Valor Limite que <strong>de</strong>fine os valores limites que serão utilizados<br />

para efetuar os testes.<br />

Teste <strong>de</strong> Cobertura<br />

O teste <strong>de</strong> cobertura é responsável por verificar se o teste<br />

unitário está verificando todos os caminhos possíveis do algoritmo<br />

<strong>de</strong> alguma funcionalida<strong>de</strong> do software. Apresenta a<br />

porcentagem <strong>de</strong> cobertura <strong>de</strong> um teste unitário, por exemplo,<br />

sob um <strong>de</strong>terminado método. O objetivo é ter a maior cobertura<br />

possível i<strong>de</strong>ntificando áreas do projeto que ainda não estão<br />

cobertas pelos testes automatizados.


JsUnit<br />

JsUnit é um framework open-source para testes unitários em<br />

Java Script e que segue as conformida<strong>de</strong>s e padrões do pacote<br />

xUnit frameworks.<br />

A família xUnit possui variantes que são especializações<br />

para diversas outras linguagens e outros propósitos. Algumas<br />

<strong>de</strong>stas ramificações são cUnit para a linguagem C, dUnit<br />

para a linguagem Delphi, csUnit para o C# ou qualquer<br />

linguagem .NET, jUnit para a linguagem Java, PyUnit para<br />

a linguagem Python, DBUnit para teste em banco <strong>de</strong> dados,<br />

PHPUnit para a linguagem PHP, entre outras.<br />

JsUnit foi criada em 2001 e roda nas mais variadas combinações<br />

<strong>de</strong> browser/plataformas (navegadores), conseguindo<br />

assim, um vasto número <strong>de</strong> utilizadores, além <strong>de</strong> ter sua<br />

configuração consi<strong>de</strong>rada simples. O JsUnit é um componente<br />

<strong>de</strong> software escrito na linguagem Java Script que disponibiliza<br />

todo o ambiente necessário para o teste unitário.<br />

Para utilizá-lo, basta fazer download <strong>de</strong>ste componente <strong>de</strong><br />

software e esten<strong>de</strong>r sua utilização às funcionalida<strong>de</strong>s do<br />

Java Script.<br />

Com o JsUnit baixado (http://www.jsunit.net/) e tendo<br />

<strong>de</strong>scompactado o arquivo em um diretório qualquer, cabe<br />

<strong>de</strong>screver a estrutura e principais diretórios e arquivos da<br />

ferramenta, conforme apresentado na Tabela 1.<br />

Elemento Descrição<br />

testRunner.html<br />

página web configurada como um painel para a execução dos testes unitários<br />

com o JsUnit.<br />

app<br />

diretório on<strong>de</strong> o núcleo da ferramenta é apresentado e on<strong>de</strong> o arquivo<br />

jsUnitCore.js é disponibilizado.<br />

css<br />

diretório que contém arquivos <strong>de</strong> folhas <strong>de</strong> estilos que são utilizados na página<br />

testRunner.html.<br />

doc diretório que contém toda a documentação da ferramenta<br />

java<br />

diretório que contém o código fonte Java e bibliotecas (JARs) para rodar o JsUnit<br />

diretamente em um ambiente Java.<br />

Licenses diretório que contém os termos e licença <strong>de</strong> uso da ferramenta.<br />

logs diretório que contém os logs <strong>de</strong> um servidor JsUnit.<br />

tabela 1. Estrutura <strong>de</strong> Diretórios e Arquivos do JsUnit<br />

Os testes unitários em JsUnit recebem o nome <strong>de</strong> funções <strong>de</strong><br />

testes e são inseridas em páginas HTML que fazem referência<br />

(inclu<strong>de</strong>) a uma biblioteca específica que fica <strong>de</strong>ntro do diretório<br />

“app” <strong>de</strong> nome “jsUnitcore.js”. Esta biblioteca contém funções<br />

e métodos que permitem a aplicação dos testes unitários<br />

nos códigos escritos em Java Script.<br />

A seguir é apresentado um exemplo utilizando o JsUnit.<br />

É possível observar que <strong>de</strong>ntro do trecho <strong>de</strong> código exibido<br />

na Listagem 1 existem quatro funções: duas chamadas “teste_verificacao1”<br />

e “teste_verificacao2” que foram criadas para<br />

executar os testes (se configuram como dois casos <strong>de</strong> teste), a<br />

terceira é a função “testeA” e, por fim, a função “testeB”, que<br />

representam os testes propriamente ditos.<br />

A função testeA retorna verda<strong>de</strong>iro (true) e a função testeB<br />

retorna falso (false). Já as funções teste_verificacao1 e<br />

teste_verificacao2 aferem o resultado das funções testeA e<br />

VALIDAção, VERIFICAção & tEStE<br />

testeB. No exemplo, o primeiro caso <strong>de</strong> teste afere o resultado<br />

<strong>de</strong> testeA como verda<strong>de</strong>iro, e o segundo também para<br />

a função testeB. Entretanto, a função testeB retorna falso<br />

(linha 10), configurando assim um erro com base no valor<br />

que seria esperado. Erro este que é capturado pelo teste<br />

unitário como é apresentado a seguir.<br />

Listagem 1. Código Exemplo para o JsUnit.<br />

1. <br />

2. <br />

3. Teste Unitário 1<br />

4. <br />

5. <br />

6. function testeA() {<br />

7. return true;<br />

8. }<br />

9. function testeB() {<br />

10. return false;<br />

11. }<br />

12. function teste_verificacao1() {<br />

13. assertEquals(true, testeA());<br />

14. }<br />

15. function teste_verificacao2() {<br />

16. assertEquals(true, testeB());<br />

17. }<br />

18. <br />

19. <br />

20. <br />

21. <br />

22. <br />

Para a execução dos testes, é necessário executar o testRunner.html.<br />

Esse arquivo fica armazenado <strong>de</strong>ntro do diretório<br />

app da ferramenta. Assim que é executado, é apresentada<br />

a interface exibida na Figura 1, que possui uma opção para<br />

se carregar o arquivo HTML com os testes unitários. On<strong>de</strong><br />

é exibida a opção “Enter the location of the Test Page/Test<br />

Suite Page to be run”, entre com o local da página <strong>de</strong> teste<br />

para executar. Basta adicionar no campo o local completo do<br />

en<strong>de</strong>reço do arquivo e clicar em Run para executar os testes.<br />

O resultado do exemplo é exibido pela Figura 2.<br />

Figura 1. Interface do testRunner.html do JsUnit<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 51


Figura 2. Resultado do Teste no testRunner<br />

Na tela <strong>de</strong> resultado é possível observar o erro que foi intencionalmente<br />

adicionado no código para o exemplo. Além <strong>de</strong><br />

apresentar a barra vermelha, é possível verificar <strong>de</strong>talhes do<br />

erro na parte <strong>de</strong> baixo da interface. Ao clicar na opção com<br />

erro é exibido um <strong>de</strong>talhamento: “Expected but was<br />

” – Esperado mas foi . Fazendo<br />

uma clara alusão à função testeB que retorna falso e o caso <strong>de</strong><br />

teste espera por verda<strong>de</strong>iro. Fazendo uma pequena alteração<br />

no caso <strong>de</strong> teste teste_verificacao2 para que ele espere falso,<br />

alterando a linha 16 da Listagem 1 para assertEquals(false,<br />

testeB());, o resultado é exibido na Figura 3, sem erros <strong>de</strong>sta<br />

vez, conforme esperado.<br />

Figura 3. Resultado do Teste no testRunner – sem erros<br />

JsCoverage<br />

JsCoverage é uma ferramenta que faz testes <strong>de</strong> cobertura em<br />

programas escritos na linguagem JavaScript. Para conseguir<br />

52 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage<br />

analisar um código, o JsCoverage instrumenta a biblioteca que<br />

está sendo referenciada pela página HTML, acrescentando<br />

chamadas a funções específicas do JsCoverage que visam<br />

retornar o número <strong>de</strong> execuções <strong>de</strong> cada linha <strong>de</strong> código da<br />

biblioteca, conseguindo assim apresentar uma análise <strong>de</strong><br />

cobertura completa da biblioteca utilizada.<br />

Assim como a JsUnit, a JsCoverage é disponibilizada em um<br />

pacote compactado (http://siliconforks.com/jscoverage/). A<br />

organização dos diretórios também é simples e disponibiliza<br />

na pasta principal os executáveis responsáveis por instrumentar<br />

as bibliotecas que são jscoverage.exe e jscoverage-server.<br />

exe. O diretório DOC contém a documentação da ferramenta<br />

e exemplos <strong>de</strong> utilização.<br />

Como apresentado, a JsCoverage precisa instrumentar os<br />

códigos Java Script para po<strong>de</strong>r i<strong>de</strong>ntificar a cobertura da sua<br />

execução. Há, basicamente, três formas essenciais para essa<br />

ativida<strong>de</strong>.<br />

A primeira é utilizar o utilitário jscoverage.exe que está <strong>de</strong>ntro<br />

da pasta principal. A sua utilização é simples e basta digitar<br />

o comando abaixo no prompt <strong>de</strong> comandos do MS-DOS, on<strong>de</strong> o<br />

DIRETORIO-FONTE é o diretório que possui os códigos fonte<br />

a serem instrumentados e o DIRETORIO-DESTINO será o diretório<br />

on<strong>de</strong> os códigos instrumentados serão enviados. Observe<br />

que serão instrumentados todos os arquivos com a extensão .js<br />

<strong>de</strong> todo o diretório e subdiretórios do diretório fonte.<br />

jscoverage.exe DIRETORIO-FONTE DIRETORIO-DESTINO<br />

A segunda forma é usar o jscoverage-server, que é um servidor<br />

Web simples que instrumenta os códigos Java Script<br />

automaticamente, não sendo necessária a execução <strong>de</strong> qualquer<br />

comando adicional. Para se iniciar o servidor, basta executar<br />

jscoverage-server.exe no prompt do MS-DOS que o servidor<br />

será instanciado em memória. Ele abrirá o servidor na porta<br />

8080 e, portanto, se houver algum outro aplicativo no servidor<br />

que esteja utilizando essa porta, o JsCoverage não irá funcionar<br />

nas suas configurações padrão.<br />

Para testar, basta acessar em qualquer navegador o en<strong>de</strong>reço<br />

http://127.0.0.1:8080/jscoverage.html. Ao abrir este link, uma<br />

interface para a instrumentação dos códigos Java Script é<br />

exibida ao usuário conforme po<strong>de</strong> ser visto na Figura 4. Para<br />

<strong>de</strong>sligar o servidor, basta fechar a janela do prompt do MS-<br />

DOS. Quando os códigos são instrumentados na primeira<br />

forma (a forma manual), é gerada no diretório <strong>de</strong>stino a mesma<br />

interface exibida nesta segunda forma – basta para isso acessar<br />

o arquivo jscoverage.html no diretório <strong>de</strong>stino.<br />

Um <strong>de</strong>talhe que merece <strong>de</strong>staque é quanto à necessida<strong>de</strong> dos<br />

arquivos <strong>de</strong> código fonte do seu site (HTML, Java Script, entre<br />

outros) a serem testados estarem no mesmo diretório do arquivo<br />

jscoverage-server, ou então ser chamado pelo diretório dos<br />

códigos fonte do site. Mas, nesse caso, é necessário configurar<br />

a ferramenta na variável PATH das variáveis <strong>de</strong> ambiente do<br />

sistema operacional.<br />

E há ainda uma terceira forma, que é utilizando o jscoverageserver<br />

com a opção <strong>de</strong> proxy ativada. Com essa forma, os<br />

códigos são instrumentados <strong>de</strong> forma automática ao serem


acessados pelo proxy. Entretanto, é necessária uma configuração<br />

<strong>de</strong> portas para o proxy, não sendo essa opção tratada<br />

neste artigo.<br />

Figura 4. Interface do JsCoverage-server<br />

Para exemplificar a sua utilização, é apresentado um exemplo<br />

nas Listagens 2 e 3. Na Listagem 2 é exibido um código HTML<br />

<strong>de</strong> uma pequena página que possui um campo <strong>de</strong> texto para<br />

inserção <strong>de</strong> qualquer valor. Há também um botão que submete<br />

o formulário com o valor digitado pelo usuário da página. O<br />

formulário, no evento onSubmit, faz acesso à uma função Java<br />

Script <strong>de</strong>finida na Listagem 3.<br />

Listagem 2. Código Exemplo HTML para o JsCoverage.<br />

1. <br />

2. <br />

3. Teste <strong>de</strong> Cobertura<br />

4. <br />

5. <br />

6. <br />

7. <br />

8. Valor: <br />

9. <br />

10. <br />

11. <br />

12. <br />

Listagem 3. Código Exemplo Java Script para o JsCoverage.<br />

1. function enviaJavaScript(){<br />

2. var vValor = document.frmTeste.inptValor.value;<br />

3. alert(“Resultado: “+vValor);<br />

4. if (vValor > 100){<br />

5. alert(“Valor maior que 100”);<br />

6. }else{<br />

7. alert(“Valor menor ou igual que 100”);<br />

8. }<br />

9. }<br />

A função enviaJavaScript, <strong>de</strong>finida na Listagem 3, captura<br />

o valor do campo do HTML e o exibe com o comando alert.<br />

Após isso, verifica se o valor é maior que 100. Se for, informa<br />

ao usuário e, caso seja menor ou igual que 100, uma mensagem<br />

também é exibida.<br />

Tanto utilizando a primeira ou a segunda forma <strong>de</strong> instrumentação,<br />

o resultado é exibido na Figura 5. Em URL, basta<br />

digitar o nome do arquivo HTML e acionar a função Open in<br />

frame (Abrir no frame). Esta função abre a página HTML no<br />

frame da interface do JsCoverage. Após, basta testar a interface,<br />

digitando, por exemplo, o valor 200. O Java Script irá ser<br />

VALIDAção, VERIFICAção & tEStE<br />

acionado e irá informar o valor digitado juntamente com a<br />

informação que o valor é maior que 100.<br />

Figura 5. Exemplo JsCoverage – Interface Principal<br />

Após ser executado ao menos uma vez, basta acessar a aba<br />

Summary na interface do JsCoverage para visualizar a interface<br />

exibida na Figura 6. Ela apresenta todos os arquivos Java<br />

Script da página executada e as respectivas coberturas <strong>de</strong> cada<br />

um dos arquivos. Para o exemplo, somente há um arquivo, o<br />

script.js, apresentando 83% <strong>de</strong> cobertura. Ao clicar no nome<br />

do arquivo, o JsCoverage exibe linha a linha a cobertura do<br />

código fonte. Desta forma, foi possível observar que a linha<br />

que i<strong>de</strong>ntifica a mensagem <strong>de</strong> menor ou igual que 100 não foi<br />

executada, como apresentado na Figura 7.<br />

Figura 6. Sumário <strong>de</strong> Cobertura dos Arquivos Java Script<br />

Estudo <strong>de</strong> Caso<br />

Buscando exemplificar o uso das ferramentas jsUnit e js-<br />

Coverage, é proposto um estudo <strong>de</strong> caso criado utilizando<br />

a linguagem Java Script. Nele é criada uma função chamada<br />

calcularAprovacao, responsável por verificar se um aluno, por<br />

exemplo, foi aprovado ou não em uma disciplina. A função<br />

recebe por parâmetro a nota 1, nota 2, nota <strong>de</strong> uma prova final<br />

(notaFinal) e a freqüência, como po<strong>de</strong> ser observado pela<br />

Listagem 4.<br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 53


Figura 7. Cobertura da Função enviaJavaScript()<br />

O calcularAprovacao verifica inicialmente se a frequência do<br />

aluno é menor que 75%. Caso seja, o aluno é reprovado <strong>de</strong> imediato,<br />

fazendo com que a função retorne falso. Caso contrário, é<br />

verificada a média da nota1 com a nota2. Caso essa média seja<br />

menor que 30, o aluno também é reprovado. Caso contrário,<br />

se a média for maior ou igual a 70, o aluno é aprovado. Se a<br />

média for maior ou igual a 30 e menor que 70, o aluno estará<br />

em prova final e será aprovado caso o valor da média <strong>de</strong> sua<br />

nota <strong>de</strong> prova final com a média anterior for superior ou igual<br />

a 50. Caso contrário, ele será reprovado.<br />

Com a função <strong>de</strong>finida, o objetivo agora é criar os casos <strong>de</strong><br />

teste, buscando testar as regras <strong>de</strong>scritas pela função. Os casos<br />

<strong>de</strong> teste são <strong>de</strong>finidos em um documento HTML que importa<br />

o core do jsunit e o arquivo Java Script que <strong>de</strong>fine o método<br />

calcularAprovacao. Esse documento HTML é apresentado na<br />

Listagem 5. Para isso, po<strong>de</strong>-se calcular sua Complexida<strong>de</strong> Ciclomática<br />

(CC) utilizando alguma ferramenta <strong>de</strong> métricas, ou<br />

então po<strong>de</strong>-se <strong>de</strong>scobrir quais são as possibilida<strong>de</strong>s <strong>de</strong> retorno<br />

<strong>de</strong> valor para este método, <strong>de</strong> acordo com os dados informados.<br />

Observando atentamente a função calcularAprovacao(), é<br />

possível i<strong>de</strong>ntificar cinco possibilida<strong>de</strong>s <strong>de</strong> retorno, <strong>de</strong> forma<br />

a percorrer todos os caminhos do algoritmo:<br />

• Frequência inferior a 75, a função retorna falso;<br />

• Frequência igual ou superior a 75 e média inferior a 30, a<br />

função retorna falso;<br />

• Frequência igual ou superior a 75 e média igual ou superior<br />

a 70, a função retorna verda<strong>de</strong>iro;<br />

• Frequência igual ou superior a 75 e média final igual ou<br />

superior a 50, retorna verda<strong>de</strong>iro;<br />

• Frequência igual ou superior a 75 e média final inferior a 50,<br />

a função retorna falso.<br />

Ainda na Listagem 5, é possível i<strong>de</strong>ntificar um formulário<br />

para o teste manual. Esse formulário, ao ser submetido, invoca<br />

a função Java Script executaJS(). Esta, por sua vez, está sendo<br />

<strong>de</strong>finida no arquivo avaliarAluno.js, abaixo da função calcularAprovacao,<br />

na Listagem 4. A função basicamente captura os<br />

Listagem 4. Código da Função calcularAprovacao<br />

1. function calcularAprovacao (nota1, nota2, notaFinal, frequencia) {<br />

2. var media;<br />

3. media = 0;<br />

4. if (frequencia < 75) {<br />

5. return false;<br />

6. }<br />

7. else {<br />

8. media = (nota1 + nota2) / 2;<br />

9. if (media < 30) {<br />

10. return false;<br />

11. }<br />

12. else {<br />

13. if (media > 70) {<br />

14. return true;<br />

15. }<br />

16. else {<br />

17. if (((media + notaFinal) / 2) >= 50) {<br />

18. return true;<br />

19. }<br />

20. else {<br />

21. return false;<br />

22. }<br />

23. }<br />

24. }<br />

25. }<br />

26. }<br />

27. function executaJS(){<br />

28. var vForm = document.frmTeste;<br />

29. var vNota1 = vForm.edtNota1.value;<br />

30. var vNota2 = vForm.edtNota2.value;<br />

31. var vNotaFinal = vForm.edtNotaFinal.value;<br />

32. var vFrequencia = vForm.edtFrequencia.value;<br />

33. if (calcularAprovacao(vNota1, vNota2, vNotaFinal, vFrequencia)){<br />

34. alert(“Aprovado”);<br />

35. }else{<br />

36. alert(“Reprovado”);<br />

37. }<br />

38. }<br />

Listagem 5. Casos <strong>de</strong> Teste e HTML - jsUnitTestAvaliarAluno.html<br />

54 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage<br />

1. <br />

2. <br />

3. JsUnit Test Aprovação <br />

4. <br />

5. <br />

6. <br />

7. <br />

8. function testVericarAprovacao_ReprovacaoFrequencia() {<br />

9. assertEquals(false, calcularAprovacao(0, 0, 0, 74))<br />

10. }<br />

11. function testVericarAprovacao_ReprovacaoDiretoPorNota() {<br />

12. assertEquals(false, calcularAprovacao(30, 29, 0, 75))<br />

13. }<br />

14. function testVericarAprovacao_AprovacaoDiretoPorNota() {<br />

15. assertEquals(true, calcularAprovacao(70, 70, 0, 75))<br />

16. }<br />

17. function testVericarAprovacao_AprovacaoComNotaFinal() {<br />

18. assertEquals(true, calcularAprovacao(30, 30, 70, 75))<br />

19. }<br />

20. function testVericarAprovacao_ReprovacaoComNotaFinal() {<br />

21. assertEquals(false, calcularAprovacao(30, 30, 69, 75))<br />

22. }<br />

23. <br />

24. <br />

25. <br />

26. Teste com as Assertivas JsUnit<br />

27. Esta página contém testes para as funções assertivas do<br />

JsUnit.<br />

28. <br />

29. Nota 1: <br />

30. Nota 2: <br />

31. Nota Final: <br />

32. Frequência: <br />

<br />

33. <br />

34. <br />

35. <br />

36.


valores do formulário e invoca a função calcularAprovacao(),<br />

exibindo o resultado final ao usuário.<br />

Execução dos Testes<br />

Com os testes unitários criados, é possível executá-los <strong>de</strong><br />

forma automatizada pelo jsUnit e posteriormente verificar a<br />

cobertura dos testes com o jsCoverage. Entretanto, para que<br />

as ferramentas funcionem juntas é necessária uma adaptação<br />

no jsUnit <strong>de</strong> forma a enviar a execução dos testes à ferramenta<br />

<strong>de</strong> cobertura. O jsCoverage disponibiliza, <strong>de</strong>ntro <strong>de</strong><br />

um dos exemplos oficiais (o exemplo com nome jsunit), uma<br />

versão modificada do jsUnit que sofreu alguns ajustes para<br />

funcionar em conjunto com a ferramenta <strong>de</strong> cobertura. A<br />

principal modificação que po<strong>de</strong> ser observada visualmente<br />

é que a página testRunner.html, responsável pela execução<br />

dos testes unitários, agora traz um botão que chama a ferramenta<br />

jsCoverage após os testes terem sido executados. É<br />

com essa versão modificada do jsunit que este estudo <strong>de</strong> caso<br />

irá ser executado.<br />

Durante os testes para o <strong>de</strong>senvolvimento <strong>de</strong>ste artigo, esta<br />

integração do jsUnit e jsCoverage foi testada com as três formas<br />

<strong>de</strong> instrumentação apresentadas. Entretanto, a integração somente<br />

foi funcional com a segunda forma <strong>de</strong> instrumentação,<br />

na qual utiliza o jscoverage-server.<br />

Com o servidor do jscoverage rodando, abre-se a página:<br />

http://127.0.0.1:8080/testRunner.html e acionam-se os casos <strong>de</strong><br />

teste no arquivo jsUnitTestAvaliarAluno.html: 127.0.0.1:8080/<br />

jsUnitTestAvaliarAluno.html. Os testes são executados, apresentando<br />

o resultado exibido na Figura 8. Importante <strong>de</strong>stacar<br />

que os arquivos do estudo <strong>de</strong> caso <strong>de</strong>vem estar no mesmo<br />

diretório que o servidor do jscoverage (jscoverage-server.exe).<br />

É possível observar que um dos casos <strong>de</strong> teste apresentou<br />

problema (o testVericarAprovacao_AprovacaoDiretoPorNota).<br />

Buscando investigar, foi acionada a opção <strong>de</strong> visualizar<br />

o relatório do jsCoverage (Coverage Report) e o resultado é<br />

exibido na Figura 9.<br />

Figura 8. Resultado do jsUnit – Estudo <strong>de</strong> Caso<br />

VALIDAção, VERIFICAção & tEStE<br />

Figura 9. Resultado do jsCoverage – Estudo <strong>de</strong> Caso<br />

Na Figura 9 são apresentados os resultados do teste <strong>de</strong> cobertura<br />

com os trechos do código fonte que estão sendo cobertos<br />

ou não. Quando coberto, o trecho é marcado em ver<strong>de</strong>. Caso<br />

contrário, em vermelho. Nesse caso, o calcularAprovacao não<br />

está sendo coberto on<strong>de</strong> a variável média está sendo testada<br />

com o valor 70. Esse trecho <strong>de</strong> código, como po<strong>de</strong> ser visualizado,<br />

está sendo mostrado em vermelho.<br />

Como foi dito, o caso <strong>de</strong> teste testVericarAprovacao_AprovacaoDiretoPorNota<br />

falhou sua execução. Isso se <strong>de</strong>ve ao fato<br />

que se esperaria que alunos com média 70 fossem aprovados<br />

e, na realida<strong>de</strong>, estão sendo reprovados. De acordo com o<br />

código-fonte, quem possuir média entre 30 e 70 (inclusive)<br />

<strong>de</strong>ve fazer prova final.<br />

Como esse aluno possui valor 0 na sua prova final, o mesmo<br />

foi reprovado, sendo retornado o valor falso, on<strong>de</strong> o valor<br />

esperado <strong>de</strong>veria ser verda<strong>de</strong>iro, falhando assim o caso <strong>de</strong><br />

teste. Com isso, foi possível i<strong>de</strong>ntificar uma falha no código<br />

fonte, uma vez que o aluno com média <strong>de</strong> valor 70 <strong>de</strong>veria<br />

ser aprovado.<br />

Deve-se então fazer uma alteração no método calcularAprovacao<br />

para que sejam aprovados os alunos com média superior<br />

ou IGUAL a 70. A alteração <strong>de</strong>ve ser realizada na linha<br />

referente à verificação da média ser maior que 70. Modifique-a<br />

para “media >= 70”.<br />

As Figuras 10 e 11 apresentam os resultados do jsUnit e<br />

jsCoverage, respectivamente, após a modificação. Observe<br />

que todos os casos <strong>de</strong> teste são executados <strong>de</strong> forma correta e<br />

a função Java Script possui cobertura <strong>de</strong> 100%.<br />

Consi<strong>de</strong>rações Finais<br />

Uma questão importante ao se trabalhar com testes unitários<br />

é a <strong>de</strong>finição do número <strong>de</strong> casos <strong>de</strong> teste necessários<br />

para avaliar os caminhos possíveis <strong>de</strong> um algoritmo. Como é<br />

impossível testar todas as situações, torna-se primordial não<br />

construir casos <strong>de</strong> teste <strong>de</strong>snecessários, testando as mesmas<br />

situações.<br />

Uma importante técnica é conhecida como Complexida<strong>de</strong><br />

Ciclomática <strong>de</strong> McCabe, já citada, que avalia o número <strong>de</strong><br />

Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 55


Figura 10. Resultado do jsUnit – Estudo <strong>de</strong> Caso – Erro Resolvido<br />

Figura 11. Resultado do jsCoverage – Estudo <strong>de</strong> Caso – Erro Resolvido<br />

caminhos possíveis em um algoritmo, indicando o número <strong>de</strong><br />

casos <strong>de</strong> teste necessários para avaliar as suas possibilida<strong>de</strong>s.<br />

Contudo, essa técnica apenas <strong>de</strong>termina o número <strong>de</strong> casos<br />

<strong>de</strong> teste, não os valores que <strong>de</strong>vem ser utilizados no mesmo.<br />

Família xUnit<br />

http://xunitpatterns.com/<br />

JsUnit<br />

http://www.jsunit.net/<br />

JsCoverage<br />

http://siliconforks.com/jscoverage/<br />

56 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage<br />

Para isso, uma outra técnica conhecida como Particionamento<br />

por Classes <strong>de</strong> Equivalência, auxiliada por outra técnica chamada<br />

Análise do Valor Limite, po<strong>de</strong>m ser úteis, mas fogem<br />

ao escopo <strong>de</strong>ste artigo.<br />

O sucesso <strong>de</strong> uma abordagem <strong>de</strong> <strong>de</strong>senvolvimento apoiada<br />

por testes dá-se em função da qualida<strong>de</strong> dos casos <strong>de</strong> teste. Se<br />

um sistema não falha nos testes planejados, fica a dúvida se<br />

o sistema é <strong>de</strong> boa qualida<strong>de</strong> ou se os casos <strong>de</strong> teste é que são<br />

<strong>de</strong> baixa qualida<strong>de</strong>. Portanto, investir num bom planejamento<br />

<strong>de</strong> testes é fundamental para essa estratégia.<br />

O ambiente <strong>de</strong> execução <strong>de</strong> testes <strong>de</strong>ve ser cuidadosamente<br />

planejado. É importante garantir que o ambiente seja o mesmo<br />

a cada execução do teste, preocupando-se, por exemplo, com<br />

o estado das informações no banco <strong>de</strong> dados.<br />

A utilização <strong>de</strong> técnicas <strong>de</strong> teste proporciona aos <strong>de</strong>senvolvedores<br />

um menor índice <strong>de</strong> <strong>de</strong>feitos no código fonte e,<br />

consequentemente, uma maior confiabilida<strong>de</strong> do sistema no<br />

ambiente <strong>de</strong> produção e maior qualida<strong>de</strong> da aplicação. Nesse<br />

sentido, vimos nesse artigo que o jsUnit é um framework <strong>de</strong><br />

testes unitários e o jsCoverage <strong>de</strong> testes <strong>de</strong> cobertura, ambos<br />

para a linguagem Java Script, que buscam automatizar o<br />

processo <strong>de</strong> testes, tornando possível a implantação <strong>de</strong> uma<br />

política <strong>de</strong> testes na prática.<br />

Links<br />

Dê seu feedback sobre esta edição!<br />

A <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine tem que ser feita ao seu gosto.<br />

Para isso, precisamos saber o que você, leitor, acha da revista!<br />

Dê seu voto sobre este artigo, através do link:<br />

www.<strong>de</strong>vmedia.com.br/esmag/feedback<br />

Dê seu Feedback<br />

sobre esta edição


Edição 25 - <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine 57


58 <strong>Engenharia</strong> <strong>de</strong> <strong>Softwa</strong>re Magazine - Teste unitário e <strong>de</strong> cobertura para Java Script com JsUnit e JsCovarage

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!