• Nenhum resultado encontrado

Modelo Conceitual de Contextos

No documento CarlosLima dissertação final (páginas 58-62)

Engenharia de Linha de Produto de Software e Engenharia de Requisitos

2.3.6. Modelo Conceitual de Contextos

Muitas das características variáveis de um sistema definem os contextos em que o software deverá operar a fim de atender às expectativas dos stakeholders, impactando nos requisitos do sistema (LAPOUCHNIAN e MYLOPOULOS, 2009). Neste sentido, trabalhos recentes têm explorado o uso de modelos conceituais de contextos, uma vez que eles podem ser úteis para

a análise dos objetivos dos stakeholders, focando na instanciação de variantes (SOUZA e MYLOPOULOS, 2009); (DALPIAZ, GIORGINI e MYLOPOULOS, 2009); (ALI, DALPIAZ e GIORGINI, 2009); (LAPOUCHNIAN e MYLOPOULOS, 2009), já que os mesmos estão intimamente ligados aos modelos de objetivos.

Dentre as abordagens que adotam os modelos conceituais de contextos destacamos, no âmbito desta dissertação, a de Ali, Dalpiaz e Giorgini (2009). Nela é proposta uma maneira de antecipar a análise de variabilidade, adotando uma ontologia intencional sobre modelos de objetivos, identificando como os contextos podem influenciar a definição da variabilidade. Nesta abordagem, duas definições são importantes: (i) ator, que é uma entidade que tem obje- tivos e pode decidir autonomamente como alcança-los, e; (ii) contexto, que é um estado par- cial do mundo que é relevante para satisfazer objetivos dos atores. Desta maneira, os modelos de objetivos podem auxiliar na escolha de variantes desde que guiados por contextos.

Assim sendo, procurou-se criar uma abordagem capaz de identificar os elementos dos modelos de objetivos que poderiam ser dependentes do contexto e como os contextos poderi- am influenciar na definição de variantes. Foi utilizado o modelo de objetivos presente em Tropos (CASTRO, KOLP e MYLOPOULOS, 2002); (BRESCIANI, GIORGINI, et al., 2004) e o resultado, a definição da semântica dos pontos de variação contextuais, pode ser visto na Tabela 3.

Tabela 3. Semântica dos Pontos de Variação Contextuais (ASADI, BAGHERI, et al., 2011)

Ponto de Variação Contextual

Sintaxe Visual

(A) Ativação do Objetivo

Raiz (Root Goal) Gi

C1 (B) Decomposição OU (OR- Decomposition) Gi or Tj Gj ... or ... Ti C1 C1 (C) Decomposição E (AND- Decomposition) Gi and Tj Gj ... and ... Ti C1 C1 (D) Decomposição Meio-Fim (Means-End) Gi Tj ... C1

Ponto de Variação Contextual

Sintaxe Visual

(E) Dependência de Ator

(Actor Dependency) A Gi B A B Ti C1 C1 (F) Contribuição para

Softgoal (Softgoal Contri- bution) SGi Gi + - C1 C2 SGi + - C1 C2 Ti

A semântica dos pontos de variações contextuais são as seguintes (de acordo com as linhas da Tabela 3) (ASADI, BAGHERI, et al., 2011): (A) seja Gi o root goal, Gi é ativado SE o contexto C1 for selecionado; (B) o objetivo Gi (tarefa Ti) pode ser alcançado (executa- da) através de Gj (Tj) SE o contexto C1 for selecionado; (C) o atendimento do objetivo Gi (a execução da tarefa Ti) exige o objetivo Gj (Tj) SE o contexto C1 for selecionado; (D) o obje- tivo Gi pode ser alcançado via tarefa Tj SE o contexto C1 for selecionado; (E) o ator A pode alcançar o objetivo Gi (executar a tarefa Ti) através da delegação para o ator B SE o contexto C1 for selecionado, e; (F) o objetivo Gi (tarefa Ti) contribui positivamente para o softgoal SGi SE o contexto C1 for selecionado e contribui negativamente SE o contexto C2 for seleci- onado.

