engenharia
de software
Edio 42 - Ano 04
Teste
Testes exploratrios
Teoria e Prtica
Planejamento
Anlise de pontos
de funo na prtica
Processo
Fatores de influncia na melhoria
de processo de software
Desenvolvimento
Conhea tcnicas para manter seu
cdigo limpo Parte 4
Com quantas
mentes se
revoluciona
o mundo?
6 a 12 de fevereiro de 2012
Anhembi (SP)
Inovao
Cultura Digital
Cincia
Entretenimento Digital
maraujo@devmedia.com.br
Doutor e Mestre em Engenharia de Sistemas e Computao pela COPPE/UFRJ - Linha de Pesquisa
em Engenharia de Software, Especialista em Mtodos Estatsticos Computacionais e Bacharel em
Matemtica com Habilitao em Informtica pela UFJF, Professor e Coordenador do curso de Bacharelado em Sistemas de Informao do Centro de Ensino Superior de Juiz de Fora, Professor do
curso de Bacharelado em Sistemas de Informao da Faculdade Metodista Granbery, Professor e
Diretor do Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas da Fundao
Educacional D. Andr Arcoverde, Analista de Sistemas da Prefeitura de Juiz de Fora, Colaborador
da Engenharia de Software Magazine.
Corpo Editorial
Colaboradores
Rodrigo Oliveira Spnola
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Jornalista Responsvel
Kaline Dolabella - JP24185
eduspinola@gmail.com
Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine. bacharel em Cincias da Computao pela Universidade Salvador (UNIFACS) onde atualmente cursa o
mestrado em Sistemas e Computao na linha de Engenharia de Software, sendo membro do GESA
(Grupo de Engenharia de Software e Aplicaes).
Na Web
www.devmedia.com.br/esmag
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/mancad
(21) 2220-5338
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
EDITORIAL
Muitos fatores foram responsveis por estimular os gestores das mais diver-
como tema de capa Agilidade na Medida Certa com FDD. Para isto, trazemos um
uso das solues oriundas da TI. Mas, sem dvida, a necessidade de se manter
um novo mundo mais integrado e dinmico, o fator mais relevante. Por isso,
de Software!
Amazonas
te, o ciclo de vida de um modelo de negcio teve seu tempo reduzido, o que faz
NDICE
Caro Leitor,
Agilidade
06 - FDD: agilidade na medida certa
Marcelo Liberato Souza
Para esta edio, temos um conjunto de 4 vdeo aulas. Estas vdeo aulas
esto disponveis para download no Portal da Engenharia de Software Magazine e certamente traro uma significativa contribuio para seu aprendizado. A lista de aulas publicadas pode ser vista abaixo:
Engenharia
22 - Fatores que influenciam a melhoria de processos
Davi Viana dos Santos e Tayana Conte
Tipo: Processo
Ttulo: Curso Scrum Product Owner Partes 17 a 20
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Esta uma srie de aulas de um treinamento voltado exclusivamente para Product Owners. O Product Owner um papel prescrito
pelo mtodo gil SCRUM responsvel pelo sucesso ou fracasso do desenvolvimento de um produto. Este um papel complexo de ser exercido no
dia-a-dia e, este curso, distribudo em uma sequncia de vdeo-aulas, tem
como objetivo tornar mais fcil a transio para aqueles que pretendem
ou necessitam trabalhar como Product Owner.
artigo
Planejamento
32 - Anlise de pontos de funo na prtica
Andrey Abreu
Desenvolvimento
39 - Boas prticas para escrita de mtodos, funes e procedimentos Parte 4
Jacimar Fernandes Tavares e Marco Antnio Pereira Arajo
PS- GRADUAO
Engenharia de Software:
Desenvolvimento Java
Engenharia de Software:
Desenvolvimento .NET
GRADUAO
Engenharia de Computao
Anlise e Desenv. de Sistemas
FORMAES
Desenvolvedor Java
Desenv. Java: Sist. Distribudos
Gestor de TI
Desenvolvedor Web .NET 2008
MCITP Server Administrator
SQL Server 2008
r/esti
Acesse nosso site e conhea todos os nossos programas: www.infnet.edu.br/esti
TURMAS
NO RIO DE
JANEIRO
www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
A
Marcelo Liberato Souza,
marcelo.liberato@gmail.com
necessidade de aproximar a
rea de TI (Tecnologia da Informao) com o negcio torna-se
cada vez mais relevante medida que os
altos executivos das grandes corporaes
mundo a fora compreendem o quanto as
solues desenvolvidas por este departamento, at ento, restritamente tcnico,
poderiam alavancar seus negcios.
Muitos fatores foram responsveis por
estimular os gestores das mais diversas
corporaes a procurarem racionalizar
seu modelo de negcio com base no uso
das solues oriundas da TI. Mas, sem
dvida, a necessidade de se manter atual
em relao s constantes mudanas nas
regras do negcio, originrias de um
novo mundo mais integrado e dinmico, o fator mais relevante. Por isso, a
Resumo:
Este artigo demonstra a importncia do manifesto
gil para as organizaes atuais e descreve como a
metodologia gil denominada Desenvolvimento
Guiado por Funcionalidades (FDD) pode ser adequada s empresas que desenvolvem projetos
complexos e que tem a necessidade de responderem rapidamente s novas demandas negociais.
Agilidade
mudana nos requisitos do sistema durante o seu desenvolvimento deve ser encarada com naturalidade. Este um fator
de alta relevncia para um projeto de Software!
Neste contexto, a grande revoluo provocada pela modernizao dos sistemas de comunicao, que passaram a integrar
diversas culturas do mundo, acabou por criar novas necessidades globais. As solues de TI, principalmente os softwares,
no eram mais um produto de prateleira que possua verses a
cada ciclo tecnolgico ou a cada iniciativa do fabricante. Os fatores externos, provenientes dos novos mercados em expanso,
dos concorrentes cada vez mais agressivos e do consumidor
mais seletivo, despertaram para a necessidade das organizaes de se adequarem e anteciparem rapidamente s mudanas
exigidas por um mundo globalizado e integrado.
Essas mudanas esto associadas reconstruo do modelo
de negcio da empresa, da constante necessidade de inovar e
atender a diversos pblicos com nveis distintos de exigncia
e comportamento. E como no poderia ser diferente, o ciclo de
vida de um modelo de negcio teve seu tempo reduzido, o que
faz as organizaes atuais a implantarem ciclos de melhoria
contnua que impulsionam, de forma constante, a empresa a
buscar o novo. Estes fatores servem como motivao para uma
nova linha de produo de software, que acabou por inverter
a ordem ou colocar tudo na devida ordem na produo de
um novo sistema. Os novos produtos de software passaram a
possuir verses baseadas no ciclo de mudana do negcio. A
cada nova necessidade, um novo produto. Este o novo ciclo
da Engenharia de Software.
Como consequncia disso, a cultura da mudana passou a
estar cada vez mais enraizada no dia-a-dia das organizaes
e a TI deixou de ser um mero setor de suporte para fazer
parte do negcio. Este o grande ponto de transformao
para desenvolvedores, engenheiros, analistas de software e
gerentes de projetos de TI. Para estes profissionais envolvidos
na concepo, no planejamento e construo de novos projetos, passa a ser evidente que o usurio e o cliente digam suas
expectativas e necessidades e, tambm, participem de todo
o processo de Engenharia de Software. Mas, apesar disso,
muitos profissionais ligados rea de TI ainda resistem em
compreender esta nova ordem.
Com este cenrio, o modelo em cascata muitas vezes injustamente criticado passou a no ser mais adequado, j que a sua
estrutura metodolgica no tolera a necessidade de produzir,
utilizar e suportar novos requisitos ao mesmo tempo em que
se constri. O cliente at ajuda a construir um novo software,
se em contra partida ele conseguir utilizar, em um pequeno
espao de tempo, alguma funcionalidade produzida. Esta
funcionalidade no significa ser o produto completo e perfeito,
mas deve atender as necessidades mais crticas da organizao.
E, assim, surgem as metodologias geis baseadas nos valores
e princpios do manifesto gil de 2001.
Os valores do manifesto gil comprovam o que foi dito:
Indivduos e iteraes mais que processo e ferramentas;
Software em funcionamento mais que documentao
abrangente;
A origem do FDD
O site featuredrivendevelopment.com publicou, em um de
seus artigos, que o FDD surgiu antes do manifesto gil ser
publicado no ano de 2001. Devido a isto e a outros pontos
tcnicos da metodologia, que sero elucidados adiante, muitos
renomados autores acreditam que o FDD no pode ser enquadrado como uma metodologia gil.
Quanto data de criao do FDD, ela se torna relevante
apenas para efeitos de comparao com outras metodologias
da famlia gil, como eXtreme Programming (XP), SCRUM,
Agile RUP, entre outras. Muitas destas metodologias foram
concebidas com aspectos similares aos pregados pelo FDD.
Mas o que realmente importa verificar se os princpios e os
valores do manifesto gil esto presentes na metodologia e,
sem dvidas, neste aspecto, no h o que questionar.
No entanto, talvez por ser uma metodologia que tenha surgido antes da publicao do manifesto gil que ela possua
mais requisitos formais e mais etapas do que o XP, por exemplo.
Mas isto no desmerece a proposta do FDD, tanto que ela foi
reconhecida como uma metodologia gil e extremamente
valiosa quando a organizao no est madura para receber
metodologias como XP e Scrum, consideradas mais radicais.
O mrito por ser a mais antiga, no universo das metodologias geis, est no fato do FDD possuir a caracterstica de
combinar o melhor das metodologias tradicionais e das mais
atuais. No ser difcil encontrar experincias de fracassos em
organizaes que romperam repentinamente com as metodologias tradicionais para adotar modelos mais radicais. Certo
que no h simplicidade de utilizao em nenhuma metodologia, ainda mais, aquelas que propem o rompimento com
paradigmas j consolidados, mesmo que j ultrapassadas do
ponto de vista negocial. O FDD pode ser uma excelente escolha
para aquelas organizaes que buscam essa transio.
Os criadores do FDD so Jeff de Luca e Peter Coad, que
tiveram o reconhecimento da metodologia em 1997 graas ao
projeto que eles conduziram para o United Overseas Bank.
Assim, surgia uma metodologia, que sem muito alarde e no
to propagada como as coirms, se consolidaria como uma boa
e simples metodologia de Engenharia de Software.
Apresentando o FDD
O FDD uma metodologia que serve tanto para o gerenciamento de projetos quanto para a Engenharia de Software.
Isto a torna mais complexa quando comparada com outras
metodologias geis. Por exemplo, o RUP (Rational Unified Process) da IBM, uma metodologia considerada tradicional, trata o
gerenciamento de projetos como uma disciplina dentro do seu
framework, j que o seu foco est na Engenharia de Software
em si. J o SCRUM, tem no papel do Scrum Master, uma figura
parecida com a de um Gerente de Projetos formal, mas que
tem seu foco na facilitao dos trabalhos por parte da equipe
tcnica. O foco dessa metodologia est na auto-organizao da
equipe e, para isso, so necessrios analistas seniores.
As trs metodologias citadas (RUP, SCRUM e FDD) tm
caractersticas fundamentais para serem consideradas geis:
so iterativas e incrementais. No entanto, o RUP no pertence
famlia gil, por ter seu foco em documentao abrangente,
processos e ferramentas. Isto contrrio ao que diz os valores
citados acima.
Como apresentado anteriormente, muito se discutia se o
FDD deveria ser gil, porque alm dos motivos cronolgicos
j apresentados, ele oferece processos e fases bem definidas
assim como o RUP e tambm possui caractersticas de uma
metodologia de gerenciamento de projetos. Boehm, citado por
Peter Schuh (2005), diz que esta combinao de gerenciamento
de projetos (com um planejamento inicial para o projeto) com
a Engenharia de Software leva o FDD a no ser uma metodologia gil. Entretanto, a origem do FDD no a condenou a
uma metodologia tradicional. De acordo com a publicao do
site www.heptagon.com.br/fdd, o lema do FDD : resultados
frequentes, tangveis e funcionais.
Peter Schuh (2005) apresenta o FDD como altamente incremental, alm de destacar que a metodologia executa, na
mesma interao, atividades de baixo nvel e design, que complementam a funcionalidade identificada nos estgios iniciais
do processo e, tambm, possui a capacidade de envolver seus
clientes por meio de todo o ciclo de vida do projeto. Mais do
que isso, ela est ajustada para reconhecer e responder a mudanas nos requisitos do sistema. O fato de prover um plano
inicial para o projeto e um design, igualmente inicial, para as
features, traz o benefcio de alinhar clientes e programadores,
que desenvolvem partes especficas do cdigo. Isto positivo
e gil. No restam dvidas disso.
Muitos tm o sentimento que qualquer metodologia gil
avessa documentao. Isto no verdade, mito! Um dos
valores do manifesto diz que se privilegia o produto ao invs
da documentao, como o RUP faz. A documentao de um
projeto essencial para qualquer projeto. O que no pode acontecer gastar 60% do tempo com a produo de documentos,
sem que o cliente tenha alguma funcionalidade que j atenda
sua necessidade de negcio mais emergencial. Muitos gestores
questionam os custos de TI exatamente por ela no entregar
o que eles querem com qualidade e no momento oportuno. O
manifesto gil prega o alinhamento das prioridades de negcio
com a TI. E quanto documentao, no problema ser gil e
prover um plano inicial de gerenciamento de projetos.
O ponto forte da metodologia FDD est na capacidade de
realizar features. Para esta metodologia, uma pequena feature
possui um alto valor para o cliente. O exemplo de uma feature
A fora do FDD
Com o FDD devidamente contextualizado, pode-se aprofundar no estudo da metodologia.
De acordo com Schuh (2005), o FDD apresenta oito melhores
prticas para um projeto de Software que justificam o seu
sucesso:
Modelagem do Domnio de Objetos descrever um mapa
geral do software que ser desenvolvido. Geralmente utiliza-se
o relacionamento entre o diagrama de classes e o de sequncia,
que demonstra o comportamento do sistema;
Desenvolvimento por Feature desenvolver o sistema de
forma iterativa e incremental e por pequenos blocos de funcionalidade que forneam uma nova e valorada experincia
para o usurio;
Propriedade das Classes esta prtica muito utilizada
na tcnica de encapsulamento quando se desenvolve orientado-objetos. Cada classe assinada por um programador
especfico;
Features Teams ao contrrio do XP, o FDD no prega a
propriedade coletiva sobre o cdigo desenvolvido. Por desenvolver as funcionalidades individualmente, o programador
considerado o proprietrio da funcionalidade implementada. Com isso, os vrios programadores da equipe formam o
conceito de Feature Team e so os responsveis por coordenar
os trabalhos de design, integrao e implementao de cada
nova funcionalidade;
Inspees foco em identificar defeitos e no em intimidar
o programador que desenvolve determinada feature. Busca
prover a melhoria na transferncia do conhecimento e maior
conformidade com os padres de cdigo e design;
Agenda regular de Construo (Build) as equipes codificaro as features baseadas em intervalos regulares de tempo.
Assim, pode-se completar o sistema e identificar erros de integrao o quanto antes e tambm prover uma verso atualizada
do sistema sempre que um novo release esteja disponvel;
Gerenciamento da Configurao os cdigos necessitam
ser armazenados e versionados em um determinado nvel que
rena todas as demandas do time. Os trabalhos de anlise,
design e testes tambm precisam ser versionados;
Relatrios/Visibilidade dos Resultados o status do projeto
deve ser regularmente atualizado e de fcil entendimento para
que possa guiar o projeto. O cliente e os stakeholders devem
estar cientes do andamento do projeto, para que possam planejar e agir da forma acordada.
Agilidade
Nota do DevMan 1
EVTX: EVTX (Entry criteria, Task, Verification, and eXit criteria): Por definio, o
processo contm uma sequncia de passos que devem ser orientados a critrios
de entrada e sada. Esses critrios indicam quando a atividade dentro do processo
comea e termina. Os critrios de entrada, para alguma fase/etapa do processo,
especificam quais as condies de entrada devero ser satisfeitas para que o trabalho de uma atividade seja iniciado. Por sua vez, os critrios de sada especificam
as condies que o trabalho produzido de uma fase/etapa dever satisfazer para
terminar as atividades da fase. Estes critrios especificam restries de quando iniciar ou parar uma atividade e devem ser suficientemente claros para que ela possa
ser verificada e, desta forma, possibilitar a identificao de erros antes de iniciar a
prxima atividade.
Nota do DevMan 2
PRINCE2: A abordagem PRINCE2 baseada em processos para gerenciamento
de projetos, em que so fornecidos mtodos, facilmente adaptveis e escalveis,
para a gesto de todos os tipos de projetos. A abordagem um padro de fato
para gerenciamento de projetos no Reino Unido e praticada em todo o mundo.
Adaptado de: www.prince2.com/what-is-prince2.asp
10
A equipe FDD
Como o FDD uma abordagem utilizada para o paradigma
de sistemas orientados a objetos, no de se estranhar que
alguns papis previstos na metodologia requeiram habilidades
de UML e cheguem a ser parecidos com o framework RUP. Em
sua estrutura, o FDD define seis papis principais, que esto
envolvidos diretamente com a realizao dos processos da
metodologia. Outros papis tambm so alocados ao projeto
para realizar atividades de suporte, tais como: gerente do domnio, gerente de releases, expert da linguagem, engenheiro
de build, administrador de sistemas, testers, desenvolvedor
e redator tcnico. Destaca-se ainda que uma pessoa possa
assumir uma ou mais funes em um projeto, assim como o
framework RUP.
Agilidade
Papis
Programador(es) Chefe(s)
Gerente do Projeto
Arquiteto Chefe
Gerente de Desenvolvimento
Especialista do Domnio
Funo
Realiza o planejamento das entregas das features;
Aloca os proprietrios das classes;
Entrega um conjunto de features para os clientes e interessados;
Garante a qualidade de todos os releases;
Lidera o time de features.
Pode estar, simultaneamente, em mais de uma equipe de Features;
Responsvel por modelar, codificar, testar e documentar as novas features nos cdigos em que so os proprietrios;
Lder administrativo do projeto;
Relata o progresso do projeto;
Gerencia oramentos;
Busca e gerencia recursos de qualquer tipo e que sejam necessrios ao bom desenvolvimento do projeto.
Responsvel por toda a modelagem do sistema (design);
Realiza oficinas de modelagem junto equipe.
Responsvel pelo dia-a-dia das atividades de desenvolvimento;
Resolve conflitos de recursos.
Qualquer pessoa que conhea do negcio para o qual o produto esta sendo desenvolvido.
11
Concluso
12
Esta imagem retrata a fora das metodologias geis, especialmente, a do FDD. O FDD deve ser adotado por organizaes
que procuram migrar de processos exclusivamente iterativos ou
em cascata (waterfall) para o paradigma gil. Esta metodologia
prov mecanismos que garantem a qualidade, documentao,
reteno do conhecimento e atendimento s expectativas do
cliente. Apesar de ela utilizar artefatos da UML, que so amplamente utilizados pela Rational Unified Process (RUP), ela os
utiliza de maneira simplificada e inteligente. O foco do FDD est
no equilbrio entre os requisitos e o cdigo, entre a tcnica e o
negcio. Este o FDD, uma metodologia que equilibra as foras
e torna-se altamente poderosa para quem quer escalabilidade,
integridade, melhoria contnua e aprendizagem constante.
D seu feedback sobre esta edio!
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
www.devmedia.com.br/esmag/feedback
Feedback
eu
sobre e
s
evidente que no grande universo de metodologias que envolvem a Engenharia de Software, apontar uma como a mais
adequada correr risco desnecessrio. Cada organizao tem
suas necessidades de mudana e seu tempo de mudana. A
Engenharia de Software tem que estar disposio de cada
necessidade, de forma a melhor desempenhar o seu papel de
apoio ao desenvolvimento do negcio.
D
s
edio
ta
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
Resumo:
A AltoQi uma empresa no mercado brasileiro de
software para Engenharia, com mais de 20 anos
de experincia tanto no desenvolvimento como na
comercializao de seus produtos. Ainda assim, a
partir de um dado momento, o custo de manuten-
13
Forma de atuao
A organizao AltoQi tem como objetivo principal de negcio o desenvolvimento e comercializao de produtos de
software para o mercado da Construo Civil. Esses produtos
de software organizam-se em Linhas de desenvolvimento,
representadas por um Produto principal e seus diversos Mdulos opcionais.
Os produtos desenvolvidos pela AltoQi so pacotes fechados, cuja customizao pelo cliente limitada escolha dos
mdulos a serem adquiridos. Por isso, no h um cliente
definido em nenhum projeto de desenvolvimento. No seu
lugar, cabe ao Departamento de Produtos e Servios (DPS)
representar o cliente, exercendo o papel de Product Owner
em relao ao Departamento de Desenvolvimento. O DPS
o responsvel pelas atividades de anlise dos produtos da
empresa e do seu posicionamento no mercado, avaliao de
novos produtos e novos recursos para os produtos atuais da
empresa, suporte tcnico aos clientes externos e treinamento
tcnico para clientes externos e internos. O Departamento
de Desenvolvimento responsvel por planejar, executar e
controlar as atividades que tero como resultado o produto
de software selecionado pelo DPS. Cabe ao Departamento de
Desenvolvimento a criao de novos produtos ou verses, as
quais possam vir a ser comercializadas pela empresa, junto
sua extensa base de clientes.
A relao entre os dois departamentos e os clientes pode ser
observada na Figura 1 a qual ilustra:
14
Nesse cenrio, um fator que diferencia a AltoQi de outras empresas de software a forte necessidade do desenvolvimento
interno dos requisitos. As necessidades dos clientes referem-se
a problemas no campo de conhecimento da Engenharia Civil
e, especialmente pela natureza grfica e tridimensional das
aplicaes envolvidas, no so descritas adequadamente nem
pelos prprios clientes. A empresa precisa ter, em sua equipe,
corpo tcnico adequado para entender as necessidades dos
clientes, convert-las em requisitos de software, detalh-las em
grau adequado para permitir a sua implementao e conferir
cada um dos resultados apresentados.
Implantao de processos
Atualmente, o Departamento de Desenvolvimento da AltoQi
possui o nvel G do MPS.BR, o Modelo de Melhoria de Processos de Software Brasileiro, mas nem sempre este foi o cenrio.
Durante muitos anos, os quais englobaram o desenvolvimento
dos produtos da empresa que so mantidos at hoje, o processo
poderia ser descrito apenas como programar e corrigir. Existia uma separao entre os Departamentos de Desenvolvimento e de Suporte Tcnico, isolando a equipe de desenvolvimento
de um contato direto com a base de clientes, mas no havia
um trabalho sistematizado de Produto nem a aplicao de
tcnicas adequadas da Engenharia de Software. Cabe explicar
que os produtos da empresa sofreram manuteno evolutiva
desde sua criao, com o lanamento de Verses comerciais,
Engenharia de Software Magazine - Scrum e MPS.BR: Um caso prtico do uso em conjunto destas abordagens
agilidade
Antes disso, dada a grande complexidade tcnica do sistema, a equipe de desenvolvimento lidava com cada problema
reportado pelos clientes apenas investigando-o diretamente,
o que podia gerar impactos em outras partes do programa
que no eram detectados rapidamente, pela dificuldade
do teste. Com a automao dos testes, essa propagao de
defeitos pde ser limitada e o custo de cada correo foi
reduzido drasticamente, uma vez que o defeito podia ser
detectado rapidamente e rastreado at a sua origem.
Esse ciclo de melhoria levou dois anos para ser implementado. Com ele, a empresa pde retomar o controle
sobre o seu processo de desenvolvimento, recuperar o seu
principal produto e passar da manuteno para a melhoria
no processo de desenvolvimento de novos produtos. Para
que isso pudesse ocorrer, importante destacar tambm a
necessidade de capacitao, exercida principalmente pela
especializao do Gerente de Desenvolvimento, responsvel
pela definio de todo o processo e capacitao, por sua vez,
de toda a equipe. Retirar o foco do dia-a-dia das atividades
e estudar as melhores prticas do mercado fundamental
para entender como aplic-las corretamente no seu ambiente
de desenvolvimento.
A migrao para um modelo de desenvolvimento iterativo,
assunto do tpico a seguir, foi possvel apenas tendo por base a
correta aplicao de boas prticas da Engenharia de Software.
15
Modelo iterativo
Pode-se definir um Projeto como um esforo temporrio
realizado com o objetivo de produzir um produto ou servio
nico. Temporrio significa que todo projeto tem incio e fim
explicitamente definidos e nico indica o fato de que cada projeto possui caractersticas prprias e seu produto resultante
distinto em um ou mais aspectos de outros projetos existentes.
Como caractersticas comuns para qualquer Projeto, so realizados por pessoas, possuem alguma restrio de recursos,
so planejados, executados e controlados.
Embora as empresas de desenvolvimento de software, de forma
geral, trabalhem na criao de Produtos, nem todas organizam
efetivamente isso na forma de Projetos. O estabelecimento desse
conceito, tendo por base a definio sistematizada do Escopo de
um projeto antes do incio do mesmo, bem como o controle sobre
as mudanas nesse escopo ao longo do projeto, foi o primeiro
passo na implantao de um modelo de desenvolvimento na
AltoQi. O Departamento de Produtos e Servios (DPS) foi criado
nessa etapa, para separar as atividades de definio do escopo
do projeto (necessidades dos clientes) das atividades de execuo
desse escopo (desenvolvimento de software).
No perodo 2009 / 2010, correspondente implantao do
processo de desenvolvimento descrito neste artigo, culminando com a avaliao nvel G do MPS.BR em Dezembro /
2010, foram concludos 20 projetos, em um total superior a
79000 horas de desenvolvimento. Esses projetos validaram o
processo proposto e fornecem importante base histrica para
o planejamento de projetos futuros.
O modelo de ciclo de vida adotado pela AltoQi, de natureza
iterativa e incremental, se baseia no aumento e refinamento
sucessivo de um sistema atravs de mltiplos ciclos de anlise,
projeto, implementao e teste, conforme colocado na Figura 3.
Est fundamentado no Scrum, uma metodologia que tem
alcanado reconhecimento como uma ferramenta eficaz para
desenvolvimento produtivo de software. Segundo Sutherland, mesmo quando padres de Scrum so combinados com
outros padres organizacionais existentes, eles so altamente
adaptveis, ainda que em organizaes de desenvolvimento
de software bem estruturadas.
O Scrum utiliza um conjunto de artefatos que suportam o
processo de desenvolvimento e controlam o seu progresso.
Para iniciar um projeto Scrum bastam uma Viso do produto,
descrevendo a motivao do projeto e o seu resultado final esperado, e um Project Backlog (Lista de Recursos), documento que
contm a lista completa dos requisitos do projeto, necessrios
para atender a Viso do produto. Na AltoQi, tambm usado
o termo Release Backlog, visto que cada Release de um Produto
gerenciado como um Projeto independente.
O processo apresenta trs fases distintas: Preparao, Desenvolvimento e Fechamento. A fase de Preparao, tambm
chamada iterao zero, tem o objetivo de definir o Plano
do Projeto, incluindo seu Escopo (recursos a serem desenvolvidos), Prazo e Custo, encerrando-se quando o sistema a ser
desenvolvido est definido, sua viabilidade est confirmada e
as ferramentas necessrias esto disposio da equipe.
16
As estimativas de software fornecem subsdios para a definio de aspectos fundamentais dessa fase. Uma estimativa
aproximada de tamanho das atividades que fazem parte do
escopo permite que oGerente de Projetosdefina qual o cronograma do projeto, o esforo necessrio, seu custo e os recursos
que sero necessrios para desenvolv-lo. Esse assunto ser
tratado com mais detalhe no prximo tpico.
A fase de Desenvolvimento, dividida em iteraes, contm a
execuo das atividades tcnicas necessrias ao cumprimento
do escopo do projeto. Encerra-se quando todos os itens presentes no Release Backlog tenham sido implementados. Cada
iterao definida como uma time box, com durao de duas
semanas, na qual so executados parte dos itens definidos no
Release Backlog (formando o Iteration Backlog). O resultado do
item do trabalho a ser desenvolvido um incremento do produto. A Figura 4 ilustra o ciclo de desenvolvimento, no qual os
requisitos so apresentados no Iteration Backlog e desenvolvidos
na iterao, gerando um novo incremento que ser entregue
para a fase final do processo.
Ao final de cada iterao, deve-se ter um sistema completo,
testado e documentado. Para isso, fundamental o apoio de
um programa de testes automatizados. A abordagem iterativa
permite considerar a alterao nos requisitos, uma vez que eles
normalmente sero alterados durante o processo. A abordagem
tradicional, na qual todos os requisitos so determinados, de
uma vez, no incio do projeto, vlida apenas para projetos
bastante triviais (KRUCHTEN, 2000). O ponto chave est na
produo de verses do sistema final, de forma que, em cada
uma, esteja presente um conjunto crescente de funcionalidades,
j completamente integrada e testada. importante frisar que
as alteraes nos requisitos devem ser controladas, mantendose o rumo do projeto.
A fase de Fechamento se inicia aps a concluso de todas
as atividades tcnicas do projeto (ou seja, aps a finalizao
do escopo do projeto). Contm uma avaliao organizacional
do resultado do projeto, com a coleta de lies aprendidas e
informaes histricas que sero teis para o desenvolvimento
dos prximos projetos (ver Figura 5).
Estimativas de software
Dentre os aspectos que foram importantes para a definio de um processo de desenvolvimento na AltoQi, o mais
complexo deles foi a estimativa dos produtos de software.
Engenharia de Software Magazine - Scrum e MPS.BR: Um caso prtico do uso em conjunto destas abordagens
agilidade
17
18
Engenharia de Software Magazine - Scrum e MPS.BR: Um caso prtico do uso em conjunto destas abordagens
agilidade
Desenvolvimento colaborativo
No incio de 2009, a empresa preparava-se para iniciar o desenvolvimento de uma nova verso de seu principal produto,
o AltoQi Eberick V6. O processo de desenvolvimento a ser
adotado havia sido concebido e uma ferramenta para gerenciamento dos projetos havia sido pesquisada, customizada
e implantada, suportando o processo definido. O escopo do
produto estava sendo selecionado pelo DPS, dentre uma lista
de cerca de 300 sugestes reportadas pelos clientes ao longo dos
ltimos anos. Era sabido que havia tempo e equipe disponvel
para atender apenas a uma pequena parte dessa demanda.
O foco desse projeto, conforme definido pela Direo da
empresa, deveria ser o de fornecer aos seus clientes recursos
que maximizassem a sua produtividade e melhorassem a sua
experincia com o produto.
Alm de partir dessa definio bastante abrangente, era esperado um ciclo de desenvolvimento de 18 a 24 meses. Como
a ltima verso do produto havia sido lanada havia mais de
dois anos, o ciclo total superaria os quatro anos, uma demora
que vinha sido percebida pelos clientes como incapacidade da
empresa de criar novos produtos. Esperar o final do projeto
para fazer a sua divulgao, como havia sido feito nos lanamentos anteriores, poderia causar uma evaso expressiva da
base de clientes.
Nesse cenrio, a empresa resolveu aplicar o conceito do
desenvolvimento iterativo, concebido apenas para controlar
internamente o andamento dos projetos, tambm para definir o produto junto aos seus clientes. Para isso, foi criado o
programa AltoQi Eberick Next, um conjunto de 8 Releases,
com durao de 2 a 3 meses cada. O conjunto desses projetos
tinha por objetivo a criao da nova verso do produto AltoQi
Eberick, atravs de um modelo de planejamento progressivo.
Foi definido, apenas em alto nvel, o escopo do produto completo. Foi planejado o primeiro Release, contendo os recursos
considerados mais prioritrios pela equipe, e pr-definido o
escopo do Release 2 mas, para os demais, ainda seria aguardado o retorno dos clientes (ver Figura 9).
Resultados obtidos
Pode-se afirmar que o projeto Eberick Next foi um sucesso.
A iniciativa de dividir o produto em Releases funcionais,
disponveis para os usurios, bem como o estabelecimento
do Blog de desenvolvimento, pode ser avaliada sob diversas
perspectivas:
Do ponto de vista dos clientes, a oportunidade de participar
da definio dos rumos do projeto foi muito bem acolhida.
19
20
Avaliao MPS.BR
Engenharia de Software Magazine - Scrum e MPS.BR: Um caso prtico do uso em conjunto destas abordagens
agilidade
Feedback
eu
www.devmedia.com.br/esmag/feedback
21
sobre e
s
JAKOBSEN, Carsten e JOHNSON, Kent. Mature Agile with a twist of CMMI. 2011.
http://jeffsutherland.com/scrumpapers.pdf
D
s
Concluses
edio
ta
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
Atua no ramo de implementao de programas de melhoria de processo de software tendo como base o programa MPS.
BR. Bacharel em Cincia da Computao
pela Universidade Federal do Amazonas
(UFAM), Mestre e Doutorando em Informtica pelo Programa de Ps-Graduao
em Informtica (PPGI) da mesma Universidade. Suas pesquisas so focadas em Engenharia de Software, principalmente em
Qualidade de Processo de Software.
Tayana Conte
tayanaconte@gmail.com
22
Resumo:
O objetivo do artigo apresentar como ocorreu a primeira implementao e avaliao de uma iniciativa
de programa de Melhoria de Processo de Software
no Estado do Amazonas, assim como apresentar os
principais Fatores Crticos de Sucesso que influenciaram esta iniciativa pioneira no Estado.
processo
compreender, em detalhes, os diversos fatores que influenciam diretamente iniciativas de melhoria de processo de
software e da relao dos colaboradores com esses fatores,
pois todo o processo de desenvolvimento dependente do
comprometimento humano [10]. Apesar de haver diversos
estudos abordando fatores em MPS [5], o nmero de pesquisas que visam analisar qualitativamente as influncias
nos programas de melhoria ainda est aqum do necessrio
para permitir uma ampla compreenso desses fatores em
diversos contextos [4].
Este artigo descreve um estudo qualitativo da primeira
iniciativa de implementao e avaliao de MPS no Estado do
Amazonas, com o propsito de identificar quais os fatores de
influncia no programa de MPS, do ponto de vista dos colaboradores das organizaes envolvidas. O principal objetivo
deste artigo discutir os resultados do estudo proposto, na
qual se usou procedimentos de anlise qualitativa onde foram
analisados os dados das entrevistas.
23
Estudo qualitativo
Atravs de um estudo qualitativo identificou-se os fatores
crticos de sucesso deste tipo de iniciativa com a finalidade de
obter uma maior compreenso das influncias desses fatores
para um programa de melhoria. Este tipo de anlise se faz
necessria, pois a implementao de iniciativas de melhoria
de processo de software representa um grande desafio devido
aos diversos fatores que influenciam no processo [8].
O estudo qualitativo foi realizado junto aos colaboradores
das trs empresas. Os papis desempenhados pelos mesmos
foram de programadores, analistas e gerentes dos projetos
utilizados na avaliao. Analistas e gerentes de projeto tinham
mais potencial de explorao de fatores devido aos processos
que foram implementados nas empresas (gerncia de projetos
e gerncia de requisitos). Por fim, o estudo foi dividido em trs
grandes etapas: Planejamento, Execuo e Anlise/Resultados,
conforme descrito na Figura 4.
Planejamento do Estudo
Na etapa de maturao, a empresa possua um acompanhamento mais direcionado dos consultores, pois todas as
atividades realizadas iriam compor a planilha de avaliao
e o processo de institucionalizao do processo em toda a
organizao. Cada empresa definiu seu processo de desenvolvimento, desta maneira foi possvel diminuir a resistncia
por parte dos colaboradores.
A avaliao simulada foi realizada com a finalidade de verificar quais empresas possuam indicadores suficientes para
uma avaliao oficial. Nesta fase, foi possvel verificar que duas
24
processo
Execuo do Estudo
A etapa de execuo corresponde
conduo das entrevistas nas empresas.
A Figura 5 apresenta um exemplo de
questo utilizada no estudo. Esta etapa
foi divida em duas fases: Durante a implementao do programa de melhoria
e Aps a avaliao oficial. Desta forma,
foi possvel obter dados referentes aos
dois momentos importantes do programa de melhoria.
Para as entrevistas, selecionaram-se
colaboradores que estavam envolvidos
com o programa de melhoria. Foi criado
um Termo de Consentimento Livre e Esclarecido (TCLE) para informar a respeito do procedimento e confidencialidade
da pesquisa e foram estimulados a falar
o mais livremente possvel. Os mesmos
foram entrevistados em relao definio e implementao do programa de
melhoria do processo de software em
suas organizaes. As entrevistas foram
realizadas individualmente e gravadas.
As questes utilizadas nas entrevistas
deste estudo foram baseadas nas questes definidas em [4]. Na 2 rodada de
entrevistas, o questionrio foi modificado com o propsito de aperfeioar o
questionrio para obter novos dados.
Aps a execuo das entrevistas, foi
realizada a transcrio na ntegra das
mesmas. Foram gerados documentos
individuais com todos os contedos gravados nas entrevistas, esses documentos
foram descaracterizados para preservar
a identidade dos colaboradores e utilizados na etapa de anlise e resultado.
Anlise e Resultado
25
Consideraes finais
26
processo
www.devmedia.com.br/esmag/feedback
sobre e
s
Feedback
eu
edio
ta
D
s
Referncias
Bandeira-de-Mello, R., Cunha, C. (2003).Operacionalizando o mtodo da Grounded Theory nas
Pesquisas em Estratgia: tcnicas e procedimentos de anlise com apoio do software ATLAS/TI.
Encontro de Estudos em Estratgia. Curitiba.
Coleman, G., OConnor, R. (2008).Investigating software process in practice: A grounded theory
perspective, Journal of Systems and Software, v. 81, n. 5
Fernandes, P. G., Oliveira, J. L. (2010). Perfil Cultural e Institucionalizao de Processos de
Software: Estudo de Caso em Duas Organizaes de Software.WOSES 2010.
Matos, O., Secatti, V., Santos, D., Oliveira, H., Conte, T. (2010). Aplicando Grounded Theory
para Compreender os Fatores Crticos de Sucesso em Iniciativas de Melhoria de Processo de
Software.WOSES 2010.
Montoni, M, Rocha, A. (2007). A Methodology for Identifying Critical Success Factors that
Influence Software Process Improvement Initiatives: An Application in the Brazilian Software
Industry, EuroSPI 2007, LNCS 4764, pp. 175-186.
Montoni, M, Rocha, A. (2010). Aplicao de Grounded Theory para Investigar Iniciativas de
Implementao de Melhorias em Processos de Software. In: Anais do IX SBQS, pp 167-181
Rocha, A. R. et al. (2005). Fatores de Sucesso e Dificuldades na Implementao de Processos de
Software Utilizando o MR-MPS e o CMMI, Pro Quality Qualidade na Produo de Software.
Santana, A. (2007).Problemas em Iniciativas de Melhoria de Processos de Software sob a tica
de uma Teoria de Interveno. Dissertao de Mestrado. Universidade Federal de Pernanbuco.
Maro 2007.
Santos, D., Rabelo, J., Mar, C., Aguiar, E., Wagner, P., Vilela, D., Conte, T., 2010, Resultados de
um Estudo Qualitativo sobre a implementao do modelo MPS em empresas do programa
AmazonSoft. In: VI Workshop Anual do MPS (WAMPS 2010), pp. 138-147, Campinas, SP, 2010.
Seaman, C. B., 2008, Qualitative Methods. In: SHULL et al. (eds.), Guide to Advanced Empirical
Software Engineering, Chapter 2, Springer
27
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
A atividade de teste de software um dos meios utilizados para garantir a qualidade do sistema, evitando
assim surpresas desagradveis em relao ao resultado final da aplicao. O teste parece ser uma coisa
simples e emprica, mas na verdade no . E as falhas,
muitas vezes, acontecem por no darmos a devida
importncia a esse fato. Neste contexto, abordamos
neste artigo a definio e utilizao de testes exploratrios, mostrando suas vantagens e desvantagens.
Luana P. F. de Menezes
luanapfmenezes@gmail.com
Rodrigo F. Lopes
digolopes@gmail.com
Roberta M. M. Bezerra
roberta_moraes5@hotmail.com
Graduanda em Sistemas de Informao pela
Universidade de Pernambuco (UPE), desde
2008. Estagiria do Escritrio de Projetos da
Faculdade de Filosofia, Cincias e Letras de
Caruaru (FAFICA), atuando nas reas de Engenharia de Software e Anlise de Requisitos.
28
A. Csar C. Frana
cesarfranca@gmail.com
Mestre em Cincia da Computao pela Universidade Federal de Pernambuco e Doutorando em Cincia da Computao pela mesma
instituio, bolsista CNPq. Integrante do grupo
de pesquisa HASE Human Aspects in Software Engineering. Autor do livro Um estudo
sobre motivao em integrantes de equipes
de desenvolvimento de software, da Ed. UFPE,
2010. Na FAFICA, professor-pesquisador de
diversas disciplinas relacionadas Engenharia
de Software.
Resumo
A atividade de teste muitas vezes vista como uma
fase de crtica aos analistas e programadores, fazendo com que estes se sintam constrangidos. Mas,
se os erros existem, o fato de no se fazer os devidos
testes no quer dizer que eles iro desaparecer e,
muitas vezes, se esses erros so detectados tardiamente podem causar prejuzo e danos incontrolveis aos sistemas. Dentre os vrios tipos de testes
existentes, neste artigo vamos definir, contextualizar, citar as vantagens e desvantagens e mostrar a
aplicabilidade dos testes exploratrios.
Teste d e Software
Testes exploratrios
Um teste exploratrio de software uma poderosa e abrangente abordagem, mas por vezes, confundido com o teste adhoc. Testes so executados naturalmente e involuntariamente
por qualquer usurio de um determinado software. Porm,
para estes testes serem considerados exploratrios, deve-se
existir um propsito para tal execuo. Tipos de teste como este
requerem bastante prtica dos envolvidos no projeto. Como
citaram (Braga e Pretz) o teste exploratrio se baseia na intuio
e depende do conhecimento, habilidade e experincia do testador.
Criatividade tambm uma caracterstica necessria para
a execuo de testes exploratrios, pois este no segue uma
padronizao, roteiro, ou passo-a-passo pr-definido em documentaes. Uma vez que iniciado o teste, o testador precisa ter
29
Situao A
Um turista resolve visitar uma cidade qualquer, escolhida arbitrariamente, sem qualquer planejamento
prvio.
Ao chegar nela, comea a explor-la superficialmente.
Passado certo tempo, o turista acabaria descobrindo acidentalmente os seus locais preferidos.
Situao B
Outro turista decide visitar a mesma cidade, mas este planejou detalhadamente a sua visita,
contando com dados prvios sobre a cidade, e a explorando por partes, uma de cada vez.
Este turista tambm determinou um tempo limitado para conhecer cada um dos pontos, para evitar
o cansao, e ao mesmo tempo estimular a ateno em cada detalhe.
Passado certo tempo, o turista pode eleger os seus locais preferidos entre todos os pontos da cidade.
30
Teste d e Software
Concluso
Referncias
Feedback
eu
edio
ta
D
s
www.devmedia.com.br/esmag/feedback
31
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Andrey Abreu
andreyabreu@gmail.com
32
Resumo
Trataremos nesse artigo uma das formas de medio de software dentre as diversas existentes.
Entenderemos que mais do que um simples mtodo, APF uma forma precisa de se medir software
sob a tica do negcio, sem quaisquer ligaes
com tecnologias, ferramentas ou linguagens.
Alm disso, uma forma de se medir produtividade e performance do time de desenvolvimento, e
veremos ao longo do desenvolvimento do assunto
que mais do que tudo isso, APF d transparncia
ao processo de medio e na viso de tamanho do
software.
mtrica
Um pouco de histria
Em 1979 quando Alan J Albrecht pesquisava sobre produtividade na IBM, surgiu a Anlise de Pontos de Funo (Function
Point Analysis), divulgada no seu artigo oficial em Outubro de
1979 sob o ttulo Measuring Application Development Productivity. APF foi oficializada atravs do padro internacional
ISO/IEC e regulamentada pelo CPM Counting Practices
Manual do IFPUG (que o International Function Point Users
Group, grupo responsvel por manter e normalizar a APF).
Se fossemos fazer uma analogia, o termo mais prximo que
podemos utilizar para resumir o que a APF seria o metro
quadrado do software, e podemos compar-la com a construo de uma casa, onde o construtor mede e precifica o custo
de construo baseado no seu tamanho. O mesmo acontece
com APF, medimos software com base no seu tamanho, porm assim como na construo civil, fatores externos alm da
medida devem ser avaliados, como se a casa ser construda
de madeira ou tijolos, ou ainda se ter um mesanino ou um
terrao, e com esse conjunto de fatores temos ento alm de
uma medida quantitativa (tamanho em m2 no caso da nossa
casa), uma medida qualitativa (fatores adicionais que sero
levados em considerao na construo).
A estrutura da APF
Para entendermos a lgica do processo de contagem, ilustramos na Figura 1 um fluxo que mostra a estrutura da APF.
Conforme pode ser visto na Figura 1, a APF possui cinco
componentes divididos em dois grupos, que interagem dentro
e fora da fronteira da aplicao, so eles:
Componentes de Dados
Os componentes de dados representam as funcionalidades
fornecidas pelo sistema ao usurio para atender as necessidades referentes aos dados que o sistema ir manipular. Os
componentes de dados esto divididos em ALI e AIE:
Arquivos Lgicos internos (ALI): Um ALI representa um
grupo de dados mantido pela aplicao, por exemplo, uma
classe ou uma tabela de banco de dados, porm sem ligao
alguma com o meio de armazenamento. O tamanho de um ALI
definido de acordo com o nmero de campos e o nmero de
tipos de elementos de registros lgicos nele contidos.
Arquivos de Interface Externa (AIE): Um AIE representa um
grupo de dados mantido por uma aplicao externa, logo um
AIE identificado como um ALI em outra aplicao. Assim
como no ALI, o tamanho de um AIE identificado de acordo
com o nmero de tipos de elementos de registros lgicos.
O fator determinante do tamanho de um ALI e AIE est
nos tipos de elementos que so contados em cada funo
identificada:
Tipos de Elementos de Dados (TED): Campo identificado
pelo usurio, nico e no recursivo. Por exemplo: campos de
uma tabela.
Tipos de Elementos de Registros (TER): Subgrupo de dados
identificado pelo usurio. Por exemplo: Generalizao/Especializao de uma classe.
Componentes de Transao
Os componentes de Transao representam as funcionalidades de processamento dos dados fornecidos pelo sistema ao
usurio, ou seja, a manipulao dos componentes lgicos feita
por componentes de transao. Os tipos considerados so:
Consultas Externas (CE): Representam uma combinao de
entradas e sadas. As CEs fazem parte dos requisitos lgicos do
usurio. Como exemplo temos: consultas implcitas, verificao
de senhas e recuperao de dados com base em parmetros.
Entradas Externas (EE): Processo lgico que mantm os dados
em um ou mais ALIs. Uma entrada externa contada com
base no nmero de campos de dados dos usurios envolvidos
e na soma dos ALIs e AIEs participantes do processo. Como
exemplo temos: Cadastros em geral, Validaes, Frmulas
e clculos.
33
34
Tipos de elementos
de registros
1
2a5
>5
20 a 50
BAIXA
MDIA
ALTA
> 50
MDIA
ALTA
ALTA
Tabela 1. Complexidade de Arquivos Lgicos Internos (ALI) e Arquivos de Interface Externa (AIE)
0a1
2
>2
> 15
MDIA
ALTA
ALTA
Tabela 2. Complexidade de Entradas Externas (EE) e Entradas das Consultas Externas (CE)
0a1
2a3
>3
> 19
MDIA
ALTA
ALTA
mtrica
Peso
Complexidade
BAIXA
7
5
3
4
3
ALI
AIE
EE
SE
CE
MEDIA
10
7
4
5
4
ALTA
15
10
6
7
6
Comunicao de Dados
Justificativa
Batch/stand alone
Batch c/ entrada de dados ou impresso remota
Batch c/ entrada de dados e impresso remota
Entrada de dados online
Entrada de dados online c/ suporte a 1 protocolo
Entrada de dados online c/ suporte a n protocolos
Processamento distribudo
Grau de Influncia
0
1
2
3
4
5
Justificativa
Sem influncia sobre processamento distribudo
Gerao de dados para serem processadas fora da aplicao (ex. Planilhas)
Gerao de dados para processamento externo
Processamento distribudo online em 1 direo
Processamento distribudo online bi-direcional
Processamento distribudo dinamicamente
Desempenho
Grau de Influncia
0
1
2
3
4
5
Justificativa
Nenhum requisito especial de desempenho
Requisitos de desempenho estabelecidos, porm nenhuma ao especial requerida
Tempo de resposta e processamento so crticos em horrios especficos
Tempo de resposta e processamento so crticos em todo o horrio comercial
Requisitos de desempenho estabelecidos e prevista anlise de desempenho da
aplicao
Item 4 + uso de ferramentas de anlise de desempenho durante todo o ciclo de
desenv.
Utilizao do equipamento 0
1
2
3
4
5
Justificativa
Nenhuma restrio operacional includa
Pequenas restries operacionais
Necessrias consideraes de ajuste de desempenho e segurana
Necessrias especificaes p/ mdulo especfico
Restries operacionais - tratamento especial
Item 4 + anlise de desempenho
Volume de transaes
Grau de Influncia
0
1
2
3
4
5
Justificativa
No previsto perodos de pico
Perodos de pico em determinados meses / anos
Previstos picos semanais
Previstos picos dirios
Alto volume previsto, necessidade de anlise de desempenho na fase de projeto
Item 4 + uso de ferramentas de anlise de desempenho em todas as fases.
35
36
Grau de Influncia
0
1
2
3
4
5
Justificativa
100% das transaes processadas em batch
De 1% a 7% das transaes online
De 8% a 15% das transaes online
De 16% a 23% das transaes online
De 24% a 30% das transaes online
Mais de 30% das transaes online
Usabilidade
Auxlio navegao (teclas de funo, acesso direto e
menus dinmicos)
Help Online
Movimento automtico do cursor
Movimento hor/vert da tela
Impresso remota
Teclas de funo
Processos batch submetidos a partir de transaes on-line
Utilizao intensa de campos com vdeo reverso,
intensificados, sublinhados, coloridos e outros
indicadores
Impresso hard copy
Utilizao de mouse
Menus pop-up
O menor n. possvel de telas para executar funes de
negcio.
Suporte bilinge (contar como 4 itens)
Suporte multilnge. (contar como 6 itens)
Grau de Influncia
0
1
2
3
4
5
Justificativa
Nenhum dos itens descritos
De 1 a 3 itens
De 4 a 5 itens
Mais de 5 itens, sem requisitos de usabilidade
Mais de 5 itens, com definio de requisitos de
usabilidade
Mais de 5 itens, com definio de requisitos de
usabilidade e ferramentas de anlise de usabilidade
Atualizao online
Grau de Influncia
0
1
2
3
4
5
Justificativa
Nenhuma
Atualizao de 1 a 3 ALIs, volume de dados baixo e recuperao simples
Atualizao de 1 mais de 3 ALIs, volume de dados baixo e recuperao simples
Atualizao online da maioria dos ALIs
Item 3 + proteo contra perda de dados
Item 4 + processo automatizado de recuperao
Processamento complexo
Processamento especial de auditoria
Processamento lgico extensivo
Processamento matemtico extensivo
Processamento gerando muitas excees, resultando em
transaes incompletas que devem ser processadas novamente
Processamento complexo para manusear mltiplas possibilidades
de entrada/sada
Grau de Influncia
0
1
2
3
4
5
Justificativa
Nenhum dos itens descritos
Apenas 1 dos itens
Dois dos itens
Trs dos itens
Quatro dos itens
Todos os itens
mtrica
Reusabilidade
Grau de Influncia
0
1
2
3
4
5
Justificativa
Sem preocupao com reuso
Reuso somente dentro da aplicao
Menos de 10% preparado para reuso
10% ou mais preparado para reuso
Aplicao projetada para reuso nvel de cdigo
Aplicao projetada para reuso c/ parmetros
Facilidade de
implementao
Grau de Influncia
Justificativa
0
1
2
3
4
5
Justificativa
Nenhuma considerao especial de operao
Contar cada item como 1 ponto
Aplicao desenhada para trabalhar sem operador.
Grau de Influncia
0
1
2
3
4
5
Justificativa
Sem instalao em diversos locais
Desenhada para operar em ambiente idnticos
Desenhada para operar em ambientes similares
Desenhada para operar em ambientes distintos
Itens 1 e 2 + Desenhada para operar em mltiplos locais
Item 3 + Desenhada para operar em mltiplos locais
Facilidade de mudanas
Consultas e relatrios flexveis para atender necessidades simples (conte como 1 item)
Consultas e relatrios flexveis para atender necessidades de complexidade mdia (conte como 2 itens);
Consultas e relatrios flexveis para atender necessidades complexas (conte 3 itens);
Os dados de controle so armazenados em tabelas que so mantidas pelo usurio atravs de processos on-line, mas mudanas
tm efeitos somente no dia seguinte;
Os dados de controle so armazenados em tabelas que so mantidas pelo usurio atravs de processos on-line, as mudanas tm
efeito imediatamente (conte como 2 itens).
Concluso
Nesse artigo foi possvel entender o
funcionamento da anlise de pontos
de funo, entendemos um pouco da
Grau de Influncia
0
1
2
3
4
5
Justificativa
Nenhum dos itens
1 dos itens
2 dos itens
3 dos itens
4 dos itens
Todos os itens
37
HAZAN, Cludia -Anlise de Pontos por Funo agosto , 2001 . disponvel em http://www.inf.
ufes.br/~falbo/download/aulas/es-g/2005-1/APF.pdf. acessado em: out. 2005
[IFPUG99] THE INTERNATIONAL FUNCTION POINT USERS GROUP,Princeton Junction. Function
Point Counting Practices Manual release 4.1.1[s.l.], 1999.
D
s
Feedback
eu
edio
ta
38
Links
sobre e
s
Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
Resumo
Aborda o tema Cdigo Limpo com o objetivo de mostrar como o desenvolvedor pode us-lo para melhorar a qualidade do cdigo-fonte de suas aplicaes.
A discusso deste tema interessante uma vez que
prov conhecimento ao desenvolvedor sobre como
transformar cdigos considerados ruins em bons cdigos atravs de exemplos prticos das teorias aqui
abordadas.
39
Nesse sentido, vrias tcnicas vm surgindo entre desenvolvedores, muitas delas expressas para terceiros em forma de
literatura tcnica, na tentativa de minimizar os riscos que as
diferentes abstraes podem agregar ao projeto.
Manter o projeto de cdigo limpo uma tarefa gradual que
envolve vrios passos. Sendo assim, o prximo passo rumo
obteno de estruturas de cdigo que minimizem os riscos das
diversas abstraes de diferentes desenvolvedores, e que sejam
ao mesmo tempo consideradas limpas, definir um formato
para arquivos fontes.
O conceito arquivo fonte ser utilizado porque as regras de
formatao presentes neste artigo extrapolam os limites de
uma classe, aplicando-se ao arquivo fonte, isto , o arquivo
que contm a classe e outros trechos de cdigo.
Definir a formatao que o projeto de cdigo como um todo
deve seguir envolve a obteno de conceitos importantes aqui
abordados, que proporcionaro ao desenvolvedor pensar na
disposio do cdigo fonte no arquivo fonte de uma maneira
diferente da utilizada por alguns desenvolvedores individuais.
O objetivo deste artigo, que gira em torno da definio de um
formato para o projeto de cdigo, est fundamentado nas boas
prticas para a criao de cdigo limpo. A seo Formatao
traz os tipos de formatao existentes e as regras a serem
aplicadas em cada tipo, de forma conceitual e prtica, atravs
das listagens de cdigo. Ao final, o desenvolvedor ter um
resumo das regras, que podero ser adotadas pela sua equipe
de desenvolvimento.
Formatao
Objetivo: Esta seo est relacionada com o formato que o
cdigo fonte deve possuir. Em outras palavras, deve se ter uma
ateno quanto a como o cdigo est distribudo na classe, se
a quantidade de linhas de cdigo muito para ser exibida na
tela ou se quem o visualiza ter o chato trabalho de rolar para
a direita para conseguir l-lo por completo.
Formatao do cdigo est intimamente relacionada
disposio, isto , como o cdigo est organizado, disposto
no arquivo fonte, e a quantidade de cdigo presente por arquivo. Esta seo aborda importantes teorias que sero teis
no processo de criar um formato para o cdigo fonte de suas
aplicaes que seja limpo.
Os tipos de formatao de cdigo: os arquivos de cdigo
so formatados basicamente de duas formas, quanto disposio do cdigo neles escritos: disposio vertical e disposio
horizontal.
A disposio vertical
A disposio vertical, isto , o formato que o cdigo assume
no arquivo fonte, verticalmente falando, deve ser o menor
quanto possvel. Isso, na prtica, quer dizer que a quantidade
de linhas de cdigo presentes em um arquivo fonte (quantidade de linhas no arquivo fonte igual ao tamanho vertical
do arquivo) deve ser mnima, pois arquivos com menos linhas
so mais fceis de encontrar trechos em especficos. Contudo,
um tamanho vertical considerado pequeno no implica em o
40
Engenharia de Software Magazine - Boas prticas para escrita de mtodos, funes e procedimentos Parte 4
desen volvimento
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54. }
}
return objConexao;
41
42
Engenharia de Software Magazine - Boas prticas para escrita de mtodos, funes e procedimentos Parte 4
desen volvimento
A disposio horizontal
A disposio horizontal est relacionado a como o cdigo
fonte se dispe horizontalmente no arquivo fonte, ou seja,
como ele definido em suas linhas. O primeiro ponto a
se considerar o tamanho horizontal do cdigo, isto , o
tamanho que as linhas podem alcanar no arquivo fonte.
O ideal que as linhas sejam o quanto menores possveis,
cuidando para que caibam dentro da visualizao da tela
do monitor e no precisem ser roladas para o lado com a
barra de rolagens para poderem ser totalmente lidas. Outros
detalhes importantes sobre o tamanho horizontal das linhas
de cdigo foram descritos no artigo sobre Funes, desta
srie de artigos sobre Cdigo Limpo (ver Nota 1).
Nota 1. Funes
O artigo sobre funes foi publicado na edio 40 da Engenharia de Software Magazine
43
Outros pontos da aplicao dessa particularidade da regra podem ser vistos nas linhas 23, 24 e 25. Ainda nessas
linhas, possivel observar que os espaos em branco esto
sendo utilizados antes e depois dos parnteses, para deixar
claro que o que se encontra entre parnteses pertence a um
mesmo conceito nico. Essa ao refora a ideia de forma
visual de que tudo que est entre parnteses resolvido
primeiro para depois se comunicar com o resto do cdigo
fora dos parnteses. Sem os espaos esta regra continua
valendo, mas os espaos facilitam a visualizao de diviso
de conceitos.
Quando o assunto disposio horizontal do cdigo no
44
Engenharia de Software Magazine - Boas prticas para escrita de mtodos, funes e procedimentos Parte 4
desen volvimento
Um recurso utilizado por diversas empresas de desenvolvimento e que se torna fundamental na construo de aplicativos
considerados dentro das normas de formatao a definio
de padres de formatao.
Padres de formatao so as regras que a equipe de desenvolvimento utiliza para que todo o cdigo implementado
possua formatao igual. Isso implica em todos os membros
da equipe de desenvolvimento seguirem os padres estabelecidos para que no haja implementaes, no que se refere
formatao do cdigo, individualistas.
Neste artigo esto sendo abordadas diversas regras de formao acerca da disposio, tanto vertical como horizontal
do cdigo fonte. Nesse sentido, importante que a equipe
de desenvolvimento tenha um momento para definir quais
os padres de formatao que devero seguir.
Uma das primeiras regras sobre formatao descritas
neste artigo gira em torno da disposio vertical do cdigo
fonte no arquivo fonte. Para determinar, por exemplo, qual
o tamanho em nmero de linhas de cdigo fonte que um
projeto deve possuir, a equipe pode estabelecer um nmero
de linhas ideal, um nmero mnimo e um nmero mximo,
levando em considerao, por exemplo, um histrico de
projetos anteriores desenvolvidos por ela.
45
Concluso
A srie de artigos sobre cdigo limpo vem abordando importantes aspectos e tcnicas que so utilizadas para tornar o
projeto de cdigo limpo, atravs de suas sees.
Este artigo abordou a seo formatao, que forneceu ao
desenvolvedor as regras necessrias para que os projetos
de software tenham um formato fundamentado em boas
prticas. As regras que mostram como implementar uma
formatao consistente em projetos de cdigo devem ser
utilizadas por toda a equipe de desenvolvimento. fundamental que o conhecimento adquirido neste artigo seja
utilizado pela equipe e que os padres de formatao sejam
definidos para que todos possam utiliz-los.
Referncias
MARTIN, Robert C, 2009. Cdigo Limpo: Habilidades Prticas do Agile Software, 1ed. Rio de
Janeiro: Alta Books, 2009.
Engenharia de Software Magazine - Boas prticas para escrita de mtodos, funes e procedimentos Parte 4
D
s
FOWLER, Martin. Refatorao: aperfeioando o projeto de cdigo existente, 1ed. Porto Alegre:
Bookman, 2004.
Feedback
eu
edio
ta
46
sobre e
s
desen volvimento
47