quarta-feira, 6 de fevereiro de 2013

Definindo a Arquitetura de Agentes

Na última aula avançamos em nosso primeiro modelo de objetivos e várias dúvidas já surgiram.
Mas, tendo em vista que esse foi o assunto de um post no blog do Tiago, meu parceiro nesse trabalho, o foco principal desse meu post será outro.
Um único detalhe sobre a experiência de construir esse primeiro modelo que gostaria de acrescentar às observações relatadas pelo Tiago foi o fato de termos sentido a necessidade de diferenciar um refinamento "or" de um refinamento "xor" (ou exclusivo), mas a linguagem utilizada só provê uma sintaxe concreta especificada como refinamento "or" de forma que tivemos de recorrer a anotações para explicitar essa diferenciação.
A grande novidade da aula em termos de conteúdo ficou por conta da apresentação do modelo de Design Arquitetural. Essa perspectiva visa a permitir o refinamento dos agentes que realizarão os objetivos definindo os "componentes" que formam esses agentes, bem como os objetivos/requisitos que serão realizados por cada componente. Me parece muito útil especialmente no projeto de sistemas de software.
Até a próxima aula, se tudo der certo, com o modelo finalizado!

sexta-feira, 1 de fevereiro de 2013

Tipos de delegação

Nossa primeira aula de 2013 teve como principal foco incluir novos elementos em nossos modelos de objetivos, a saber: tarefas e recursos. Esses elementos são relacionados aos objetivos através de relações "means-end" uma vez que representam meios de se realizar os objetivos.
Agora, com esses novos elementos, podem ser definidos três tipos de delegação/dependência (em post anterior foram definidos os conceitos de delegação e de dependência):

  • Delegação/Dependência de objetivo: nesse caso o objetivo é delegado ficando a cargo do agente "delegatee" definir como realizar o objetivo. Devido a essa característica, é classificado como "open delegation".
  • Delegação/Dependência de tarefa: nesse tipo de delegação o agente "delegator" define uma tarefa a ser executada para realizar o objetivo e a delega a outro agente, nomeado "delegatee". Por definir a forma de realização do objetivo, esse tipo de delegação é classificado como "close delegation".
  • Delegação/Dependência de recurso: ocorre quando o agente "delegator" define o recurso a ser utilizado mas não define a tarefa a ser executada.
No fim da aula iniciamos o desenvolvimento de um trabalho cuja meta é gerar um modelo de objetivos para um domínio conhecido. Ao realizar essa tarefa conseguiremos avaliar o quão difícil é definir quando aplicar cada um dos conceitos.

segunda-feira, 14 de janeiro de 2013

Primeiro Modelo

Em nossa última aula de 2012 desenvolvemos, em grupo, nosso primeiro modelo de objetivos. Essa atividade foi minha primeira experiência prática com modelagem de objetivos. Foi uma boa introdução pois ajudou a solidificar alguns conceitos.
Um fato que me chamou atenção foi que a notação utilizada não tem expressividade para modelar a noção de temporalidade. Por exemplo, quando decompomos um objetivo em vários subobjetivos não temos como definir a ordem temporal em que esses subobjetivos devem ser realizados a fim de que o objetivo maior seja satisfeito. De fato, essa questão temporal deve ser modelada utilizando outro tipo de linguagem pois não está no escopo dos modelos de objetivo em geral.
Apesar de considerar que em alguns casos essa noção de temporalidade pode fazer falta, mesmo não tendo experiência em modelagem de objetivos, já deu para notar que a quantidade de conceitos englobados é muito grande de forma que é totalmente compreensível que alguns conceitos menos centrais fiquem de fora do escopo a fim de se controlar a complexidade das linguagens e, consequentemente, dos modelos produzidos.
Além dos conceitos definidos em aulas anteriores, no desenvolvimento do modelo foram utilizados também conceitos introduzidos nessa aula. Dentre esses conceitos destaco os conceitos de dependência e delegação entre atores. O conceito de dependência permite descrever a relação de dependência que pode haver entre dois agentes relacionados por um objetivo. Nessa relação, um agente (o depender) pode depender da realização de um objetivo enquanto essa realização depende da ação de um outro agente (o dependee). Um caso especial de dependência é a delegação. Na delegação há um compromisso firmado entre o depender (nesse contexto nomeado delegator)  e o dependee (então nomeado delegatee) para a realização do objetivo.