Professional Documents
Culture Documents
INSTITUTO DE INFORMTICA
PROGRAMA DE PS-GRADUAO EM COMPUTAO
Vedoato, Roberto
Abordagem Baseada em Objetivos para Construo de Casos de Uso e
Cenrios / por Roberto Vedoato. Porto Alegre: PPGC da UFRGS, 2003.
91 f.:il.
Dissertao (Mestrado) Universidade Federal do Rio Grande do Sul.
Programa de Ps-Graduao em Computao, Porto Alegre, BR-RS, 2003.
Orientador: Pimenta, Marcelo.
1. Engenharia de Software 2. Interao Humano-Computador 3. Construo
de Casos de Uso e Cenrios 4. Abordagem Orientada a Objetivos I. Pimenta,
Marcelo Soares II. Ttulo.
Agradecimentos
Agradeo a Deus e a Nossa Senhora, em primeiro lugar, por guiarem meus passos
ao longo da vida;
minha famlia, pais Ademar Vedoato e Oflia Chimento Vedoato e irmos
Flvio Anselmo Vedoato e Valria Vedoato, pelo constante amor, apoio e incentivo,
dando-me suporte para chegar at aqui. Tenho certeza de meu sucesso ser tambm o
deles;
A todos professores do Instituto de Informtica, em especial a meu orientador,
Marcelo Soares Pimenta, pessoa que me inspirou e, desde o princpio, no poupou
esforos para me orientar. Sem dvida, meus conhecimentos em ES e IHC cresceram
profundamente, trabalhando com ele. Ao ilustre mestre, minha sincera gratido;
A meus grandes amigos: Rafael Batistela Parisotto, Fbio Luis Secco, Cssio
Duran Savioli, Bertoldo Prellwitz e Ronald Pablo Meneses pelos ideais e
companheirismo;
Aos colegas de turma, particularmente a Carlos Gomiero Maluf, Dionsio Pinheiro
de Oliveira, Fernando Manchini Serenato, Leonardo Mota Pinheiro e Marcel Watanabe,
pelo esforo coletivo que fez com que obtivssemos maior proveito do mestrado;
A todos aqueles que, de forma direta ou indireta, contriburam realizao deste
trabalho.
Sumrio
Lista de Abreviaturas.................................................................................. 7
Lista de Figuras ........................................................................................... 8
Lista de Tabelas........................................................................................... 9
Resumo ....................................................................................................... 10
Abstract ...................................................................................................... 11
1
Introduo ....................................................................................... 12
2.1
2.1.1
2.1.2
2.1.3
2.1.4
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.3
3.1
3.2
3.2.1
3.2.2
3.2.3
3.2.4
Introduo ......................................................................................................... 29
Algumas Propostas ........................................................................................... 30
Abordagem de Potts ....................................................................................... 31
Abordagem de Cockburn................................................................................ 32
Abordagem de Rolland................................................................................... 33
Anlise Crtica das Abordagens ..................................................................... 34
4.1
4.2
4.3
4.3.1
4.3.2
4.3.3
4.3.4
4.4
4.5
Introduo ......................................................................................................... 36
Atividades Preliminares ................................................................................... 37
Modelo de Casos de Uso................................................................................... 39
Casos de Uso Essenciais................................................................................. 41
Casos de Uso Singulares ................................................................................ 46
Casos de Uso Operacionais ............................................................................ 50
Casos de Uso Concretos (Cenrios) ............................................................... 53
Construo de Casos de Uso ............................................................................ 54
Viso Macro do Processo de Construo de Casos de Uso ........................... 56
5.1
5.2
5.2.1
6
5.2.2
5.2.3
5.2.4
5.2.5
5.2.6
5.2.7
5.2.8
Concluso......................................................................................... 80
6.1
6.1.1
6.1.2
6.2
6.3
6.4
Contribuies .................................................................................................... 80
Compatibilidade com a UML e Resoluo de Aspectos Problemticos ........ 80
Resumo de Resultados.................................................................................... 82
Comparao com Outras Abordagens Baseadas em Objetivos ................... 83
Limitaes ......................................................................................................... 84
Perspectivas de Trabalhos Futuros................................................................. 84
Bibliografia................................................................................................. 85
Lista de Abreviaturas
ATM
CREWS
CTT
ER
ES
GBRAM
GOMS
GRASP
HTA
IHC
IU
LEL
MAD
OMT
OO
OOSE
RC
RNF
TAREFA
UAN
UML
XML
Lista de Figuras
FIGURA 2.1
FIGURA 2.2
FIGURA 2.3
FIGURA 2.4
FIGURA 2.5
FIGURA 2.6
FIGURA 2.7
FIGURA 2.8
FIGURA 2.9
FIGURA 2.10
FIGURA 3.1
FIGURA 3.2
FIGURA 3.3
FIGURA 4.1
FIGURA 4.2
FIGURA 4.3
FIGURA 4.4
FIGURA 4.5
FIGURA 4.6
FIGURA 4.7
FIGURA 4.8
FIGURA 4.9
FIGURA 4.10
FIGURA 5.1
FIGURA 5.2
FIGURA 5.3
FIGURA 5.4
FIGURA 5.5
FIGURA 5.6
FIGURA 5.7
FIGURA 5.8
FIGURA 5.9
FIGURA 5.10
FIGURA 5.11
FIGURA 5.12
FIGURA 5.13
Exemplo de cenrio............................................................................. 16
Ciclo tarefa-artefato ............................................................................ 18
Exemplo de caso de uso na notao de seqncia numerada.............. 21
Exemplo de caso de uso na notao de narrativa com partio .......... 22
Exemplo de diagrama de casos de uso ................................................ 23
Exemplo de relacionamento de incluso............................................. 24
Exemplo de relacionamento de extenso ............................................ 24
Caso de uso com a perspectiva do sistema.......................................... 26
Caso de uso com a perspectiva do usurio.......................................... 26
Modelo de requisitos eixo e raios .................................................... 27
Esquema de casos de uso .................................................................... 31
Metfora do veleiro (sailing ship) ................................................... 33
Metfora da cala-listrada (striped trousers)................................... 33
Viso geral da abordagem teleolgica e dos quatro nveis de abstrao
de casos de uso .................................................................................... 37
Caso de uso essencial estruturado ....................................................... 43
Exemplo de caso de uso essencial....................................................... 44
Sinais de relaes temporais e de ordenao ...................................... 45
Exemplo de singularidade para o caso de uso singular Consultar
extrato ................................................................................................. 46
Esquema gramatical para casos de uso singulares .............................. 48
Exemplo de caso de uso singular ........................................................ 49
Exemplo de diagrama de seqncia .................................................... 52
Exemplo de caso de uso concreto ....................................................... 54
Diretrizes para a descrio textual de casos de uso............................. 55
Modelo de tarefa minimal Sacar Dinheiro, antes da re-engenharia de
tarefas .................................................................................................. 59
Modelo de tarefa minimal Sacar Dinheiro ......................................... 59
Modelo de tarefa minimal Consultar Saldo ........................................ 60
Modelo de tarefa minimal Consultar Extrato ..................................... 60
Exemplos de entradas na notao LEL para o caixa eletrnico.......... 62
Caso de uso essencial Sacar dinheiro ................................................. 63
Caso de uso essencial Consultar Saldo............................................... 65
Caso de uso essencial Sacar Dinheiro, com relao temporal e eventos
assncronos .......................................................................................... 66
Caso de uso singular Sacar Dinheiro.................................................. 68
Caso de uso singular Sacar dinheiro; Pega o dinheiro e o recibo;
Dinheiro no liberado......................................................................... 72
Episdio Pega o dinheiro e o recibo................................................... 73
Objetos identificados no episdio Fornece identificao ao sistema . 75
Diagrama de seqncia para o episdio Fornece identificao ao
sistema................................................................................................. 75
Lista de Tabelas
TABELA 2.1 Viso geral de casos de uso em mtodos OO [REG 96] ...................... 19
TABELA 2.2 Quadro sinttico, destacando diferenas entre cenrios e casos de uso 26
TABELA 3.1 Comparao entre abordagens baseadas em objetivos ......................... 35
TABELA 4.1 Viso macro do processo de construo de casos de uso ..................... 56
TABELA 5.1 Exemplo de alocao de funo para emisso de recibos das transaes
com o caixa eletrnico.......................................................................... 60
TABELA 5.2 Lista informal dos requisitos iniciais do sistema para o caixa eletrnico
.............................................................................................................. 61
TABELA 5.3 Lista ator-objetivo para o caixa eletrnico ........................................... 61
TABELA 5.4 Tabela de singularidades para o caso de uso Sacar dinheiro ............... 70
TABELA 5.5 Tabela de sucesso e falha de episdios para definio dos casos de uso
singulares do objetivo Sacar Dinheiro.................................................. 71
TABELA 5.6 Heursticas para mapear tipos de palavras em componentes de modelo
.............................................................................................................. 73
TABELA 5.7 Lista ator-pseudnimo para o caixa eletrnico ..................................... 76
TABELA 5.8 Episdios do caixa eletrnico ............................................................... 79
TABELA 6.1 Comparao com outras abordagens baseadas em objetivos................ 83
10
Resumo
Para o desenvolvimento de sistemas interativos que respeitem critrios de usabilidade
em adio aos critrios de qualidade convencionais, necessrio que, desde suas
primeiras etapas, as reas de Engenharia de Software (ES) e de Interao HumanoComputador (IHC) sejam consideradas, simultaneamente e de maneira integrada. Essas
duas reas investigam modelos, conceitos, tcnicas e prticas que refletem diferentes
perspectivas sobre a atividade de desenvolvimento, uma orientada mais ao sistema (ES)
e outra, mais ao usurio (IHC). Para conciliar estas perspectivas, necessrio o
estabelecimento de um entendimento mtuo e a utilizao conjunta e integrada de
conceitos, tcnicas e prticas de desenvolvimento de ambas as reas. Este trabalho visa
mostrar as possibilidades desta integrao, atravs da combinao dos conceitos de
Casos de Uso (Use Cases) e Cenrios (Scenarios), importantes tcnicas de modelagem
amplamente utilizadas respectivamente nas reas de ES e IHC, em diferentes contextos,
com diferentes vises; mas apresentando similaridades valiosas para propiciarem o uso
complementar de ambas as tcnicas. Para sistematizar esta integrao, proposta uma
abordagem teleolgica baseada em objetivos de construo sistemtica de casos de
uso com quatro diferentes nveis de abstrao, desde os mais abstratos casos de uso
essenciais at os cenrios, aqui utilizados como instncias concretas de casos de uso.
Com esta abordagem, pretende-se construir um modelo de casos de uso que permita
especificar requisitos funcionais, conjuntamente com requisitos de interao, de maneira
compreensvel e praticvel e que sirva como ponto de partida continuidade do
desenvolvimento orientado a objetos de software. Com o intuito de exemplificar a
proposta, descrita e discutida a aplicao passo a passo desta abordagem a um
exemplo.
Palavras-chave: Engenharia de Software, Interao Humano-Computador, Construo
de Casos de Uso e Cenrios, Abordagem Orientada a Objetivos.
11
TITLE: GOAL-BASED APPROACH FOR CONSTRUCTION OF USE CASES
AND SCENARIOS
Abstract
For the development of interactive systems that respect usability criteria in addition to
the conventional quality criteria, it is necessary to consider simultaneously and jointly
from their first stages, the areas of Software Engineering (SE) and of Human Computer
Interaction (HCI). Those two areas investigate models, concepts, techniques and
practices that reflect different perspectives about the development activity, one more
oriented to the system (SE) and other, more to the user (HCI). To conciliate these
perspectives, it is necessary the establishment of a mutual understanding and the united
and integrated use of concepts, techniques and practices of development of both areas.
This work aims to show the possibilities of this integration, through the combination of
the concepts of Use Cases and Scenarios, important modelling techniques widely used
respectively in the areas of SE and HCI, in different contexts, with different visions; but
presenting valuables similarities to propitiate the complemental use of both techniques.
To systematize this integration, is proposed a teleological approach - goal-based - of
systematic construction of use cases with four different abstraction levels, from the most
abstract essentials use cases to the scenarios, here used as concrete instances of use
cases. With this approach, it intends to build a use case model to allow to specify
functional requirements, jointly with interaction requirements, in a comprehensible and
practicable fashion and that serves as starting point to the continuity of the object
oriented software development. With the intention of exemplifying the proposal, the
application step by step of this approach to an example is described and discussed.
Keywords: Software Engineering, Human Computer Interaction, Use Cases and
Scenarios Construction, Goal-Driven Approach.
12
1 Introduo
Freqentemente, sistemas interativos so desenvolvidos com vises isoladas das
reas de Engenharia de Software (ES) e de Interao Humano-Computador (IHC). ES,
tradicionalmente, prioriza aspectos essencialmente funcionais dos sistemas, como
eficincia, manutenibilidade e portabilidade, conferindo ao desenvolvimento uma
orientao funcional em detrimento da operacional. J IHC foca principalmente a
usabilidade dos sistemas, concentrando ateno aos aspectos de interao e no
considerando adequadamente os aspectos enfatizados pela ES [CYB 98]. Essas duas
abordagens refletem diferentes perspectivas, uma mais orientada ao sistema
(tecnolgica) e outra mais orientada ao usurio (humana), sobre a mesma atividade de
desenvolvimento.
Recentes trabalhos de pesquisa convergem para idia central de, para desenvolver
sistemas interativos teis e usveis, ser necessrio considerar as perspectivas de ES e
IHC, desde as primeiras etapas do desenvolvimento do sistema, exigindo a utilizao
conjunta e integrada de conceitos, tcnicas e metodologias de desenvolvimento de
ambas as reas. Porm, essa interseo no ainda nem natural nem objetiva: cada rea
considera aspectos diferentes e, muitas vezes, disjuntos do sistema, sem nenhuma
correspondncia explcita e sistematicamente estabelecida, tendo como conseqncia o
fracionamento de requisitos [PIM 2000]. Compor o desenvolvimento de sistemas com
grupos multidisciplinares, com diferentes pontos de vista sobre o processo de
desenvolvimento, tem como potencial problema promover um entendimento mtuo da
mesma tarefa de desenvolvimento e dos objetivos comuns [ABO 94].
Esta dissertao visa mostrar as possibilidades desta integrao, atravs da
combinao dos conceitos de Casos de Uso (Use Cases) e Cenrios (Scenarios),
importantes tcnicas de modelagem, amplamente utilizadas, respectivamente nas reas
de ES e IHC, em diferentes contextos, com diferentes vises; mas apresentando
similaridades valiosas para propiciarem o uso complementar de ambas as tcnicas.
Ambos so descries narrativas. Cenrios so utilizados em IHC para diversos fins,
todavia particularmente teis para inspecionarem atividades humanas ao usar um,
presente ou futuro, artefato [CAR 95] e mediarem a comunicao entre grupos
multidisciplinares, enquanto que casos de uso so usualmente utilizados, em ES, para
modelarem requisitos funcionais e manipularem modelos de objetos [JAC 94a].
Baseando-se em estudo realizado previamente [VED 2001], tem-se a convico de
serem conceitos valiosos para combinar as diferentes perspectivas das duas reas
citadas, permitindo uma busca integrada da qualidade interna e externa dos sistemas.
Fazendo uso do conceito de nveis de abstrao e partindo do enfoque de que cenrios
so instncias concretas de casos de uso, podem-se combinar os propsitos e usos
complementares de ambas as tcnicas.
Contudo, abordagens apontam que casos de uso apresentam problemas
conceituais [REG 95a, REG 95b] e a maneira pela qual so comumente usados na
Unified Modeling Language (UML) [BOO 99], no considera adequadamente aspectos
de usabilidade [CON 2000b].
Vrias pesquisas tm focado, principalmente, as funes e os usos de cenrios e
casos de uso, no processo de desenvolvimento de sistemas, enquanto que o processo de
13
construo destes, muitas vezes, negligenciado. Desenvolvedores, freqentemente,
no sabem como identificar casos de uso, o que incluir neles, qual o nvel de
detalhamento, como represent-los e como estrutur-los. A abordagem original de casos
de uso [JAC 92, JAC 94a, JAC 94b, JAC 94c], posteriormente adotada na UML, no
define precisamente nenhum formato especfico para descrever seus contedos, nem um
processo sistemtico para constru-los. A falta de guias para a construo de casos de
uso certamente uma das desvantagens das abordagens baseadas em casos de uso para
Engenharia de Requisitos (ER). Caso no sejam devidamente construdos, ou, ainda,
sejam ambguos, incompletos ou inconsistentes, as interaes que os casos de uso
representam tambm herdaro essas propriedades [ROL 98a].
Ao se criar um software, no se planeja e se desenvolve apenas um artefato,
criam-se novas possibilidades para aes e interaes humanas [CAR 95]. Todo
software uma ferramenta. Como boa ferramenta, deve suportar o trabalho de algum,
tornar o trabalho mais fcil, mais rpido, mais simples e mais flexvel. Para
desenvolverem-se sistemas que suportem adequadamente o uso, trabalhos de pesquisa
enfatizam que se precisa entender melhor as tarefas realizadas pelas pessoas e aplicar de
maneira mais eficiente a compreenso das tarefas no processo de desenvolvimento de
software (ver ciclo tarefa-artefato [CAR 95] na seo 2.1.4).
As atividades de pessoas, no trabalho, podem ser descritas como tarefas.
Segundo [STO 95] o termo tarefa definido como: uma tarefa um objetivo junto
com conjuntos ordenados de aes que o satisfariam em contextos apropriados.
Baseando-se na teoria da ao, sabe-se que, antes de executar uma seqncia de aes,
elaboram-se planos, e o ponto inicial de um plano a formulao de um objetivo
[CAR 95]. Seguindo esta perspectiva, est claro que, para desenvolver um sistema
interativo, necessrio, em primeiro lugar, conhecer os objetivos dos usurios para,
ento, propor a especificao dos mecanismos que sustentaro as tarefas necessrias
para alcan-los.
Trabalhos de pesquisa j reconhecem a importncia da relao entre objetivos e
casos uso. Segundo Kaindl, somente se pode entender as interaes descritas em um
caso de uso, quando se conhece seu objetivo [KAI 95]. Quando se est familiarizado
com um sistema, os objetivos das interaes parecem bvios; todavia, no processo de
elicitao de requisitos e modelagem de tarefas de um novo sistema, ainda
desconhecido, saber o objetivo uma informao crucial para a compreenso de cada
caso de uso.
Na realidade, outras abordagens tambm consideram serem os objetivos
fundamentais para construo de cenrios e/ou casos de uso [KLA 93, POT 95, KAV
96, REG 96, COC 97a, COC 97b, ROL 98b, CON 2000a]; porm poucos oferecem um
modo de se utilizarem complementarmente as duas tcnicas para a determinao dos
requisitos. Na maioria das abordagens, ou no existe uma notao para objetivos, ou no
existe um processo sistemtico de construo e validao de casos de uso, a partir dos
objetivos, ou, at mesmo no, existem ambos.
Para sistematizar esta integrao, este trabalho tem como principal objetivo
investigar os conceitos de cenrios e casos de uso e propor uma abordagem teleolgica
baseada em objetivos de construo sistemtica de casos de uso com quatro
14
diferentes nveis de abstrao, desde os mais abstratos casos de uso essenciais at os
cenrios, aqui utilizados, como instncias concretas de casos de uso.
Prope-se uma abordagem que, a partir de um modelo explcito de objetivos dos
usurios, refinados e representados, permite definir, refinar e representar os objetivos do
sistema que serviro como base para a construo de casos de uso em quatro diferentes
nveis de abstrao, essencial, singular, operacional e concreto, cada um relativo a um
tipo de conhecimento especfico.
A abordagem um processo interativo e iterativo de construo, refinamento,
experimentao, modificao e integrao de casos de uso. Prope-se a construo de
casos de uso essenciais, nvel mais abstrato, pelo analista, a partir dos objetivos; ainda
pelo analista, o refinamento de casos de uso essenciais, visando definir casos de uso
singulares; a instanciao dos casos de uso concretos, cenrios; e, quando desejvel, a
definio dos casos de uso operacionais, a partir dos casos de uso singulares; a
experimentao e avaliao da funcionalidade e do comportamento dos cenrios pelos
usurios, visando investigar suas reais necessidades; a reviso dos casos de uso pelo
analista, procurando adequ-los s expectativas dos usurios; e, finalmente, a
integrao, pelo analista, dos casos de uso obtidos neste processo recursivo.
Com esta abordagem, pretende-se construir um modelo de casos de uso que
permita especificar requisitos funcionais conjuntamente com os de interao, de
maneira compreensvel e praticvel e que sirva como ponto de partida para a
continuidade do desenvolvimento orientado a objetos de software.
Os objetivos especficos do trabalho so os seguintes:
Combinar os conceitos de cenrios e casos de uso, contemplando mutuamente
as perspectivas de ES e IHC;
Promover uma abordagem de construo de casos de uso centrada no uso
(usage-centered);
Investigar e adotar notaes casos de uso adequadas para cada nvel de
abstrao;
Considerar aspectos problemticos de casos de uso, abordados por
pesquisadores da rea, e propor maneiras de resolv-los ou contorn-los;
Sistematizar a construo de casos de uso e cenrios, conduzindo e orientando
o autor do caso de uso, atravs de diretrizes, heursticas e templates;
Permitir compatibilidade com tcnicas de modelagem conhecidas por grande
parte dos desenvolvedores, como, por exemplo, a UML, de modo a
possibilitar a continuidade do desenvolvimento;
Acredita-se que a combinao de casos de uso e cenrios com uma boa
compreenso das tarefas e do contexto organizacional em que elas so executadas,
juntamente com a explicitao dos objetivos, previnam a possibilidade de que
especificaes se tornem desencontradas das reais necessidades dos usurios e devam
ser a base para um processo de desenvolvimento de software interativo.
Com o intuito de exemplificar a proposta, descrita e discutida a aplicao passo
a passo desta abordagem a um exemplo.
15
O restante do trabalho estruturado como segue: no prximo captulo, conceitos e
fundamentos de cenrios e casos de uso, sob a tica, respectivamente, de IHC e ES, so
apresentados e discutidos; em seguida, no captulo 3, apresenta-se uma viso
panormica sobre abordagens teleolgicas e comparam-se algumas propostas; no
captulo 4, apresenta-se a proposta; e, no captulo 5, ilustra-se a aplicao passo a passo
da abordagem ao exemplo do caixa eletrnico; por fim, no captulo 6, so apresentadas
consideraes finais e perspectivas de trabalhos futuros.
16
Aplicao
Notao
17
2.1.3
Estrutura
Uso
Cenrios so utilizados tanto de maneira formal quanto informal, variando seu uso
de partes constituintes do processo de desenvolvimento; por exemplo, no
desenvolvimento baseado em cenrios e no desenvolvimento participativo de software;
at usos mais espontneos; por exemplo, para propsitos de comunicao [KLA 93].
Em geral, desenvolvedores parecem no considerar cenrios como parte
integrante do mtodo de desenvolvimento [ABO 94]. Estudos empricos demonstram
que programadores avaliam projetos, simulando cenrios mentalmente [BEN 93]. O uso
informal de cenrios pode ser observado, quando desenvolvedores tm algum ponto de
discordncia, exploram opes de projeto, procuram esclarecer requisitos do sistema
etc. [KLA 93].
Quando utilizados de maneira informal, cenrios so construdos ad hoc, nenhum
mtodo especfico utilizado para ger-los ou avali-los [ABO 94]; seus contedos
provem de muitas fontes diferentes, desde experincias dos desenvolvedores e
conhecimento do domnio a reais observaes dos usurios. No existem compromissos
com o que um cenrio deve conter ou o quo representativo deve ser para uma futura
situao de uso [KLA 93]. Os usos informais ou implcitos de cenrios so
predecessores dos usos mais formais ou explcitos.
Segundo Carroll [CAR 95], o desenvolvimento tecnolgico tem sido dificultado
pela incompleta compreenso da prtica. Geralmente, computadores so vistos como
artefatos da atividade humana por meio de especificaes funcionais, o que gera uma
viso idealizada de uso, no de como um usurio ativaria uma funo e experimentaria
seus efeitos. Computadores so mais do que funcionalidade. Eles inevitavelmente
reestruturam atividades humanas, criando novas possibilidades, assim como novas
dificuldades [CAR 2000]. Cenrios so meios concretos para descreverem situaes
existentes e para projetarem futuras situaes de uso, facilitando a comunicao efetiva
entre usurios e desenvolvedores sobre os requisitos do sistema e opes de projeto.
Extrair dos usurios aquilo que desejam e de que necessitam no uma tarefa
fcil. A cincia cognitiva tem demonstrado que a inteligncia humana est organizada
em chunks, que reconhecem e respondem a situaes especficas. A resoluo de
problemas, pelos humanos, tende a ser altamente situada; por exemplo, ao invs de
realizarem planos detalhados antecipadamente, pessoas respondem aos detalhes de uma
situao, conforme eles aparecem [BEN 93]. Representar o uso de um sistema atravs
de um conjunto de cenrios torna o uso explcito, isso pode ajudar a programadores e
analistas a focarem ateno na compreenso das pessoas e suas tarefas, aspectos, muitas
vezes, implcitos nos sistemas [CAR 2000]. O real uso de um sistema pode ser
concretamente descrito por um conjunto de cenrios [CAR 95].
Enquanto abordagens tradicionais lidam com a complexidade do processo de
desenvolvimento, atravs de abstrao, o desenvolvimento baseado em cenrios utiliza
concretizao. Ao invs de desenvolver software, listando requisitos, funes e mdulos
18
de cdigo, o desenvolvedor foca primeiramente as tarefas dos usurios que precisam ser
suportadas pelo sistema e, ento, atravs de cenrios, realiza descries dessas para
guiar todo o processo de desenvolvimento.
Na abordagem baseada em cenrios, estes so construdos, baseados no ciclo
tarefa-artefato: as tarefas que as pessoas esto engajadas e aquelas que elas desejam
realizar definem os requisitos da futura tecnologia, incluindo novos artefatos de IHC. Os
novos artefatos criam novas possibilidades para as tarefas humanas, novas maneiras de
executar coisas familiares e atividades completamente novas para fazer; mas, tambm,
criam novas complexidades de aprendizagem e performance, novas interaes entre
tarefas e, naturalmente, novas dificuldades e novos erros para as pessoas. Essas
novidades, eventualmente, tornam-se requisitos dos prximos desenvolvimentos
tecnolgicos, provocando novas transaes [CAR 95]. A figura 2.2 ilustra o ciclo tarefaartefato.
19
Por definio, o termo caso de uso, introduzido nesta metodologia, no
sinnimo do termo cenrio. Um cenrio deve ser entendido como uma instncia
especfica de um caso de uso [JAC 94a], ao passo que o caso de uso uma coleo de
cenrios, representando mltiplos caminhos.
A idia geral de um caso de uso representar seqncias de interaes entre um
sistema, mesmo que ainda no implementado, e o mundo externo ao sistema; ou seja,
descreve maneiras de usar um sistema.
Muitas metodologias de desenvolvimento de software possuem alguma noo de
casos de uso. Em [REG 96] pode-se encontrar uma viso geral, na forma de uma tabela
comparativa, sobre como casos de uso so aplicados s metodologias Orientadas a
Objeto (OO): OOSE, Object Modeling Technique (OMT) e Booch. A tabela 2.1 uma
transcrio parcial desta viso geral.
TABELA 2.1 Viso geral de casos de uso em mtodos OO [REG 96]
Metodologia
Conceitos
Notao na fase de
anlise de requisitos
Funo no processo de
desenvolvimento
Metodologia para
criao de casos de uso
OOSE
Casos de uso, ator,
exceo, extenso
(extends), incluso
(uses).
Linguagem natural para
descrever casos de uso.
Diagramas para
descrever relaes entre
casos de uso.
Guia todo processo,
usado para identificar
objetos e para criar
projetos robustos.
Algumas heursticas.
Questes para responder
a cada ator ajudam a
identificar casos de uso.
OMT
Booch
Caso de uso, ator,
Caso de uso, cenrio,
cenrio, pr e psiniciador, pr e pscondio, exceo, adds. condies.
Linguagem natural com
algumas recomendaes
para estruturao.
Linguagem natural.
20
UML linguagem de modelagem, no metodologia, portanto somente parte do
mtodo de desenvolvimento de software. A UML no prescreve explicitamente um
processo de utilizao; porm, para obter maior proveito da UML preciso que o
processo tenha a caracterstica de ser baseado em casos de uso. Isto significa que casos
de uso so utilizados como principal artefato para estabelecer o comportamento
desejado do sistema, para verificao e validao da arquitetura do sistema, para a
realizao de testes e para comunicao entre os envolvidos no desenvolvimento do
sistema [BOO 99].
A definio formal de caso de uso, segundo a UML [BOO 99], Caso de uso
uma descrio de um conjunto de seqncias de aes, inclusive variantes, que um
sistema realiza para produzir um resultado de valor observvel a um ator.
Um ator representa um agente externo ao sistema que de alguma forma participa
de um caso de uso. chamado de ator um papel que uma pessoa, um dispositivo de
hardware, ou, at mesmo, outro sistema desempenha com o software [BOO 99]. Atores
ajudam a delimitar o sistema em desenvolvimento, por representarem agentes externos
que interagem com o mesmo.
Existe distino entre os conceitos de ator e usurio. Usurio um conceito no
formal. Ator representa um papel especfico que um usurio pode atuar, enquanto que o
usurio algum que utiliza o sistema [JAC 94a].
Um caso de uso uma descrio narrativa de um processo do domnio da
aplicao. Ele representa um requisito funcional do sistema [BOO 99] e captura o
comportamento pretendido do sistema; sem, no entanto, especificar como este
comportamento implementado, descreve o que o sistema faz e no como feito. Casos
de uso proporcionam uma viso externa do sistema; atravs deles, o sistema visto
como uma caixa-preta (black box).
2.2.1
Aplicao
Caso de uso uma tcnica de modelagem que pode ser aplicada a qualquer
metodologia de desenvolvimento de software, estruturada, ou OO. A semntica de um
modelo de casos de uso relaciona-se fortemente com a de um modelo de objetos [JAC
94c]; porm, um modelo de casos de uso no substitui um de objetos. O modelo de
casos de uso uma viso externa de um sistema; o modelo de objetos uma viso
interna do mesmo sistema [JAC 94a].
Nos ltimos anos, casos de uso tm recebido muita ateno na rea de ES, como
meio para elicitar, documentar e validar requisitos, no entanto, isto no significa que
esto limitados a ER [REG 96, RYS 2000]; eles podem ser usados ao longo de todo o
ciclo de vida do desenvolvimento do software.
Casos de uso so utilizados para diversas finalidades, entre as quais:
Estruturar complexos modelos de objetos, em vises manejveis;
Capturar, documentar e validar requisitos funcionais de sistemas;
Gerenciar a complexidade de desenvolvimento, focando um aspecto distinto
por vez;
Compreender e estabelecer o comportamento desejado do sistema;
21
2.2.2
22
Uma vantagem deste estilo evidente: a separao em etapas distintas facilita a
leitura do caso de uso para a obteno de uma viso geral. Todavia, sofre muito dos
mesmos problemas do estilo narrativo contnuo. Apesar da segmentao em etapas
discretas, as etapas individuais mesclam aes do sistema e do usurio.
Ambos os estilos de narrativa, textual contnua e seqncia numerada, apresentam
abundncia de palavras. Devido ao fato de no possurem quase nenhuma estrutura,
esses estilos de narrativa requerem, para clareza, que a perspectiva seja repetidamente
declarada - o sistema faz isto, o usurio escolhe isso, o sistema termina algo mais -, o
que contribui para suas loquacidades. Mesmo assim, o limite entre o que est dentro do
sistema e o que est fora no est explicito e, somente, poder ser discernido atravs de
uma leitura cuidadosa da narrativa inteira [CON 2000b].
A soluo simples para isto, separar completamente da interao o lado do
usurio e o do sistema. Para casos de uso, esta separao foi originalmente sugerida por
Wirfs-Brock, sendo criado o estilo de narrativa com partio [CON 2000b]. Neste
estilo, a narrativa de casos de uso dividida em duas colunas: ao do usurio e
resposta do sistema. Assim, o limite das perspectivas internas e externas torna-se bvio
e explcito, sem repetio desnecessria. Por exemplo, a figura 2.4 uma narrativa com
partio do caso de uso, sacar dinheiro, representado na figura 2.3, como narrativa com
seqncia numerada:
ao do usurio
insere o carto no caixa automtico
entra com a senha
seleciona a opo
seleciona a conta
entra com a quantia
confirma a quantia
pega o carto
resposta do sistema
l o carto
solicita a senha
valida a senha
mostra o menu de opes
mostra o menu de conta
solicita a quantia
mostra a quantia
retorna o carto
libera o dinheiro se disponvel
FIGURA 2.4 Exemplo de caso de uso na notao de narrativa com partio [CON 2000b]
Este estilo de narrativa bem mais legvel e apresenta uma menor verbosidade do
que os outros estilos apresentados, anteriormente. Naturalmente, nada impede que se
numerem as aes e as respostas, tornando-o ainda mais til.
Casos de uso podem ainda ser representados por pseudocdigos. Embora tais
expresses paream oferecer preciso e possam ser confortveis e familiares aos
engenheiros de software, elas, raramente, so compreensveis aos usurios comuns
[CON 2000b].
23
2.2.3
Estrutura
Relacionamentos
24
Um relacionamento de generalizao entre casos de uso indica que um caso de
uso pode compartilhar o comportamento definido em um ou mais casos de uso. um
mecanismo usado para identificar comportamentos reutilizveis.
O relacionamento de incluso entre casos de uso, identificado pelo estereotipo
inclui (do ingls include), significa que um caso de uso incorpora explicitamente o
comportamento de outro caso de uso. O caso de uso, includo, nunca permanece isolado,
apenas instanciado como parte de alguma base maior que o inclui. Este tipo de
relacionamento utilizado para evitar descrever o mesmo fluxo de eventos vrias vezes,
fatorando o comportamento comum em um caso de uso prprio. O relacionamento de
incluso essencialmente um exemplo de delegao [BOO 99]. A figura 2.6 ilustra um
exemplo de relacionamento de incluso.
!!
!!
25
definies, muitas vezes, no so claras, ora sendo utilizados como sinnimos, ora como
conceitos distintos.
Em [COC 97a, COC 97b], encontra-se um estudo onde apontado que as diversas
definies de casos de uso diferem sobre quatro dimenses:
Propsito: casos de uso podem ter o propsito de descrever histrias dos
usurios ou especificar requisitos;
Contedo: o contedo de um caso de uso pode ser contraditrio ou
consistente; quando consistente, pode estar na forma de narrativa textual ou
notao formal;
Pluralidade: casos de uso podem ser apenas um cenrio ou conter mltiplos
cenrios;
Estrutura: uma coleo de casos de uso pode ser representada atravs de uma
estrutura formal, uma estrutura informal, ou, simplesmente, atravs de um
conjunto no estruturado.
A definio original de casos de uso proposta por Jacobson [JAC 92] e,
posteriormente, adotada na UML, tem o propsito de especificar requisitos, com o
contedo na forma de uma narrativa textual consistente, contendo mltiplos cenrios e
possuindo uma estrutura semiformal.
Entretanto, o conceito de casos de uso ainda vago e confuso, e existem vrios
aspectos problemticos que precisam ser tratados. Abordagens apontam que casos de
uso apresentam problemas conceituais, alguns deles so destacados em [REG 95a, REG
95b, CON 2000b] e mostrados a seguir:
Notao e contedo: O que exatamente casos de uso contm? Como so
organizados os contedos? O que significam os contedos?
Expresses idiomticas: Qual linguagem usada para expressar os contedos
que definem um caso de uso?
Granularidade: O tamanho e o nvel de detalhamento de cada caso de uso
escolhido arbitrariamente?
Cobertura: Casos de uso podem garantir apenas uma cobertura parcial de
todos possveis usos do sistema?
Contexto: Casos de uso ocorrem sobre quaisquer situaes ou sobre condies
especficas?
Interseo: Casos de uso so independentes ou podem sobrepor-se total ou
parcialmente? Como modelar os relacionamentos?
Concorrncia: Como modelar as concorrncias internas e entre casos de uso?
Outro problema pertinente que, na UML, casos de uso geralmente so referentes
interao sob a tica do sistema, no considerando adequadamente aspectos de
usabilidade. Conforme j destacado em [CON 2000a], observa-se que, na UML, a
corrente definio de casos de uso, desviou-se da nfase original de Jacobson, no uso:
Um caso de uso uma maneira especfica de usar um sistema...; para um ponto de
vista mais centrado no sistema: Caso de uso uma descrio de um conjunto de
seqncias de aes... que um sistema realiza.... O foco est no que o sistema executa,
no no que o usurio faz ou deseja.
Casos de uso tm sido usados na ES para ganhar percepo em possveis modelos
de software, no focando as tarefas dos usurios, enquanto que cenrios, em IHC,
26
capturam primeiramente o comportamento dos usurios. Deve-se atentar para no se
modelar apenas a perspectiva do sistema (figura 2.8) ou a perspectiva do usurio (figura
2.9). necessrio estar centrado nas tarefas dos usurios e nas responsabilidades do
sistema para suport-las, ou seja, no uso do sistema.
Consultar Extrato
1. O caixa eletrnico captura a identificao.
2. O caixa eletrnico valida a identificao.
3. O caixa eletrnico coleta a transao extrato.
4. O caixa eletrnico coleta o perodo.
5. O caixa eletrnico valida o perodo
6. O caixa eletrnico emite o recibo do extrato.
7. O caixa eletrnico fica pronto para nova transao.
FIGURA 2.8 Caso de uso com a perspectiva do sistema
Consultar Extrato
1. O cliente fornece sua identificao.
2. O cliente pede o extrato.
3. O cliente escolhe o perodo
4. O cliente pega o recibo do extrato.
5. O cliente sai.
FIGURA 2.9 Caso de uso com a perspectiva do usurio
Nvel de abstrao
Cenrio
Comumente utilizado em IHC para
inspecionar atividades humanas ao
usar um, presente ou futuro, artefato.
Concentra-se em aspectos de
usabilidade.
Uma seqncia especfica de aes,
um nico caminho.
Concreto.
Notao
Estrutura
Abordagem
Pluralidade
Caso de Uso
Comumente utilizado em ES para
modelar requisitos funcionais e
manipular modelos de objetos.
Concentra-se em aspectos funcionais.
Conjunto de seqncias de aes,
vrios caminhos.
Diferentes nveis de abstrao, mas
tipicamente mais abstratos que
cenrios.
Descrito em linguagem natural,
semiformal ou formal.
Uma coleo de casos de uso possui
uma estrutura. Na UML, so os
diagramas de casos de uso.
Prov uma abordagem top-down. Casos
de uso so refinados respeitando suas
propriedades estruturais.
27
Contudo, tem-se a convico de serem conceitos valiosos para se combinarem as
diferentes perspectivas das reas de IHC e ES.
Fazendo uso do conceito de nveis de abstrao e partindo do enfoque de cenrios
serem instncias concretas de casos de uso, podem-se combinar os propsitos e usos
complementares de ambas as tcnicas. De fato, cenrios tm sido utilizados com uma
base comum entre diferentes tipos de modelagem. Um mtodo de construo que
integrasse as duas tcnicas seria til; pois permitiria uma busca integrada da qualidade
interna e externa dos sistemas e, conseqentemente, o desenvolvimento de sistemas
interativos teis e usveis.
A integrao destes conceitos s metodologias de desenvolvimento de software
tambm um importante aspecto a ser considerado. Em alguns casos, os conceitos so
usados informalmente; em outros, fazem parte do processo de desenvolvimento; e, num
ponto de destaque, quando suas potencialidades so exploradas mais efetivamente, so
eles utilizados ao longo de todo o ciclo de vida do software, guiando o processo de
desenvolvimento.
Todavia, no se podem representar atravs de casos de uso todos os requisitos de
um sistema. Casos de uso so mais adequados para representar os requisitos
comportamentais e os requisitos funcionais. Demais requisitos no funcionais (RNFs),
como formato de dados, requisitos de performance, regras de negcio e frmulas
complexas, devem ser representados em outros formatos. Porm, casos de uso
funcionam como uma estrutura central capaz de conectar vrios tipos de requisitos,
podendo ser ligadas a casos de uso informaes associativas. Utilizando a metfora da
roda (figura 2.10), considera-se casos de uso como o eixo de uma roda que conecta
outras informaes, associadas aos raios, levando a diferentes direes [COC 2000].
Esta uma das razes pelas quais muitos consideram casos de uso como o elemento
central na ER e no processo de desenvolvimento, como um todo.
&
&
"'%
(
(
"%
)
"
#
"
" $
Segundo [CYS 2001] os RNFs, devem ser tratados desde as primeiras fases do
desenvolvimento de software, trazendo para os casos de uso as informaes e aes
necessrias para satisfazerem o conjunto de RNFs elicitados. Os ciclos de requisitos
28
funcionais (viso funcional) e de RNFs (viso no funcional) devem ser integrados
atravs do uso de pontos convergentes [CYS 2001]. De fato, os RNFs so modelados
atravs de outra notao, como, por exemplo, RNFs Framework [CYS 2001]), no
atravs de casos de uso; embora estes permitam ligar as duas vises. Casos de uso
ajudam na clarificao do inter-relacionamento entre requisitos funcionais e RNFs.
Vrias pesquisas tm focado principalmente as funes e os usos de cenrios e
casos de uso, no processo de desenvolvimento de sistemas, enquanto que o processo de
construo destes, muitas vezes, negligenciado. Desenvolvedores, freqentemente,
no sabem como identificar casos de uso, o que incluir neles, qual o nvel de
detalhamento, como represent-los e como estrutur-los. A abordagem original de casos
de uso [JAC 92, JAC 94a, JAC 94b, JAC 94c], posteriormente adotada na UML [BOO
99], no define precisamente nenhum formato especfico para descrever seus contedos,
nem um processo sistemtico para constru-los. A falta de guias para a construo de
casos de uso certamente uma das desvantagens das abordagens baseadas em casos de
uso para ER. Caso no sejam devidamente construdos, ou, ainda, sejam ambguos,
incompletos ou inconsistentes, as interaes que os casos de uso representam tambm
herdaro essas propriedades [ROL 98a].
29
30
Deve-se considerar que a operacionalizao dos objetivos no deve ser
predominantemente top-down, por ser altamente interativa [KAV 96]. Derivao de
casos de uso e refinamento de objetivos so atividades do desenvolvimento de software
que se apiam mutuamente [POT 95, ROL 98b]. O conhecimento teleolgico preocupase com os propsitos especficos para os quais o sistema foi projetado, enquanto a
anlise de casos de uso dedicada a preencher a lacuna entre tais propsitos abstratos e
a real estrutura e comportamento do sistema [KAV 96].
Casos de uso especificam um modo de operacionalizar um objetivo. Assim,
possvel obter um conjunto de casos de uso, analisando objetivos, alocao de objetivos
etc. Reciprocamente, possvel retornar e elaborar objetivos, quando se caminha atravs
de um caso de uso, j que ele uma forma natural para se descreverem as circunstncias
nas quais um objetivo pode falhar ou ser bloqueado, facilitando a descoberta de novos
objetivos e a considerao de alternativas para a operacionalizao dos mesmos. A
anlise do caso de uso pode fornecer percepes concretas sobre o comportamento do
macrosistema - ambiente geral no qual o software desenvolvido e deve operar - e as
razes para tal, possibilitando a identificao de solues mais plausveis [POT 95,
ANT 98a].
Trabalhos de pesquisa j reconhecem a importncia da relao entre objetivos e
casos uso. Segundo Kaindl, somente se podem entender as interaes descritas em um
caso de uso, quando se conhece seu objetivo [KAI 95]. Quando se est familiarizado
com um sistema, os objetivos das interaes parecem bvios; todavia, no processo de
elicitao de requisitos e modelagem de tarefas de um novo sistema, ainda
desconhecido, saber o objetivo uma informao crucial para a compreenso de cada
caso de uso. De acordo com a abordagem [KAI 95] os propsitos da utilizao de casos
de uso so claramente definidos, j os propsitos das interaes descritas nestes,
geralmente so ignorados ou deixados implcitos. Faltam representaes adequadas de
objetivos em casos de uso.
Na realidade, outras abordagens tambm consideram serem os objetivos
fundamentais para construo de cenrios e/ou casos de uso [KLA 93, POT 95, KAV
96, REG 96, COC 97a, COC 97b, ROL 98b, CON 2000a]; porm poucos oferecem um
modo de se utilizarem complementarmente as duas tcnicas para a determinao dos
requisitos. Na maioria das abordagens, ou no existe uma notao para objetivos, ou no
existe um processo sistemtico de construo e validao de casos de uso, a partir dos
objetivos, ou, at mesmo no, existem ambos.
31
3.2.1
Em [POT 94, POT 95], apresentada a proposta de Colin Potts para a construo
de casos de uso. Nesta abordagem, conceitos teleolgicos so utilizados para gerarem
casos de uso esquemticos, utilizados para compreender as necessidades dos usurios.
proposto um esquema de caso de uso com estrutura teleolgica (figura 3.1) que,
utilizado em conjunto com uma estratgia de refinamento de objetivos, guia a produo
de casos de uso. O princpio que a seo narrativa de um caso de uso consiste em uma
seqncia de episdios, cada um correspondente a algum objetivo ou obstculo.
obstculo definido como comportamento ou, outro objetivo que bloqueia a realizao
de um dado objetivo e episdio definido como um conjunto particular de aes
(plano), executadas sob condies, que tornam possvel a descrio operacional de um
objetivo do domnio do problema [POT 95].
Scenario Setting Narrative Evaluation
Setting Background Roles
Roles Role*
Narrative Episode+
Episode Goal Action Outcome
Legend: Asterisks represent zero or more repetitions,
braces represent optional categories, and the vertical
bar represents alternatives.
FIGURA 3.1 Esquema de casos de uso [POT 95]
32
3.2.2
Abordagem de Cockburn [COC 97a, COC 97b, COC 98, COC 2000]
Em [COC 97a, COC 97b, COC 98, COC 2000] proposta, por Alistair Cockburn,
uma teoria que utiliza objetivos como o elemento chave dos casos de uso. A abordagem
considera que os objetivos podem resumir as funes do sistema, em termos
compreensveis e verificveis.
O foco principal da abordagem a escrita de casos de uso efetivos, sendo
apresentas tcnicas de como pensar, como redigir sentenas e em que seqncia
trabalhar. Os modelos e as tcnicas apresentados na abordagem tm sido aplicados e
avaliados em projetos reais. Os trabalhos [COC 97a, COC 97b, COC 2000] so
descritos como resultados destas experincias.
Na abordagem de Cockburn, proposto um modelo para descrever os casos de
uso que utiliza conceitos teleolgicos; mas que, diferentemente, da abordagem
apresentada anteriormente, no possui uma estrutura episdica. O modelo pode ser
usado tanto na forma textual quanto na tabular; em ambos os casos, a descrio dos
casos de uso divida em sees [COC 98]:
Nome do caso de uso: uma pequena frase verbal descrevendo o objetivo;
Objetivo no contexto: uma descrio mais detalhada a respeito do objetivo,
caso necessrio;
Escopo: qual sistema deve ser considerado uma caixa-preta sobre o ponto de
vista do projeto;
Nvel: o caso de uso pode ser de algum dos trs tipos: resumo, tarefa primria
ou subfuno;
Pr-condio: as condies esperadas do contexto, antes de iniciar o caso de
uso;
Condio de termino bem sucedido: as condies esperadas do contexto, aps
a realizao completa do caso de uso;
Condio de termino com falha: as condies esperadas do contexto, aps o
abandono do caso de uso;
Ator principal: o nome ou a descrio do ator principal;
Gatilho (Trigger): a ao sobre o sistema que inicia o caso de uso;
Curso principal: seqncia de passos do curso normal, descrevendo aes, a
partir da ativao do caso de uso;
Extenses: lista de condies, cada uma se referindo ao passo do curso
principal;
Subvariaes: as subvariaes que, eventualmente, possam causar bifurcao
no caso de uso;
Informaes adicionais: outros dados importantes para o caso de uso, como
prioridade, performance, freqncia, atores secundrios e casos de uso
relacionados.
A abordagem de Cockburn [COC 97a, COC 97b, COC 2000] faz uso de
metforas para representar os objetivos e os casos de uso. Os objetivos em seus diversos
nveis so estruturados hierarquicamente, formando um grfico que se assemelha a um
veleiro (do ingls sailing ship), ilustrado na figura 3.2. J casos de uso so
associados a calas listradas (do ingls striped trousers) com pernas de sucesso e
falha (figura 3.3). O cinto da cala o objetivo que aglutina todos os cenrios, cada
listra um cenrio, e cada linha, em um cenrio, uma ao primitiva ou um objetivo de
33
um caso de uso subordinado. Essa analogia prov uma viso sintetizada da coleo dos
caminhos de um caso de uso.
Em [COC 97a, COC 97b, COC 2000], a exploso do nmero de casos de uso
evitada, utilizando trs tcnicas: casos de uso subordinados, extenses e variaes. Para
ligar casos de uso a requisitos de interface, de performance e aos atores, sugerido o
uso de tabelas auxiliares.
3.2.3
34
refinamento, constituindo um sistema de conceitos, denominado Requirement Chunck
Model (RC Model).
Os RCs so organizados hierarquicamente em 3 nveis de abstrao: contextual,
funcional e fsico. O nvel contextual tem o propsito de identificar os servios que um
sistema deve prover para uma organizao. O foco do nvel funcional nas interaes,
entre o sistema e seus usurios, necessrias para alcanarem os servios atribudos ao
sistema ao nvel contextual. O nvel fsico foca quais aes internas o sistema precisa
para executar as interaes selecionadas ao nvel funcional.
Uma nfase particular dada na explorao de cenrios textuais, descritos em
linguagem natural pelos stakeholders. So propostas guias para autoria de cenrios e
elicitao de objetivos.
A elicitao de objetivos baseada em anlise lingstica de declaraes de
objetivos. O processo guiado de autoria de cenrios dividido em dois estgios
principais: a escrita dos cenrios e a correo dos mesmos. Para guiar a escrita dos
cenrios so propostas guias de estilo e contedo referentes a um modelo conceitual e
um modelo lingstico de cenrios. Para guiar a correo dos cenrios proposto um
conjunto de regras. Cenrios escritos, em prosa informal, so progressivamente
transformados em textos estruturados e no ambguos, integrados ao RC Model. Atravs
de estratgias de composio e alternativa, diferentes cenrios so integrados em um
caso de uso.
3.2.4
35
TABELA 3.1 Comparao entre abordagens baseadas em objetivos
Abordagem
Critrio
Investigao das
singularidades
Delimitao do
conjunto de casos de
uso
Uso complementar dos
conceitos de cenrios e
casos de uso
Avaliao da
usabilidade com os
usurios
Diferentes nveis de
abstrao
Nvel de abstrao que
estabelece ligao com
abordagens OO
Notaes definidas
Guias para a descrio
textual dos casos de uso
Relaes temporais nos
casos de uso
Fluxo dos eventos
Considerao de
eventos assncronos
Representao de
Objetivos
Representao da
ontologia
Potts
Cockburn
Rolland
Um questionamento
sistemtico e a criao
de aes defensivas e
corretivas
Algumas heursticas
para determinar a
salincia dos casos de
uso. Uso do conceito de
episdios
Apenas sugerido, sem
especificar, que
cenrios podem ser
instanciados para serem
avaliados pelos usurios
Um questionamento
sistemtico e algumas
guias.
Algumas guias
Uso de tcnicas de
subordinao, extenso
e variao
Cenrios no so
usados para
experimentao com os
usurios
No
No
Cenrios so usados
apenas num primeiro
momento para elicitar
objetivos e
posteriormente so
integrados em casos de
uso. No so, porm,
usados para
experimentao com os
usurios
No
No
No
Sumrio, objetivos do
usurio e subfunes
No
Contextual, funcional e
fsico
No
Sim
No
Sim
Sim
Sim
Sim
No
No
No
Seqencial
No
Seqencial
Sugere trat-los em
uma seo separada,
usando asterisco (*)
para identific-los
Metfora do veleiro
Seqencial
No
No
No
Requirements Chunks
organizados
hierarquicamente
36
4 Abordagem Proposta
4.1 Introduo
Este trabalho investiga e prope uma abordagem que faz uso de conceitos
teleolgicos para gerar, estruturar e validar casos de uso e cenrios. Tem como principal
objetivo investigar os conceitos de cenrios e casos de uso, e integrar e sistematizar a
construo destes, conciliando as perspectivas de ES e IHC.
O trabalho tem como base algumas idias da abordagem TAREFA (Task Analysis
based Requirements Enginnering Framework) [PIM 97], concebida para sistematizar a
engenharia de requisitos de sistemas interativos que j adota casos de uso e cenrios
como fios condutores para a integrao das reas de ES e IHC. Esta abordagem uma
evoluo da abordagem TAREFA [PIM 97], de forma que os aspectos construtivos de
casos de uso so aprimorados, novos aspectos so investigados e a construo de casos
de uso e cenrios , afinal, sistematizada. Uma descrio detalhada da abordagem ser
apresentada ao longo dos prximos dois captulos.
Prope-se uma abordagem que, a partir de um modelo explcito de objetivos dos
usurios, refinados e representados, permite definir, refinar e representar os objetivos do
sistema que serviro como base para a construo de casos de uso em quatro diferentes
nveis de abstrao, essencial, singular, operacional e concreto, cada um relativo a um
tipo de conhecimento especfico.
A abordagem um processo interativo e iterativo de construo, refinamento,
experimentao, modificao e integrao de casos de uso. Em resumo, prope-se a
construo de casos de uso essenciais, nvel mais abstrato, pelo analista, a partir dos
objetivos; ainda pelo analista, o refinamento de casos de uso essenciais, visando definir
casos de uso singulares; a instanciao dos casos de uso concretos, cenrios; e, quando
desejvel, a definio dos casos de uso operacionais, a partir dos casos de uso
singulares; a experimentao e avaliao da funcionalidade e do comportamento dos
cenrios pelos usurios, visando investigar suas reais necessidades; a reviso dos casos
de uso pelo analista, procurando adequ-los s expectativas dos usurios; e, finalmente,
a integrao, pelo analista, dos casos de uso obtidos neste processo recursivo.
O diagrama ilustrado na figura 4.1 representa uma viso geral do processo de
construo sistemtica de casos de uso e cenrios. Ao final do processo, deseja-se obter
um modelo de casos de uso que permita especificar requisitos funcionais,
conjuntamente com requisitos de interao, de maneira compreensvel e praticvel e que
sirva como ponto de partida para a continuidade do desenvolvimento de software.
Acredita-se que a combinao de casos de uso e cenrios com uma boa
compreenso das tarefas e do contexto organizacional em que elas so executadas,
juntamente com a explicitao dos objetivos, previnam a possibilidade de que
especificaes se tornem desencontradas das reais necessidades dos usurios e devam
ser a base para um processo de desenvolvimento de software interativo.
37
*
+
%
"
"
"
&
'
"
/0 "
%
"
%
&
'
"
"
"
%
FIGURA 4.1 Viso geral da abordagem teleolgica e dos quatro nveis de abstrao de casos de uso
38
requisitos dos usurios, chegando a um conjunto de requisitos de usurios (explcitos,
implcitos e organizacionais) e um conjunto de modelos para representar os
conhecimentos obtidos durante a anlise contextual [PIM 2000].
Uma contribuio original de TAREFA [PIM 97] que a hierarquia de objetivos
dos usurios obtida e representada atravs de um tipo particular de modelo de tarefa.
A anlise de tarefa emergiu da ergonomia, como um importante apoio ao
desenvolvimento de sistemas interativos, devido ao fato de ser um mtodo emprico de
compreender como as pessoas executam suas tarefas [PIM 96]. Uma anlise de tarefa
produz um modelo explcito de tarefas em um domnio, denominado modelo de tarefas,
representando dois tipos de informao: objetivos e aes.
Em [PIM 97], proposto um modelo, derivado diretamente de um modelo de
tarefas, onde o elemento principal a estrutura dos objetivos e subobjetivos,
denominado modelo de tarefa minimal. Alm da organizao hierrquica dos
objetivos, h a descrio da organizao e da interdependncia deles. A organizao a
organizao temporal na qual o usurio alcana suas tarefas (sucesso, intercalao,
paralelismo, etc). A interdependncia uma sucesso imposta pelas relaes entre as
entradas e sadas das tarefas. O modelo de tarefa minimal um modelo abstrato, sem
consideraes tecnolgicas, representando as intenes do usurio, ao invs de aes, e
serve como base para a construo dos casos de uso. utilizada a notao MAD
(Mthode Analytique de Description), neste modelo; mas qualquer modelo de tarefas
com essas caractersticas pode ser usado, como, por exemplo, GOMS (Goal Operators
Methods Selection), HTA (Hierarquical Task Analysis) ou CTT (ConcurTaskTree).
Entretanto, a determinao dos requisitos dos usurios no suficiente para a
definio dos requisitos do sistema, pois os requisitos dos usurios tendem a ser muito
gerais e no provem indicaes ou detalhes sobre o comportamento (interno ou
externo) do sistema. O modelo de tarefas descreve os objetivos dos usurios, sem a
preocupao com as funes subjacentes do sistema. Tambm em TAREFA [PIM 97],
so propostas duas atividades para a definio dos requisitos iniciais do sistema,
chamados iniciais, por representarem o ponto de vista do usurio sobre os requisitos
do sistema. A primeira uma Re-engenharia de Tarefas, baseada na informao
contextual coletada, que tem o intuito de reorganizar as tarefas que se deseja corrigir
para eliminar as redundncias e as ineficincias, antes de propor uma soluo
computacional; a segunda uma Alocao de Funes, para determinar que tarefas
sero manuais, automticas ou interativas (maiores detalhes em [PIM 97]). Aps a
execuo desses dois passos, os requisitos iniciais do sistema so determinados e
pode-se pelas atividades de construo, de experimentao, de modificao e integrao
dos casos de uso, especificar as caractersticas que um sistema tem de possuir para
satisfazer os requisitos dos usurios.
Para apoiar a construo dos casos de uso, tambm interessante relacionar
explicitamente os objetivos representados nos modelos de tarefas minimais com seus
atores iniciadores. Para tal propsito, utiliza-se a lista ator-objetivo, proposta em [COC
2000]. A lista ator-objetivo tambm ajuda a priorizar e particionar o trabalho de
desenvolvimento e atualizada, conforme novos objetivos so descobertos na anlise
dos casos de uso. Esta lista ator-objetivo composta pelos seguintes campos:
Prioridade Organizacional: Prioridade do objetivo para a organizao;
39
Ator Iniciador: Nome do ator que inicia o caso de uso, ou seja, que tem o
objetivo;
Objetivo: Objetivo extrado do modelo de tarefa minimal;
Prioridade: Prioridade na qual o sistema tem de suportar o objetivo;
ID do Caso de Uso: Identificador do caso de uso que suporta o objetivo.
40
Um ator representa um papel desempenhado por agentes externos ao sistema:
usurios, dispositivos de hardware, outros sistemas. uma categoria de usurios com
comportamentos e objetivos comuns, identificando um papel genrico e no uma
ocorrncia especfica. O ator que tem o objetivo e inicia a interao chamado de ator
iniciador, os demais que assistem o sistema, para satisfazer o objetivo, so chamados de
atores participantes.
As seqncias de interaes, muitas vezes, tambm so referidas como cursos de
interaes. Alguns cursos terminam atingindo o objetivo, outros no. Um caso de uso
agrupa todos os cursos de sucesso e falha. Casos de uso no ocorrem em qualquer
situao, necessrio considerar o contexto, que demarca seu escopo, caracteriza seus
elementos e define suas condies. As condies so predicados do estado do sistema e
do ambiente que devem ser considerados antes - pr-condices - ou depois - pscondies - das seqncias de interaes.
Tem-se ento, que na abordagem, casos de uso devem ser vistos como planos de
execuo de objetivos, ao invs de meras seqncias cronolgicas de eventos.
Conforme j observado em [COC 97a, COC 97b], uma das dificuldades desta
perspectiva o fato de objetivos existirem em vrios nveis (objetivos, subobjetivos,
aes individuais) e a operacionalizao deles requerer uma freqente mudana entre os
nveis.
Outra caracterstica relevante observada por [KAI 95, PIM 97] que um caso de
uso , ao mesmo tempo, uma especificao da estrutura, da funcionalidade e do
comportamento de uma situao de uso. Como toda a especificao, tem dois aspectos:
o tcnico, pois age como ponto de origem para a concepo e a implementao do
sistema; e o social, por servir para comunicao entre os stakeholders, em particular, o
analista e o usurio.
Para lidar com esses aspectos, utiliza-se o conceito de nveis de abstrao.
Abstrao definida como um mecanismo para esconder detalhes, a fim de focar
aspectos essenciais; e o refinamento utilizado para descrever gradualmente os casos de
uso em diferentes nveis de abstrao.
Conforme j mencionado anteriormente, adotam-se nesta abordagem quatro nveis
de abstrao para descrever os casos de uso; cada um adaptado a um determinado
objetivo e relativo a um tipo especfico de conhecimento e de representao. So eles:
Essencial: Casos de uso ao nvel mais abstrato. So construdos, a partir dos
objetivos de tarefas, presentes nos modelos de tarefas minimais. Devem ser
realizados para a satisfao dos objetivos das atividades do usurio, sempre
consideradas num contexto organizacional;
Singular: Casos de uso essenciais, refinados atravs da determinao de
singularidades - desvios do curso normal que incluem problemas,
anormalidades, excees, interrupes e obstculos -. Para cada singularidade,
pode haver a identificao de possveis aes defensivas e corretivas que o
sistema poderia realizar para, respectivamente, evitar ou corrigir um problema.
Portanto, um caso de uso essencial pode dar origem a diversos casos de uso
singulares; um para cada ocorrncia de uma singularidade;
Operacional: Um caso de uso operacional descreve o comportamento de um
caso de uso singular, em termos de objetos e operaes, a um nvel similar ao
41
do Projeto OO. Estes casos de uso esto a um nvel de abstrao abaixo dos
casos de uso singulares e so voltados, especificamente, gerao preliminar
de arquiteturas de sistemas OO;
Concreto: Casos de uso, no menor nvel de abstrao. Um caso de uso
concreto uma ocorrncia de uma execuo particular de um caso de uso
singular do ponto de visto do usurio. Ele corresponde a uma descrio das
caractersticas de uma situao concreta de uso - prottipos das IUs,
comportamento detalhado do usurio e do sistema, condies de uso,
singularidades ocorridas -, sem levar em considerao os detalhes tcnicos e
arquitetnicos do sistema ao nvel operacional. Por definio, corresponde ao
conceito de cenrio utilizado em IHC.
42
implementaes [BID 2001] e encorajando a inovao criativa [CON 2000a]. um
mecanismo esquemtico para ajudar a pensar na maneira cujo software ser utilizado
pelos usurios. Neste sentido, um caso de uso essencial uma projeo do futuro uso do
sistema pelos usurios. Alm disso, como so adaptados ao nvel de abstrao do
usurio, eles podem servir como um eficiente meio de comunicao entre o usurio e
analista.
Existe uma sutil diferena entre objetivos e intenes. Objetivo um estado final
desejado de um sistema, sendo corretamente descrito em termos estticos como estado e
caractersticas de objetos. J uma inteno, em contraste, dinmica e representa o
sentido ou o progresso, ao invs de um estado final. Objetivos so destinos, enquanto
que as intenes representam a jornada do usurio [CON 2000a]. Ainda sobre este
aspecto, Kavakli [KAV 96] destaca que necessidades so difceis de serem
averiguadas e que mais apropriado considerar requisitos como tendncias aquilo
que pessoas tentam fazer quando tem oportunidade [KAV 96] . No trabalho,
tendncia cognominada como inteno. Uma inteno deve ser entendida como
uma verso operacional de um objetivo, portanto ela pode ser identificada e testada,
observando-se o comportamento das pessoas [KAV 96]. Neste sentido, casos de uso
essenciais podem definir estratgias sistemticas para se encontrar os requisitos
dinmicos do sistema.
Nos casos de uso essenciais, a motivao para o usurio a inteno de atingir um
objetivo e a motivao para o sistema a responsabilidade de cumprir as obrigaes.
Responsabilidade , ento, uma expresso de o que precisa ser feito, sem
necessariamente detalhar como ser feito. Para este mais alto-nvel de descrio de
um caso de uso, uma responsabilidade uma abstrao das aes, a serem executadas
pelo sistema para transformar o estado atual no estado final desejado, onde o objetivo da
tarefa interativa, representada pelo caso de uso, alcanado. As responsabilidades
(funes) do sistema sustentaro as tarefas interativas para atingir os objetivos e podem
ser classificadas em dois tipos: responsabilidade receptiva do sistema, onde o evento do
sistema uma recepo de uma inteno ou uma preparao para ao do usurio; e a
responsabilidade expressiva do sistema, onde o evento uma resposta do sistema a uma
inteno [PIM 97].
Este tipo de construo permite que os projetos de IUs e do software sejam feitos
em paralelo, ambos a partir dos casos de uso essenciais. Casos de uso essenciais foram
originalmente criados para apoiar o projeto de IUs, uma vez que se levado a deduzir,
de forma correta, a concepo da interface, a partir da lgica de utilizao do sistema
como suporte realizao de tarefas, e no, a partir da lgica de funcionamento das
funes da aplicao, como usualmente realizado. Eles tambm tendem a
permanecerem corretos por um longo perodo de tempo, uma vez que excluem decises
de projeto e descrevem, apenas, a essncia dos casos de uso, isto permite a identificao
de padres de casos de uso, sendo teis no desenvolvimento de novos projetos [BID
2001].
Notao
Encontram-se na literatura diferentes formas para representar casos de uso:
textual, animada, prottipos etc. A UML prope notaes grficas, como os diagramas
de casos de uso e os diagramas de seqncia para descreverem os eventos de um caso de
43
uso, entretanto estas notaes no permitem a expresso necessria aos casos de uso
para efetiva aquisio e validao de requisitos [ANT 98a]. Alm disto, os diagramas de
seqncia levam o desenvolvedor a considerar mensagens passadas entre objetos do
software, ao invs de manter uma perspectiva externa do usurio e um foco na natureza
das tarefas.
Diversos autores recomendam a representao textual em linguagem natural.
Existem claras vantagens da narrativa textual. A principal razo o fato de que
narrativa textual prov a maneira de expressar o problema em uma representao
facilmente compreensvel, permitindo uma comunicao mais efetiva entre os
stakeholders, no desenvolvimento da aplicao. Clientes e usurios geralmente no
possuem um vasto conhecimento de notaes de ES: a narrativa textual, em linguagem
natural, no exige treinamento formal ou o uso de ferramentas sofisticadas, stakeholders
tem familiaridade com esta notao [COC 97a, COC 97b, ROL 98a]. Desta forma,
possvel que pessoas de outras disciplinas entendam mais claramente os requisitos do
sistema.
Os casos de uso essenciais foram estruturados em seis sees: informao
descritiva, contexto, narrativa, relao temporal, anexos e histrico, sendo as duas
ltimas opcionais. A figura 4.2 ilustra a estrutura do caso de uso essencial.
Informao Descritiva
ID:
Contexto
Escopo:
Ator Iniciador:
Atores Participantes:
Prioridade:
Freqncia:
Recursos:
Pr-condies:
Ps-condies:
Narrativa
Intenes do usurio
Nome:
Responsabilidades do sistema
(eventos)
Relao Temporal
(expresso)
Anexos
ncoras:
Histrico
Autor:
(eventos)
Data:
Verso:
44
A seguir, representado na figura 4.3, tem-se um exemplo de um caso de uso
essencial, para o objetivo Consultar extrato, descrito de acordo com esta estrutura que
foi definida.
Informao Descritiva
ID: UC3
Nome: Consultar extrato
Contexto
Escopo: caixa eletrnico
Ator Iniciador: cliente
Atores Participantes: Prioridade: 5
Freqncia: diversas vezes ao dia
Recursos: identificao, conta, extrato, recibo
Pr-condies: caixa eletrnico pronto para ser usado
Ps-condies: caixa eletrnico pronto para ser usado; cliente com o recibo do extrato
Narrativa
Intenes do usurio
Responsabilidades do sistema
1. Fornece identificao ao sistema
2. Aceita a identificao do cliente
3. Valida a identificao do cliente
4. Oferece transaes ao cliente
5. Pede a transao extrato
6. Aceita a transao extrato
7. Pede o perodo do extrato ao cliente
8. Escolhe o perodo do extrato
9. Aceita o perodo do extrato
10. Valida o perodo do extrato
11. Emite o recibo do extrato
12. Pega o extrato
13. Registra transao
14. Oferece transaes ao cliente
15. Escolhe Sair
Relao Temporal
1 ||| ( 5 8 ) 12 15
45
Sinais da Notao
(A)
A|B
A||B
A+, A n, A*
BA
A ||| B
A, B
A&B
A (t > n seconds) B
Deste modo, tem-se, aps a seo narrativa do caso de uso, a seo de relao
temporal, a qual contm uma expresso, que faz uso deste conjunto de sinais e dos
identificadores dos eventos, para lidar com as relaes temporais como partes
intrnsecas dos casos de uso.
A quinta seo, anexos, contm ncoras a quaisquer informaes que precisam ser
especificadas ao caso de uso, como, por exemplo, o identificador de um requisito
organizacional; e, finalmente, a sexta seo contm dados histricos e de autoria.
46
4.3.2
Casos de uso singulares so casos de uso expandidos que modelam, alm do curso
normal de um caso de uso essencial, os potenciais desvios que podem mudar a
interao do curso normal. Estes desvios - englobando as anormalidades, as excees,
os problemas, os enganos, as interrupes e os obstculos [POT 95] - so chamados de
singularidades, donde vem a expresso caso de uso singular. Por definio, uma
singularidade a causa de um problema [PIM 97]. Para o nvel dos requisitos, um
problema uma diferena semntica entre a situao atual e uma situao desejada
[PIM 97]. Ento, necessrio sempre ligar uma singularidade a um problema, e um
problema a um objetivo.
Os casos de uso essenciais so refinados atravs da determinao de potenciais
singularidades, a cada situao especfica e singular obtm-se um caso de uso singular.
Portanto, um caso de uso essencial pode dar origem a diversos casos de uso singulares.
Esta concentrao em pontos especficos ajuda a refinar a compreenso dos requisitos
de um sistema proposto.
A considerao de singularidades uma questo muito importante e pode ser
crucial para usabilidade de um sistema. Deve-se pensar em alternativas, para serem
alcanados os objetivos, quando ocorrer alguma singularidade. Todo objetivo pode ser
bloqueado de certa maneira por condies ou eventos, no sistema ou no ambiente. Levar
em conta as possveis singularidades fora o desenvolvedor e, tambm, o usurio, a
pensarem em solues flexveis e robustas para estas situaes reais, onde o uso
acontece em modos no antecipados pelo desenvolvedor, e no para situaes
idealizadas [POT 95]. Devem-se capturar as singularidades antes de se preocupar em
como lidar com elas. Um exemplo de singularidade para o caso de uso singular
(Consultar Extrato, ilustrado na figura 4.7) apresentado na figura a seguir.
ID da
ID do episdio
singula- onde a
laridade singularidade
acontece
S06
EP1
ID da ao do
episdio onde a
singularidade
acontece
7
Problema
Singularidade
(Causa do problema)
Aes (D)efensivas ou
(C)orretivas
Senha no aceita
FIGURA 4.5 Exemplo de singularidade para o caso de uso singular Consultar extrato
47
exemplificar aspectos cruciais do comportamento do sistema proposto e no so
redundantes. Em TAREFA [PIM 97], as singularidades relevantes so divididas em
duas categorias no-ortogonais: singularidades crticas, obstrues ao curso normal do
caso de uso essencial; e singularidades representativas, obstrues que aparecem mais
freqentemente. Alm disso, uma combinao de singularidades tambm considerada
singularidade. A relevncia das singularidades individuais, por conseguinte,
determinada independente do domnio da aplicao, e a relevncia da combinao
dependente [POT 95].
Provavelmente, no sejam conhecidas todas as condies de um caso de uso,
desde o principio; a anlise de singularidades ajuda a identificar as pr e ps-condies,
que levaro o usurio a seguir um determinado curso de interao. Devemos distinguir
as condies que separam o curso normal dos outros possveis cursos.
Notao
Para serem representados, adequadamente, os casos de uso neste nvel de
abstrao, definiu-se como pr-requisito que a estrutura adotada permitisse a associao
de conceitos teleolgicos: atores, objetivos, singularidades etc.
Um conceito adicional fundamental descrio dos casos de uso essenciais, o
conceito de episdios (ver seo 3.2.1). Como toda narrativa, casos de uso podem ser
descritos de maneira episdica. Assim, a seo narrativa de um caso de uso singular
consiste em uma seqncia de episdios, cada um correspondente a alguma inteno ou
singularidade que bloqueia a realizao dessa inteno.
O conceito de episdio recursivo. Cada episdio pode ser considerado como um
pequeno caso de uso [LEI 97]; mas, no papel de caso de uso, informaes adicionais so
necessrias. Este conceito auxilia a lidar com grandes conjuntos de casos de uso, por
permitir o reuso de partes dos casos de uso. Um mesmo episdio pode aparecer em
vrios casos de uso, evitando assim a duplicao do trabalho de especificao de casos
de uso e oferecendo um modelo de casos de uso mais compacto. Diversos autores j
utilizam o conceito de episdios para estruturar casos de uso [REG 96, POT 95, LEI 97,
ROL 98a].
O elemento bsico do modelo de caso de uso a ao, podendo ser atmica ou
composta. As aes atmicas so divididas em duas categorias: aes de comunicao
(o cliente insere seu carto no caixa eletrnico); e aes internas (o caixa eletrnico
verifica que o carto valido) [ROL 98a]. Uma ao composta formada por uma
organizao, temporal ou de dependncia lgica, de aes atmicas. As aes so
descritas pelo par de termos o agente, seguido pela ao. O agente pode ser tanto o
sistema quanto um ator. Recomenda-se numerar as aes, do mesmo modo que se
numeram os eventos nos casos de uso essenciais.
Adota-se para a representao dos casos de uso singulares uma notao que segue
um esquema gramatical. Segundo Potts [POT 95], casos de uso so um tipo de
histria, ento possvel utilizar um esquema de caso de uso que semelhante a um
esquema de histria. Um esquema gramatical no uma gramtica geradora, no senso
conhecido da Teoria das Linguagens, porque permite deixar indeterminada a estrutura
de certos elementos - tipicamente por uma descrio informal [PIM 97]. Esta
48
representao perfeitamente adaptada para abordagens baseadas em objetivos, como
evidenciado pela explcita associao de uma inteno a cada episdio no caso de uso
[ANT 98a]. Representaes de casos de uso que permitem os analistas e stakeholders
considerarem singularidades so fontes especialmente ricas para identificarem novos
requisitos. Casos de uso esquemticos orientados a objetivos parecem apoiar a
identificao e refinamento de requisitos mais que outras representaes [ANT 98a].
O esquema gramatical, notao dos casos de uso singulares, apresentado na
figura 4.6. O modelo episdico de casos de uso prov uma estrutura para a especificao
dos casos de uso. A especificao em si escrita em linguagem natural estruturada.
<Caso de uso>:= <Informao Descritiva>
<Contexto>
<Narrativa>
<Anexos>
<Histrico>
<Informao Descritiva>:= <ID>
<Nome>
<Nome >:= <Objetivo> |
(<Objetivo> <Nome do episdio>)
<Contexto>:= <Escopo>
<Atores>
<Prioridade>
<Freqncia>
<Recursos>
<Predicados>
<Atores>:= <Ator Iniciador>
<Ator Participante>*
<Recursos>:= <Recurso>*
<Predicados>:= <Pr-condio>+
<Ps-condio>+
<Narrativa>:= <Episdio>+
<Episdio>:= <ID>
<Nome do episdio>
<Predicados>
<Plano>
<Nome do episdio>:= <Inteno> |
(<Inteno > <Singularidade>)
<Plano>:= <Ao>*
<Ao>:= <ID>
<Agente>
<Nome da ao>
<Agente>:= <Sistema> |
<Ator>
<Anexos>:= <Ancora>*
<Histrico>:= <Data>
<Autor>
<Verso>
Legenda: A* = A aparece 0 ou mais vezes; A+ = A aparece 1 ou mais vezes; A | B = A ou B
FIGURA 4.6 Esquema gramatical para casos de uso singulares
A figura 4.7 ilustra um exemplo de caso de uso singular descrito de acordo com o
esquema gramatical. Este caso de uso singular o refinamento do caso de uso essencial
Consultar Extrato representado na figura 4.3.
49
Informao Descritiva
ID: UC3
Nome: Consultar extrato
Contexto
Escopo: caixa eletrnico
Ator Iniciador: Cliente
Ator Participante: Prioridade: 5
Freqncia: diversas vezes ao dia
Recursos: carto, senha, conta, extrato, perodo do extrato, recibo
Pr-condio: caixa eletrnico pronto para usar; cliente com carto;
Ps-condio: caixa eletrnico pronto para usar; cliente com o carto; cliente com o recibo do extrato
Narrativa
Episdio
ID: EP1
Nome: Fornece identificao ao sistema
Pr-condio: caixa eletrnico pronto para usar; cliente com o carto
Ps-condio: caixa eletrnico pronto para usar ou em uso; cliente com o carto; carto e senha do
cliente vlidos
Plano:
N
Agente
Ao
1
Cliente
Passa seu carto no leitor do caixa eletrnico
2
Sistema
Aceita o carto do cliente
3
Sistema
Valida o carto do cliente
4
Sistema
Pergunta a senha do cliente
5
Cliente
Fornece sua senha ao sistema
6
Sistema
Aceita a senha do cliente
7
Sistema
Valida a senha do cliente
Episdio
ID: EP2
Nome: Pede extrato
Pr-condio: caixa eletrnico pronto para usar
Ps-condio: caixa eletrnico pronto para usar; pedido de transao extrato aceito
Plano:
N
Agente
Ao
1
Sistema
Oferece transaes ao cliente
2
Cliente
Pede a transao extrato
3
Sistema
Aceita a transao extrato
Episdio
ID: EP3
Nome: Escolhe o perodo do extrato
Pr-condio: caixa eletrnico pronto para usar; pedido de transao extrato aceito
Ps-condio: caixa eletrnico pronto para usar; pedido de transao extrato aceito; perodo do extrato
vlido
Plano:
N
Agente
Ao
1
Sistema
Pede o perodo do extrato ao cliente
2
Cliente
Escolhe o perodo do extrato
3
Sistema
Aceita perodo do extrato
4
Sistema
Valida o perodo do extrato
Episdio
ID: EP4
Nome: Pega o recibo
Pr-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; perodo do extrato
vlido
Ps-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; perodo do extrato
vlido; cliente com o recibo
Plano:
N
Agente
Ao
1
Sistema
Emite o recibo da transao extrato para o cliente
2
Cliente
Pega o recibo
3
Sistema
Registra a transao extrato
Episdio
ID: EP5
Nome: Sair
Pr-condio: caixa eletrnico pronto para usar
Ps-condio: caixa eletrnico pronto para usar
Plano:
N
Agente
Ao
1
Sistema
Oferece transaes ao cliente
2
Cliente
Pede a transao sair
3
Sistema
Aceita a transao sair
4
Sistema
Registra a transao sair
50
4.3.3
51
Porm, para ser modelada esta colaborao entre os objetos, precisa-se saber que
objetos esto envolvidos; que operaes esto envolvidas e em quais objetos; e qual a
seqncia de operaes. Na prtica, existe uma lacuna entre as descries narrativas dos
casos de uso e os modelos de objetos.
Focando responsabilidades, tanto nos modelos de casos de uso quanto nos
modelos de objetos, pode-se estabelecer um elo de ligao entre ambos. Em pontos
significantes do processo de desenvolvimento, a habilidade de verificar as
responsabilidades dos objetos com as expressas nos casos de uso representa uma forma
valiosa de verificar se o projeto continua correspondendo aos requisitos [BID 2001]. O
uso do conceito de responsabilidade na ER e no projeto representa um importante fator
na possibilidade de rastreamento (traceability).
A noo de responsabilidades, nos casos de uso, compatvel com a noo de
responsabilidade de objetos; ambos descrevem comportamento, sem descrever
implementao [BID 2001]. Ao atribuir responsabilidades iniciais aos objetos, devemse considerar as responsabilidades requeridas, nos casos de uso. Estas responsabilidades
so atribudas baseadas no conhecimento do domnio e em heursticas.
Para a identificao de objetos e atribuio de responsabilidades, segue-se a
abordagem OOSE [JAC 92], onde uma das fases da anlise construir o modelo de
anlise, onde a arquitetura baseada em trs tipos de objetos: objetos entidade, objetos
de interface e objetos de controle. Esse modelo especifica a composio de objetos e a
associao entre eles. Objetos entidade representam a informao persistente, mantida
pelo sistema; objetos de interface representam as interaes entre atores e o sistema;
objetos de controle representam as tarefas executas pelos usurios e suportadas pelo
sistema.
Modelar um sistema com estes trs tipos de objetos tem vrias vantagens.
Primeiro, proporciona ao desenvolvedor heursticas simples para distinguir conceitos
semelhantes; mas diferentes. Segundo, a abordagem dos trs tipos de objeto resulta em
objetos menores e mais especializados. Terceiro, a abordagem dos trs tipos de objeto
conduz a modelos mais aptos a mudanas [BRU 2000]. A diferenciao dos objetos de
interface permite isolar funcionalidade, representada por objetos entidade e de controle,
da interao humano-computador, representada pelos objetos de interface, garantindo a
possibilidade de serem realizadas modificaes mais facilmente, sem efeitos em cascata.
Para distinguir entre diferentes tipos de objetos, a UML prov o mecanismo de
esteretipos.
Notao
Uma vez definida a arquitetura, devem ser modeladas as interaes entre os
objetos. Para representar os casos uso, neste nvel de abstrao, adotam-se os diagramas
de seqncia, propostos na UML [BOO 99].
Um importante papel, que casos de uso executam em desenvolvimentos
orientados a objeto, a elucidao das responsabilidades de interao. Para este
propsito, os diagramas de seqncia so uma clara representao. Um diagrama de
seqncia um modo formal de assegurar que so identificados todos objetos e
operaes, inseridos num determinado caso de uso e mostra como objetos participantes
52
interagem para cumprir o caso de uso [JAC 94c]. Na anlise de requisitos, os diagramas
de seqncia so usados para ajudarem identificar novos objetos participantes e
comportamento ausente.
Construindo diagramas de seqncia, no s se modela a ordem da interao entre
os objetos; mas, tambm, distribui-se o comportamento do caso de uso. Em outras
palavras, designa-se a cada objeto responsabilidades na forma de um conjunto de
operaes. Estas podem ser compartilhadas por qualquer caso de uso no qual um
determinado objeto participa. Se um objeto participar em mais de um caso de uso sua
definio dever ser idntica; ou seja, o comportamento de uma operao dever ser o
mesmo nos diferentes diagramas de seqncia em que ela aparecer [BRU 2000].
O diagrama de seqncia de fato um elemento piv transio de anlise em
projeto OO. Ele foca comportamento de alto-nvel; assim, aspectos de implementao
no devero ser tratados neste momento.
Nos diagramas de seqncia, cada coluna representa um objeto que participa da
interao. A ordem das colunas no significante; entretanto devem ser posicionadas de
modo a oferecer maior clareza. Pode-se, tambm, ter colunas que representam os atores.
O eixo vertical representa o tempo, de cima para baixo. Objetos interagem entre si,
enviando mensagens, representadas por setas. A recepo de uma mensagem por um
objeto aciona a execuo de uma operao que pode enviar mensagens a outros objetos.
As mensagens podem ter argumentos (parmetros). Rtulos nas setas representam
nomes e argumentos das mensagens. A figura 4.8 ilustra um exemplo de um diagrama
de seqncia.
: Cliente
: Painel do
Cliente
: Extrato
oferecetransaes( )
pedetransao(transao)
cria( )
aceitatransao( )
53
4.3.4
54
com que ela faz. A forma de narrativa textual, contendo informao sobre situaes e
usurios ilustrativos, parece ser mais memorvel e inteligvel maioria dos leitores que
a forma estruturada [POT 95]. A seguir, a figura 4.9 ilustra um exemplo de um caso de
uso concreto.
Maria deseja utilizar o caixa eletrnico do banco X
para retirar RS 50,00, em dinheiro, de sua conta
corrente; Ela passa seu carto no leitor do caixa
eletrnico, pronto para ser usado. O sistema valida
o carto e, em seguida, requisita a senha a Maria.
Pelo teclado, Maria digita sua senha. O sistema
valida a senha digitada e mostra na tela o menu de
opes de transaes. Maria escolhe a opo saque,
tocando no boto com esta denominao que est na
tela; em seguida escolhe R$ 50,00 no menu de
possveis quantidades de dinheiro. O caixa
automtico verifica a quantia escolhida, a existncia
de fundos, aprova a transao e libera a quantia
correta e um recibo do saque. Maria pega o dinheiro
e o recibo nos locais especificados, o sistema debita
a quantia da conta corrente, exibe uma mensagem,
pedindo para o cliente certificar-se de que est de
posse de seu carto magntico; e, por fim, mostra
novamente o menu de opes de transaes.
Caixa Automtico
BANCO X
Escolha a transao desejada
Consultar Saldo
Depositar Valores
Consultar Extrato
Transferir Valores
Sacar Dinheiro
Sair
55
A seguir, apresentam-se algumas guias para conduzirem o processo de construo
de casos de uso:
Procure definir os atores e seus objetivos, antes de escrever os casos de uso;
Explicite o contexto do caso de uso, especialmente as pr e ps-condies;
Descreva os casos de uso como planos de execuo de objetivos, no como
meras seqncias cronolgicas de eventos;
Descreva as intenes dos usurios e as responsabilidades do sistema, no os
detalhes de IU;
Para cada caso de uso, escreva e revise o curso normal onde o objetivo
alcanado, antes de escrever os cursos alternativos ou de exceo;
Liste as singularidades e avalie suas relevncias, antes de escrever os cursos de
como o sistema deve trat-las;
Utilize as questes por qu? para encontrar o nvel de abstrao acima e
como? para encontrar o nvel de abstrao abaixo;
Revise a ontologia, constantemente, ao gerar ou alterar os casos de uso.
Apoiado nas abordagens de [COC 2000, ROL 98, ACH 98] definem-se algumas
diretrizes que tm a funo de prover recomendaes sobre o estilo esperado das
narrativas dos casos de uso aos nveis essencial e singular. As diretrizes esto
representadas na figura a seguir.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
56
Estas diretrizes devem estar disponveis ao autor do caso de uso (analista), no
momento da descrio. Acredita-se que a qualidade dos casos de uso, produzidos, possa
aumentar, quando as diretrizes so aplicadas corretamente.
Resultados
Lista de atores
Modelos de tarefas minimais
Modelo ontolgico
Cenrios
Prottipos
Lista de modificaes
Casos de uso modificados
Casos de uso validados e
integrados
Casos de uso operacionais
57
modo linear, por questo de clareza. Alm disto, o processo de construo de casos de
uso no segue um modelo em cascata e, sim, um modelo iterativo.
58
59
5.2.1
Atividades Preliminares
Sabe-se que, para levar a cabo a construo dos casos de uso e cenrios, algumas
atividades devem ser previamente realizadas. O passo inicial encontrar os atores que
interagem com o sistema. O levantamento dos atores iniciadores foca a ateno do
desenvolvedor nas pessoas que iro utilizar os sistema e auxilia na elicitao de um
maior nmero de objetivos no comeo do desenvolvimento.
Aps terem sido identificados os atores que interagem com o sistema de caixa
eletrnico; determinados seus objetivos; e coletadas as informaes contextuais, aplicase uma re-engenharia de tarefas para as tarefas que se deseja corrigir. s vezes, o
solucionar um problema resultado de uma modificao organizacional ou de atitude
frente a uma tarefa, ao invs de uma inovao tecnolgica. Por exemplo, nas
informaes contextuais coletadas no se tinha nenhuma restrio que impunha a
seqncia mostrada na figura 5.1, que provavelmente a conseqncia do uso freqente
desta seqncia.
Sacar Dinheiro
SEQ
Fornecer Identificao
Pedir Saque
Escolher Valor
Pegar Dinheiro
Sair
FIGURA 5.1 Modelo de tarefa minimal Sacar Dinheiro, antes da re-engenharia de tarefas
Sabe-se que o cliente deve Fornecer Identificao, antes de Pegar Dinheiro; mas
no, necessariamente, antes de realizar a seqncia que agrupa Pedir Saque e Escolher
Valor. Raciocnio similar aplicado aos modelos de tarefas minimais Consultar Saldo e
Consultar Extrato. Os modelos de tarefas minimais para os objetivos Sacar Dinheiro,
Consultar Saldo e Consultar Extrato, aps a re-engenharia de tarefas, esto ilustrados
respectivamente nas figuras 5.2, 5.3 e 5.4. PAR indica que as subtarefas podem ser
executadas em paralelo, e SEQ indica que o ordenamento deve ser seqencial. Utilize o
modelo de tarefas de sua preferncia, como por exemplo, ConcurTaskTree [PAT 2001],
contanto que a representao utilizada ilustre a decomposio de tarefas em subtarefas,
hierarquicamente, como estruturas de rvores e, tambm, represente o ordenamento
temporal da tarefa.
Sacar Dinheiro
SEQ
TPAR
Pegar Dinheiro
PAR
Fornecer Identificao
TSEQ
SEQ
Pedir Saque
Ecolher Valor
Sair
60
Consultar Saldo
SEQ
TPAR
Pegar Saldo
Sair
PAR
Fornecer Identificao
Pedir Saldo
Consultar Extrato
SEQ
TPAR
Pegar Extrato
Sair
PAR
Fornecer Identificao
TSEQ
SEQ
Pedir Extrato
Ecolher Perodo
Decidir se quer ou
no o recibo e
responder a
pergunta dada
Perguntar para o
usurio se quer ou
no o recibo de
suas transaes;
Imprimir os recibos
desejados, de
acordo com a
resposta
Benefcio
O tempo de uso
minimizado,
favorecendo o
nmero de
transaes na
mesma unidade de
tempo
O uso prolongado Uso reduzido de
por causa do
papel
dilogo mais
sofisticado
61
Tendo optado pela primeira alternativa, tem-se ento que, ao final de qualquer
transao bancria, no caixa eletrnico, o cliente dever receber automaticamente um
recibo com informaes sobre a transao e o saldo de sua conta.
Posteriormente, a estas duas atividades, definem-se os requisitos iniciais do
sistema; obtm-se uma lista informal de requisitos iniciais do sistema (tabela 5.2),
derivada diretamente dos requisitos dos usurios.
TABELA 5.2 Lista informal dos requisitos iniciais do sistema para o caixa eletrnico
Identificador
do Requisito
RS1
RS2
RS3
RS4
RS5
RS6
RS7
RS8
...
Objetivo
Sacar dinheiro
Consultar saldo
Consultar extrato
Reabastecer o dinheiro
...
Prioridade
organizacional
Alta
Alta
Alta
Mdia
Complexidade Prioridade
tcnica
Complexo
5
Simples
5
Mdio
4
Simples
5
...
ID do
caso de uso
UC1
UC2
UC3
UC4
...
Algumas pessoas podem preferir utilizar a lista de ator-objetivo para ter uma
viso global dos casos de uso que esto sendo desenvolvidos; enquanto outras podem
optar pelos diagramas de casos de uso. Um diagrama de casos de uso, representando os
atores iniciadores e os casos de uso, pode servir para o mesmo propsito; porm
necessita-se de notas adicionais para explicitar as prioridades.
Lembra-se tambm, que o modelo ontolgico inicialmente criado, conforme se
realiza a anlise de tarefas. Alguns exemplos na notao LEL so representados na
figura 5.5. A LEL baseada na simples idia: entender a linguagem do problema sem
se preocupar em entender o problema [LEI 97]. Nela, cada termo um smbolo, e
cada smbolo uma entrada expressa em termos de noo e resposta comportamental. A
noo deve tentar esclarecer o significado do smbolo e seus relacionamentos
fundamentais com os outros smbolos. A resposta comportamental deve especificar a
conotao do smbolo no macrosistema. Cada smbolo pertence a uma categoria e deve
ser representado por um ou mais sinnimos [CYS 2001].
62
Smbolo: Cliente/Correntista
Noo:
- Algum que possua uma conta em uma agncia do banco.
- Tem um carto e conhece sua senha.
Resposta Comportamental
- Cliente faz um saque.
- Cliente faz um depsito.
- Cliente faz uma transferncia.
- Cliente consulta o saldo.
- Cliente consulta o extrato.
Smbolo: Consulta o Saldo/ Consultar Saldo
Noo:
- Ao requisitada pelo cliente.
- Consiste em verificar a quantia disponvel na conta.
Resposta Comportamental
- O sistema imprime o recibo do saldo da conta.
FIGURA 5.5 Exemplos de entradas na notao LEL para o caixa eletrnico
Um usurio tem o objetivo de causar um certo efeito (F) no ambiente, sob certas
condies, tem-se assim F como parte dos requisitos. Se um artefato ou dispositivo pode
criar o efeito desejado, ento possvel atribuir o efeito como uma funo
(responsabilidade) do artefato. Cabe ao desenvolvedor criar um sistema que possua esta
responsabilidade, a fim de auxiliar um usurio a alcanar seu objetivo [CHA 96]. Em
sistemas interativos, os objetivos so alcanados por certas interaes entre o usurio e
o sistema, isto , por relacionamentos entre intenes do usurio e responsabilidades do
sistema, modelados atravs de casos de uso.
Construir os casos de uso essenciais implica em definir os dois componentes da
interao usurio-sistema: as intenes do usurio, derivadas diretamente da estrutura
hierrquica de objetivos do modelo de tarefa minimal e as responsabilidades
correspondentes do sistema.
A determinao das responsabilidades do sistema uma atividade criativa de
domnio especfico. Podem ser concebidos vrios sistemas que cumprem os objetivos
dos usurios, eles diferiro no modo com que os objetivos so operacionalizados.
Devem ser realizadas propostas alternativas do sistema [POT 95]. Casos de uso
permitem definir com maior preciso como o usurio deseja usar as tarefas interativas
[PIM 97]; casos de uso ajudam a avaliar, refinar e escolher a proposta [POT 95]. Na
realidade, as responsabilidades do sistema devem ser refinadas, durante todo o processo
de desenvolvimento at a definio detalhada do comportamento do sistema [PIM 97].
A organizao dos eventos, no caso de uso essencial, segue a organizao lgica e
temporal do modelo de tarefa minimal. O uso de seqncia de eventos, como narrao,
encorajado baseado na abordagem de Pimenta [PIM 97]: Mesmo entrelaando
tarefas, para uma dada instncia, o usurio s manipula uma tarefa interativa por vez,
independente da possibilidade de paralelismo do computador. Um caso de uso
63
resultado da escolha de uma seqncia. Em [PIM 97], so propostas as heursticas para
escolha das seqncias: seqncia habitual do usurio; seqncia prvia (formal) da
organizao; e novas seqncias propostas para teste do usurio.
A figura 5.6 ilustra o caso de uso essencial que modela a seqncia habitual do
usurio para realizar o objetivo Sacar dinheiro. O nome do caso de uso objetivo
principal do modelo de tarefa minimal (Sacar dinheiro) que, junto com a identificao
(UC1) e nome o ator iniciador (Cliente), provem da explicita associao entre atores e
objetivos, representados aqui, atravs da lista ator-objetivo.
Informao Descritiva
ID: UC1
Nome: Sacar dinheiro
Contexto
Escopo: caixa eletrnico
Ator Iniciador: cliente
Atores Participantes: Prioridade: 5
Freqncia: diversas vezes ao dia
Recursos: identificao, conta, valor do saque, dinheiro, recibo
Pr-condies: caixa eletrnico, pronto para ser usado
Ps-condies: caixa eletrnico pronto para ser usado; cliente com o valor do saque em dinheiro;
cliente com o recibo do saque
Narrativa
Intenes do usurio
Responsabilidades do sistema
1. Fornece a identificao ao sistema
2. Aceita a identificao do cliente
3. Valida a identificao do cliente
4. Oferece transaes ao cliente
5. Pede a transao saque
6. Aceita a transao saque
7. Pede o valor do saque ao cliente
8. Escolhe o valor do saque
9. Aceita o valor do saque
10. Valida o valor do saque
11. Altera o saldo da conta do cliente
12. Emite o recibo da transao saque para o cliente
13. Libera o valor do saque em dinheiro para o cliente
14. Pega o dinheiro e o recibo
15. Registra a transao
16. Oferece transaes ao cliente
17. Escolhe Sair
FIGURA 5.6 Caso de uso essencial Sacar dinheiro
64
caso de uso oriunda de uma anterior discusso com os stakeholders ao criar-se a lista
ator-objetivo. O motivo pelo qual foi construdo primeiramente este caso de uso que
sua prioridade a mais alta, dentro da escala que se definiu, prioridade 5.
A freqncia de utilizao do caso de uso especialmente til para definir a IU do
sistema. Se um caso de uso possuir uma alta taxa de utilizao, dever-se- tornar o seu
acesso e sua interao a mais direta possvel.
Os recursos restringem o caso de uso e sinalizam importantes aspectos dos
requisitos no funcionais. No exemplo em questo, est-se definindo o caso de uso
Sacar dinheiro onde necessrio ter uma identificao, uma conta, um valor, um recibo
e dinheiro.
Atravs dos recursos, tambm se pode elicitar objetivos complementares,
necessrios para obter uma descrio da total funcionalidade do sistema, aplicando o
princpio consumo/produo [ROL 98b]. De acordo com este princpio, qualquer
recurso, produzido em um caso de uso deve ser consumido no mesmo ou em outro caso
de uso e vice-versa. Por exemplo, argumentando sobre a produo e o consumo do
recurso dinheiro, identifica-se um evento onde ele consumido: a inteno pegar
dinheiro. Mas onde ele produzido? Por quem? No se identifica no caso de uso um
evento responsvel pela produo deste recurso, isto indica que se deve ter outro caso
de uso que descreva o objetivo abastecer o caixa eletrnico com dinheiro.
Outra utilidade dos recursos auxiliar a identificao de objetos e atributos ao
nvel operacional.
Deve-se, tambm, especificar s pr e ps-condies dos casos de uso. Descrevese um caso de uso, de modo que ele transforme o estado atual no estado final desejado.
O caso de uso no pode iniciar se os estados das pr-condies no so verdadeiros. As
ps-condies descrevem os estados resultantes da execuo do caso de uso. Para o caso
de uso Sacar dinheiro, define-se a pr-condio caixa eletrnico pronto para ser usado,
o caso de uso s iniciar se esta condio vlida e, sendo uma pr-condio, ela no
averiguada ao longo do caso de uso. A ps-condio mais direta que se determina o
estado final que o ator iniciador deseja, ao executar o caso de uso e atingir seu objetivo;
ou seja, cliente com o valor do saque em dinheiro. Para serem determinadas as demais
ps-condies, tambm se baseia na propriedade de que as pr-condies devam estar
inclusas nas ps-condies para garantirem um funcionamento autocontido [ROL 98b].
Neste caso, a pr-condio caixa eletrnico pronto para ser usado deve fazer parte das
ps-condies. Quando no se consegue incluir uma pr-condio nas ps-condies de
um caso de uso, significa que devamos ter um caso de uso singular para tratar dessa
exceo.
O uso de pr e ps-condies apia significativamente um desenvolvimento
centrado no uso, e essa prtica expressa a ordem de determinadas tarefas relacionadas.
De fato, casos de uso com pr e ps-condies fornecem meios lgicos e diretos de
modelar o workflow, aspecto da estrutura da tarefa freqentemente negligenciado na
modelagem de casos do uso [CON 2000a].
Ao se escrever a seo narrativa do caso de uso, cada subobjetivo do modelo de
tarefas minimal considerado como uma inteno do usurio. A cada inteno, as
65
responsabilidades receptivas e expressivas so definidas. Por exemplo, para a inteno
Fornece identificao ao sistema (1) definimos a responsabilidade receptiva Aceita a
identificao do cliente (2) e a responsabilidade expressiva Valida a identificao do
cliente (3).
Deve-se lembrar que um dos requisitos iniciais do sistema a emisso de recibo
para cada transao do caixa eletrnico. Como o objetivo do usurio sacar dinheiro,
acredita-se que a emisso do recibo deva preceder a liberao do dinheiro, pois o ator,
atingindo seu objetivo final, tenderia a esquecer de pegar o recibo, com maior
freqncia. Casos de uso facilitam argumentaes desta natureza.
De forma anloga se obtm os outros casos de uso essenciais, como, por exemplo,
os casos de uso essenciais Consultar Saldo (figura 5.7) e Consultar Extrato
(apresentado na seo 4.3.1, figura 4.3).
Informao Descritiva
ID: UC2
Nome: Consultar saldo
Contexto
Escopo: caixa eletrnico
Ator Iniciador: cliente
Atores Participantes: Prioridade: 5
Freqncia: diversas vezes ao dia
Recursos: identificao, conta, saldo, recibo
Pr-condies: caixa eletrnico pronto para ser usado
Ps-condies: caixa eletrnico pronto para ser usado; cliente com o recibo do saldo
Narrativa
Intenes do usurio
Responsabilidades do sistema
1. Fornece a identificao ao sistema
2. Aceita a identificao do cliente
3. Valida a identificao do cliente
4. Oferece transaes ao cliente
5. Pede a transao saldo
6. Aceita a transao saldo
7. Emite o recibo do saldo para o cliente
8. Pega o saldo
9. Registra a transao
9. Oferece transaes ao cliente
10. Escolhe Sair
FIGURA 5.7 Caso de uso essencial Consultar Saldo
66
intenes nos prprios casos de uso. Por exemplo, no caso de uso essencial Sacar
dinheiro ter-se-ia a expresso 1 ||| ( 5 8 ) 14 17, isto , conforme a organizao lgica e
temporal do modelo de tarefa minimal Sacar Dinheiro (figura 5.2) sabe-se que a
inteno Fornece a identificao ao sistema (1) deve ser executada antes da inteno
Pega o dinheiro e o recibo (14); mas pode ser executada de maneira integrada com as
intenes Pede a transao saque (5) e Escolhe o valor do saque (8).
Esta prtica tem um efeito positivo sobre a usabilidade, por encorajar o desenhista
de IU a modelar, como seqncias completamente ordenadas, somente as interaes
onde a ordem realmente fixa ou determinada. Desta forma, o termo seqncia,
utilizado na definio do conceito de caso de uso, torna-se impreciso, pois no indica
uma sucesso estritamente ordenada. As expresses temporais tambm auxiliam na
identificao e avaliao de pr e ps-condies dos episdios ao nvel singular.
Existe ainda outro tipo de eventos no tratado aqui at este momento, os eventos
assncronos. Como eles no se aplicam a um nico ponto especfico da narrativa de um
caso de uso, so descritos, separadamente. Sugere-se utilizar um tipo de identificao
diferente da dos outros eventos para evitar confuses. Como, por exemplo, use letras, ao
invs de nmeros. Exemplificando, caso existisse o requisito de que o cliente pudesse
cancelar a realizao da tarefa Sacar dinheiro a qualquer momento que lhe fosse
requisitada alguma informao, ter-se-ia o caso de uso ilustrado na figura 5.8.
Informao Descritiva
ID: UC1
Nome: Sacar dinheiro
Contexto
Escopo: caixa eletrnico
Ator Iniciador: cliente
Atores Participantes: Prioridade: 5
Freqncia: diversas vezes ao dia
Recursos: identificao, conta, valor do saque, dinheiro, recibo
Pr-condies: caixa eletrnico pronto para ser usado
Ps-condies: caixa eletrnico pronto para ser usado; cliente com o valor do saque em dinheiro; cliente com o
recibo do saque
Narrativa
Intenes do usurio
Responsabilidades do sistema
1. Fornece a identificao ao sistema
2. Aceita a identificao do cliente
3. Valida a identificao do cliente
4. Oferece transaes ao cliente
5. Pede a transao saque
6. Aceita a transao saque
7. Pede o valor do saque ao cliente
8. Escolhe o valor do saque
9. Aceita o valor do saque
10. Valida o valor do saque
11. Altera o saldo da conta do cliente
12. Emite o recibo da transao saque para o cliente
13. Libera o valor do saque em dinheiro para o cliente
14. Pega o dinheiro e o recibo
15. Registra a transao
16. Oferece transaes ao cliente
17. Escolhe Sair
a. Cancela a transao saque
b. Aceita o cancelamento da transao saque
c. Desfaz a transao saque
Relao temporal
a (1 ||| ( 5 8 )) 14 17
FIGURA 5.8 Caso de uso essencial Sacar Dinheiro, com relao temporal e eventos assncronos
67
A expresso de relao temporal tambm atualizada para considerar este evento.
Dessa forma, tem-se que, enquanto o cliente no Pega o dinheiro e o recibo (14), ele
pode Cancelar a transao saque (a).
5.2.3
68
Informao Descritiva
ID: UC1
Nome: Sacar dinheiro
Contexto
Escopo: caixa eletrnico
Ator Iniciador: Cliente
Ator Participante: Prioridade: 5
Freqncia: diversas vezes ao dia
Recursos: carto, senha, conta, valor do saque, dinheiro, recibo
Pr-condio: caixa eletrnico pronto para usar; cliente com carto;
Ps-condio: caixa eletrnico pronto para usar; cliente com o carto; cliente com o dinheiro; cliente com o recibo; valor do saque debitado da
conta.
Narrativa
Episdio
ID: EP1
Nome: Fornece identificao ao sistema
Pr-condio: caixa eletrnico pronto para usar; cliente com o carto
Ps-condio: caixa eletrnico pronto para usar ou em uso; cliente com o carto; carto e senha do cliente vlidos
Plano:
N
Agente
Ao
1
Cliente
Passa seu carto no leitor do caixa eletrnico
2
Sistema
Aceita o carto do cliente
3
Sistema
Valida o carto do cliente
4
Sistema
Pergunta a senha do cliente
5
Cliente
Fornece sua senha ao sistema
6
Sistema
Aceita a senha do cliente
7
Sistema
Valida a senha do cliente
Episdio
ID: EP2
Nome: Pede Saque
Pr-condio: caixa eletrnico pronto para usar
Ps-condio: caixa eletrnico pronto para usar; pedido de transao saque aceito
Plano:
N
Agente
Ao
1
Sistema
Oferece transaes ao cliente
2
Cliente
Pede a transao saque
3
Sistema
Aceita a transao saque
Episdio
ID: EP3
Nome: Escolhe o valor do saque
Pr-condio: caixa eletrnico pronto para usar; pedido de transao saque aceito
Ps-condio: caixa eletrnico pronto para usar; pedido de transao saque aceito; valor de saque vlido
Plano:
N
Agente
Ao
1
Sistema
Pede o valor do saque ao cliente
2
Cliente
Escolhe o valor do saque
3
Sistema
Aceita valor de saque
4
Sistema
Verifica que tem o valor do saque disponvel no caixa eletrnico
5
Sistema
Valida o valor do saque com o saldo da conta do cliente
6
Sistema
Pede a confirmao da transao saque para o cliente
7
Cliente
Entra com a confirmao da transao saque
8
Sistema
Aceita a confirmao da transao saque
Episdio
ID: EP4
Nome: Pega o dinheiro e o recibo
Pr-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; valor de saque vlido
Ps-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; valor de saque vlido; cliente com o dinheiro e o recibo
Plano:
N
Agente
Ao
1
Sistema
Emite o recibo da transao saque para o cliente
2
Sistema
Libera o valor do saque em dinheiro para o cliente
3
Cliente
Pega o recibo
4
Cliente
Pega o dinheiro
5
Sistema
Altera o saldo da conta do cliente
6
Sistema
Registra a transao saque
Episdio
ID: EP5
Nome: Sair
Pr-condio: caixa eletrnico pronto para usar
Ps-condio: caixa eletrnico pronto para usar
Plano:
N
Agente
Ao
1
Sistema
Oferece transaes ao cliente
2
Cliente
Pede a transao sair
3
Sistema
Aceita a transao sair
4
Sistema
Registra a transao sair
Anexos
Ancora: RS1; RS2; RS3; RS5; RS6; RS8
69
A inspeo das pr e ps-condies tambm auxilia na identificao de
singularidades, assim como o uso de algumas guias derivadas da abordagem [COC
2000]:
Considere cursos alternativos para cursos de sucesso;
Comportamentos incorretos do ator iniciador; por exemplo, senha invlida;
Inatividade do ator iniciador; por exemplo, tempo limite de entrada da senha
esgotado;
Resposta inadequada ou falta de resposta de um ator participante ou do
sistema; por exemplo, tempo limite de espera por resposta esgotado;
Cada ocorrncia de um evento do tipo o sistema valida implica que existe a
necessidade de tratar a falha da validao; por exemplo, valor de saque
incorreto.
Falha interna de componentes que fazem parte do sistema; por exemplo,
impressora sem papel;
Desta forma, para cada caso de uso singular normal, obtm-se uma lista de
singularidades e, posteriormente, prope-se aes defensivas e corretivas. Representa-se
os relacionamentos entre objetivos/episdios/problemas/singularidades/aes corretivas
e defensivas, atravs de tabelas. Como j mencionado anteriormente, cada singularidade
deve ser associada a um problema; e um problema deve ser associado a um objetivo.
A tabela 5.4 apresenta um resumo das singularidades encontradas para o caso de
uso singular Sacar Dinheiro (UC1), ilustrado na figura 5.9.
Capturadas as singularidades, inicia-se a delimitao das singularidades
relevantes. Prope-se o uso de algumas heursticas, adaptas de [POT 95], para guiar a
obteno do conjunto de casos de uso singulares relevantes:
Cada objetivo da hierarquia de objetivos deve ser realizado com sucesso por
um episdio em, pelo menos, um caso de uso. Esta heurstica garante que
todos objetivos da hierarquia sero considerados;
O conjunto total dos casos de usos tem de conter, pelo menos, uma instncia
de cada categoria de singularidade - crtica ou representativa -; mas cada
singularidade associada somente a um caso de uso, sem repeties;
Respeitar as dependncias lgicas e temporais da hierarquia dos objetivos.
No h necessidade de considerar os objetivos fora da hierarquia.
Sendo assim, atravs destas heursticas e baseados na tabela de singularidades e
no caso de uso singular que representa o curso normal, definem-se os demais casos de
uso singulares relevantes. Um caso de uso singular definido para cada singularidade, e
para cada combinao de singularidades, consideradas relevantes, descrevendo se o
episdio afetado ou no pela conseqncia da singularidade. H trs tipos de
conseqncias:
O episdio alcanado com sucesso (S - sucesso);
O episdio no realizado, porque a singularidade ocorreu no episdio
anterior (F falha);
O episdio alterado para considerar a singularidade (ID da singularidade).
70
TABELA 5.4 Tabela de singularidades para o caso de uso Sacar dinheiro
ID da
singulalaridade
S01
ID do
episdio
onde a singularidade
acontece
EP1
ID da ao
do episdio
onde a singularidade
acontece
2
Problema
Singularidade
(Causa do problema)
Aes (D)efensivas ou
(C)orretivas
S02
EP1
EP1
Carto invlido
S04
S05
EP1
EP1
3
6
Carto invlido
Senha no aceita
S03
S06
EP1
Senha no valida
S07
EP2
Pedido de transao
incorreto
S08
EP2
Pedido de transao, no
realizado
S09
EP3
S10
EP3
Valor de saque no
escolhido
S11
EP3
Dinheiro insuficiente
S12
EP3
Saldo Insuficiente
S13
EP3
Transao no confirmada
S14
EP4
Recibo no emitido
S15
EP4
Recibo no pegado
S16
EP4
S17
EP4
Dinheiro no pegado
Faz-se uso de uma tabela de sucesso e falha de episdios para a definio dos
casos de uso singulares. Esta tabela tem como cabealho o objetivo que aglutina os
possveis casos de uso singulares que tratam de sua realizao. A cada caso de uso
singular identificado, so atribudos um identificador e um nome. O nome deve ser
sugestivo do comportamento do caso de uso. Para os casos de uso singulares que
modelam casos diferentes do normal, adota-se o nome do caso de uso, como uma
71
combinao do objetivo do caso de uso, o nome do episdio onde a singularidade
aparece e nome da singularidade. Um exemplo de definio de casos de uso singulares,
para as singularidades, anteriormente encontradas, mostrado na tabela 5.5.
TABELA 5.5 Tabela de sucesso e falha de episdios para definio dos casos de uso singulares do
objetivo Sacar Dinheiro
Objetivo: Sacar dinheiro
Id do
Nome do caso de uso
caso de
uso
UC1
Sacar dinheiro
UC4
Sacar dinheiro; Fornece identificao ao sistema; Caixa
eletrnico desligado
UC5
Sacar dinheiro; Fornece identificao ao sistema; Leitor
quebrado ou carto inelegvel
UC6
Sacar dinheiro; Fornece identificao ao sistema; Carto
invlido
UC7
Sacar dinheiro; Fornece identificao ao sistema; Carto
bloqueado
UC8
Sacar dinheiro; Fornece identificao ao sistema;
Timeout da senha
UC9
Sacar dinheiro; Fornece identificao ao sistema; Senha
incorreta
UC10
Sacar dinheiro; Pede saque; Transao invlida
UC11
Sacar dinheiro; Pede saque; Timeout do pedido da
transao
UC12
Sacar dinheiro; Escolhe o valor do saque; Valor
incorreto do saque fornecido
UC13
Sacar dinheiro; Escolhe o valor do saque; Timeout da
escolha do valor do saque
UC14
Sacar dinheiro; Escolhe o valor do saque; Valor do
saque excede o disponvel, no caixa eletrnico
UC15
Sacar dinheiro; Escolhe o valor do saque; Valor do
saque excede o saldo da conta do cliente
UC16
Sacar dinheiro; Escolhe o valor do saque; Timeout da
confirmao da transao
UC17
Sacar dinheiro; Pega o dinheiro e o recibo; Erro na
emisso do recibo
UC18
Sacar dinheiro; Pega o dinheiro e o recibo; Timeout para
pegar o recibo
UC19
Sacar dinheiro; Pega o dinheiro e o recibo; Dinheiro
enrosca, durante a liberao
UC20
Sacar dinheiro; Pega o dinheiro e o recibo; Timeout para
pegar o dinheiro
EP1
EP2
EP3
EP4
EP5
S
S01
S
F
S
F
S
F
S
F
S02
S03
S04
S05
S06
S
S
S07
S08
F
F
F
F
F
F
S09
S10
S11
S12
S13
S14
S15
S16
S17
Para episdios com ordenamento seqencial, ao ocorrer uma falha num episdio,
pode-se, com pouco esforo, determinar que os episdios posteriores, necessariamente
tambm falharo. Isto se deve ao fato de que as ps-condies de um episdio
precedente fazem parte das pr-condies do episdio posterior.
Aps a definio dos casos de uso singulares, cada um deles descrito de acordo
com a notao gramatical. Um exemplo de caso de uso singular UC19 que trata da
singularidade Dinheiro enrosca durante a liberao (S16) apresentado na figura 5.10.
Por motivos de clareza, apresenta-se um extrato deste caso de uso, detalhando apenas o
episdio (Pega o dinheiro e o recibo), onde a singularidade ocorre, e as aes corretivas
72
e defensivas so propostas. Limita-se a citar os demais episdios, por eles serem
integralmente reaproveitados do caso de uso normal (UC1). Observa-se que o plano
(conjunto de aes) do episdio que trata desta singularidade no corresponde ao plano
do episdio onde no ocorre nenhuma singularidade. Sendo assim, para identificar as
variantes dos episdios normais, adota-se o padro de concatenar o identificador do
episdio normal com o da singularidade. No exemplo, em questo, obteve-se o
identificador EP4.S16.
Informao Descritiva
ID: UC19
Nome: Sacar dinheiro; Pega o dinheiro e o recibo; Dinheiro no liberado
Contexto
Ator Iniciador: Cliente
Ator Participante: Recursos: carto, senha, conta, valor do saque, dinheiro, recibo
Pr-condio: caixa eletrnico pronto para usar; cliente com carto;
Ps-condio: caixa eletrnico pronto para usar; cliente com o carto; cliente sem o dinheiro; cliente sem o
recibo; valor do saque no debitado na conta.
Narrativa
Episdio
ID: EP1
Nome: Fornece identificao ao sistema
Pr-condio: caixa eletrnico pronto para usar; cliente com o carto
Ps-condio: caixa eletrnico pronto para usar ou em uso; cliente com o carto; carto e senha do cliente
vlidos
Episdio
ID: EP2
Nome: Pede Saque
Pr-condio: caixa eletrnico pronto para usar
Ps-condio: caixa eletrnico pronto para usar; pedido de transao saque aceito
Episdio
ID: EP3
Nome: Escolhe o valor do saque
Pr-condio: caixa eletrnico pronto para usar; pedido de transao saque aceito
Ps-condio: caixa eletrnico pronto para usar; pedido de transao saque aceito; valor de saque vlido
Episdio
ID: EP4.S16
Nome: Pega o dinheiro e o recibo; dinheiro enrosca, durante a liberao
Pr-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; valor de saque vlido
Ps-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; valor de saque vlido;
cliente sem o dinheiro e sem o recibo
Plano:
N
Agente
Ao
1
Sistema
Libera o valor do saque em dinheiro para o cliente
2
Sistema
Detecta falha no dispensador de dinheiro
3
Sistema
Notifica o cliente de que a transao saque no pode ser efetuada
4
Sistema
Bloqueia a transao saque
Episdio
ID: EP5
Nome: Sair
Pr-condio: caixa eletrnico pronto para usar
Ps-condio: caixa eletrnico pronto para usar
Anexos
Ancora: RS1; RS2; RS3; RS5; RS6; RS8
FIGURA 5.10 Caso de uso singular Sacar dinheiro; Pega o dinheiro e o recibo; Dinheiro no liberado
Ao ser descrito este caso de uso singular, constatou-se que s se poder emitir o
recibo de realizao da transao saque, depois de ter certeza de que foi realizada, com
sucesso. Dessa forma, a alternativa de emitir o recibo, antes de liberar o dinheiro a fim
de se minimizar o esquecimento do recibo, por parte do cliente, mostrou-se ineficiente,
pois podem ocorrer problemas com o dispensador de dinheiro e a transao no se
efetivar. Deve-se, assim, pensar em outras alternativas para evitar o esquecimento do
recibo, como, por exemplo, a exibio de uma mensagem de realizao do saque com
sucesso e de solicitao, para o cliente pegar o recibo. Deste modo, o episdio Pega o
dinheiro e o recibo (EP4) tornar-se-ia o episdio ilustrado na figura 5.11.
73
Episdio
ID: EP4
Nome: Pega o dinheiro e o recibo
Pr-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; valor de saque vlido
Ps-condio: caixa eletrnico pronto para usar; carto e senha do cliente vlidos; valor de saque vlido; cliente
com o dinheiro e o recibo
Plano:
N
Agente
Ao
1
Sistema
Libera o valor do saque, em dinheiro, para o cliente
2
Cliente
Pega o dinheiro
3
Sistema
Altera o saldo da conta do cliente
4
Sistema
Informa o cliente do sucesso da transao saque e da emisso do recibo
5
Sistema
Emite o recibo da transao saque para o cliente
6
Cliente
Pega o recibo
7
Sistema
Registra a transao saque
Componente de modelo
Objeto
Classe
Operao
Herana
Agregao
Restries
Atributo
Exemplos
Joo
Cliente
Cria, submete, seleciona
um tipo de
Tem, consiste de, inclui, possui
Deve ser
Carto Ouro
74
75
Nome
Carto
Senha
Painel do Cliente
Leitor
Identificao
Definio
Objeto do domnio do problema
Objeto do domnio do problema
Objeto que realiza as interaes via tela e teclado.
Objeto que realiza as interaes com o leitor de carto
Objeto que controla a transao que corresponde ao episdio EP4
: Cliente
: Leitor
passacarto( )
: Identificao
: Painel do
Cliente
: Carto
: Senha
cria( )
aceitacarto( )
validacarto
pedesenha( )
fornecesenha( )
aceitasenha( )
validasenha( )
76
5.2.5
Definio
Nomes
especficos
Tipo de uso
Volume de
uso
Iniciador dos
casos de uso
Cliente
Proprietrio da
conta, Maria,
correntista
genrico
Diversas
vezes, ao dia
Operador
Joo
especialista
Poucas vezes,
ao dia
...
...
...
...
...
Participante
dos casos de
uso
-
UC31
...
77
importncia que os prottipos so construdos para suportarem as tarefas dos usurios.
O quo difcil ou fcil for a interao com um artefato, estar altamente relacionada
com qual informao est representada e como ela est representada, na IU. Uma IU
deve ser projetada de maneira que as aes e operaes que devem ser realizadas
interagindo com o sistema, correspondam s maneiras naturais de pensar e agir do
usurio. Um exemplo de caso de uso concreto foi ilustrado na figura 4.9 da seo 4.3.4.
5.2.6
Experimentao de Cenrios
78
O caso de uso que modela o curso normal deve ser experimentado, primeiramente,
por ilustrar como o sistema funcionar freqentemente. Inclusive este teste pode ser
realizado antes de se levantarem as singularidades e as aes defensivas e corretivas.
Pois, sendo cenrio um meio concreto, capaz de conduzir conjuntamente a ao e
reflexo, pode servir para o usurio participar mais ativamente do processo de
desenvolvimento, levantando possveis casos de falha ou exceo, alm de encontrar
possveis erros.
Mesmo alertando o usurio que a experimentao seria realizada com um
prottipo de baixo nvel e o objetivo no era avaliar detalhes de interface; porm a
semntica da interface, o primeiro questionamento do usurio foi Mas vai ser desse
jeito mesmo? Com essa aparncia? O que veio a confirmar uma constatao
encontrada em [COM 2000c] que, para o usurio, o sistema a interface. Neste sentido,
casos de uso essenciais mostram-se de grande valia, por permitirem que designers de
interface tenham elementos suficientes para projet-las: alm do corpo narrativo que
descreve a interao entre atores e sistema, o campo freqncia de uso e possveis
ncoras a RNFs so teis na definio das IUs; as expresses de relao temporal
auxiliam a definir o ordenamento dentro do caso de uso e os campos de pr e pscondies ajudam a estabelecer o ordenamento entre os casos de uso.
5.2.7
79
uso, ento dissociada dos outros casos de uso. Deste modo, obtm-se uma coleo solta
de casos de uso separados, modelos parciais com aspectos restritos do sistema.
Necessita-se integrar os casos de uso para alcanar uma viso global de utilizao para
um ator do sistema.
O nmero de possveis relacionamentos entre os casos de uso cresce
exponencialmente com o de casos de uso. Se esses relacionamentos forem formalizados,
podero ser mais facilmente identificados e suportados [ALS 99]. Episdios
representam explicitamente o relacionamento entre casos de uso; os relacionamentos
entre os casos de uso aparecem de forma direta na narrativa, no sendo necessria uma
representao grfica, como os diagramas de casos de uso da UML, para represent-los.
Episdios comuns entre os casos de uso devem ser globalmente renumerados, visando
integrao dos casos de uso.
No exemplo do caixa eletrnico, o episdio Fornecer Identificao e o episdio
Sair so os mesmos para os casos de uso essenciais Sacar Dinheiro, Consultar Saldo e
Consultar Extrato. Sendo assim, atribu-se um identificador nico para cada episdio e
tem-se que o sistema do caixa eletrnico composto pelos episdios apresentados na
tabela 5.8.
TABELA 5.8 Episdios do caixa eletrnico
ID
EP1
EP2
EP3
EP4
EP5
EP6
EP7
EP8
EP9
Nome
Fornece identificao ao sistema
Pede saque
Escolhe valor do saque
Pega o dinheiro e o recibo
Sair
Pede extrato
Escolhe perodo do extrato
Pega o recibo
Pede saque
80
6 Concluso
Esta concluso est articulada em quatro partes: a primeira resume as principais
contribuies desta dissertao; a segunda compara a abordagem proposta com outras
abordagens baseadas em objetivos; a terceira discute as limitaes do trabalho e a quarta
investiga perspectivas futuras de continuidade do trabalho.
6.1 Contribuies
Esta dissertao um esforo para a integrao das reas de Engenharia de
Software (ES) e Interao Humano-Computador (IHC), particularmente com a proposta
de uma abordagem para construo sistemtica e integrada de casos de uso e cenrios.
As contribuies podem ser resumidas pelos seguintes aspectos:
6.1.1
81
82
Quanto ao uso de notao grfica, para expressar a narrativa dos casos de uso,
tambm h algumas consideraes. Embora os diagramas de seqncia possam
igualmente representar interaes entre atores, o uso desta notao grfica para a seo
narrativa dos casos de uso apresenta dois problemas de usabilidade. O primeiro que
usurios finais e outros stakeholders geralmente no tm familiaridade com a notao; o
segundo que diagramas no permitem demonstrar tudo o que se precisa escrever,
geralmente necessrio colocar notas adicionais, nos diagramas. Estes so alguns dos
motivos pelos quais no foi adotada a representao grfica para a narrativa dos casos
de uso (diagrama de seqncia) na fase de elicitao de requisitos; mas, apenas, ao nvel
operacional, restrito aos analistas e programadores.
6.1.2
Resumo de Resultados
1. Apresentou-se uma proposta onde se explorou o uso integrado de modelos de
tarefas, cenrios e casos de uso para o desenvolvimento de sistemas
interativos teis e usveis. Props-se que casos de uso podem ser
especialmente teis para combinar a perspectiva tcnica de ES com a
perspectiva humana de IHC. Tendo os objetivos das atividades humanas,
como ponto de partida, casos de uso apiam o pensamento sobre as tarefas
interativas; ou seja, sobre as interaes entre usurios e sistema, a fim
alcanarem objetivos, dentro de contextos de uso;
2. Promoveu-se uma construo sistemtica de casos de uso, centrada no uso de
um futuro sistema. Sistematizou-se a construo de cenrios e casos de uso,
atravs de guias, heursticas e notaes;
3. Encontrou-se uma base terica, tanto na perspectiva de IHC (relao tarefaobjetivo [STO 95]), quanto na perspectiva de ES (relao funo-objetivo
[CHA 96]) para a proposio da abordagem baseada em objetivos de
construo de casos de uso e cenrios;
4. Demonstrou-se que conceitos teleolgicos so importantes para organizar e
estruturar casos de uso e permitem solucionar grande parte dos problemas
conceituais de casos de uso;
5. Mostrou-se que o conceito de episdios tem um papel significante no
gerenciamento dos casos de uso. Episdios podem ser usados como
mecanismos de modularizao. A estrutura episdica possibilita representar
os relacionamentos entre os casos de uso, dentro da prpria descrio
narrativa;
6. A construo de casos de uso, delimitados pela estrutura hierrquica de
objetivos, evita que se desenvolvam solues tcnicas para problemas
irrelevantes;
7. O uso dos quatro nveis de abstrao ajudou a lidar com a complexidade da
construo e validao dos casos de uso e permitiu utilizar de maneira
integrada casos de uso e cenrios. medida que a modelagem realizada, o
desenvolvedor consegue perceber mais claramente os efeitos de suas decises
e, assim, obter solues mais adequadas;
8. Construram-se primeiramente os casos de uso essenciais que representam a
essncia das tarefas. Ao nvel singular, inspecionaram-se as singularidades, o
que contribuiu para a usabilidade; ao nvel concreto, cenrios permitiram uma
avaliao da usabilidade de um futuro sistema, antes da fase de projeto; j o
nvel operacional estabeleceu uma ligao com abordagens OO e permitiu a
continuidade do desenvolvimento de sistemas nestas abordagens;
83
9. Atravs da abordagem, a concepo do contedo e a organizao das IUs so
deduzidas, a partir da lgica de uso do sistema, como suporte realizao de
tarefas, e no, a partir da lgica de funcionamento das funes do sistema;
10. Casos de uso criados, a partir da abordagem, so gerados de maneira objetiva,
ao invs de intuitiva. Casos de uso gerados, sistematicamente, permitem
estudar os comportamentos no normativos dos usurios mais a fundo, o que
contribuiu para uma investigao mais dirigida usabilidade de sistemas.
Potts
Cockburn
Rolland
Abordagem Proposta
Um questionamento
sistemtico e a
criao de aes
defensivas e
corretivas
Algumas heursticas
para determinar a
salincia dos casos
de uso. Uso do
conceito de
episdios
Apenas sugerido,
sem especificar, que
cenrios podem ser
instanciados para
serem avaliados
pelos usurios
Um questionamento
sistemtico e algumas
guias.
Algumas guias
Uso de tcnicas de
subordinao,
extenso e variao
Sugere que os
objetivos delimitam o
nmero de casos de
uso. Uso do conceito
de episdios
Um questionamento
sistemtico, inspeo de pr
e ps-condies, algumas
guias, e a criao de aes
defensivas e corretivas
Hierarquia de objetivos.
Heursticas para determinar
os casos de uso relevantes.
Uso do conceito de
episdios
Cenrios no so
usados para
experimentao com
usurios
No
No
Cenrios so usados
apenas num primeiro
momento para elicitar
objetivos e
posteriormente so
integrados em casos de
uso. No so, porm,
usados para
experimentao com
usurios
No
Construo sistemtica e
integrada. Casos de uso e
cenrios so integrados em
estruturas com diferentes
nveis de abstrao.
Cenrio como uma
instncia especfica de um
caso de uso, usado para
experimentao com
usurios
Atravs de cenrios e
prottipos de baixo nvel
No
No
Sumrio, objetivos do
usurio e subfunes
No
Contextual, funcional
e fsico
No
Essencial, singular,
operacional e concreto
Nvel operacional
Sim
No
Sim
Sim
Sim
Sim
Sim
Sim
No
No
No
Seqencial
Seqencial
Seqencial
Considerao de
eventos assncronos
No
No
Representao de
Objetivos
Apenas sugerida
uma hierarquia de
objetivos similar a
modelos de tarefas
No
Sugere trat-los em
uma seo separada,
usando asterisco (*)
para identific-los
Metfora do veleiro
Atravs da expresso de
relao temporal
De acordo com a expresso
de relao temporal
(seqencial ou ordenao
flexvel)
Descritos separadamente e
tratados na expresso de
relao temporal
Delimitao do
conjunto de casos de
uso
Uso complementar
dos conceitos de
cenrios e casos de
uso
Avaliao da
usabilidade com os
usurios
Diferentes nveis de
abstrao
Nvel de abstrao
que estabelece ligao
com abordagens OO
Notaes definidas
Guias para a descrio
textual dos casos de
uso
Relaes temporais
nos casos de uso
Fluxo dos eventos
Representao da
ontologia
No
Requirements Chunks
organizados
hierarquicamente
No
Sim
84
6.3 Limitaes
A falta de aplicao da abordagem em um estudo de caso real uma limitao
clara do trabalho. Exemplos mais claros da integrao da abordagem com uma
metodologia de desenvolvimento, orientado a objetos, poderiam auxiliar os interessados
em usar esta abordagem.
85
Bibliografia
[ABB 83]
[ABO 94]
[ACH 98]
ACHOUR, C. Ben. Guiding Scenario Authoring. In: EUROPEANJAPANESE CONFERENCE ON INFORMATION MODELLING AND
KNOWLEDGE BASES, 8., 1998, Finland. Proceedings... [S.l.]: H.
Jaakola, H. Kangassalo, 1998. p.181-200.
[ALS 99]
[ANT 96]
ANTN,
A.
I.
Goal-Based
Requirements
Analysis.
In:
INTERNATIONAL
CONFERENCE
ON
REQUIREMENTS
ENGINEERING, ICRE, 1996, Colorado, USA. Proceedings... Colorado
Springs: ICRE, 1996. p.136-144.
[ANT 98a]
[ANT 98b]
[BEN 93]
[BID 2001]
[BD 2000] BDKER, S. Scenarios in User-Centered Design Setting the Stage for
Reflection and Action. Interacting with Computers, [S.l.], v. 13, n. 1,
p.61-75, 2000.
86
[BOO 99]
[CAR 95]
[COC 97a]
[COC 97b]
[COC 98]
[COC 2000] COCKBURN, A. Writing Effective Use Cases. Boston: AddisonWesley, 2000.
[CON 99]
[CON 2000a] CONSTANTINE, L. et al. Structure and Style in Use Cases for User
Interface Design. 2000. Disponvel em: <http://www.foruse.com/
Presentations/ structurestyle2.pdf>. Acesso em: 20 fev. 2002.
[CON 2000b] CONSTANTINE, L.; LOCKWOOD, L. The Usability Challenge: Can
UML and the Unified Process Meet It? Australia, Nov. 2000. Disponvel
em: <http://www.foruse.com/Presentations/tools.pdf>. Acesso em: 03
mar. 2002.
87
[CON 2000c] CONSTANTINE, L.; LOCKWOOD, L. What Do Users Want?
Engineering Usability into Software. Australia, Nov. 2000. Disponvel
em: <http://www.foruse.com/Presentations/tools.pdf>. Acesso em: 15
jan. 2002.
[CYB 98]
CYBIS, W. A.; PIMENTA, M. S.; SILVEIRA, M. C.; GAMEZ, L. Uma
Abordagem Ergonmica para o Desenvolvimento de Sistemas
Interativos. In: WORKSHOP SOBRE FATORES HUMANOS EM
SISTEMAS COMPUTACIONAIS, IHC, 1., 1998, Maring-PR.
Compreendendo Usurios, Construindo Interfaces: atas. [Rio de
Janeiro: PUC-RJ], 1998.
[CYB 2000] CYBIS, W. A. Abordagem ergonmica para IHC. 2000. Apostila de
curso. Laboratrio de Utilizabilidade INE/UFSC, Florianpolis.
Disponvel em: <http://www.labiutil.inf.ufsc.br/apostila/apostila.htm>.
Acesso em: 18 maio 2002.
[CYS 2001]
[FER 99]
[FOW 97]
[FOW 2000] FOWLER, M.; SCOTT, K. UML Distilled: A Brief Guide to the
Standard Object Modeling Language. 2nd ed. Reading: Addison-Wesley,
2000.
[FUR 98]
[JAC 92]
[JAC 94a]
[JAC 94b]
[JAC 94c]
[JAR 99]
88
[KAI 95]
[KAI 99]
[KLA 93]
[KAV 96]
[KYN 92]
89
[PAT 2001]
[PIM 96]
[PIM 97]
[PIM 2000]
[POT 94]
[POT 95]
[REG 95a]
[REG 95b]
[REG 96]
90
[ROL 98a]
[ROL 98b]
[ROL 99]
[ROS 95]
[RUB 92]
[RYS 2000]
[STO 95]
91
Object-Oriented Programming Systems, Languages na Applications,
OPSLA, 1995.
[WIR 2001]
WIRFS-BROCK, R.; McKEAN, A. A Brief Tour of ResponsibilityDriven Design. OOPSLA 2001. Disponvel em: <http://www.wirfsbrock.com/pages/resources/zip/brief_tour_of_responsibility_driven_desi
gn_tutorial.zip>. Acesso em: 27 set. 2002.
[WOO 96]