• Nenhum resultado encontrado

Capítulo 5 Avaliação de UbiCheck

6.2. Atividades Alteradas e Inseridas em UbiCheck 2.0

Embora os fatores das características de ubiqüidade capturem comportamentos que podem ocorrer em softwares ubíquos, alguns deles refletem conceitos tecnológicos que são mais importantes nas etapas de arquitetura e de projeto do que na definição de requisitos.

Por esse motivo, após as perguntas do guia para definição de requisitos de ubiqüidade serem elaboradas, é importante classificá-las de acordo com a etapa do desenvolvimento em que cada uma melhor se aplica. Como UbiCheck é uma abordagem para apoiar a definição de requisitos, optou-se por classificar as perguntas como aplicáveis em requisitos e aplicáveis em outras etapas do desenvolvimento.

Nesse sentido, o especialista deve avaliar cada pergunta elaborada e definir em qual dessas duas categorias ela se enquadra. Com vistas a simplificar o entendimento, são fornecidos alguns exemplos de perguntas e suas respectivas classificações, bem como o motivo pelo qual aquela classificação foi atribuída:

Pergunta: Quais os serviços relevantes para o sistema?

Classificação: aplicável em requisitos

Motivo: Essa é uma pergunta sobre funcionalidades de um sistema que devem ser providas como serviços, portanto, adequada a definição de requisitos.

Pergunta: Como as informações do usuário são consideradas?

Classificação: aplicável em requisitos

Motivo: Essa é uma pergunta que discute como as informações de usuários devem ser tratadas, o que pode ser feito na definição de requisitos.

Pergunta: Como o container do serviço é considerado?

Classificação: aplicável em outras etapas.

Motivo: A escolha de um container é uma atividade de arquitetura, portanto, na definição de requisitos não é necessário especificar esse tipo de informação, pois a forma que cada serviço é considerado em um container pode variar de acordo com a escolha da tecnologia.

69

Pergunta: Como fazer cache dos serviços?

Classificação: aplicável em outras etapas.

Motivo: Cache é tipicamente uma atividade de projeto para melhorar o desempenho de uma

aplicação, portanto, não é necessário definir como fazer cache de serviços na definição de requisitos.

É importante destacar que as perguntas consideradas não aplicáveis em requisitos serão descartadas do guia para definição de requisitos. Adicionalmente, é importante ressaltar que as perguntas que compõem o guia para definição de requisitos disponível no Anexo F já se encontram classificadas.

6.2.2. Elaborar Direcionamento da Pergunta

As perguntas que compõem o guia para definição de requisitos de ubiqüidade têm o objetivo de destacar as informações importantes que devem ser capturadas nos requisitos de ubiqüidade. Contudo, no estudo apresentado no capítulo anterior percebeu- se que para apoiar a definição de requisitos é importante que também seja fornecido um direcionamento sobre como essas informações devem ser registradas. Nesse sentido, é importante especificar:

Item de Especificação: o tipo de informação que deve ser definida para responder a pergunta, por exemplo, um requisito funcional, uma regra de negócio, uma diretriz, um caso de uso etc.

Orientação: detalhamento de como o item de especificação deve ser capturado..

Para facilitar o entendimento, a seguir são fornecidos alguns exemplos de direcionamentos:

Pergunta: Quais os usuários relevantes para o sistema?

Item de Especificação: Mapa de Atores

Orientação: Definir os atores que interagem com o sistema.

Pergunta: Como as informações do usuário são consideradas?

Item de Especificação: Requisito Funcional

Orientação: Definir as informações de interação do usuário que devem ser consideradas pelo

70

Pergunta: Como avaliar a utilidade das informações de contexto?

Item de Especificação: Passo de Caso de Uso

Orientação: Definir na captura da informação de contexto, como ela deve ser avaliada no que

diz respeito a sua utilidade.

Pergunta: Como a fonte de dados influencia a consolidação de informações de contexto?

Item de Especificação: Regra de Negócio

Orientação: Definir um critério para consolidar informações de acordo com a fonte de dados.

Novamente, é importante destacar que neste trabalho, o guia para definição de requisitos de ubiqüidade fornecido no Anexo F já contém um direcionamento para cada pergunta. Contudo, foram consideradas apenas as características de ubiqüidade - Captura de Experiência, Comportamento Adaptável, Heterogeneidade de Dispositivo, Onipresença de Serviços e Sensibilidade ao Contexto, devido à decisão de continuidade a pesquisa no contexto de desenvolvimento de software ubíquo.

6.2.3. Elaborar Glossário

As perguntas do guia para definição de requisitos de ubiqüidade foram elaboradas com base nos fatores das características de ubiqüidade. Como esses fatores utilizam termos específicos do domínio da computação ubíqua, as perguntas acabaram também contendo esses termos.

Como a idéia é que UbiCheck possa ser aplicada por desenvolvedores de software e não por especialistas em computação ubíqua, foi considerado necessário definir um glossário com os termos utilizados para facilitar o entendimento das perguntas.

Nesse sentido, foram consideradas as entidades que compõem os modelos das características de ubiqüidade, pois elas definem os assuntos das perguntas do guia para definição de requisitos de ubiqüidade e representam os principais conceitos presentes em cada fator. Sendo assim, para cada entidade dos modelos de ubiqüidade, foi elaborada uma definição, disponível no Anexo G.

6.2.4. Definir Requisitos de Ubiqüidade do Projeto

O uso de UbiCheck para apoiar na definição de requisitos foi alterado devido a inserção dos direcionamentos nas perguntas do guia para definição de requisitos de

71

ubiqüidade e pela disponibilidade de um glossário com os principais termos abordados nessas perguntas.

Enquanto na primeira versão de UbiCheck não haviam indicações de como proceder para registrar os requisitos, na versão 2.0, a inclusão dos direcionamentos nas perguntas permite que seja sugerido como e onde esses requisitos podem ser definidos, por exemplo, através de um caso de uso, de uma funcionalidade, de um requisito funcional etc.

Dessa forma, além da abordagem mostrar para o desenvolvedor quais informações devem ser capturadas nos requisitos de ubiqüidade, ela o orienta sobre como elas devem ser capturadas. Adicionalmente, o desenvolvedor tem a possibilidade de consultar um glossário de termos importantes quando tiver dificuldade em entender o assunto de uma pergunta.

Sendo assim, é provável que as melhorias acrescidas em UbiCheck 2.0 possam simplificar e fornecer mais apoio para os desenvolvedores durante a fase de definição dos requisitos de ubiqüidade em um projeto de desenvolvimento de software.