Cenários e Casos de uso: Fundamentos e Conceitos
De que trata o artigo:
Este artigo destaca a importância de se considerar as perspectivas de Engenharia de Software (ES) e Interação Humano-Computador (IHC) para desenvolver sistemas interativos úteis e usáveis. Os conceitos de cenários e casos de uso são apresentados e analisados visando a integração das duas áreas.
Para que serve:
Conhecer como desenvolver software capaz de suportar o trabalho de pessoas, tornando este trabalho ainda mais fácil, rápido, simples e flexível. Para isso é necessário entender melhor as tarefas realizadas pelas pessoas e relacioná-las às tarefas desempenhadas no desenvolvimento de software.
Em que situação o tema útil:
Desenvolver sistemas com melhor usabilidade é um requisito buscado e estudado por diversas empresas. Uma das formas de alcançar este ponto é considerando e combinando estudos de ES e IHC. É neste escopo que direcionamos este artigo.
Freqüentemente, sistemas interativos são desenvolvidos com visões isoladas das áreas de Engenharia de Software (ES) e de Interação Humano-Computador (IHC). ES, tradicionalmente, prioriza aspectos essencialmente funcionais dos sistemas, como eficiência, manutenibilidade e portabilidade, conferindo ao desenvolvimento uma orientação funcional em detrimento da operacional. Já IHC foca principalmente a usabilidade dos sistemas, concentrando atenção aos aspectos de interação e não considerando adequadamente os aspectos enfatizados pela ES [CYB 98]. Essas duas abordagens refletem diferentes perspectivas, uma mais orientada ao sistema (tecnológica) e outra mais orientada ao usuário (humana), sobre a mesma atividade de desenvolvimento.
Recentes trabalhos de pesquisa convergem para idéia central de, para desenvolver sistemas interativos úteis e usáveis, ser necessário considerar as perspectivas de ES e IHC, desde as primeiras etapas do desenvolvimento do sistema, exigindo a utilização conjunta e integrada de conceitos, técnicas e metodologias de desenvolvimento de ambas as áreas. Porém, essa interseção não é ainda nem natural nem objetiva: cada área considera aspectos diferentes e, muitas vezes, disjuntos do sistema, sem nenhuma correspondência explícita e sistematicamente estabelecida, tendo como conseqüência 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 mútuo da mesma tarefa de desenvolvimento e dos objetivos comuns [ABO 94].
Este artigo visa mostrar as possibilidades desta integração, através da combinação dos conceitos de Casos de Uso (Use Cases) e Cenários (Scenarios), importantes técnicas de modelagem, amplamente utilizadas, respectivamente nas áreas de ES e IHC, em diferentes contextos, com diferentes visões; mas apresentando similaridades valiosas para propiciarem o uso complementar de ambas as técnicas. Ambos são descrições narrativas. Cenários são 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 comunicação entre grupos multidisciplinares, enquanto que casos de uso são 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 convicção 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 níveis de abstração e partindo do enfoque de que cenários são instâncias concretas de casos de uso, podem-se combinar os propósitos e usos complementares de ambas as técnicas.
Acredita-se que a combinação dessas técnicas, aliada a uma boa compreensão das tarefas e do contexto organizacional em que elas são executadas, juntamente com a explicitação dos objetivos, previnam a possibilidade de que especificações se tornem desencontradas das reais necessidades dos usuários e devam ser a base para um processo de desenvolvimento de software interativo.
Contudo, abordagens apontam que casos de uso apresentam problemas conceituais [REG 95a, REG 95b] e a maneira pela qual são comumente usados na Unified Modeling Language (UML) [BOO 99], não considera adequadamente aspectos de usabilidade [CON 2000b]. Além disso, várias pesquisas têm focado, principalmente, as funções e os usos de cenários e casos de uso, no processo de desenvolvimento de sistemas, enquanto que o processo de construção destes, muitas vezes, é negligenciado.
Com o intuito de fundamentar esta possibilidade de integração, este artigo apresenta uma investigação dos conceitos e fundamentos de cenários e casos de uso, sob a ótica, respectivamente, de IHC e ES.
Segundo definição do dicionário Aurélio [FER 99], o termo “cenário” significa: “Lugar onde ocorre algum fato, ou onde decorre a ação, ou parte da ação, de uma peça, romance, filme, etc”. Em IHC, o comum significado para o termo “cenário” é uma instância representativa de uma interação entre usuário e sistema [CAM 92]. Um cenário é uma descrição narrativa informal e concreta a respeito de um uso de um sistema por uma pessoa.
Na literatura de IHC, há um amplo consenso sobre os benefícios da utilização de cenários, no processo de desenvolvimento de software, e, também, que cenários podem ser usados para muitos propósitos diferentes. Em IHC, cenários são particularmente úteis para
· ilustrar como um usuário provavelmente efetua tarefas particulares com um, presente ou futuro, sistema;
· prover uma representação de projeto, formulada em ações e experiências das pessoas que, efetivamente, usarão a tecnologia;
· avaliar a usabilidade de sistemas;
· guiar o projeto de interfaces dos usuários (IUs);
· testar teorias de IHC;
· mediar a comunicação entre grupos multidisciplinares [CAM 92, CAR 2000].
Cenários geralmente são representados por narrativas textuais, em linguagem natural, que, freqüentemente, são aprimoradas por gráficos, diagramas e imagens [RYS 2000]. Podem também ser representados através de protótipos, storyboards, vídeos, maquetes, ou até mesmo por situações físicas planejadas para suportar as atividades de um usuário [CAR 2000]. Um exemplo de cenário pode ser observado abaixo:
· Maria deseja utilizar o caixa eletrônico do banco X para retirar RS 50,00 em dinheiro de sua conta corrente; Ela passa seu cartão no leitor do caixa eletrônico pronto para ser usado. O sistema valida o cartão 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 opções de transações. Maria escolhe a opção saque, tocando no botão com esta denominação que está na tela; em seguida escolhe R$ 50,00 no menu de possíveis quantidades de dinheiro. O caixa automático verifica a quantia escolhida, a existência de fundos, aprova a transação 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 do seu cartão magnético; e, por fim, mostra novamente o menu de opções de transações.
Uma coleção de cenários não possui uma estrutura definida, é representada através de um conjunto não estruturado.
Cenários são utilizados tanto de maneira formal quanto informal, variando seu uso de partes constituintes do processo de desenvolvimento; por exemplo, no desenvolvimento baseado em cenários e no desenvolvimento participativo de software; até usos mais espontâneos; por exemplo, para propósitos de comunicação [KLA 93].
Em geral, desenvolvedores parecem não considerar cenários como parte integrante do método de desenvolvimento [ABO 94]. Estudos empíricos demonstram que programadores avaliam projetos, simulando cenários mentalmente [BEN 93]. O uso informal de cenários pode ser observado quando desenvolvedores têm algum ponto de discordância, exploram opções de projeto, procuram esclarecer requisitos do sistema etc. [KLA 93].
Quando utilizados de maneira informal, cenários são construídos ad hoc, nenhum método específico é utilizado para gerá-los ou avaliá-los [ABO 94]; seus conteúdos provêem de muitas fontes diferentes, desde experiências dos desenvolvedores e conhecimento do domínio a reais observações dos usuários. Não existem compromissos com o que um cenário deve conter ou o quão representativo deve ser para uma futura situação de uso [KLA 93]. Os usos informais ou implícitos de cenários são predecessores dos usos mais formais ou explícitos.