• Nenhum resultado encontrado

4 MADAE-IDE – UM AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE

4.2 P ROJETO DO AMBIENTE MADAE-IDE

4.2.2 Núcleo do ambiente

O sistema de regras de inferência é composto de regras de criação e regras de transformação. As informações de modelagem do sistema em desenvolvimento fornecidas pelo usuário são representadas em fatos da memória de trabalho no núcleo do ambiente. Estes fatos disparam regras em Jess contidas no núcleo do ambiente, que têm conhecimento do ciclo de vida, das fases, das tarefas, dos insumos e produtos do processo MADAE-Pro, podendo criar ou alterar suas instâncias de tarefas e produtos na ontologia ONTORMAS. Para que seja possível a utilização do motor de inferência Jess com a ontologia ONTORMAS utiliza-se o plugin JessTab (ERIKSSON, 2003). Cada pacote de regras atua em uma fase do processo MADAE-Pro. A Figura 26 detalha o núcleo do ambiente MADAE-IDE.

Figura 26 – Núcleo do ambiente MADAE-IDE

As regras de criação instanciam as classes que representam na ONTORMAS as fases, as tarefas, os produtos e os conceitos de modelagem definidos no processo MADAE-Pro com base nas informações de modelagem fornecidas pelo desenvolvedor na interação com o ambiente. Além disto, estas regras mantêm a consistência entre as fases, tarefas e produtos de modelagem

associando a cada fase de modelagem as suas tarefas e produtos que são instanciados.

4.2.2.1 Sistema de Regras de criação de modelos

O processo de criação (Pc) de um modelo alvo é definido como Pc = (T, U,

Rc), sendo o modelo alvo T = MCt ∪ SRt, MCt ⊆ MC, SRt ⊆ SR. MCi ∈ MC é um

conceito de modelagem e SRi ∈ SR é a um relacionamento semântico na base de

conhecimento ONTORMAS. Por exemplo, na fase de análise de domínio, um modelo de objetivos deve ser criado, considerando os conceitos de modelagem e as relações semânticas na Figura 27: T = “Goal Model” = {“General Goal”, “Specific Goal”, “Responsibility”, “External Entity”, “Gets Information”, “Leads To”, “Achieved By”}. U é a informação de modelagem fornecida pelo desenvolvedor através do uso do MADAE-IDE utilizando o assistente de modelagem (ver exemplo na Figura 34) associado com a respectiva tarefa de modelagem. Rc é o conjunto de regras de

criação para a geração do modelo alvo.

Como um exemplo, as regras em Jess da Listagem 1 são um subconjunto das regras de criação para geração das instâncias que representam a tarefa de modelagem de objetivos e o produto modelo de objetivos na ONTORMAS.

(defrule GoalModelingTaskCreate

(ModelingTask (task DomainAnalysis) (ref ?DomainAnalysisTask&~nil)) ?GoalModelingTask <- (ModelingTask (task GoalModeling) (ref nil)) =>

(bind ?ref (make-instance of "Goal Modeling" (name (str-cat "Goal Modeling Of " ?*project*))))

(modify ?GoalModelingTask (ref ?ref))

(slot-insert$ ?DomainAnalysisTask subtasks 1 ?ref)

(assert (ModelingProduct (product GoalModel) (name (str-cat "Goal Model Of " ?*project*)))) )

(defrule GoalModelCreate

(ModelingProduct (product DomainModel) (ref ?DomainModel&~nil)) (ModelingTask (task GoalModeling) (ref ?GoalModeling&~nil))

?GoalModel <- (ModelingProduct (product GoalModel) (name ?name) (ref nil)) =>

(bind ?ref (make-instance of "Goal Model" (name ?name))) (modify ?GoalModel (ref ?ref))

(slot-set ?GoalModeling products ?ref)

(slot-insert$ ?DomainModel subproducts 1 ?ref) )

Listagem 1 - Regras em Jess de criação do modelo de objetivos

