rodrigo.devmedia@gmail.com
Doutor e Mestre em Engenharia de Software pela COPPE/UFRJ. Realizou seu Ps-Doutorado na
University of Maryland Baltimore County e Centro Fraunhofer nos Estados Unidos. Atualmente
Professor Titular do Programa de Ps-Graduao em Sistemas e Computao da Universidade
Salvador - UNIFACS.
70 Edio - 2014
Corpo Editorial
Editor
Rodrigo Oliveira Spnola
Colaboradores
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Nicolli Souza Rios Alves
Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine.
bacharel em Cincia da Computao pela Universidade Salvador (UNIFACS).
Consultora Tcnica
Daniella Costa
Jornalista Responsvel
Kaline Dolabella - JP24185
Na Web
http://www.devmedia.com.br/revista-engenharia-de-software-magazine
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor.
Se voc tiver algum problema no recebimento do seu exemplar ou precisar de algum
esclarecimento sobre assinaturas, exemplares anteriores, endereo de bancas de
jornal, entre outros, entre em contato com:
www.devmedia.com.br/central
(21) 3382-5038
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
Sumrio
[ Clia Negrini ]
Feedback
eu
edio
ta
sobre e
s
www.devmedia.com.br/esmag/feedback
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
Elaine G. M. de Figueiredo
mira.figueiredo@gmail.com
Engenharia de Software Magazine - MPS.BR: Melhorando o nvel de maturidade do processo com metodologia gil
agilidade
Descrio do Processo
O processo escolhido baseado nas principais tcnicas da
metodologia XP e do Scrum, enquanto a primeira mais focada
em prticas operacionais de codificao, teste e integrao, a
segunda focada no gerenciamento do projeto.
As prticas XP a serem utilizadas so:
Codificao em par: dois programadores utilizando o mesmo computador escrevem o cdigo e vistoriam o mesmo;
Testes automatizados: escrita de script ou cdigos de
testes para verificarem os cdigos escritos para o programa
e detectarem erros de forma automatizada, precisando para
isso rodar rotinas de testes no prprio sistema;
Integrao contnua: os programadores devem integrar os
novos cdigos ao software to rapidamente e com a maior
frequncia possvel;
Design simplificado: os programadores so estimulados a
desenvolver o cdigo do software o mais simples possvel;
Reegenharia de Software: o cdigo deve ser constantemente
melhorado, sem que a funcionalidade seja alterada pela equipe
do projeto o tempo todo.
As prticas Scrum que sero adotadas so basicamente o
fluxo de processo, ou seja, as fases e etapas cumpridas para a
concepo do software devem ser as mesmas da metodologia
Scrum. Tal metodologia explicitada abaixo com o fluxo de
processo a ser utilizado, assim como perfis, papis e artefatos
entregues.
Perfis e Papis
Os perfis de desenvolvimento necessrios para execuo do
processo so:
Scrum Master: gerencia a metodologia do Scrum, ensinando
as prticas do Scrum a todos os envolvidos no projeto e implementando o Scrum de modo que esteja adequado cultura da
organizao. Para tal, deve garantir que todos sigam as regras
e prticas do Scrum. responsvel por remover os impedimentos do projeto, perceber e resolver problemas pessoais ou
conflitos entre os integrantes da equipe de desenvolvimento.
Product Owner: o proprietrio do produto e deve representar os interesses do cliente. Deve ser a interface entre o cliente
e o time de desenvolvedores, ou seja, estar sempre em contato
Fluxos de Processo
O ciclo ou fluxo do processo tem o seu progresso baseado
em uma srie de iteraes bem definidas, cada uma com durao de duas a quatro semanas, chamadas Sprints. Antes de
cada Sprint, realiza-se uma Reunio de Planejamento (Sprint
Planning Meeting) onde o time (equipe) de desenvolvedores
tem contato com o cliente (Product Owner) para priorizar o
trabalho que precisa ser feito, selecionar e estimar as tarefas
que o time pode realizar dentro da Sprint.
A prxima fase a Execuo da Sprint onde o time controla o andamento do desenvolvimento realizando Reunies
Dirias (Daily Meeting), no mais que 15 minutos de durao,
e observando o seu progresso usando um grfico chamado
Sprint Burndown. Ao final de cada Sprint, feita uma reviso
Engenharia de Software Magazine - MPS.BR: Melhorando o nvel de maturidade do processo com metodologia gil
agilidade
A fase iniciada quando o setor responsvel pelo desenvolvimento de software recebe uma demanda de desenvolvimento.
Para isso, uma ordem de servio criada. A partir da ordem
de servio, o solicitante do servio (cliente) deve identificar o
seu representante (Product Owner). Este Product Owner ser
responsvel por definir as funcionalidades do produto e aceitar
ou rejeitar os resultados das Sprints.
O Product Owner deve possuir o conhecimento a respeito
do negcio e a respeito do Scrum. O Product Owner deve
descrever um estado desejado do produto no futuro. A viso
do produto deve possuir as caractersticas do produto com
uma viso voltada ao negcio, algumas premissas do projeto,
se necessrio, a fim de garantir um entendimento comum das
partes envolvidas e as restries ou limitaes aplicveis que
afetar o desempenho do projeto.
O Product Owner deve definir as funcionalidades desejadas
para o produto e priorizar as mesmas de acordo com seu valor
de negcio. O Product Backlog basicamente uma lista de
10
As tarefas devem ser devidamente divididas entre os integrantes da equipe e atribudas a cada um deles para que tais
profissionais entendam o seu papel e possam juntamente ao
ScrumMaster atualizar suas tarefas no quadro. Deve-se criar
e fixar um quadro de tarefas na parede, referente a Sprint,
para anexar as estrias e suas tarefas atravs de post-its, inserir informaes sobre itens no planejados e acompanhar
os objetivos da Sprint atravs do grfico Burndown. Uma
ferramenta pode ser adotada para a insero do quadro de
tarefas dentre as atividades, pois existem vrias ferramentas
no mercado que so quadro informatizados, que possuem
todas as funcionalidades de tal.
Aps os aceites dos interessados, a diviso e entendimento
das tarefas e estrias; a equipe poder iniciar o desenvolvimento que se baseia na codificao, testes automatizados e
integrao contnua de cdigo no SVN. Neste contexto, os testes
tambm podem incluir a confeco de
artefatos, como plano de teste, roteiro
e casos de testes.
No contexto dos testes, a opo por
adotar testes manuais e a elaborao
de documentaes, o que contrrio
s prticas geis, surge da necessidade
que a organizao ou equipe pode vir
a ter da referida documentao como
registro, ou mesmo no caso de ter
profissionais de teste especializados
e dedicados a somente uma demanda
de desenvolvimento; o que ofertaria
a possibilidade da escrita de cdigo
de teste, automatizando os mesmos, e
da escrita da documentao ou testes
manuais para alguns tipos de testes.
O Scrum Master deve realizar uma
reunio diariamente com todos os
membros da equipe com o objetivo de
sincronizar o progresso do trabalho
e levantar impedimentos que devem
ser removidos.
A equipe deve continuar a codificar,
testar e entregar cdigo enquanto
houverem estrias, deve juntamente
ao Scrum Master verificar o surgimento de tarefas no planejadas,
atualizar o Quadro de Trabalho,
grfico Sprint Burndown e atualizar a
lista de impedimentos, impedimentos
que devem ser retirados sempre pelo
ScrumMaster.
Trs etapas devem ter ateno neste
fluxo, as etapas de atualizao de
Sprint e Product Backlog que podem
ser feitas sobre o quadro de tarefas
ou no prprio artefato de Product
Backlog. Estas so importantes para
Engenharia de Software Magazine - MPS.BR: Melhorando o nvel de maturidade do processo com metodologia gil
agilidade
Tudo o que afeta a forma como a equipe desenvolve o software deve ser aberto para debate, como processos e prticas,
ambiente e comunicao, e ferramentas artefatos.
Por fim, os dados so atualizados e uma nova Sprint
deve ser planejada, iniciando assim novamente o ciclo de
desenvolvimento.
possvel observar que este processo agrega as prticas geis
algumas prticas e procedimentos de metodologias tradicionais. Isto se deve necessidade de obedecer alguns objetivos
de qualidade que so sustentados pelos programas; os mesmos
s podem ser obtidos por meio de prticas no geis, ou ainda
por meio da adaptao destas. Por exemplo: para prover a
rastreabilidade dos requisitos (resultado esperado do processo
gerncia de requisitos do MPS.BR) e assim prever impactos no
desenvolvimento devido a uma solicitao de mudana, ser
inserida uma coluna a mais no documento de Product Backlog,
de modo que sero traados relacionamentos entre as estrias
em que ser possvel notar qual estria poder ser alterada ou
impactada de alguma forma por outra.
A ideia de fazer um processo gil considera prticas de metodologias diferentes, ou seja, prticas geis com tradicionais
no pode ser considerada errnea ou indesejada, pelo contrrio,
um processo escrito dessa forma possibilita a obteno dos
benefcios que ambas as metodologias podem trazer.
Links:
Figura 4. Fluxo geral para a fase de finalizao ou ps-game
11
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
Andr Vidal
andre.vidal@oatsolutions.com.br
12
agilidade
de anlise, para que tenham um protocolo nico de comunicao entre seus membros. Nesse artigo trabalharemos com
os modelos utilizados pela Anlise Orientada a Objetos e os
artefatos utilizaro como base os diagramas da UML (Unified
Modeling Language).
Comunicao
A comunicao interna da equipe numa iterao com Modelagem gil to ou mais importante que a externa, feita junto
ao cliente. A interao entre os membros da equipe deve ter
por objetivo gerar conhecimento e engajamento, auxiliando na
formao de um domnio de conhecimento comum ao time.
Dentre as tcnicas utilizadas por times MA que promovem
melhorias na comunicao, podemos citar a anlise colaborativa, a proximidade na distribuio geogrfica da equipe no
ambiente de trabalho, o uso de sesses de brainstorming e as
reunies dirias.
A forma como a equipe est distribuda no ambiente de trabalho recebe ateno e, realmente, pode fazer a diferena no
desempenho do time durante o projeto. Na Figura 1 podemos
ver um esboo do ambiente propcio prtica da comunicao
osmtica, desejvel para equipes de desenvolvimento XP.
A proposta da comunicao osmtica foi inicialmente estabelecida pela metodologia Crystal Clear, definida por Alistair
Cockburn, tornando o formato das salas de desenvolvimento
bastante conveniente s equipes que atuam com XP e demais
metodologias geis.
A disposio do layout de ambientes MA deve forar
a comunicao entre as pessoas durante os trabalhos de
13
14
Princpios
Os princpios gerais da Modelagem gil (MA) defendem
que o modelo de trabalho das equipes deve evitar a perda de
tempo. Esse conceito vem dos processos baseados nas prticas
do Lean Software Development, onde eliminar o desperdcio,
amplificar a aprendizagem do time, entregar o mais rpido
possvel e capacitar a equipe para a construo de integridade
ao produto so vistos como as formas mais eficazes de exercitar
a modelagem gil com um time. A Modelagem gil aplicada
a esse contexto deve:
Atender a um propsito: Quando existe uma necessidade
que deve ser atendida, presume-se que algo de til est sendo
construdo. O objetivo final da modelagem fazer com que o
cdigo funcione ao final dos trabalhos, mesmo que para isso
modelos exigidos pela metodologia no sejam produzidos,
uma vez que o time chegue concluso que o propsito final,
entregar o cdigo funcionando, no seja atingido;
Ser preciso: A preciso est diretamente ligada eficincia
do modelo produzido. Um modelo preciso auxilia de forma
significativa o entendimento da equipe para com as necessidades do projeto, logo sua utilidade grande;
Ser consistente: A consistncia dos modelos deve sempre ser
averiguada por meio dos testes aplicados pela equipe durante
o desenvolvimento. Eventualmente correes devem ser aplicadas ao modelo, para que o mesmo se mantenha consistente
durante os trabalhos do projeto;
Agregar valor ao produto: A relao custo/benefcio da
utilizao do modelo deve atender s necessidades de comunicao da equipe, no sendo um trabalho descartvel. Logo,
agrega valor ao produto modelos cujo ciclo de vida perdura
por grande parte do projeto;
Ser simples: A simplicidade vista como a grande marca
da Modelagem gil, pois acaba induzindo as equipes trabalharem com modelos de fcil entendimento. Para esse propsito, muitas vezes, as equipes devem seguir o acrnimo KISS
(Keep It Simple, Stupid), para que os modelos produzidos no
agilidade
Ciclo de Vida
A criao de novos modelos em MA segue aquilo que metodologia preconiza: modelos intermedirios e temporrios
devem ter foco na comunicao entre os membros do time,
antes que sejam promovidos a permanente. Para Scott Ambler,
o uso de documentao no relacionada ao desenvolvimento
de software um dos principais causadores de atraso e desperdcio de tempo nas entregas dos projetos. Por tal motivo
criou-se uma falsa concepo que em processos geis no h
documentao. A documentao feita assim que os modelos
intermedirios utilizados sejam homologados e promovidos
produo. Dessa maneira, dizer que no h documentao
um grande equvoco!
Em XP, por exemplo, prope-se uma inverso nas fases do
desenvolvimento de software tradicional, executando as atividades de anlise e testes frente da codificao e do design.
Assim, o ciclo de vida dos artefatos criados para comunicao
da equipe tende a ser mais curtos, relegando aos artefatos
de arquitetura e modelos relacionais aquilo que realmente
necessita ser documentado num projeto. Para isso, os critrios
utilizados na criao de novos modelos durante a iterao MA
seguem o workflow apresentado na Figura 2.
importante salientar que todo projeto MA prega que
uma equipe deve produzir software potencialmente pronto
para funcionar em produo com periodicidade curta. Dessa
maneira, em MA a documentao deve ser produzida aps a
implantao das funcionalidades em produo. Isso justifica
que um artefato, desde sua concepo at sua transformao
em um modelo permanente, muitas vezes seja trabalhado de
forma temporria.
A garantia que cdigo esteja pronto para ser utilizado em
produo ao final de uma iterao no implica que sua documentao tambm seja gerada durante a mesma iterao. Dessa
maneira, comum estipular que a documentao seja produzida aps a implantao das funcionalidades em produo.
Estudo de Caso
Nesse artigo, para fins didticos, iremos apresentar os
principais conceitos da Modelagem gil por meio da sua
15
Viso do produto
O WebBank um banco lder em seu segmento de mercado
e deseja disponibilizar uma nova tecnologia para acesso a
servios bancrios de conta corrente, atendendo assim uma
das principais solicitaes de seus clientes; obtidas na ltima
pesquisa de satisfao feita pelo banco.
O WebBank ir oferecer os principais servios utilizados por
seus clientes tambm por meio de aplicativo para dispositivos
mveis. O App ser disponibilizado para download em dois
formatos, um para o sistema operacional iOS e outro para
Android.
De acordo com o estudo feito pelo banco, os servios mais
acessados pelos seus clientes em seu site na web faro parte
da primeira verso do software. Dessa maneira, o aplicativo
dever oferecer apenas os servios bsicos de conta corrente.
Pelo aplicativo ser possvel que o cliente obtenha o saldo e
extrato de sua conta, alm dos servios de pagamento de contas e compra de recarga para celular. Cada movimentao na
conta corrente feita pelo cliente via aplicativo, ser tarifada de
acordo com a tabela de preos vigente do banco.
O App deve ser simples e interativo. Na tela inicial, o cliente
poder inserir o nmero da conta. Caso a conta seja vlida,
ter a permisso para efetuar seu login. Logo que for identificado, ser apresentada ao cliente a tela principal do aplicativo,
onde ser apresentado o saldo atual da conta e os servios que
podero ser utilizados.
Algumas informaes relacionadas ao projeto so:
Stakeholders: Cliente WebBank, Gerente de Produto
WebBank;
Premissas: O App ser disponibilizado no formato para iOS
e outro para Android;
Restries: Toda solicitao feita pelo cliente via aplicativo
dever ser autenticada pelo sistema de Segurana WebBank.
16
agilidade
17
Dado esse primeiro passo, para que tudo fique ainda muito
mais intuitivo, pode ser til definir como ser a dinmica
dos controles que estaro disponveis para o usurio durante
o uso da aplicao. Portanto, entender como as interfaces se
comunicam com o cliente e tentar estabelecer um modelo
passo a passo do aplicativo, simulando sua navegao pode
ser uma tarefa desejvel, facilitando a compreenso do comportamento do software. A equipe pode definir um Modelo de
Navegao do aplicativo para esse fim, conforme apresentado
pela Figura 6.
Orientao a testes
18
agilidade
19
Modelagem incremental
Modelagem coletiva
20
agilidade
21
Crispin, L., Gregory, J., Agile Testing, A Practical Guide for Testers and Agile
Teams (2009): Addison-Wesley.
22
Kroll, P., MacIsaac, B., Agility and Discipline made Easy, Pratices from OpenUp
and RUP (2006): Addison-Wesley.
Poppendieck, M., Poppendieck, T, Lean Software Development: An Agile
Toolkit (2003), Addison-Wesley Professional.
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Gerente de Projetos certificado PMP, ITIL, Microsoft entre outras. Atuando na rea de informtica desde 1992 e, a mais de 10 anos liderando
equipes em projetos de desenvolvimento e implantao de softwares. Nos ltimos cinco anos,
atuando como Scrum Master em projetos em
diversas tecnologias e ramos de negcio.
23
executivos de projetos (PMOs) ao redor do mundo, demonstrando o que mudou no ano de 2013 em relao ao ano de
2012. Em linhas gerais, o estudo da ESI representa o que os
PMOs vem enfrentado e seus principais desafios em termos
de futuro.
A Version One emite um relatrio anual sobre um estudo a
respeito da situao da adoo das metodologias geis por empresas de diversos tamanhos ao redor do mundo. Este estudo
busca responder questes tais como o aumento ou a reduo
de eficincia percebida nos projetos, atravs da compilao e
apresentao de quadros explicativos expondo os nmeros percentuais das opinies das pessoas pesquisadas neste estudo.
Outros e relevantes assuntos so tratados de forma objetiva
apontados neste estudo o qual o torna uma fonte de informao
muito rica para apoiar a tomada de deciso, principalmente
para aquelas empresa que ainda no optaram ou ainda no se
decidiram por adotarem uma metodologia gil.
Com o advento da popularizao das metodologias geis e
uma crescente demanda em sua adoo, as empresas do ramo
de desenvolvimento de software precisam adequar-se a esta
nova realidade. Em empresas de menor porte, a adoo por
um novo mtodo , sem dvida, mais rpido e fcil do que em
uma empresa de maior porte.
Uma empresa de maior porte precisa de maiores e mais
precisos controles sobre o andamento de seus projetos. Em
empresas deste tipo, geralmente optaram por criar uma
estrutura projetizada, a rea de projetos vista com grande
relevncia e deve estar alinhada com as estratgias da empresa.
de responsabilidade do executivo de projetos tornar esse alinhamento possvel e garantir que os projetos sejam concludos
conforme tais expectativas.
Os executivos de projetos, dentro dos escritrios de projetos, tambm so responsveis pela criao e manuteno da
metodologia de projetos da empresa, eles devem promover
uma melhoria contnua nos processos que compem a metodologia de projetos da empresa. Optar por adotar uma metodologia gil requer uma importante e decisiva participao
dele. Neste artigo veremos quais so as principais barreiras e
preocupaes encontradas as quais impedem ou dificultam a
adoo dos mtodos geis. Por outro lado, este artigo tambm
abordar os ganhos percebidos pelas empresas que optaram
em adot-los.
24
planejamento
25
Projetos podem ser organizados atravs de programas de projetos e, o conjunto de programas de projeto pode ser organizado
em portflio de projetos. Esta abordagem de organizao de projetos melhor executada e controlada no escritrio de projetos
pois, tambm funo dele prover a situao dos projetos. A
categorizao dos projetos em programas ou portflios uma
forma de demonstrar o alinhamento dos projetos estratgia da
empresa. Projetos de pesquisa, por exemplo, podem no estar
na estratgia da empresa at que surjam oportunidades (riscos
positivos) onde um ou mais projetos de pesquisa podem se
tornar estratgicos. Desta maneira, atravs do uso da avaliao
dos programas e/ou portflios de projetos, torna-se mais clara
a deciso em se executar ou no um determinado programa ou
projeto. O executivo de projetos dever garantir que estes projetos estejam alinhados com a estratgia comercial da empresa. o
mesmo que dizer: O sucesso da empresa depende do sucesso
dos projetos e do Executivo de Projetos respectivamente.
26
planejamento
72% pode ser encarado como um excelente ndice demonstrando a preocupao das empresas em investir na criao e
manuteno dos escritrios de projetos. As empresas demonstram tambm o quanto valorizam e entendem a importncia
na adoo dos escritrios de projetos e a conscincia da necessidade do alinhamento das estratgias junto a rea de projetos.
Em termos globais, 46% das empresas possui um escritrio de
projetos. Neste estudo, mencionado que o grande desafio
dos PMOs lidar com o ambiente dos clientes em constante
mudana e a crise financeira global.
80%
72%
70%
60%
50%
40%
30%
20%
13%
10%
7%
4%
4%
0%
Yes
No
Don't Know
No
No
27
30%
30%
28%
Management opposition
24%
Lack of documentation
23%
Lack of predictability
20%
No concerns
18%
Inability to scale
17%
Regulatory compliance
13%
9%
28
planejamento
Somewaht important
3%
3%
Very Important
21%
43%
17%
27%
28%
9%
30%
6%
12%
45%
40%
14%
41%
13%
8%
35%
10%
38%
40%
7%
40%
45%
34%
15%
47%
36%
15%
18%
47%
35%
11%
19%
48%
15%
23%
55%
Reduce Cost
27%
42%
24%
6%
32%
54%
9%
3%
Highest importance
7%
36%
37%
5%
25%
4%
29
12%
9%
6%
Slower time to
complete
Same time to
complete
Faster time to
complete
No Benefit
Got Worse
92%
87%
11%
2%
86%
12%
2%
86%
11%
82%
Reduce risk
82%
17%
1%
Faster time-to-market
83%
16%
1%
82%
16%
78%
74%
75%
15%
4%
67%
30
7% 1%
18%
22%
23%
29%
3%
2%
4%
4%
2%
4%
planejamento
com um objetivo claro (meta da Sprint) o qual se refere a entrega de software funcionando. O PMO dever reservar um
tempo maior em ateno aos pedidos das equipes geis. Uma
necessidade apontada durante a Reviso da Sprint, caso no
seja resolvida at o final do planejamento da prxima Sprint
(Sprint Plan), pode ser encarado como um impedimento o qual
poder gerar entre atrasos ou at o cancelamento da Sprint.
Percebemos agora o quo importante ser a atitude do PMO
frente a este novo cenrio.
Outro ponto muito importante que o escritrio de projetos
dever auxiliar os gerentes de projetos e as equipe geis no que
se refere ao treinamento e capacitao das equipes. As necessidades por treinamentos e o ritmo acelerado de trabalhos iro
impor grandes restries de tempo para que as equipes possam
enviar as pessoas para serem treinadas.
Tomando como base o Scrum, como metodologia gil, um
papel indispensvel o chamado Product Owner, ou Dono do
Produto. Este papel impe um conhecimento muito profundo
sobre o que o produto (a ser criado e entregue pela equipe
Scrum) bem como o senso de prioridade. No Scrum, os requisitos
so tratados como estrias e, cada estria seria um conjunto de
requisitos funcionais e/ou no funcionais os quais so esperados como funcionalidades palpveis, parte do que se chama de
software funcionando. Uma Sprint precisa ser planejada e, este
planejamento passa pela anlise de um conjunto de estrias
priorizado pelo Product Owner. A equipe Scrum se rene e,
analisa o conjunto de estrias e emite um oramento. O resultado deste planejamento (Sprint Plan) a meta da Sprint, em
outras palavras, a quantidade de estrias cujo esforo orado
possvel de ser entregue dentro do prazo de execuo de uma
Sprint (geralmente de trs a quatro semanas).
31
60%
50%
40%
30%
Links e Referncias:
20%
10%
1%
1%
1%
1%
2%
2%
3%
5%
7%
11%
10%
0%
32
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Gerente de Projetos certificado PMP, ITIL, Microsoft entre outras. Atuando na rea de informtica desde 1992 e, a mais de 10 anos liderando
equipes em projetos de desenvolvimento e implantao de softwares. Nos ltimos cinco anos,
atuando como ScrumMaster em projetos em
diversas tecnologias e ramos de negcio.
33
46%
26%
Pouco Difcil
Sem Dificuldade
Definio de Projeto
Segundo oPMBOK (Project Management Body of Knowledge livro reconhecido como o Corpo de Conhecimentos sobre
Gesto de Projetos), publicado e mantido pela instituio americana PMI (Project Management Institute), em linhas gerais,
projeto um esforo temporrio empreendido para alcanar
um objetivo especfico. Projetos so executados por pessoas,
geralmente tm limitaes de recursos e so planejados, executados e controlados. Um projeto cria um produto, servio
ou resultado especfico.
Construir uma nova estrada, uma praa de pedgios, um
novo sistema de gesto de recursos, uma escola, um novo
servio de atendimento, so bons exemplos de projetos. Neste
momento, importante ressaltar a diferena entre Projeto e
Operao. Operao uma ao em si, o ato de fazer alguma
coisa de forma padronizada e repetitiva, so as aes que
sustentam as atividades comerciais.
Outro exemplo de projeto, aquele que objetiva alcanar um
resultado especfico pode ser considerado como um projeto de
melhoria. Um projeto sobre algo que j existe e que pode ser
modificado de forma a gerar melhores resultados ou atender
a mudanas de necessidades (requisitos).
Agora que o termo projeto est definido, precisamos entender como os projetos so executados / conduzidos. Para
tanto, preciso entender as metodologias voltadas para este
tema. Metodologias so conjuntos de processos (aes) e
ferramentas que auxiliam na execuo de uma determinada
atividade.
34
planejamento
35
36
um sistema de gesto (ERP), construir um novo sistema, elaborar um novo site ou uma grande mudana visando atender
a objetivos estratgicos da empresa. Ao solicitante ou cliente
do projeto d-se o nome de patrocinador. o patrocinador que
ir usufruir dos resultados alcanados no projeto e, aquele que
paga pelo projeto.
Mas, no basta saber o que se quer, ter em mente o objetivo
esperado apenas parte do projeto. A partir deste momento,
existe uma pessoa a qual dever transformar este objetivo
em um projeto e o profissional mais indicado o gerente de
projetos.
Como nosso enfoque a rea de desenvolvimento de software, iremos assumir que trataremos de um projeto de um novo
sistema (software). Desta forma, do ponto de vista prtico, a
alta direo da empresa precisar saber, basicamente, para entrega deste novo sistema a ser desenvolvido, quanto tempo ir
levar, quanto custar, como saber se o novo sistema atender
s expectativas, quantas etapas ou fases, como e quando sero
informados do avano do projeto, quais e quantas pessoas
sero envolvidas, como os problemas sero encaminhados e
resolvidos, enfim, sero necessrios documentos que definiro todos estes pontos, um informe executivo peridico entre
outros documentos.
Digamos que este o modo formal, ou melhor, profissional
de se gerenciar projetos conforme consta no PMBOK. O patrocinador e todas as partes interessadas (pessoas afetadas
direta ou indiretamente pelo projeto) sabero de todo o andamento, das suas atividades e responsabilidades, a partir das
informaes, documentos e relatrios emitidos pelo Gerente
de Projetos. Percebam que esta forma de conduo de projetos
generalista ao ponto de poder ser adotada em projetos de
qualquer natureza, desde a construo de uma ponte, de criar
uma nova linha de montagem em uma indstria automotiva
e, neste ponto que se destacam as boas prticas sugeridas no
PMBOK (PMI) e a necessidade de se criar uma metodologia
dentro da empresa a qual estabelea esta cultura de projetos
para que todos os envolvidos estejam integrados em todos os
momentos do projeto, entendendo o que est sendo, o que ser
feito e, principalmente, o que est sendo dito e informado sobre
o projeto. Este o contexto de um projeto.
planejamento
pessoas as quais detinham o conhecimento para instruir (programar) um computador, atravs de uma linguagem especfica
para executar as tarefas determinadas. Nesta ocasio, no
existiam mtodos ou normas as quais orientasse a construo
destes programas.
Dada a falta de mtodos e de profissionais frente a crescente demanda, no final da dcada de 1960, instaurou-se
a chamada Crise do Software. Para normalizar a prtica
de desenvolvimento de sistemas, surge a Engenharia de
Software trazendo consigo os princpios da engenharia
tais como: criao, construo, anlise, desenvolvimento
e manuteno, com um tratamento mais sistemtico e controlado. Com a engenharia de software torna-se possvel
especificar, projetar, planejar, construir, aferir e garantir a
qualidade dos resultados.
Com a evoluo da engenharia de software, foram criados os
chamados modelos de processo de software. Estes modelos visam a melhor representao do gerenciamento do processo de
software, trazendo maior visibilidade. Os modelos basicamente
determinam o ciclo de vida. Ciclo de vida, como o prprio
nome indica, significa a representao de todas as fases desde
a concepo at a finalizao do software entregue, quando
este passa a ser tratado como um produto e ser mantido em
um regime de operao de manuteno. So exemplos de
modelos de processo:
Sequencial ou cascata;
Desenvolvimento iterativo e incremental;
Evolucional ou prototipao;
Modelo em V;
Espiral;
Componentizado;
Formal;
gil;
RAD.
37
38
planejamento
Como referncia em termos da maturidade no desenvolvimento de software, o modelo CMMI aceita plenamente a
adoo de metodologias geis desde que estas no interfiram
ou deixem de lado o cumprimento das boas prticas como
registros e controles.
O modelo CMMI fornece um conjunto de boas prticas geralmente aplicveis em grandes projetos que possuam altos nveis
de risco e ainda, oferece um conjunto de prticas de gesto e
suporte para implantao dos mtodos geis nas empresas,
independentemente do tamanho dos projetos. No cabe neste
artigo o detalhamento sobre o Modelo CMMI. Recomendamos
o artigo CMMI: Uma viso Geral publicado na edio nmero 44. O importante ter em mente o fato de que a maturidade
pode e deve andar em conjunto com a agilidade.
Da mesma forma que o modelo CMMI prev e apoia a adoo
das metodologias geis, o PMI (Project Management Institute)
tambm as reconhece. Em 2011 o PMI lanou uma nova certificao voltada aos praticantes dos mtodos geis chamada
de PMI-ACP (Agile Certified Practitioner ou Praticante de Agile
Certificado). Esta certificao visa demonstrar ao mercado
(empregadores) o nvel de profissionalismo em prticas geis
na gesto de projetos pelo praticante (profissional), aumentar
a versatilidade do profissional em ferramentas e tcnicas de
gesto de projetos, aliada com a capacidade de liderana de
equipes geis e a disponibilizao de uma estrutura voltada
treinamentos e iniciativas de desenvolvimento profissional.
39
40
planejamento
passaram a entender que um Gerente de Projetos tambm poderia assumir a funo de ScrumMaster. Diante da novidade e,
por vezes, da falta de informaes podemos considerar natural
que esta confuso entre papis ocorram.
Segundo o PMBOK (PMI), o papel do gerente de projetos a
pessoa definida por uma organizao responsvel por garantir que os resultados (objetivos) do projeto sejam alcanados.
Diferentemente dos gerentes funcionais (responsveis por
equipes funcionais ou unidades de negcio especficas) ou dos
gerentes operacionais (responsveis por garantir a eficincia
das operaes comerciais). Um Gerente de Projetos possui
responsabilidades e competncias prprias. Destacamos entre
as responsabilidades do Gerente de Projetos a responsabilidade de atender s necessidades das tarefas, das equipes e
dos indivduos, funcionando como um elo entre a equipe e a
estratgia pois, atravs dos projetos que as empresas podem
crescer e se manterem atendendo as crescentes e variadas
demandas do mercado.
Um Gerente de Projeto precisa deter muito mais do que conhecimentos sobre ferramentas e tcnicas, deve aliar a prtica
e ainda possuir habilidades gerenciais (soft skills) tais como:
liderana, motivao, possuir boa comunicao, influenciador,
tomada de deciso, confiabilidade, gesto de conflitos, orientao, entre outros.
O papel do ScrumMaster, diferentemente do Gerente de Projeto, o de facilitar o caminho da equipe para que esta possa
concluir os objetivos da Sprint, removendo impedimentos,
impedindo que influencias externas atrapalhem o andamento das atividades, mantendo o foco da equipe. Alm disso, o
ScrumMaster o responsvel pela aplicao correta das prticas do Scrum, capacitando e motivando a equipe, promovendo
as adaptaes necessrias ao processo de desenvolvimento de
software. No precisa necessariamente ser um Lder da equipe
de desenvolvimento, mas por outro lado, assume para si o
papel de ponto focal entre a equipe e os demais envolvidos no
projeto como o Gerente de Projetos e o Cliente.
Percebemos que algumas empresas, ao publicarem vagas
e oportunidades de emprego vem exigindo, cada vez mais,
que tanto o Gerente de Projetos possua conhecimento e experincia com Scrum e prticas geis bem como, exigindo do
41
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
Clia Negrini
celianegrini@hotmail.com
42
en gen haria
43
100
99
1.000
944
10.000
6239
100.000
14.228
1.000.000
16.317
44
Amostragem estratificada
A amostragem estratificada tem sido amplamente estudada e
utilizada desde a dcada de 1950. H muitos livros a respeito da
amostragem estratificada. No entanto, tanto quanto sabido,
a amostragem estratificada no tem sido aplicada no campo
da engenharia de confiabilidade de software.
A amostragem estratificada foi conhecida como um mtodo
de amostragem complexa, diferentemente do que vimos no
tpico anterior, o que poderia tornar os resultados de amostragem mais precisa. Ela funciona da seguinte forma, ao menos um representante de cada subgrupo dentro do contexto
do sistema precisa ser representado na amostra. Com isso
determinado que o primeiro passo para utilizar essa tcnica
de amostragem dividi-la em subgrupos, como podemos
observar na Figura1, em seguida so retiradas amostras aleatrias de cada subgrupo criado. O percentual de amostragem
para cada subgrupo pode ser definido da mesma forma que o
subgrupo tem de proporo dentro do sistema.
Exemplo 1: Vamos supor que o teste que precisa ser feito
referente a uma base de clientes, onde conforme o perfil do
cliente uma variao acontece na aplicao e ela precisa ser
testada. Aps realizar um levantamento identificado que:
70% dos clientes so caracterizados como pblico em geral,
en gen haria
Amostragem sistemtica
Amostragem sistemtica outro mtodo de amostragem
estatstica. Um tipo de mtodo de amostragem probabilstica
em que os membros da amostra de uma populao maior so
selecionados de acordo com um ponto de partida aleatrio e
um intervalo fixo, porm peridico.Este intervalo de tempo
define o intervalo de amostragem que calculada dividindo-se o tamanho da populao pelo tamanho da amostra
desejada. Apesar da populao da amostra ser selecionada
com antecedncia, a amostragem sistemtica considerada
aleatria, pois apesar do intervalo ser peridico, o ponto de
partida aleatrio. Para iniciar uma amostra sistemtica
preciso seguir os passos:
1. preciso saber qual a quantidade de amostra que deseja
avaliar, por exemplo de 1 a N (onde N o tamanho total);
2. Determinar o intervalo de amostragem (K), para isso basta
dividir o nmero de unidades na populao pelo tamanho da
amostra desejada. Por exemplo, para selecionar uma amostra
de 100 a partir de uma populao de 500, voc precisaria de
um intervalo de amostragem de 500 100 = 5. Portanto, K = 5.
Com isso a seleo dever ser feita a cada cinco unidades para
acabar com um total de 100 unidades em sua amostra;
3. Escolha um nmero entre 1 e K aleatoriamente. Este nmero chamado de incio aleatrio e seria o primeiro nmero
includo na sua amostra. Usando o exemplo acima, voc deve
selecionar um nmero entre 1 e 5 a partir de uma tabela de
nmeros aleatrios. Se voc escolher 3, a terceira unidade em
seu quadro seria a primeira unidade includo na sua amostra;
se voc escolher 2, a sua amostra comearia com a segunda
unidade em seu quadro;
4. Selecionar a cada K a prxima unidade da srie. Com base
nos exemplos acima, poderamos formar a amostra de 100 com
incio aleatrio escolhido em 3. Ento teramos: 3, 8, 13, 18,
23... 495, 500. Usando o exemplo acima, possvel identificar
que podemos ter apenas 5 possveis amostras que podem ser
selecionadas com as cinco correspondentes partidas aleatrias
possveis:
1, 6, 11, 16... 491, 496
2, 7, 12, 17... 492, 497
3, 8, 13, 18... 493, 498
4, 9, 14, 19... 494, 499
5,10,15,20.....495, 500
Com isso possvel identificar que cada membro da populao pertence a apenas uma das cinco amostras e cada amostra
tem a mesma chance de ser selecionada, com isso cada unidade da amostra tem apenas uma chance em cinco. Essa a
mesma probabilidade de uma amostra aleatria simples, com
a diferena que na amostragem aleatria simples, qualquer
combinao de 100 unidades teria uma chance de fazer parte
45
Amostragem de julgamento
46
Amostragem casual
Existem outros tipos de amostragem que mesmo no sendo
estatsticos, podem fornecer informaes teis no momento
do levantamento de um dado de teste ou de realizar o teste,
um deles a amostragem casual. A amostragem casual leva
em considerao a convenincia. A amostragem casual normalmente mais rpida e usa tamanhos de amostra menores do
que outras tcnicas de amostragem, sua principal desvantagem
que uma vez que no tem base estatstica, generalizaes
sobre o item que ser avaliado devem ser feitas com extrema
cautela.
Exemplo1: Um gestor de testes pode pegar todos os casos
de uso de uma aplicao que j foi testada e aleatoriamente
escolher 1 para avaliar se os testes aplicados atenderam s
expectativas, se foi feito o planejamento completo desse caso
de uso e assim por diante, dependendo do objetivo da averiguao que deseja realizar.
Exemplo 2: Um campo que aceita at cinco caracteres numricos e o analista de teste escolhe um nmero aleatrio para
inserir no campo e iniciar o teste.
Simplificando, o teste casual feito rotineiramente na maioria
das empresas, s vezes, sem que as pessoas que esto realizando tenham cincia que esto utilizando de uma tcnica de
amostragem no estrutural.
en gen haria
47
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
A
Ivania Ramos dos Santos
ivania.ramos.santos@gmail.com
48
en gen haria
so: (1) rastrear o defeito at sua causa; (2) considerar que 20%
do cdigo tm 80% dos defeitos; (3) corrigir os problemas que
causaram os defeitos.
As revises de software so um filtro para o processo de
engenharia de software. Ou seja, as revises so aplicadas
em vrios pontos durante o desenvolvimento de software e
servem para descobrir defeitos que possam ser eliminados. As
revises de software tm como objetivo purificar as atividades da engenharia de software. Assim, a atividade de teste
de software um elemento crtico da garantia da qualidade
de software e representa a ultima reviso de especificao,
projeto e codificao.
Com o advento das novas tecnologias e mtodos de trabalho,
e em face da diversidade de mo de obra, de clientes, fornecedores e parceiros, bem como da globalizao, muitos procedimentos e paradigmas esto sendo redefinidos. Isto objetiva
abrir espao para novas ideias, formas estratgicas e maneiras
de administrar as pessoas nas empresas, observando-se assim
um aumento na demanda por profissionais qualificados.
As mudanas so percebidas pelas organizaes e influenciam a atividade da direo, que muitas vezes, procura empregar ferramentas de gesto mais adequadas para a obteno
dos resultados organizacionais desejados.
O caso da CPM S.A era ajustado a esta realidade. Havia uma
urgente necessidade de aumentar a qualidade do servio desenvolvido na fbrica de Pato Branco, especialmente qualidade
do software.
Como era de se esperar, houveram vrias propostas relacionadas mudana de procedimentos internos, principalmente
referentes anlise esttica e teste dinmico de software.
Entende-se aqui como anlise esttica a anlise do cdigo fonte
para identificar problemas e o teste de software a execuo
do software com dados de teste atuais. Houve ento uma srie
de reunies que acabaram por resultar no seguinte trabalho
de avaliao e premiao de desempenho.
Classificao de programas
Os programas foram classificados por:
Nvel de complexidade, como Fcil, Mdio e Difcil;
Forma de processamento, como On-Line e Batch;
Tipo de solicitao, como Desenvolvimento (de programas
novos), Alterao (de programas existentes), Complemento (de
programas ainda no entregues) e Desenvolvimento com Base
(em outros programas);
Prazo de entrega (Normal e Urgente).
Foram atribudos bnus (pontos positivos) com pesos diferentes para cada categoria (Tabela 1). Estes bnus podem
ser cumulativos, ou seja, um programa padro pode valer
at 9 pontos, desde que seja uma solicitao de Desenvolvimento (3), com complexidade Difcil (3) e de processamento
On-line (3) = 9 pontos.
Como erros (pontos negativos), foram atribudos diferentes
pesos a partir de uma tabela elaborada em conjunto com todos
os envolvidos, tendo como base os procedimentos e padres da
Valor
Solicitao de desenvolvimento
3,00
Solicitao de alterao
1,00
Solicitao de complemento
1,00
2,00
1,00
3,00
6,00
3,00
1,00
3,00
Valor
0,50
0,50
0,50
0,50
Erros de lgica conforme manual interno
Descrio
Valor
3,00
2,00
1,00
Erros de procedimento
Descrio
Valor
Entrega atrasada
1,00
Falta de bilhete
0,50
0,50
0,50
1,00
1,00
Falta de testes
2,50
2,50
2,50
2,50
2,50
2,50
49
Premiaes
Para que se possa realizar adequadamente a garantia de
qualidade de software, dados sobre o processo de engenharia
de software devem ser compilados, avaliados e divulgados.
Ento, de posse do relatrio mensal de classificao dos
programadores, uma comisso composta pelos Analistas de
Controle de Qualidade (ACQs), pelo Planejamento e Distribuio de programas (PLD), pelo Controle de Tarefas (CTF), pelo
Apoio a Linguagens (APL) e pela gerncia local da fbrica,
analisou os resultados objetivamente de acordo com critrios
estabelecidos.
Os programadores tambm foram analisados subjetivamente,
utilizando-se critrios como comportamento de equipe, proatividade e relacionamento interpessoal. Esta comisso ento definia via votao aberta pelos trs melhores programadores.
A seguir, eram divulgados os resultados dos primeiros colocados a serem premiados, bem como relatrios estatsticos de
qualidade. Estas premiaes eram determinadas no incio do
ms seguinte aos testes. O prmio estabelecido foi o pagamento
Bnus
Erros
Pontuao
Pgms
Complexidade
Mdia
Aproveitamento
Nota
01
1684
801,0
883,0
312
5,4
2,8
52,4
41,94
02
1023
163,5
859,5
198
5,2
4,3
84,0
66,12
03
1461
1151,0
310,0
242
6,0
1,3
21,2
17,73
04
1385
501,5
883,5
282
4,9
3,1
63,8
49,30
05
950
202,5
747,5
185
5,1
4,0
78,7
61,79
06
1060
92,5
967,5
225
4,7
4,3
91,3
69,53
07
1287
80,5
1206,5
244
5,3
4,9
93,7
74,34
08
1223
80,0
1143,0
214
5,7
5,3
93,5
76,40
09
1796
97,0
1699,0
357
5,0
4,8
94,6
73,74
10
1281
75,5
1205,5
216
5,9
5,6
94,1
78,06
11
854
30,0
824,0
151
5,7
5,5
96,5
78,56
12
1411
23,0
1388,0
239
5,9
5,8
98,4
81,45
50
en gen haria
Isto supe que o desempenho comportamental e relacional dos programadores influi diretamente no resultado do
processo avaliativo. Esta uma hiptese que merece maior
estudo, pois em caso afirmativo, prova que comportamento e
51
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
52
om o advento da tecnologia, as
pessoas precisam mudar consideravelmente seus hbitos.
Muitas delas esto sendo obrigadas a
interagir com mquinas e equipamentos
que nem sempre so de fcil manuseio.
Para facilitar essa interao dos usurios
com as mquinas, os projetistas esto
empreendendo esforos para tornar esses
equipamentos mais simples de utilizar.
A usabilidade no diz respeito somente facilidade de uso, mas sim, de
que forma o trabalho feito: o sistema
no s deve ser amigvel, mas tambm
eficiente, seguro e sensvel a variaes
das condies de uso. A usabilidade
promove a melhoria do processo de
interao, o uso e a popularidade dos
diferentes equipamentos presentes no
nosso dia a dia, fez com que o conceito
en gen haria
A usabilidade um conceito que pode ser aplicado em qualquer objeto que pode proporcionar satisfao de uso para seus
usurios. A usabilidade mede a experincia de um usurio ao
interagir com um sistema web, um software desktop, tecnologia mvel ou um outro dispositivo que possa ser operado
pelo usurio. A usabilidade consiste em uma combinao de
diversos fatores: facilidade de aprendizagem, eficincia no
uso, facilidade de lembrar, frequncia e severidade de erros e
satisfao subjetiva.
Todos esses conceitos podem ser observados nos diversos
contextos de avaliao. A usabilidade uma qualidade do
uso do sistema, o desempenho do usurio depende da obteno de seus objetivos, se so atingidos com eficincia e
eficcia. Para melhor representar essas definies, a norma
ISO 9241-11 esquematiza o conceito de usabilidade que pode
ser visto na Figura 1.
Avaliao de Usabilidade
A avaliao da usabilidade de um software um fator a ser
considerado para o seu aprimoramento, pois a partir dela
que se descobrem os principais problemas de usabilidade que
podem gerar dificuldades para os usurios.
Para avaliar uma interface, vm sendo desenvolvidos mtodos e
ferramentas para melhor detectar as reais necessidades dos usurios. A competitividade que existe no mercado faz as empresas
buscarem produzir interfaces bem desenvolvidas. Estudos na rea
de avaliao de software indicam que os usurios esto cada vez
mais exigentes quanto s funcionalidades do sistema.
A qualidade de uma interface decidida pelos seguintes
fatores:
Funcionalidade: a interface ajuda no acesso eficiente e efetivo? A interface faz o que o usurio quer e deseja?
Consistncia: os padres dos comandos e mensagens de
ajuda esto sendo seguidos?
53
Vantagens
Avaliao Heurstica
Desvantagens
No detecta problemas relacionados s expectativas em usabilidade.
Requer especialista em usabilidade.
Requer vrios avaliadores.
Requer planejamento preciso para os testes (tarefas, usurios).
Requer muitos recursos (tempo, pessoal, equipamentos de gravao).
Alto custo.
No detecta problemas de consistncia.
Deixa de detectar vrios problemas de alta gravidade.
Necessita de metodologia de definio de tarefas.
Deixa de detectar problemas gerais e recorrentes.
54
en gen haria
Avaliao heurstica
A avaliao heurstica realizada por especialistas em usabilidade que percorrem a interface baseados em seus conhecimentos. A avaliao heurstica uma tcnica de avaliao
baseada em incertezas provisrias, que utiliza um conceito
semelhante ao raciocnio do jogo de xadrez. A avaliao no
segue uma sequncia lgica de passos, ela realizada atravs
de aproximaes progressivas, onde cada estgio do caminho
percorrido avaliado e, ento, especula-se sobre a natureza dos
caminhos a seguir para se aproximar do objetivo de encontrar
o maior nmero possvel de problemas de usabilidade.
Por esse tipo de avaliao ser baseado em seleo de objetos
de interface, telas, situaes de interao e incertezas provisrias, fundamental para seu sucesso que o avaliador tenha
experincia e capacidade de interpretao.
Explorao cognitiva
Na avaliao cognitiva os especialistas assumem o papel
de usurios procurando simular a interao do usurio com
o sistema. Nessa avaliao so enfocados principalmente
os processos estabelecidos quando a tarefa interativa
realizada pela primeira vez pelo usurio. A explorao
cognitiva auxilia a avaliar as condies do software no que
diz respeito ao rpido aprendizado e ao dilogo do usurio
com o sistema.
A validade desta tcnica est justamente em seu enfoque
nos processos cognitivos. Para realiz-la, o avaliador tem que
prestar ateno no que conhecido, pelo usurio, da tarefa
e da operao dos sistemas informatizados. Uma vez que o
avaliador tenha todas essas informaes, ele passa a percorrer
os caminhos previstos e para cada ao ele aplica o seguinte
checklist:
O usurio tenta realizar a tarefa certa? Ao encontrar-se no
passo inicial de determinada tarefa, o usurio, baseado no que
lhe apresentado, se propor a realizar o objetivo previsto
pelo projetista?
Ele ver o objeto associado a esta tarefa? Este objeto est
suficientemente vista do usurio?
Ele reconhecer o objeto como associado tarefa? As denominaes ou representaes grficas so representativas da
tarefa e significativas para o usurio?
55
Ele saber operar o objeto? O nvel de competncia na operao de sistemas informatizados compatvel com a forma
de interao proposta?
Ele compreender o feedback fornecido pelo sistema como
um progresso na tarefa?
A explorao cognitiva tem como objetivo bsico a avaliao
de interfaces de software nas condies e facilidades oferecidas
ao usurio.
Links e Referncias:
[1] ARTIS FACTA. De la conception au succs: La facilit dusage ou utilisalilit.
Paris. 2002.
http://www.artis-facta.com/USAB/USAB03.HTML
[2] BNARD, Vincent. Utilisabilit: que se cach-t-il derrire ce terme barbare?: Une dfinition de I utilisabilit. Paris. 2001.
http://www.veblog.com/fr/2001/1021-usability-indepth.html
[3] CYBIS, Walter de Abreu. Engenharia de usabilidade: Uma abordagem
ergonmica. Florianpolis: LabIUtil, .2003.
[4] DIAS, Cludia. Usabilidade na Web: Criando portais mais acessveis. Rio
de Janeiro: Alta Books, 2003.
[5] HEEMANN, Vivian. Avaliao ergonmica de interfaces de base de dados
por meio de checklist especializado.1997. 96 f. Dissertao (Mestrado em
Engenharia de Produo). Departamento de Engenharia de Produo,
Universidade Federal de Santa Catarina, Florianpolis, 1997.
[6] PREECE, Jenny. A guide to usability: Human factors in computing.
Reading- Harlow-Menlo Park-Berkeley-Don Mills-Sydney-Bonn-AmsterdamTokyo-Mexico city: Addison-wesley, 1993.
[7] SHNEIDERMAN, Ben. Designing the user interface: Strategies for effective. 3 ed. Reading- Harlow-Menlo Park-Berkeley-Don Mills-Sydney-BonnAmsterdam-Tokyo-Mexico city: Addison-wesley, 1998.
56
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
competitividade no mercado de
desenvolvimento de software
vem aumentando nos ltimos
anos e manter-se competitivo nesse
mercado vem exigindo das empresas
maior qualidade nos produtos e servios oferecidos. Uma etapa fundamental
no desenvolvimento de software que
ajuda a detectar defeitos ainda no
percebidos pelos programadores, e que
verifica sua conformidade aos requisitos, a etapa de teste de software. Essa
etapa est se consolidando cada vez
mais atravs de sofisticadas tcnicas
automatizadas de teste.
Naturalmente, quando se termina
de escrever um cdigo-fonte comea o
processo de reviso procura de algum
defeito no algoritmo. Em alguns casos,
compara-se o cdigo com a especificao
e com o projeto a fim de garantir se todas
as funcionalidades foram devidamente
implementadas. Depois, o cdigo
compilado e so corrigidos problemas
57
Complexidade Ciclomtica
Uma maneira de identificar os casos de teste utilizando
uma mtrica conhecida como complexidade ciclomtica.
Essa mtrica foi desenvolvida por Thomas McCabe em 1976
e tem como finalidade medir a complexidade lgica de uma
aplicao baseando-se em uma representao do fluxo de
controle, tambm chamado de grafo da complexidade ciclomtica. Atravs desse grafo possvel visualmente identificar
os caminhos de execuo do cdigo e que vo se tornar casos
de teste.
A mtrica da complexidade ciclomtica, alm de classificar
o cdigo-fonte quanto ao seu nvel de complexidade, tambm
pode ser utilizada no processo de elaborao dos casos de
teste utilizados na tcnica de teste unitrio. O nmero da
complexidade ciclomtica tambm corresponde ao total de
caminhos independentes do cdigo-fonte e representa o
total de casos de testes que devem ser realizados para cobrir
totalmente o cdigo, garantindo que todas as instrues
sejam executadas pelo menos uma vez durante o teste unitrio. Outro benefcio ligado a essa mtrica est na etapa de
manuteno, pois com ela possvel quantificar o quanto a
complexidade de um cdigo foi alterada durante o processo
de mudana. Muitos desenvolvedores analisam o impacto de
alguma mudana sobre o nmero ciclomtico, pois se alguma
manuteno feita e isso eleva muito esse nmero, talvez seja
necessrio rever toda a manuteno realizada.
O grafo da complexidade ciclomtica descreve o fluxo de
controle do programa, onde cada n do grafo corresponde a
um trecho de cdigo e as arestas representam os fluxos de
controle. Os fluxos podem variar dependendo da estrutura
de cdigo-fonte analisado, por exemplo, quando o n corresponde a um comando if abrem-se duas arestas, ou seja, dois
caminhos diferentes que possibilitam execues diferentes
durante a execuo do cdigo-fonte. A Figura 1 ilustra um
exemplo de grafo da complexidade ciclomtica.
O grafo da complexidade ciclomtica tem suas bases na teoria
dos grafos e oferece uma mtrica de software extremamente
til. Existem trs mtodos para se achar o nmero da complexidade ciclomtica do grafo da Figura 1. O primeiro mtodo
contar a quantidade de regies do grafo (representadas
58
en gen haria
Estudo de Caso
Para exemplificar o uso das ferramentas propostas neste
artigo, ser utilizado um estudo de caso simples e de fcil
entendimento, que consiste em calcular a aprovao de um
aluno de graduao. O cdigo-fonte foi escrito em Java utilizando a IDE Eclipse. O estudo de caso consiste em uma classe
chamada AplicAprovacao cujo principal mtodo explorado o
calcularAprovacao apresentado na Listagem 1. Sero passados
como parmetro para esse mtodo a nota1, nota2, nota final e
frequncia do aluno e, ao final, o mtodo retornar se o aluno
foi aprovado ou no.
O mtodo funciona da seguinte maneira: primeiramente ele
verifica se o aluno possui frequncia maior que 75%, caso no
tenha, ele j reprovado direto. Se o aluno tiver frequncia
maior ou igual a 75, sero analisadas suas notas. Caso o aluno
tenha mdia menor que 30 pontos, ele tambm reprovado.
Se a mdia for maior ou igual a 70 pontos, ele aprovado. Se o
aluno obtiver mdia maior ou igual a 30 e menor que 70 pontos,
ele ter que fazer uma prova final. Portanto, ser analisada sua
mdia considerando a mdia anterior e a nota da prova final.
Se esse novo resultado for maior ou igual a 50 pontos, o aluno
est aprovado, caso contrrio estar reprovado.
Listagem 1. Mtodo calcularAprovacao.
01 public boolean calcularAprovacao(float nota1, float nota2,
02
float notafinal, int frequencia){
03 float media;
04
05 if (frequencia < 75){
06
resultado = false;
07 }
08 else{
09
media = (nota1 + nota2) / 2;
10
if (media < 30){
11
resultado = false;
12
}
13
else if (media >= 70){
14
resultado = true;
15
}
16
else if ((media + notafinal)/2 >= 50){
17
resultado = true;
18
}else{
19
resultado = false;
20
}
21 }
22
23 return resultado;
24 }
59
Casos de Teste
Caso de Teste 1
Caso de Teste 2
Entradas
Frequncia = 74
Frequncia = 75
Nota1 = 29
Nota2 = 30
Frequncia = 75
Nota1 = 70
Nota2 = 70
Frequncia = 75
Sada
Reprovado
Reprovado
60
Aprovado
en gen haria
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 }
@Test
public void testMediaMaior70() {
// Media >= 70
int frequencia = 75;
int nota1 = 70;
int nota2 = 70;
int notafinal = 0;
EstudoCaso1 instance = new EstudoCaso1();
boolean expResult = true;
boolean result = instance.calcularAprovacao(nota1, nota2,
notafinal, frequencia);
assertEquals(expResult, result);
}
@Test
public void testMediaFinalMaior50() {
// (Nota Final + Mdia)/ 2 >= 50
int frequencia = 75;
int nota1 = 30;
int nota2 = 30;
int notafinal = 70;
EstudoCaso1 instance = new EstudoCaso1();
boolean expResult = true;
boolean result = instance.calcularAprovacao(nota1, nota2,
notafinal, frequencia);
assertEquals(expResult, result);
}
@Test
public void testMediaEntre30e70eMediaFinalMenor50() {
// Media entre 30 e 70 e Mdia na Prova Final < 50
int frequencia = 75;
int nota1 = 30;
int nota2 = 30;
int notafinal = 69;
EstudoCaso1 instance = new EstudoCaso1();
boolean expResult = false;
boolean result = instance.calcularAprovacao(nota1, nota2,
notafinal, frequencia);
assertEquals(expResult, result);
}
61
62
en gen haria
Links:
Ferramenta ComplexGraph
http://code.google.com/p/complexgraph
Ferramenta JUnit
http://junit.org/
Ferramenta Eclemma
http://www.eclemma.org/
63
64