Um contexto (context – C) implica em encontrar um conjunto de fatos (facts – F) e declarações (statements – S) que o especificam:

∑ ∑

Segundo Asadi, Bagheri, et al. (2011), um fato para um stakeholder é uma sentença que pode ser verificada, de maneira que é possível capturar os dados necessários para deter- minar o seu verdadeiro valor. Já uma declaração, é uma sentença que não pode ser verificada, seja pela falta de informação inerente aos dados necessários para determinar o seu valor ver- dadeiro, seja pela natureza abstrata da declaração. Por sua vez, as declarações podem ser sus- tentadas por um conjunto de fatos ou ainda outras declarações. A análise do contexto, portan- to, pode ser realizada através da decomposição de fatos e declarações (os elementos e semân- tica deste modelo de análise podem ser vistos na Tabela 4).

Tabela 4. Elementos da Análise Contextual (ASADI, BAGHERI, et al., 2011)

Elemento de Análise Sintaxe Visual

(A) Contexto C1 (B) Fato Fato (C) Declaração Declaração (D) E (AND) – obrigatório Fato Declaração

(E) OU (OR) - alternativo

Fato Declaração (F) Implica C1 Fato C1 (G) Suporta Declaração Declaração Declaração Fato

A semântica dos elementos de análise são as seguintes (de acordo com as linhas da Tabela 4) (ASADI, BAGHERI, et al., 2011): (A) contexto, elemento base (root); (B) fato, sentença verificável; (C) declaração, sentença não-verificável; (D) E (AND), relacionamento entre fatos, declarações ou fatos e declarações, de natureza obrigatória (ou seja, todas as sen- tenças devem ser avaliadas); (E) OU (OR), relacionamento entre fatos, declarações ou fatos e declarações, de natureza alternativa (ou seja, uma única ou algumas sentenças podem ser ava- liadas); (F) Implica, relacionamento que o contexto (root) tem com um fato ou com um rela- cionamento de obrigatoriedade (AND), e; (G) Suporta, relacionamento que uma declaração tem para com relacionamentos AND/OR e com o fato, a fim de justificar (ou eliminar a natu- reza não-verificável da declaração). Um detalhe interessante nesta análise é que uma declara- ção nunca poderá ser nó filho da árvore de análise de contexto, de forma que sempre que exis- tir uma declaração, deverá existir um relacionamento de suporta, para que sejam inseridos fatos que “concretizem” a declaração.

A análise de contextos é seguida pela análise de priorizações do usuário, que levam em consideração os softgoals (requisitos não-funcionais, ou ainda restrições de qualidade) que

estão especificados no modelo de objetivos. Ela adota a priorização dos softgoals de maneira bastante similar ao que ocorre em Dalpiaz, Giorgini e Mylopoulos (2009). A prioridade para o variante é obtida a partir da seguinte fórmula (ASADI, BAGHERI, et al., 2011):

( ) ∑ ( ) ( ) ∑ ( ) ( )

Assim, a função percentPos(v,sg) (percentNeg(v,sg)) diz respeito ao percentual resul- tante do total de contribuições positivas (negativas) de um variante v (ou ainda, produto) em relação ao número total de contribuições no modelo de objetivos. Já a priority(sg) é um núme- ro inteiro [0,n] (numa faixa de valores escolhida pelo usuário de, no mínimo, valor 0 e no má- ximo, valor n) que está relacionada à prioridade definida pelo stakeholder para o elemento.

Portanto, o processo de definição de variantes é subdivido em duas fases distintas de análise: (i) análise de contextos, onde são selecionados os subconjuntos de variantes aplicá- veis, e; (ii) análise de priorizações do usuário, onde é selecionado um dentre os variantes aplicáveis para atender determinadas necessidades dos stakeholders.

No documento CarlosLima dissertação final (páginas 58-62)