As regras acima criam na ONTORMAS as instâncias das classes correspondentes à tarefa de modelagem de objetivos e seu produto. Na primera regra, se a fase de modelagem corrente for análise de domínio e a próxima tarefa a ser executada for modelagem de objetivos, então a instância da classe correspondente na ONTORMAS será instanciada e será associada à instância da classe que corresponde à fase de análise de domínio. Quando a tarefa de modelagem de objetivos for criada, é necessário instanciar a classe correspondente ao seu produto e criar a relação semântica entre elas, o que é feito pela segunda regra que, além de associar o produto modelo de objetivos à tarefa modelagem de objetivos, também é necessário criar a relação semântica entre este produto como um subproduto da fase de análise de domínio.

4.2.2.2 Sistema de Regras de transformação de modelos

As regras de transformação geram automaticamente um modelo alvo a partir de um conjunto de modelos fonte, com base no ciclo de vida do MADAE-Pro. O processo de transformação (Pt) de um conjunto de modelos fonte em um modelo

alvo é definido como Pt = (S1, S2, ..., Sn, T, U, Rt), sendo Si um modelo fonte, T o

modelo alvo produto da tarefa de modelagem t, e tendo Si e T a mesma definição do

conjunto T no processo de criação (Pc) descrito acima. U é a informação de

modelagem fornecida pelo desenvolvedor através das interações com o ambiente MADAE-IDE usando o assistente de modelagem (ver exemplo da Figura 39) associado com a respectiva tarefa de modelagem.

Rt é o conjunto de regras de transformação para geração automática de

um modelo alvo a partir de um conjunto de modelos fonte e a informação U fornecida pelo desenvolvedor. Por exemplo, na fase de análise de domínio, um modelo de papéis deve ser automaticamente gerado através de um conjunto de regras de transformação que exploram as relações semânticas entre um modelo de objetivos e um modelo de papéis, como ilustrado na Figura 27.

A regra em Jess da Listagem 2, subconjunto das regras de transformação, gera o produto da fase de modelagem de papéis na ONTORMAS, com base o modelo de objetivos que serve de insumo e do qual reusam-se conceitos nele instanciados.

(defrule GoalModelToRoleModel

(ModelingProduct (product GoalModel) (ref ?GoalModel&~nil)) (ModelingTask (task RoleModeling) (ref ?RoleModeling&~nil))

(ModelingProduct (product RoleModel) (name ?name) (ref ?RoleModel&~nil)) =>

(foreach ?concept (slot-get ?GoalModel concepts) (if (or (eq Responsibility (class ?concept))

(eq External\ Entity (class ?concept))) then (slot-insert$ ?RoleModel concepts 1 ?concept) (bind ?*aa_reused* (+ 1 ?*aa_reused*)) )))

Listagem 2 - Regra em Jess para transformação do modelo de papéis com base no modelo de objetivos

A regra acima realiza a transformação do modelo de objetivos para o modelo de papéis. Após a classe correspondente à modelagem de papéis tiver sido instanciada, recupera-se a instância da classe correspondente ao modelo de objetivos e dele extraem-se todas as instâncias de classes que representam conceitos de modelagem. Caso a classe da instância do conceito de modelagem for uma responsabilidade ou entidade externa, esta instância é reusada no modelo de papéis.

A Figura 28 mostra as relações de transformação existentes entre os modelos do processo MADAE-Pro. Analisando o gráfico, depreende-se que o Modelo de Papéis pode ser gerado tendo como insumo o Modelo de Objetivos. Já o Modelo da Sociedade Multiagente é insumo para a criação do Modelo de Interação entre Agentes, Modelo de Conhecimento do Agente e Modelo de Ações do Agente.

Figura 28 - Relações de transformação entre modelos

A seguir é detalhado para cada fase do processo MADAE-Pro, a maneira como os conceitos de modelagem são adquiridos através da interface com o usuário, como são criados e inseridos os fatos na memória de trabalho do núcleo do ambiente e, finalmente, como são exibidos os modelos para o usuário. Em paralelo é examinado como o núcleo do ambiente infere os fatos instanciados e realiza alterações na ONTORMAS. Também mostra-se a geração automática de modelos onde for aplicável.

Documentos relacionados