PS- GRADUAO
Engenharia de Software:
Desenvolvimento Java
Engenharia de Software:
Desenvolvimento .NET
GRADUAO
Engenharia de Computao
Anlise e Desenv. de Sistemas
F ORMAES
Desenvolvedor Java
Desenv. Java: Sist. Distribudos
Gestor de TI
Desenvolvedor Web .NET 2008
MCITP Server Administrator
SQL Server 2008
r/esti
Acesse nosso site e conhea todos os nossos programas: www.infnet.edu.br/esti
TURMAS
NO RIO DE
JANEIRO
www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800
EDITORIAL
M
Ano 3 - 37 Edio - 2011
Impresso no Brasil
Corpo Editorial
Colaboradores
Rodrigo Oliveira Spnola
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Capa
Romulo Araujo - romulo@devmedia.com.br
Diagramao
Janete Feitosa
Reviso e Coordenao Geral
Daniella Costa - daniella@devmedia.com.br
Jornalista Responsvel
Kaline Dolabella - JP24185
Na Web
www.devmedia.com.br/esmag
Apoio
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor.
Se voc tiver algum problema no recebimento do seu exemplar ou precisar de
algum esclarecimento sobre assinaturas, exemplares anteriores, endereo de
bancas de jornal, entre outros, entre em contato com:
Deise Aleis e Uellen Goulart Atendimento ao Leitor
www.devmedia.com.br/mancad
(21) 2220-5338
Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
(21) 2220-5338
uitos autores tm dito que para sobreviver voracidade do mercado necessrio agilidade nos negcios, porm qual o significado de tal termo? Segundo o
Gartner Group,agilidade de negcio estar apto a responder rapidamente e eficientemente s mudanas no mundo dos negcios e, transformar essas mudanas em vantagem
competitiva o principal motivo para sua adoo.
Neste contexto, observa-se que cada vez mais organizaes esto adotando a abordagem gil
como uma ttica de sobrevivncia nestes tempos economicamente turbulentos. Isto por sua vez
levou a uma srie de opinies interessantes examinando quais atitudes e atributos seus times
precisam para serem bem sucedidos. Sob esta tica a agilidade de negcio, reconhecida como
a habilidade para mudar o sentido do ambiente e responder eficientemente e efetivamente a
essa mudana, importante.
Acrescentar agilidade aos processos de gesto, em sua essncia j infere um maior nvel de
convergncia entre as iniciativas em TIC (Tecnologias da Informao e Comunicao) e os objetivos do negcio. Contudo, outros benefcios de uma abordagem gil no contexto de negcios
podem ser identificados, como, por exemplo: melhor time-to-market e aumento da velocidade
de tomada de deciso, o que acaba refletindo numa maior competitividade organizacional.
Neste contexto, a chave para realizar a verdadeira agilidade de negcio encorajar os executivos a pensarem nas mudanas de negcio sem se preocupar com as implicaes que as mesmas
traro ao legado de TIC existente na organizao. Em outras palavras, a empresa precisa se tornar
centrada no negcio e no centrada na TIC.
Quando o negcio se torna centrado em si, a organizao se torna hbil a definir, criar e construir novos processos ou funes de negcio. Entretanto, para viabilizar esta viso, essencial que
a TIC cumpra o seu papel de se elevar de uma abordagem puramente operacional ou ttica,
para uma participao mais estratgica, colaborando de modo concreto, inclusive, nas definies
dos objetivos de negcio.
Desta forma acredita-se que os mtodos geis tm muito a contribuir nesta direo atravs da
simplificao das iniciativas da TIC, sensibilizao e valorizao das pessoas, adoo de uma abordagem iterativa e adaptativa, aplicao prtica de seus princpios, valores, prticas e orientaes
sobre sistematizao das iniciativas da gesto em TIC.
Neste contexto, a Engenharia de Software Magazine destaca nesta edio o artigo A necessidade de ser gil. Este artigo tem por objetivo apresentar uma anlise comparativa entre nove
mtodos geis, no sentido de instrumentalizar as equipes e organizaes a obterem melhores
resultados na aplicao de mtodos geis em seus projetos.
Alm desta matria, esta edio traz mais seis artigos:
A difcil arte de administrar estrelas
Maturidade em Desenvolvimento de Software
Ferramentas de Testes de Software
A Gerncia de Projetos de Software em Duas Perspectivas Parte 1
Refatorao para Padres Parte 10
Reengenharia de Software Orientado a Objetos
Desejamos uma tima leitura!
Equipe Editorial Engenharia de Software Magazine
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
Cristiany Queiroz
publicidade@devmedia.com.br
Caro Leitor,
Para esta edio, temos um conjunto de 5 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:
NDICE
Por trs do bvio
06 A difcil arte de administrar estrelas
Glnio Cabral
Agilidade
Tipo: Processo
Ttulo: Reuso de software: definies, benefcios e dificuldades Partes
1a3
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Reuso de software o processo de incorporar em um novo
produto cdigo, especificaes de requisitos e projeto, planos de teste, ou
qualquer produto gerado durante desenvolvimentos anteriores. Neste
contexto, nesta srie de aulas conheceremos alguns conceitos associados
ao reuso de software, assim como alguns benefcios trazidos e dificuldades
em sua implantao.
Tipo: Processo
Ttulo: Desenvolvimento dirigido por modelos - Partes 1 e 2
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: O Desenvolvimento de Software Dirigido a Modelos (Model
Driven Development - MDD) promove a utilizao de modelos como artefatos essenciais de desenvolvimento, isto , estes passam a ser tratados como
entidades de primeira classe no desenvolvimento de software, semelhana
do cdigo, alm de fornecer recursos para transformaes automticas entre
estes artefatos. Neste contexto, nesta srie de aulas conheceremos alguns
conceitos associados ao desenvolvimento dirigido a modelos.
Planejamento e Gerncia
Engenharia
19 - Ferramentas de Teste de Software
Gabriela de Oliveira Patuci
Desenvolvimento
41 - Refatorao para Padres Parte 10
Jacimar Fernandes Tavares e Marco Antnio Pereira Arajo
Administrador de Empresas, ps-graduado em Gesto de Pessoas e msico. Idealizador do site de educao infantil www.novainfancia.com.br.
D
s
Feedback
eu
www.devmedia.com.br/esmag/feedback
sobre e
s
edio
ta
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
Possui graduao em Engenharia Eletrnica pela Universidade Federal de Pernambuco (1982), Mestrado em Informtica
pela Universidade Federal de Pernambuco
(1989) e PhD in Computing Science pela
University of Glasgow (1993). certificado PMP (2003) pelo Project Management
Institute. Atualmente Professor Adjunto
e Vice-Diretor do Centro de Informtica da
Universidade Federal de Pernambuco.
M etodologias geis
Engenharia de Software
Engenharia de Software uma rea do conhecimento voltada
para a especificao, desenvolvimento e manuteno de sistemas de software, aplicando tecnologias e prticas da cincia
da computao, gerncia de projetos e outras disciplinas,
objetivando organizao, produtividade e qualidade.
Pressman destaca que a Engenharia de software abrange trs
componentes bsicos:
Mtodos: proporcionam os detalhes de como construir o
software. Englobam tarefas como planejamento e estimativa de
projeto, anlise de requisitos de software e de sistemas, projeto
da estrutura de dados, arquitetura de programa e algoritmo
de processamento, codificao, teste e manuteno;
Ferramentas: existem para sustentar cada um dos mtodos.
Algumas ferramentas existentes para apoio so as ComputerAided Software Engineering, conhecidas como ferramentas
CASE;
Procedimentos: constituem o elo entre mtodos e ferramentas. Definem a sequncia em que os mtodos so aplicados.
Desde ento vem prosperando o aparecimento de diversos
mtodos, tcnicas e ferramentas para aperfeioar os processos
de desenvolvimento de software em todo o mundo. Mesmo
com toda esta evoluo, a Engenharia de Software h muito
vinha enfrentando problemas relativos a atraso na entrega
de projetos, oramento extrapolado, insatisfao de clientes
e usurios, alm de conflitos e desgastes entre analistas e
ID
P1
Princpio
P7
P8
P9
desenvolvedores devem ser capazes de manter um ritmo de trabalho constante por tempo
indeterminado.
A ateno contnua qualidade tcnica e ao bom design melhora a agilidade.
P10
A simplicidade essencial. preciso saber maximizar o trabalho que NO deve ser feito.
P11
P2
P3
P4
P5
P6
P12
O Manifesto gil
Sob este contexto e percepo, em 11 de fevereiro de 2001, um
grupo de profissionais e pesquisadores de TI se reuniram com
a finalidade de criar uma mobilizao em torno de uma srie
de valores e prticas de desenvolvimento de software que eles
intitularam de Manifesto for Agile Software Development.
Assim, os dezessete presentes assinaram o seguinte
manifesto:
Estamos descobrindo maneiras melhores de desenvolver software
fazendo-o ns mesmos e ajudando outros a faz-lo. Atravs desse
trabalho, passamos a valorizar:
Indivduos e interao entre eles mais que processos e ferramentas
Software em funcionamento mais que documentao abrangente
Colaborao com o cliente mais que negociao de contratos
Responder a mudanas mais que seguir um plano
Ou seja, mesmo havendo valor nos itens direita, valorizamos mais
os itens esquerda.
Este Manifesto tambm enuncia os doze princpios de um
processo gil, como podem ser vistos na Tabela 1.
Mtodos geis
Neste contexto e visando a melhores resultados, as empresas
de TIC esto adotando metodologias de desenvolvimento de
eXtreme Programming XP
O eXtreme Programming ou XP um modelo gil de desenvolvimento de software criado em 1996 por Kent Bech
no Departamento de Computao da montadora de carros
Daimler Chrysler. Ele possui muitas diferenas em relao a
outros modelos, podendo ser aplicado a projetos de alto risco
e com requisitos dinmicos (vagos ou em constante mudana),
conduzidos por equipes de tamanho mdio e pequeno.
Como todo mtodo gil, o XP procura responder com velocidade s mudanas nas especificaes do projeto, com base
em princpios, valores e prticas bem definidos. Este mtodo
enfatiza o desenvolvimento rpido garantindo a satisfao do
cliente e cumprindo as estimativas do projeto. O XP baseia-se
em cinco valores para guiar o desenvolvimento: Comunicao,
Coragem, Feedback, Respeito e Simplicidade. Segundo Beck, o
mtodo oferece ainda 12 prticas, a saber: i) Jogo do planejamento; ii) Verses pequenas; iii) Metfora; iv) Projeto simples; v) Teste;
vi) Refatorao; vii) Programao em pares; viii) Propriedade
coletiva do cdigo; ix) Integrao contnua; x) 40 horas de trabalho semanal; xi) Cliente presente; e xii) Padres de codificao.
A Figura 1 demonstra uma representao do processo do XP,
incorporando as prticas, princpios e valores.
A comunicao um dos principais valores do XP que visa
incentivar uma melhor integrao entre clientes e desenvolvedores, encorajando a interao e o relacionamento interpessoal.
Segundo Nawrocki et al. (2002), com o incentivo na participao
do cliente no projeto e a liberao de verses frequentes, existe
uma probabilidade menor de ocorrncia de erros, assim como
permite ao time a antecipao soluo de muitos problemas.
A questo da manuteno de sistemas produzidos a partir
de um projeto XP bastante questionada quanto sua eficcia
devido a pouca documentao pregada pela metodologia.
Neste contexto, Nawrocki relata que as
fontes de conhecimento em projetos XP
so: o cdigo fonte, os casos de teste e a
memria dos programadores. O risco
em relao a pouca documentao est
na perda de memria que ocorre naturalmente quando h sada de desenvolvedores do time, o que se torna um fator
mais crtico no caso da manuteno de
projetos mais antigos. Nawrocki afirma,
ainda, que neste caso, a nica base para
a manuteno so o cdigo fonte e os
casos de teste.
SCRUM
Figura 1. Fluxo de trabalho em um projeto XP. FONTE: (SIQUEIRA, 2002)
10
M etodologias geis
11
apresentar o valor agregado de acordo com a qualidade requerida e buscar o equilbrio entre a necessidade de negcio
que est sendo atendida e o retorno de investimento que isso
traz ao negcio. Mostre os lucros aos stakeholders e nada
mais importa;
10. Se o seu projeto no mudou, fique apreensivo. Gerente e
equipe devem reunir-se diariamente para avaliar se houve
alterao em expectativas de sucesso, escopo, objetivos, riscos,
qualidade, stakeholders ou projetos relacionados, bem como
verificar se suposies referentes a custo e benefcio continuam
pertinentes;
11. Em e-projects, um dia um tempo muito longo. O gerenciamento efetivo de e-projects demanda uma abordagem nova
e radical para o gerenciamento de projetos.
12
easY Process - YP
O Departamento de Sistemas e Computao da Universidade
Federal de Campina Grande (UFCG) criou em maio de 2003 o
easY Process - YP, um processo de software mais simplificado
que se apoia em prticas do XP, RUP e Agile Modeling.
A necessidade de se criar um novo processo surgiu devido s
dificuldades encontradas em se adaptar os processos j existentes para o uso na academia. O Fluxo bsico est ilustrado
na Figura 3. Os tempos apresentados nos retngulos desta
figura denotam os tempos estimados pelo YP para o avano
de cada etapa do processo.
A primeira etapa do processo consiste na definio de
papis. O YP sugere os seguintes papis: cliente, usurio, testador, desenvolvedor e gerente; podendo uma mesma pessoa
desempenhar mais de um papel dentro do processo, principalmente quando se tratam de equipes de desenvolvimento
pequenas. Em seguida deve ser realizada uma conversa com
o cliente, onde informaes sobre o escopo do problema so
capturadas. A partir de ento, a equipe encontra-se apta a gerar o documento de viso, que aps ser validado pelo cliente,
funciona como um acordo de trabalho entre cliente e equipe
de desenvolvimento.
Na fase de inicializao o cliente define as User Stories e so
elaborados o projeto arquitetural e o modelo lgico de dados
este ltimo apenas se necessrio. O cliente deve priorizar
as User Stories e a equipe deve fazer uma estimativa inicial
do tempo para implementao de cada uma delas. Baseado
nessa estimativa pode-se ento verificar a viabilidade de
M etodologias geis
13
Em relao s prticas definidas no FDD, elas no so extremamente rgidas, pregando a adaptao ao ambiente de
desenvolvimento. No entanto, existe um conjunto de prticas
que so fundamentais e que definem o FDD:
Modelagem em objetos de domnio: construir um diagrama de classes bsico com os objetos de domnio e suas
relaes, definindo assim uma arquitetura bsica para o
modelo do sistema;
Desenvolvimento por caractersticas: a implementao
deve ser orientada pelas caractersticas;
Autoria individual: o cdigo de autoria de um dono da
classe, o que permite uma maior rapidez na implementao
das tarefas associadas;
Times da caracterstica: para a implementao de uma
determinada caracterstica, o chefe programador recruta os
donos das classes que sero usadas. Esse grupo de pessoas
o time da caracterstica;
Inspees: o meio atravs do qual ocorrem as verificaes
de qualidade do cdigo e do projeto;
Integrao (build) regular: em um determinado perodo de
tempo fixo devem ser integradas as caractersticas j terminadas, permitindo a verificao de erros e tambm criando
uma verso atual que pode ser demonstrada ao cliente;
Gerncia de configurao: visa gerenciar todo o ciclo de
vida dos itens de configurao do projeto, realizando o controle de verses de todos os artefatos criados;
Reportar/Visibilidade dos resultados: permitir que se
conhea o progresso do projeto.
Famlia Crystal
Criado por Alistair Cockburn, a famlia de mtodos Crystal
prioriza a comunicao entre os participantes do projeto e
inclui um nmero diferente de mtodos que atendem projetos
14
M etodologias geis
15
Anlise Comparativa
Cada mtodo gil possui caractersticas que influenciam no
funcionamento e no desenvolvimento do projeto de software.
Algumas caractersticas podem ser encontradas em vrios
mtodos e outras so especficas de cada um.
Desenvolvimento dirigido por planejamento
Desenvolvedor com habilidades variadas
Nveis de capacidade do cliente podem variar
Figura 6. O Processo DSDM. FONTE: Adaptado de (DSDM, 2003)
16
Abordagem gil
Desenvolvedor gil, educado, disposto e
colaborador
Clientes mais representativos e autorizados
M etodologias geis
Mtodos
XP
SCRUM
XPM
APM
YP
FDD
Crystal
DSDM
ASD
Pontos chave
Principais Caractersticas
Limitaes/ Falhas
Tabela 3. Comparao entre os mtodos geis revisados. FONTE: Adaptado de (ABRAHAMSSON et al., 2002)
Feedback
eu
www.devmedia.com.br/esmag/feedback
17
sobre e
s
Concluses
D
s
edio
ta
Referncias
ABRAHAMSSON, P.; SALO, O.; RONKAINEN, J.; WARSTA, J. (2002). Agile Software Development
Methods. Review and analysis. ESPOO (Technical Research Centre of Finland) 2002. VTT
Publications n. 478, 112p, 2002.
APM (2003). CC PACE Systems. Agile Project Management Explained White paper. Disponvel
em: < http://www.ccpace.com/Resources/documents/AgileProjectManagement.pdf >.
BECK, K ; FOWLER, M. (2000). Planning extreme programming. Addison-Wesley Longman Publishing
Co., Inc. Boston, MA, USA, 2000. Disponvel em: < http://www.mip.sdu.dk/~brianj/Extreme%20
Programming%20Explained%20-%20Kent%20Beck%3B%20Addison-Wesley,%201999.pdf >.
COCKBURN, A. (2000). Agile Software Development Draft version: 3b. Highsmith Series Editors,
2000. Disponvel em: <http://zsiie.icis.pcz.pl/ksiazki/Agile%20Software%20Development.pdf>.
PRESSMAN, Roger S. (2006). Engenharia de Software: Uma abordagem prtica. Mc Graw Hill 6edio, 2006.
CUMMINS, F.A (2008). Building the Agile Enterprise: With SOA, BPM and MBM, 2008. Paperback, 336
pages, publication date: SEP-2008. ISBN-13: 978-0-12-374445-6. Disponvel em: < http://books.google.
com/books?hl=pt-BR e lr= e id=S6bla9Oy7SYC e oi=fnd e pg=PR13 e dq=%22agile+governance%22
e ots=k05jBK84BQ e sig=Yy6IpvSQ9TNKELMr3Ohv3dR_7UA >.
DSDM (2003). DYNAMIC SYSTEMS DEVELOPMENT METHOD LTD. DSDM Consortium, 2003. Site do
consrcio responsvel pelo DSDM e onde esto disponveis diversas informaes sobre o mtodo.
Disponvel em: <http://www.dsdm.org/>.
SCHWABER, Ken e BEEDLE, Mike (2002). Agile Software Development with SCRUM. Prentice Hall,
PTR Upper Saddle River, NJ, USA, 2002.
BECK, KENT et al. (2001). Agile Manifesto, 2001. Disponvel em: <http://www.agilemanifesto.org>.
FERREIRA, RB; LIMA, FPA (2006). Metodologias geis: Um Novo Paradigma de Desenvolvimento
de Software. II Workshop Um Olhar Sociotcnico sobre a Engenharia de Software WOSES, 2006,
Vila Velha - ES. Disponvel em: <http://www.cos.ufrj.br/~handrade/woses/woses2006/pdfs/10Artigo10WOSES-2006.pdf>.
GARCIA, F. P. et al. (2004). easYProcess: Um Processo de Desenvolvimento para Uso no Ambiente
Acadmico. XII WEI-Workshop de Educao em Computao. Campina Grande: UFCG, 2004.
Disponvel em: < http://www.dsc.ufcg.edu.br/~yp/Download/ArtigoYPWEI.pdf>.
HIGHSMITH, J. (2000). Retiring Lifecycle Dinosaurs. Software Testing e Quality Engineering 2, n.4,
July/August 2000.
HIGHSMITH, J. (2002a). Agile Software Development Ecosystems. Addison Wesley, 2002.
HIGHSMITH, J. (2002b).What Is Agile Software Development? Agile Software Development.
CROSSTALK. The Journal of Defense Software Engineering. Outubro, 2002. p. 4-9.
JACOBSEN, CATRINE M. (2001).XPM from idea to realization - critical approach to the concept of
XPM. Disponvel em: <http://www.glyn.dk/download/synopsisXPM.pdf >.
LOJKINE, J. (1996).A revoluo informacional. So Paulo, Editora Cortez, 1996.
LUFTMAN, J.N.; LEWIS, P.R. e OLDACH, S.H. (1993).Transforming The Enterprise: The Alignment Of
Business And Information Technology Strategies. IBM Systems Journal, v.32, n.1, p.198-221, 1993.
LUNA,Alexandre J.H.DE O.;COSTA,Cleyverson P.and NOVAES,Magdala A.(2010).Desenvolvimento Distribudo
de uma Aplicao de Telessade com a Metodologia gil SCRUM. In Revista Cientfica Tecnologus 4, no. 1: 6.
Disponvel em: <http://www.unibratec.com.br/revistacientifica/n4_artigos.html>.
18
SCOTT, DONNA (2000). Operation Zero Downtime, a Gartner Group Report, Donna Scott, 2000.
Disponvel em: <http://www.gartner.com/>.
SLOANE, E; BECK, R e METZGER, S (2008). AGSOA - Agile Governance for Service Oriented
Architecture (SOA) Systems: A Methodology to Deliver 21st Century Military Net-Centric Systems
of Systems. Systems Conference, 2008 2nd Annual IEEE, 2008. Disponvel em: < http://ieeexplore.
ieee.org/xpls/abs_all.jsp?arnumber=4518995 >.
SOARES, M. S. (2004). Comparao entre Metodologias geis e Tradicionais para Desenvolvimento
de Software. INFOCOMP Journal of Computer Science, Vol. 3, n. 2, p. 8-13, 2004.
SOMMERVILLE, IAN (2007). Engenharia de Software. Pearson Education - 8 Edio, So Paulo,
2007.
STAPLETON, JENNIFER (1997). DSDM: The Method in Practice. Pages: 192. Medium: Hardcover, 1997.
ISBN:0201178893.
TAKEUCHI, H. AND I. NONAKA (1986). The New New Product Development Game. Harvard Business
Review, 1986 (January-February).
THOMSETT, ROB (2002). Radical Project Management. Prentice Hall, 2002. ISBN-13: 978-0-13009486-5. Disponvel em: <http://my.safaribooksonline.com/0130094862>.
YP (2006). easY Process. Disponvel em: <http://www.dsc.ufcg.edu.br/~yp/>.
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
19
Gerenciamento de Testes
Algumas ferramentas existentes no mercado podem auxiliar
em todo o processo de gerenciamento de testes. Este processo
vai desde o cadastramento dos requisitos do projeto, at a
criao e execuo de Planos de Teste e Casos de Teste. No
caso deste artigo, selecionamos apenas uma ferramenta free
para que todos os profissionais pudessem ter acesso ao seu
contedo e testar seu funcionamento.
A ferramenta analisada foi o TestLink. Entre suas possibilidades podemos citar: controle de contedo (requisitos e casos
de teste) online, controle de execuo e resultados de testes.
O TestLink foi desenvolvido em linguagem PHP e nada mais
do que uma aplicao Web, que pode ser utilizada com o
servidor que o projeto j utiliza, como por exemplo, o Apache,
ou qualquer outro servidor de sua preferncia.
Vamos aos primeiros passos para utilizao desta ferramenta.
Inicialmente, deve-se cadastrar usurios e perfis necessrios
para a utilizao do sistema. A Figura 1 exibe uma das principais telas do sistema, onde o usurio poder configurar senhas
20
Jira
Esta ferramenta utilizada principalmente para reportar
defeitos encontrados em baterias de testes, mas pode tambm
controlar tarefas e requisitos de projetos geis, por exemplo.
Ensinaremos agora como reportar defeitos, selecionar defeitos
para correo e inserir resultados de reteste.
A criao de um novo defeito pode ser feita atravs da pgina
principal (Dashboard) da ferramenta. O menu principal possui
uma opo denominada Create a new issue (Figura 7) no canto
superior direito da tela. Esta opo de criar um issue dentro
do Jira pode envolver vrios tipos de tickets, como Estrias,
Defeitos, Tarefas entre outras. Neste caso, como estamos criando um defeito, devemos selecionar a opo Bug.
Selecionada a opo Bug na tela de criao, exemplificada
nas Figuras 8 e 9, os campos devero ser preenchidos com o
mximo de detalhes possvel, como descrito a seguir. Os detalhes so imprescindveis para a reproduo exata do problema
por parte daqueles que desenvolvem o sistema e corrigem os
defeitos. Iniciando o preenchimento dos campos, primeiramente, deve-se ter em mente que alguns campos (Project e Issue
Type) viro com o contedo preenchido automaticamente, e
isso ocorrer apenas nos casos em que o usurio j criou contedo anteriormente. Por exemplo, s existiro opes para
verses (Affect Versions, Fix Versions) se estas foram criadas
pelo usurio em uma primeira instncia. Isto pode ser feito
de acordo com sprints, releases etc.
21
22
Selenium IDE
Ferramenta conhecida por auxiliar em testes de fumaa,
regresso e estresse, o Selenium , na verdade, uma sute de
testes. Composto por uma IDE (plugin do Firefox), um RC
(sistema cliente/servidor) que permite que o usurio controle
o browser local ou remotamente e por um GRID (ferramenta
que permite ao usurio rodar o RC em um ou mais servidores
ao mesmo tempo), esta sute tem sido cada vez mais utilizada
pelas equipes de testes de software.
Uma das principais motivaes para a utilizao desta
sute, alm das possibilidades de uso amplas, a facilidade
de encontrar informaes sobre ela. Existem hoje muitos
fruns de discusso e equipes que utilizam tal recurso,
logo, fica muito mais simples conseguir ajuda e/ou suporte
para o Selenium. A Tabela 1 cita as principais caractersticas da ferramenta e algumas das maiores vantagens do
Selenium.
Focados na execuo dos testes em si, vamos exemplificar aqui, como utilizar o Selenium IDE para a gravao de
testes automatizados. A Figura 13 mostra a interface da
ferramenta.
Um exemplo claro e bem simples de utilizao desta ferramenta pode ser visto a seguir. Criou-se, neste exemplo, um
script que consegue abrir uma nova aba no browser, entrar
em um conhecido site de buscas e procurar por um contedo
especfico (neste caso, testes de fumaa). Os passos executados para a gravao do script de testes foram:
1. Clicar no boto de gravao;
2. Executar as aes dentro do site desejado. Neste exemplo,
digitou-se o endereo do site de buscas, inseriu-se o valor a
ser buscado e clicou-se no boto Pesquisa;
23
Funcionalidade
Verify
Assert
Click
Wait
Comando de espera (por uma ao, elemento surgir na pgina, etc.) at que o
elemento possa ser executado.
Store
Type
JMeter
24
WebDeveloper
Criado tambm como um complemento do browser Firefox,
a ferramenta WebDeveloper pode ser utilizada tanto pelos
profissionais de design web quanto por analistas de testes.
Esta ferramenta permite ao usurio navegar por todo um site,
tendo acesso a contedos como CSS, elementos escondidos em
formulrios, senhas etc.
O primeiro passo para a utilizao do WebDeveloper, assim
como para o Selenium IDE, a sua instalao. Para isso, basta
baixar seu contedo na prpria pgina do browser.
O funcionamento da ferramenta bem simples. O usurio
deve apenas clicar nas opes que deseja manter ativadas. A
Figura 17 mostra a tela principal deste complemento e algumas
das opes ativas.
Como visto na Figura 17, cada uma das opes do menu
representa um conjunto de ferramentas relacionadas. Vejamos
o que cada uma faz:
Desativar: permite habilitar/desabilitar cache, Java, JavaScript, redirecionamentos com <meta>, tamanho mnimo de
fontes, cores personalizadas, pop-ups e proxy;
Thread Group
o ponto inicial, onde todos os outros elementos do Test Plan devem estar includos. Como o prprio nome ressalta, controla as threads que sero executadas pelo teste.
Samplers
So controladores pr-definidos para requisies especficas, podendo ser customizados com a insero de configuraes (Configurations), Assertions e etc.
Logic Controllers
So controladores mais genricos, podendo ser customizados com a insero de outros controllers, configuration elements, assertions, etc.
Listeners
Estes so os elementos que fornecem acesso s informaes obtidas pelo JMeter durante os testes.
Timers
Por padro, o JMeter faz requisies sem pausas entre elas. Os timers so utilizados para incluir pausas entre as requisies.
Assertions
Usado para verificar se a resposta obtida na requisio a esperada. Pode ser usado expresses regulares (Perl-style regular expression) na comparao.
Configuration Elements
Permite que o usurio envie requisies e at mesmo simule o envio de vrias requisies ao mesmo tempo.
Pre-Processor Elements
Post-Processor Elements
Executa alguma ao antes de fazer a requisio. Mais usado para pr-configuraes das requisies. Por exemplo, pode ser utilizado antes de um contador, para deixar o
valor processado preparado para ser futuramente utilizado (antes de outro comando).
Executa alguma ao depois de fazer a requisio. Mais usado para processar as respostas da requisio. Por exemplo, dentro de um caso de teste, ele deve ser inserido aps
um timer, para processar o valor deste comando.
Permite criar requisies usando o protocolo FTP (com autenticao ou no) e executa o comando de retrieve em um arquivo especfico.
HTTP
Permite criar requisies usando o protocolo HTTP ou HTTPS (com autenticao ou no), podendo incluir parmetros ou arquivos a requisio, escolher o mtodo usado (GET ou POST) e
manipular Cookies. Este sampler possui dois tipos de implementao: Java HTTP ou Commons HTTPClient.
JDBC
Objeto Java
Ajuda no teste de carga de classes Java, exigindo que seja implementada uma classe do tipo JavaSamplerClient para executar o mtodo a ser testado. A estrutura deste objeto similar
usada pelo JUnit.
SOAP/XML
Permite enviar requisies SOAP para um WebService, ou enviar XML-RPC atravs do protocolo HTTP.
LDAP
Permite enviar requisies para um servidor LDAP. Possui uma implementao simplificada e outra estendida.
JUnit
Usado para fazer teste de carga em testes de unidade que utilizam o framework JUnit.
25
Referncias
[1] AP Test Software Quality Assurance Testing and Test Tool Resources. http://www.aptest.
com/resources.html.
[2] Test Expert. http://www.testexpert.com.br/?q=node/347.
[3] Firefox Add-Ons Selenium IDE. https://addons.mozilla.org/pt-br/firefox/tag/Selenium%20
IDE%20Plugin.
[4] TestLink Gerenciamento de Casos de Teste. http://www.slideshare.net/prical/testlink-apresentacao#.
[5] Firefox Add-Ons WebDeveloper. https://addons.mozilla.org/pt-br/firefox/addon/web-developer/
26
D
s
Feedback
eu
sobre e
s
Concluso
edio
ta
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
alinecrodrigues@gmail.com
Roberto B. Figueredo
beto.boscolo@gmail.com
Rodrigo Spnola
rodrigo@sqlmagazine.com.br
O MPS.BR define um modelo de melhoria e avaliao de processos de software com o foco nas
pequenas e mdias empresas brasileiras. Ele estabelece um modelo de processos de software e
um mtodo de avaliao de processos de modo a
garantir que o MPS.BR est sendo empregado de
forma coerente com as suas definies.
27
MPS.BR
O MPS.BR define um modelo de melhoria e avaliao de
processos de software com o foco nas pequenas e mdias empresas brasileiras, de modo a atender as suas necessidades de
negcio e ser reconhecido nacional e internacionalmente como
um modelo aplicvel indstria de software. Ele estabelece um
modelo de processos de software e um mtodo de avaliao
de processos de modo a garantir que o MPS.BR est sendo
empregado de forma coerente com as suas definies.
Principais Conceitos
Alguns conceitos so essenciais para o entendimento do
modelo. A maioria deles so tirados de normas como ISO
12204 e ISO 15504:
Processo de software: framework para todas as tarefas que
so necessrias para construir software de alta qualidade
(PRESSMAN, 2007);
Atributo de processo: caracterstica mensurvel da capacidade do processo aplicvel a qualquer processo (ISO/IEC
15504-1, 2004);
Resultado esperado: um resultado observvel do sucesso
do alcance do propsito do processo (ISO/IEC 12207:1995/
Amd 1:2002);
Capacidade do processo: uma caracterstica da habilidade
do processo atingir os objetivos de negcio atuais ou futuros
(ISO/IEC 15504-1, 2004). Essa capacidade representada por
um conjunto de atributos de processo que so descritos em
termos de resultados esperados. Expressa o grau de refinamento e institucionalizao com que o processo executado
na organizao. Para uma organizao passar para um nvel
mais alto de maturidade cada processo deve alcanar um nvel
maior de capacidade.
Ativo de processo: qualquer coisa que a organizao considere til para atingir os objetivos do processo como polticas,
processos definidos, lies aprendidas, templates de documentos, padres, material de treinamento (SEI, 2006);
Perfil do Processo: conjunto de pontuao de atributos de
processo para um processo avaliado (ISO/IEC 15504-1, 2004).
Guias MPS.BR
O modelo MPS.BR descrito por meio de quatro documentos
em formato de guias. So eles: guia geral, guia de implementao, guia de aquisio e guia de avaliao.
Guia Geral
Descreve de forma detalhada todo o MPS.BR assim como as definies sobre cada um dos documentos que compem o modelo.
Nesse documento encontram-se todos os conceitos relacionados
ao MPS.BR, a descrio detalhada de cada nvel de maturidade
28
Processo
Nveis de Maturidade
Os nveis de maturidade do MPS.BR, como no CMMI, estabelecem patamares de evoluo de processos caracterizando
estgios de melhoria da implementao de processos organizacionais. Essa diviso, embora baseada no CMMI, tem uma
graduao diferente. O MPS.BR subdividiu dois nveis do
modelo CMMI para melhor se adequar realidade das micro e
pequenas empresas brasileiras. Na Figura 1 temos um quadro
comparativo entre os nveis de maturidade MPS.BR e os nveis
de maturidade do CMMI.
Essa maior graduao de nveis de maturidade possibilita
s empresas brasileiras uma evoluo mais gradual e com
um custo inferior a sua equivalente internacional. Um maior
nmero de nveis possibilita tambm uma comparao mais
precisa entre unidades intra e inter-organizacionais.
Assim, o MPS.BR define 7 nveis de maturidade: A (Em
Otimizao, B (Gerenciado Quantitativamente), C (Definido), D (Largamente Definido), E (Parcialmente Definido), F
(Gerenciado), G (Parcialmente Gerenciado) conforme mostra
a Figura 2.
Processos
De acordo com (PRESSMAN, 2006), processo de software
um framework contendo todas as atividades necessrias para
a construo de software de qualidade. No MPS.BR eles so
descritos em termos de propsitos e resultados esperados, ou
seja, os objetivos gerais a serem atingidos pelo processo e os
resultados que se espera que o processo gere pela sua efetiva
implementao. Esses resultados podem ser artefatos como
documentos e componentes de software ou podem ser apenas
uma mudana no estado do processo.
Atributos de processo
Na verso mais recente do MPS.BR so descritos nove atributos de processo:
AP 1.1: O processo executado: o processo atinge o seu
propsito no importando de que maneira ele executado.
29
30
Processo
Nvel F Gerenciado
O nvel F, assim como todos os nveis subseqentes, possui
todos os processos descritos no nvel G acrescido de mais quatro processos. Todos os processos acumulados at aqui devem
satisfazer os atributos de processo AP 1.1, AP 2.1, AP 2.2.
Os processos requeridos para esse nvel so:
1. Aquisio: gerenciamento da aquisio de produtos e
servios;
2. Gerncia de Configurao: tem como objetivo estabelecer e
manter a integridade de todos os produtos de trabalho de um
processo ou projeto e disponibiliz-los a todos os membros
do projeto;
3. Garantia da Qualidade: assegurar que os produtos de trabalho e a execuo dos processos estejam em conformidade
com os planos e recursos pr-definidos;
4. Medio: coletar e analisar dados relativos aos produtos
desenvolvidos.
31
Concluso
A qualidade de software, especialmente em projetos grandes,
est diretamente ligada maneira como o trabalho de desenvolvimento realizado durante todas as fases do ciclo de vida.
Para grandes empresas de desenvolvimento, como fbricas de
software, a existncia de um processo bem definido dentro da
organizao essencial para a manuteno da qualidade do
produto desenvolvido e para o reaproveitamento de componentes utilizados em projetos anteriores. Alm disso, a grande
quantidade de concorrentes no mercado vem forando essas
empresas a se certificarem em modelos de maturidade. Para
pequenas e mdias empresas, adotar um modelo de maturidade como o CMMI pode ser muito caro. Por isso, a adoo de
um modelo mais adequado sua realidade, como o MPS.BR,
pode trazer benefcios de curto prazo com custos inferiores
aos modelos internacionais.
Referncias
International Organization for Standardization and International Electrotechnical Comission.
ISO/IEC 15504 - http://www.iso.org/iso/iso_catalogue/. Acesso em 05/04/2011
PRESSMAN, R. S. Engenharia de Software, 6 edio, Macgraw Hill, 2006.
SOFTEX, Guia Geral v1.2 http://www.softex.br/mpsbr - Acesso em: 30/03/2011
SOFTEX, Guia de Avaliao http://www.softex.br/mpsbr - Acesso em: 05/04/2011
SOFTEX, Guia de Implementao http://www.softex.br/mpsbr - Acesso em: 05/04/2011
32
www.devmedia.com.br/esmag/feedback
Feedback
eu
sobre e
s
Nvel A Em Otimizao
D
s
Nvel C Definido
edio
ta
Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.
33
34
Definindo um projeto
As prticas apresentadas e discutidas pelo PMBOK aplicamse, exclusivamente, a projetos, desde que compreendidos na
acepo da palavra. Um projeto um esforo empreendido
por uma equipe no sentido de produzir um resultado nico
e mensurvel, onde podem ser identificados um incio e um
fim. Atividades contnuas, muito comuns em todos os tipos
de organizao no so projetos, so rotinas, e como tais,
gerenciveis atravs de tcnicas e processos diferenciados. O
grupo que empreende o esforo de desenvolvimento do produto no permanecer reunido aps a concluso do projeto,
ele provavelmente ser desfeito e seus membros realocados
com vistas execuo de novos projetos.
Uma particularidade de um projeto a singularidade de suas
entregas. Embora existam similaridades entre os processos de
execuo de diversos projetos, as entregas, parciais ou final,
compostas por produtos, servios, documentos ou outro artefato, so exclusivas, ou seja, adequadas e nicas para a soluo
do problema tratado.
processos bsicos envolvidos no desenvolvimento do projeto visando alcanar plenamente seus objetivos e metas. Os diversos processos citados so organizados em
cinco grupos que no tm suas execues
efetuadas em sequncia, pelo contrrio,
apresentam sobreposies significativas,
o que, obviamente, torna o processo de gerenciamento mais delicado e complexo. Os
grupos so ordinariamente denominados:
de iniciao, de planejamento, de execuo, de monitoramento e controle e de
encerramento. Uma caracterstica bastante
marcante do processo de gerenciamento
a capacidade da liderana do projeto em
lidar com incertezas. Em outras palavras,
a identificao e preparao para lidar
com riscos de projeto podem significar
a diferena entre sucesso e fracasso.
Figura 1. reas de Conhecimento e suas Intersees
cada vez mais patente a necessidade de
conhecer os riscos existentes, mensurar
a probabilidade de sua ocorrncia, avaliar o impacto causado
aplicao, onde residiro conhecimentos, habilidades, normas,
quando de sua ocorrncia e preparar um plano de contingncia
regulamentos e ferramentas especficas de desenvolvimento
para seu enfrentamento.
na rea de TI. claro que essa especializao ter repercusses
nas outras quatro reas, forando a eliminao de processos
Habilidades e conhecimentos necessrios ao
desnecessrios em funo dessa especificidade. Considerando
gerenciamento de projetos
essa aplicao exclusiva, a rea especfica da aplicao engloba
O Guia PMBOK apresenta uma coleo de processos aplitambm todas as metodologias e ferramentas empregadas em
cveis a toda classe de projetos. Esses processos so excluengenharia de software.
sivamente utilizados em gerenciamento de projetos, mas
O entendimento do ambiente do projeto passa pela compreno so, por si s, completamente suficientes para suprir um
enso, por parte da equipe de gerenciamento, das nuances
processo completo e eficiente de gerenciamento. Para que o
particulares do domnio onde o sistema atuar, ou seja, em
processo torne-se realmente eficiente necessrio agregar
que contexto o sistema existir. Esses diferentes contextos, que
conhecimentos e habilidades oriundos de cinco reas que so
abrigaro diferentes sistemas, precisam ser compreendidos
complementares em alguma medida, gerando um conjunto
em suas vises diferenciadas, quais sejam, as vises cultural
interdisciplinar eficiente:
e social, internacional e poltica, assim como o ambiente fsico
conhecimentos e habilidades em gerenciamento de
propriamente dito. Como um exemplo, a equipe precisa ter
projetos;
bem dimensionado qual o impacto que o projeto causa nas
conhecimentos, normas e regulamentos da rea especfica
vidas das pessoas afetas ao contexto, assim como que tais
da aplicao;
pessoas afetam o projeto.
entendimento do ambiente de projeto;
Habilidades e conhecimentos de gerenciamento geral
conhecimento e habilidades de gerenciamento geral;
tornam-se teis na medida em que qualquer gerenciamento
habilidades interpessoais.
especfico foi delas, pelo menos parcialmente, derivado. Preocupaes como logstica, treinamentos, prticas de sade,
Conhecimentos e habilidades da rea de gerenciamento
aquisies e dezenas de outros itens considerados em gerende projetos obviamente se sobrepem s demais. A Figura 1
ciamento geral aplicam-se integralmente a qualquer tipo de
mostra como esta rea envolve partes significativas das outras,
projeto em decurso.
e destaca as intersees apresentadas por elas.
Entre outros desafios inerentes ao processo de gerenciamento
A figura demonstra a interao entre os conhecimentos e
de projetos destaca-se a difcil tarefa de gerir pessoas. Essa hahabilidades das disciplinas envolvidas, demonstrando clarabilidade deriva muito mais de habilidades interpessoais inatas
mente que gerenciamento de projetos as congrega de maneira
do que de treinamento especfico, embora tal habilidade possa
geral. Outro ponto esclarecedor contido na figura citada
ser desenvolvida e aperfeioada. Habilidades interpessoais
a possvel aplicao exclusiva de PMBOK a projetos de deaplicadas a equipes de gerenciamento e/ou desenvolvimento
senvolvimento de sistemas de informao ou projetos de TI.
incluem liderana, motivao, mediao e, principalmente,
Isso se d pela especializao completa da rea especfica da
comunicao eficaz.
35
Na verdade, no poucas vezes se constata que a gesto de pessoas torna-se um ponto nevrlgico nos processos de gerncia
de qualquer projeto. Sem querer adiantar demais concluses
da comparao proposta no princpio do artigo, pode-se aqui
colher uma primeira lio sobre a dirigibilidade de uma equipe
de desenvolvimento de sistemas. Grandes equipes tornam-se
no gerenciveis e mtodos mais modernos de gerncia, a
exemplo do SCRUM, indicam equipes com tamanho entre 7
e 9 profissionais. Se a equipe total bem maior do que isso,
prefervel compor sub-equipes e constituir uma hierarquia
de gerncias. A gerncia de pessoas inclui capacidades como
gerenciamento de conflitos, motivao pessoal e clareza na
forma de comunicao. O trabalho de cada sub-equipe pode ser
considerado um subprojeto, desde que as entregas de cada um
deles sejam coordenadas, j que existiro interdependncias.
O trabalho de coordenao dessas sub-equipes, integrao desses sub-projetos e padronizao dos procedimentos
utilizados entre diversos projetos realizados por uma nica
organizao, pode tornar-se uma atividade rdua, requerendo,
ela prpria, um esforo adicional de gerncia.
Uma prtica valiosa para lidar com esta tarefa estabelecer
uma unidade dentro da organizao, denominada PMO Project Management Office, ou escritrio de gerncia de projetos.
Dentre diversas outras atribuies, um PMO deve padronizar
procedimentos, promover difuso de prticas bem sucedidas,
propor a eliminao de etapas pouco produtivas, oferecer compartilhamento de recursos entre equipes (materiais e humanos)
assim como oferecer treinamento para novos integrantes das
equipes, evitando a paralisao de membros da equipe de
desenvolvimento para nivelamento de conhecimento.
claro que um PMO ser tipicamente mais til em organizaes que trabalham efetivamente com a filosofia de projetos,
principalmente para catalogar e disponibilizar uma memria
de projetos dessa organizao. Os processos de gerncia de projetos de desenvolvimento de sistemas valem-se extensivamente
do uso de mtricas de estimativa de esforo, custo e prazo e tais
mtodos so extremamente dependentes de um memorial de
dados histricos de projetos anteriores, sejam sucessos, sejam
fracassos, e os PMO so decisivos neste campo.
36
customizao. Um ponto delicado, nessa atividade, a integrao entre processos. Geralmente no trivial e no representvel
graficamente de maneira simples, a integrao pode demandar
um esforo pontual acentuado, e impactar de forma significativa o andamento da fase de execuo do projeto.
37
38
39
40
Referncias
Um Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos - Guia PMBOK Quarta edio C 2009 Project Management Institute, Four Campus Boulevard, Newtown
Square, PA 19073-3299 EUA
Feedback
eu
sobre e
s
O PMBOK muito mais detalhado do que o resumo apresentado at aqui. Ele apresenta todos os processos de todas as
reas em termos de entradas e sadas esperadas ou desejadas,
alm de organizar os processos em atividades encadeadas
atravs de fluxogramas detalhados.
Neste guia, que uma norma nacional americana, o gerente
ou gerentes interessados em compor um subconjunto de processos adequados a um projeto especfico, encontra subsdio
suficiente para, alm de montar esse conjunto, colher dicas
de tcnicas utilizadas na execuo de dezenas de atividades
relacionadas. Entretanto preciso que se faa, neste ponto,
uma reflexo sobre a aplicabilidade dessa metodologia. Uma
simples avaliao do alcance desse conjunto de processos e
D
s
Concluso
uma estimativa do esforo necessrio para empreender projetos com qualquer subconjunto deles deixa claro que PMBOK
parece mais adequado a projetos de mdio para grande portes,
e se tornaria um processo emperrado se aplicado a pequenos
empreendimentos.
Outra concluso bastante natural a de que PMBOK produz
resultados palpveis em projetos de qualquer natureza cuja
complexidade no seja a trivial e cuja durao exija a aplicao
de gerncia continuada. Na verdade, a grande quantidade de
informao que entregue pelo guia, assusta, numa primeira
avaliao, o gerente interessado em implantar uma metodologia intermediria. Mas no se pode perder de vista que
PMBOK perfeitamente adaptvel, tendo sido criado com
essa finalidade.
Atravs das dcadas em que se desenvolveram as metodologias e as tcnicas de desenvolvimento de sistemas de informao, cresceu sempre a demanda por produtos de maior qualidade, confiabilidade, custo razovel e entregues com rapidez, ou
seja, entrava para o jargo da rea, definitivamente, a ideia de
agilidade, entrega rpidas, mas sem prejuzo da qualidade. O
contexto moderno de desenvolvimento de sistemas de informao valoriza essa nova vertente sem abrir mo de metodologias
mais robustas, como o PMBOK demonstrado aqui.
O prximo artigo desta srie abordar o SCRUM, mais que
uma metodologia, um framework conceitual idealizado para
gerenciar processos de produo geis.
edio
ta
Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
41
Nome do padro de projeto: Adapter. Pertencente ao conjunto dos padres de projeto classificados como Padres
Estruturais.
O problema: Em determinado momento no desenvolvimento
de uma aplicao, o desenvolvedor pode se deparar com a necessidade de utilizar uma classe e perceber que sua interface
no prov as funcionalidades que ele precisa. O padro Adapter
atua neste contexto, permitindo ao desenvolvedor, ao invs de
modificar a interface da classe, criar um adaptador, que ser
responsvel por adaptar a interface que no corresponde s
necessidades do desenvolvedor em uma que corresponda.
As consequncias: Como consequncia, tem-se uma aplicao cujas classes podem ser mais bem utilizadas, dado que ao
se criar um adaptador, a utilidade da classe aumenta, mediante
aos novos recursos que ela prover.
Nota do DevMan 1
Refatoraes apresentadas em outros artigos
As tcnicas de refatorao Extrair Classe, Extrair Mtodo, Mover Mtodo, Extrair
Subclasse, Subir Mtodo na Hierarquia, Extrair Superclasse e Internalizar Mtodo j
foram apresentadas em outras edies da Engenharia de Software Magazine, mais
precisamente nas edies de nmero 29, 30, 33 e 34.
42
Desen volvimento
43
44
Desen volvimento
01.
02. using System.Data.SqlClient; // Referencia ao SQL Server
03. using FirebirdSql.Data.Client; // Referencia ao Firebird
04. using FirebirdSql.Data.FirebirdClient; // Referencia ao Firebird
05. namespace ExtrairAdapter
06. {
07. public class Banco
08. {
09.
public String stringconnection = Data Source=02DESKTOP
\\SQLEXPRESS;
Initial Catalog=HotelMaster;Integrated Security=SSPI;
MultipleActiveResultSets=True;
10.
public String stringConexaoFirebird = User=SYSDBA;
Password=masterkey;Database=c:\\BANCO.FDB;
DataSource= 10.0.0.1;Port=3050;Dialect=3;Charset=NONE;
Role=;Connection lifetime=0;Connection timeout=15;
Pooling=True;Packet Size=8192;Server Type=0;
11.
private static SqlConnection objConexao = null;
12.
private static FirebirdSql.Data.FirebirdClient.FbConnection
objConexaoFirebird = null;
13.
private void CriarObjConexao()
14.
{
15.
objConexao = new SqlConnection();
16.
objConexao.ConnectionString = stringconnection;
17.
objConexao.Open();
18.
}
19.
private void CriarObjConexaoFirebird()
20.
{
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48. }
49. }
01.
02. using FirebirdSql.Data.Client; // Referencia ao Firebird
03. using FirebirdSql.Data.FirebirdClient; // Referencia ao Firebird
04. namespace ExtrairAdapter
05. {
06. public class BancoFirebird
07. {
08. public String stringConexaoFirebird = User=SYSDBA;
Password=masterkey;Database=c:\\BANCO.FDB;
DataSource= 10.0.0.1;Port=3050;Dialect=3;Charset=NONE;
Role=;Connection lifetime=0;Connection timeout=15;
Pooling=True;Packet Size=8192;Server Type=0;
09. private static FirebirdSql.Data.FirebirdClient.FbConnection
objConexaoFirebird = null;
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27. }
28. }
45
Mecnica:
1. Na classe que possui uma linguagem implcita, busca-se
por um mtodo que receba como parmetro um nico objeto.
Cria-se uma classe cujo nome revele a inteno do mtodo
escolhido. Nela dever ser declarado um objeto do mesmo
tipo do parmetro do mtodo, dever ter um mtodo de leitura
e um construtor que atribua o valor recebido para o objeto
declarado.
Listagem 9. Classe Curso.
46
Desen volvimento
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76. }
return queryBuscaCursos;
}
private SqlConnection ObterObjConexao()
{
SqlConnection Conexao = Acesso.getConexao();
return Conexao;
}
private SqlCommand ObterObjComando()
{
SqlConnection Conexao = ObterObjConexao();
String queryBuscaCursos = ObterSQL();
SqlCommand Commando11 = new SqlCommand
(queryBuscaCursos, Conexao);
return Commando11;
}
public ArrayList BuscarCursoPorNome()
{
ArrayList listaCursos = new ArrayList();
SqlCommand Commando11 = ObterObjComando();
try
{
Commando11.ExecuteNonQuery();
SqlDataReader dados = Commando11.ExecuteReader();
while (dados.Read())
{
Curso curso = new Curso();
curso.IdCurso = Convert.ToInt64(dados[0]);
curso.Nome = Convert.ToString(dados[1]);
curso.Professor = Convert.ToInt64(dados[2]);
listaCursos.Add(curso);
}
dados.Close();
return listaCursos;
}
catch
{
return listaCursos;
}
}
47
48
Feedback
eu
www.devmedia.com.br/esmag/feedback
Referncias
GAMMA, Erich, 2000. Padres de Projeto: solues reutilizveis de software orientado a objetos,
1ed. Porto Alegre: Bookman, 2000.
KERIEVSKY, Joshua. Refatorao para Padres, 1ed. Porto Alegre: Bookman, 2008.
FOWLER, Martin. Refatorao: aperfeioando o projeto de cdigo existente, 1ed. Porto Alegre:
Bookman, 2004.
sobre e
s
D
s
Concluso
edio
ta
Desen volvimento
49
50