Design Science é orientada a solução enquanto a ciência natural é orientada a problemas.
O ciclo da engenharia:
Investigação do problema -> Design do tratamento -> Validação do design -> Implementação do tratamento -> evolução da implementação
A primeira fase envolve a investigação quanto aos objetivos e aos fenômenos envolvidos.
Na segunda o design da interação entre o artefato e o contexto.
Na terceira a validação quanto ao atendimento aos critérios e a efetividade.
Na quarta ocorre a aplicação prática.
Na última fase a evolução da implementação.
Design Science aplica o ciclo da engenharia para projetar um artefato para aprimorar questões do contexto do problema de forma a fornecer informações e artefatos sobre o problema.
O ciclo empírico:
Investigação do conhecimento sobre o problema -> Design da pesquisa -> Validação do Design -> Execução da Pesquisa -> Evolução
A primeira fase envolve a investigação quanto aos objetivos e aos fenômenos envolvidos.
Na segunda o design da interação entre o artefato e o contexto.
Na terceira a validação quanto ao atendimento aos critérios e a efetividade.
Na quarta ocorre a aplicação prática.
Na última fase a evolução da implementação.
O ciclo empírico é aplicado de forma a fornecer conhecimento e para responder questões sobre um artefato em um contexto.
Sobre as Aulas de Ontologias em Engenharia de Software e Organizações
quinta-feira, 29 de agosto de 2013
quinta-feira, 15 de agosto de 2013
Aula 9: Mapeamento entre Tropos + AORML
Contexto:
Antes de Propor um sistema organizacional deve-se analisar quais componentes estão presentes. Para resolver essas questões sobre a organização e dar um diagnóstico pode-se utilizar o tropos como ferramenta de gestão do conhecimento. É importante ser realista em relação a veracidade das informações em relação a empresa e suas características.
Integração de Ferramentas:
Devido a limitação do tropos foi necessário integra-lo com o AORML. A combinação foi feito com as técnicas de MDD. Dessa forma os modelos foram integrados mantendo a rastreabilidade.
Problema Não Solução (CIM)
Independente de Plataforma (PIM)
Modelo Específico de Plataforma (PSM)
A proposta de mapeamento baseado em MDD:
Através do mapeamento foi possível conseguir perceber coisas que seriam inviáveis como o fato de que uma delegação gera um compromisso. A tabela de conversão tornou possível gerar o diagrama de agentes.
Antes de Propor um sistema organizacional deve-se analisar quais componentes estão presentes. Para resolver essas questões sobre a organização e dar um diagnóstico pode-se utilizar o tropos como ferramenta de gestão do conhecimento. É importante ser realista em relação a veracidade das informações em relação a empresa e suas características.
Integração de Ferramentas:
Devido a limitação do tropos foi necessário integra-lo com o AORML. A combinação foi feito com as técnicas de MDD. Dessa forma os modelos foram integrados mantendo a rastreabilidade.
Problema Não Solução (CIM)
Independente de Plataforma (PIM)
Modelo Específico de Plataforma (PSM)
A proposta de mapeamento baseado em MDD:
Através do mapeamento foi possível conseguir perceber coisas que seriam inviáveis como o fato de que uma delegação gera um compromisso. A tabela de conversão tornou possível gerar o diagrama de agentes.
segunda-feira, 29 de julho de 2013
Aula 8: Continuação da análise I* e análise de modelos
Dependência : Ocorrem relações com mesma função (construct overload)
Dependência foi dividido em :
dependência: Definida por uma relação formal entre atores.
Delegação: definida por relação material que depende de um relator para ocorrer.
Dependência foi dividido em :
dependência: Definida por uma relação formal entre atores.
Delegação: definida por relação material que depende de um relator para ocorrer.
Open Dependency
Ator -> hard goal -> ator
Close Dependency |
| A forma como atingir o objetivo
Ator -> tarefa -> ator |
A distinção sintática de delegação e dependência se dá com a seta preenchida e vazia respectivamente.
Conclusão sobre análise I*:
A análise completa dos elementos e relações levou a uma nova semântica para as representações sintática de I* baseando-se em razões ontológicas. Busca-se agora fazer experimento para comprovar eficácia.
Analisando os exemplos propostos pela comunidade I* verificou-se vários anti-padrões como elementos do mesmo tipo em decomposições e problemas de orientação quanto as regras de utilização.
quarta-feira, 24 de julho de 2013
Aula 7 : Continuação Ontologia I*
I*
O I* apresenta alguns problemas quanto a sua aplicação direta na indústria devido a falta de ferramentas e conceitos que variam de acordo com a implementação. Isso já foi provado empiricamente. O I* provê um guideline para orientar a sua utilização, mas diversas das demonstrações não são apoiadas teoricamente. Por exemplo, não existe justificativa para não relacionar tarefa com soft goal.O metadmodelo do I* facilita o entendimento esclarecendo algumas regras nas não resolve todos os problemas de semântica. Perguntas como: O que é uma tarefa? Qual a diferença entra soft e hard goal. Surgem então as ontologias para o I*.
OntoIStarML e OntoIStar
O OntoIStarML busca um isomorfismo com o metamodelo usando o modelo de referência UFO. Para isso são feitas extensões da UFO. Para poder extender UFO é preciso buscar soluções na filosofia e áreas afim para encaixar corretamente os novos conceitos e evitar os overloads, e ambiguidades.
Decomposições
Or-Decomposition
Para que o Goal 0 seja alcançado, ao menos um dos que estão ligados a ele tem de ter sido alcançado.
Logo: Goal 0 <-> Goal 1 v Goal 2 v Goal 3
And-Decomposition
Para que o Goal 0 seja alcançado, todos que estão ligados a ele tem de ter sido alcançado.
Logo Goal 0 <-> Goal 1 /\ Goal 2 /\ Goal 3
Means-end
São associações que relacionam objetivos (Goal 0) com tarefas ou artefatos (Tarefa e Artefact).
Em resumo, Means-End relacionam coisas de tipos diferentes e Decomposition decompõe coisas de mesmo tipo.
Tabela de relacionamento Means-End x Decomposition
A tabela mostra as conclusões chegadas pelo estudo.
terça-feira, 16 de julho de 2013
Aula 6: Aplicação de Ontologias em Engenharia de Software
ODE: Ambiente de desenvolvimento para processos de software baseado em ontologias. Eram ferramentas isoladas que foram integradas e posteriormente foi migrado pra web e agora está na fase de integração com outras ferramentas.
A ferramenta possibilita dentre outras funcionalidades alocar recursos, atividades e a gerência de projetos.
Projeto da Gleice: O trabalho em questão visava a integração com o dotProject (Ambiente de Gerência de Projeto) que é um software livre. Essa ferramenta cobre alguns aspectos que ainda não existiam no ODE como cronogramas. Primeiramente, o trabalho visava uma integração com o alocaODE, porém foi ampliado para outros módulos do ODE.
Desenvolvimento:
Foi realizado uma integração semântica entre as ferramentas visando a minimização dos conflitos. Para isso foi utilizado o processo OBA-SI desenvolvido por (Calhau, 2011). Tal processo foi fundamental para integração pois serviu como guia para a integração semântica desejada.
Com base no SPOPL que é uma core ontology para processos de software foi então desenvolvido a ontologia de processos que envolvesse a criação do cronograma no ODE.
Mapeamento vertical: Para realizar o mapeamento vertical foi feito a engenharia reversa do dotProject. Assim foi possível o mapeamento e posteriormente conseguiu-se chegar ao modelo de integração e ao mapeamento horizontal entre o modelo e as ferramentas.
Foram ignorados os aspectos que não eram implementados pelo dotProject e também houveram limitações tecnológicas para o mediador que integrou as ferramentas. Como resultado foi possível vizualisar o cronograma no ODE.
ODE: Ambiente de desenvolvimento para processos de software baseado em ontologias. Eram ferramentas isoladas que foram integradas e posteriormente foi migrado pra web e agora está na fase de integração com outras ferramentas.
A ferramenta possibilita dentre outras funcionalidades alocar recursos, atividades e a gerência de projetos.
Projeto da Gleice: O trabalho em questão visava a integração com o dotProject (Ambiente de Gerência de Projeto) que é um software livre. Essa ferramenta cobre alguns aspectos que ainda não existiam no ODE como cronogramas. Primeiramente, o trabalho visava uma integração com o alocaODE, porém foi ampliado para outros módulos do ODE.
Desenvolvimento:
Foi realizado uma integração semântica entre as ferramentas visando a minimização dos conflitos. Para isso foi utilizado o processo OBA-SI desenvolvido por (Calhau, 2011). Tal processo foi fundamental para integração pois serviu como guia para a integração semântica desejada.
Com base no SPOPL que é uma core ontology para processos de software foi então desenvolvido a ontologia de processos que envolvesse a criação do cronograma no ODE.
Mapeamento vertical: Para realizar o mapeamento vertical foi feito a engenharia reversa do dotProject. Assim foi possível o mapeamento e posteriormente conseguiu-se chegar ao modelo de integração e ao mapeamento horizontal entre o modelo e as ferramentas.
Foram ignorados os aspectos que não eram implementados pelo dotProject e também houveram limitações tecnológicas para o mediador que integrou as ferramentas. Como resultado foi possível vizualisar o cronograma no ODE.
segunda-feira, 1 de julho de 2013
Quinta Aula
Quinta aula - Análise I* Framework
O I* foi desenvolvido para modelar aspectos da engenharia de requisitos baseada em objetivos. Seu uso foi aproveitado em outras áreas como na área de requisitos de segurança e sistemas que verificam conformidade com as leis.
O I* compreende os seguintes conceitos:
Entidades
Ator
Objetivo - Hard Goal (critério)/ Soft Goal (não funcional)
Tarefa - (passo a passo para objetivo)
Recurso - (objetivo físico ou informação)
Relações
Dependência - interação entre atores
Decomposição - Decompor objetivos
Meio - fim - Entidades diferentes
Contribuição - Determinar o efeito de um objetivo em outro por exemplo nota > 7 contribui para aprovação
tarefa x decomposição de objetivo - depende do contexto e do que se deseja modelar.
I* não define precedência porque não é aplicada pra processos e sim em níveis mais estratégicos.
Diagramas
Dependência estratégica:
Dependência entre atores, exemplo é a dependência entre o gerente e o membro nos dois sentidos para participação em reunião e para marcar reunião respectivamente. Ainda é possível a dependência de um ator em relação a um recurso como por exemplo a dependência de um sistema de calendário compartilhado para verificação de horários livres. Dessa forma contribui-se para os objetivos soft de maximizar grau de participação e minimizar o esforço de agendamento.
Razão estratégica:
Objetivos do ator tarefa ou recurso.
Exemplo:
O ator gerente pode ter objetivo de marcar reunião que se decompõem (AND) em escolher horário e coleta de horários disponíveis. O segundo se decompõem (XOR) na coleta pessoal ou coleta por sistema. A coleta por sistema decompõem-se (AND) em manter agenda e selecionar horários disponíveis. Já a coleta pessoal pode ser por telefone ou por email. Ainda pode-se decompor o objetivo de escolher horário de forma a demonstrar a contribuição dos soft goals e o relacionamento com as tarefas de selecionar data da reunião e de selecionar horário.
Esses diagramas são importantes porque são alternativas documentadas que demonstram o porque de uma certa escolha através de um critério explícitos, ou seja, uma análise de alternativa documentada.
Problema de Interoperabilidade I*
Projetistas da Linguagem => Implementações, Extensões .. etc => Usuário
O que escolher? Como representar conceitos?
Existem conceitos presentes em algumas ferramentas que não estão em outras e conceitos que são utilizados de formas diferente. A conclusão foi criar um consenso entre os conceitos núcleo para que fossem usados de forma uniforme. O propósito é que a linguagem saia da academia e se torne um padrão da indústria.
Existe uma linguagem de intercambio em XML que resolve problemas sintáticos. Logo a ideia era resolver problemas semânticos para propor guias de modelagem. Para isso usou-se ontologias para que ficasse explícito os compromissos ontológicos da linguagem de modelagem. Sabe-se que o contrário de um Ontologia é uma má Ontologia.
UFO-C para mapear os conceitos do I*
Ao mapear de 1-1 os conceitos da ontologia de fundamentação (UFO) para a linguagem de modelagem precisa-se analisar os seguintes problemas:
Contruct Overload - Um conceito da linguagem mapear dois conceitos da ontologia de fundamentação
Construct Redundancy - Dois conceitos da linguagem mapear o mesmo da LF.
Construct Excess - Um conceito da linguagem sem relação
Incompleteness - Um conceito da LF sem relação com o da linguagem.
Então foi feito o mapeamento entre a linguagem e a UFO-C
Um agente foi mapeado como ator, um resource é um object. O object não tem mental moment que pode ser uma crença ou uma intenção. O objetivo (Goal) tem que estar ligado com uma intenção e uma proposição. E ele pode ser Soft ou Hard. O Soft está relacionado a uma situação que impacta na realização ou não de uma crença. Já o Hard altera o mundo quando satisfeito. A tarefa é uma ação realizada por um ator.
Means End
Para solucionar as diferentes aplicações do conceito de Means End foi proposto a diferenciação entre Means End XOR e AND.
Um recurso é meio se em todas instâncias a tarefa tem como parte a participação daquele recurso. Exemplo:
A escada é um recurso essencial para a tarefa de subir escada.
Somente tarefas e recursos podem ser usados como means end. Objetivos já possuem OR e AND na decomposição.
O I* foi desenvolvido para modelar aspectos da engenharia de requisitos baseada em objetivos. Seu uso foi aproveitado em outras áreas como na área de requisitos de segurança e sistemas que verificam conformidade com as leis.
O I* compreende os seguintes conceitos:
Entidades
Ator
Objetivo - Hard Goal (critério)/ Soft Goal (não funcional)
Tarefa - (passo a passo para objetivo)
Recurso - (objetivo físico ou informação)
Relações
Dependência - interação entre atores
Decomposição - Decompor objetivos
Meio - fim - Entidades diferentes
Contribuição - Determinar o efeito de um objetivo em outro por exemplo nota > 7 contribui para aprovação
tarefa x decomposição de objetivo - depende do contexto e do que se deseja modelar.
I* não define precedência porque não é aplicada pra processos e sim em níveis mais estratégicos.
Diagramas
Dependência estratégica:
Dependência entre atores, exemplo é a dependência entre o gerente e o membro nos dois sentidos para participação em reunião e para marcar reunião respectivamente. Ainda é possível a dependência de um ator em relação a um recurso como por exemplo a dependência de um sistema de calendário compartilhado para verificação de horários livres. Dessa forma contribui-se para os objetivos soft de maximizar grau de participação e minimizar o esforço de agendamento.
Razão estratégica:
Objetivos do ator tarefa ou recurso.
Exemplo:
O ator gerente pode ter objetivo de marcar reunião que se decompõem (AND) em escolher horário e coleta de horários disponíveis. O segundo se decompõem (XOR) na coleta pessoal ou coleta por sistema. A coleta por sistema decompõem-se (AND) em manter agenda e selecionar horários disponíveis. Já a coleta pessoal pode ser por telefone ou por email. Ainda pode-se decompor o objetivo de escolher horário de forma a demonstrar a contribuição dos soft goals e o relacionamento com as tarefas de selecionar data da reunião e de selecionar horário.
Esses diagramas são importantes porque são alternativas documentadas que demonstram o porque de uma certa escolha através de um critério explícitos, ou seja, uma análise de alternativa documentada.
Problema de Interoperabilidade I*
Projetistas da Linguagem => Implementações, Extensões .. etc => Usuário
O que escolher? Como representar conceitos?
Existem conceitos presentes em algumas ferramentas que não estão em outras e conceitos que são utilizados de formas diferente. A conclusão foi criar um consenso entre os conceitos núcleo para que fossem usados de forma uniforme. O propósito é que a linguagem saia da academia e se torne um padrão da indústria.
Existe uma linguagem de intercambio em XML que resolve problemas sintáticos. Logo a ideia era resolver problemas semânticos para propor guias de modelagem. Para isso usou-se ontologias para que ficasse explícito os compromissos ontológicos da linguagem de modelagem. Sabe-se que o contrário de um Ontologia é uma má Ontologia.
UFO-C para mapear os conceitos do I*
Ao mapear de 1-1 os conceitos da ontologia de fundamentação (UFO) para a linguagem de modelagem precisa-se analisar os seguintes problemas:
Contruct Overload - Um conceito da linguagem mapear dois conceitos da ontologia de fundamentação
Construct Redundancy - Dois conceitos da linguagem mapear o mesmo da LF.
Construct Excess - Um conceito da linguagem sem relação
Incompleteness - Um conceito da LF sem relação com o da linguagem.
Então foi feito o mapeamento entre a linguagem e a UFO-C
Um agente foi mapeado como ator, um resource é um object. O object não tem mental moment que pode ser uma crença ou uma intenção. O objetivo (Goal) tem que estar ligado com uma intenção e uma proposição. E ele pode ser Soft ou Hard. O Soft está relacionado a uma situação que impacta na realização ou não de uma crença. Já o Hard altera o mundo quando satisfeito. A tarefa é uma ação realizada por um ator.
Means End
Para solucionar as diferentes aplicações do conceito de Means End foi proposto a diferenciação entre Means End XOR e AND.
Um recurso é meio se em todas instâncias a tarefa tem como parte a participação daquele recurso. Exemplo:
A escada é um recurso essencial para a tarefa de subir escada.
Somente tarefas e recursos podem ser usados como means end. Objetivos já possuem OR e AND na decomposição.
sábado, 29 de junho de 2013
Quarta aula: UFO-C aplicada a Engenharia de Software
Durante a aula, foram tecidos comentários sobre a ontologia de fundamentação para modelagem de domínios sociais da UFO, a UFO-C.
Como forma de estudo, foi proposto a leitura do artigo “Using a Foundational Ontology for Reengineering a Software Process Ontology”, dos autores, Ana C. O. Bringuente, Ricardo A. Falbo, Giancarlo Guizzardi. Este artigo descreve um caso de uso da UFO-C no domínio de Engenharia de Software.
Abaixo segue descrito uma ficha de leitura feita pelo grupo para o artigo.
Referência Completa: “Using a Foundational Ontology for Reengineering a Software Process Ontology”, Ana C. O. Bringuente, Ricardo A. Falbo, Giancarlo Guizzardi, UFES;
Palavras-chave: UFO-C, Engenharia de Software, Software Process Ontology (SPO), reengenharia ontológica;
Resumo
- Foco do artigo
Referência Completa: “Using a Foundational Ontology for Reengineering a Software Process Ontology”, Ana C. O. Bringuente, Ricardo A. Falbo, Giancarlo Guizzardi, UFES;
Palavras-chave: UFO-C, Engenharia de Software, Software Process Ontology (SPO), reengenharia ontológica;
Resumo
- Foco do artigo
Aplicar a UFO a engenharia de software (Gerência de Projeto e Processos de Desenvolvimento de Software), através de uma reengenharia de conceitos.
- UFO-C
Está porção da UFO pode ser entendida como a ontologia das entidades sociais. Nesta ontologia de fundamentação é possível modelar agentes que tem poder de criar ações, perceber acontecimentos de eventos e possuir intenções próprias.
- SPO: Software Process Ontology (Falbo e Bertollo, 2009)
O trabalho trata de uma reengenharia na proposta do SPO. Sua pretensão é de reestruturá-la, utilizando a UFO-C para isso. Os autores do trabalho apresentam as ontologias iniciais de Falbo e Bertollo e tecem críticas a cerca delas. A partir disso, propõem modificações nestas ontologias, acrescentando conceitos definidos na UFO-C.
Este trabalho defende a ideia de que, utilizando de uma ontologia de fundamentação (UFO-C) que estruture a organização dos conceitos mais primitivos de um domínio social, seja possível evitar possíveis erros de modelagem, ou seja, que utilizando a UFO-C, seria possível verificar a falta de conceitos em uma modelagem (conceitos ocultos), bem como possíveis relacionamentos errôneos.
Principais ideias
- Uso da UFO-C como premissa para modelagem de ontologias cujo domínio seja de estruturas sociais.
- Utilização de padrões ontológicos para modelagem (uso de ontologias de fundamentação);
Aspectos Positivos
- Demonstrar a possibilidade de se descobrir conceitos não "percebidos" durante a modelagem, apenas utilizando uma ontologia de fundamentação como premissa de modelagem (Design Patterns);
- Demonstrar a aplicabilidade da UFO-C em um domínio real.
Aspectos Negativos
- Faltou demonstrar uma ontologia usando OntoUML, facilitaria a leitura.
Ideias que surgiram com a leitura
- A facilidade que pode se tornar a modelagem, tendo como base os padrões de modelagem ontológica (Design Patterns).
Assinar:
Postagens (Atom)