CONTEXTUAL GOAL MODELS Naara Soares Negre AUTORES Raian Ali Lidera grupos de pesquisa em Engenharia de Sistemas de Sotware na School of Design, Engineering and Computing Bournemouth University, UK. Possui Ph.D. em Engenharia de Software pela Universidade de Trento, Itália Fabiano Dalpiaz Professor assistente no grupo de pesquisa Organization & Information no Departamento de Informação e Ciências da Computação na Utrecht University, Holanda. Possui Ph.D. em Ciências da Computação pela Universidade de Trento, Itália AUTORES Paolo Giorgini Professor associado na Universidade de Trento. Possui Ph.D. em Ciências da Computação pela Universidade de Ancona, Itália RESUMO Contexto pode ser um fator principal para se determinar o conjunto de requisitos aplicáveis a um sistema, as alternativas que podem ser adotadas para atender a esses requisitos, bem como a qualidade de cada uma dessas alternativas Apesar disso, boa parte das pesquisas em ER ignoram o contexto Há ainda a falta de um framework em ER voltado para sistemas que refletem seu contexto É proposto o modelo de objetivos contextual INTRODUÇÃO Contexto tem uma grande influência no nível de objetivos, decidindo quais os objetivos devem ser atingidos e como alcançá-los Exemplo: Em um instituto de cuidados da saúde de pessoas com demência Existe o cuidador que possui o objetivo – G1 “deixar o paciente mais envolvido na vida social” O objetivo G1 pode ser alcançado através de dois subobjetivos: G1.1 “Levar o paciente para uma viagem na cidade” G1.2 “Levar um parente ou um velho amigo do paciente para visitá-lo” INTRODUÇÃO O objetivo G1 (o objetivo principal) é ativado pelo contexto C1 “o paciente está se sentindo entediado e tem sido há muito tempo desde a sua última atividade social” O objetivo G1 pode ser alcançado através do subobjetivo G1.1 O subobjetivo G1.1 pode ser alcançado se o contexto C1.1 “a cidade não está lotada for verdadeiro” Isto porque pessoas com demência podem ficar ansiosos em lugares lotados INTRODUÇÃO Para a construção de um sistema que suporte estas alternativas devem ser representados Objetivos: G1, G1.1 e G1.2 Como alcançar o objetivo principal: (G1.1 v G1.2) -> G1 Contexto: (C1 ^ C1.1) -> G1.1 Para tanto é proposto uma linguagem de modelagem de requisitos contextuais EXEMPLO DE EXECUÇÃO É apresentado um exemplo de aplicação de requisitos contextuais que será utilizado durante o decorrer do trabalho Consiste em um sistema de divulgação de produtos a clientes dentro de um shopping O sistema tem por principal objetivo divulgar um produto a clientes através de várias alternativas de execução A escolha da alternativa a ser adotada dependerá do contexto, o que incluirá as características dos clientes, produtos, equipe de vendas e outros elementos no shopping MODELO DE OBJETIVOS Representa uma mudança de paradigma em relação a análise de requisitos orientado a objetos Pois foca na análise dos requisitos iniciais onde são analisados os objetivos organizacionais para identificar e justificar os requisitos de software e posicioná-los dentro do sistema organizacional Assim é possível identificar e justificar os requisitos de software CONTEXTO EM REQUISITOS Contexto foi definido em várias disciplinas de ciência da computação, especialmente em inteligência artificial. Também em paradigmas computacionais emergentes, tais como sistemas ubíquos, adaptáveis e sistemas móveis Mas a definição específica de contexto depende fortemente do domínio no qual ele está inserido CONTEXTO EM REQUISITOS Java Histórico de Busca CONTEXTO EM REQUISITOS Os atores dentro de um modelo de objetivos deverá ser o observador de um contexto Um ator pode ser definido como: uma entidade que tem objetivos e pode decidir como alcançá-los Sendo a principal característica de um ator a autonomia Por exemplo: Uma equipe de vendas possui como objetivo transmitir de forma adequada informações sobre os produtos aos clientes A equipe tem total autonomia em decidir quando alcançar esse objetivo e como CONTEXTO EM REQUISITOS A equipe de vendas pode alcançar seu objetivo: Realizando contato com o cliente através de telefone Ou fornecer informações pessoalmente A decisão de como alcançar o objetivo dependerá do estado de uma parte do mundo que o ator está inserido, contexto CONTEXTO EM REQUISITOS Por exemplo: O cliente estar interessado em um produto é importante para a equipe de vendas decidir se divulga ou não um produto ao cliente Mas será irrelevante se a equipe de vendas decidir divulgar os produtos através de um autofalante Contexto é inerentemente parcial e de natureza volátil MODELO DE OBJETIVOS CONTEXTUAL Abordagens atuais de modelagem de objetivos não suportam a relação entre contexto e os objetivos Apesar de fornecer uma maneira de identificar variantes para a satisfação dos objetivos, não há uma forma explícita de relacionar a solução e o contexto que irá ser aplicado Pois a especificação do contexto para cada variante no modelo de objetivos trás alguns desafios: Pode haver um grande número de variantes e especificar um contexto pra cada uma delas pode ser demorado Pode haver variantes complexas o que dificulta definir o contexto de cada uma delas MODELO DE OBJETIVOS CONTEXTUAL É proposto um modelo de objetivos contextual onde pontos de variação são introduzidos para relacionar contextos e as variantes do modelo de objetivos É presentado parte do modelo de objetivos em Tropos para a divulgação de produtos que possui um conjunto de pontos de variação, que são anotações de contexto MODELO DE OBJETIVOS CONTEXTUAL MODELO DE OBJETIVOS CONTEXTUAL Definição dos pontos de variação no modelo de objetivos contextuais Or-decomposition: a adoção de cada subtarefa e/ou subojetivo em uma decomposição OR pode exigir um contexto específico. Exemplo do modelo de objetivos contextual em Tropos: “Divulgar o produto por venda casada” só pode ser adotado quando o produto pode ser utilizado com outro que o cliente já tem (C2) “A divulgação por oferta de desconto” é adotado quando o produto pode ser descontado e for de interesse do cliente (C3) “Promoção por amostra grátis” é adotado quando o produto é amostra e é novo para o cliente (C4) “Pegar amostra grátis através de uma máquina” pode ser adotado o cliente tem experiência com esse tipo de máquina e não for perder muito tempo pra pegar o produto (C5) MODELO DE OBJETIVOS CONTEXTUAL Means-end: objetivos podem ser alcançados por meio de tarefas. A adoção de cada tarefa pode exigir um contexto específico Exemplo do modelo de objetivos contextual em Tropos: “Obter a confirmação do cliente por reconhecimento de voz” pode ser adotado quando o local que o cliente está não for barulhento e o sistema deve ser treinado o suficiente para reconhecer a voz do cliente (C7) “Obter a confirmação do ciente através de um clique” pode ser adotado quando o cliente tem um bom nível de conhecimento no que diz respeito ao uso de tecnologias e um bom controle sobre seus dedos, e o dispositivo seja touchscreen (C8) MODELO DE OBJETIVOS CONTEXTUAL Dependência: um determinado contexto pode ser necessário para um ator atingir seu objetivo e/ou executar um tarefa através de outro ator Exemplo do modelo de objetivos contextual em Tropos: Para satisfazer o objetivo “Oferecer uma amostra do produto para o cliente através da equipe de vendas” o sistema irá delegá-lo a equipe de vendas, que tem a capacidade e tempo para explicar suficientemente sobre o produto ao cliente (C6) MODELO DE OBJETIVOS CONTEXTUAL Objetivo raiz: objetivos raiz só podem ser alcançados em determinados contextos Exemplo do modelo de objetivos contextual em Tropos: “Divulgar um produto ao cliente no shopping” para ser alcançado o cliente tem que estar dentro do shopping e aceitar participar da divulgação (C1) MODELO DE OBJETIVOS CONTEXTUAL And-decomposition: a satisfação e/ou execução de um subobjetivo e/ou subtarefa podem ser necessários em apenas alguns contextos, ou seja, alguns subobjetivos ou subtarefas são necessariamente obrigatórios para alcançar o objetivo ou tarefa principal Exemplo do modelo de objetivos contextual em Tropos: “Apresentar o local atual do cliente a equipe de vendas” não é necessário se o cliente está próximo e pode ser localizado pela própria equipe de vendas (C12) MODELO DE OBJETIVOS CONTEXTUAL Contribuição: as contribuições para os softgoals podem variar de um contexto para outro Exemplo do modelo de objetivos contextual em Tropos: Uma tarefa como “Obter a confirmação de um cliente por reconhecimento de voz” contribui negativamente para o softgoal “menos perturbação” quando há outras pessoas ao redor do cliente (C13) ANÁLISE DE CONTEXTO Como na análise de objetivos que verifica as possíveis atividades a serem realizadas para se alcançar um objetivo, na análise de contexto deve se verificar com base em um conjunto de fatos se um contexto se aplica O contexto é especificado como uma fórmula de predicado de mundo (wp) ANÁLISE DE CONTEXTO O predicado de mundo é classificado de acordo com a possível verificação através do ator, como fato ou declaração Fato (Fact): um predicado de mundo F é um fato para um ator A se pode ser verificado por A Declaração (Statement): um predicado de mundo S é uma declaração para um ator A, se S não pode ser verificado por A ANÁLISE DE CONTEXTO Um fato não é um assunto de ponto de vista, normalmente quando se verificado como verdadeiro por um ator, também o é para outro Por exemplo, um predicado de mundo “cliente comprou recentemente um produto no shopping” é um fato Este fato pode ser verificado olhando o histórico de compra do cliente ANÁLISE DE CONTEXTO Uma declaração é um predicado de mundo que não pode ser verificado por um ator, por razões tais como: Falta de informação: pode não ser possível obter informações necessárias. “Um cliente não sabe sobre um novo produto” é uma declaração, pois a equipe de vendas não pode obter todas as informações necessárias para obter esta informação. A equipe de vendas não pode monitorar se um cliente tenha lido sobre o produto ou que tenha conhecido o produto através de um amigo Natureza abstrata: alguns predicados de mundo são por natureza abstratos “Um cliente está interessado em um produto” é um predicado de mundo que um ator, como a equipe de vendas, não tem uma forma precisa de verificar o interesse do cliente, pois é um conceito que está relacionado ao humor do cliente ANÁLISE DE CONTEXTO Mesmo uma declaração não podendo ser diretamente verificada, pode-se realizar a verificação através de um refinamento de fatos e outras declarações Por exemplo para se verificar o wp – “Cliente está interessado no produto” poderá se fazer um refinamento considerando o comportamento do cliente no shopping e seu histórico de compras Este refinamento é chamado de Suporte, que é definido como Uma declaração S é suportada por uma fórmula de predicado de mundo ɸ se ɸ prover apoio a S ANÁLISE DE CONTEXTO Portanto o modelo de objetivos contextual proposto só permite apenas contextos que são especificados por meio de fatos e/ou declarações que são apoiados por fatos No modelo de objetivos contextuais as declarações e contextos são do tipo monitoráveis Declarações monitoráveis: uma declaração S é monitorável se existe uma fórmula de fatos que suporta S Contextos monitoráveis: um contexto C é monitorável se C pode ser especificado por uma fórmula de fatos e declarações monitoráveis ANÁLISE DE CONTEXTO A análise de contexto tem por objetivo definir se um contexto é monitorável e encontrar a fórmula de fatos que os especifica A análise de contexto começa com a especificação de uma fórmula de predicado de mundo que representa um contexto Com a análise de contexto podemos obter um modelo de representação do contexto ANÁLISE DE CONTEXTO ANÁLISE DE CONTEXTO Com a análise de contexto pode-se descobrir os dados que um ator deve capturar para o contexto ANÁLISE DE CONTEXTO Enquanto a análise de objetivos fornece construções para analisar hierarquicamente objetivos e descobrir conjuntos alternativos de tarefas utilizadas para alcançar os objetivos A análise de contexto fornece construções para analisar hierarquicamente contextos e descobrir conjuntos alternativos de fatos que o sistema tem e verificar se dá suporte ao contexto ANÁLISE DE CONTEXTO CONCLUSÕES O modelo de objetivos e seu monitoramento pela análise de contexto e a associação entre pontos de variação no modelo, permite uma contextualização sistemática do sistema no nível de abstração dos objetivos Essa contextualização pode ser realizada em dois momentos Durante o desenvolvimento do sistema Durante a execução do sistema CONCLUSÕES A análise de contexto tem um potencial para representar um contexto Mais compreensível para os stakeholders Facilmente modificável Melhor reutilizável