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.
Colaboradores
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Jornalista Responsvel
Kaline Dolabella - JP24185
Na Web
http://www.devmedia.com.br/revista-engenharia-de-software-magazine
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).
Corpo Editorial
Editor
Rodrigo Oliveira Spnola
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
eduspinola@gmail.com
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
EDITORIAL
ware Magazine que destaca trs artigos que apresentam perspectivas diferentes
VSS x SVN
Modelagem OO na prtica
NDICE
Agilidade
05 - Gerenciando requisitos com Kanban
Paulo Victor Gama Gross de Souza
Planejamento
17 - Gerenciamento de Projetos
Ivnia Ramos dos Santos
Engenharia
26 - Aplicando BPM na engenharia de software
Mircia Vinter Freire
Arquitetura e Desenvolvimento
43 - VSS x SVN
Alan Antunes, Daniel Carlos Dvila, Ivnia Ramos dos Santos e Robson Da Motta
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
C
Paulo Victor G. Gross de Souza
pvggds@gmail.com
Kanban
Kanban uma palavra de origem japonesa que significa registro ou placa visvel. Na engenharia de produo, significa
um carto de sinalizao que controla os fluxos da produo.
Largamente utilizado em linhas de produo, na fabricao de
peas ou componentes, para indicar a entrega de lotes ou peas
produzidas. Um exemplo quando se esgotam todas as peas
em estoque, um aviso sinalizado para que a matria prima
seja preparada para um novo pedido de produo.
O Kanban permite agilizar a entrega e a produo, por
fornecer um modelo de gesto visual, de forma que o gerente da fbrica possa acompanhar o andamento da linha
a qualquer momento. Com prazos cada vez mais curtos o
mercado de software comeou a necessitar de desenvolvimento gil de tal forma que as empresas aderem prticas
como Scrum e Kanban.
Para melhorar a qualidade de softwares entregues, desdobrando requisitos macros em requisitos menores, com entregas
iterativas e com valor agregado para o cliente, as prticas de
Kanban comearam a ser inseridas na linha de produo do
desenvolvimento de software.
Para um desmembramento dos requisitos em partes menores, necessrio separ-los em peas que compe um fluxo
de trabalho, ou seja, uma sequncia de passos e atividades
desenvolvidas por um time para atingir um objetivo especfico.
Estas peas que compe o fluxo de trabalho so representadas
por User Stories (requisito capturado normalmente em um
pargrafo que descreve a necessidade de um usurio de forma
breve utilizando uma linguagem comum ao negcio).
Cada requisito do sistema pode ser representado por uma
ou mais User Stories que so representadas por um carto
Kanban a ser colocado na linha de produo de software.
Na medida em que o trabalho de desenvolvimento da User
Story incrementado, a mesma passa de fase dentro da linha,
destacando que o desenvolvimento gil de software pode
ser separado em fases como, de anlise, design, codificao,
testes e entrega, por exemplo, ou apenas em fila ou Back Log
(lista de atividades a serem realizadas), User Story, TO DO
(tarefas a fazer), DOING (tarefas em execuo), DONE (tarefas
finalizadas) e QA (atividades de garantia de qualidade), como
ilustra a Figura 1.
Para que as peas andem como uma esteira em uma linha
de produo, o objetivo um fluxo de trabalho contnuo.
O sistema Kanban deve ser nivelado entre as fases e profissionais alocados por fase, onde as fases de maior complexidade
podem requerer um nmero maior de profissionais atuando,
por exemplo.
Se um item de Back Log consumir 8 horas de um analista de
mesmo nvel de experincia na fase de garantia de qualidade e
16 horas na fase de desenvolvimento isso quer dizer que a fase
de desenvolvimento (in Dev) trar um gargalo na produo e a
fase garantia de qualidade (in QC) ficar ociosa (uma vez que
ela somente poder ser executada depois que as atividades de
desenvolvimento forem finalizadas). Para que isso no acontea, necessrio nivelar o trabalho, colocando dois profissionais
para atuar em um item na fas e de desenvolvimento e um para
atuar no item que est na fase de garantia de qualidade como
ilustra a Figura 2.
agilidade
Nota do DevMan 1
Project Charter: Tambm conhecido como termo de abertura do projeto, o project
charter o documento que autoriza formalmente o projeto.
agilidade
Nota do DevMan 2
Prtica
Aderncia
Sim
Sim
Sim
Parcial At o final do estudo, a empresa no possua rastreabilidade ao nvel do cdigo, apenas dos requisitos
at os casos de teste, passando pelos Casos de Uso / User Stories e A&D.
Parcial As reunies de reviso dos requisitos nem sempre ocorrem e quando ocorrem nem todas so
documentadas por quem efetuou a reviso, ou seja, o aceite formal.
Tabela 1. Soluo s prticas de gerncia de requisitos do CMMI aderidas pela organizao utilizando Kanban
Referncias
Software Engineering Institute (2006) CMMIDEV: CMMI for development, V1.2
model, CMU/SEI-2006-TR-008
http://www.sei.cmu.edu/cmmi/general/
Scrum with Kanban - Small Adjustments, Big Improvements - Paulo Caroli and
Gilherme Motta - Abril 2012.
www.devmedia.com.br/esmag/feedback
D
s
Feedback
eu
edio
ta
10
Concluso
sobre e
s
Na rea A&D (Anlise e Design) responsvel por desenvolver diagramas UML, a sequencia das colunas a mesma,
seguindo para a fase da rea VV (Verificao e Validao)
onde se desenvolve roteiros de teste, j na rea Implementation
(Desenvolvimento) desenvolvido o cdigo do produto de
acordo com o requisitado pelo cliente. Aps est fase, existe
uma nova fase VV que nesse momento executa os testes de
sistema, testes funcionais, de regresso, unitrios e outros para
garantir a qualidade do produto.
A fase I&D (Implantao e Design) a ultima fase, sendo
onde se executa os testes de aceitao descritos pelo cliente junto com os requisitos, ou seja, verificado se o critrio esperado
foi atendido. Esses testes so denominados, testes alpha.
Para aderir quinta prtica da gerncia de requisitos (SP5),
todos os artefatos gerados so revisados pelos engenheiros do
conhecimento em um processo denominado pela empresa como
motherboard. Procedimento semelhante as reunies de reviso
do Scrum, onde o trabalho produzido validado pelos gestores
de produtos (Product Owners) e apresentado ao cliente.
Apresentado o produto final para o cliente e tambm o aceite
formalizado, o projeto entra na fase de encerramento, onde
uma reunio de lies aprendidas realizada com todo o time.
Esta reunio se assemelha s cerimnias de retrospectiva do
Scrum, onde so expostos pontos positivos, de inconsistncia
e a melhorar e suas possveis melhorias.
O que for levantado na reunio armazenado em um
banco de lies aprendidas da companhia para consulta em
projetos futuros.
A Tabela 1 apresenta uma viso consolidada das prticas de
gerncia de requisitos e quais delas foram aderidas pela Black
Belts Company e seus processos.
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
11
Com o objetivo de aproveitar os benefcios do desenvolvimento gil com Scrum e da modelagem UML, seria possvel
definir um processo de desenvolvimento de software gil com
o auxlio de documentao baseada em UML? Este artigo tem o
propsito de explorar os dois conceitos e sugerir casos prticos
em que os mesmos podem ser integrados, permitindo que esta
pergunta possa ser respondida.
Scrum
O desenvolvimento gil de software, abordado originalmente
no Manifesto gil, tem crescido em funo da necessidade de
prover aos clientes respostas rpidas e efetivas.
Existem vrios mtodos de agilidade que podem ser utilizados, dentre eles o Scrum, que pode ser considerado um
framework para gerncia de projetos geis e complexos, permitindo a colaborao entre equipes. O Scrum tambm pode
ser considerado um modo de desenvolver um produto iterativamente, onde o trabalho de equipes diferentes integrado
continuamente at a concepo do produto final, permitindo
que o cliente se envolva mais a cada iterao, propiciando a
criao do produto de qualidade e fornecendo respostas rpidas a desvios de escopo.
As equipes Scrum so compostas por colaboradores separados em trs papis diferentes:
Product Owner representa o cliente dentro da equipe.
responsvel por definir a viso do produto final, elaborar,
12
agilidade
UML
13
Diagrama de Interatividade: pode ser visto como um diagrama de atividades onde as atividades so substitudas por
diagramas de sequncia.
Apesar de disponibilizar todos esses diagramas para o processo de documentao de sistemas, alguns destes so utilizados com mais frequncia no processo de desenvolvimento
do que outros.
Durante a fase de Anlise de Requisitos, os diagramas de
Casos de Uso so extremamente importantes para a melhor
visualizao das funcionalidades e atores do sistema que
acessam as mesmas. Ainda nesta fase, diagramas de classes
so fundamentais por representarem as entidades de negcio
e suas relaes. Alm disso, a partir desse diagrama que o
modelo relacional de banco de dados pode ser obtido.
Na fase de Projeto, onde o objetivo da documentao ser
um insumo para a codificao do software propriamente dita,
novos diagramas de classes so produzidos com o intuito de
abordar questes da arquitetura de software a serem implementadas. Com o objetivo de mostrar as diferentes camadas
de software a serem produzidas, os diagramas de pacotes
facilitam a organizao.
Durante a fase de desenvolvimento, a funcionalidade de
alguns mtodos de classe projetados na fase anterior pode ser
complexa o suficiente para demandar a criao de diagramas
de sequncia, com o objetivo de facilitar o seu entendimento.
Estes diagramas no precisam ser gerados para todos os mtodos, sendo muito teis para as funcionalidades de negcio
importantes e complexas, pois representam visualmente a
iterao entre os objetos com base numa linha de tempo. Os
diagramas de estados tambm so importantes para facilitar
o entendimento do comportamento dos objetos de classes que
possuem vrios estados durante seu ciclo de vida.
Na fase de testes, um dos diagramas mais utilizados o
diagrama de atividades, artefato til para a criao de casos
de testes baseados em fluxogramas.
Documentos que podem servir de alicerce para a implantao
do software criado so os diagramas de implantao e componentes. Sendo este ltimo muito utilizado para apresentar
uma viso geral do software implantado.
14
agilidade
15
16
Feedback
eu
sobre e
s
Referncias
D
s
Concluso
organizaes. A utilizao da UML no deve se restringir comunicao entre membros de uma equipe de projeto, mas para
auxiliar e melhorar o processo de desenvolvimento. Para que
isso se torne vivel, evitando o overhead gerado pela alterao
manual de artefatos, necessrio a utilizao de ferramentas
para automatizar o processo de modelagem com UML.
edio
ta
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
Gerenciamento de Projetos
Mtodos de gerenciamento de projetos baseado no modelo MPS.BR
Nesse artigo so apresentadas sugestes que facilitem empresas de pequeno e mdio porte, que
iniciam a implementao de um modelo de qualidade, a alcanar resultados esperados pelo modelo
MPS.BR (Modelo de melhoria de software brasileiro) no processo de gerenciamento de projetos no
seu primeiro nvel, G.
Gerenciamento de Projetos:
Este artigo tem como propsito apresentar
sugestes evidenciadas atravs de planilhas
e ferramentas que auxiliem a organizao a
realizar tarefas, sendo os materiais apresentados desenvolvidos conforme necessidades
identificadas em estudo de caso na empresa
fictcia Special Software. Os resultados procuram mostrar alternativas compatveis com a
realidade de organizaes.
17
Gerenciamento de Projetos
O gerenciamento de projeto importante por no restringir
a organizao apenas no desenvolvimento de um produto,
mas em produzi-lo com excelncia, com atividades planejadas
e monitoradas.
Antes de gerenciar projetos, a organizao deve definir o
projeto conforme sua realidade, ou seja, no h como gerenciar
algo que no se conhece. Para o PMBOK, projeto entendido
como um esforo temporrio empreendido para criar um
produto, servio ou resultado exclusivo.
Para Pressman, gerenciar projetos consiste em combinar
mtodos abrangentes para todas as fases de desenvolvimento
do software e melhores ferramentas para automatizar esses
mtodos. Porm, mtodos tornam-se difceis de implementar
se a organizao no tiver o auxlio de um modelo que traga
resultados esperados na gerncia de projeto.
Nota do DevMan 1
Normas ISO 12207 e 15504.
ISO/IEC 12207 - Norma que alm de se basear ao ciclo de vida do software tambm
composta por trs processos:
Primrio Onde cada envolvido deve ter seu papel definido;
De suporte Para que sejam criadas definies como base para outros processos
mesmo tendo objetivos diferenciados (documentao, configurao, garantia de qualidade, auditorias e templates);
Organizacional Necessidade de definio de um processo organizacional e sua
implementao, envolvendo todos os recursos da instituio (gesto de portflio, infraestrutura, melhorias, formao de colaboradores).
ISO/IEC 15504 Referncia para o gerenciamento de avaliaes de melhoria e
capacidade de processos, buscando identificar o perfil existente e criar um plano
de melhorias.
Nota do DevMan 2
CMMI (Capability Maturity Model Integration)
Mtodo de qualidade evolutivo, tendo cinco nveis de maturidade:
Inicial Mapeamento do processo existente, mesmo que informal;
Repetvel A organizao torna-se capaz de iniciar o gerenciamento de projetos,
repetindo tarefas padres identificadas no mapeamento;
Definido Os processos so definidos e padronizados, focando na organizao;
Gerenciado Os processos de apoio passam a ser gerenciados, a fim de medir o
desempenho do processo;
De otimizao Fase em que a organizao j dever ter implementado todos os
processos e inicia-se o processo de otimizao que garante que os problemas identificados sejam corrigidos e melhorados conforme a evoluo organizacional.
18
C
D
E
Gerncia de Riscos GRI; Desenvolvimento para Reutilizao DRU; Anlise de Deciso e Resoluo ADR;
Gerncia de Reutilizao GRU (evoluo)
Verificao VER; Validao VAL; Projeto e Construo do Produto PCP; Integrao do Produto ITP;
Desenvolvimento de Requisitos DRE
Gerncia de Projetos GPR (evoluo); Gerncia de Reutilizao GRU; Gerncia de Recursos Humanos GRH;
Definio do Processo Organizacional DFP; Avaliao e Melhoria do Processo Organizacional AMP
Medio MED; Garantia da Qualidade GQA; Gerncia de Configurao GCO; Aquisio AQU
planejamento
G
F
E
Nessa fase o foco esta na verificao e validao; tambm em projeto, construo e integrao de produtos, tambm no desenvolvimento de requisitos.
Nesse nvel a gerncia de riscos realizada, assim como o desenvolvimento baseado na reutilizao, sendo a gesto de reutilizao evoluda. A anlise de deciso e resoluo deve ser formalizada.
Nessa fase realizada a anlise de causas de problemas e resoluo, onde preza-se pela melhoria constante do processo definido
Planejamento do Projeto
Pelo processo mapeado possvel identificar o ciclo de vida
utilizado na gerncia de projeto, destacando que as fases devem
ser identificadas e definidas desde a concepo do projeto at
sua liberao e seus marcos - onde se realiza verificaes da
19
20
planejamento
Recursos
Estrutura
Custo/hora (Y$)
Ger. de Projetos
60
Analista de requisitos
40
Analista de sistemas
30
Desen. Iniciante
10
40
10
OBS:
Nas estruturas esto
includos todos os recursos
correspondentes, desde
infra-estrutura recursos
humanos, ou seja, o custo/
hora refere-se custo geral.
Sistema Distribudo
T2
Tempo de Resposta
Eficincia
T3
1.5
E2
0.5
E3
21
173
N de Horas estipulada
N de Horas restante
Recursos
4%
Ger. de Portflio
Total
20,28
1216,8
2. PLANEJAMENTO
1%
3,73
Cronograma
Ger. de Projetos
0,37
22,2
Define EAP
Ger. de Projetos
0,39
23,4
0,7
42
Total
1,46
87,6
25%
50,95
Ger. de requisitos
0,35
14
Ger. de requisitos
1,45
58
0
Ger. de requisitos
0,5
0
Ger. de requisitos
0,3
Valida Requisitos
req 2- COMPRAS COM PAGAMENTO EM ABERTO
Ger. de requisitos
0,5
20
0
Ger. de requisitos
0,5
....
Atualizao de escopo
... (todas as atividades seguem sendo distribudas...)
Tabela 6. Planilha de clculo
22
12
0
Aceitao
req 2- COMPRAS COM PAGAMENTO EM ABERTO
20
20
planejamento
Processos de apoio
Existem processos que apoiam a gerncia de projetos, como
medio, qualidade, configurao, os quais devem ter
suas atividades planejadas
junto com a gerncia de
projetos, tendo o gerente
de projeto conhecimento
de todas as atividades a
serem executadas durante
o projeto como auditorias
e coletas de dados, armazenamento, privacidade de
dados e distribuio de informaes, conforme GPR9
Os dados relevantes do
projeto so identificados e
planejados quanto forma Figura 7. Planilha de reviso de marcos
Objetivo
Pblico Alvo
Canal/Evento
-Acompanhar as atividades
em progresso e prximos
passos
Equipe do Projeto
Reunio
Acompanhar os riscos
Equipe do Projeto
Reunio
Equipe Projeto
Reunio
Comunicar a Situao do
Projeto
Alta Gerncia
Documento
Email(disparado atravs da
ferramenta DotProject)
Gerente Projeto
Distribuidores
Data
Clique aqui para inserir
uma data.
Responsabilidade
Materiais Relacionados
Gerente Projeto
Gerente Projeto
Gerente Projeto
Plano Projeto
Gerente Projeto
Relatrio de Acompanhamento
Reunio
Alta Gerncia
Gerente Projeto
23
Monitoramento do projeto
No planejamento do projeto devem ser registrados os riscos
potenciais do projeto, podendo ser considerado prioridade,
magnitude e probabilidade para os mesmos, tambm sendo
determinado um perodo para anlise durante o projeto.
24
planejamento
Pesos
40000
30000
0
Total
70000
Pesos
60000
1000
Peso base
10000
1000
100
10
RECURSOS
RECURSOS HUMANOS
CAPACITADOS
EXISTEM RECURSOS
NECESSRIOS
USABILIDADE DO PRODUTO
PROJETOS EM ANDAMENTO
SIM
SIM
NO
Concluso
Empresas, principalmente as de pequeno e mdio porte,
acabam desistindo de implementar um mtodo de qualidade
no gerenciamento de seus projetos por acreditar que alteraria
sua forma de trabalho ou at mesmo pela necessidade de reaprender a forma correta, o que trata-se de um equvoco, pois
o modelo MPS.BR flexvel nas tarefas serem executadas
pela organizao, ou seja, apresenta resultados esperados
mas permite a empresa adotar a maneira compatvel com sua
realidade para alcanar o resultado.
Na gerncia de projetos, o modelo sugere atravs de seus resultados que todas as atividades a serem realizadas no projeto
sejam planejadas no seu inicio, at mesmo os provveis riscos
e atrasos, a fim de que no aconteam surpresas durante o
andamento at o trmino do projeto, ou desvios constantes
que resultem no atraso ou cancelamento do projeto.
O gerenciamento central do projeto cabe ao gerente de projeto,
o qual tem conhecimento de todas as atividades e tambm da
situao do projeto em todas as fases. Cabe a ele o monitoramento constante, analisando viabilidade, realizando tomada
de decises e gerenciando recursos e problemas encontrados
durante o andamento do projeto.
Referncias
KARNER, G. Use Case Points: resource estimation for Objectory projects. Objective
Systems
PREESMANN, Roger S. Engenharia de Software. So Paulo. Makron Books, 1995.
RUARO, Dirceu Antonio. Manual de apresentao de Produo Acadmica. Faculdade
Mater Dei. Pato Branco, PR: Faculdade Mater Dei, 2004.
Feedback
eu
edio
ta
D
s
www.devmedia.com.br/esmag/feedback
25
sobre e
s
Por isso aconselha-se ao gerente registrar todas as aes realizadas ou previstas em planilha de monitoramento. No monitoramento deve ser informada a ao a ser realizada para soluo
de problema identificado como apresentado pela Figura 9.
Na planilha de monitoramento do projeto, o gerente de
projeto registra a ao de monitoramento, o responsvel pela
ao, a causa desse registro, a data e o impacto, tambm o
prazo para soluo, o responsvel pela soluo, o status do
registro, as aes para soluo, a verificao do gerente de
projeto, a data de soluo e o tipo de registro realizado, como
exigido pelo GPR18 Registros de problemas identificados
e o resultado da analise de questes pertinentes, incluindo
dependncias crticas, so estabelecidos e tratados com as
partes interessadas.
Os problemas encontrados podem ter aes de soluo que
no alterem o planejamento do projeto, porm em alguns casos
pode ser necessrio desvios, ou seja, replanejamento do projeto,
como alterao no cronograma ou recursos, destacando que
esses desvios devem ser acompanhados at sua total concluso,
como resultado esperado pelo GPR19 Aes para corrigir
desvios em relao ao planejado e para prevenir a repetio
dos problemas identificados so estabelecidas, implementadas
e acompanhadas at sua concluso.
No incio do projeto e a cada desvio encontrado deve ser
verificado se o projeto continua ou no vivel baseando-se
nos critrios organizacionais, como pode ser observado na
Tabela 8.
O exemplo da planilha auxilia na verificao de viabilidade,
conforme GPR11 A viabilidade de atingir as metas do projeto, considerando as restries e os recursos disponveis,
avaliada. Se necessrio, ajustes so realizados. A inviabilidade
do projeto pode resultar na parada, ajuste ou cancelamento do
projeto, dependendo da deciso da organizao.
Caso seja necessrio algum replanejamento no projeto, esse
deve ser alterado tambm no plano geral do projeto, destacando que o que foi planejado deve ser monitorado, conforme
GPR13 O escopo, as tarefas, as estimativas, o oramento e o
cronograma do projeto so monitorados em relao ao planejado, para que os objetivos sejam alcanados, lembrando que
os outros planos de apoio afetados por alteraes tambm
devem ser replanejados.
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
E
Mircia Vinter Freire
mirceia.vinter@gmail.com
26
en gen haria
O que BPM?
Para o entendimento de BPM, necessrio compreender a
definio de processo de negcio. Onde o processo um conjunto determinado de atividades ou procedimentos executados
por recursos humanos ou no, que tem como objetivo alcanar
uma ou mais metas.
Os processos so iniciados por eventos especficos e apresentam um ou mais resultados que podem implicar no trmino
do processo ou na transferncia de um controle para outro
processo. Processos so compostos por vrias aes e operaes
inter-relacionadas com um objetivo anteriormente estabelecido, definindo o mtodo de trabalho numa organizao. J um
processo de negcio definido como um trabalho ponta a
ponta que agrega valor aos clientes. Destacando que o trabalho
ponta a ponta envolve todo o trabalho, ultrapassando os limites
funcionais necessrios para entregar valor aos clientes.
O Gerenciamento de Processo de Negcio (BPM) uma
abordagem disciplinada para identificar, desenhar, executar,
documentar, medir, monitorar, controlar e melhorar processos
de negcio automatizados ou no para alcanar os resultados
pretendidos consistentes e alinhados com as metas estratgicas
de uma organizao.
O BPM possibilita que uma organizao alinhe os seus processos de negcio sua estratgia organizacional, conduzindo
a um desempenho eficiente em toda organizao atravs de
melhorias das atividades especficas de trabalho em um departamento, na empresa como um todo ou entre empresas.
Planejamento e estratgia
O ciclo de vida BPM inicia com a criao de um plano e uma
estratgia conduzida a processos para a empresa.
O plano iniciado com uma compreenso das metas e
estratgias da organizao, que devem ser desenhadas para
garantir valor agregado para o cliente. O objetivo do plano
prover uma estrutura para o gerenciamento contnuo de processos voltados para o cliente, assegurando o alinhamento e
integrao com a estratgia organizacional, tambm a pessoas,
processos e sistemas.
O planejamento tambm identifica papis e responsabilidades,
patrocnios da diretoria executiva, expectativas de medies de
desempenho, metas e metodologias. Nesse momento pode haver
anlise de mudanas organizacionais, caso se espere atividades
transformadoras nos processos.
27
Implementao de processos
Implementar processos de negcio concretizar seu desenho
aprovado em fluxos de trabalho documentados e verificados.
Tambm inclui a implementao de procedimentos e polticas
novas ou revisadas.
Ao iniciar as atividades de implementao, se admite que as
fases de anlise, modelagem e desenho definiram e aprovaram
todas as especificaes, por isso, apenas pequenos ajustes
devem advir na fase de implementao.
Refinamento de processos
Os processos de negcio devem continuar sendo medidos,
a fim de que essas mtricas sejam utilizadas pelos gestores
de processos na adequao dos recursos para alcanar os
objetivos esperados.
O refinamento uma fase responsvel pelo tratamento dos
ajustes e melhorias ps-implementao, com base nos indicadores e informaes importantes de desempenho.
Tipos de processos
Existem trs tipos de processos de negcio: processos primrios (tambm chamados de processos essenciais), processos de
suporte e processos de gerenciamento.
Os processos primrios so ponta a ponta, interfuncionais e entregam valor aos clientes. So compostos pelas atividades essenciais que uma organizao realiza para cumprir seu objetivo.
Os processos de suporte auxiliam processos primrios, geralmente considerando a gesto de recursos e/ou infraestrutura
demandada pelos processos primrios.
A principal diferena entre processos primrios e de suporte
que os de suporte no agregam valor direto aos clientes,
28
Vantagens e Desvantagens
O BPM uma disciplina que favorece a implantao dos
modelos e certificaes de qualidade, como, CMMI, MPS.BR,
ISO 9001, pois um de seus conceitos a definio de processo.
Com os processos definidos e desenhados, acaba sendo simples
implantar as prticas e requisitos dos modelos de qualidade.
Alm disso, uma importante ferramenta de apoio s empresas inovadoras. Numa empresa orientada a processos, a
tecnologia aplicada s fases do BPM, modelagem, automao,
monitoramento e anlise, promove inovao por tendncias
naturais, por experincias e observao. BPM uma nova
cultura para gerir negcios.
A disciplina de BPM indica que as organizaes podem
obter melhorias operacionais e efetivas otimizando praticamente qualquer processo. Segundo a Gartner, a implantao
de BPM representa o maior ROI (Return of Investment) em
iniciativas de TI, apresentando 78% dos projetos com retorno
maior que 15.
Apesar das dificuldades nas implementaes, a viabilidade
tcnica e o retorno sobre o investimento de projetos BPM so
reais e podem ser comprovados. Entretanto, o processo de implantao envolve alguns desafios como, insero do conceito
de gerenciamento por processos na cultura organizacional e
integrao das atividades dos analistas de negcio e da equipe
tcnica que executa o processo.
Um dos mtodos para ultrapassar as barreiras relacionadas
cultura organizacional pode ser a intensificao de aes
voltadas para a institucionalizao e o aprendizado organizacional, como, treinamentos, seminrios, visitas e estudos
de caso de empresas que j implementaram BPM, entre outras. Sendo importante que esta etapa inclua no somente o
pblico interno da empresa, mas tambm clientes, parceiros
e fornecedores.
en gen haria
o ganho de produtividade e eficincia. Alm desse possuir capacidade de integrao entre recursos humanos, fsicos e TI.
O foco da implantao BPM, na Engenharia de Software, deve
ser a melhoria dos processos de desenvolvimento de software,
para que as empresas possam obter os resultados esperados
do negcio, ou seja, aumentar lucratividade, satisfao dos
clientes, otimizao de custos, por exemplo.
Em relao ao desempenho da empresa e ao alcance dos
objetivos de negcio, o BPM auxilia na medio, anlise e aperfeioamento da gesto do negcio e dos processos, emprega as
melhores prticas de gesto de processos, como, mapeamento,
modelagem e documentao de processos, definio do nvel
de maturidade da organizao, plano de comunicao, automao, monitoramento atravs de medies, indicadores de
desempenho e o ciclo de melhoria contnua.
Implantao de BPM
A implantao de BPM se inicia levando em considerao a
organizao e seus processos de negcio pela perspectiva do
cliente. Ou seja, essa observao deve ser feita de fora para
dentro, com a mesma proporo que considerem os processos
de dentro para fora.
BPM permite a anlise, definio, execuo, gerenciamento
e medio deprocessos, envolvendo o suporte para a interao entre pessoas e aplicaesinformatizadas diversas. Ele
tambm define a padronizao dos processos de negcio,
objetivando reduzir o TCO (total cost of ownership - estimativa financeira projetada para avaliar os custos diretos e
indiretos relacionados ao investimento em um determinado
bem como, por exemplo, software e hardware) ereorganizar a
empresa, para otimizar desempenho, aumentando produtividade e eficincia.
A aplicao dessas prticas favorece a maximizao dos
resultados e da execuo dos processos, fazendo com que as
empresas obtenham otimizao de recursos, satisfao do
cliente e vantagem competitiva atravs de servios e produtos
com nvel de qualidade superior, tambm auxilia a empresa
no controle de seus prpriosprocessos.
Essa ampla forma de trabalhar com processos impe que as
organizaes troquem a abordagem vertical e departamental
de gesto por uma viso horizontal, agregando e otimizando
processos de negcio com os clientes, fornecedores e colaboradores, onde todos devem participar do desenho e redesenho
dos processos, a fim de definir formas de gerenciar os riscos,
indicadores e mtricas de desempenho.
A implantao de uma empresa com viso horizontal enriquece o trabalho em equipe, pois esto todos voltados para um
objetivo final que se refere ao produto. Em organizaes com
vises verticais, as estruturas departamentais so rigorosas
e as atividades so controladas por nveis hierrquicos, no
havendo um cuidado em analisar e verificar as interaes entre os setores funcionais e o impacto que cada departamento
exerce nos demais.
Quando a organizao no conhece seus processos de negcio
detalhadamente, isso pode dificultar o sucesso no alcance dos
Medio e BPM
Ao dedicar-se a abordagem sistmica e a gesto por processos, a empresa consegue analisar e estabelecer seus objetivos
estratgicos, podendo priorizar os processos mais crticos,
estabelecer indicadores que permitem medir o desempenho
e implantar projetos de melhoria contnua em seus processos.
Um exemplo quando o dono do processo pode estabelecer
indicadores para a rea de teste, como produtividade e percentual de retrabalho, analisar e identificar que talvez seja vivel a
automatizao do processo de teste, implantando ferramentas
e capacitando os analistas de teste.
As atividades de medio e a anlise do desempenho provm
feedback sobre as atividades de processo que podem auxiliar
nas tomadas de deciso pela alta gesto. As medies de
desempenho podem ser disponibilizadas atravs de reportes
baseados em informaes extradas dos pontos de controle dos
processos. So exemplos de mtricas que podem ser utilizadas
a produtividade, o tempo de concluso de atividades, o custo,
o retrabalho, os erros identificados pela clula de teste etc.
29
30
Referncias
Livro Good to Great: Why some companies make the leap... and others dont ISSBN 9780066620992
Livro Business Process Management: Pratical guidelines to successful
implementations ISSBN 9780750686563
Link para o site oficial da notao BPMN
http://www.bpmn.org/
Feedback
eu
sobre e
s
D
s
Concluso
edio
ta
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
Clia Negrini
celianegrini@hotmail.com
diversos fatores: ciclos de desenvolvimento curtos, projeto sem documentao, entre outros. Nesses casos pode
ser adotada uma tcnica denominada
Testes Exploratrios.
31
Teste exploratrio uma abordagem que oferece uma liberdade maior ao testador, de maneira que torna-se possvel interagir
com a aplicao da forma que considerar mais adequada e
utilizar as informaes obtidas que prov para direcionar os
testes dentro do cenrio existente, e assim, realizar as combinaes que julgar necessrias. Contudo, o teste exploratrio
no necessariamente executado de forma isolada. Pode ser
utilizado tambm como um teste complementar, ou seja, aps
a execuo de um teste planejado, realizada uma varredura na aplicao, realizando testes exploratrios para resgatar
bugs que tenham passado despercebidos e que tm seu grau
de importncia no projeto.
Apesar de poder ser utilizado para testes complementares,
os testes exploratrios geralmente so utilizados isoladamente.
Isso ocorre porque a abordagem exploratria a melhor maneira de testar um produto rapidamente para tentar garantir
o mnimo de qualidade possvel, quando o tempo no permite
um teste planejado.
Para entender como aplicar as tcnicas dos testes exploratrios, primeiramente importante entender o objetivo desse
tipo de teste, veremos aqui trs objetivos:
1. Obter uma compreenso de como funciona a aplicao.
Geralmente utilizado por novos testadores para auxili-los a
identificar pontos de entrada de testes e desafios especficos,
mas tambm, pode ser utilizado por testadores mais experientes com o intuito de explorar a aplicao para entender a
profundidade de suas necessidades de testes;
2. Expor as capacidades da aplicao. Auxilia a identificar
provas de que o software executa a funo para a qual foi
concebido e que satisfaz as suas necessidades;
3. Explorar a aplicao antes da liberao para realizao de
um teste planejado. Permite que a aplicao passe por uma
anlise inicial antes da liberao formal para a equipe de testes, possibilitando que sejam encontrados pontos vulnerveis
e suscetveis a erros antecipadamente.
Testadores experientes raramente executam suas tarefas
sem um planejamento prvio e uma estratgia de testes,
principalmente se aps uma anlise detalhada identificada a
complexidade da aplicao. Eles tendem a trilhar um caminho
que foi previamente estudado, o que faz com que encontrem
pontos mais sujeitos a erros.
A atividade de um testador est relacionada em realizar escolhas. Trata-se de compreender a complexidade da aplicao
no momento da execuo dos testes e a partir da anlise da
informao obtida realizar a melhor cobertura possvel.
Nesse contexto, esse artigo apresentar algumas tcnicas de
testes exploratrios para auxiliar os testadores nessas escolhas
e permitir que explorem a funcionalidade de uma aplicao
de forma mais segura e eficiente.
32
Meta
Ordem de
execuo
1
2
3
4
5
Vale ressaltar que raramente as funcionalidades so independentes uma das outras, desta forma, realizar apenas testes
independentes pode impedir que bugs sejam encontrados,
uma vez que os recursos interagem uns com os outros. Por
exemplo, para um sistema de vendas, existe um sistema de
controle de estoque interagindo com ele. Se no momento do
teste o testador considerar apenas que realizou a compra e
no conferir se o sistema deu baixa no estoque, esse seria um
teste independente e no um teste integrado. Portanto, sempre
considere esse tipo de teste no planejamento. Essa tcnica ser
abordada no tpico Teste as Integraes.
en gen haria
Nota do DevMan 1
Particionamento de equivalncia
Esse critrio divide o domnio de entrada de um programa em classes de equivalncia a partir das quais os casos de teste so derivados. Ele tem por objetivo minimizar o
nmero de casos de teste, selecionando apenas um caso de teste de cada classe.
Nota do DevMan 2
Anlise de valor limite
Por razes no completamente identificadas, um grande nmero de erros tende a
ocorrer nos limites do domnio de entrada invs de no centro. Neste sentido, esse
critrio de teste explora os limites dos valores de cada classe de equivalncia para
preparar os casos de teste.
Esse profissional carrega uma base de conhecimento e informaes valiosas e capaz de realizar testes improvisados
quando no houver um planejamento prvio para a execuo
dos testes, por exemplo: inserir nmeros onde s deveria ser
possvel a insero de caracteres, realizar CTRL +V em um
campo que no deveria aceitar esse tipo de comando, inserir
um dado negativo em um campo que s deve aceitar valores
positivos e realizar combinaes de navegao (clicar em voltar,
onde geralmente se clica em comprar). Enfim, devem-se utilizar
todas as tcnicas possveis para realizao dos testes, pois elas
no podem ser deixadas de lado no momento da execuo dos
testes exploratrios.
Geralmente as tcnicas de como testar de forma eficiente a
aplicao (partio de equivalncia, anlise de valor limite, entre outras) so utilizadas para testes planejados onde possvel
detalhar diversas combinaes para um nico campo. Contudo, para testes exploratrios esse planejamento detalhado
no possvel, principalmente por causa do tempo, mas essas
tcnicas no devem ser esquecidas, pois auxiliam a identificar
bugs importantes. O que mudar ser a cobertura que ser feita
Considere o legado
Testar o cdigo legado (cdigo encontrado em sistemas antigos mas que continuam funcionais e normalmente demandam
atividades de manuteno) uma tarefa difcil de ser realizada,
pois quem o conhece na maioria das vezes so os desenvolvedores mais antigos que geralmente so de difcil acesso, no
h documentao sobre o projeto e raramente existe algum
manual explicando seu funcionamento.
Independente disso, o cdigo legado precisa ser considerado no momento da realizao do teste exploratrio uma vez
que pode esconder defeitos de grande importncia e impacto
para a organizao. Alm disso, ele no deve ser desprezado principalmente se estiver integrado ao sistema atual da
organizao.
Inicie fazendo um mapeamento das funcionalidades do legado e priorize quais so de maior importncia, isso ajudar no
momento da execuo, principalmente se o prazo de entrega
diminuir. Caso acontea, execute os testes dos pontos mais
importantes para os menos importantes.
Embora o software legado seja na maioria das vezes como
um campo minado, necessria essa priorizao, contudo,
se o tempo permitir execute tudo que for possvel, pois a
probabilidade de encontrar erros em sistemas legados grande, principalmente pela falta de manuteno. Muitas vezes,
preocupa-se muito com o sistema atual e se deixa o legado um
pouco de lado, embora no seja um problema generalizado,
o que ocorre com muita frequncia.
33
34
Avalie o Layout
Para um teste exploratrio completo, necessrio considerar o
layout apresentado. Para isso, preciso inicialmente comparar
o layout desenvolvido com o layout definido pelo cliente. Isso
vale desde o posicionamento dos campos at a aplicao das
cores, passando pela ortografia implantada.
O foco desse tipo de teste no a funcionalidade ou a interao como um todo, apenas uma anlise de interface. Nesse
momento possvel encontrar inclusive problemas de usabilidade. Para isso, utilize cenrios que manipulam dados e em
seguida exija que a interface do usurio seja exibida. Forar
que dados sejam exibidos e reexibidos o mais rpido possvel
permite que problemas com a atualizao da tela sejam efetivamente apresentados.
Nesse contexto, torna-se importante olhar alm da janela
atual ou controle que est focado no momento e passar a dar
ateno para todo o resto que a aplicao est exibindo no momento. Essa tcnica sugere que os testadores olhem um pouco
ao redor e no fiquem to focados na funcionalidade que est
sendo avaliada. Essa atitude auxiliar a obter a viso total da
aplicao e assim conseguir um resultado mais satisfatrio no
teste. Por exemplo: se ao utilizar uma aplicao apresentada
uma janela de pop-up, sua ateno ir se voltar para essa nova
janela, mas considerando a tcnica que acabamos de citar, necessrio tambm olhar para a tela atrs dessa janela de pop-up,
pois pode conter bugs sutis que podem passar despercebidos,
uma vez que o foco est na janela em destaque.
Existem vrias tcnicas para avaliar o layout apresentado,
mas tudo vai depender do requisito principal. Para isso,
necessrio saber a abrangncia da aplicao, quais sero os
usurios que tero acesso? Dependendo a resposta, possvel
criar cenrios como:
Alterar as configuraes do Sistema Operacional e realizar
um teste exploratrio para avaliar se os controles, cones e
textos so exibidos corretamente;
Execute a aplicao em um MAC (se o software tem como foco
atingir esse tipo de usurio) e avalie se houve quebra de layout;
Avaliar a aplicao em diversos browsers pode ser um teste
muito importante. Uma aplicao que funciona e tem um
layout agradvel no IE8 pode no ter o mesmo resultado se
utilizarmos o IE7 ou Firefox.
Apesar do grau de importncia de qualquer bug detectado
em um dos cenrios citados nessa tcnica, onde a aparncia
en gen haria
Teste as integraes
Muitas vezes, quando testes isolados so realizados em
diferentes funcionalidades, no so identificados defeitos.
Contudo, ao se realizar testes integrados, os erros so revelados. justamente neste contexto que se tem a preocupao em
testar as integraes do software.
A premissa principal para esse tipo de teste verificar caractersticas diferentes interagindo umas com as outras. Aqui
esto alguns exemplos:
Alterar o cadastro de um produto para inativo e avaliar se
continua aparecendo na lista de produtos disponveis para
venda;
Realizar um agendamento de um cliente e verificar se aparece
na lista de clientes agendados;
Dar baixa em um produto em estoque e avaliar se continua
sendo exibido com a mesma quantidade para venda.
Para realizar um bom teste de integrao, os testadores de
software precisam aprimorar suas habilidades na seleo
e entendimento do momento exato e do ponto em que as
funcionalidades interagem. fato que a combinao de
duas ou mais entradas podem muitas vezes fazer com que a
aplicao falhe, mesmo quando o software no tem qualquer
problema com essas entradas individualmente. Contudo, os
testadores devem ser capazes de identificar quais entradas
interagem umas com as outras e garantir que apaream
juntas em um nico cenrio de teste, permitindo avaliar se
os comportamentos sero devidamente testados.
Considere como exemplo um e-commerce. Voc pode
realizar uma pesquisa independente de carro e ter como
resultado da pesquisa todos os artigos relacionados a esse
assunto. Da mesma forma, pode realizar uma pesquisa por
beb e ter como resultado todos os artigos de beb. Mas,
talvez, ao realizar uma pesquisa de carro e beb, ao invs
de ter como retorno carrinhos de bebe no seja retornado
nada embora na loja existam carrinhos de beb.
Faa questionamentos
Elaborar questionamentos difceis instiga o testador a
avaliar se a aplicao possui algum problema na lgica do
software e auxilia a detectar problemas na capacidade da
aplicao. A melhor forma de realizar esse tipo de questionamento buscar questes que forcem a aplicao a falhar.
Alguns exemplos de como podem ser feitos so:
O campo aceita caracteres especiais? Quais?
possvel inserir uma data invlida, tipo 31/02/2012? Qual
comportamento a aplicao deve ter ao inform-la?
35
Concluso
36
Links
Exploratory Testing Explained
http://www.satisfice.com/articles/et-article.pdf
Breaking the Tyranny of Form - Part 1
http://quality-intelligence.blogspot.nl/2012/06/breaking-tyranny-of-form-part-1.html
Testing Without a Map
http://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf
Taking a tour through test country: A Guide to Tours to Take On Your Next Test Project
http://www.testingeducation.org/BBST/testdesign/Kelly_Taking_a_Tour_Through_Test_
Country.pdf
An Introduction to Scenario Testing
http://www.testingeducation.org/BBST/testdesign/Kaner_ScenarioIntroVer4-1.pdf
Evolving Understanding About Exploratory Testing
http://www.developsense.com/blog/2008/09/evolving-understanding-about/
Feedback
eu
sobre e
s
A atividade de testar software complicada pela sobrecarga de possibilidades de variaes de entradas e caminhos
de cdigo a percorrer, alm dos dados apresentados e do
ambiente operacional. No importa qual abordagem de teste
ser utilizada, seja planejada ou exploratria, essa atividade
demasiadamente complexa para ser realizada completamente.
No entanto, as tcnicas de explorao tm a vantagem de que
elas encorajam testadores a planejar como testar e a utilizar
a informao obtida durante o teste para influenciar a forma
como o teste tradicional ser executado.
D
s
edio
ta
Faa repeties
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
edson@din.uem.br
37
Processos de Software
Um processo define quem est fazendo o que, quando e
como para alcanar certo objetivo. Na engenharia de software
o objetivo de um processo construir ou alterar um produto
de software j existente. Para um processo ser efetivo, ele
deve promover diretrizes para o eficiente desenvolvimento
de software de qualidade.
Quando processos so descritos e discutidos, suas atividades
(activities) so normalmente tratadas, como, por exemplo, na
especificao de modelos de dados, do projeto e da interface do
usurio, alm da ordenao cronolgica dessas atividades.
Quando complexas, as atividades podem incluir subatividades (sub-activities), as quais so tratadas nesse artigo como
passos (steps) para a realizao de tarefas no contexto de uma
atividade. Entretanto, descries de processos podem tambm
ser includas:
Produtos (Products) ou Artefatos, os quais so resultados
de uma atividade;
Papis (Roles), que refletem as responsabilidades de pessoas
envolvidas no processo;
Pr e Ps-condies, as quais so declaraes que so verdadeiras antes e depois de uma atividade de processo ter sido
promulgada ou um produto criado.
A definio de um processo de software deve estabelecer e
formalizar informaes sobre: as atividades e os papis responsveis, os artefatos de entrada e de sada que devem ser criados
ou mantidos em cada atividade, os procedimentos e ferramentas utilizadas, e o modelo de ciclo de vida utilizado.
H vrios anos, vem se tentando encontrar um processo ou
metodologia previsvel e repetvel que melhore a produtividade e qualidade dos produtos. Porm, no existe um modelo de
processo consolidado que atenda a todos os possveis domnios
de aplicao.
Um modelo de processo de software uma representao abstrata de um processo de software que representa um processo
a partir de uma perspectiva particular, de uma maneira que
proporciona apenas informaes parciais sobre o processo.
Alguns modelos de processos de softwares existentes na
literatura so: Modelo em Cascata, Modelo V, Prototipao,
Especificao Operacional, Modelo Transformacional, Desenvolvimento faseado - incrementos e iterao, Modelo Espiral
e Mtodos geis.
O Processo Unificado (PU) um dos processos de software
mais conceituado e pode ser entendido como um framework
de processo de desenvolvimento de software para a construo de sistemas orientados a objetos, centrado na arquitetura,
iterativa e incremental.
38
en gen haria
cone
Os esteretipos existentes pelo perfil UML do SPEM 2.0 so utilizados para representar todos os elementos definidos pelo seu
metamodelo. Alm disso, utiliza cones para representa-los.
A Tabela 1 apresenta a relao de alguns cones com seus
respectivos esteretipos.
Diversos outros elementos de processos de software so
definidos pelo SPEM 2.0, mas nesse artigo esto sendo apresentados apenas os principais elementos utilizados para
modelagem de processos de software, conforme apresentado
na Tabela 1.
A partir dos elementos possvel identificar as atividades que
compreendem um processo de software por meio de Atividade,
tambm as tarefas envolvidas em cada atividade por meio do
elemento Uso da Tarefa, o passo-a-passo para realizao de
Esteretipo
Descrio
Activity
Elemento Atividade, que representa um agrupamento de elementos, tais como, outras instncias de Atividades (Activity), de Uso de Tarefas (Task Uses), de Uso
de Papis (Role Uses) e de Uso de Produtos de Trabalho (Work Product Uses).
TaskUse
Elemento Uso da Tarefa (Task Uses), que representa uma Tarefa sendo realizada por um Papel no contexto de uma Atividade.
Step
Elemento Passo (Step), que representa um dos passos necessrios para realizar a Tarefa.
WorkProductUse
Elemento Uso do Produto de Trabalho (Work Product Uses), que representa um Artefato consumido ou produzido no contexto de uma Atividade especfica.
RoleUse
Elemento Uso do Papel (Role Uses), que representa um Papel responsvel por uma ou mais Tarefas especficas.
39
40
en gen haria
41
Referncias
BENEDICTO, J.; ROSENBERG, I.; SOLER, I.; ARANA, N.; ESPINOZA, H. Analysis of Standard
Process Models. Online, 2010.
http://www.artemis-ediana.eu/documents/D63CM21_ATOSJB.pdf
ECLIPSE. Eclipse Process Framework Project (EPF).
http://www.eclipse.org/epf/
FUGGETTA, A. Software Process: a Roadmap. In: International Conference on Software
Engineering (ICSE), Limerick, Ireland. Anais. New York: ACM, 2000. p. 25-34.
IBM. Rational Method Composer. Online, 2012.
http://www-01.ibm.com/software/awdtools/rmc/
JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The Unified Software Development Process.
Ed. A.W. Longman. 1999, Reading: Addison Wesley Longman. 463, 1999.
NO MAGIC. MagicDraw. Online, 2012.
http://www.nomagic.com/products/magicdraw.html/
www.devmedia.com.br/esmag/feedback
42
sobre e
s
Feedback
eu
edio
ta
D
s
Arquitetura e Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
VSS x SVN
Estudo comparativo entre as ferramentas Microsoft Visual SourceSafe 6.0 e
TortoiseSVN
De que se trata o artigo:
Alan Antunes
alan.antunes@yahoo.com.br
Robson Da Motta
robsondamotta@hotmail.com
t ualmente as organizaes
trabalham com um grande
nmero de artefatos organizacionais e de projeto, os quais exigem
gerenciamento e controle de acesso de
seus usurios. Dessa forma, tornou-se
inevitvel a necessidade de uma ferramenta que auxilie a organizao nesse
gerenciamento.
O propsito do processo gerncia de
configurao estabelecer e manter a
integridade de todos os produtos de
trabalho de um processo ou projeto e disponibiliz-los a todos os envolvidos.
Os artefatos gerados pelo projeto ou
pela organizao precisam ser acessados
por diferentes interessados, gerando
verses constantemente.
As modificaes tambm so imprescindveis, o que exige a utilizao de
uma ferramenta que permita alm do
armazenamento, a gerao de baselines
(configurao formalmente aprovada
para servir de referncia ao desenvolvimento posterior do sistema), controle de
acessos e alteraes.
Para que todos os envolvidos, principalmente desenvolvedores, possam
cumprir suas tarefas, necessrio que a
ferramenta facilite a execuo de tarefas
e evite inconsistncias de arquivos.
VSS x SVN:
Hoje as organizaes trabalham com um nmero grande de artefatos, necessitando de
controle e gerenciamento de configurao. Para
isso, imprescindvel ferramentas que auxiliem
na agilidade e produtividade desse processo.
A ferramenta Microsoft Visual SourceSafe 6.0
e TortoiseSVN permitem uma rpida resposta
e deciso em relao a documentos do projeto,
porm comum a dvida de equipes na escolha
de uma dessas, ou na migrao de uma para outra, dependendo a deciso das necessidades das
tarefas e das caractersticas da equipe.
43
controlando verses e integridade de artefatos. Para o comparativo, foram analisadas informaes tcnicas das ferramentas,
necessidades da gerncia de configuraes apresentadas pela
equipe de desenvolvimento de uma empresa de desenvolvimento de software localizada no sudoeste do Paran. Atravs
dos resultados deste trabalho, a organizao deve analisar e
escolher a ferramenta a ser utilizada, compatvel com sua realidade, buscando o aumento da produtividade de sua equipe
e a garantia da segurana de seus artefatos.
A fim de auxiliar na escolha de uma ferramenta que possa
atender as perspectivas de uma empresa desenvolvedora de
softwares, foi aplicado um questionrio a dez colaboradores,
usurios do software, com perguntas especficas sobre suas necessidades em relao a uma ferramenta compatvel, levantando
assim, critrios para a escolha que venha suprir necessidades da
organizao no processo de gerncia de configurao.
Cpias de segurana
As organizaes do segmento de software necessitam realizar
cpias de segurana de seus produtos para armazenamento e
para disponibilizao aos envolvidos - em diferentes estgios
de projeto, respeitando autorizao de usurios - sendo esse
procedimento conceituado como repositrio. As cpias podem
ser armazenadas em mdias, em servidores separados ou nas
nuvens por exemplo.
As cpias so divididas em global e incremental. Nestes casos,
uma cpia geral dos dados feita, aps isso, somente cpias
incrementais so realizadas dos arquivos modificados aps a
ltima cpia global. Neste tipo de repositrio, a vantagem
ter um alto nvel de segurana dos dados copiados e pode ser
usado em vrios tipos de dispositivos, mas a desvantagem
ter que lidar com vrias cpias incrementais necessitando de
vrias mdias de armazenamento.
A cpia, que tambm pode ser usada na forma de mirror (ou
espelho, em terminologia computacional, uma cpia exata de
um conjunto de dados, data set) e rsync (reversamente incremental - programa de computador utilizado em sistemas Unix,
para sincronizao de arquivos e diretrios entre duas localidades diferentes enquanto minimiza a transferncia de dados),
possui um conceito parecido ao modelo global e incremental,
mas neste modelo preciso somente uma cpia completa dos
dados. Aps isso, as cpias incrementais so aplicadas nas
cpias espelho e os arquivos modificados so movidos para a
cpia reversamente incremental. A desvantagem deste mtodo
no ser adequado para mdias de armazenamento removveis
(Pen Drives, CDs) por que cada cpia deve ser feita a partir da
cpia espelho dos dados.
44
VSS x SVN
desen volvimento
Ferramenta TortoiseSVN
O TortoiseSVN uma ferramenta livre Apache Subversion
incorporada ao Windows para controle de verso. Pode gerenciar arquivos e diretrios ao longo do tempo. Os arquivos
ficam armazenados em um repositrio central, sendo muito
parecido com um servidor de arquivos normal, exceto pelo fato
dele armazenar todas as alteraes feitas em seus diretrios.
Isto lhe permite recuperar todas as verses anteriores de seus
arquivos e examinar o histrico de como e quando seus dados
foram alterados e quem os alterou.
O Apache Subversion um sistema aberto de controle de
verso. Fundado em 2000 por CallabNet, Inc., o subversion
tornou-se um sucesso na ultima dcada. A Apache Software
Foundation desenvolve o projeto Subversion de forma livre.
um sistema genrico que pode ser usado para administrar
qualquer conjunto de arquivos, incluindo cdigo fonte.
Quando instalado, incorporado ao sistema operacional.
Para acessar suas propriedades, basta usar o boto direito do
mouse e escolher o que deseja. uma ferramenta livre e de
fcil manuseio, apresentando as caractersticas bsicas que um
software desse tipo precisa como:
Commit: o processo que salva as alteraes feitas no
repositrio;
Changed: o estado de marcado para o usurio poder
editar;
Unchanged: o estado de desmarcar o arquivo que estava
marcado para o usurio editar;
Revert: Volta o arquivo como era antes de editar.
O TortoiseSVN apresenta uma interface simples com poucas
opes disponveis na tela. Todas as funes de uso esto sobre
45
Pesquisa
A fim de obter a opinio de usurios das ferramentas abordadas, VSS e SVN, foi realizada pesquisa de campo a dez
usurios da organizao que utilizou as duas ferramentas e
tinham dvida em qual definir.
Foi aplicado o questionrio sobre tpicos que costumam
ser discutidos na hora de escolher um dos softwares como, a
separao de arquivos utilizando cones e no que isso auxilia
nas tarefas, tambm foram coletados dados em relao vantagem de interfaces, recursos diferenciados das ferramentas,
relatrios, acesso por login e continuidade do software.
A anlise das informaes coletadas foi apresentada a gestores a fim de que fossem auxiliados na tomada de deciso.
Anlise
Atravs das respostas obtidas aps aplicar o questionrio
para os colaboradores da empresa que esto envolvidos de
forma direta no processo de utilizao da ferramenta, pode-se
notar que a escolha da ferramenta TortoiseSVN foi predominante para a maioria dos entrevistados.
O grfico da Figura 5 mostra a opinio dos entrevistados em
relao a separao de arquivos por cones.
46
VSS x SVN
desen volvimento
Figura 8. Merge
47
Concluso
Os resultados de entrevistas foram apresentados a gestores,
que optaram por permanecer apenas com a ferramenta TortoiseSVN. A utilizao de cones para a classificao do status
dos arquivos foi uma das vantagens que torna a ferramenta
mais didtica e menos suscetvel a erro, o que tambm agiliza
seu uso.
A realizao de merge foi classificada como mais simples
de se realizar no SVN. Em relao ao branch, essa caracterstica presente apenas nessa ferramenta classificada como
sua principal vantagem por diminuir conflitos de arquivos,
ocorrncia de erros e por permitir o uso independente em
estaes de trabalho.
Os recursos relacionados a relatrios foram classificados
como mais eficientes no SVN. A continuidade da ferramenta
tambm foi abordada, sendo essa uma das principais desvantagens do VSS.
Assim, a ferramenta TortoiseSVN foi classificada por
usurios como a mais adequada para a implantao na
empresa abordada.
48
www.devmedia.com.br/esmag/feedback
VSS x SVN
Feedback
eu
sobre e
s
D
s
edio
ta
Arquitetura e Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
beatriz@utfpr.edu.br
Franciele de Lima
francielli_dlima@yahoo.com.br
Acadmica do curso de Tecnologia em Anlise e Desenvolvimento de Sistema da Universidade Tecnolgica Federal do Paran.
Gssica de Wallau
Wgeh_13@hotmail.com
Acadmica do curso de Tecnologia em Anlise e Desenvolvimento de Sistema da Universidade Tecnolgica Federal do Paran.
Poliane de Souza
poliane.nardi@gmail.com
Acadmica do curso de Tecnologia em Anlise e Desenvolvimento de Sistema da Universidade Tecnolgica Federal do Paran.
quipes de desenvolvimento de
software costumam no contar
com colaboradores especializados
em engenharia de software, principalmente na rea de IHC (Interao humano
Computador), logo, no conseguem
inserir em seus projetos tcnicas desse
segmento. Outra dificuldade est nos
prazos de entrega de projetos cada vez
mais abreviados, exigindo das equipes
adotarem fases mais curtas e objetivas.
Devido complexidade de interfaces,
para cri-las, necessrio conhecimento
tcnico, de negcio, de mercado e principalmente humano. Porm, na maioria
das organizaes de pequeno e mdio
porte, no existe equipe especialista, fazendo com que a definio e construo
de interfaces fiquem sob responsabilidade de desenvolvedores que comumente
no possuem tempo alocado suficiente
e conhecimento apropriado.
Outro problema atual a falta de preocupao com a usabilidade de software,
resultando em layouts fora do padro,
que no atendem as necessidades dos
usurios.
49
Composio de interfaces
A interface formada por componentes de hardware e de
software que definem a forma de interao do usurio com o
sistema, atravs de entradas e sadas de informaes.
As entradas so as aes que o usurio realiza ao interagir
com o sistema como fornecer dados e selecionar opes. As
sadas so resultados de aes realizadas pelo sistema e apresentados ao usurio como mensagem de validao de um
campo, um relatrio, a confirmao de insero de dados em
um formulrio ou a abertura de um aplicativo.
No processo de interao do usurio com o aplicativo, os
componentes que compem a interface podem atender a
um modelo de interao, referindo-se s regras que moldam
formas e padres utilizados na composio da interface e que
visam facilitar as aes de interao do usurio com o sistema,
definindo a usabilidade do mesmo.
Os componentes de hardware so utilizados para interagir
com os de software como, mouse, teclado, tela sensvel ao toque, impressora e monitor de vdeo. O software representa os
elementos computacionais de interao como caixas de texto e
botes. As regras relacionadas a esses elementos se referem ao
modelo conceitual de interao que define a forma e o contexto
em que a interao ocorre. As aes realizadas com esses elementos representam a interao do usurio com o sistema.
Exemplo de Interface
Um exemplo conhecido de interface a de cadastro, que assim como as demais rotinas, permite ao usurio enviar dados
50
Repositrio de interfaces
Nesse artigo ser apresentada a modelagem de um sistema de repositrio de interfaces, que auxilia organizaes a
padronizarem interfaces e disponibilizarem na construo
de softwares.
Modelagem do sistema
A modelagem do sistema foi realizada utilizando a ferramenta Astah* Community e CaseStudio. O Astah* possui suporte para
a UML 2 (Unified Modeling Language), permitindo a modelagem
do sistema baseado na orientao a objetos.
A ferramenta CaseStudio foi utilizada para a modelagem do
banco de dados, por meio de entidades (tabelas) e relacionamentos entre elas.
O aplicativo se destina a armazenar modelos de interface de
software, focando-se em dois elementos, o programador e o
usurio. Sendo que para o programador, deve ser disponibilizada uma listagem de modelos, permitindo a sua utilizao
total ou parcial de acordo com as necessidades. Para o usurio,
possibilita escolher o modelo de interface para o sistema, ou
apresentar como prottipo.
A Figura 1 apresenta uma viso geral do sistema.
Pela representao, o modelo de interface o conceito central,
que apresenta o arquivo armazenado e o objeto de consulta.
Os atributos que caracterizam esse modelo de exemplo so:
rea (mdica, educao e financeira), nome (a identificao),
desen volimento
Nome
Descrio
Cadastro de plataformas
Cadastro de reas
Cadastro de tipos
Cadastro de tecnologias
Diz respeito aos tipos de tecnologias nas quais o modelo de interface poder ser utilizado.
Cadastro de Ferramentas
Cadastro de palavras-chave
Cadastro de autores
Utilizado para associar modelos de interface com as tecnologias nas quais cada modelo pode ser utilizado.
Cadastro de usurios
Descrio
Por padro estar marcada a opo No para o campo Editvel no cadastro de modelo de interface.
Acesso ao sistema
O sistema poder ser acessado por usurios no cadastrados para operaes de consultas. Para inclui, excluir e
alterar modelos necessrio que o usurio esteja logado no sistema.
Cadastro de usurios
51
52
desen volimento
Concluso
D
s
edio
ta
53
sobre e
s
Arquitetura e Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
54
divergncias de comunicao
entre setores de negcios e
de TI. O que solicitado nem
sempre condiz com o que realmente os
usurios imaginavam. Para corporaes que buscam liderana no mercado
competitivo, h caminhos a serem traados. Para ser competitivo, no basta
ter tecnologia de ponta, necessrio
aperfeioar processos de negcios, ter
unio entre os setores e compreenso
de todos os processos envolvidos na
atividade empresarial.
A SOA (Arquitetura Orientada a
Servios) ajuda as empresas a estarem
preparadas para evoluir em tecnologia e
em rentabilidade, diminuindo restries
da tecnologia para os lderes de negcio,
tambm possibilita assegurar uma estrutura flexvel e reutilizvel.
De maneira simples, SOA uma abordagem de negcios para criar sistemas
de TI (Tecnologia de Informao) que
permitem alavancar recursos existentes, criar novos recursos e, principalmente, estar preparado para inevitveis
alteraes exigidas pelo mercado, obtendo mais produtividade e lucro para
a empresa.
desen volvimento
Governana SOA
Toda empresa necessita de governana, para levantar, planejar, executar, controlar e aperfeioar processos e, consequentemente, gerar melhores resultados.
Governana significa garantir que as pessoas faam o que
certo, alm de controlar o desenvolvimento e a operao
de software.
Alguns pontos cruciais associados governana SOA so:
Polticas: definem o que certo;
Processos: reforam as polticas;
Mtricas: fornecem visibilidade e possveis reforos para
polticas;
Organizao: estabelece uma cultura que suporta o processo
de governana.
Processos tm que ser flexveis o suficiente para poderem
suportar atualizaes frequentes, devem ser o mais explcitos
possveis, para que a equipe acompanhe sua execuo.
Os aspectos tcnicos de um processo podem ser classificados
como, documentao, gerenciamento de servios, monitoramento e gesto de mudanas.
Como apresentado na Figura 1, existem duas formas para
implantao de governana SOA.
A forma Top-down, onde as requisies surgem dos presidentes, gerentes e executivos da empresa, j a Bottom-up
referem-se onde as requisies surgem de usurios, analistas,
programadores e, tcnicos.
Maturidade SOA
A Figura 2 mostra um modelo de maturidade SOA desenvolvido pela Sonic Software (uma empresa de desenvolvimento
de software).
Como pode ser observado, o nvel um representa a aprendizagem inicial e a fase de implementao do projeto. No nvel
dois so fornecidos servios que utilizam padres definidos,
como, governana tcnica de implementao SOA.
O nvel trs fornece servios dentro da parceria entre organizaes tecnolgicas e de negcio, buscando garantir que o uso
de fornecedores SOA esclarea responsabilidades de negcio.
55
Servios
Embora a dificuldade em encontrar uma definio exata
para servio, seu principal objetivo associado em representar um passo natural da funcionalidade de negcio.
Em negcios, os passos de uma atividade de uma corporao
podem ser classificados como servios. Com todos os passos
sendo executados em sincronia, cria-se um processo gerando
resultados para outros processos.
Servio tambm pode ser definido como um ou mais
passos que usam mensagens para troca de dados entre um
fornecedor e um consumidor. Tecnicamente, um servio
uma descrio de uma ou mais operaes que usam (mltiplas) mensagens para trocar dados entre um fornecedor e
um consumidor, tendo como efeito comum o consumidor
obter alguma informao, modificar o estado do sistema ou
modificar o componente de processo.
Atravs de servios podem-se encapsular processos de negcios, onde cada processo ou parte de um processo podem
ser implementados atravs de servios.
Como apresentado pela Figura 3 possvel trabalhar com
estruturas complexas sem muitos obstculos de gesto.
A Figura 3 apresenta nveis que um servio pode encapsular, onde as linhas primrias de cdigo so em uma determinada linguagem, que representam o passo-a-passo de
um determinado procedimento. J o mdulo procedural se
refere ao conjunto de linhas primrias de cdigo, tornando-se
uma funo ou procedimento que recebe valores e retornam
resultados.
A estrutura de Classe/Objeto a unio de vrios procedimentos e atributos responsveis pelas funcionalidades.
Os Componentes so a unio de vrias estruturas, formando
micro processos e os servios so a unio de vrios processos,
criando um macro processo.
As estruturas complexas podem ser representadas por
pequenos passos, podendo esses ser reutilizados em outra
estrutura que necessite da funo que esse servio proporciona, destacando que necessrio que um servio seja
independente e autossuficiente em seus objetivos.
A SOA traz como principal recurso o reaproveitamento de
cdigo, rotinas e base de dados, porque um servio pode ser
utilizado diversas vezes, em vrios momentos durante os processos de trabalho evitando redundncias e retrabalhos.
56
Classificao de servios
Servios podem ser categorizados em trs grupos, demonstrados na Figura 4.
Os servios bsicos, tambm conhecidos como corporativos, so aqueles que disponibilizam uma funo de
negcio bsica.
Os servios bsicos podem ser subdivididos em servios de
dados, como, criar cliente, alterar endereo de cliente, criar
conta, retornar lista de cliente e servios de lgica, como,
retornar se um ano bissexto, definir datas vlidas para o
sistema. Aps estabelecer servios bsicos obtida a SOA
Fundamental.
desen volvimento
Concluso
Feedback
eu
www.devmedia.com.br/esmag/feedback
57
sobre e
s
Referncias
D
s
A transformao de dados inerentemente parte do barramento em uma distribuio de ESB, sendo os servios
de transformao, especializados para as necessidades das
aplicaes individuais ligadas no barramento, localizados em
qualquer lugar e acessveis de qualquer lugar do barramento.
Um ESB pode ser definido como uma resoluo de independncias entre as aplicaes, pelo fato da transformao
dada ser uma parte integrante. O ESB responsvel pela
interoperabilidade dos servios, no importando origem ou
destino do dado, tendo como principal funo fazer com que
consumidores e fornecedores consigam interagir.
A Figura 5 tambm apresenta a camada de orquestrao
(Estgio Federativo) e a camada de processos (Estgio Habilitado para Processos), onde o ESB como um tnel para o
consumo de servios e front-end.
edio
ta
Ao longo deste artigo uma srie de benefcios possibilitados pelo uso da SOA foram apresentados, se destacando a
melhor interao entre a rea de TI e a rea de negcios da
organizao.
A implantao de SOA apresentou-se desafiadora, no sendo
possvel sua implementao totalmente imediato e sim gradual,
atravs de modelos de maturidade .
O uso da SOA pode expandir alm no desenvolvimento e
manuteno de softwares corporativos, pelo fato de se trabalhar com o conceito de servios bem definidos e fracamente
acoplados permite que ajustes sejam feitos mais facilmente ao
software elaborado, permitindo que a organizao se adeque
rapidamente s mudanas esperadas pelo mercado.
58