Beruflich Dokumente
Kultur Dokumente
Conhecimento
faz diferena!
19.02.08
18:15:13
magazine
Engenharia de Software
Saiba seu significado e para que serve
00003
9 771983 127008
ISSN 1983127-7
Edio Especial
Requisitos
Especial
Projeto
Processos
EDITORIAL
Impresso no Brasil
Corpo Editorial
Colaboradores
Rodrigo Oliveira Spnola
rodrigo@sqlmagazine.com.br
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Diagramao
Gabriela de Freitas - gabrieladefreitas@gmail.com
Capa
Romulo Araujo - romulo@devmedia.com.br
Na Web
www.devmedia.com.br/esmag
Apoio
Parceiros:
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:
(rodrigo@sqlmagazine.com.br)
Doutorando em Engenharia de Sistemas e Computao (COPPE/UFRJ). Mestre em
Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Cincias da Computao
(UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), tendo ministrado cursos na rea de Qualidade de Produtos e Processos de Software, Requisitos e Desenvolvimento Orientado a Objetos. Consultor para implementao do MPS.
BR. Atua como Gerente de Projeto e Analista de Requisitos em projetos de consultoria
na COPPE/UFRJ. Colaborador da Engenharia de Software Magazine.
Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
(21) 2220-5375
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
Kaline Dolabella
publicidade@devmedia.com.br
voc gostaria de ler, que artigo voc mais gostou e qual artigo voc menos gostou. Fique a
vontade para entrar em contato com os editores e dar a sua sugesto!
Se voc estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
entre em contato com os editores, informando o ttulo e mini-resumo do tema que voc
gostaria de publicar:
Rodrigo Oliveira Spnola - Colaborador
editor@sqlmagazine.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:
Tipo: Engenharia de Requisitos
Ttulo: Solues Concretas para Problemas Prticos da Engenharia de Requisitos Parte 7
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Existem diferentes maneiras de estruturar um processo com atividades relacionadas engenharia de requisitos em empresas desenvolvedoras de software. Modelos de
maturidade, como o MPS, podem servir como um arcabouo para a definio deste processo.
Alm disso, fundamental para um processo de engenharia de requisitos que ele seja capaz
de lidar com dificuldades e problemas relacionados a requisitos que possam surgir durante o
desenvolvimento de software na prtica. Uma iniciativa rumo ao levantamento destas dificuldades e problemas e de maneiras de estruturar um processo para lidar com estes problemas
ser apresentada nesta srie de vdeo aulas. Nesta stima aula, sero apresentados problemas
e sugestes de soluo associadas a atividades de verificao e validao de requisitos.
Tipo: Engenharia de Requisitos
Ttulo: Solues Concretas para Problemas Prticos da Engenharia de Requisitos Parte 8
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Existem diferentes maneiras de estruturar um processo com atividades
relacionadas engenharia de requisitos em empresas desenvolvedoras de software. Modelos de maturidade, como o MPS, podem servir como um arcabouo para a definio deste
processo. Alm disso, fundamental para um processo de engenharia de requisitos que ele
seja capaz de lidar com dificuldades e problemas relacionados a requisitos que possam surgir
durante o desenvolvimento de software na prtica. Uma iniciativa rumo ao levantamento
destas dificuldades e problemas e de maneiras de estruturar um processo para lidar com estes
problemas ser apresentada nesta srie de vdeo aulas. Nesta oitava aula, sero apresentados
problemas e sugestes de soluo associadas a atividades de gerenciamento de requisitos.
Tipo: Engenharia de Requisitos
Ttulo: Concretas para Problemas Prticos da Engenharia de Requisitos Parte 9
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Existem diferentes maneiras de estruturar um processo com atividades
relacionadas engenharia de requisitos em empresas desenvolvedoras de software.
Modelos de maturidade, como o MPS, podem servir como um arcabouo para a definio
deste processo. Alm disso, fundamental para um processo de engenharia de requisitos
que ele seja capaz de lidar com dificuldades e problemas relacionados a requisitos que
possam surgir durante o desenvolvimento de software na prtica. Uma iniciativa rumo ao
levantamento destas dificuldades e problemas e de maneiras de estruturar um processo
para lidar com estes problemas ser apresentada nesta srie de vdeo aulas. Nesta nona e
ltima aula desta srie, sero apresentados problemas e sugestes de soluo associadas
a atividades de gerenciamento de requisitos, ferramentas e recursos humanos associados
s atividades da engenharia de requisitos.
Tipo: Projeto
Ttulo: Introduo Matriz de Rastreabilidade Parte 1
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: pode ser considerado um conceito chave ao longo do desenvolvimento
de projetos de software. Este conceito define que possvel mapear a relao entre os
diferentes elementos elaborados durante o desenvolvimento de software. Esta relao
identificada a partir das transformaes que existem em informaes ao longo do
processo de desenvolvimento e podem ser representadas atravs de rastros em
uma matriz de rastreabilidade. Nesta vdeo aula apresentaremos as definies iniciais
associadas rastreabilidade.
Tipo: Projeto
Ttulo: Introduo Matriz de Rastreabilidade Parte 2
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Rastreabilidade pode ser considerado um conceito chave ao longo do
desenvolvimento de projetos de software. Este conceito define que possvel mapear a
relao entre os diferentes elementos elaborados durante o desenvolvimento de software.
Esta relao identificada a partir das transformaes que existem em informaes ao longo
do processo de desenvolvimento e podem ser representadas atravs de rastros em uma
matriz de rastreabilidade. Nesta segunda parte, apresentaremos a importncia do conceito
de rastreabilidade e como ele pode ser aplicado atravs das matrizes de rastreabilidade.
NDICE
08 - Priorizao Voltada para Resultados
Dairton Bassi
42 - Plano de Teste
Antonio Mendes da Silva Filho
6 SQL Magazine
Dairton Bassi
dbassi@gmail.com
METODOLOGIAS GEIS
Quem o responsvel?
um ativo valioso. Como conseqncia, a equipe de desenvolvimento tambm passa a ser mais valorizada.
Se a urgncia pelo produto for grande, uma priorizao
voltada para as principais funcionalidades pode criar rapidamente uma verso simplificada, ou beta, do produto.
Dessa forma, as prximas funcionalidades podem ser criadas
enquanto uma verso j gera receita. Isso coloca o projeto em
uma condio auto-sustentvel e a equipe de desenvolvimento em uma situao mais confortvel com relao cobrana
por resultados.
Periodicidade da Priorizao
10
Tcnicas de Priorizao
As tcnicas que apresentamos a seguir so fortemente baseadas em interesses de negcios, portanto levam em considerao
o ponto de vista dos clientes e usurios. Os programadores,
apesar de estarem completamente envolvidos com a criao
do software, no devem ter a responsabilidade de determinar
as prioridades de negcio. Estas decises devem ser tomadas
por aqueles que esto envolvidos com questes financeiras e
estratgicas do projeto, como por exemplo, as tticas comerciais
e as aes de marketing.
Opinio do Cliente
Os clientes devem estar altamente envolvidos com o desenvolvimento, pois os programadores, e mesmo o gerente, na
maioria das vezes no so especialistas no domnio de negcios
do software, portanto eles no tm condies de determinar
sozinhos as prioridades do projeto.
Envolver os clientes e colocar as primeiras verses do software em contato com potenciais usurios uma forma de
coletar opinies de pessoas que podero avali-lo pensando
de que maneiras aquele programa ainda em construo pode
se tornar rapidamente mais til e poderoso.
Para coletar as opinies de potenciais usurios, uma reunio pouco formal, no estilo de demonstrao o ideal. Aps
a apresentao das funcionalidades, algumas perguntas
ajudaro a entender os principais interesses dos usurios.
Se o grupo de usurios for grande, cada um pode responder
em uma folha de papel perguntas simples como: Quais
so as prximas trs funcionalidades que voc gostaria que
esse sistema possusse? acompanhada de uma discusso
com o grupo sobre as respostas. Se os usurios j usam um
software e o novo vem para substitu-lo ou para disputar
mercado, a pergunta pode ser: Quais funcionalidades voc
usa com frequncia que este programa ainda no tem?,
e em um momento mais avanado do desenvolvimento a
pergunta seria: Que funcionalidades voc gostaria que o
sistema tivesse para tornar o seu trabalho mais fcil?. Se
os potenciais usurios no possuem qualquer soluo em
software, a pergunta pode ser: O que mais este software
precisa fazer para ser til para voc? ou O que faria voc
usar este software?.
METODOLOGIAS GEIS
Dependendo do processo de desenvolvimento usado, perguntas parecidas com estas podem ter sido feitas em uma
fase inicial do projeto, porm as suas respostas provavelmente
foram usadas para entender as necessidades, mas no para
determinar prioridades. Alm disso, as necessidades podem
ter mudado, esta uma forma de verificar se elas continuam
as mesmas.
Estas reunies de demonstrao podem acontecer periodicamente durante o desenvolvimento do produto. Mensalmente
ou sempre que as maiores prioridades apontadas na reunio
anterior tiverem sido implementadas. Se as demonstraes
acontecerem desde a primeira iterao, o software poder ser
utilizado e avaliado desde o incio, reduzindo a possibilidade
da equipe de desenvolvimento despender tempo em funcionalidades que no agregam valor ao software.
Em geral, aps algumas semanas j possvel fazer a primeira
demonstrao para clientes ou potenciais usurios, mesmo
que o software no tenha todas as funcionalidades ou mesmo
uma interface grfica profissional. Naturalmente, importante
alert-los de antemo de que esta ainda uma verso precoce
que precisa da colaborao e opinio de todos para crescer e
se tornar o produto que desejam.
Priorizao por Valor e Risco
Outra maneira de priorizar considera o valor de negcios
que a funcionalidade traz para o software, que vamos chamar
simplesmente de valor, e a dificuldade de implementao, que
inclui o risco de atraso e as incertezas a respeito da implementao, chamamos essas dificuldades de risco. Esta tcnica
simples e produz um diagrama que pode ser lido facilmente e
oferece uma viso panormica do projeto sob o ponto de vista
das duas variveis consideradas: valor e risco.
O resultado deste exerccio de priorizao ser visto em um
plano cujos eixos so o valor e o risco. Ele pode ser desenhado
em uma lousa, em um quadro branco ou em uma cartolina
sem a necessidade de definir uma escala, basta apenas determinar a direo em que o valor e o risco crescem em seus
respectivos eixos.
Para mensurar o valor e o risco de cada funcionalidade,
a participao de clientes e desenvolvedores essencial. O
cliente determina a quantidade de valor que cada funcionalidade agrega ao produto final e a equipe de desenvolvimento
dimensiona o risco de implementao. Desta forma, cada
funcionalidade pode ser representada por um ponto no plano,
conforme a Figura 1.
Neste exerccio a meta no obter estimativas para criar
cronogramas. O objetivo dimensionar comparativamente
a quantidade aproximada de valor e risco de cada funcionalidade, por isso no preciso associar nmeros para as
medidas. O importante perceber quais funcionalidades
so, de fato, valiosas e de alto risco atravs de comparaes
diretas com as demais. Ao dispor os pontos (funcionalidades) no grfico, as posies comeam a ser definidas pelas
opinies dos participantes e depois so ajustadas por comparao com os outros pontos.
11
12
Feedback
eu
sobre e
s
Concluses
D
s
edio
ta
Jim Johnson. ROI, its your job. In Keynote Speech at 3rd International Conference on eXtreme
Programming and Agile Processes in Software Engineering (XP2002), May 2002.
PMI Chapters Brasileiros. Estudo de benchmarking em gerenciamento de projetos brasil.
Technical report, www.pmi.org.br, 2007.
Kent Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
Ken Schwaber. Agile Software Development with Scrum. Microsoft Press, 2004.
Mike Cohn. Agile Estimating and Planning. Prentice Hall, 2006.
Dairton Bassi. Experincias com desenvolvimento gil. Masters thesis, Instituto de Matemtica
e Estatstica da Universidade de So Paulo - IME/USP, 2008.
METODOLOGIAS GEIS
P S - G R A D UA O
FORMAES
Engenharia de Software:
Desenvolvimento Java
G R A D UA O
Anlise e Desenvolvimento
de Sistemas
Desenvolvedor Java
Desenvolvedor Java: Sistemas
Distribudos
Gestor de TI
Desenvolvedor Web .NET 2008
MCITP Server Administrator
SQL Server 2008
13
A
Thiago Carvalho de Sousa
thiagocsousa@gmail.com
14
PROJETO
A linguagem OCL
Expresses OCL
Tipos de Expresses
As expresses OCL podem ser de trs tipos:
Expresses que representam condies invariantes em
classes de objetos;
Expresses que representam pr-condies de operaes
aplicveis a uma classe de objetos;
Expresses que indicam as ps-condies de operaes
aplicveis a uma classe de objetos;
Contexto de uma Expresso
As expresses OCL requerem que as restries estejam ligadas a um contexto de um modelo. O contexto de uma expresso
pode ser uma classe de objetos ou pode ser uma operao
aplicvel a um objeto.
Para representar um contexto em OCL utilizamos a seguinte
palavra reservada:
context
<contexto>
Invariantes
Invariantes so condies que os objetos modelados devem
respeitar durante toda sua existncia no sistema. Em OCL,
para indicar que uma expresso uma invariante, utilizamos
a palavra reservada inv: aps a declarao do contexto. Uma
expresso tpica em OCL e que representa uma condio invariante tem o seguinte formato:
context <contexto>
inv: <expresso>
Pr-condies
Pr-condies so declaraes que refletem o estado no
qual deve se encontrar o sistema para que as operaes sobre
os objetos possam ser executadas. Em OCL, quando queremos expressar uma condio na forma de pr-condio,
utilizamos a palavra reservada pre: aps a declarao do
contexto. O contexto deve possuir explicitamente a indicao sobre qual operao a pr-condio ocorre. A expresso
tpica em OCL usada para representar uma pr-condio
tem a seguinte estrutura:
context <contexto>
pre: <expresso>
Ps-condies
Ps-condies so declaraes que apresentam o estado do
sistema aps a execuo de uma determinada operao de um
objeto. Em OCL, para declararmos uma expresso na forma
de ps-condio utilizamos a palavra reservada post: aps a
declarao do contexto. O contexto deve possuir explicitamente
a indicao sobre qual operao a ps-condio ocorre. Para as
ps-condies temos a seguinte expresso tpica:
context <contexto>
post: <expressao>
15
Palavras Reservadas
Algumas palavras que desempenham funes especiais no
contexto da expresso foram criadas para estruturar melhor
certas restries em OCL.
Self
Numa expresso em OCL, a palavra reservada self usada
para referenciar explicitamente uma instncia do contexto.
@Pre
Numa expresso em OCL, a palavra reservada @pre acompanha um atributo ou associao, indicando o seu valor antes
do inicio da operao.
Result
Numa expresso em OCL, a palavra reservada result indica
o resultado gerado por uma operao.
Let ... in
Algumas vezes uma pequena parte da expresso utilizada
mais de uma vez. As palavras reservadas let...in permitem a
definio de uma varivel (que contm a pequena parte da
expresso) a qual pode ser usada na restrio a ser expressada.
If Then. Else..... End If
Para uma restrio que envolve condies, foram criadas as
palavras reservadas if...then...else...end if.
Tipos de Dados
Uma das caractersticas da OCL ser uma linguagem tipada.
Toda informao manipulada, nas expresses construdas em
OCL, pertence a um dos seguintes grupos de variveis:
Tipos Bsicos: Real, Integer, String e Boolean;
Colees: Set (elementos nicos e no ordenados), Bag
(elementos duplicados e no ordenados), Sequence (uma bag
ordenada), e OrderedSet (um set ordenado);
Tipos dos modelos UML: todas as classes, atributos, interfaces, associaes, consultas e enumeraes introduzidas por
um diagrama de classes.
Operaes sobre Tipos Bsicos
Real: +, -, *, /, >=, <=, >, <, abs(), floor(), round (), max(r:Real),
min(r: Real)
Integer: +, -, *, /, >=, <=, >, <, abs(), div(i: Integer), mod (i:Integer),
max(r:Integer), min(r: Integer)
String: size(), concat(s: String), subString(lower: Integer,
upper: Integer), toInteger(), toReal()
Boolean: or(b:Boolean), xor(b:Boolean), and(b:Boolean),
implies(b: Boolean)
Operaes sobre Colees
Para realizar uma operao sobre uma coleo utilizamos a
seguinte sintaxe bsica:
[tipo de dado] -> [operao]
16
Exemplo de Uso 1
PROJETO
17
(R11)
(R12)
(R13)
context LoyaltyProgram
inv: serviceLevel->size() = 2
(R14)
(R15)
context Customer
inv: program->size() = cards->select
(valid = true) ->size()
(R16)
context LoyaltyProgram
(R17)
inv: partners.deliveredServices>forAll(pointsEarned = 0 and pointsBurned = 0)
implies membership.loyaltyAccount->isEmpty()
context ProgramPartner
(R18)
inv: numberofCustomers = loyaltyProgram.
customer->asSet->size()
- - a pr-definida operao asSet da OCL
transforma uma bag em um
- - set, eliminando os clientes repetidos.
Note que o requisito R18: O numero de clientes de um parceiro a soma dos participantes de um ou mais programas daquele parceiro permite uma interpretao ambgua, pois pode
ser tanto a quantidade total de participaes nos programas
ou a quantidade de pessoas distintas. Com a OCL possvel
esclarecer requisitos ambguos (no caso, o analista preferiu
optar pela segunda opo) e coloc-los em uma notao matemtica precisa, sem margem para varias interpretaes, mas
de fcil entendimento. Nesse exemplo usamos a OCL apenas
para relatar os invariantes do sistema, mas poderamos us-la
tambm para delimitar as pr-condies e as ps-condies.
Faremos isso a seguir.
Exemplo de Uso 2
O segundo exemplo baseado em um fictcio sistema bancrio. Os clientes (Customer) possuem uma conta (Account), que
pode ser do tipo corrente (current) ou poupana (deposit). Toda
conta do tipo corrente possui um limite de cheque especial
(odLimit). Os clientes podem sacar, depositar (em cheque (check) ou dinheiro (cash)) e solicitar emprstimos (Credit) usando
bens (Security) como garantia. Vejamos a seguir o diagrama
de classes (Figura 2) desse sistema e mais detalhes sobre a
especificao de requisitos (Quadro 2).
A partir desses requisitos e visualizando o diagrama de
classes, podemos criar as seguintes expresses OCL:
context Customer
inv: age >= 18
(R1)
context Account
inv: self.balance >= -self.odLimit
(R2)
context LoyaltyProgram
(R19)
inv serviceLevel.name ->first() = Silver
- - o modelo define que a associao entre
LoyaltyProgram e ServiceLeve
- - ordenada, sendo silver o primeiro elemento.
context Account
inv: self.holder.getAge() < 25 implies
odLimit = 0
(R3)
context LoyaltyProgram
(R20)
inv: partners.deliveredServices.transaction->
select(Burning)-> collect (points)->sum( )<= 10000
context Account
inv: self.accountType = #deposit implies
self.odLimit = 0
(R4)
18
self.
PROJETO
and
(R32)
(R33)
(R57)
.
R1: Todo cliente deve ser maior de idade
R2: O limite de cheque especial nunca pode ser excedido
R3: Clientes menores de 25 anos no possuem cheque especial
R4: Contas do tipo Poupana no possuem cheque especial
.
R26: Depsitos nulos e no realizados pelo titular so invlidos
R27: Se o depsito for em dinheiro, o saldo deve ser incrementado. Se o depsito for em cheque, o
valor ficar bloqueado em uma conta de saldos bloqueados at o cheque ser compensado.
R28: Quando um cheque compensado, o seu valor incorporado ao saldo e a conta de saldos
bloqueados atualizada.
.
R32: No so permitidos saques nulos, que excedam o limite de cheque especial e no realizados
pelo titular da conta.
R33: O saldo deve ser atualizado aps um saque.
.
R57: O saldo e o saldo total somente podem ser vistos pelo titular da conta.
R58: O saldo total calculado pela soma do saldo com o limite do cheque especial
.
R62: Um cliente s pode pedir um emprstimo se possuir conta do tipo corrente e com cheque
especial de pelo menos 10000
R63: Um cliente s pode pedir um emprstimo se a soma de todos os seus emprstimos no
exceder em 50% do seu salrio
R64: Um cliente s pode pedir um emprstimo se a soma dos valores de todos os bens for pelo
menos 20% maior que o valor dos emprstimos
R65: Depois de pagar a mensalidade de todos os emprstimos, o saldo da conta deve ser positivo
R66: O emprstimo mnimo de 10000 e o mximo de 1000000
R67: Os bens dados como garantia devem ser obrigatoriamente do cliente
.
R74: Ser possvel consultar quais os clientes com saldo total maior que 100000.
.
Quadro 2. Especificao de Requisitos
19
20
Links
OMG OCL Specification Site
http://www.omg.org/docs/formal/06-05-01.pdf
Artigo Introduction to OCL, de Jos Warmer e Anneke Kleppe
http://www.klasse.nl/ocl/ocl-introduction.html
Applying Design by Contract, de Bertrand Meyer
http://www.cs.ucl.ac.uk/students/A.Masalskis/files/contract.pdf
Artigo Introduction to OCL in Together, de Dan Massey
http://conferences.codegear.com/article/32200
Feedback
eu
sobre e
s
Mais uma vez podemos ver que a OCL transforma os requisitos (descritos em linguagem natural ambgua, como o requisito
R32) em notao matemtica precisa e de fcil entendimento.
Alm disso, durante essa transformao, o analista pode
lembrar de pontos importantes esquecidos no documento de
especificao, como verificar se a conta de saldos bloqueados
Concluso
D
s
edio
ta
quic k update
17
22
O Diagrama de Sequncias um
Diagrama de Interao
PROJETO
Integrando os modelos
23
Listagem 5. UC Votar
24
Ao se modelar um diagrama de sequncias, em geral elaboramos ao menos um diagrama para cada caso de uso. Comearemos com o UC Habilitar Eleitor, por ser o mais simples
para nossa primeira explicao.
Primeiro desenhamos o mesmo ator do caso de uso (Mesrio), no canto superior esquerdo. No topo desenhamos, em
seguida, um objeto para representar a interface do sistema
e um objeto para cada classe envolvida nesse caso de uso.
Nesse caso, as classes Eleicao e Eleitor. A partir de cada objeto,
incluindo o ator, desenharemos uma linha tracejada que a
linha de vida desse objeto.
A linha de vida indica o tempo de vida desse objeto. Sendo
colocada desde o incio do diagrama como se esse objeto
fosse criado desde o incio da rotina. Terminando no final do
diagrama, indica que o objeto destrudo quando a rotina
encerrada. A maioria dos diagramas de sequncias desenhada dessa maneira. Contudo, se for necessrio representar que
um objeto criado ou destrudo durante a execuo da rotina
possvel faz-lo. Veremos num tpico mais frente. Veja a
representao grfica desse primeiro diagrama na Figura 3.
PROJETO
Os objetos se diferenciam das classes por se apresentarem sublinhados. E podem ser desenhados com trs notaes diferentes:
nome do objeto : nome da classe
ou
: nome da classe
ou
nome do objeto
A primeira notao traz primeiro um nome aleatrio de objeto
que ser til se precisarmos usar esse objeto como parmetro
de um mtodo.
A segunda notao indica um objeto annimo, ou seja,
desconhecemos o nome do objeto por ele ser irrelevante, mas
conhecemos a classe da qual ele instanciado.
A terceira notao a menos indicada, pois desconhecemos o
nome da classe. Nesse caso o nome do objeto deve ser claro o suficiente para que o leitor identifique de qual classe ele foi instanciado.
A partir da estrutura inicial, j podemos desenhar as mensagens, que partem sempre de uma origem para o objeto destino
que contm o servio que se est querendo chamar.
Assim comearamos pelo item 1 do caso de uso. Contudo, como
temos uma pr-condio, essa pr-condio pode representar
apenas um parmetro que a rotina receba ao ser iniciada, ou uma
verificao que precisa ser verdadeira, para que a rotina tenha
incio. Como, nesse caso, representa uma verificao, a primeira
mensagem de nosso diagrama de sequncias ser essa checagem.
A pr-condio determina que exista uma eleio cuja data
igual data vigente e cujo incio da votao j tenha sido
preenchido. Isso significa que precisamos de um mtodo na
classe Eleicao que possa retornar se existe ou no uma eleio
com a data atual. E depois, se existir, basta verificar se o atributo inicioVotacao est preenchido. Essa ltima verificao reside
no processamento que se inicia com a mensagem que parte da
interface. Se essa verificao for OK, a rotina ter incio.
O retngulo que surge a partir de uma mensagem disparada
chamado de caixa de ativao. Ele dura o tempo de processamento
daquela mensagem, tanto no objeto origem quanto no objeto destino.
O mtodo criado na classe Eleicao o buscaEleicao, passando
como parmetro a dataAtual, que ser usada para comparao
com as datas cadastradas das eleies.
Com a primeira verificao concluda, o ator est liberado para
iniciar a interao com o sistema. Olhando o caso de uso, vemos
no item 1 que o usurio informa a matrcula do eleitor. Essa representao vista no diagrama de sequncias com a mensagem
partindo do ator (com o contedo matriculaEleitor) para o objeto
interface. A partir dessa mensagem, no caso de uso, tem-se a ao
do sistema buscando esse eleitor e exibindo seus dados, caso
encontre. A busca do eleitor requer um novo mtodo, nesse caso,
o mtodo buscaEleitor na classe Eleitor. Como argumento, esse
mtodo receber a informao passada pelo ator, a matriculaEleitor.
25
Se podemos considerar um local no qual houve boas alteraes na verso 2.0 da UML, esse local o Diagrama de
Sequncias. A fim de obtermos maior legibilidade na separao das funcionalidades, de forma a permitir agrupamentos,
condies relacionadas a um grupo de mensagens e no s a
uma mensagem, trechos opcionais, etc., a UML disponibilizou
os operadores e as ocorrncias de interao.
Vejamos na prtica como isso funciona modelando o Diagrama de Sequncias do UC Manter Candidatos.
Comeamos desenhando o ator Coordenadoria de Eleies.
Em seguida, o objeto da interface e os objetos para as classes
Eleicao e Candidato.
Analisando o caso de uso, vemos que a primeira providncia a tomar garantir a pr-condio. Ento, traaremos uma
mensagem da interface (que representa o sistema) para a classe
Eleicao, a fim de obter com o mtodo existeEleicaoCadastrada() a
garantia de que a pr-condio ser cumprida.
Com a resposta positiva, o sistema continua com o controle,
pois dever trazer a lista de eleies cadastradas, que ainda
no tenham ocorrido a votao. Nesse caso, criaremos o
mtodo buscaEleicoesNaoRealizadas() da classe Eleicao. Repare
que o retorno dessa lista no traz apenas dados da eleio,
mas dados do candidato tambm. Isso significa dizer que o
mtodo buscaEleicoesNaoRealizadas() deve ser responsvel por
obter, para cada eleio encontrada, os candidatos que j se
encontram cadastrados. Essa dependncia na busca tpica
do relacionamento de agregao por composio que existe
entre as classes Eleicao e Candidato.
Ento, dentro do processamento do mtodo buscaEleicoesNaoRealizadas() feita uma chamada ao objeto Candidato,
chamando o mtodo buscaCandidato() que far uma busca
simples dos atributos desse objeto. S que esse mtodo no ser
chamado uma nica vez, e, sim, tantas vezes quantas forem a
quantidade de candidatos cadastrados. Por isso, aparece sobre
a mensagem o smbolo * para indicar iterao (repetio) e
a condio, colocada entre colchetes, para indicar a condio
de parada.
Veja que s depois que essa busca feita, o controle entregue, pela primeira vez ao ator. Ento ele faz a seleo de uma
das eleies exibidas. Veja que todo esse processo de exibio
fica dentro da caixa de ativao, ou seja, no relevante mostrar
no Diagrama de Seqncias, pois o detalhamento desse tipo
de procedimento j est no caso de uso.
A partir da seleo da eleio, o controle volta ao sistema que
habilita as opes. Isso tambm no representado explicitamente no diagrama de sequncias, ficando subentendido na
caixa de processamento. A quebra da caixa de ativao indica
que o controle volta para o usurio, para que o use no tempo
desejado. Na nova interveno do ator, h a passagem de uma
mensagem com a seleo da sua opo.
Repare que, a partir desse ponto, temos blocos diferentes
de processamento. Temos um bloco reservado incluso e
alterao, e outro excluso. Os blocos so controlados pelo
26
PROJETO
Operador ref: permite referenciar como ocorrncia de interao uma outra interao que representa uma poro comum. O
uso do operador ref permite que trechos de um diagrama de sequncia sejam isolados em pequenos frames e chamados apenas pelo
nome, evitando a duplicidade de modelagem. No s a modelagem
evitada, como a manuteno simplificada em um nico lugar.
Veja exemplo nas Figuras 9 e 10 com o uso desse operador ref.
Para entender esse exemplo, imagine um sistema de controle
acadmico, no qual na maioria das funes necessrio que
se faa uma busca do aluno, por meio de sua matrcula.
No nosso exemplo, esse trecho de busca (Figura 9) representado
apenas por uma mensagem da interface para a classe aluno, com
a chamada do mtodo busca, e depois a mensagem de retorno.
Mas esse trecho poderia ser mais complexo, com chamadas a
mais de uma classe, a mais de um mtodo. Imagine esse trecho
sendo repetido em vrios diagramas de seqncia! Alm do
esforo em se reproduzir um mesmo trecho, em caso de manuteno, teramos que procurar todos os diagramas para alterao.
No momento em que extramos esse trecho de interao que se
repete em vrios lugares, e o colocamos num nico lugar, ganhamos reaproveitamento de modelo e agilidade de manuteno.
Aps o trecho ser separado, basta que faamos a sua chamada
no diagrama de seqncias que precisar utiliz-lo, por meio
da ocorrncia de interao, com o operador ref. Em vez de se
desenhar o trecho, desenha-se apenas um frame, colocando
ao centro o nome da ocorrncia de interao (Figura 10).
Tambm possvel adicionarmos parmetros de entrada e
sada a essas ocorrncias de interao. O default o parmetro
de entrada, em que nada preciso acrescentar. Para o parmetro de sada, acrescenta-se a palavra-chave out. Veja exemplo:
sd BuscarAlunoMaiorMedia (objDisciplina, out media):
objAluno
27
Concluso
28
D
s
Feedback
eu
edio
ta
MELO, Ana Cristina. Desenvolvendo aplicaes com UML 2.0: do conceitual implementao.
Rio de Janeiro: Brasport, 2004.
sobre e
s
PROJETO
29
30
Planejamento de Testes
31
Assim como em todas as atividades de um projeto, as atividades de testes tambm podem ser impactadas por problemas que
chegam a inviabilizar sua realizao. Por isso, importante que
a equipe identifique riscos para minimizar o impacto desses
incidentes no projeto.
Exemplos do que podem atrapalhar as atividades de testes
so: atraso na entrega do cdigo, pela equipe de desenvolvimento, falta de ferramentas e ambiente adequado, imaturidade
da equipe de testes, e muito mais. Tudo deve ser registrado
no plano de testes e algum direcionamento deve ser dado a
esses problemas.
32
Execuo de testes
33
Anlise de Resultados
Objetivo: Avaliar os resultados da execuo dos testes e analisar se tudo est de acordo com o que se esperava do produto.
Uma vez que o ciclo de teste foi realizado e os defeitos encontrados foram registrados, um relatrio de defeitos deve ser
construdo para relatar tudo o que aconteceu. Devem constar
nesse relatrio quais foram os casos de teste que entraram no
ciclo, qual o resultado de cada um, quais defeitos foram abertos
e a que caso de teste eles esto relacionados, qual a verso do
software analisada, quem foram os testadores envolvidos nessa
execuo. Outras informaes tambm podem ser definidas
pela equipe do projeto.
Neste momento deve-se analisar se o produto est de acordo
com o critrio de aceitao definido no incio do projeto, mas
no podemos concluir muito sobre a qualidade do produto
baseando apenas nos resultados dos casos de teste. A equipe
deve se basear em todo o processo utilizado em testes para
chegar a uma concluso mais confivel. Um processo de qualidade d mais confiana a equipe de testes na hora de opinar
sobre o estado da aplicao.
A fase de anlise deve ser um trabalho completo, analisando
o produto e o processo. E o resultado dessa anlise deve dar
subsdios que ajudem em vrias decises, tais como:
1. Decidir se o produto est pronto para ser lanado no
mercado, ainda que possua alguns defeitos;
2. Corrigir defeitos crticos antes de liberar o produto;
3. Executar mais testes, inclusive elaborando novos cenrios;
4. Melhorar a escrita e / ou cobertura dos casos de teste.
34
Concluses
Agradecimento
Referncias
www.devmedia.com.br/esmag/feedback
sobre e
s
Feedback
eu
edio
ta
D
s
Test Process Improvement: A step-by-step guide to structured testing. Tim Koomen, M. Pol
(1999).
Use of relative code churn measures to predict system defect density. Nachiappan Naggapan,
Tomas Ball (2005).
Software Testing Foundations: A Study Guide for the Certified Tester Exam. Andreas Spillner,
Tilo Linz, Hans Schaefer. (2007).
Introduo a Testes de Software. Arilo Dias-Neto. (2008). Artigo publicado na edio 1 da
revista Engenharia de Software.
35
S
Daniel Scaldaferri Lages
dlages@gmail.com
36
Engenharia de Software Magazine - Manuteno: Desafios para os Testes numa Fbrica de Software
do tempo. Chega um determinado momento que o sisteminha torna-se um sistemo, com informaes importantes
sobre aquela rea de negcio. Ento decide-se que o servidor,
normalmente localizado debaixo da mesa do funcionrio, deve
ser passado para a rea de TI da empresa, que imediatamente
repassa para a fbrica. Sem documentao, sem padronizao,
sem boas prticas de programao etc. O Frankstein est ali,
pronto para ser entendido e mantido.
A viso sobre a manuteno de software no algo positivo.
Esse olhar negativo dos envolvidos possui vrios motivos
comumente vividos pelas Fbricas de Software que oferecem
esse tipo de servio. A manuteno exige a anlise, na maioria
da vezes, de cdigos mal escritos, sem comentrios, despadronizados, ou seja, com baixa manutenibilidade. Mas isso que a
torna uma tarefa desafiadora! Em um curto espao de tempo
(pois geralmente o prazo para manuteno bem mais curto
em relao ao desenvolvimento de novos sistemas, devido
urgncia), a capacidade analtica e investigativa deve entrar em
ao com rapidez e qualidade para satisfazer as necessidades
do cliente. Isso serve tanto para desenvolvedores quanto para
testadores. Mesmo quando o cdigo possui uma boa qualidade,
no bem visto, pois foi criado por outras pessoas, que possuem diferentes formas de pensar e codificar. natural do ser
humano querer fazer do seu jeito, da maneira como aprendeu
e sente maior confiana.
Este artigo, baseado na experincia do autor, relata brevemente as principais dificuldades encontradas na manuteno de um software na perspectiva dos testes, levando em
considerao a qualidade e agilidade a que uma Fbrica de
Software se propre. Para cada problema so sugeridas aes
para minimizar essas dificuldades.
Fbrica de Software
Para que seja possvel entender os problemas relacionados
aos testes de software em manutenes, deve-se conhecer o
ambiente onde os testes sero realizados. Segundo [HERBSLEB], as Fbricas de Software so definidas como organizaes
que fornecem servios de desenvolvimento de sistemas com
qualidade, a baixo custo e de forma rpida. Utilizando um
processo de desenvolvimento de software bem definido e com
apoio de tecnologias de mercado, alm de reconhecer e lidar
com oportunidades de melhoria do seu processo.
Atravs do conceito de [HERBSLEB], fica clara a imensa
expectativa dos clientes quanto ao retorno na contratao de
uma Fbrica de Software, principalmente quanto agilidade e
qualidade dos servios. Desta forma, para satisfazer o cliente,
o processo de manuteno deve ser certeiro, e estar preparado
para enfrentar sistemas Frankstein.
As Fbricas de Software no desenvolvem apenas novos
sistemas. Muitas delas, pelo contrrio, realizam manutenes
como sua atividade principal. Alteram sistemas desenvolvidos
por elas mesmas, mas tambm sistemas legados. O primeiro
grupo apresenta certas vantagens para fbrica em relao ao
segundo, pois como ela desenvolveu, teoricamente possui o conhecimento de todo o sistema. Conhecimento este presente na
Manuteno do Software
A vida de um software no termina aps a sua implantao.
Ele ainda viver durante muito tempo. Ser utilizado por anos,
e com certeza, ter muitas atualizaes, gerando novas verses
do sistema. De acordo com [IEEE], a manuteno caracterizada pela modificao do software j entregue ao cliente, ou
seja, a manuteno qualquer alterao no software aps sua
entrada em produo.
Conforme [SPILLNER, LINZ e SCHAEFER], o propsito da
manuteno de software diferente da manuteno de produtos industrializados, pois a manuteno realizada no feita
para reparar danos causados pelo tempo de uso do software.
Defeitos no so introduzidos pelo tempo e nem pela carga
de utilizao. Os defeitos encontrados j existiam, antes do
software entrar em produo. Por algum motivo, no foram
detectados em fases anteriores. Mas a manuteno no se
caracteriza apenas por correes. De acordo com [LIENTZ],
existem trs tipos principais de manutenes em softwares,
Adaptativas, Corretivas e Evolutivas (Perfectivas):
Adaptativas: so alteraes que visam adaptar o software a
uma nova realidade ou novo ambiente externo, normalmente
imposto. Um exemplo claro seriam mudanas de leis ou regras,
definidas pelo governo e/ou rgos reguladores;
Corretivas: como o prprio nome diz, servem para eliminar
as falhas encontradas em produo. bastante comum, principalmente quando o processo de desenvolvimento no se
preocupou de maneira adequada com a qualidade do software;
Evolutivas: so alteraes que visam agregar novas funcionalidades e melhorias para os usurios que as solicitaram. No
se deve confundir esse tipo de manuteno com as entregas
programadas de um processo de desenvolvimento interativo.
A integrao com outros sistemas tambm considerada um
tipo de evoluo.
As migraes para novas tecnologias, sejam de hardware ou
software, podem causar dvidas quanto classificao do tipo
de manuteno. Se a tecnologia foi imposta, a manuteno
classificada como adaptativa. Se a tecnologia uma soluo de
37
38
Engenharia de Software Magazine - Manuteno: Desafios para os Testes numa Fbrica de Software
39
Ambientes de Testes
A quantidade de sistemas e a diversificao das tecnologias utilizadas tambm um desafio para as fbricas se a questo do ambiente
de testes no for muito bem planejada. Essa diversidade, aliada
frequncia de manuteno, pode tornar-se um gargalo no momento
da execuo dos testes. Manter o ambiente de um sistema com baixa
frequncia de manuteno um desperdcio de infra-estrutura.
caro manter um servidor preparado com um ambiente que ser
pouco utilizado. Ao mesmo tempo, montar um ambiente para os
testes no uma tarefa rpida que pode ser deixada para o ltimo
momento. Planejar a preparao do ambiente antes do momento
da execuo dos testes um fator importante para evitar atrasos.
Solicitar o dump da base de dados para o cliente um procedimento comum. Mas, comum tambm, pode ser a demora do
retorno a essa solicitao. Algumas vezes o cliente no atende
ao pedido, pois os dados so considerados confidenciais. Existem boas ferramentas para gerao da massa de dados com o
custo acessvel. Com esse tipo de ferramenta possvel ganhar
agilidade na gerao da massa de dados, evitando solicitaes
aos clientes. Apesar disso, a massa de dados reais extradas
do ambiente de produo bem mais rica e, portanto, mais
benfica aos testes. Os scripts de gerao da massa de dados podem ser armazenados e reutilizados, ganhando produtividade.
Esses artefatos, logicamente, devem fazer parte da baseline dos
artefatos, juntamente com os planos e casos de testes, e devem
ser administrados atravs de ferramentas de controle de verso.
Falta de Documentao
A falta de documentao um problema que afeta no s as
atividades de testes, mas todas as demais tarefas de desenvolvimento, como exemplo, a implementao. A ferramenta Rational
Requisite Pro bastante interessante no caso de manutenes.
Ela funciona como um repositrio de requisitos e casos de uso.
Ao longo das manutenes, esses itens sofrem alteraes. Atravs da ferramenta, a tarefa de encontrar e realizar as alteraes
torna-se bem produtiva. Com a utilizao do SoDA, ferramenta
responsvel por extrair os dados do Requisite Pro, os documentos so gerados seguindo um template padro, que pode
ser customizvel, agregando qualidade s documentaes.
De forma semelhante ao uso do Testlink para casos de testes, no
mdio e longo prazo, o sistema sem documentao, aps o povoamento do Requisito Pro com seus casos de uso, possuir informaes
suficientes para atender o cliente com agilidade. Para as atividades
de testes a utilizao dessa ferramenta tambm muito bem vinda,
visto que as informaes do Requisite Pro que servem de base para
a elaborao dos casos de testes estaro padronizadas. Alm disso,
fica simples rastrear casos de testes para os casos de usos e requisitos.
conseguir cumprir o prazo de entrega. O tempo ganho ignorando as atividades de testes pode se reverter em grandes problemas aps a alterao realizada entrar em produo, tornando o
custo da manuteno bem maior, conforme [SPILLNER, LINZ e
SCHAEFER]. Este um princpio bsico dos testes de software.
A centralizao e o reuso dos artefatos so as palavras-chaves
para ganhar agilidade nas atividades de testes dentro da manuteno de um sistema, assim como manter o conhecimento
dentro da Fbrica de Software. Foram apresentados exemplos
de ferramentas, como o Teslink e o Requisito Pro, capazes de
centralizar e suportar o reuso dos artefatos de testes e de especificao, respectivamente, tornando a manuteno mais gil.
Este artigo apresentou algumas questes que dificultam as atividades da equipe de testes, principalmente em relao execuo
dos testes. As dicas e solues propostas esto longe de resolverem
os problemas em um curto espao de tempo, mas so aes que iro
trazer, no mdio e longo prazo, agilidade aos servios. Aps este
tempo, a fbrica estar bem mais preparada, alcanando a capacidade necessria para atender s expectativas dos seus clientes.
Links
Testlink: www.teamst.org/
Mantis: www.mantisbt.org/
Bugzilla: www.bugzilla.org/
CVS: www.nongnu.org/cvs/
Subversion: subversion.tigris.org/
Requisite Pro: www-01.ibm.com/software/awdtools/reqpro/
SoDA: www-01.ibm.com/software/awdtools/soda/index.html
Referencias
FEWSTER, Mark, Common Mistakes in Test Automation. Grove Consultants, Llandeilo UK, 2001.
HERBSLEB, J. D., Grinter, R. E. (1999). Splitting the Organization and Integrating the Code:
Conways Law Revisited. In: Proceedings of ICSE. Los Angeles: IEEECSP, 1999. p. 8595.
IEEE (1998) Std 1219 IEEE Standard for Software Maintenance Institute of Electrical and
Eletronic Engineers, New York, NY, USA.
LIENTZ, B.P; Swanson, E.B. (1980) Software Maintenance Management, Reading, MA,
Addison Wesley.
PAULA FILHO, Wilson de Pdua. Engenharia de Software: fundamentos, mtodos e padres. 2a
ed. Rio de Janeiro: LTC - Livros Tcnicos Cientficos. 2003.
PEZZ, Mauro; YOUNG, Michal, Teste e Anlise de Software. Edio Traduzida. Porto Alegre:
Bookman 2008.
SERRA, Ana Paula Gonalves. Reengenharia de Software Uma viso Geral. Engenharia de
Software Magazine, Nmero 11, 2009.
SPILLNER, Andreas; LINZ, Tilo; SCHAEFER, Hans; Software Testing Foundations A Study Guide
for the Certified Tester Exam. Rio de Janeiro: Fundao Getlio Vargas, 2006.
WARD, M.P; BENNETT, K.H. Formal Methods for Legacy Systems. Journal of Software
Maintenance: Research and Practice, v.7 n.3, 1995
Engenharia de Software Magazine - Manuteno: Desafios para os Testes numa Fbrica de Software
Feedback
eu
edio
ta
40
sobre e
s
D
s
Concluso
41
Plano de Teste
Um MapaEssencial para Teste de Software
U
Antonio Mendes da Silva Filho
antoniom.silvafilho@gmail.com
42
Teste de Software
Teste de software uma das atividades do processo de desenvolvimento de sistema de software que visa executar um programa
de modo sistemtico com o objetivo de encontrar falhas. Perceba
que isto requer verificao e validao de software. Nesse sentido,
definir quando as atividades de verificao e validao iniciam
e terminam, como os atributos de qualidade sero avaliados e
como os releases do software sero controlados, so questes
que devem ser acompanhadas ao longo do processo de software.
Vale ressaltar que teste no deve ser a ltima atividade do
processo de desenvolvimento de software. Ela ocorre durante
todo o processo, como exemplificado na viso geral do processo
RUP (Rational Unified Process) mostrado na Figura 1.
Plano de Teste
O plano de teste um dos documentos produzidos na conduo de um projeto. Ele funciona como:
Um integrador entre diversas atividades de testes no projeto;
Mecanismo de comunicao para os stakeholders (i.e. a equipe
de testes e outros interessados);
Guia para execuo e controle das atividades de testes.
O plano de teste, que pode ser elaborado pelo gerente de
projeto ou gerente de testes, visa planejar as atividades a serem
realizadas, definir os mtodos a serem empregados, planejar
a capacidade necessria, estabelecer mtricas e formas de
acompanhamento do processo. Nesse sentido, deve conter:
Introduo com identificao do projeto (definies, abreviaes,
referncias), definio de escopo e objetivos;
Conjunto de requisitos a serem testados;
Tipos de testes a serem realizados e ferramentas utilizadas;
Recursos utilizados nos testes;
Cronograma de atividades (e definio de marcos de projeto).
Em outras palavras, um plano de teste deve definir:
1. Os itens a serem testados: o escopo e objetivos do plano
devem ser estabelecidos no incio do projeto.
2. Atividades e recursos a serem empregados: as estratgias
de testes e recursos utilizados devem ser definidos, bem como toda
e qualquer restrio imposta sobre as atividades e/ou recursos.
3. Os tipos de testes a serem realizados e ferramentas empregadas:
os tipos de testes e a ordem cronolgica de sua ocorrncia
so estabelecidos no plano.
4. Critrios para avaliar os resultados obtidos: mtricas devem
ser definidas para acompanhar os resultados alcanados.
Perceba que o planejamento necessrio a fim de antecipar
o que pode ocorrer e, portanto, provisionar os recursos necessrios nos momentos adequados. Isto significa coordenar
o processo de teste de modo a perseguir a meta de qualidade
do produto (sistema de software).
43
Itens de um
Plano de Teste
Contedo
1. Introduo
2. Requisitos a
serem testados
3. Estratgias e
ferramentas de
teste
4. Equipe e infraestrutura
1. Introduo
Este documento apresenta o planejamento das atividades de testes do sistema Exemplo o
qual ser utilizado como base para as atividades de acompanhamento, reviso, verificao e
validao do projeto, desde seu incio at sua concluso, a fim de garantir a anlise comparativa
do resultado real versus planejado. Desta forma, aes corretivas e preventivas podero ser
tomadas, sempre que resultados reais desviarem significativamente do planejado.
1.1 Termos e acrnimos
Esta seo explica o conceito de um subconjunto de termos importantes que sero mencionados
no decorrer deste documento. Estes termos so descritos na Tabela 2, estando apresentados
por ordem alfabtica.
Termo
5. Cronograma de
atividades
Descrio
Artefato
Milestone
NA
No Aplicvel
SQA
44
Note que a Tabela 2 identifica um subconjunto de termos que pode caracterizar um projeto.
Todo e qualquer termo, conveno adotada ou abreviaes deveriam ser apresentadas nessa
tabela a fim de comunicar s partes envolvidas e interessadas (i.e. os stakeholders) o seu
significado. Isto visa prover as denominaes corretas empregadas no documento.
1.2 Objetivos
Esta seo contm o conjunto de objetivos que orientam as atividades de testes do sistema a ser
desenvolvido. Esse documento do Plano de Testes do sistema Exemplo possui os seguintes objetivos:
Levantar as informaes de projeto pertinentes e os componentes de software a serem testados.
Definir o conjunto de requisitos a serem testados (alto nvel).
Definir e detalhar as estratgias de teste a serem utilizadas.
Definir os recursos necessrios e obter uma estimativa dos esforos das atividades de teste.
Identificar os artefatos resultantes das atividades de testes.
1.3 Sistema Exemplo
Este documento especifica o plano de teste de um sistema que deve prover notcias e contedo
online, denominado de Sistema Exemplo, a ser desenvolvido para a Empresa XYZ. Seu propsito
prover notcias sobre os mais variados contedos, permitindo acesso integral apenas a usurios
leitores cadastrados no sistema.
(Nota que o propsito desse sistema, usado aqui apenas com fins ilustrativos, similar ao de um
sistema como o de portais de jornais e revistas e outros provedores de contedo que permitem o
acesso ao contedo apenas a clientes devidamente cadastrados no sistema).
1.4 Escopo
Este projeto aborda um sistema Exemplo de informao online, com foco em prover contedo
online. Este sistema Exemplo necessitar fazer testes unitrios, de integrao e de sistema. Os
Quadro 1. Introduo
testes unitrios e de integrao visam tratar a qualidade funcional, a interface grfica e controle
de acesso. Por outro lado, os testes de sistema trataro as questes de desempenho.
Para a execuo dos testes sero utilizadas mquinas o mais idnticas possvel, em termos de
hardware, quelas que sero implantadas no cliente (provedor de contedo online, como um
portal de notcias), a fim de garantir a previsibilidade de desempenho e compatibilidade.
Outros testes como os testes de stress, de volume e de falha/recuperao no sero realizados
por se considerar que o ambiente de implantao do sistema nao est sujeito a esse tipo de
ocorrncia, as quais podem ser facilmente previstas e tratadas pelo cliente.
Documento
Especificao de Requisitos
Sim
Disponvel
No
Sim
No
Plano de Projeto
Sim
No
Sim
No
Modelo de Anlise
Sim
No
Sim
No
Modelo de Projeto
Sim
No
Sim No
Documento de Arquitetura
Sim No
Sim No
Prottipo
Sim No
Sim No
Objetivo do Teste:
Tcnica:
Revisado
Manual do Usurio
Sim No
Sim No
Lista de Riscos
Sim
Sim
No
Estratgias
As estratgias compreendem um conjunto de testes empregados com o objetivo de verificar
aspectos especficos do sistema em desenvolvimento (abaixo, apresenta-se um extrato de
possveis testes que podem ser adotados).
No
Consideraes Especiais:
Tabela 3. Teste Funcional
Objetivo do Teste:
Tcnica:
Critrio de Finalizao:
Consideraes Especiais:
Ferramenta
Gerenciamento de Teste
Rational RequisitePro
Projeto de Teste
Rational Rose
Gerenciamento de Projeto
Microsoft Project
Ferramentas do SGBD
Tabela 5. Ferramentas
Quadro 3. Estratgias e ferramentas de teste
45
4. Equipe e infra-estrutura
Esta seo apresenta a equipe de testes, identificando-se os papis e responsabilidades. Alm disso,
a infra-estrutura existente listada.
6. Documentao complementar
Esta seo apresenta documentao de apoio, referenciando um conjunto de outros documentos
que complementam e suportam as informaes contidas no plano de teste.
Equipe de teste
A Tabela 6 descreve um conjunto de papis e respectivas responsabilidades na equipe de teste.
Papel
Gerente do Projeto
Responsabilidades
Fornece orientao tcnica
Adquire recursos necessrios
Elabora relatrios de gerenciamento
Data de Incio
Data de Trmino
Planejar Teste
03/06/09
05/06/09
Projetar Teste
08/06/09
10/06/09
Implementar Teste
12/06/09
17/06/09
Executar Teste
17/06/09
20/06/09
Avaliar Teste
22/06/09
23/06/09
Tabela 7. Cronograma
Concluso
Um projeto compreende um conjunto de atividades interrelacionadas com datas de incio e fim, alm de metas especficas. Dentre essas atividades, uma essencial a de teste
cujo objetivo encontrar sistematicamente falhas. Para tanto,
faz-se necessrio elaborar um plano de teste que servir como
um guia das atividades de teste que compreende o projeto,
implementao, execuo e avaliao de testes.
Trata-se de um documento que o gerente de projeto usa com objetivo de coordenar as atividades de teste. Voc deve entender que
a visibilidade do processo (de desenvolvimento e, especificamente,
de teste) essencial. Tal visibilidade permite monitorar a qualidade
obtida em cada etapa e programar cada atividade a ser executada.
Esse processo de acompanhamento contnuo das atividades de
teste de fundamental importncia para obteno dos resultados
em termos de qualidade, custo e tempo. Portanto, sem esse mapa,
torna-se muito difcil realizar com sucesso as atividades de teste.
Links
Introduo ao Teste (baseado no RUP)
http://www.wthreex.com/rup/portugues/index.htm
Teste de software na Wikipedia
http://pt.wikipedia.org/wiki/Teste_de_software
Processo de teste de software (Datasus)
http://pts.datasus.gov.br
Risk and Requirements -based Testing artigo de James Bach, IEEE Computer
http://www.satisfice.com/articles/requirements_based_testing.pdf
Software Testing Brain
http://www.testingbrain.com/
Software Errors Cost U.S. Economy $59.5 Billion Annually
http://www.nist.gov/public_affairs/releases/n02-10.htm
Feedback
eu
edio
ta
46
sobre e
s
Perceba, por exemplo, que a atividade de projeto, implementao e execuo de teste poderia ser decomposta em subsistemas, caso voc estiver tratando de um sistema de mdio a
grande porte.
A seo apresentada no Quadro 6 trata de informaes que
so detalhadas em outros documentos.
D
s
Quadro 5. Cronograma
AMIGO
Existem coisas
que no
conseguimos
ficar sem!
Renove J!
www.devmedia.com.br/renovacao
Para mais informaes:
www.devmedia.com.br/central
47
Alexandre Scaico
alexandre@ccae.ufpb.br
48
DESENVOLVIMENTO
Este modelo de fabricao permitiu que mais clientes fossem atendidos, mas teve que ser adaptado para permitir a
diferenciao dos produtos, j que at ento, todos os carros
tinham a mesma aparncia e serviam a um determinado
propsito. Era preciso adequar o modelo de fabricao para
que fosse possvel oferecer produtos diferenciados com a
mesma rapidez de produo. O conceito de customizao
em massa (Figura 1) representou a possibilidade de atender
a produo de bens em larga escala com base em perfis de
consumidores. As fbricas passaram a projetar automveis
levando em considerao os segmentos de clientes e suas
necessidades, o que ocasionou verses diferentes de um
mesmo modelo de carro. Surge, ento, a idia das famlias
de produtos.
Conceitos bsicos
49
Normalmente, quando se fala em reuso o primeiro artefato a se pensar o cdigo. O aprimoramento de padres
arquiteturais, dos padres de projeto e a construo de
frameworks refletem esta preocupao. Em linhas de
produtos, a dimenso que o reuso toma muito maior
porque se procura maximizar o reuso em todos os artefatos
do ciclo de desenvolvimento, de forma que seja possvel
escolher pedaos de artefatos mais gerais para compor um
produto da linha.
Assim, as etapas do ciclo de vida tradicional no so
suficientes para este contexto. Ao contrrio da abordagem
tradicional em que se espera especificar requisitos de
software, em LPS os esforos iniciais esto voltados para
identificar as caractersticas dos produtos na linha, ou seja,
para o entendimento do domnio do problema no qual a
linha de produtos estar inserida. Este processo chamado
de Engenharia de Domnio. Como todos os artefatos sero
reaproveitados ao longo dos projetos, um alto grau de
flexibilidade precisa existir para que um mesmo artefato
possa carregar informaes teis para outros artefatos e
que seja de serventia para os mltiplos produtos da linha.
Na Engenharia de Domnio o desenvolvimento se d
para o reuso. Os artefatos que vo sendo criados deixam
explcita a questo da variabilidade nos mesmos. Um
50
Observando a Figura 2 fica claro que quando se usa linhas de produtos no se tem a especificao de um sistema,
e sim, a especificao de todas as caractersticas daquele
domnio e para um conjunto de sistemas. Os artefatos da
Engenharia de Domnio so especificados genericamente
e contemplam as caractersticas do universo que est
sendo explorado. A prxima seo deste artigo trata mais
detalhadamente das atividades necessrias para a representao de domnio.
DESENVOLVIMENTO
A notao FeatuRESB (Figura 7) segue todo padro da Original FODA, sua divergncia est na representao de subfeatures onde classifica como pontos de variao dinmico
ou esttico e obrigatrio. Esta representao, porm j est
superada pela notao Gurp-Bosch-Svahnberg (Figura 8).
A primeira derivao da Original FODA a notao Czarnecki-Eisenecker a qual alm de definir features obrigatrias
e opcionais, alternativas e alternativas exclusivas, representa
sub-features alternativas e opcionais. Em todos os nodos possui
a indicao de obrigatria e opcional, seja em uma feature ou
em uma sub-feature. Na Figura 5 temos essa representao.
51
Como apresentado, embora possuam representaes diferentes, as notaes apresentadas so bastante parecidas quanto
as suas caractersticas grficas, pois todas derivam da notao
FODA. Para exemplificar, um modelo de feature simplificado,
que representa uma famlia de celulares, apresentado na
Figura 9. A notao utilizada a de Czarnecki-Eisenecker.
Percebe-se que h caractersticas comuns e especficas para
diferentes celulares. Fazendo uma breve leitura, note que os
crculos preenchidos indicam que todos os celulares da linha
tero uma porta para entrada e sada de dados do sistema (1).
obrigatrio escolher uma forma de interatividade que, de
acordo com (2), pode ser por teclado, por uma tela sensvel
ao toque ou ambos. Todos os celulares tero um sistema operacional que nico, como indicado em (3), que pode ser um
sistema especfico, suportar o Windows CE ou Linux ME, mas
nunca mais de um ao mesmo tempo. Nem todos os celulares
tm suporte a carto de memria (4). Pode-se observar que
diferentes combinaes das features demonstradas ocasionam
verses diferentes de um celular da mesma marca. Dessa forma
estando bem representado o domnio garante-se o reuso e uma
produo em paralelo de forma eficaz.
Aspectos econmicos
52
as Linhas de Produtos influenciam naturalmente esta perspectiva. Quando se estabelece uma plataforma de produtos, a
primeira coisa que se deve perceber se existe um segmento de
mercado a ser atacado, o que muitas vezes no est aflorado. O
alinhamento das plataformas de produo com as estratgias
de negcio podem conduzir a uma presena de mercado muito forte. Optar por implantar uma linha requer uma anlise
organizacional que responda a questes importantes para
justificar o investimento necessrio adoo.
Em primeiro lugar, quais so as estratgias que a empresa usa
para determinar como novos produtos sero criados? Diferentes abordagens existem e se baseiam em modelos orientados ao
cliente (sob demanda), orientados ao fornecedor (de prateleira),
orientados a tecnologia ou orientados a mercado (quando a
empresa aposta na inovao e sempre busca as oportunidades
para novos projetos). Dependendo do modelo que a empresa
utiliza, o processo de adoo das linhas poder ter um custo
muito elevado. Este o caso de contratos orientados ao cliente,
que sugere que a organizao no est atenta ao mercado em
potencial, j que adota uma postura mais passiva diante dele
esperando que os clientes iniciem os novos projetos.
Qual a estratgia de mercado que a empresa utiliza para
ser reconhecida no mercado? Existem trs principais tipos de
estratgias: liderana de preo (definem o preo mais baixo
chegando a ficar prximo aos custos de produo), a diferenciao (oferecem servios ou funcionalidades diferenciadas dos
concorrentes) e o foco (especialista em um nicho de mercado).
Como o ciclo de vida da linha de produtos no mercado? Para
sistemas individuais os estgios so representados pela introduo do produto no mercado, crescimento (novos requisitos
ainda so adicionados), maturidade (pice do seu desempenho
face aos clientes), saturao (o produto comea a no atender
algumas demandas) e degenerao (abandono). Numa linha de
produtos preciso levar em conta o conjunto de produtos. Duas
perspectivas so importantes: a variao e o tempo. Na primeira,
onde existem variaes de produtos na linha, pode ocorrer um
processo conhecido como canibalizao onde os sistemas competem entre si. Na variao do tempo, que geralmente ocorre
quando as variaes surgem em decorrncia da mudana da
tecnologia, pode resultar na renovao dos produtos da linha.
Uma linha de produtos capaz de dar suporte s estratgias de
mercado da empresa (liderana de preo ou inovao, por exemplo)
porque considera o reuso como a base do processo de desenvolvimento, com isso possvel atingir resultados que favoream a
reduo dos custos do desenvolvimento, o aumento da qualidade,
a reduo do time-to-market, dos esforos com manuteno e da
melhoria nas estimativas. Aps avaliar se os aspectos relacionados
ao negcio esto afinados com a filosofia da Engenharia de Linhas
o processo de adoo pode passar para a prxima etapa.
Concluso
DESENVOLVIMENTO
Feedback
eu
edio
ta
D
s
Relatrio tcnico Feature-oriented domain analysis (FODA) feasibility study, escrito por Kyo
C.Kang, Sholom G. Cohen, James A. Hess, William A. Novak, Spencer Peterson.http://wwwiti.
cs.uni-magdeburg.de/iti_db/lehre/epmd/2008/bib/foda.pdf
Artigo Integrating Feature Modeling with the RSEB escrito por Giss, M. L. Favaro, J. dAlessandro
http://www.favaro.net/john/home/publications/rseb.pdf
Artigo Exploring the Commonality in Feature Modeling Notations escrito por Miloslav Sipka.
http://www2.fiit.stuba.sk/iit-src/2005/22-sipka.pdf
Artigo Managing Variability in Software Product Linesescrito por Tommi Myllymki
http://practise2.cs.tut.fi/pub/papers/VarMgnFinal.pdf
sobre e
s
www.devmedia.com.br/esmag/feedback
53
54
os dias de hoje, quase impossvel pensar em uma organizao que no faa uso
da Tecnologia da Informao. Se h
alguns anos a Tecnologia da Informao
era privilgio das grandes empresas e
centros de pesquisa, hoje ela pode ser
considerada uma necessidade comum a
praticamente todos os tipos de organizaes, desde a vendinha do Seu Joaquim
at as grandes empresas multinacionais.
No incio de sua utilizao nas organizaes, a Tecnologia da Informao teve
sua aplicao focada principalmente no
apoio realizao de processos operacionais. Com o passar do tempo e com
as evolues tecnolgicas que ocorreram
em ritmo acelerado, a Tecnologia da Informao passou a apoiar processos de
todos os nveis e reas das organizaes.
Mas, o que levou as organizaes
a destinarem grande parte de seus
oramentos para investimentos em
Tecnologia da Informao? Modismo?
Definitivamente no.
55
Organizaes so compostas por diferentes nveis e reas funcionais. Apesar de existirem diversas nomenclaturas propostas
por diferentes autores, comumente diz-se que as organizaes
so estruturadas em trs nveis (nvel estratgico, nvel gerencial
ou ttico e nvel operacional) e que esses nveis so atravessados
pelas reas funcionais da organizao (como vendas e marketing, recursos humanos, produo e finanas, por exemplo).
estrutura formada pelos nveis e reas funcionais d-se o nome
de Arquitetura Organizacional, conforme mostra a Figura 1.
No nvel operacional encontram-se os processos cuja execuo garante o funcionamento dirio da organizao. Em um
banco, por exemplo, depsitos e transferncias so processos
do nvel operacional.
No nvel gerencial (tambm chamado nvel ttico) encontramse os processos relacionados monitorao, controle, tomada
de decises e procedimentos administrativos. No exemplo do
banco, a monitorao e controle do alcance das metas dirias
so processos do nvel gerencial.
56
Governana de TI
57
Estrutura da Governana de TI
Tradicionalmente, a estrutura da Governana de TI representada por uma figura que se assemelha a uma casa, conforme
mostra a Figura 3.
Para apoiar a implementao da Governana de TI nas organizaes, h no mercado, um conjunto de modelos, normas,
prticas e frameworks que podem ser adotados, em conjunto
ou no, para atender s demandas da Governana de TI. Esses
modelos, normas, prticas e frameworks so recomendados,
pois foram elaborados por rgos especficos com grande
conhecimento em suas respectivas reas. Salvo algumas
excees, no faz sentido, por exemplo, reinventar a roda do
gerenciamento de projetos, uma vez, que existe um guia de
conhecimento mantido pelo PMI (Project Management Institute) bastante utilizado e aceito pelo mercado.
Na Figura 4 os principais modelos, normas, prticas e frameworks so relacionados aos componentes da estrutura de
Governana de TI que melhor apiam. Em seguida apresentada uma breve descrio de cada um.
O telhado de uma casa, como se sabe, deve cobrir toda sua estrutura. Analogamente, no telhado da estrutura da Governana
de TI encontram-se processos, prticas e diretrizes especficos
da Governana de TI, ou seja, que definem o que deve ser feito
para que a gesto de TI da organizao seja alinhada aos seus
objetivos estratgicos.
Sob o telhado esto os pilares da Tecnologia da Informao da
organizao, ou seja, todos os conjuntos de processos que esto
relacionados TI e so responsveis por sustent-la na organizao.
58
Conhecidos os principais conceitos e a estrutura da Governana de TI, a relao entre Engenharia de Software e Governana de TI torna-se bastante clara. No?
59
Referncias
D
s
FERNANDES, A. A., ABREU, V. F., 2008, Implantando a Governana de TI: da Estratgia Gesto
dos Processos e Servios, 2. Edio, Brasport, Rio de Janeiro.
LAUDON, K. C., LAUDON, J. P., 2004, Sistemas de Informao Gerenciais Administrando a
Empresa Digital, 2. Edio, Pearson - Prentice Hall, So Paulo.
MAGALHES, I. L.; PINHEIRO, W. B., 2007, Gerenciamento de Servios de TI na Prtica: Uma
Abordagem com Base na ITIL, Novatec, So Paulo.
Feedback
eu
edio
ta
60
Concluso
sobre e
s
61
62