Escolar Documentos
Profissional Documentos
Cultura Documentos
Requisito de
software
Pedro de Alcntara dos Santos Neto
2 UNIDADE 01
Ministrio da Educao - MEC
Universidade Aberta do Brasil - UAB
Universidade Federal do Piau - UFPI
Centro de Educao Aberta a Distncia - CEAD
Requisito de Software
COORDENADORES DE CURSOS
ADMINISTRAO Francisco Pereira da Silva Filho
CINCIAS BIOLGICAS Maria da Conceio Prado de Oliveira
FILOSOFIA Zoraida Maria Lopes Feitosa
FSICA Miguel Arcanjo Costa
MATEMTICA Joo Bencio de Melo Neto
PEDAGOGIA Vera Lcia Costa Oliveira
QUMICA Davi da Silva
SISTEMAS DE INFORMAO Arlino Henrique Magalhes de Arajo
160 p.
ISBN: 978-85-7463-326-8
C.D.D. - 005.3
2013. Universidade Federal do Piau - UFPI. Todos os direitos reservados.A responsabilidade pelo contedo e
imagens desta obra do autor. O contedo desta obra foi licenciado temporria e gratuitamente para utilizao
no mbito do Sistema Universidade Aberta do Brasil, atravs da UFPI. O leitor se compromete a utilizar o
contedo desta obra para aprendizado pessoal, sendo que a reproduo e distribuio ficaro limitadas ao
mbito interno dos cursos. A citao desta obra em trabalhos acadmicos e/ou profissionais poder ser feita
com indicao da fonte. A cpia deste obra sem autorizao expressa ou com intuito de lucro constitui crime
contra a propriedade intelectual, com sanses previstas no Cdigo Penal.
Um Sistema de Informao (SI) ou qualquer outro software tem
seu incio associado ideia de desenvolv-lo. A partir desse momento,
necessrio iniciar uma srie de reunies para se aprofundar o
conhecimento nas regras que envolvem a operao do sistema.
O conjunto de atividades que auxilia a obteno de informaes
a respeito de como o sistema deveria ser criado, juntamente com uma
representao desses conceitos em modelos que sejam utilizados para o
desenvolvimento faz parte das atividades de Requisitos e Anlise.
Nesta apostila apresentamos um detalhamento dessas atividades,
guiadas a partir de vrios exemplos prticos ilustrando sua execuo.
Na Unidade I detalhamos os conceitos associados ao Fluxo de
Requisitos, diretamente relacionado obteno de informaes dos
clientes para se elaborar um documento que descreve suas necessidades.
Na Unidade II apresentamos o Fluxo de Anlise associado
modelagem das informaes obtidas durante o levantamento de
requisitos, porm transformando-as em um nvel mais prximo dos
desenvolvedores. apresentado tambm um mtodo para contagem
do tamanho de um sistema, baseado na Especificao de Requisitos e
Anlise.
Na Unidade III exibimos os exemplos completos de diversos
artefatos utilizados para exemplificarmos o levantamentos de requisitos,
convocao e exibio dos resultados de uma reunio, alm da reviso
dos requisitos e reviso da anlise.
UNIDADE 1
11 O FLUXO DE REQUISITOS
Resumo
Nesta unidade apresentamos o Fluxo de Requisitos que est diretamente associado obteno
de informaes junto aos clientes sobre o problema a ser tratado. Em muitos projetos esse fluxo
pouco explorado, o que normalmente resulta no desenvolvimento de um software que no
atende aos anseios dos usurios finais. No Capitulo 1 apresentamos as atividades prescritas
no fluxo com a exemplificao de como realizar cada atividade, a partir da explicao de como
execut-la no sistema exemplo. No Captulo 2 apresentamos algumas tcnicas utilizadas como
forma de apoiar o levantamento de requisitos, mais especificamente tcnicas para se conduzir
uma reunio com o objetivo de se obter informaes e construir um conceito em conjunto, alm
de tcnicas para revisar artefatos produzidos durante o desenvolvimento de software.
REQUISITO DE SOFTWARE 11
O FLUXO DE REQUISITO
Um requisito pode ser definido como um desejo, necessidade,
Um requisito pode
restrio ou expectativa de um cliente com relao a um produto. Ou seja,
ser resumido como
ao pensar em um produto, um cliente possui muitos aspectos em sua
algo desejado por um
mente que necessitam ser capturados, definidos, organizados, verificados
usurio em relao a
e validados para que se chegue a uma Especificao de Requisitos. Esse
um produto.
documento o principal artefato gerado no incio do desenvolvimento de
software. Seu principal objetivo prover um enunciado completo, claro e
preciso dos requisitos de um produto de software.
Logicamente, a gerao de uma especificao de requisitos para
um produto novo bem mais complexa que para produtos existentes. Em
muitos casos, os prprios clientes no sabem ao certo o que querem. Na
verdade, a maioria dos clientes consegue identificar bem o que no quer.
Nesses casos, o uso da prototipao algo muito recomendado. Mais
adiante vamos detalhar essa tcnica que pode auxiliar bastante o fluxo
de requisitos.
importante detalhar de forma precisa o que o Fluxo de
Requisitos. Esse fluxo rene as atividades que visam obter o enunciado O conjunto de
completo, claro e preciso dos requisitos de um produto de software. Os tcnicas empregadas
requisitos devem ser levantados pela equipe do projeto, normalmente para levantar, detalhar,
denominados Analistas de Requisitos (ou Engenheiros de Requisitos) documentar e validar
em conjunto com representantes do cliente, usurios chaves que contam os requisitos de um
com a presena de especialistas da rea de aplicao, uma vez que o produto compe a En-
projeto pode envolver conhecimentos no triviais que exijam a presena genharia de Requisitos
de profissionais altamente especializados com a rea de negcio do
produto a ser construdo.
O conjunto de tcnicas empregadas para levantar, detalhar,
documentar e validar os requisitos de um produto compe a Engenharia
de Requisitos. O resultado principal do fluxo dos requisitos o documento
de Especificao de Requisitos (ER).
REQUISITO DE SOFTWARE 13
1.1 Qualidade dos requisitos
Os requisitos de um software correspondem a uma parte muito
importante do desenvolvimento. Por conta disso, necessrio que eles
possuam diversas caractersticas de qualidade, permitindo assim seu
uso de forma adequada e eficiente. A seguir apresentamos uma lista de
caractersticas de qualidade de requisitos, baseadas nas caractersticas
de qualidade de requisitos existentes segundo Paula Filho (2003).
As caractersticas citadas nesta seo podem ser utilizadas
como critrios para se realizar uma reviso de requisitos, conforme ser
apresentado mais a frente. Mas para isso, necessrio entender o que
est relacionado a cada uma das caractersticas.
Correo
Uma Especificao de Requisitos correta se todo requisito
presente nela realmente um requisito do produto a ser construdo.
No existe ferramenta que garanta a correo de uma Especificao de
Requisitos. Para verific-la, deve-se checar a coerncia da Especificao
dos Requisitos do Software com outros documentos da aplicao como
manuais, protocolos, regras de negcio, etc. Outra forma de tentar
garantir a correo solicitar a aprovao formal da ER, por parte do
cliente, sem a qual o projeto no poder prosseguir.
Por conta disso que normalmente ao final de um levantamento
de requisitos feita uma reviso do trabalho executado. A ideia por trs
disso encontrar falhas na qualidade dos requisitos que podem estar
associadas a qualquer uma das caractersticas apresentadas nessa
seo.
Preciso
Uma ER precisa se todo requisito presente possuir apenas uma
nica interpretao, aceita tanto pelos desenvolvedores quanto pelos
usurios chaves. Em particular, uma ER deve ser compreensvel para todo
o seu pblico alvo e deve ser suficiente para a especificao dos testes
de aceitao do produto. Recomenda-se a incluso no glossrio da ER de
todos os termos contidos no documento que possam causar ambigidades
de entendimento.
Uma forma de verificar a preciso de uma ER solicitar sua leitura por
pessoas que no tenham participado da sua elaborao, para analisarmos
se possvel entender o que foi especificado de forma precisa.
14 UNIDADE 01
Completeza
Uma ER completa se reflete todas as decises de especificao
que foram tomadas, no contendo clusulas de pendncias. Uma ER
completa deveria conter todos os requisitos significativos relativos
funcionalidade, desempenho, restries de desenho, atributos e interfaces
externas, alm de definir as respostas do software para todas as entradas
possveis, vlidas e invlidas e em todas as situaes possveis.
Tambm fundamental para uma ER possuir um glossrio de
todos os termos tcnicos e unidades de medida, facilitando assim seu
entendimento por todos.
bastante comum que organizaes criem suas pseudo ERs
contendo apenas um pedao da especificao do comportamento do
software desejado, normalmente ignorando os requisitos no funcionais.
Consistncia
Uma ER consistente se no h conflitos entre nenhum dos
subconjuntos de requisitos presentes, tais como conflitos com o mundo
real como, por exemplo, formatos de relatrios ou cores de sinalizao;
conflito lgico ou temporal entre aes, quando, por exemplo, um
requisito diz que a ao A deve ser realizada antes da ao B, e outro diz
o contrrio; e uso de termos diferentes para designar o mesmo objeto do
mundo real, como, por exemplo, lembrete versus aviso.
Mais uma vez notamos que uma reviso fundamental para o
fechamento de uma ER, pois apenas a partir de uma ao como essa
que poderemos descobrir certas incorrees.
Priorizao
Uma ER priorizada se cada requisito classificado de acordo com a
respectiva importncia e estabilidade. A estabilidade estima a probabilidade
de que o requisito venha a ser alterado no decorrer do projeto, com base
na experincia de projetos correlatos. A priorizao classifica o requisito de
acordo com graus de importncia atribudos pelos clientes.
A priorizao algo importante, pois normalmente os custos e
prazos podem ser bastante limitados, sendo importante descrever o que
mais importante e deve ser tratado primeiro. Da mesma forma, aquilo
que ainda est em processo de mudana no pode ser considerado para
implementao, pois ainda no estvel e qualquer ao aplicada pode
ser trabalho perdido
REQUISITO DE SOFTWARE 15
Verificabilidade
Uma ER verificvel se todos os seus requisitos so verificveis.
Um requisito verificvel se existir um processo finito com custo
compensador, que possa ser executado por uma pessoa ou mquina
mostrando conformidade do produto final com o requisito.
Modificabilidade
Uma ER modificvel se sua estrutura e estilo permitirem a
mudana de qualquer requisito, de forma fcil, completa e consistente. A
modificabilidade geralmente requer que haja uma organizao coerente,
com ndices e referncias cruzadas; ausncia de redundncia entre
requisitos; definio separada de cada requisito.
Essa caracterstica est diretamente relacionada ao uso de
padres e convenes, de forma que o trabalho seja feito atravs de
formatos pr-definidos e adequados ao uso.
Rastreabilidade
Uma ER rastrevel quando permite a fcil determinao dos
itens que antecederam o surgimento deste, os quais foram gerados por
conta da existncia do mesmo. Isso normalmente est associado a dois
tipos de rastreabilidade:
1. Rastreabilidade para trs, na qual deve ser possvel
localizar a origem de cada requisito. Deve-se sempre saber por que
existe cada requisito e quem ou o que o originou. Isso importante para
que se possa avaliar o impacto da mudana daquele requisito e extinguir
dvidas de interpretao.
2. Rastreabilidade para frente, na qual deve ser possvel
localizar quais os resultados do desenvolvimento que sero afetados por
cada requisito. Isso importante para garantir que os itens de anlise,
desenho, cdigo e testes abranjam todos os requisitos; para localizar os
itens que sero afetados por uma mudana nos requisitos.
16 UNIDADE 01
entanto, a anlise de um processo de software especfico pode conter
diversas diferenas para as atividades aqui apresentadas.
REQUISITO DE SOFTWARE 17
funes do produto, de forma que o atendimento seja completo.
A Definio dos Prottipos de Interface a atividade em que
verses iniciais das interfaces do produto so criadas com o intuito
maior de deixar claro o que se deseja, reduzindo assim problemas com
requisitos questionveis ou difceis de serem entendidos.
Por fim, a Reviso dos Requisitos a atividade em que feita uma
reviso geral do trabalho realizado, com o intuito de remover problemas
com relao aos requisitos identificados e todos os seus desdobramentos
executados.
Definio do Escopo
O Escopo de um Projeto algo fundamental para o seu sucesso.
Sua definio algo considerado simples, porm deve ser feita de forma
prudente e com a participao dos principais envolvidos.
Em muitos momentos, o escopo do projeto dever ser reanalisado,
Uma boa forma de evitar pois define o que est e o que no est includo no projeto em questo.
problemas com os clien- Um escopo mal estruturado poder levar a falhas de cronograma
tes de um projeto definir e de oramento, uma vez que tarefas acima do previsto podem ser
bem o escopo e, para consideradas, ao invs daquilo o que realmente deveria ter sido includo.
evitar falsas expectativas, De forma geral, o escopo de um projeto pode ser simplesmente
detalhar o que no faz um texto que define o que deve fazer parte do projeto. Neste material,
parte dele. Por isso, to utilizaremos um exemplo para demonstrar todas as atividades aqui
importante termos uma descritas. Ser usado como exemplo prtico algo muito apropriado ao
seo com os Limites do tema: uma ferramenta para Gerncia de Requisitos. Esse projeto ser
Produto. denominado ReqG. Para isso, precisamos definir o escopo de um projeto
cujo objetivo produzir uma ferramenta para gerenciamento de requisitos.
Uma sugesto de tal escopo pode ser visualizada a seguir:
18 UNIDADE 01
fora dele. Isso normalmente ajuda aos clientes entenderem de forma
mais precisa o que est e o que no est includo no projeto. A definio
do que no est includo de forma explcita evita falsas expectativas. Isso
normalmente favorece o processo de comunicao com o cliente.
importante ressaltar que o fluxo de requisitos um fluxo com
grande participao do cliente. Ele quem define praticamente tudo o
que ser produzido nessa fase do desenvolvimento. Assim, quanto mais
mecanismos utilizarmos para facilitar a comunicao com o cliente,
melhores resultados sero obtidos com sua execuo.
Continuando com nosso exemplo, uma forma interessante de
definir o escopo seria detalhar o que no est includo no projeto. Essa
seo normalmente conhecida como Limites do produto. Uma sugesto
para tal seo seria a seguinte:
Uma dvida que deve pairar naqueles que iniciam a elicitao de Importante: para se con-
requisitos justamente saber quem deveria participar dessa definio. hecer bem o que deve
ser feito por um produto,
Normalmente, qualquer organizao possui alguns nveis devemos comear a
hierrquicos em sua constituio. As pessoas no nvel hierrquico conversa com aqueles
mais alto geralmente possuem um bom conhecimento sobre tudo o que entendem um pouco
de tudo (diretoria) para
que realizado na organizao. Isso acontece por que eles devem ser depois iniciarmos um
comunicados e devem acompanhar o que se passa dentro da instituio. aprofundamento nos
Essas pessoas formam um grupo ideal para se utilizar na definio de detalhes (gerncia,
chefias).
um produto, pois conhece o todo. Ao aprofundarmos nas definies
dos requisitos, necessitaremos da participao de outras pessoas, com
conhecimentos mais aprofundados em detalhes especficos.
Assim, para levantar requisitos para uma aplicao que controle
uma empresa, idealmente deveramos conversar com os diretores
da organizao, uma vez que eles devem saber exatamente como a
organizao funciona. Em seguida, devemos conversar com os gerentes,
pois normalmente existe um gerente para cada rea prioritria da
REQUISITO DE SOFTWARE 19
organizao. Ele conhece tudo o que se passa em seu setor. Para que
seja possvel detalhar o que realmente feito em cada setor, deveramos
conversar com os funcionrios que executam as atividades ou com os
chefes de setores em um nvel inferior aos gerentes.
Daremos incio a um trabalho prtico que dever ser feito por cada
aluno da disciplina, o qual acompanhar este material: a definio de
um Software de Controle de Emprstimos Pessoais. Esse software ser
definido por voc leitor, ao longo deste material. De incio, procure definir
o escopo e os limites do produto, de forma similar ao que fizemos com
o software de gesto de requisitos. Utilize os modelos e o exemplo de
ERSs que estamos apresentando como exemplo e que est contido na
pgina da disciplina.
Requisitos funcionais
esto associados a
Identificao dos Requisitos
comportamento. Req-
uisitos no funcio- A Identificao dos Requisitos a atividade que prescreve a
nais esto ligados a criao de uma lista dos requisitos para a aplicao a ser desenvolvida.
caractersticas que o
Cada requisito nada mais que uma descrio textual de algo que deveria
comportamento deve
ser considerado durante o desenvolvimento de software.
possuir.
Os requisitos podem ser divididos em dois tipos: requisitos
funcionais e no funcionais. Os funcionais esto diretamente ligados
ao comportamento que a aplicao deve conter. Por exemplo, em um
sistema de controle de uma biblioteca, o Emprstimo de Livro exige que
o usurio a tomar um livro emprestado esteja cadastrado e ativo; que o
livro desejado esteja disponvel, no reservado e no seja cativo; que o
usurio no esteja com cinco livros emprestados, considerando que esse
seja o nmero mximo de emprstimos simultneos permitido. Tudo isso
que foi comentado so detalhes do comportamento que o software deve
ter.
Outro tipo de requisito o no funcional. Nesse caso, eles no
expressam comportamento, mas caractersticas que o comportamento
deve ter. Por exemplo, supondo o mesmo requisito Emprstimo de Livro,
podemos exigir como requisito de desempenho que ele funcione com at
100 usurios simultneos, gerando respostas em at 8s. Outro requisito
no funcional associado ao emprstimo seria que ele fosse simples de
usar, permitindo que uma pessoa conseguisse utiliz-lo apenas lendo o
manual associado. Observe que tudo o que relatamos neste pargrafo
no trata de comportamento, mas de caractersticas desejadas ao
comportamento especificado no pargrafo anterior.
Conforme comentado, a lista dos requisitos a expresso que
20 UNIDADE 01
resume aquilo que os clientes desejam. importante a participao dos
Analistas de Requisitos para que seja possvel organizar esses pedidos e
estruturar o texto que os descreve de forma que seja possvel analisar e
desdobrar esses pedidos em funes do produto. A Tabela 1 exibe a lista
de requisitos para a ferramenta de gesto de requisitos que queremos
construir.
ID Requisito Descrio
O sistema deve permitir cadastrar e con-
trolar todos os aspectos relacionados
aos requisitos de um projeto, permitindo
RF1 Requisitos
visualiz-lo e acompanhar sua evoluo,
incluindo as pessoas que trabalharam no
projeto, analistas e gerente do projeto.
O sistema deve possibilitar a especifica-
o dos casos de uso, registrando sua
RF2 Casos de uso descrio, atores, prottipos de tela as-
sociados, relacionando os requisitos que
deram origem ao caso de uso.
Deve ser possvel realizar uma reviso
dos requisitos e casos de uso, utilizando
RF3 Reviso critrios definidos pelos prprios geren-
tes de projetos, de forma independente
aos demais projetos.
Deve ser possvel que os clientes pos-
sam acompanhar a evoluo do projeto
RF4 Acompanhamento dos clientes
a qualquer momento, consultando tudo
o que foi feito.
Deve ser possvel liberar o acesso ao
sistema por projeto, indicando o seu
gerente. Assim, para se ter acesso ao
sistema, dever ser adquirido uma li-
cena para um projeto. A partir disso,
RF5 Liberao de acesso por projeto o gerente ficar responsvel por definir
quem dever usar o sistema, seja para
trabalhar na especificao de requisitos
como um dos Engenheiros de Requi-
sitos, seja como cliente consultando o
resultado do trabalho realizado.
Deve ser possvel gerar a especificao
na forma de um documento no editvel,
RF6 Gerao da documentao
contendo todos os dados registrados do
projeto.
Tabela 1: Exemplo de definio de requisitos
REQUISITO DE SOFTWARE 21
A Tabela 2 exibe a lista de requisitos no funcionais identificados
para o produto. Observe que tambm so definies simples, mas que
retratam o que se deseja com relao a certas caractersticas ligadas ao
comportamento do software. So exemplos disso a definio do ambiente
(Web), o uso de uma tecnologia especfica (MySQL) ou a definio de valores
para atributos de qualidade como a quantidade de acessos simultneos e o
tempo mximo de resposta.
importante ressaltar que requisitos no funcionais necessitam da
definio de valores que permitam sua verificao. Dizer que o sistema
deve ser rpido no ajuda muito aos testadores que devem verificar se o
produto atende ER. Mas especificar um tempo mximo de resposta em um
contexto pr-definido ajuda bastante.
ID Requisito Descrio
O sistema deve funcionar em ambiente
Web, sendo compatvel com os princi-
RNF1 Ambiente
pais navegadores do momento: Internet
Explorer, Firefox, Safari e Chroma.
O sistema deve ser desenvolvido utili-
RNF2 Linguagem zando-se a linguagem Java, com as tec-
nologias JSF e Hibernate.
O sistema deve utilizar o banco de da-
RNF3 Banco de dados
dos MySQL.
O sistema deve ser construdo para fun-
cionar com 100 usurios simultneos,
RNF4 Desempenho
com respostas de at 5s quando utiliza-
do em rede local.
O sistema deve restringir o acesso por
meio de senhas. Deve-se ter um con-
RNF5 Segurana trole no registro de senha, de forma a
impedir o uso de senhas consideradas
fceis.
O sistema deve restringir o acesso por
meio de senhas. Deve-se ter um con-
RNF5 Segurana trole no registro de senha, de forma a
impedir o uso de senhas consideradas
fceis.
Tabela 2: Exemplo de requisitos no funcionais
22 UNIDADE 01
Na identificao dos requisitos, todos os aspectos levantados
pelos clientes devem ser registrados, da forma mais parecida com o que
foi relatado. Nas prximas atividades esses aspectos sero transformados
em elementos que permitem seu detalhamento de forma estruturada. No
entanto, isso no acontece nesse momento.
Mais uma vez ressaltamos que essa atividade necessita ser
realizada com pessoas que possuam uma boa viso geral do todo. A ideia
obter uma descrio de alto nvel do que precisa ser feito, deixando
para depois um detalhamento aprofundado de cada questo.
Nesse momento voc dever fazer o levantamento dos requisitos
relacionados ao Software de Controle de Emprstimos Pessoais que
iniciamos anteriormente. Crie uma lista de requisitos desejados por voc
com relao a esse produto. Utilize o exemplo que disponibilizamos na
pgina para iniciar o trabalho. Dessa forma, voc deve ir alterando as
sees que esto sendo descritas.
ator, mas pode interagir com mais de um. Segundo Pdua Filho (2003),
atores podem ser identificados atravs dos seguintes critrios:
1. Quem est interessado em certo requisito;
2. Quem se beneficiar diretamente do produto;
3. Quem usar informao do produto;
4. Quem fornecer informao ao produto;
5. Quem remover informao do produto;
6. Quem dar suporte e manuteno ao produto;
7. Quais os recursos externos usados pelo produto;
REQUISITO DE SOFTWARE 23
8. Quais os papis desempenhados por cada usurio;
9. Quais os grupos de usurios que desempenham o mesmo papel;
10.Quais os sistemas legados com os quais o produto deve interagir;
11. Quando casos de uso so disparados periodicamente, o tempo de
forma automtica.
Atores so usados para representar tambm sistemas externos.
Estes podem incluir sistemas legados, produtos comerciais de software
e outros componentes de um sistema maior. Podem incluir recursos de
hardware e comunicao que devam receber um tratamento especfico por
parte do produto (por exemplo, dispositivos de hardware que normalmente
no fazem parte do ambiente operacional). Um ator especial o Tempo,
usado para acionar casos de uso que so disparados periodicamente, de
forma automtica.
Cada diagrama de casos de uso especifica os relacionamentos
entre casos de uso e atores. Os relacionamentos indicam a existncia
de comunicao entre atores e casos de uso. Um caso de uso pode
estar associado a mais de um ator quando a sua execuo requer a
participao de diferentes atores.
Normalmente, a comunicao ser representada como ligao
sem direo. Nesses casos, convencionado que a iniciativa de
comunicao parte do ator. Quando a iniciativa parte do caso de uso (por
Atores modelam exemplo, alarmes, mensagens, dados enviados para outros sistemas,
papis associados ao
uso do produto. Pa-
etc.), a comunicao deve ser direcionada para o ator.
pis e no pessoas!
24 UNIDADE 01
ajudar aos clientes a pensar como estruturar o software, em termos de
funes para atender aos anseios identificados.
Como exemplo, iremos analisar os requisitos contidos na Tabela 1.
Inicialmente, utilizaremos o RF1. O texto que o descreve est detalhado
no quadro a seguir:
REQUISITO DE SOFTWARE 25
incluindo requisitos, casos de uso, atores, etc. Por conta disso, o RF4
nos levou a identificar mais um caso de uso: Gerao da especificao.
O RF5 refere-se ao modelo de negcio do sistema. Para que alguma
pessoa possa utiliz-lo, necessrio que seja realizado o cadastro de
um projeto. Esse projeto ter um gerente associado que a partir de ento
poder cadastrar seus analistas, clientes, requisitos, casos de uso, etc.
Dessa forma, necessrio que o sistema tenha um caso de uso Cadastro
de Projeto, que deve ser feito por um administrador, responsvel por
liberar acesso ao software. No entanto, um projeto possui diversos dados
adicionais como seu escopo com datas de execuo, limites do produto
que tambm precisam ser cadastrados. Isso nos leva a ter outro caso
de uso para que seja possvel registrar tais dados, mas utilizado pelo
gerente do projeto e no pelo administrador do sistema. Esse caso de
uso ser chamado de Controle do projeto.
A exibio dos casos de
uso e os requisitos que Analisando o RF6 que trata da gerao da documentao,
foram utilizados para sua encontramos algo interessante: a necessidade relatada j est
gerao, nos do uma
idia da rastreabilidade contemplada com a proposio do caso de uso Gerao da documentao,
dos requisitos. identificado quando analisamos o RF4. Dessa forma, ao propormos o
caso de uso Gerao da documentao, no s atendemos ao requisito
RF4 como tambm ao RF6.
Pronto! Acabamos de identificar todos os casos de uso do sistema,
a partir de uma leitura e interpretao dos requisitos expostos pelos
clientes. Mais uma vez importante ressaltar que embora tenhamos feito
O diagrama de casos de isso de forma direta neste documento, isso normalmente exige reunies,
uso nos d uma visao discusses e um amadurecimento por parte dos clientes e envolvidos
ampla do sistema, exibin-
do as funes existentes para que se chegue a uma determinao do produto a ser desenvolvido.
e os papis associados. A Figura 3 apresenta um diagrama de casos de uso com todos os casos
de uso identificados, alm dos atores associados.
Outro ponto importante de ressaltar que isso no representa
ainda o detalhamento dos requisitos, sendo necessrio um maior
aprofundamento dos requisitos. Isso inclui a determinao das regras
de negcio associadas a cada um dos casos de uso que ser feito na
prxima subseo.
26 UNIDADE 01
Figura 3: Diagrama de casos de uso para o ReqG.
Cadastro de requisitos
funcionais e no fun-
UC1 Gesto de Requisitos RF1
cionais associados ao
projeto.
REQUISITO DE SOFTWARE 27
ID Caso de uso Requisito associado Descrio
Cadastro de todos os
UC2 Gesto de Membros RF1
envolvidos no projeto.
28 UNIDADE 01
N Ator Descrio
Clientes de um projeto, normalmente responsvel
1. Cliente pelo fornecimento de informaes para moldagem do
produto.
Responsvel pelo controle do uso do sistema, libe-
2. Administrador rando acesso aos gerentes a partir do cadastramento
de um projeto.
REQUISITO DE SOFTWARE 29
Um exemplo de fluxo principal apresentado a seguir. Nele, possvel
observar que existem passos relacionados com aes do sistema (ReqG)
e passos relacionados a aes do ator (Administrador).
Fluxo Principal
1. O ReqG exibe a Tela de Gesto de Gerentes.
2. O Administrador informa os dados para pesquisa por Gerentes.
3. O Administrador aciona o comando Pesquisar.
4. O ReqG recupera e exibe na lista Gerentes recuperados os Gerentes que atendem
aos parmetros de pesquisa informados, ordenados pelo Nome em ordem crescente.
30 UNIDADE 01
Fluxo alternativo: Incluso de um Novo Gerente
REQUISITO DE SOFTWARE 31
Os subfluxos so utilizados para descrever conjuntos de passos
que foram extrados de algum fluxo por serem grandes e complexos ou com
potencial de serem reutilizados em outros fluxos. Seria algo equivalente
a extrair um mtodo de outro mtodo. Para acionar a execuo de um
subfluxo necessrio especificar isso de forma direta: O ReqG executa
o Subfluxo X.
Em casos de uso do tipo CRUD (Create, Read, Update, Delete) que
descrevem um cadastro, normalmente contendo funcionalidades para se
cadastrar, pesquisar, alterar e excluir algo, uma dvida comum : qual
dessas funcionalidades deve ser especificada no fluxo principal do caso
de uso? A resposta : qualquer uma. Mas lembre-se que normalmente
utilizamos no fluxo principal a funcionalidade que mais comumente
utilizada. Uma conveno utilizada neste trabalho foi sempre utilizar as
pesquisas como funcionalidade descrita no fluxo principal de casos de
uso do tipo CRUD.
Em geral, os casos de uso no possuem pr-condies e alguns
tem apenas o fluxo principal. Embora existam diversos formatos utilizados
para sua descrio, conforme o formato apresentado nos exemplos
contidos neste texto, o mais importante que as descries utilizadas
sejam inteligveis para quem as l. Dessa forma, o bom senso o maior
guia para a descrio dos casos de uso: se uma pessoa consegue ler e
entender o que tem descrito com condies de criar um programa que
programe as descries, ento o caso de uso est bem descrito. No
entanto, importante ressaltar que os iniciantes na descrio de casos
de uso nem sempre deixam lacunas na descrio que impossibilitam o
seu entendimento. Isso muito comum e tende a ser reduzido com a
experincia. Para finalizar essa seo, apresentamos a descrio de
um caso de uso um pouco mais complexo que detalha as regras para
gerao de um relatrio associado ao nosso exemplo, contido no Anexo
I deste texto.
Fluxo Principal
O ReqG exibe a Tela de Relatrio de Acompanhamento.
O Membro informa os dados para pesquisa por Projetos.
O Membro aciona o comando Pesquisar.
O ReqG recupera e exibe os Projetos que atendem aos parmetros de pesquisa
informados na lista Projetos Recuperados e que tenham como Membro no projeto o
usurio corrente, ordenados pelo nome do Projeto em ordem crescente.
32 UNIDADE 01
O Membro aciona o comando Gerar Relatrio.
Para cada requisito contido no projeto:
O ReqG imprime uma linha com o ID, nome, descrio, tipo e estado do requisito,
calculado a partir do estado ou a partir dos casos de uso associados.
Para cada caso de uso associado ao requisito:
O ReqG imprime uma linha com o ID, nome, descrio e estado do caso de uso.
O ReqG soma o percentual de concluso de cada caso de uso, de acordo
com o seu estado, sendo Identificado (10%), Detalhado (25%), Implementado (75%) e
Homologado (100%).
Se o requisito possui casos de uso associados:
O ReqG calcula o percentual de concluso do requisito a partir da soma de todos
os percentuais dos casos de uso, dividido pela quantidade de casos de uso.
Se no:
O ReqG calcula o percentual de concluso do requisito a partir do estado do
requisito, ou seja, a partir da soma de todos os percentuais dos requisitos divididos
pela quantidade de requisitos existentes.
REQUISITO DE SOFTWARE 33
dados e comandos. Outros detalhes, como formatos de telas e janelas,
so aspectos de desenho da interface de usurio e no devem ser
tratados durante a fase de Requisitos.
No entanto, a criao de um esboo da interface auxilia bastante
a identificao de regras de negcio, dados a serem utilizados e formatos
de campos. extremamente importante definir que tecnologia utiliza
para gerao desses esboos, uma vez que eles no devem demandar
muito esforo e nem deveriam focar em tecnologias especfica, visto que
Os prottipos de interfaces,
isso pode limitar o espao da soluo sem que haja essa necessidade.
durante o levantamento
Os esboos so apenas sugestes, mas que no deveriam ser seguidos
de requisitos, devem ser
focados em se descobrir
rigorosamente na construo no produto. Eles servem muito mais para
as informaes e restries detalhar os dados envolvidos nos fluxos que propriamente para especificar
importantes ao requi- formatos de tela. Exemplos de esboos podem ser construdos utilizando
sito. Nenhum aspecto de as seguintes tecnologias:
execuo ou usabilidade 1. Desenhos mo livre, em papel;
deveria ser tratado nesse
2. Layout alfanumrico feitos com um editor de texto como o Word;
momento.
3. Layout feitos em um editor HTML, como o DreamWeaver;
4. Desenhos feitos com uma ferramenta de desenho tcnico como
o Pencil;
5. Telas desenhadas em um ambiente de desenvolvimento rpido
como Delphi;
6. Telas desenhadas no ambiente definitivo de implementao,
utilizando Java Swing.
Os esboos devem ser descritos de forma que o usurio consiga
entender seu objetivo e entenda seu funcionamento, independente da
tecnologia a ser utilizada.
Os campos e comandos existentes nos prottipos devem
representar requisitos relacionados aos dados necessrios para se
implementar uma determinada funo. importante utilizar formatos
independentes de tecnologia, para que sua definio final fique apenas
para o Projeto (Design). No interessante tentar definir esse formato
durante o levantamento de requisitos.
Neste trabalho iremos utilizar uma conveno para especificao
de prottipos criados utilizando-se um editor de texto. Essa alternativa
bastante vivel por conta da sua facilidade de manipulao, expressividade
e, alm disso, pelo fato de estar completamente dissociada de qualquer
tecnologia de implementao.
34 UNIDADE 01
Gerao da Especificao
Informaes do Projeto
Projeto SystemG (texto com at 30 caracteres)
Gerente Silio Silvestre Ferreira Freitas (texto com at 100 caracteres)
<Pesquisar>
Projetos recuperados
Campo altervel.
Campo no altervel.
Ttulo de interface, rtulo de campo ou comando.
Tabela 5: Exemplo de prottipo simples.
REQUISITO DE SOFTWARE 35
Na mesma figura existe ainda a especificao de diversos
comandos descritos a partir dos delimitadores <>. Um comando
uma entidade que dispara alguma ao. Note que no definimos se o
comando ser um boto hiperlink, comando de voz ou qualquer outro
tipo. O importante deixar claro que existe um comando na tela e que ao
ser acionado responsvel por alguma ao. Essa a vantagem de se
utilizar prottipos independentes de tecnologia: no temos aderncia a
qualquer formato, facilitando o desenho definitivo da interface sem limitar
o conjunto de alternativas existentes.
Outro ponto interessante na figura a existncia de uma tabela com
uma lista de valores (Projetos recuperados). Uma tabela algo comum
na maioria dos sistemas. Frequentemente necessita-se especificar
tabelas em nossos prottipos, pois elas so muito teis para agrupar
informaes correlacionadas.
Tambm importante ressaltar algo que geralmente gera muita
confuso nos iniciantes em criao de prottipos para o levantamento
de requisitos: essas telas nunca vo executar! Assim, fique tranquilo
quanto usabilidade, pois elas no sero usveis! As telas definitivas
feitas com base nesses prottipos que vo executar. Mas por enquanto,
temos apenas um esboo daquilo que ser feito em uma fase posterior
do desenvolvimento.
Quando temos um prottipo e o detalhamento do caso de uso, o
entendimento de parte de um produto se torna bastante simples. Veja por
exemplo, a descrio do fluxo principal associado ao prottipo exibido na
Figura 4.
36 UNIDADE 01
Alguns prottipos possuem campos com formatos mais
especficos, conforme apresentado na Figura 5. O campo projeto possui
um asterisco que indica que ele obrigatrio. Alm disso, seu contedo
contm a especificao que conter uma lista de projetos que atendem
a uma determinada restrio, significando que essa lista ser carregada
dinamicamente durante a execuo do produto e que seus valores sero
trazidos de uma entidade do produto.
Dados da Reviso
Projeto* [Lista de Projetos que possuem o usurio corrente como membro]
Identificador* Reviso preliminar de requisitos (texto at 50 caracteres)
Descrio* Reviso preliminar de requisitos (texto at 50 caracteres)
Data* 12/12/2010 (data no formato dd/mm/aaaa)
[Lista de Membros do Projeto que no sejam clientes]
Participantes
dos desenvolve- ...
dores*
[Lista de Membros do Projeto que no sejam clientes]
[Lista de Membros do Projeto que sejam clientes]
Participantes dos
...
clientes
[Lista de Membros do Projeto que sejam clientes]
Situao* [Aberta; Fechada]
Figura 5: Prottipo com campos mais especficos.
REQUISITO DE SOFTWARE 37
Figura 7: Exemplo de interface definitiva similar ao prottipo da figura anterior.
Uma modelagem do
prottipo, feita utilizando
Na Figura 6 temos a especificao de trs campos utilizando nossas
nossas convenes, pode
convenes. Os dois primeiros campos so multivalorados enquanto que
ser mapeada para diferen-
tes formatos em tecnologias o terceiro pode ser apenas um de dois possveis valores. Na Figura 7
especficas temos um exemplo de como esse prottipo pode ser construdo em um
ambiente definitivo (HTML). Note que embora os dois primeiros campos
possuam a mesma representao em nosso formato independente de
tecnologia, este poder ter diferentes implementaes em um ambiente
definitivo.
Mais uma vez ressaltamos que existem diversos exemplos no
Anexo I deste documento, que possui a especificao completa de um
sistema real, o qual deve servir de base para a criao do nosso trabalho
prtico.
chegada a hora de realizar a criao dos prottipos para os
casos de uso identificados. Lembre-se do formato independente de
tecnologia apresentado aqui e fique atento s convenes definidas.
38 UNIDADE 01
Para a reviso necessrio inicialmente estabelecer os critrios
a serem utilizados. Na Seo 2 foram expostos diversos critrios de
qualidade para requisitos. Um projeto pode determinar que critrios
devam ser utilizados para a realizao das revises, para ento analisar
cada requisito luz dos critrios selecionados.
Dessa forma, podemos facilmente visualizar que uma reviso
nada mais que uma leitura e posterior anlise dos requisitos, tendo
em mente aspectos bem pontuais a serem avaliados. De modo geral,
pessoas que no sejam os autores da especificao de requisitos seriam
mais adequadas para a realizao da reviso que os prprios autores.
Isso acontece por que normalmente os autores podem ficar cegos quanto
a certos problemas.
Um exemplo de reviso para parte dos requisitos contidos no Anexo
I apresentado na Tabela 6. Nela podemos notar a anlise de alguns
requisitos e casos de uso com base em critrios pr-definidos. A partir
dessa anlise sero registrados os eventuais conflitos e acompanhado
os passos para sua resoluo.
Caso de Comple-
Nr. Requisito Ambigidade Clareza Conflitos
Uso tude
No foi especifi-
cada a ordem
No
1 RF1 UC2 Aprovado Aprovado em que os resul-
aprovado
tados devem ser
exibidos.
2 RF2 UC3 Aprovado Aprovado Aprovado -
O caso de uso
parece que
poderia ser
agrupado com
o caso de uso
No aprova- Gesto de
3 RF5 UC8 Aprovado Aprovado
do Membros, no
havendo ne-
cessidade de
criao de um
caso de uso
adicional.
Tabela 6: Fragmento da reviso de uma ER.
REQUISITO DE SOFTWARE 39
utilizados e sua explicao, assim como o resultado da avaliao
executada. Voc deve criar algo similar para o Software de Controle
de Emprstimo Pessoais. Lembre-se de definir os critrios, detalhando
como eles sero utilizados, alm de registrar os problemas e as formas
de resoluo dos mesmos.
Com a apresentao do formato para reviso de requisitos,
encerramos o detalhamento do Fluxo de Requisitos. Aps uma execuo
completa desse fluxo, teremos boas informaes sobre como desenvolver
um produto que atenda s necessidades do cliente, porm ainda sero
necessrias vrias transformaes at que o produto seja construdo.
Algo que devemos ressaltar bastante para os iniciantes no
levantamento de requisitos uma frase contida segundo o autor Pdua
Filho (2003, p. ? ) para desenvolver uma especificao de requisitos
que custa tempo e dinheiro; no faz-la geralmente custa mais tempo e
dinheiro ainda!
exerccios propostos
brevemente/
40 UNIDADE 01
12. Qual a diferena entre requisitos funcionais e no-funcionais?
Acadmico.
Acadmico.
questo 13.
questo anterior.
prottipos?
captulo para modelar alguma tela real de algum sistema que voc
utilize.
REQUISITO DE SOFTWARE 41
1.3 Tcnicas de Apoio ao Levantamento de Requisitos
Durante o levantamento de requisitos so necessrias diversas
reunies que tem como objetivo bsico entender bem as necessidades
dos clientes, alm de avaliar se os dados coletados esto adequados e
consistentes com as necessidades.
Por conta disso so necessrias tcnicas que facilitem a execuo
dessas reunies. Neste captulo apresentaremos justamente tcnicas
apropriadas para os dois casos citados anteriormente. Boa parte do
material deste captulo foi baseada do livro Engenharia de Software de
autoria do Paula Filho (2003).
Oficinas de requisitos
Uma oficina de requisitos
uma forma de identifi-
As oficinas de requisitos so reunies estruturadas para definio
car o que se deseja de conjunta dos requisitos, envolvendo desenvolvedores, usurios e demais
forma conjunta com os
especialistas. O tipo de oficina que ser aqui discutido baseado nas
usurios.
tcnicas de JAD, embora existam variantes na literatura.
As oficinas de requisitos usam uma tcnica estruturada de
conduo de reunies de desenvolvimento, aplicvel a diversas atividades
do ciclo de vida do software, sendo especialmente til no levantamento
de requisitos. Nessas reunies, denominadas oficinas de requisitos,
o levantamento e detalhamento dos requisitos so feitos em conjunto
com a participao de desenvolvedores e usurios chaves, assim como
gerentes, todos unidos para termos uma melhor qualidade no resultado
O levantamento de do trabalho.
requisitos utilizando JAD As oficinas de requisitos tendem a apresentar melhores resultados
normalmente apresenta
resultados muito interes- que os levantamentos baseados em reunies individuais com alguns
santes. usurios. Isso acontece por uma srie de razes, dentre elas:
1. Elas facilitam o comprometimento dos usurios com poder de deciso
e os requisitos;
2. Elas reduzem o prazo de levantamento de requisitos, visto que a
reunio com todos os envolvidos tende a ser mais direta que conversas
individuais setorizadas;
3. Eliminam requisitos de valor questionvel, uma vez que todos so
discutidos nas reunies;
4. Reduzem diferenas de interpretao dos requisitos entre usurios e
desenvolvedores, uma vez que as explicaes acontecem ao vivo e com
diferentes pontos de vista;
5. Produzem um primeiro esboo das interfaces de usurio, a partir do
42 UNIDADE 01
direcionamento dado pelos prprios usurios no momento das reunies;
6. Trazem tona, o mais cedo possvel, problemas polticos que possam
interferir no projeto. Essas oficinas possuem trs partes bem distinta: a
Personalizao, onde so feitas adaptaes do mtodo para a aplicao;
as Sesses propriamente ditas, na qual as reunies so realizadas com
a participao de todos os envolvidos; e o Fechamento com a produo
dos resultados obtidos.
Personalizao
A personalizao da oficina de requisitos uma parte simples do
processo. As equipes so selecionadas e organizadas para que haja a
participao dos usurios chave para as reunies sejam produtivas, alm
de uma orientao sobre como os trabalhos sero conduzidos.
Alm do que foi exposto, so feitas as particularizaes necessrias
ao projeto, bem como a preparao das instalaes a serem utilizadas
para as reunies.
Um ponto importante a se discutir nesse momento : quais so A seleo dos par-
os usurios adequados a participarem de uma reunio de levantamento ticipantes das reunies
algo que pode facilitar
de requisitos? No existe uma resposta genrica e adequada para tal muito o levantamento de
questo, mas existem diretrizes importantes a serem seguidas. Uma requisitos.
dessas diretivas : nas reunies iniciais, onde so determinados o
escopo e os requisitos, mais importante a participao de usurios
com um bom conhecimento do todo, embora no tenha conhecimentos
aprofundados sobre as partes. Tipicamente, esses usurios so as
pessoas da organizao com maior nvel hierrquico. Normalmente chefes,
coordenadores, gerentes, diretores possuem um bom conhecimento do
todo e pouco das partes. Eles so pessoas importantes para as reunies
iniciais de levantamento de requisitos.
Uma vez levantados os requisitos iniciais, torna-se importante ter
contato com as pessoas que possuem mais conhecimentos detalhados
nas partes que compem o produto. chegada a hora de termos o
detalhamento dos requisitos, onde teremos que propor prottipos para as
interfaces, alm de detalhar as regras de negcios do produto. Para isso,
os funcionrios com mais conhecimento dos detalhes e provavelmente
menos conhecimento do todo, so mais importantes.
REQUISITO DE SOFTWARE 43
Sesses
As sesses correspondem realizao efetiva das reunies.
Todos os integrantes da equipe da oficina devem participar das sesses
em tempo integral para que no se perca tempo em recapitulaes para
os ausentes em sesses anteriores. Idealmente, as sesses devem ser
conduzidas em local afastado das organizaes dos participantes, visto
que muito comum que haja diversas interrupes quando so realizadas
nas instalaes do cliente. Assim, uma boa dica levar as sesses para
longe do ambiente dos clientes.
Interrupes so altamente prejudiciais, sendo importante avisar
todos os participantes sobre essas regras. Telefonemas no devem ser
Sem o controle ad-
atendidos, ou seja, preferncia desligar.
equado nas sesses,
o risco de insucesso Deve-se planejar a disponibilidade e necessidade dos materiais,
aumenta bastante! tais como:
1. Computadores: normalmente so necessrios pelo menos 2
computadores (ou notebooks), sendo um para projeo da ER que est
sendo criada e outro para redao da ata da reunio;
2. Projetores: pelo menos um projetor necessrio para que seja possvel
exibir o resultado do trabalho e permitir uma discusso de todos;
3. Copiadoras: eventualmente pode ser necessrio compartilhar material
com os demais participantes;
4. Blocos de escrever, flip-charts, quadros brancos, lpis e canetas: em
muitos momentos ser necessrio escrever, sendo importantes termos
materiais para tal fim;
5. Lanches: as sesses podem durar um turno inteiro, sendo importante
um momento para repor as energias e evitar a desateno nas discusses.
Existem papis importantes nas sesses. Cada um possui uma atribuio
especfica e pode ser decisivo para o sucesso das reunies. Dentre os
papis destacamos:
1. O lder da sesso, responsvel por manter o bom clima e o foco das
discusses, que deve dominar tcnicas de conduo de reunio e ser
treinado na conduo destas oficinas;
2. Os patrocinadores, representantes do cliente, responsveis pela
resoluo de conflitos entre grupos de usurios, com poder de deciso
para tal;
3. Os representantes dos usurios tm autoridade para tomar decises
em nome da respectiva comunidade;
4. Desenvolvedores: fornecem informao sobre a viabilidade das idias
levantadas;
44 UNIDADE 01
5. O relator, participante da equipe do projeto, encarregado de redigir as
atas de reunio.
Durante a discusso, as ideias devem ser registradas e
simultaneamente exibidas a todos os participantes, seja atravs de
quadros brancos, seja atravs do projetor. O lder deve estimular a
participao de todos, mantendo o foco, encaminhando a resoluo de
conflitos e identificando questes que no possam ser resolvidas durante
a sesso. Deve ficar claro para todo o comprometimento que dever
existir em relao s concluses da oficina.
Fechamento
No Fechamento so produzidos os artefatos resultantes da
reunio. Isso normalmente inclui partes da ER e atas. Deve-se ter um
cuidado especial para as pendncias registradas na reunio e que devem
ser resolvidas em uma data acertada por todos.
Normalmente, o fechamento feito apresentando o material
produzido incluindo a Ata para posterior envio e aprovao por parte dos
envolvidos.
No Anexo II exibimos um exemplo de uma Agenda para uma
reunio de levantamento de requisitos e no Anexo III um exemplo de
uma ata para uma reunio. Esse modelo pode ser utilizado para servir de
base para criao desses artefatos em um projeto.
De modo geral, uma ata deve conter um espao para detalhar
os participantes (clientes e desenvolvedores), assuntos discutidos
e pendncias. As atas so importantes, pois alm de registrarem os
assuntos discutidos e envolvidos na discusso, detalha o tempo em que
tais discusses apareceram, mostrando profissionalismo nas relaes,
algo que no comum em todas as empresas que trabalham com o
desenvolvimento de software. Uma reviso um me-
canismo de garantia da
qualidade normalmente
Revises aplicada para verificar ar-
tefatos no executveis.
O Teste de Software algo muito importante no desenvolvimento.
usado para avaliar se o produto construdo est de acordo com os
requisitos identificados. Mas se construmos uma ER, como fazer para
test-la? nesse momento que se torna necessria a realizao de
atividades de garantia da qualidade que tenha como objetivo avaliar o
trabalho realizado. Para os casos em que o produto do trabalho no
executvel, as revises so adequadas.
REQUISITO DE SOFTWARE 45
As revises de software so tcnicas eficazes de garantia da
qualidade. Segundo um grande pesquisador na rea da Engenharia de
Software, Watts Humphrey, as Revises so mais eficazes que os testes
porque se encontra defeitos em um produto nessa fase.
As revises aplicadas no desenvolvimento de software geralmente
so de responsabilidade de um grupo de garantia da qualidade. Como
boa parte das organizaes pequena e no consegue ter um grupo
dedicado somente a isso, necessrio ter no processo uma previso
dessa atividade. O fluxo de requisitos apresentado neste texto contm a
previso de uma reviso no final de sua execuo, devendo ser liderada
pelo Gerente do Projeto, caso no haja um responsvel direto.
Existem diversos tipos de reviso. A reviso tcnica tem como
objetivo avaliar artefatos especficos para verificar se eles esto conformes
com os respectivos padres e se modificaes foram efetuadas de
maneira correta.
A inspeo mais formal que a reviso tcnica. Tem como objetivo
principal identificar e remover defeitos. Para isso, seu resultado deve
gerar uma lista de defeitos com classificao, exigindo dos autores do
artefato revisado providncia para a resoluo dos problemas relatados.
Na reviso de apresentao o autor demonstra o material em
ordem lgica, sem limite de tempo a um grupo que verifica o material
medida que ele vai sendo apresentado. Este tipo de reviso no exige
preparao prvia e pode ser feito com maior nmero de participantes
por terem este papel mais passivo. Podem ser usadas nos marcos de
projeto em que so necessrias apresentaes ao cliente.
A reviso gerencial conduzida pelo gerente de um projeto com
o objetivo principal de avaliar os problemas tcnicos e gerenciais do
projeto, assim como o seu progresso em relao aos planos.
Alm das revises formais, existem diversos tipos de reviso
informal que podem e devem ser usadas. Alguns mtodos geis se
utilizam muito desse tipo de reviso, uma vez que essa prtica de revisar
uma boa prtica no desenvolvimento de software. Dentre os tipos de
revises informais, destacam-se:
1. A programao em pares adotada no XP e outros processos geis.
Essa uma reviso contnua, onde uma dupla trabalha programando
em uma mesma mquina. Um dos integrantes da dupla responsvel
por pilotar o equipamento e o outro por uma reviso permanente do
trabalho sendo executado.
2. A reviso individual realizada pelos autores, seguindo formalmente
46 UNIDADE 01
os roteiros pertinentes, eventualmente com a ajuda de pares.
3. A reviso preliminar realizada por um ou mais pares dos autores, para
eliminar defeitos mais simples do material como ortografia, numerao,
estilos e consistncia.
Participantes
Uma reviso deve ser feita com a participao de diversas
pessoas. No entanto, aconselhvel que esse grupo tenha de 5 a 8
membros, sendo: 1 lder; 1 relator; 1 ou 2 autores; 2 a 4 revisores pares
dos autores; 0 a 2 representantes dos usurios, dependendo do material
em reviso.
O lder da reviso deve possuir algumas caractersticas, conforme
detalhamento a seguir:
1. Ele deve compreender o proposito das revises em geral e entender
seu funcionamento;
2. Ter conhecimentos tcnicos de alto nvel sobre o material a ser revisado;
3. Ter participado de alguma outra reviso como revisor e tambm, de
Um nmero grande de
preferncia, como autor;
participantes inviabiliza a
4. No ter com qualquer um dos revisores alguma dificuldade pessoal produo de bons resul-
que possa interferir em sua habilidade de liderar a reviso. tados em uma reviso.
REQUISITO DE SOFTWARE 47
faz parte da reviso;
8. Evitar discusses sobre detalhes no-pertinentes qualidade do
material em reviso;
9. Limitar-se aos assuntos tcnicos;
10. No avaliar os produtores, apenas o resultado do projeto.
Normalmente, os revisores so desenvolvedores, ou seja, pares
dos autores. Em alguns casos, pode ser desejvel a participao de
usurios como revisores, por exemplo, em revises das especificaes
de requisitos, dos desenhos das interfaces de usurio e da documentao
de usurio. Nesse caso, os usurios devem estar cientes de que estaro
analisando a qualidade do material sob reviso.
Conduo
muito importante deixar bem claro nas reunies que o que est
sendo revisado um trabalho e no seus autores. Isso deve ser frisado
por que comum que haja certas disputas em revises que trazem
tona certos problemas de relacionamento.
preciso deixar muito
Outro ponto chave manter sempre em mente que o objetivo
claro que em uma re- da reviso no detalhar solues, mas apenas apontar problemas e,
viso estamos analisan-
eventualmente, dar sugestes sobre possveis melhorias ao material em
do o trabalho produzido e
no seus produtores. reviso. A descoberta por solues pode levar um tempo muito grande,
inviabilizando a prpria reviso.
Normalmente, a reunio de reviso no deve ultrapassar duas
horas. Deve-se garantir que no sejam feitas interrupes externas
reunio e que os membros da reviso no sejam solicitados por
telefonemas ou trabalhos externos. O lder da reviso deve certificar-se
de que todos os telefones celulares estejam desligados.
Nas revises tcnicas, o material normalmente apresentado na
ordem em que est documentado por um autor ou pelo lder da reviso.
Nas inspees, comum utilizar a ordem por item analisado. Desta
maneira, em cada etapa a equipe de inspeo ter a ateno focalizada
em um aspecto especfico.
A reunio deve ser iniciada pontualmente; nenhum participante
poder mais entrar apos o seu incio. Se a reunio tiver que ser
interrompida ou se algum dos participantes estiver ausente reviso
dever ser cancelada, e nova data para a reviso dever ser marcada
pelo lder.
Uma reviso tcnica realizada de acordo com o seguinte
procedimento:
48 UNIDADE 01
1. O gerente do projeto envia o material para o Grupo de Garantia da
Qualidade (GQ) ou para o grupo responsvel pela realizao das revises,
caso no haja o grupo de garantia da qualidade. O material consiste dos
resultados de uma ou mais atividades de fase do desenvolvimento, como
uma ER, pr-revisados, se necessrio, para eliminar problemas menores
de estilo, ortografia, etc.
2. O GQ convoca os membros da equipe de reviso, escolhe o lder e o
relator desta equipe e distribui os resultados para o grupo de revisores.
3. O grupo de revisores estuda o material e faz a preparao da reviso,
possivelmente registrando suas observaes.
4. O lder comanda a realizao da reunio de reviso e envia os relatorios
para o GQ contendo o resultado do material analisado.
5. O GQ faz o pos-processamento da reviso.
REQUISITO DE SOFTWARE 49
providencie os acertos necessrios. O GQ deve verificar se as correes
devidas foram feitas.
3. Revises maiores: o gerente do projeto solicita equipe do projeto que
corrija o material e pede ao GQ uma nova reviso ao final da correo.
4. Reconstruo: o gerente do projeto investiga as causas dos problemas
detectados, agendando a reconstruo do material, indicando as
provveis falhas para serem observadas.
exerccios propostos
50 UNIDADE 01
14. Quais caractersticas devem estar associadas ao lder de uma
reviso?
15. Quais caractersticas devem estar associadas ao relator de uma
reviso?
16. Quais aspectos de comportamento so importantes para os demais
revisores?
17. Como deve ser conduzida uma reunio de reviso?
18. Quais so os possveis resultados de uma reviso?
Referncias da WEB
REQUISITO DE SOFTWARE 51
52 UNIDADE 01
UNIDADE 2
Anlise de Software
Resumo
Nesta unidade apresentamos o Fluxo de Anlise. Tem como objetivo modelar conceitos
importantes, identificados durante o levantamento de requisitos. Essa modelagem d origem
a diversas classes e diagramas que apresentam a especificao de requisitos sob outra
forma, mais prxima dos desenvolvedores e um pouco mais distante dos usurios finais.
No Capitulo 3 apresentamos a Linguagem UML, um padro de facto para a modelagem de
sistemas e fundamental para execuo do Fluxo de Anlise. Todos os seus elementos sero
descritos, juntamente com um breve detalhamento sobre como utilizar a ferramenta Astah para
modelagem. No Captulo 4 apresentamos o Fluxo de Anlise que so detalhadas s atividades
relacionadas disciplina, apresentando em detalhes a Anlise para nosso sistema exemplo,
os quais detalharo os passos executados para cada atividade. No Captulo 5 apresentamos a
Anlise de Ponto de Funo, que uma tcnica para contagem de sistemas quando esses ainda
no foram implementados e possuem apenas uma Especificao de Requisitos e um Modelo de
Anlise.
ANLISE DE SOFTWARE 53
ANLISE DE SOFTWARE
A Linguagem UML
A modelagem um dos conceitos importantes para o
desenvolvimento de software. Um modelo uma abstrao de algo,
em que nos concentramos nos aspectos fundamentais do que se est
querendo modelar, ignorando os aspectos que no so relevantes.
Modelos so fundamentais no desenvolvimento, pois criam uma
camada de abstrao do que estamos querendo modelar, focando apenas
no que importante. Isso permite que os desenvolvedores consigam
representar algo complexo de forma bem mais simples, explorando
apenas o que se deseja explorar em um determinado momento.
A Unified Modelling Language (UML) ou Linguagem de Modelagem
Unificada em Portugus uma linguagem utilizada para a criao de
modelos. Ela possui uma interessante caracterstica que a fez ser to
difundida: uma linguagem baseada em diagramas, o que a torna muito
mais simples de usar e entender.
Neste trabalho utilizaremos uma ferramenta gratuita para a
modelagem UML. O objetivo possibilitar o uso de uma ferramenta,
aplicando os conceitos de forma prtica. A ferramenta selecionada foi a
ASTAH que pode ser gratuitamente obtida em http://astah.change-vision.
com. Utilizamos a verso community para demonstrar a aplicao prtica
dos conceitos apresentados durante o captulo.
A Origem da UML
At o surgimento da UML existiam diversos processos de software
e diversas linguagens de modelagem associadas aos processos. Isso
gerava muitos problemas, devido ausncia de um padro para se
modelar conceitos de um sistema. Por conta disso, houve uma tentativa
de padronizar os processos e as linguagens de modelagem, gerando
uma unificao dos conceitos associados. Isso deu origem ao Processo
ANLISE DE SOFTWARE 55
Unificado (Unified Process UP) e a UML. Trs processos deram origem
ao UP e UML:
1. Booch Esse mtodo foi criado por Grady Booch e baseada no fato
de um sistema ter diversas vises, cada uma descrita por modelos
e diagramas. O mtodo possua uma simbologia complexa de ser
desenhada mo.
2. OMT O Object Modelling Technique foi desenvolvido pelo General
Electric onde o pesquisador James Rumbaugh trabalhava. Os modelos
prescritos pelo mtodo so compostos por modelos de objetos, funcional
e casos de uso.
3. OOSE/Objectory Os dois mtodos foram desenvolvidos por Ivar
Jacobson. Ambos so baseados na utilizao de casos de uso, a partir da
modelagem dos requisitos iniciais do sistema vistos por um ator externo.
O mtodo Objectory foi adaptado para permitir seu uso tambm para a
modelagem de processos de negcio, fundamentais no funcionamento
de qualquer organizao.
56 56 UNIDADE 02
2. Viso Lgica: descreve como o comportamento ser implementado.
Enquanto a viso de caso de uso est muito mais associada viso
externa do sistema, a viso lgica foca na viso interna, descrevendo os
mecanismos que sero necessrios para que o sistema funcione. Isso
inclui a estrutura esttica, composta por classes, objetos, relacionamentos,
assim como a estrutura dinmica composta por realizaes. A parte
esttica da viso lgica descrita por diagrama de classes e de objetos.
A parte dinmica descrita por diagramas de estado, sequncia,
colaborao e atividade.
3. Viso de Componentes: descreve a diviso da implementao em
mdulos, demonstrando suas dependncias. Essa viso est diretamente
ligada ao diagrama de componentes.
4.Viso de concorrncia: descreve o sistema sob a perspectiva de
diviso em processos e processadores, indicando se haver execues
em paralelo, detalhando a comunicao e a concorrncia existente
no sistema. Essa viso pode ser descrita pelos diagramas dinmicos
(estado, seqncia, colaborao e atividade), alm dos diagramas de
desdobramento.
5.Viso de Organizao: descreve a organizao fsica do sistema,
indicando os computadores, perifricos e suas conexes entre si. Essa
viso ligada aos diagramas de desdobramento.
Modelo de Elementos
Os conceitos utilizados nos diagramas so modelos de
elementos. Eles representam as definies comuns existentes
na linguagem, tais como: classes, objetos, mensagens, atributos
e relacionamentos. Esta seo detalha os principais modelos de
elementos existentes na UML.
Classes
Uma classe uma representao abstrata de um conceito.
Nessa representao tentamos focar os dados relacionados entidade
que est sendo modelada, bem como nas possveis operaes que
podem acontecer sobre esses dados.
Na UML as classes so representadas por um retngulo que
pode ser dividido em at 3 compartimentos: o nome da classe, seus
atributos e as operaes possveis.
A identificao de classes em um sistema feito a partir de
ANLISE DE SOFTWARE 57
uma anlise da Especificao de Requisitos. A notao de classes
da UML independente da linguagem a ser utilizada. Assim, uma
classe representada em UML pode ser gerada em Java, C++, Ruby,
etc.
58 58 UNIDADE 02
Objetos
Os objetos representam instncias de uma classe. De maneira
simples, enquanto que as classes representam conceitos, objetos
representam coisas reais associadas ao conceito modelado. Como
exemplo, na Figura 9 tem a representao do conceito pessoa, indicando
que algo que contm nome, email, celular, etc. Na Figura 11 temos um
exemplo de uma instncia de Pessoa, que possui nome Pedro, email
pedro@gmail.com, etc. Esse apenas um exemplo de Pessoa, mas
muitos outros podem ser criados.
Para criar um objeto, podemos utilizar a barra de ferramentas
exibida na Figura 9. O boto para tal ao o 15o elemento da esquerda
para a direita. Ao se passar o ponteiro do mouse por cima dele ser
exibido o texto InstanceSpecification. Ao clicar no boto, para que ele
fique selecionado, clica-se em qualquer local dentro do diagrama de
classe, um objeto ser apresentado. Depois disso, voc ter que associar
o objeto a uma classe, para que em seguida seja possvel especificar os
valores dos atributos.
Estados
Os objetos normalmente possuem um estado que representa
o resultado das operaes executadas no objeto, sendo normalmente
determinado pelos valores de seus atributos e ligaes existentes com
outros objetos. A Figura 12 apresenta dois estados relacionados a um
objeto Livro. Um livro pode estar livre ou emprestado. Para mudar de livre
para emprestado necessrio que o evento emprstimo seja realizado.
Para mudar de emprestado para livre, necessrio que o evento
devoluo acontea. Os estados de um objeto podem deixar claro seu
funcionamento, sendo uma descrio bastante expressiva e simples de
ser entendida.
ANLISE DE SOFTWARE 59
Figura 12: Exemplos de estados para o objeto Livro.
Pacotes
Um Pacote um agrupamento de itens utilizado para fins de
organizao. De forma geral, esses agrupamentos so feitos para se
manter juntos elementos que possuem algum tipo de relao entre si.
Os pacotes podem ser criados dentro dos modelos UML, a partir do
acionamento do boto direito do mouse em cima do local desejado. De
forma simples, um pacote pode ser comparado a uma pasta dentro do
modelo. A Figura 13 apresenta um exemplo de criao de um pacote em
um modelo UML.
Componentes
Um componente a representao de uma parte do sistema. Isso
pode ser um cdigo na linguagem fonte ou cdigo executvel. Imagine
um sistema feito em Java. Cada arquivo .class pode ser considerado
um componente, assim como qualquer arquivo .java. A Figura 14 exibe
exemplos de componentes criados na Astah.
O uso desse tipo de elemento est diretamente associado ao
projeto de um software. Por conta disso, ele ser pouco explorado neste
material, uma vez que estamos tratando de requisitos e anlise.
60 60 UNIDADE 02
Relacionamentos
Os relacionamentos permitem a ligao de classes e objetos entre
si, estabelecendo uma relao entre eles. Essas ligaes podem assumir
os seguintes tipos: associao, generalizao e dependncia.
Associao
Uma associao cria uma conexo entre as classes ou entre
objetos das classes. Dessa forma, uma associao entre classes indica
que qualquer objeto de uma classe ter uma conexo com um objeto da
outra classe.
A associao simples a forma mais comum de uma associao.
representada por uma linha ligando duas classes, o qual pode possuir
uma seta indicando direo. Isso significa que ela s pode ser usada para
o lado em que ela aponta. No havendo seta, significa que os dois lados
so navegveis. A Figura 15 exibe um exemplo contendo associaes
com e sem direo. Isso significa que podemos obter os Membros a partir
de um Projeto, assim como a partir de Membro podemos obter os Projetos,
uma vez que a associao no possui direo. J a outra associao
indica que podemos obter facilmente os Clientes de um Projeto, mas o
inverso no verdadeiro.
ANLISE DE SOFTWARE 61
relacionamentos, voc deve clicar na associao e visualizar a caixa de
propriedades do item, que normalmente fica localizado no canto inferior
esquerdo da tela da ferramenta Astah.
62 62 UNIDADE 02
contm, faz parte. Uma agregao no possui uma representao
especfica na maioria das linguagens de programao nem necessitam
de um comportamento especial da implementao associada. A Figura
18 exibe um exemplo que mostra que um Projeto contm Membros.
Conforme comentado, a implementao da agregao entre projeto e
membros dever gerar a mesma implementao que uma associao
normal. Observe que uma Agregao representada por um losango
no preenchido. necessrio termos muita ateno com a simbologia
associada UML: o uso de um smbolo errado pode passar uma ideia
completamente diferente do que se desejava!
Generalizaes
Uma Generalizao indica que um elemento herdar todos
os atributos e operaes de outro elemento, podendo ainda incluir
ANLISE DE SOFTWARE 63
comportamento adicional. Nos locais em que esperado um elemento
do tipo geral pode-se utilizar um elemento especfico sem qualquer
problema.
A Figura 20 exibe um exemplo de generalizao. Nela podemos
notar que um Projeto possui um Cliente que a classe genrica. Um
Cliente pode tanto ser uma Pessoa Fsica como uma Pessoa Jurdica.
Dependncias
A Dependncia uma relao mais fraca entre elementos,
indicando que uma alterao em um elemento pode indicar uma
mudana de comportamento em outro. A dependncia muito utilizada
na especificao de arquitetura de um sistema, mostrando que um
determinado sistema depende de tecnologia X, Y, Z. De forma geral,
uma relao mais fraca que a associao, mas indica uma conexo
semntica entre os envolvido.
64 64 UNIDADE 02
e dependente que exibida duas vezes, sendo que parte do lado direito
foi enfatizada a dependncia entre a classe Dependente e conexo, uma
vez que dentro da classe Dependente existe um mtodo que usa um
objeto do tipo Conexo.
Mecanismos Gerais
Na UML existem informaes adicionais que so associados aos
modelos. O grande exemplo disso so as notas. Embora a UML tenha
muita semntica associada s representaes, no possvel modelar
tudo. Dessa forma, uma nota pode ajudar a detalhar certas informaes.
A Figura 22 exibe um diagrama contendo uma nota, especificando uma
regra para a associao de scios e dependentes, utilizando nossa
linguagem natural.
2.2 Diagramas
Na UML existem diversos grficos que descrevem o que existe
em uma viso. Esses grficos so os diagramas, utilizados para criar as
vises do sistema. Existem 9 diagramas na UML que sero apresentados
nas prximas subsees. A criao de um diagrama na ferramenta Astah
feito a partir do menu Create Diagram, exibido quando se clica com o
boto direito em algum pacote do modelo. A partir desse menu, possvel
criar qualquer um dos diagramas existentes. A Figura 23 exibe o menu
para criao de diagramas na ferramenta Astah.
ANLISE DE SOFTWARE 65
Diagrama de Casos de uso
O diagrama de casos de uso exibe os requisitos funcionais de um
sistema. Isso est diretamente ligado ao comportamento que o sistema
dever adotar. Nesse diagrama existem atores, que representam papis
no sistema e casos de uso, que representam as funcionalidades existentes.
A ligao entre atores e caso de uso indica que h comunicao entre
eles. Uma seta direcionada pode ser utilizada para definir o sentido da
comunicao.
A Figura 24 exibe um exemplo de diagrama de casos de uso.
Temos o caso de uso Reserva de livro, associado ao ator Aluno. Nesse
Diagramas de caso de
uso so excelentes para caso, pode-se concluir que um aluno pode reservar um livro, embora
se obter um entendi- no tenhamos detalhes sobre quais so as regras especficas para a
mento rpido sobre um
sistema! reserva. O ator Aluno, nesse caso, representa um papel relacionado a um
grupo de usurios. O outro caso de uso da figura, Invalidao de reserva,
est associado ao ator Tempo. Isso indica que o caso de uso acionado
automaticamente dentro de certos perodos de tempo pr-estabelecidos.
Diagrama de Classes
O diagrama de classes est associado viso esttica de um
sistema. Conforme visto neste captulo, classes podem se associar
a outras classes de diferentes formas (associao, composio,
Diagramas de obje- dependncia, etc.). Um sistema real pode conter um nmero grande de
tos podem facilitar o
classes, sendo necessria a criao de diversos diagramas, cada um
entedimento de classes
complexas, a partir da focando em um aspecto especfico. Uma mesma classe pode aparecer
demonstrao de uma
em diferentes diagramas. Nas figuras anteriores foram apresentados
instncia especfica,
onde podemos demon- diversos diagramas de classe para se explicar os mais diferentes
strar alguns aspectos relacionamentos entre classes.
mais difceis de serem
entendidos.
Diagrama de Objetos
O diagrama de objetos descreve uma instncia especfica de um
diagrama de classe. Sua notao bem prxima do diagrama de classe,
porm, importante frisar que ele exibe as instncias das classes com
66 66 UNIDADE 02
sua configurao de execuo momentnea.
Os diagramas de objetos no so to utilizados nos modelos, mas
servem para esclarecer aspectos importantes de diagramas complexos.
A Figura 25 exibe um diagrama de objetos para o diagrama de classe
apresentado na Figura 19.
Essa apenas uma possvel configurao para o diagrama de
classe comentado. Nele podemos perceber que o Scio Pedro possui
dois dependentes: Ana Clia e Joana. Diversos outros diagramas de
objetos so possveis, desde que eles no violem as restries existentes
no diagrama de classe original.
Diagrama de Estados
O diagrama de estados descreve o comportamento dinmico de
uma instncia de uma classe, normalmente representando seu ciclo de
vida. Esse diagrama importante para descrever classes que possuem
Os diagramas de esta-
objetos com ciclos complexos, uma vez que podemos especificar as
dos mostram a dinmica
aes e condies associadas s mudanas de estado. das classes e so
A exibe um diagrama de estados para um objeto Livro. Ele facilmente entendidos
por usurios leigos, a
inicia livre, pronto para ser reservado, emprestado ou tornado cativo e, partir de um mnimo de
dependendo da funo utilizada, pode assumir outros estados. Um livro explicao.
pode ser reservado, para depois ser emprestado e ento devolvido para
que seja feito novo emprstimo.
No diagrama, temos a indicao que o estado inicial de um objeto
livro livre e que furtado um estado final (sinalizado pelo estado final
ligado ao estado furtado). Um estado final indica que o ciclo de vida
do objeto acabou no sendo possvel mais nenhuma outra transio de
estados.
ANLISE DE SOFTWARE 67
Figura 26: Diagrama de estados para o objeto Livro.
Diagrama de Sequncia
O diagrama de sequncia mostra a troca de mensagens entre
objetos durante a implementao de certos comportamentos. O foco
no diagrama de sequncia mostrar as interaes entre objetos, ao
invs de mostrar apenas o comportamento interno de um objeto. Ele
ainda apresenta a ordem temporal das chamadas, destacando assim a
sequncia das aes invocadas, por isso seu nome.
A Figura 27 exibe um diagrama de sequncia. Os objetos associados
ao diagrama so exibidos na forma de um retngulo, com uma linha tracejada
abaixo. Essa linha chamada linha da vida do objeto, indicando quando o
objeto est vivo durante a execuo do roteiro que est sendo modelado.
As setas entre objetos indicam o acionamento de algum mtodo existente
via troca de mensagens. Na figura podemos notar que o objeto Scio invoca
o mtodo criar do objeto Dependente, acionando os mtodos associar e
salvar logo em seguida. O mtodo salvar, do objeto Dependente, aciona o
mtodo validar, tambm interno a Dependente, que por sua vez aciona o
mtodo validarCPF do objeto til e salvarObjeto do objeto Persistncia. Fica
clara a ordenao temporal das chamadas.
Diagramas de sequncia podem ser utilizados para se detalhar casos
de uso. Essa uma notao alternativa aos textos descrevendo os diversos
fluxos que compem os casos de uso. No entanto, essa alternativa mais
difcil de ser entendida pelos clientes, razo essa que dificulta sua adoo
com essa finalidade.
68 68 UNIDADE 02
Figura 27: Exemplo de Diagrama de Sequncia.
Diagrama de Colaborao
O diagrama de colaborao pode ser considerado como outra
forma de exibio do diagrama de sequncia. Um diagrama pode ser
convertido para o outro, na maioria das ferramentas UML, a partir de um
clique.
A diferena entre os diagramas est no foco: no diagrama de
colaborao enfatizada a troca de mensagens entre objetos e no
sua ordem temporal. O diagrama de colaborao pouco utilizado no
desenvolvimento de software, sendo prefervel o diagrama de sequncia.
Por conta disso, no daremos muita nfase a ele neste trabalho.
Diagrama de Atividades
O diagrama de atividades uma variante do diagrama de estados
na UML. Porm, seu objetivo completamente diferente, enquanto os
diagramas de estados exibem o comportamento interno de um objeto,
o diagrama de atividades exibe as aes associadas a um roteiro,
ANLISE DE SOFTWARE 69
possibilitando detalhar os executores envolvidos e os produtos de
trabalho gerados.
Diagramas de atividades podem ser usados para detalhar etapas
de um processo, descrio de fluxos de um caso de uso e qualquer outro
roteiro que exija a informao das aes associadas.
Neste trabalho, utilizamos diagramas de atividades para descrever
os processos relacionados com requisitos e anlise.
Diagrama de Componentes
O diagrama de componentes exibe a relao entre as partes
que compem um sistema e a organizao dos mdulos. Eles podem
70 70 UNIDADE 02
representar classes, pacotes e subsistemas. Esse tipo de diagrama
muito associado exibio da arquitetura de um sistema, deixando
claro como ele est estruturado, alm de demonstrar sua organizao e
dependncia.
Diagrama de Implantao
O diagrama de implantao exibe a arquitetura de execuo
de um sistema, detalhando os componentes fsicos que executam no
ambiente de execuo utilizado, sendo possvel detalhar que mdulo
funcionar em qual dispositivo e como ser sua comunicao com outros
dispositivos.
Figura 29.1
ANLISE DE SOFTWARE 71
Consideraes Finais
Neste captulo apresentamos a UML. Essa linguagem atualmente
um padro de facto para a modelagem no mundo. Demonstramos sua
diviso e como utiliz-la a partir de uma ferramenta gratuita, a Astah.
No prximo captulo iremos apresentar como usar a UML para modelar
aspectos identificados em uma ER, embora isso j tenha iniciado com
a criao de diagramas de caso de uso durante o levantamento de
requisitos.
exerccios propostos
1. O que um modelo?
2. O que a UML?
3. Qual a origem da UML?
4. O que so as vises da UML?
5. Quais so as vises existentes na UML?
6.O que uma classe? Como ela representada em UML?
7. O que um objeto? Como ele representado em UML?
8. O que um estado na UML?
9. Quando devemos utilizar estados da UML?
10. O que um pacote na UML?
11. O que um componente na UML?
12. Existem diversos tipos de relacionamentos entre classes na UML.
Descreva a associao simples, apresentando um exemplo com nome
dos papis e cardinalidades.
13. O que uma autoassociao?
14. Qual a diferena de uma agregao para uma composio?
15.Cite um exemplo prtico de uma Generalizao, demonstrando isso
no formato prescrito pela UML.
16. O que significa o relacionamento de dependncia?
17.Crie um diagrama de caso de uso para um sistema acadmico, com
pelo menos 4 casos de uso.
18. Crie um diagrama de estados para um sistema acadmico com
pelo menos 5 classes.
19.Crie um diagrama de estado para modelar algo que faa parte do seu
dia-a-dia.
20. Para que utilizamos o diagrama de atividades?
21. Crie um diagrama de atividades para modelar algo em seu trabalho
72 72 UNIDADE 02
ou relacionado ao seu dia-a-dia.
22. Para que serve o diagrama de componentes?
23. Qual o objetivo do diagrama de implantao?
ANLISE DE SOFTWARE 73
Na Realizao dos Casos de Uso so exibidas as interaes entre
objetos para se implementar um determinado comportamento, expresso
na descrio dos casos de uso da ER. A diferena est no formato dessa
descrio, que ser feita na forma de troca de mensagens entre objetos.
A Reviso da Anlise o momento em que o trabalho realizado no
fluxo revisto, no intuito de aumentar a qualidade e evitar que problemas
se perpetuem no restante das atividades de desenvolvimento.
74 74 UNIDADE 02
O prximo caso de uso, Gesto de Membros, nos faz refletir
sobre alguns pontos importantes. Um membro pode ser um Cliente ou
um Engenheiro de Requisitos, conforme consta no caso de uso. Dessa
forma fica a reflexo: ser que necessitamos realmente de uma classe
de entidade para modelar Gerente ou ser que o Gerente de um projeto
tambm no um Membro? No existe uma resposta precisa sobre a
questo, pois o contexto deve ser analisado. No entanto, definimos nesse
trabalho, por achar mais adequado, que devemos ter apenas a classe
Membro. Assim, a classe Gerente, identificada no pargrafo anterior
ser excluda do nosso modelo, ficando apenas Projeto e Membro at o
momento. Isso nos gera o modelo exibido na classe projeto que contm
vrios outros atributos identificados a partir da anlise do caso de uso
Controle de Projetos.
ANLISE DE SOFTWARE 75
Figura 32: Extrao da classe Usurio.
76 76 UNIDADE 02
Figura 33: Modelo do sistema contendo requisitos e alteraes.
ANLISE DE SOFTWARE 77
Fluxo: uma para representar o fluxo principal e outro para representar os
possveis subfluxos existentes. importante ressaltar que essa uma
boa modelagem para o problema, mas difcil de ser percebida para
iniciantes na execuo da Anlise.
78 78 UNIDADE 02
Figura 35: Modelagem dos aspectos relacionados a reviso.
Observe na Figura 35 o resultado da modelagem dos aspectos
ligados a uma reviso. O projeto contm revises que possuem diversos
itens de reviso. Esses itens so os responsveis pelo agrupamento que
indica qual o critrio utilizado, o que est sendo revisado (requisito ou
caso de uso) e qual o resultado dessa avaliao de item em especfico,
dado pelos atributos avaliao e observaes.
Ainda existem dois casos de uso na ER: Gerao da Especificao
e Relatrio de Acompanhamento. Porm, nenhum dos dois acrescenta
dados novos. Com isso ento, finalizamos a identificao das classes de
entidade. O resultado final dessa Anlise mostrado na Figura 36.
ANLISE DE SOFTWARE 79
Figura 36: Modelagem final dos conceitos existentes na ER do ReqG.
80 80 UNIDADE 02
A Figura 37 exibe um diagrama contendo duas classes de fronteira
e uma classe de controle. Essas classes foram criadas para representar as
telas identificadas para os casos de uso Cadastro de Projetos e Controle
de Projetos, alm de uma classe para modelar as regras de negcio
relacionadas a projeto, denominada Regras de Projeto. Essas classes
foram estereotipadas com os esteretipos <<boundary>> e <<control>>.
Isso possibilitou essa apresentao utilizando a forma icnica, onde as
classes se apresentam com imagens no tradicionais.
Os esteretipos do mais poder UML, permitindo classificar
elementos com alguma coisa em comum. Um exemplo para facilitar o
entendimento seria, por exemplo, modelar hospital. Poderamos ter
smbolos especficos para representar mdicos e pacientes. Com isso,
estaramos estereotipando um elemento. Assim, todos os mdicos teriam
o mesmo smbolo, j indicando algumas propriedades e comportamento
associado. Esse smbolo poderia estar associado e uma imagem,
destacando cada elemento em um diagrama.
A Figura 37 nos demonstra que as classes Tela de Cadastro
de Projetos e Tela de Controle de Projetos representam classes de
apresentao (uma vez que esto estereotipadas como fronteira) e
possuem uma associao com a classe Regras de Projeto. Essa classe
contm as regras de negcio relacionado a projetos, uma vez que ela est
estereotipada como controle. Normalmente, ao identificarmos uma classe
j definimos seu esteretipo, embora isso seja uma atividade diretamente
relacionada organizao das classes, apresentada a seguir.
ANLISE DE SOFTWARE 81
membros.
3. Requisitos: contendo os elementos ligados aos requisitos como
os casos de uso, prottipos, atores, fluxos e fluxos alternativos.
4. Reviso: contendo os itens diretamente ligados a uma reviso
como os critrios, itens de reviso e a prpria reviso.
Conforme comentado, o importante criar uma organizao no
projeto que favorea seu entendimento. Se isso acontecer, o resultado
da execuo da atividade foi bom.
82 82 UNIDADE 02
Figura 39: Realizao para o caso de uso Controle de Projeto.
ANLISE DE SOFTWARE 83
exibido na Figura 40. importante mantermos um padro para evitar
dificuldades de entendimento.
Reviso da Anlise
A reviso da anlise o momento de fazermos uma verificao
geral nos diagramas e classes identificadas. A reviso da Anlise pode
ser feita da mesma forma que a reviso dos Requisitos. Os artefatos
so exatamente os mesmos. At mesmo os critrios podem ser iguais.
A mudana est na forma de se avaliar o atendimento aos critrios. Por
exemplo, o critrio completude deveria verificar se todos os atributos
existentes nos prottipos esto modelados nas entidades. Isso um dos
principais itens para a reviso da Anlise e que precisa ser executado
84 84 UNIDADE 02
com bastante ateno.
No Anexo V deste trabalho temos a planilha utilizada para a reviso
do modelo de Anlise, contendo a descrio dos critrios associados,
bem como o resultado da prpria reviso executada.
exerccios propostos
ANLISE DE SOFTWARE 85
que permitam associar um trabalho a uma medida clara e objetiva de
quanto foi gasto para faz-lo.
A Mensurao em software o processo de definir, coletar,
analisar e agir sobre medidas que possam melhorar no s a qualidade
dos produtos, como tambm o prprio processo de desenvolvimento.
fundamental que a mensurao gere dados quantitativos que possam ser
utilizados para auxiliar o processo de tomada de decises.
Muitas coisas podem ser medidas durante o desenvolvimento de
A produtividade uma software. So exemplos dessas possibilidades: o tamanho do produto,
medida fundamental complexidade, esforo necessrio para sua construo, cronograma,
para realizao de
estimativas. Ela indica a etc. Mas uma importante pergunta que devemos fazer : para que
capacidade de produo necessitamos medir o tamanho de um produto de software? Vrias so
por unidade de tempo.
as razes. Apenas medindo que podemos estimar algo. Isso viabiliza
a determinao de preo do produto, alm de facilitar o planejamento do
projeto.
As medidas de tamanho de produtos de software possuem
correlao com o esforo necessrio para sua produo. Conhecendo
tais medidas podemos ser capazes de realizar estimativas com muito
mais chances de acertarmos, uma vez que tendo medidas podemos
encontrar a produtividade da equipe. Com base nessa produtividade
podemos fazer previses para outras situaes.
A Produtividade uma medida importante para a realizao de
estimativas. baseada na medida do produto do trabalho dividido pelo
esforo para produzi-lo. Um exemplo simples disso a produtividade
de um pintor. Imagine que ele consegue pintar 20m2 de parede por dia.
Essa medida, 20m2/dia, pode ser utilizada para nos guiar nas prximas
estimativas. Se existir um servio para pintar 200m2 de paredes,
poderamos estimar 10 dias teis de trabalho.
Da mesma forma, a produtividade relacionada a software pode
nos ajudar em estimativas. Para isso, fundamental que o esforo
dedicado para realizar um trabalho seja cuidadosamente medido, de
forma precisa. De nada adianta termos o registro do esforo se ele no
for preciso. Isso certamente vai gerar estimativas equivocadas. Imagine
como exemplo a medida de produtividade do pintor comentado acima. Se
houvssemos errado na medida do esforo empregado para pintar uma
parede, imaginando, por exemplo, que para pintar 20m2 o profissional
gastou apenas 4h ao invs de 8h, qualquer medida feita com base nessa
produtividade (20m2/4h) estar associada a uma grande taxa de erro.
Dessa forma torna-se claro a necessidade por mensurao, uma
86 86 UNIDADE 02
vez que base para encontrarmos a produtividade que nos permite
realizar estimativas. No entanto, para a rea de software temos um
problema adicional: a mensurao na rea de software no nada trivial!
necessrio utilizar uma medida que seja padronizada, uniforme para
uma aplicao e inteligvel para a populao. Existem algumas medidas
possveis, como linhas de cdigo, casos de uso e mdulos implantados.
Mas vamos ver que tais medidas no so as mais adequadas.
De forma geral, uma boa medida de tamanho deve possuir
algumas caractersticas fundamentais para garantir sua adequabilidade:
1. Ela deve ser deduzida dos requisitos, ou seja, a partir da
especificao de requisitos associadas ao produto deve ser possvel
estimar o tamanho do produto. Um exemplo disso a medida de tamanho
de uma casa, em que normalmente utilizado o tamanho em metros
quadrados. A partir da especificao de produto (casa), detalhando
nmero de quartos, banheiros, salas, possvel deduzir o tamanho da
edificao. Se for realizado um pr-projeto, incluindo uma planta baixa,
essa estimativa tende a ser muito melhorada, uma vez que ela serve
como um prottipo da construo a ser realizada;
2. Ser contvel a partir de um procedimento definido. A medida
deve permitir que a contagem do tamanho do produto seja facilmente
mensurvel quando o mesmo se encontra- completo. Continuando no
exemplo de uma casa, podemos notar que a casa construda fcil
medi-la em m2, permitindo assim uma fcil comparao entre o que foi
estimado e o que foi realmente feito.
ANLISE DE SOFTWARE 87
A resposta para as perguntas anteriores , tambm, relativamente
simples: linhas de cdigo somente podem ser medidas DEPOIS do
produto concludo. No entanto, essa medida no adequada por que
ela no pode ser obtida dos requisitos. Ou seja, ela no pode nos ajudar
em estimativas, pois ela adequada para contar o tamanho de produtos
construdos e no de produtos a construir. Alm disso, a medida em linhas
A medida em linhas de c-
digo muito boa: simples, de cdigo no independente de tecnologia: um produto desenvolvido
baixo custo, bem definida. em Java deve ter tamanho diferente de um desenvolvido em Delphi,
Mas ela s pode ser obtida
DEPOIS do produto pronto!
que deve ser diferente de um desenvolvido em Ruby. Isso no uma
Isso impossibilita seu uso caracterstica boa para uma medida.
para estimar a construo
do produto.
Por esses motivos, foram criadas outras medidas apropriadas
para o desenvolvimento de software. Uma dessas medidas, denominada
pontos de funo bastante utilizada no mundo e objeto de estudo deste
captulo.
88 88 UNIDADE 02
objetivos principais:
1. Possibilitar a mensurao de funcionalidades que um software
oferece aos seus usurios, de forma independente da tecnologia utilizada
para sua implementao;
2. Criar uma forma de contagem que gere um custo adicional
pequeno, no sendo caro realizar a medio e que permita que seu uso
seja feito entre diferentes projetos e organizaes.
Aps sua criao e uso por parte da comunidade, foi possvel notar
que a tcnica de APF possua no somente os benefcios inicialmente
propostos, mas permitia tambm:
1. Determinar o tamanho de uma aplicao j construda, a partir
da funcionalidade nela contida;
2. Determinar os benefcios de um pacote de aplicativos para
uma organizao, baseados em quantas funes eles atendem dentro
do contexto de necessidades existentes, permitindo uma comparao
quantitativa sobre quem atendeu mais em termo de tamanho.
Alm disso, a APF permitiu que o controle de produtividade dos
elementos que fazem parte de uma equipe de desenvolvimento fosse
medido e acompanhado. Isso foi possvel devido ao fato de existir um
mtodo simples para se medir o tamanho de uma funcionalidade, aliada ao
tempo para se desenvolver tal funcionalidade. Isso gera a produtividade
que conforme j foi dito, a razo entre o tamanho de um produto de
trabalho desenvolvido pelo esforo necessrio para sua produo.
Fora a produtividade, foi possvel estabelecer um parmetro de
comparao com outros projetos, permitindo estimar outros recursos
necessrios para uma empreitada. Isso permite um melhor planejamento,
pois independe da tecnologia utilizada, pontos de funo servem para
normalizar os dados relativos a tamanho, permitindo a comparao entre
empresas, tudo isso de forma independente do que usam para produzir
seu trabalho.
De forma geral, as principais vantagens do uso de APF so:
1. Transparncia para o usurio final. Com o uso de APF, o usurio
consegue entender a medida de tamanho relacionada ao produto que
ele deseja. Isso tambm permite o acompanhamento da evoluo do
produto. Isso tambm estimula o prprio usurio e o torna mais ativo no
desenvolvimento.
2. Apoio estimativa de tempo, recursos e custos. O uso de APF
permite estimar o tempo necessrio para desenvolver algo, baseado
em uma comparao da produtividade de uma equipe em projetos
ANLISE DE SOFTWARE 89
passados. A partir dessa base histrica possvel encontrar o tempo
gasto para desenvolver um ponto de funo, permitindo assim estimar
qualquer trabalho que possa ser contado utilizando APF. importante
notar que, mesmo se tivermos um detalhamento do projeto, mesmo que
ele esteja em estgios iniciais de desenvolvimento, possvel j iniciar
as estimativas, pois a contagem pode ser feita de forma preliminar. Essa
outra caracterstica muito interessante.
3. Facilitar contratos de terceirizao. Muitas vezes, uma empresa
terceirizada pode alegar ter trabalho por 100h em parte de um software
sem ter conseguido muita evoluo. Por isso a contagem em horas no
considerada uma forma eficiente para se avaliar contratos terceirizados.
fundamental acompanhar tais contratos pela medida de funcionalidade
desenvolvida em um perodo de tempo. Por conta disso, APF a
tcnica sugerida para acompanhar praticamente todos os contratos de
desenvolvimento existentes nas instituies pblicas.
De forma geral, a APF uma tcnica muito utilizada no mundo
e bastante consolidada. Isso no significa que ela no tenha defeitos.
A contagem de PF
Possuem vrios contextos de uso bem definidos. Iremos tratar disso mais
baseada em 5 elementos:
dados mantidos pela apli- a frente. Por hora, vamos detalhar um pouco melhor como ela funciona.
cao, dados mantidos por
outra aplicao e usados
pela aplicao sendo con- O Processo de Contagem
tada, funes que mudam
dados, funes que con- Muito j falamos sobre APF. Mas como ela funciona exatamente?
sultam dados e realizam Nesta seo trataremos disso. Uma representao dos principais
processamento nesses da-
dos e funes que apenas elementos relacionados contagem de pontos de funo exibido na
consultam dados. Figura 41. Para a contagem temos que levar em considerao cinco
elementos:
1. Arquivo Lgico Interno (ALI) que representa os dados mantidos
pela aplicao.
2. Arquivo de Interface Externa (AIE) que representa dados
utilizados pela aplicao, mas mantidos por outras aplicaes.
3. Entrada Externa (EE) que representa as entradas de dados que
causam mudanas nos ALIs.
4. Sada Externa (SE) que causa a exibio de dados relacionados
aplicao, normalmente exigindo algum tipo de processamento.
5. Consulta Externa (CE) que causa a simples exibio de dados
relacionados aplicao.
90 90 UNIDADE 02
Figura 41: Representao dos principais elementos associados APF.
ANLISE DE SOFTWARE 91
vez que isso ajuda a guiar a contagem.
Podem existir diferentes objetivos para uma contagem. Um
possvel objetivo fornecer insumos para a estimativa do esforo de
desenvolvimento. Podemos contar o tamanho de um software, a partir
da sua especificao, com o intuito de utiliz-lo para estimar o tempo
de desenvolvimento. Isso feito com base em outros projetos conjunto
de aplicaes instaladas. Nesse caso, realizamos uma contagem
apenas para termos o inventrio dos sistemas existentes. Outro
objetivo comparar o tamanho das funcionalidades oferecidas por
produtos concorrentes. Imagine que estamos querendo selecionar
o produto que mais atenda a certa especificao. Poderamos
contar o tamanho de funcionalidade atendida por um e pelo outro,
facilitando assim saber quem mais atende.
Alm do objetivo, necessrio definir o escopo da contagem.
Isso significa que devemos definir um (sub) conjunto do software a
ser medido, utilizando como base o objetivo definido. necessrio
determinar exatamente o que deve ser includo na contagem. Em
alguns casos isso pode incluir mais de uma aplicao.
Em projetos de evoluo, o escopo da contagem pode incluir
todas as funes adicionadas, alteradas ou excludas. Em projetos
de desenvolvimento isso inclui todas as funes construdas ou
customizadas pelo projeto. Em aplicaes inclui toda a funcionalidade
ou apenas a frao que tem valor para o usurio, como por exemplo,
no caso de comparao entre ferramentas que mais atendem certas
funcionalidades.
Para que a contagem acontea, tambm importante definir a
fronteira da aplicao. Isso significa que devemos estabelecer uma
diviso conceitual entre a aplicao e mundo externo, uma vez que
temos que saber exatamente o que est dentro e o que est fora
da aplicao, pois isso tem influncia direta na contagem. Os dados
mantidos pela aplicao possuem contagem diferenciada de dados
apenas consultados, mantidos externamente. fundamental saber
quais so as funes que operam utilizando dados que cruzam a
fronteira da aplicao a partir de transaes.
A fronteira da aplicao deve ser definida com base na viso
do usurio. Ele deve ser independente do escopo da contagem. Ela
deve ser delimitada em reas funcionais, como vistas pelo usurio e
no baseada em consideraes tcnicas. A fronteira dada por aquilo
que o usurio percebe. Assim, analisando a aplicao pela viso do
92 92 UNIDADE 02
usurio conseguimos dizer o que faz parte e o que no faz parte da
aplicao.
ANLISE DE SOFTWARE 93
1. Usurio da biblioteca;
2. Ttulo;
3. Exemplar;
4. Emprstimo;
5. Reserva.
Os AIEs so similares aos ALIs, com a diferena que so mantidos
por outra aplicao e no pela aplicao sendo considerada na contagem.
Ou seja, os AIEs so ALIs em outras aplicaes. Por exemplo, imagine
que em um sistema de biblioteca, no tenhamos os dados de endereo
(logradouro, bairro, cidade, estado) de um usurio. Ao invs disso,
temos apenas o CEP e o nmero. Assim, os dados de endereo sero
considerados como um AIE, pois no sero mantidos pela aplicao.
As funes de transao representam a funcionalidade oferecida
ao usurio para processar os dados da aplicao. Elas podem ser de trs
tipos:
1. Entrada Externa (EE);
2. Sada Externa (SE);
3. Consulta Externa (CE).
Conforme j comentado, uma EE representa alguma funo que
causa algum tipo de mudana em dados mantidos pela aplicao. So
A diferena entre um ALI e exemplo de EE em um sistema de biblioteca o emprstimo de livro, reserva
um AIE simplesmente o
fato que um ALI man- de exemplar, incluso de novo usurio. Cada uma dessas funes deve
tido pela aplicao sendo causar uma alterao em um dado mantido em algum ALI da aplicao.
contada e o AIE no!
Uma SE representa a gerao de dados na forma de um relatrio,
que envolva algum tipo de processamento associado. exemplo desse
tipo de funo o quantitativo de emprstimos por perodo e livros com
maior quantidade de reserva.
Uma CE representa algo parecido com uma SE, porm no
envolve nenhum tipo de processamento complexo para sua gerao. So
exemplos de tais funes a listagem de livros emprestados e usurios
ativos.
Uma vez tendo identificado todas as funes, precisamos contar
os elementos presentes. Para o caso de funes de dados necessrio
contarmos os tipos de registros e os campos de dados envolvidos. Nas
prximas sees iremos fazer isso para o exemplo da apostila. Para cada
funo de transao necessrio contar os arquivos referenciados e os
campos de dados.
A partir dessa contagem podemos classificar cada funo quanto
complexidade, que pode ser Baixa, Mdia ou Alta. Cada tipo de funo
94 94 UNIDADE 02
possui um peso, de acordo com sua complexidade. O peso corresponde
quantidade de PF no ajustados que a funo agrega aplicao.
Somando-se os pesos de todas as funes, podemos obter o total de PF
no ajustados.
A Tabela 7 exibe os pesos associados s funes. Nela temos a
classificao por cada tipo de funo e por complexidade. Uma vez que
saibamos quais so as funes existentes e sua complexidade, basta
obter o seu peso, que j representa o tamanho em PF.
ANLISE DE SOFTWARE 95
Dados (TEDs). Um TER um subgrupo de dados dentro de um ALI/
AIE reconhecvel pelo usurio. Essa definio normalmente traz muitas
dvidas aos contadores, uma vez que essa definio imprecisa. Mas de
modo geral, uma ALI/AIE possui apenas um TER.
O outro elemento associado contagem de ALI/AIE so os
TEDs. Eles representam um campo nico, no repetitivo e reconhecvel
pelo usurio, mantido ou consultado no arquivo durante a execuo de
uma funcionalidade. No entanto, fundamental ressaltar que devemos
considerar apenas os TEDs que so efetivamente usados pela aplicao.
Assim, se um ALI possui 20 TEDs, mas so utilizados apenas 10 na
aplicao, temos que considerar apenas os 10 campos. Alm desses
campos, necessrio considerar os dados necessrios para estabelecer
relacionamentos entre os ALI/AIE.
Entrada Externa
Uma Entrada Externa um processo elementar da aplicao que
processam dados ou informaes de controle que entram na fronteira de
96 96 UNIDADE 02
aplicao, ou seja, tem como principal objetivo manter um ou mais ALIs.
Isso normalmente causa uma alterao no comportamento da aplicao.
O termo processo elementar utilizado para denotar a menor
unidade de atividade que significativa para o usurio. Essa funo
deve sempre levar a aplicao a um estado consistente, sob a tica do
negcio.
importante frisar que para algo ser classificado como uma
Entrada Externa necessria receber dados de fora da aplicao. Isso
significa que pelo menos um ALI deve ser mantido.
Para se identificar uma EE, pelo menos uma das seguintes
condies deve ser satisfeita:
1. A lgica de processamento deve ser nica, diferente das lgicas
executadas por outras EEs;
2. O conjunto de elementos de dados identificado diferente
daqueles identificados para outras EEs;
3. O conjunto de ALIs ou AIEs referenciados diferente daqueles
referenciados por outras EEs.
So casos tpicos de uma EE a incluso, alterao ou excluso de
itens em um cadastro, obteno de mensagens e atualizao de arquivos. necessrio contar apenas
No devemos considerar entradas necessrias apenas em funo da os dados que cruzam a
fronteira da aplicao e que
tecnologia empregada e que no contribuem em nada para o usurio,
fazem sentido para o usurio.
nem parte da entrada das consultas que serve apenas para direcionar a Nada de contar entradas
recuperao de dados como so os casos de parmetros de pesquisa e dependentes de tecnologia
e imperceptveis na viso do
nem telas de entrada para fins de navegao como os menus.
usurio.
Em alguns casos, existem sistemas com mtodos diferentes para
executar a mesma funo. Eles no devem ser considerados EEs. Da
mesma forma, respostas s mensagens de confirmao no cruzam a
fronteira da aplicao.
Uma vez identificada uma EE, necessrio atribuir sua
complexidade. Isso est diretamente ligado identificao dos Tipos de
Arquivos Referenciados (TARs) e Tipos de Elementos de Dados (TEDs).
OsTARs representam o nmero de ALIs/AIEs mantidos ou referenciados
pela EE. Os TEDs representam os campos reconhecveis pelo usurio
que cruzam a fronteira da aplicao durante a EE. Uma vez conhecidos
o nmero de TARs e TEDs, podemos chegar complexidade da funo.
A Tabela 9 exibe a tabela para atribuio de complexidade para
uma EE.
ANLISE DE SOFTWARE 97
TAR TED 1-4 5-15 >15
<2 Baixa Baixa Mdia
2 Baixa Mdia Alta
>2 Mdia Alta Alta
Tabela 9: Atribuio de complexidade para EES.
Sada Externa
Uma Sada Externa (SE) um processo elementar da aplicao
que geram dados ou informao de controle para fora da fronteira da
aplicao. Seu objetivo principal apresentar informaes ao usurio da
aplicao, fornecendo dados que auxiliem suas atividades.
Uma SE funciona a partir de uma lgica de processamento que
envolve a gerao de dados derivados, sendo a diferena de uma SE
de uma CE. Uma SE envolve dados cuja obteno requer algum tipo de
processamento alm da recuperao de campos de ALIs. Se isso no
ocorrer, no se trata de uma SE.
Para a identificao de uma SE, necessrio procurar por dados
ou informaes de controle que devem sair da fronteira da aplicao.
Ressaltando mais uma vez, a lgica de processamento de uma SE deve:
1. Conter pelo menos um clculo ou frmula matemtica;
2. Criar dados derivados;
3. Manter pelo menos um ALI;
4. Alterar o comportamento da aplicao.
Outro detalhe importante que a lgica de processamento utilizada
na SE deve ser nica, diferente daquela executada por outras SEs. Da
mesma forma, o conjunto de elementos de dados identificados deve ser
diferente daqueles identificados para outras SEs, assim como o conjunto
de ALIs ou AIEs referenciados tambm devem ser diferentes daqueles
referenciados por outras SEs. Se isso no se configurar, provavelmente
temos uma nica SE que possui parmetros diferentes e que no deveria
ser contada como outra SE. So exemplos tpicos de SEs:
1. Relatrios que consolidam dados atravs de clculos;
2. Telas de exibio de dados que possuam dados derivados;
3. Exibio de grficos com dados calculados;
4. Transferncia de dados, arquivos ou mensagens enviadas a
outra aplicao, quando isso envolve gerao de dados derivados ou
atualizao de arquivos.
muito importante que no seja considerado como SEs
98 98 UNIDADE 02
relatrios idnticos, com valores de dados diferentes. Uma mudana
em um parmetro, seja a introduo de um parmetro adicional, no
representa uma SE diferente. Da mesma forma, mensagens de erro ou
validao, que fazem parte de outro processo elementar, no podem ser
consideradas SEs. Assim, se no processo de incluso de um elemento
em uma aplicao, for necessrio fazer uma validao que gere um dado
calculado, que ser apresentado e demonstrado como uma mensagem
ao usurio, isso no pode ser considerado como uma SE.
Arquivos enviados a outras aplicaes que no envolvam
dados derivados ou manuteno de arquivos, tambm no podem ser
consideradas SEs.
De forma similar a EE, a atribuio de complexidade a uma SE se
d a partir da identificao dos TARs e TEDs contidos na funo. A regra
tambm bem parecida:
1. Contar um TAR para cada ALI ou AIE lido durante o
processamento da SE de acordo com os requisitos do usurio;
2. Contar um TAR para cada ALI mantido pelo processo
elementar da SE, lembrando que cada ALI conta uma vez, e no cada
TER de um ALI;
3. Contar apenas uma vez os ALIs que so tanto lidos quanto
mantidos;
4. Contar um TED para cada campo no repetitivo reconhecido
pelo usurio, seja ele um campo que entra na fronteira da aplicao ou
que saia da fronteira da aplicao. Se um mesmo TED entra e sai da
fronteira da aplicao, ele deve ser contado apenas uma vez.
Alguns detalhes especiais com relao contagem de TEDs
devem ser especificados. No devemos contar:
1. Numerao de pginas;
2. Campo de data/hora de emisso de relatrio;
3. Literais (strings);
4. Ttulos fixos, nomes de campos, ttulos de colunas, etc;
5. Campos de ALIs mantidos ou consultados, que no cruzem
a fronteira da aplicao;
6. Campos mltiplos que na viso do usurio tenham um
significado nico, como por exemplo, mltiplas linhas de um campo de
endereo.
A Tabela 10 exibe a tabela para atribuio de complexidade para
uma SE.
ANLISE DE SOFTWARE 99
TAR TED 1-5 6-19 >19
<2 Baixa Baixa Mdia
2-3 Baixa Mdia Alta
>3 Mdia Alta Alta
Tabela 10: Atribuio de complexidade para SES.
Consulta Externa
Uma Consulta Externa (CE) um processo elementar que
recuperam dados ou informao de controle para fora da fronteira da
aplicao. Seu objetivo principal apresentar informaes ao usurio, a
partir da simples recuperao de dados de ALIs e/ou AIEs.
Um CE no envolve clculos nem manuteno de ALIs. No
entanto, fundamental que existam dados ou informaes de controle
que saiam da fronteira da aplicao, recuperados de um ou mais ALIs ou
AIEs associados funo.
A lgica de processamento envolvida em uma CE no pode conter
clculos ou frmulas matemticas, nem a gerao de dados derivados ou
a manuteno de ALIs.
O CE tambm segue as mesmas restries associadas a uma SE:
1. A lgica de processamento nica, diferente daquela executada
por outras CEs;
2. O conjunto de elementos de dados identificado diferente
daqueles identificados para outras CEs;
3. O conjunto de ALIs ou AIEs referenciados diferente daqueles
referenciados por outras CEs.
So exemplos tpicos de CEs relatrios que exibem dados
contidos em ALIs ou AIEs, sem clculos, telas de exibio de dados que
no possuam dados derivados e transferncia de dados, arquivos ou
mensagens enviadas a outra aplicao, sem que haja dados derivados
ou atualizao de ALIs.
Existem algumas caractersticas adicionais na contagem de CEs.
So tambm classificados como CEs:
1. Telas de log-on para autenticao de usurios;
2. Ajuda on line. Nesse caso, cada nvel de ajuda (tela, campo)
conta como uma CE distinta;
3. Consultas do tipo lista e combo, normalmente utilizadas para
facilitar o preenchimento de campos em outros processos elementares.
Tambm de forma similar s SEs, no devem ser consideradas
100100 UNIDADE 02
CEs relatrios idnticos com valores de dados diferentes, mensagens
de erro ou confirmao que fazem parte de outro processo elementar e
arquivos enviados a outras aplicaes que envolvam dados derivados ou
manuteno de arquivos.
A contagem tambm feita de forma similar a uma SE: devem ser
contado um TAR para cada ALI ou AIE lido durante o processamento da
CE. A contagem para TEDs similar ao de uma SE. A Tabela 11 exibe a
tabela para atribuio de complexidade para uma CE.
102102 UNIDADE 02
representam um nico ALI que possui 2 TERs (e no 3, pois Usurio
e Membro representam apenas um agrupamento). Como todo membro
deve ter as informaes de usurio, isso representa um nico TER, ao
invs de 2. A classe alterao representa outro TER. Com isso, temos
que Membro um ALI que possui 2 TERs. Com relao quantidade de
campo, possumos as seguintes quantidades:
1. Membro possui 4 campos;
2. Usurio possui 2 campos;
3. Alterao possui 1 campo.
Nossa contagem levar em considerao 10 campos para
Membro, contabilizando os 4 visveis diretamente, 2 de usurio e 2
campos adicionais para permitir seus relacionamentos com projeto, alm
de 2 outros campos para a classe Reviso. Com isso teremos 7 TEDs.
Com isso, a complexidade do ALI Membro pode ser considerada baixa.
A classe Critrio representa um ALI simples, sem agrupamentos.
Ela possui 3 campos, porm, devemos considerar um campo adicional
para o relacionamento com projeto. Assim, a classe critrio tem
complexidade baixa.
A classe Requisito um ALI que possui 2 TERs. Consideramos
isso por conta do relacionamento com Alterao. Requisito possui
7 campos, mas consideraremos 8 por conta do relacionamento com
Projeto. Alterao possui um campo, mas consideraremos 2 por conta do
relacionamento com Requisito. Assim, temos Requisito como sendo um
ALI com 2 TERs e 10 TEDs.
A classe Ator representa um ALI simples, contendo um agrupamento
para alteraes. Ela possui 2 campos, porm devemos considerar um
campo adicional para o relacionamento com Caso de uso. Alterao
possui 1 campo, mas vamos considerar 2 por conta do agrupamento
com Ator. Assim, a classe Ator uma ALI com 2 TERs e 5 TEDs com
complexidade baixa.
A classe Caso de uso provavelmente o item mais complexo do
exemplo. Ela possui diversos TERs:
1. Caso de uso com 6 campos;
2. Alterao com 1 campo;
3. Prottipo com 2 campos;
4. Fluxos com 2 campos;
5. Fluxos alternativos com 1 campo.
No total, Caso de uso um ALI com 5 TERs que possui 18
campos, pois foram contabilizados 8 campos para a classe caso de uso
104104 UNIDADE 02
simplificada. Utilizaremos com base para contagem de TEDs apenas
os campos visveis aos usurios, esquecendo-se de outros detalhes da
contagem. Assim, contaremos os ALIs/AIEs referenciados na funo (que
sero os TARs) e os TEDs envolvidos. Depois disso, faremos a atribuio
de complexidade baseado nas tabelas de atribuio de complexidade De forma similar seo
para EE, SE e CE (Tabela 9, Tabela 10, Tabela 11). anterior, apresentamos
um exemplo de con-
A contagem das funes de transao vai seguir a ordem dos
tagem estimativa para
casos de uso na Especificao de Requisitos do ReqG. O primeiro caso
funes de transao.
de uso o Cadastro de Projeto. A pesquisa por projeto faz com que 2 Voc dever fazer o
campos cruzem a fronteira do sistema. Esses campos so de dois ALIs mesmo para um exemplo
diferentes: Projeto e Membro (gerente). Assim, a pesquisa uma CE que escolhido por voc.
possui 2 TARs e 2 TEDs referenciados. Por conta disso, ela uma CE de
complexidade baixa, conforme Tabela 11. Ainda no Cadastro de Projeto
possvel visualizar os dados, exibindo os trs campos relacionados
(sigla, descrio e gerente). A visualizao tambm possui 2 TARs
(Projeto e Gerente) e 3 TEDs. Ela tambm uma CE de complexidade
baixa. A alterao uma EE que possui 2 TARs e 3 TEDs. Ela uma
EE de complexidade baixa. A excluso um caso diferenciado. Para a
excluso, normalmente apenas o identificador do elemento a ser excludo
cruza a fronteira da aplicao. Por conta disso, utilizaremos sempre
nas excluses o padro de termos 1 TAR e 1 TED. Isso funciona dessa
forma na contagem detalhada, porm existem algumas outras regras
envolvidas.
O segundo caso de uso considerado Gesto de Gerentes.
Podemos realizar uma pesquisa, a visualizao dos dados de um gerente,
uma incluso, alterao e excluso. A pesquisa uma CE que referencia
dois ALIs: Gerente e Projeto. Alm disso, a pesquisa exibe 4 campos.
O restante das funes lida apenas com o ALI Gerente. A visualizao,
incluso e alterao lidam com 5 campos. A excluso, conforme nossa
padronizao, trata de apenas 1 campo.
O prximo caso de uso, Gesto de Membros, parecido com
o caso de uso Gesto de Gerentes. Podemos realizar uma pesquisa,
a visualizao dos dados de um membro, uma incluso, alterao e
excluso. Todas as funes referenciam 2 ALIs: Membro e Projeto. O
restante contar os campos referenciados e atribuir a complexidade.
O caso de uso Controle de Projetos possui apenas 3 funes:
pesquisa, alterao e visualizao. A pesquisa um CE que referencia 2
ALIs, Projeto e Membro. A visualizao e alterao tambm referenciam 2
ALIs, mas exibem vrios campos. Observe que alguns campos aparecem
106106 UNIDADE 02
funes identificadas, nmero de TARs e TEDs envolvidos, complexidade
identificada e valor da funo em Pontos de Funo.
importante frisar que devemos ter um cuidado especial com o
nmero de ALIs referenciados nas funes. Se existir pelo menos um
campo de um ALI envolvido na funo, ento esse ALI referenciado.
Alm disso, temos que contar o nmero de campos associados funo.
Conforme comentamos, utilizamos uma contagem simplificada: contamos
apenas os campos visveis. No trataremos aqui de outros detalhes como
previso de comandos, mensagens, relacionamentos entre elementos,
etc. Isso simplifica o processo de entendimento da APF. No entanto,
frisamos que existem muitos detalhes a serem considerados em uma
contagem detalhada.
108108 UNIDADE 02
rapidamente e com isso ter uma produtividade alta. Porm, se a
qualidade dele no medida, podem ser descobertos tantos erros que
no justifiquem considerar o produto concludo. Assim, fundamental o
controle da qualidade para que tenhamos uma medida de produtividade
efetiva.
Normalmente, a obteno de dados de produtividade segue
alguns passos. Inicialmente, preciso identificar projetos similares, uma
vez que a produtividade pode ser dependente do que se faz. Outro ponto
importante caracterizar o tamanho, linguagem, aplicao, experincia
da equipe e principalmente o processo usado para guiar o trabalho. Com
isso feito, pode-se obter a produtividade para cada projeto.
Assim, pontos de funo uma boa mtrica para ajudar no clculo
de produtividade. No entanto, necessrio ter cuidado com as medies
para no gerarmos dados inconfiveis.
110110 UNIDADE 02
3. APF inadequada para contar a complexidade de aes de
manuteno corretiva, pois difcil expressar as diferenas de uma
verso para outra.
De modo geral, APF possui vantagens e desvantagens, mas
mesmo assim um mtodo bastante utilizado. De qualquer forma,
independente de utilizar APF ou outro mtodo, importante as medidas
para controlar nosso trabalho. Como foi dito pelo famoso escritor Tom
DeMarco: No se consegue controlar o que no se consegue medir.
exerccios propostos
112112 UNIDADE 02
Referncias da WEB
Resumo
Anexo
Teresina - PI
Dezembro de 2010
Aprovao
Sumrio
Introduo................................................................................................. 119
Nome do produto....................................................................................... 119
Escopo do produto.................................................................................... 119
Limites do produto..................................................................................... 119
Definies e siglas....................................................................................120
Definio dos Requisitos........................................................................... 120
Requisitos Funcionais............................................................................... 142
Requisitos No-Funcionais....................................................................... 121
Detalhamento dos Requisitos................................................................... 121
Diagrama de contexto............................................................................... 121
Casos de uso............................................................................................122
Atores........................................................................................................123
118 UNIDADE 03
Especificao dos Casos De Uso............................................................. 123
Cadastro de Projeto..................................................................................123
Gesto de Gerentes.................................................................................. 125
Gesto de Membros.................................................................................. 127
Controle de Projetos.................................................................................. 130
Gesto de Requisitos................................................................................ 131
Gesto de Atores.......................................................................................134
Gesto de Casos de Uso......................................................................... 135
Gesto de Critrios.................................................................................. 139
Reviso.................................................................................................... 141
Gerao da Especificao....................................................................... 145
Relatrio de Acompanhamento................................................................ 146
Introduo
Nome do produto
ReqG: Sistema Gerenciador de Requisitos de Software.
Escopo do produto
Gerenciar os requisitos de um projeto de software via Web,
registrando todos os dados associados sua definio, de forma a cobrir
todas as atividades previstas em um fluxo de requisitos.
Limites do produto
1. O ReqG no controlar a execuo de tarefas no projeto, apenas registrar
os dados relacionados aos requisitos.
2. O ReqG no gerar documentos editveis com a especificao de
requisitos. Os dados ficam registrados no sistema e s podem ser alterados
por ele.
3. O ReqG no controlar qualquer aspecto do custo ou do cronograma de
execuo.
4. O backup e a recuperao das bases de dados do sistema ficam a cargo
da administrao de dados e no sero providas pelo ReqG.
5. O ReqG no ter ajuda on line.
120 UNIDADE 03
Requisitos No-Funcionais
ID Requisito Descrio
O sistema deve funcionar em ambiente
Web, sendo compatvel com os
RNF1 Ambiente principais navegadores do momento:
Internet Explorer, Firefox, Safari e
Chroma.
O sistema deve ser desenvolvido
RNF2 Linguagem utilizando-se a linguagem Java com as
tecnologias JSF e Hibernate.
O sistema deve utilizar o banco de
RNF3 Banco de dados
dados MySQL.
O sistema deve ser construdo
para funcionar com 100 usurios
RNF4 Desempenho
simultneos com respostas de at 5s
quando utilizado em rede local.
O sistema deve restringir o acesso
por meio de senhas. Deve-se ter
RNF5 Segurana um controle no registro de senha
de forma a impedir o uso de senhas
consideradas fceis.
Um usurio com conhecimento bsico
em informtica e conhecimento nos
RNF6 Usabilidade conceitos de requisitos deveria ser
capaz de operar o sistema com um
curso de 30 minutos.
122 UNIDADE 03
Atores
N Ator Descrio
Clientes de um projeto, normalmente respon-
4. Cliente svel pelo fornecimento de informaes para
moldagem do produto.
Responsvel pelo controle do uso do sistema,
5. Administrador liberando acesso aos Gerentes a partir do ca-
dastramento de um projeto.
Cadastro de Projetos
Pesquisa por Projetos
Nome SystemG (texto com at 30 caracteres)
Gerente Silio Silvestre Ferreira Freitas (Texto com at 100 caracteres)
<Pesquisar>
Projetos recuperados
Sigla Gerente
SystemG Silio Silvestre Ferreira Freitas
Frigo Alberto Sobrinho Arajo
TecnoComp Silio Silvestre Ferreira Freitas
<Novo><Alterar><Visualizar><Excluir>
Dados do Projeto
Sigla* ReqG ReqG 1.0 (texto com at 30 caracteres)
Descrio Sistema de Gerenciamento de Requisitos do Projeto (texto com at 255
caracteres)
Gerente* [Lista de Gerentes de Projeto cadastrados no sistema]
<Salvar>
Fluxo principal
1. O ReqG exibe a Tela de Cadastro de Projetos.
2. O Administrador informa os dados para pesquisa por projetos.
3. O Administrador aciona o comando Pesquisar.
4. O ReqG recupera e exibe na lista Projetos Recuperados os projetos que atendem aos
parmetros de pesquisa informados, ordenados pela Sigla em ordem crescente.
124 UNIDADE 03
Fluxo alternativo Visualizao de Dados de um Projeto
Gesto de Gerentes
Prottipo de Tela de Gesto de Gerentes
Gesto de Gerentes
Pesquisa por Gerentes
Nome Silio Silvestre Ferreira Freitas (texto com at 100 caracteres)
Projeto Ferrare 1.0 (texto com at 30 caracteres)
<Pesquisar>
Gerentes recuperados
Nome Login Email Projeto
Silio
Silvestre
Silio siliosffreitas@gmail.com Ferrare 1.0, ReqG 1.0
Ferreira
Freitas
Joo
Jos
Almeida jj jjacavalcante@hotmail.com Genesis 2.0
Caval-
cante
<Novo><Alterar><Visualizar><Excluir>
Dados do Gerente
Nome* Silio Silvestre Ferreira Freitas (texto com at 100 caracteres)
Email* siliosffreitas@gmail.com (email vlido)
Telefone (86) 3224-3678 (texto at 100 caracteres)
Pr-condies
No aplicvel.
Fluxo principal
4. O ReqG exibe a Tela de Gesto de Gerentes.
5. O Administrador informa os dados para pesquisa por Gerentes.
6. O Administrador aciona o comando Pesquisar.
7. O ReqG recupera e exibe na lista Gerentes recuperados os Gerentes que atendem aos
parmetros de pesquisa informados, ordenados pelo Nome em ordem crescente.
126 UNIDADE 03
Fluxo alternativo Visualizao de Dados de um Gerente
1. O Administrador selecionou um Gerente na lista de Gerentes
recuperados.
Pr-condies
2. O Administrador acionou o comando Visualizar.
Gesto de Membros
Prottipo de Tela de Gesto de Membros
Gesto de Membros
Pesquisa por Membros
Nome Pedro da Silva Castro (texto com at 50 caracteres)
[Analista, Programador, Designer, Arquiteto de Software, Fornecedor
Cargo
de Requisitos]
<Pesquisar>
Membros do Projeto
Nome Email Projeto Telefone Papel
Ferrare
Pedro Pedro@email.com (12) 1212-1212 Analista
1.0
Quantum
Lucas lucassld@gmail.com (23) 3443-3433 Design
2.0
<Novo><Alterar><Visualizar><Excluir>
Dados do Membro
Nome* Thiago Alves (texto com at 100 caracteres)
Email* tt@gmail.com (email vlido)
Telefone (086) 9999-9999 (telefone vlido)
Papel* Cliente; Engenheiro de Requisitos
Login Thiago (texto com at 20 caracteres)
Dados do Membro
Senha* Senha (texto com at 20 caracteres)
Fluxo principal
1. O ReqG exibe a Tela de Gesto de Membros.
2. O Gerente informa os dados para pesquisa por Membros.
3. O Gerente aciona o comando Pesquisar.
4. O ReqG recupera e exibe na lista Membros Recuperados os Membros que atendem aos
parmetros de pesquisa informados, ordenados pelo Nome em ordem crescente.
128 UNIDADE 03
Fluxo alternativo Visualizao de Dados de um Membro
1. O Gerente selecionou um Membro na lista de Membros Recuperados
Pr-condies
2. O Gerente acionou o comando Visualizar.
Controle de Projetos
Prottipo de Tela de Controle de Projetos
Controle do Projeto
Pesquisa por projetos
Projeto Estocando (texto com at 30 caracteres)
<Pesquisar>
Projetos recuperados
Sigla Gerente
SystemG Silio Silvestre Ferreira Freitas
Frigo Alberto Sobrinho Arajo
TecnoComp Silio Silvestre Ferreira Freitas
<Alterar><Visualizar>
Dados do Projeto
Projeto SystemG
Gerente Silio Silvestre Ferreira Freitas
Sistema de apoio e controle de requisitos (texto com at
Escopo*
2000 caracteres)
Diagrama de Contexto SystemG_DiagramaContexto.jpg (Imagem)
O sistema no ter monitoramento on line (rea de texto com at
Limites do produto
2000 caracteres)
Instituio responsvel
Ficttica Solues em Informtica (texto com at 100 caracteres)
pela execuo
Pr-condies
No aplicvel.
Fluxo principal
O ReqG exibe a Tela de Controle do Projeto.
O Gerente informa os dados para pesquisa por Projetos.
O Gerente aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Projetos Recuperados os Projetos que atendem aos
parmetros de pesquisa informados e que tenham como Gerente o usurio corrente, orde-
nados pelo Nome em ordem crescente.
O Gerente seleciona o projeto a controlar e aciona o comando Alterar.
O Gerente altera os dados de controle do projeto.
O Gerente aciona o comando Salvar.
O ReqG salva os dados do projeto.
O ReqG envia um email a todos os membros do projeto relatando as alteraes realizadas.
Gesto de Requisitos
Prottipo de Tela de Gesto de Requisitos
Gesto de Requisitos
Pesquisa por requisitos
Projeto Estocando (texto com at 30 caracteres)
Requisito Linguagem (texto com at 30 caracteres)
<Pesquisar>
Requisitos recuperados
130 UNIDADE 03
Nome Descrio Prioridade Projeto
Desenvolvido em
Linguagem Java Alta Ferrare 1.0
Java
Gesto de Proje- Gesto de
Mdia Quantum 2.0
tos Projetos
Reviso dos
Reviso Baixa XMen 1.0
Requisitos
<Novo><Alterar><Visualizar><Excluir>
Dados do Requisito
Identificador* RF1 (formato RFn para funcionais ou RNFn para no fun-
cionais, onde n o prximo nmero natural no associado
a um requisito)
Nome* Linguagem Java (texto at 100 caracteres)
Descrio* O Sistema deve ser desenvolvido em Java para a Web
(texto at 2000 caracteres)
Tipo* [Funcional; No Funcional]
Prioridade* [Alta; Mdia; Baixa]
Complexidade* [Alta; Mdia; Baixa]
Situao* [Identificado; Detalhado; Implementado; Homologado]
<Salvar>
Histrico de Alterao
Data Responsvel Papel Email
10/05/2010 Joaquim Parente Analista joa@gmail.com
15/05/2010 Astulfo Alves Analista astoa@gmail.com
10/07/2010 Silio Silvestre Gerente silio@gmail.com
Fluxo principal
O ReqG exibe a Tela de Gesto de Requisitos.
O Engenheiro de Requisitos informa os dados para pesquisa por Requisitos.
O Engenheiro de Requisitos aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Requisitos Recuperados os requisitos que atendem aos
parmetros de pesquisa informados e que tenham como Membro no projeto o usurio cor-
rente, ordenados pelo Nome em ordem crescente.
132 UNIDADE 03
1. O ReqG verifica que no existe nenhum caso de uso ou reviso
associado ao Requisito.
Passos
2. O ReqG exclui o requisito selecionado.
Gesto de Atores
Prottipo de Tela de Gesto de Atores
Gesto de Atores
Pesquisa por Ator
Projeto Estocando (texto com at 30 caracteres)
Ator Gerente(texto com at 30 caracteres)
<Pesquisar>
Atores recuperados
Nome Descrio Caso de Uso Projeto
Usurio que abre e fecha
Caixeiro UC6,UC8 Estocando
compra
Fiscaliza entrada e sada
Fiscal de ponto UC1 Estocando
de
Reviso Reviso dos Requisitos UC2 Ferrare 1.0
<Novo><Alterar><Visualizar><Excluir>
Dados do Ator
Nome* Caixeiro (texto at 50 caracteres, nico)
Responsvel pela venda de mercadorias (texto at 100 carac-
Descrio*
teres)
[Lista de caso de uso cadastrado no projeto]
Caso de uso
...
associado*
[Lista de caso de uso cadastrado no projeto]
<Salvar>
Histrico de Alterao
Data Responsvel Papel Email
10/05/2010 Joaquim Parente Analista joa@gmail.com
15/05/2010 Astulfo Alves Analista astoa@gmail.com
10/07/2010 Silio Silvestre Gerente silio@gmail.com
134 UNIDADE 03
Projeto Estocando (texto com at 30 caracteres)
Caso de uso Criao de Projetos (texto at 30 caracteres)
<Pesquisar>
Casos de Uso recuperados
Nome Descrio Requisitos Projeto
Gesto de
Criao de Projetos RF01,RF03 Estocando
Projetos
Controle de Gerentes por
Gesto de Gerentes RF01 Estocando
um projeto.
Controle de membros de
Gesto de Membros RF02 Ferrare 1.0
uma equipe
<Novo><Alterar><Visualizar><Excluir>
Dados do Caso de Uso
UC1 (formato UCn, onde n o prximo nmero natural no as-
Identificador*
sociado a um caso de uso)
Nome* Cadastrar Projeto (texto at 100 caracteres)
Cria a conta no sistema para o gerenciamento dos requisitos de
Descrio*
um projeto (texto at 2000 caracteres)
[Lista de atores pr-cadastrados para o projeto]
Ator* ...
[Lista de atores pr-cadastrados para o projeto]
Prioridade* [Alta; Mdia; Baixa]
Complexidade* [Alta; Mdia; Baixa]
Situao* [Identificado; Detalhado; Implementado; Homologado]
Fluxo Principal
Usurio logado no Sistema como Gerente (Texto com at 500 car-
Pr-condio*
acteres)
O ReqG exibe a Tela de Gesto de Casos de Uso.
O ReqG recupera e exibe todos os casos de uso cadastrados.
Passos*
(rea de texto com at 2000 caracteres)
Fluxo Alternativos
Nome Pr-condies Passos
O ReqG faz isso.
Incluso de caso de O usurio acionou o co- O ReqG faz aquilo.
uso mando novo. ReqG salva tudo.
Dados Subfluxos
Incluso de usurio (texto com at 100 caracteres, nico por pro-
Nome*
jeto)
O ReqG exibe a Tela de Gesto de Casos de Uso.
O ReqG recupera e exibe todos os casos de uso cadastrados.
Passos*
(rea de texto com at 2000 caracteres)
136 UNIDADE 03
Fluxo principal
O ReqG exibe a Tela de Gesto de Casos de uso.
O Engenheiro de Requisitos informa os dados para pesquisa por Casos
de uso.
O Engenheiro de Requisitos aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Casos de uso Recuperados os casos de
uso que atendem aos parmetros de pesquisa informados e que tenham
como Membro no projeto o usurio corrente, ordenados pelo Nome em
ordem crescente.
Fluxo alternativo de Alterao do Caso de Uso
1. O Engenheiro de Requisitos acionou o comando
Novo.
Pr-condies
2. O Engenheiro de Requisitos acionou o comando Al-
terar.
138 UNIDADE 03
Gesto de Critrios
Prottipo de Tela de Critrios
Gesto de Critrios
Pesquisa por Critrios
Fluxo principal
O ReqG exibe a Tela de Gesto de Critrios.
O Gerente informa os dados para pesquisa por Critrios.
O Gerente aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Critrios Recuperados os critrios que atendem aos
parmetros de pesquisa informados e que tenham como Membro no projeto o usurio cor-
rente, ordenados pelo Nome em ordem crescente.
Reviso
Prottipo de Tela de Reviso
Reviso
Pesquisar por Revises
Reviso Reviso preliminar de levantamento (texto com at 30 caracteres ).
Projeto SystemG (texto com at 30 caracteres)
<Pesquisar>
140 UNIDADE 03
Revises recuperadas
Projeto Identificador da Reviso Data
SystemG 1.0 Reviso preliminar de levantamento de 31/10/2009
requisitos
SystemG 1.0 Reviso final de detalhamento de requisitos 31/11/2009
SystemG 2.0 Reviso preliminar de levantamento de 17/10/2010
requisitos
SystemG 2.0 Reviso final de detalhamento de requisitos 14/11/2010
ProjetoX 1.0 Reviso inicial de requisitos 12/12/2010
<Nova Reviso><Alterar Reviso><Visualizar Reviso><Reabrir reviso>
Dados da Reviso
Projeto* [Lista de Projetos que possuem o usurio corrente como membro]
Identificador* Reviso preliminar de requisitos (texto at 50 caracteres)
Descrio* Reviso preliminar de requisitos (texto at 50 caracteres)
Data* 12/12/2010 (data no formato dd/mm/aaaa)
[Lista de Membros do Projeto que no sejam clientes]
Participantes dos
...
desenvolvedores*
[Lista de Membros do Projeto que no sejam clientes]
[Lista de Membros do Projeto que sejam clientes]
Fluxo principal
O ReqG exibe a Tela de Reviso.
O Engenheiro de Requisito informa os dados para pesquisa por Reviso.
O Engenheiro de Requisito aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Revises Recuperados as revises que atendem aos
parmetros de pesquisa informados e que tenham como Membro no projeto o usurio cor-
rente, ordenados pelo Projeto e Identificador da reviso em ordem crescente.
142 UNIDADE 03
Fluxo alternativo Incluso de Nova Reviso
Pr-condies 1. O Engenheiro de Requisito acionou o comando Nova Reviso.
Passos 1. O Gerente preenche os Dados da Reviso
2. Para cada Requisito a ser avaliado:
1. O ReqG executa o Subfluxo Avaliao de Requisito.
3. Para cada Caso de uso a ser avaliado:
1. O ReqG executa o Subfluxo Avaliao de Caso de uso.
4. Se desejar excluir alguma avaliao de requisito ou caso de uso:
1. O ReqG executa o Subfluxo
5. O Engenheiro de Requisitos aciona o comando Salvar.
6. O ReqG verifica que no existe uma reviso cadastrada para o
projeto com o mesmo identificador.
7. O ReqG salva os dados da Reviso.
Gerao da Especificao
Prottipo de Tela de Gerao da Especificao
Gerao da Especificao
Informaes do Projeto
Gerao da Espe- SystemG (texto com at 30 caracteres)
cificao
Informaes do Silio Silvestre Ferreira Freitas (Texto com at 100 caracteres)
Projeto
<Pesquisar>
Projetos recuperados
144 UNIDADE 03
Projeto Descrio Gerente
SystemG Criao de um sistema X Silio Silvestre Fer-
reira Freitas
Frigo Projeto muito interessante Alberto Sobrinho
Arajo
TecnoComp Manuteno de algo Silio Silvestre Fer-
reira Freitas
<Gerar Especificao>
Fluxo principal
O ReqG exibe a Tela de Gerao da Especificao.
O Membro informa os dados para pesquisa por Projetos.
O Membro aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Projetos Recuperados os Projetos que atendem aos
parmetros de pesquisa informados e que tenham como Membro no projeto o usurio cor-
rente, ordenados pelo nome do Projeto em ordem crescente.
O Membro aciona o comando Gerar Especificao.
O ReqG gera um documento no formato especificado no arquivo Modelo-ERSw.doc.
Relatrio de Acompanhamento
Prottipo da Tela de Relatrio de Acompanhamento
Relatrio de Acompanhamento
Informaes do Projeto
Projeto SystemG (texto com at 30 caracteres)
Gerente Silio Silvestre Ferreira Freitas (Texto com at 100 caracteres)
<Pesquisar>
Projetos recuperados
Projeto Descrio Gerente
Silio Silvestre Fer-
SystemG Criao de um sistema X
reira Freitas
Alberto Sobrinho
Frigo Projeto muito interessante
Arajo
Silio Silvestre Fer-
TecnoComp Manuteno de algo
reira Freitas
<Gerar Relatrio>
RF3 Gesto de projeto O sistema deve permitir o acompa- Funcional Detalhado (50%)
acompanhamento do projeto pelos membros
ID Caso de uso Descrio Estado
------------------------------------------------------------------------------------------------------------------------
UC2 Gesto de projetos Cadastro de projetos Detalhado (25%)
UC3 Controle de projetos Controle do projeto Implementado (75%)
146 UNIDADE 03
Fluxo principal
O ReqG exibe a Tela de Relatrio de Acompanhamento.
O Membro informa os dados para pesquisa por Projetos.
O Membro aciona o comando Pesquisar.
O ReqG recupera e exibe na lista Projetos Recuperados os Projetos que atendem aos
parmetros de pesquisa informados e que tenham como Membro no projeto o usurio
corrente, ordenados pelo nome do Projeto em ordem crescente.
O Membro aciona o comando Gerar Relatrio.
Para cada requisito contido no projeto:
O ReqG imprime uma linha com o ID, nome, descrio, tipo e estado do requisito, calcu-
lado a partir do estado ou a partir dos casos de uso associados.
Para cada caso de uso associado ao requisito:
O ReqG imprime uma linha com o ID, nome, descrio e estado do caso de uso.
O ReqG soma o percentual de concluso de cada caso de uso, de acordo com o
seu estado, sendo Identificado (10%), Detalhado (25%), Implementado (75%) e Ho-
mologado (100%).
Se o requisito possui casos de uso associados:
O ReqG calcula o percentual de concluso do requisito a partir da soma de todos os
percentuais dos casos de uso dividido pela quantidade de casos de uso.
Se no:
O ReqG calcula o percentual de concluso do requisito a partir do estado do requi-
sito.
O ReqG calcula o percentual de concluso do projeto a partir da soma de todos os per-
centuais dos requisitos divididos pela quantidade de requisitos existentes.
Pauta Prevista:
N Assunto Descrio
1. Apresentao inicial Apresentao do calendrio (programa-
o de datas e pautas) das oficinas;
Pauta adicional:
N Assunto Descrio
1 Assunto 1 Pauta adicional, para ser discutida caso
haja tempo na reunio, apenas uma
forma de preveno.
Documentos necessrios para a realizao da oficina
Pelo Cliente: Algum documento necessrio para se
chegar a alguma funo do sistema, como
normas, leis, exemplos, etc.
Pelos Desenvolvedores: 1. Algum documento ou artefato que pode
ajudar no levantamento de requisitos.
Pendncias a serem checadas:
N Descrio Responsvel
1 1. - -
Observaes:
A Pauta Adicional ser discutida apenas se houver disponibilidade de tempo.
A impossibilidade de participao de algum membro convocado dever ser comunicada,
no mnimo, com um dia de antecedncia da reunio.
Caso algum documento a ser apresentado ou pendncia a ser checada no tenha sido
preparada (o) em tempo, tal fato deve ser comunicado, no mnimo, com um dia de an-
tecedncia da reunio.
148 UNIDADE 03
ANEXO III Exemplo de Ata de Oficina de Levantamento de Requisitos
Tpicos discutidos
N Assunto Descrio
1. Apresentao inicial 1. O planejamento inicial foi apresentado aos
usurios.
2. Sees iniciais da ERSw 1. Foi solicitada a alterao da data de incio do
perodo de reviso da ERSw pelos usurios. O
fornecedor ficou de avaliar se ser possvel.
2. Foi esclarecido que os resultados precisaro
ser acompanhados por outros membros da PLAG.
3. Foi sugerida uma apresentao do trabalho
que est sendo feito para as pessoas envolvidas
do cliente para que as mesmas tomem
conhecimento.
4. O cronograma inicial das oficinas e pautas
sugeridas para cada uma delas foi apresentado
aos usurios. Foi colocado que caso alguma
oficina seja cancelada, esse cancelamento
ter repercusso em todo o planejamento
comprometendo os prazos de entrega da ERSw
e fases posteriores a especificao.
Erratas
Data Tpico incorreto Correo
- - -
Pendncias
N Descrio Responsvel Prazo
5. Agendar uma data para apre- UFPI Em aberto
sentao do trabalho que est
sendo feito para os envolvidos
do cliente.
6. Rever perodo de reviso da UFPI
ERSw pelos usurios.
7. Rever Pautas previstas das ofi- UFPI
cinas.
Data de envio da ata para o cliente
Data 13.01.11
Critrios
Ambiguidade Cada requisito ou caso de uso especificado no possui mais de
um sentido, permitindo assim uma interpretao dbia sobre o seu
significado.
Clareza As regras de negcio e informaes associadas aos requisitos so
claras, permitindo seu entendimento.
Completude Os requisitos esto completamente descritos. No h lacunas que
impossibilitem o entendimento.
No conflitante Existem requisitos com especificao de conceitos conflitantes
com outros requisitos, deixando claro que existe algo errado na
especificao.
150 UNIDADE 03
Nr. Requisito Caso de Ambiguidade Clareza Completude No conflitante Conflitos Defeito Providncia
Uso
1 RF1 - Aprovado Aprovado Aprovado Aprovado - - -
2 RF2 - Aprovado Aprovado Aprovado Aprovado - - -
3 RF3 - Aprovado Aprovado Aprovado Aprovado - - -
Em relao a
ambiguidade, o O requisito foi
acompanhamento reescrito para
dos clientes e detalhar o que
Parece que
gerao da ER o acompan-
o RF4 e RF6
parecem ter hamento. Isso
tratam da
muitos aspectos o diferenciou
mesma coisa,
em comum. Em da gerao da
4 RF4 - No aprovado No aprovado Aprovado Aprovado embora no
relao clareza, especificao,
haja uma clara
no ficou claro evitando a
definio do
o que acom- ambiguidade e
que realmente
panhamento do deixando claro
se trata.
projeto, por conta o que est
disso a super- associado a tal
posio com o requisito.
RF6.
EXEMPLO DE ARTEFATOS
151
152
Caso de
Nr. Requisito Ambiguidade Clareza Completude No conflitante Conflitos Defeito Providncia
Uso
UNIDADE 03
7 RNF1 Aprovado Aprovado Aprovado Aprovado - - -
8 RNF2 Aprovado Aprovado Aprovado Aprovado - - -
9 RNF3 Aprovado Aprovado Aprovado Aprovado - - -
Foi detalhado
como deveria
No foi possvel Falta a de-
ser o padro
entender o que scrio do que
11 RNF5 Aprovado No aprovado Aprovado Aprovado de senhas para
significa uma uma senha
evitar senhas
senha fcil. fcil.
consideradas
fceis.
12 RNF6 Aprovado Aprovado Aprovado Aprovado - - -
13 RF1 UC1 - - -
No foi
No foi especifi-
especificada
cada a ordem
a ordem em
14 RF1 UC2 Aprovado Aprovado No aprovado Aprovado em que os re-
que os resul-
sultados devem
tados devem
ser exibidos.
ser exibidos.
15 RF2 UC3 Aprovado Aprovado No aprovado Aprovado - - -
16 RF2 UC4 Aprovado Aprovado Aprovado Aprovado - - -
Adicionado
No existe a
Identificar o ao prottipo a
especificao
projeto as- informao do
17 RF3 UC5 Aprovado Aprovado Aprovado Aprovado do projeto
sociado ao projeto a ter
associado ao
requisito. um requisito
requisito.
cadastrado.
Caso de
Nr. Requisito Ambiguidade Clareza Completude No conflitante Conflitos Defeito Providncia
Uso
Adicionado
No existe a Identificar o ao prottipo a
especificao projeto as- informao do
18 RF3 UC6 Aprovado Aprovado Aprovado Aprovado projeto a ter um
do projeto asso- sociado ao
ciado ao Ator. ator. ator cadas-
trado.
Adicionado
No existe a Identificar o ao prottipo a
especificao do projeto asso- informao do
19 RF5 UC7 Aprovado Aprovado Aprovado Aprovado
projeto associado ciado ao caso projeto a ter um
ao Caso de uso. de uso. caso de uso
cadastrado.
20 RF5 UC8 No aprovado Aprovado Aprovado Aprovado - -
EXEMPLO DE ARTEFATOS
153
Anexo V
Reviso do Modelo de Anlise
Objetivos do Documento
Registrar os problemas encontradas durante a reviso do Modelo de Anlise do projeto
ReqG juntamente com as providncias adotadas para solucionar tais problemas.
Revisores
Nome email Telefone
Pedro pasn@ufpi.edu.br 8819-7070
Data 13.01.11
Critrios
Ambiguidade Cada classe identificada ou realizao no
possui mais de um sentido, nem existem
diferentes representaes para coisas simil-
ares, que permitam uma interpretao dbia
sobre o seu significado.
Clareza As classes e realizaes so claras per-
mitindo seu entendimento.
Completude Os atributos dos prottipos que devam ser
armazenados esto completamente descri-
tos nas entidades. As realizaes possuem
todos os objetos utilizados. No h lacunas
que impossibilitem o entendimento.
No conflitante As realizaes no possuem conceitos con-
flitantes com outras realizaes. As classes
no possuem atributos conflitantes. Dia-
gramas em diferentes pacotes no contm
modelagens diferentes.
154 UNIDADE 03
Nr. Elemento Ambiguidade Clareza Completude No conflitante Conflitos Defeito Providncia
1 Classe Aprovado Aprovado Aprovado Aprovado - - -
Alteracao
2 Classe Aprovado Aprovado Aprovado Aprovado - - -
Usuario
Foi extrada uma
Os atributos de No estava claro
classe usurio,
usurio estavam o suficiente que
Classe Mem- separando-a de
3 Aprovado No aprovado Aprovado Aprovado dentro da classe os membros do
bro membro. Isso
membro, dificultando projeto eram
tornou mais claro
o entendimento. usurios.
o diagrama.
Foi includo o
relacionamento
No havia a
No havia a modela- de projeto com
Classe modelagem dos
4 Aprovado Aprovado No aprovado Aprovado gem dos membros de membros,
Projeto membros de um
um projeto. representando
projeto.
os participantes,
alm do gerente.
5 Classe Ator Aprovado Aprovado Aprovado Aprovado - - -
Classe Caso
6 Aprovado Aprovado Aprovado Aprovado - - -
de Uso
7 Classe Fluxo Aprovado Aprovado Aprovado Aprovado - - -
Classe Fluxo
8 Aprovado Aprovado Aprovado Aprovado - - -
Alternativo
No havia
necessidade
Foi removida a
de termos uma
Subfluxo no acres- classe e criada
classe subfluxo,
centava nenhuma uma nova as-
Classe Sub- uma vez que
9 No aprovado Aprovado Aprovado Aprovado informao adicional sociao entre
fluxo um subfluxo
a fluxo, sua classe caso de uso
um fluxo e no
genrica. e fluxo, com o
possui qualquer
nome subfluxos.
caracterstica
adicional.
EXEMPLO DE ARTEFATOS
155
156
Nr. Elemento Ambiguidade Clareza Completude No conflitante Conflitos Defeito Providncia
Classe Pro-
10 Aprovado Aprovado Aprovado Aprovado - - -
UNIDADE 03
totipo
Classe
11 Aprovado Aprovado Aprovado Aprovado - - -
Requsiito
Classe
12 Aprovado Aprovado Aprovado Aprovado - - -
Criterio
No havia um atributo
Falta do campo Foi adicionado o
Classe Item para as observaes
13 Aprovado Aprovado No aprovado Aprovado observao na campo classe
de Revisao relacionadas a avalia-
avaliao. Item de Reviso.
o de um critrio.
Classe
14 Aprovado Aprovado Aprovado Aprovado - - -
Revisao
Diagrama de
15 Aprovado Aprovado Aprovado Aprovado - - -
Entidades
Realizao
16 Controle de Aprovado Aprovado Aprovado Aprovado - - -
Projetos
ALISTAIR, COCKBURN, Escrevendo Casos De Uso Eficazes, Editora
Bookman, 2003.
CV. http://lattes.cnpq.br/3452982259415951
158 UNIDADE 03