6.1 Cement
6.1.1 Cement Bond Log
Para realizar o mapeamento das histórias de usuário para os modelos i*, de acordo com a proposta deste trabalho, considera-se o formato de histórias de usuário proposto por Cohn (2006): como <papel> eu quero <ação> para <meta>. A escolha do formato de Cohn (2006) justifica-se pelo fato de o mesmo ser amplamente utilizado no ambiente ágil (Cockburn, 2007).
Segundo Leffingwell e Behrens (2009), nas histórias de usuário o papel representa quem realiza a ação ou alguém que está recebendo o valor da atividade, ou seja, a funcionalidade. Pode até mesmo ser um outro sistema, se é esse que está a iniciar a atividade. A ação é a atividade propriamente dita a ser executada pelo sistema. E a meta representa o valor para o negócio.
Nos modelos i*, de acordo com Wiki i*, os atores são entidades ativas que realizam ações para alcançar as metas. Podem representar papéis exercidos por pessoas, funções ou cargos ocupados, organizações ou sistemas. As metas representam os interesses estratégicos dos atores, ou seja, suas intenções, necessidades ou objetivos desejados para cumprir o seu papel dentro do ambiente em que está inserido. As tarefas representam o que o ator quer realizar de maneira particular, a forma de executar alguma atividade, isto é, indicam como realizar alguma ação para atender a uma meta ou a uma macro tarefa.
É possível notar as similaridades entre elementos nas histórias de usuário com elementos do i*. Por exemplo, o papel nas histórias de usuário e o ator na técnica i* são entidades que realizam ações. Enquanto que as ações nas histórias de usuário e as tarefas da técnica i* representam a atividade a ser executada. Já as metas nas histórias de usuário representam o valor para o negócio, ou seja, o objetivo final de quem representa o papel e na técnica i* os interesses dos atores para atingir seus objetivos.
Assim, o ponto de partida para realizar o mapeamento é o papel da história que é mapeado como ator nos modelos da técnica i*. Existindo várias histórias para determinado papel, o mesmo será representado como ator somente uma vez no modelo i*. Por se tratar de uma atividade de desenvolvimento de um sistema, o ator
Sistema sempre irá existir já que é o mesmo que atenderá, através de suas funcionalidades, às necessidades dos demais atores envolvidos com o software.
As metas das histórias de usuário são mapeadas como metas nos modelos i*. E as ações das histórias de usuário são mapeadas como tarefas do Ator Sistema, pois as mesmas serão operacionalizadas pelo sistema. A tabela 4 apresenta a correspondência entre os elementos das histórias de usuário e da técnica i* no mapeamento.
Tabela 4: Correspondência no Mapeamento de Elementos das Histórias de Usuário e da Técnica i*
História de Usuário Modelo i*
Elemento Elemento Notação
Papel Ator
Ação Tarefa
Meta Meta
Visando simplificar o entendimento para realizar o mapeamento a partir das correspondências mostradas na tabela 4 entre os elementos das histórias de usuário e
os elementos dos modelos i*, foram estabelecidas heurísticas como recurso para se chegar à solução do mapeamento proposto neste trabalho. Vale ressaltar que as heurísticas estabelecidas devem ser executadas na ordem em que foram expressas neste trabalho para que o mapeamento ocorra de maneira mais correta e objetiva.
As seguintes heurísticas foram propostas para realizar o mapeamento das histórias de usuário para o modelo SD:
SD-H1: Criar o Ator Sistema;
SD-H2: Criar um Ator no modelo i* para cada diferente papel das histórias de usuário;
SD-H3: Criar uma meta no modelo i* para cada meta das histórias de usuário. Se houver metas repetidas as mesmas serão definidas uma única vez no modelo;
SD-H4: Se houver metas repetidas para atores diferentes, criar um Ator genérico;
SD-H4.1: Criar um relacionamento IS_A do Ator genérico para os demais atores específicos que compartilham a mesma meta;
SD-H5: Relacionar as dependências de cada ator com suas metas. A figura 6 apresenta um exemplo do mapeamento para o modelo SD.
Figura 6: Exemplo de Mapeamento para o Modelo SD
No exemplo da figura 6, é mapeado o modelo SD para três atores (que representam papéis nas histórias) e estabelecidas suas relações de dependência. Foi
utilizada a ligação IS_A de um Ator Generalizado que compartilha a Meta Generalizada com o Ator 1 e com o Ator 3. A Meta Generalizada depende do Ator Sistema para ser alcançada. O Ator 1, Ator e Ator 3 dependem do Ator Sistema para atingirem suas metas.
Considerando os cartões de histórias de usuário da figura 7, é apresentado um exemplo na figura 8 de como é realizado o mapeamento para o modelo SD.
Figura 7: Exemplos de Cartões de Histórias
Figura 8: Exemplo SD
No exemplo de mapeamento do modelo SD apresentado na figura 8 os Atores Usuário e Administrador dependem do Ator Sistema para alcançarem suas metas.
Para representar o modelo SR as ações das histórias são mapeadas como tarefas do Ator Sistema, pois as mesmas serão operacionalizadas pelo sistema.
As heurísticas para realizar o mapeamento das histórias de usuário para o modelo SR são:
SR-H1: Criar uma Tarefa dentro do Ator Sistema para cada ação das histórias de usuário;
SR-H2: Se houver ações diferentes para a mesma meta, criar uma tarefa genérica;
SR-H2.1: Decompor a tarefa genérica em sub-tarefas que representem as ações associadas à mesma meta;
SR-H3: Relacionar as dependências de cada meta com as tarefas correspondentes de acordo com as histórias de usuário.
SR-H4: Se houver Tarefas que dependem do próprio Ator a que estão relacionadas, gerar um recurso com o nome da tarefa;
SR-H5: Relacionar o recurso criado dependendo do Ator. A figura 9 apresenta um exemplo do mapeamento para o modelo SR.
Figura 9: Exemplo de Mapeamento para o Modelo SR
No exemplo da figura 9, é mostrado o modelo SR para o Ator Sistema. As ações de cada papel das histórias de usuário são mapeadas como tarefas no Ator Sistema e é representada a relação de dependência entre as metas de cada papel com suas tarefas. A meta do Ator 3 é a mesma para duas ações, dessa forma foi criada uma
tarefa genérica e dela foram decompostas as duas sub-tarefas representando as duas ações. A meta foi associada à tarefa genérica.
Considerando as histórias de usuário da figura 10, é apresentado um exemplo na figura 11 de como o modelo SR foi gerado a partir das histórias de usuário.
Figura 10: Exemplos de Cartões de Histórias
Figura 11: Exemplo SR