SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
PROPOSTA DE UMA ABORDAGEM FORMAL PARA O
GERENCIAMENTO DE VARIABILIDADES EM MODELOS UML
COM OBJECT CONSTRAINT LANGUAGE



Mestrando: Anderson da Silva Marcolino
Orientador: Prof. Dr. Edson A. Oliveira Junior
Agenda

•   Motivação
•   Linha de Produto de Software
•   Abordagem SMarty
•   OCL
•   Objetivos do Trabalho
•   Plano de Atividades
•   Revisão Sistemática
•   Dificuldades Encontradas
•   Conclusões Parciais
Motivação



• Ausência de abordagens completas para o
  gerenciamento de variabilidade com o uso de UML, com
  nível de formalismo e consistência, propostas pela OCL;

• Facilitação no uso de LPS ao propor a utilização de
  conceitos conhecidos amplamente como a UML.
Linha de Produto de Software



• Abordagem que objetiva promover a geração de
  produtos específicos com base na reutilização de
  uma infraestrutura central - núcleo de artefatos -
  formada por uma arquitetura de software e seus
  componentes.
Linha de Produto de Software

• Vantagens:
  •   Maior reutilização de artefatos;
  •   Maximização de lucros;
  •   Diminuição do time to market;
  •   Diminuição de riscos;
  •   Produtos com maior qualidade;
  •   Contribuição para o aprimoramento.
Linha de Produto de Software




             Figura 1 – Custo e Esforço no Desenvolvimento
Linha de Produto de Software




              Figura 2 – Redução do Time to Market
Linha de Produto de Software



• Atividades Essenciais:
  1. Desenvolvimento do Núcleo de Artefatos;
  2. Desenvolvimento do Produto;
  3. Gerenciamento de Linha de Produto.
    •   O Elemento principal no gerenciamento de uma LP é o
        gerenciamento de variabilidade.
Gerenciamento de Variabilidade
Abordagem SMarty
Abordagem SMarty




        Figura 2 – Rastreabilidade do SMartyProfile para o Meta-modelo da UML2
OCL


• OCL – Object Constraint Language(Linguagem
  para Especificação de Restrições em Objetos).
• Linguagem formal usada para descrever
  expressões em modelos da UML.
        • Estas expressões especificam condições invariáveis, que
          devem ser asseguradas para o sistema que esta sendo
          modelado ou permitem efetuar consultas sobre os objetos
          que estão descritos no modelo(com auxilio de ferramenta).
OCL

• Onde usar OCL?
  • Como uma linguagem de consultas;
  • Para especificar invariantes nas classes e em tipos no
    modelo de classes;
  • Para especificar tipos invariantes para estereótipos;
  • Para descrever pré e pós condições nas operações e
    métodos;
  • Para especificar objetivos(conjuntos) para as mensagens e
    ações;
  • Para especificar restrições em operações; e
  • Para especificar regras de derivações para os atributos,
    para qualquer expressão em um modelo UML.
OCL

• Exemplo básico do uso de OCL:

  context TypeName inv: 'this is an OCL expression
  with stereotype <<invariant>> in the context of
  TypeName' = 'another string‘




                           Fonte: OMG - Documents Associated With Object Constraint Language, Version 2.3.1
                      Disponível em <http://www.omg.org/spec/OCL/2.3.1/PDF>. Acessado em 19 de Set. 2012.
OCL e Verificação de Consistência

• Na revisão sistemática adiante apresentada, notamos o a
  utilização do OLC para gerar a verificação de
  consistência(consistency checking), nosso principal interesse
  no uso da OCL.

• Segue assim, as propostas dos estudos recuperados, e
  conclusões sobre as mesmas, que servirão de base para o
  trabalho futuro.
OCL e Verificação de Consistência

• Streitferdt et al em seu trabalho Details of Formalized
  Relations in Feature Models Using OCL propõem a utilização
  de OCL para a verificação de consistência para o modelo de
  características(feature model), estendendo-a, e apelidando-a
  de A-OCL.
• Esta foi aplicada ao feature model definido na abordagem
  denominada Feature Oriented Domain Analysis – FODA.
• Na proposta utilizou-se de parte da OCL para restringir e
  identificar as variabilidades e escolhas das variantes para sua
  solução, utilizando contextos matemáticos, contextos para
  features com dependências(requires) e restrições(excludes).
OCL e Verificação de Consistência




              Figura 3 – Exemplo uso de OCL para Feature Model
OCL e Verificação de Consistência

• Em sintese Streitferdt et al conclui que sua extensão permite
  um fácil entendimento e visualização do modelo de
  características, que, se demasiado grande pode dificultar o
  entendimento, e levar a resolução de variabilidades errôneas.
OCL e Verificação de Consistência
• Marinho apresente em seu trabalho A Proposal for Consistency Checking
  in Dynamic Software Product Line Models Using OCL, aplicado a linhas de
  produto de software dinâmicas, a aplicação de OCL para verificar se as
  configurações dos produtos preservam suas restrições especificas.

• Este propõe a criação, utilizando o perfil UML de um profile UML para a LP
  e um para modelo de contexto, indicando que, se utilizar os dois conceitos
  em um diagrama, as relações mantidas no modelo podem dificultar,
  principalmente em LP de larga escala.
OCL e Verificação de Consistência
• Gomaa e Shin, em seu trabalho Multiple-view modelling and meta-
  modelling of software product lines, apresenta regras de verificação de
  consistência baseados no relacionamento entre meta-classes nos meta-
  modelos. Tais regras, formalizadas utilizando OCL são utilizadas para
  resolver inconsistências entre múltiplas visões em uma mesma fase ou em
  diferentes fazes, e são utilizadas ainda para definir mapeamentos
  permitidos entre múltiplas visões em diferentes fases.

• Gomaa e Shin deixam claro que sua proposta pode servir a qualquer LP
  modelada em UML.
OCL e Verificação de Consistência
• Na seção, trabalhos relacionados apresenta diversas abordagens, e ainda,
  como tais efetuam o processo de checagem de consistência – nota-se ai o
  apelo a uma validação manual, propensa a erros. E também, apresenta os
  diversos mecanismos para efetuar a consistência, bem como para que tipo
  de abordagem: desenvolvimento de sistemas únicos, ou com LP.

• Apresenta-se então todos os meta modelos da UML, e suas diferentes
  visões, e a partir dai define-se a validação de consistência entre as
  múltiplas visões, e em seguida, o PLUSEE(Product Line UML Based
  Software Engineering Environment) e como utiliza-lo para a aplicação do
  formalismo em tais visões.
OCL e Verificação de Consistência
• Para a verificação de consistência utilizou-se ferramenta desenvolvida em
  Java, para tal.

• Finalmente, em suas considerações, indica a necessidade de estender sua
  abordagem aos demais modelos da UML, visto que apenas os inerentes a
  LP foram utilizados, bem como aplica tal consistência a UML 2.0, uma vez
  que a versão utilizada foi a UML 1.3, e ainda aplicar sua proposta em casos
  de estudos maiores.
OCL e Verificação de Consistência

• Apresentou-se aqui os trabalhos com maior destaque em
  OCL, mas ainda há outros pontos a serem explorados nos
  demais.

• Notadamente, há a necessidade de aplicar-se a
  consistência em LP, visto que, com o aumento
  significativo das variabialidades, e seus pontos de
  variação, resolvê-las de forma incorreta pode acarretar
  prejuízo ou gerar produtos inadequados ao domínio para
  o qual foi projetado.
OCL e Verificação de Consistência

• Não há trabalhos que apresentem a utilização de todos
  os conceitos e notações que a OCL permite, e enriquecer
  modelos UML para o gerenciamento de variabilidade, é
  assim, garantir melhores produtos. Desenvolver uma
  abordagem que atenda os mais diferentes nichos de
  mercado se faz necessário, o que vem de encontro com o
  trabalho aqui proposto.
Objetivos do Trabalho
• Realizar uma revisão sistemática sobre o uso de Diagramas de
  Interação, package merge e OCL, relacionados ao
  gerenciamento de variabilidade em linha de produto de
  software;

• Com o estudo dos resultados obtidos na Revisão, estender a
  abordagem SMarty para os diagramas da UML(sequência,
  colaboração e mecanismo de package merge) ;

• Apresentar um exemplo de aplicação da abordagem proposta;

• Executar um experimento com a nova extensão do SMarty;
Objetivos do Trabalho
• Compará-la com outras abordagens existentes: CVL (Common
  Variability Language) e PLUSEE(Product Line UML Based
  Software Engineering Environment);

• Identificar as abordagens e o modo como OCL está sendo
  aplicado aos modelos UML no gerenciamento de
  variabilidade, através dos resultados da Revisão Sistemática, e
  utilizá-la nos modelos presentes no SMarty;

• Comparar e avaliar os modelos UML do SMarty com OCL;

• Analisar os resultados obtidos.
Conceitos Relacionados


• Diagramas de Interação

   • A interação é empregada para a modelagem do fluxo de controle de
     uma operação, de uma classe, um componente, um caso de uso ou do
     sistema como um todo.

   • Existem dois diagramas que compões os diagramas de Interação:
     Diagrama de Sequência e de Colaboração.
Conceitos Relacionados

• Diagrama de Sequência

   • Diagrama de Sequência é uma das ferramentas UML usadas para
     representar interações entre objetos de um cenário, realizadas através
     de operações ou métodos (procedimentos ou funções);

   • Construído a partir do Diagrama de Casos de Usos;

   • O diagrama de sequência dá ênfase a ordenação temporal em que as
     mensagens são trocadas entre os objetos de um sistema.
Conceitos Relacionados




             Figura 4 – Exemplo Diagrama de Sequência
Conceitos Relacionados



• Diagrama de Colaboração

   • Dá ênfase à ordenação estrutural em que as mensagens são trocadas
     entre os objetos de um sistema.
Conceitos Relacionados




             Figura 5 – Exemplo Diagrama de Colaboração




                                                            Fonte: OMG - UML Superstructure Specification, v2.0
                Disponível em < http://www.omg.org/cgi-bin/doc?formal/05-07-04 >. Acessado em 20 de Set. 2012.
Conceitos Relacionados
• Package Merge

   • Um package merge(mesclagem de pacotes) é um relacionamento direto
     entre dois pacotes, que indica que o conteúdo dos dois estão sendo
     combinados.

   • Semelhante ao mecanismo de Generalização no sentido de que o
     elemento de origem conceitualmente adiciona as características do
     elemento de destino para as suas próprias características, resultando em
     um elemento que combina as características de ambos.

   • Este mecanismo deve ser usado quando os elementos definidos em
     pacotes diferentes tem o mesmo nome e pretendem representar o
     mesmo conceito.
Conceitos Relacionados




                Figura 6 – Exemplo Package Merge


                                                          Fonte: OMG - UML Superstructure Specification, v2.0
              Disponível em < http://www.omg.org/cgi-bin/doc?formal/05-07-04 >. Acessado em 20 de Set. 2012.
Plano de Atividades

Etapa                                             Período             Concluída

1-Cursar Disciplinas                              02/2012 – 11/2012

2-Planejar e conduzir revisão sistemática         07/2012 – 09/2012

3-Realizar Exame de Proficiência                  06/2012             Ok

4-Desenvolver um exemplo de aplicação e redigir   09/2012 – 12/2012
um artigo
5-Elaborar projeto de mestrado                    01/2013 – 03/2013

6-Defender projeto de mestrado                    04/2013

7-Desenvolver projeto de mestrado                 04/2013 – 11/2013

8-Escrita de dissertação e artigos                11/2012 – 12/2013

9-Defender Dissertação                            02/2014
Atividades Complementares
• Desenvolvimento do site para abordagem SMarty e trabalhos
  relacionados:




                      Figura 7 - Página Inicial site da Abordagem SMarty
Atividades Complementares
• Avaliação da JML(Java Modeling Language) para uso na dissertação:

    • JML é uma linguagem de especificação de interface, de
      comportamento formal para Java, que contêm as notações essenciais
      usadas em DBC(Design by contract).

    • Design by contract é um método de desenvolvimento de software. A
      ideia principal por trás do DBC é que a classe e seus clientes possuem
      um “contrato”. O cliente deve garantir certas condições antes de
      chamar um método definido pela classe e em troca, a classe garante
      certas propriedades que irá realizar após a chamada.

        • Os contratos são definidos por código de programa, na linguagem de programação em si, e são
          traduzidos em código executável pelo compilador. Deste modo, qualquer violação do contrato,
          que ocorra enquanto o programa estiver em execução, pode ser detectada de imediato.

                                                                          Fonte: The Java Modeling Language (JML)
            Disponível em <http://www.eecs.ucf.edu/~leavens/JML/documentation.shtml> . Acessado em 19 de Set. 2012.
Revisão Sistemática

• BIOLCHINI et al.(2005) e KITCHENHAM et al. (2004)

• UMA REVISÃO SISTEMÁTICA SOBRE A UTILIZAÇÃO
  DE DIAGRAMAS DE INTERAÇÃO, PACKAGE MERGE E
  OBJECT CONSTRAINT LANGUAGE EM
  GERENCIAMENTO DE VARIABILIDADE
Revisão Sistemática
• Objetivos da Pesquisa:

• Identificar as abordagens mais estudadas/utilizadas para estender o
  gerenciamento de variabilidade aos diagramas de interação da
  UML(Sequência e Colaboração) ;

• Identificar a utilização do conceito de package merge nos meta-
  modelos da UML e para modelos relacionados à Linha de Produto
  de Software, no que tange gerenciamento de variabilidade;

• Identificar o uso da Object Constraint Language para validação de
  meta-modelos em Linha de Produto de Software, mais
  precisamente em gerenciamento de variabilidade, formalizando-os;
Revisão Sistemática
• Parâmetros de busca:
• Fontes: Base de dados eletrônicas indexadas ACM, Compendex, IEEE,
  Science Direct e Scopus, máquinas de busca eletrônica(Scirus - Elsevier e
  Google Scholar), conferências, workshops e consultas a especialistas.

• Idioma dos Trabalhos: Inglês,.

• Tipos de Documentos: artigos de conferências, anais de congressos,
  artigos de periódicos, livros/capítulos de livros, capítulos de teses e
  dissertação e relatórios técnicos, preferencialmente em formato PDF, ODT
  ou DOC/DOCX.

• Ano de Publicação: estudos que foram publicados a partir do ano de
  2002;
Revisão Sistemática
•     Palavras-chave: “software”, “software product line”, “sequence diagram”,
      “collaboration diagram”, “package merge” e “object constraint language”.

•     String de busca:
                                        “software”

                                           AND

    (“product line” OR “product-line" OR "product-family" OR "product family" OR “family
                               of products" OR “variability”)

                                           AND

    (“sequence diagram” OR “collaboration diagram” “interaction diagram” OR OCL OR
      “object constraint language” OR “consistency checking” OR “package merge” OR
                                   “package merging”)
Revisão Sistemática

• Processo de Seleção Preliminar
    • Consulta, através da string pré-estabelecida, nas máquinas de busca e bases
      indexadas;
    • Leitura do título e resumo do trabalhos recuperados; e
    • Utilização dos critérios de inclusão e exclusão, para seleção dos mais
      relevantes.


• Processo de Seleção Final
    • Leitura completa dos estudos pré-selecionados;
    • Coleta de dados dos trabalhos selecionados, bem como a elaboração de um
      resumo contemplando os pontos de destaque dos mesmos.
Revisão Sistemática

                Estudos Obtidos por Fontes (Total: 882 Estudos)
                                                                 Compendex; 30; 3.40%
                                                                                           Especialistas; 7; 0.79%

      ACM; 355; 40.25%
                                                                                                  Google Scholar; 100;
                                                                                                        11.34%




         IEEE; 32; 3.63%                                                                   ScienceDirect; 279;
                                                                                                 31.63%


                 Scopus; 53; 6.01%                     Scirus; 26; 2.95%

       IEEE    ACM         Compendex   Especialistas   Google Scholar      ScienceDirect     Scirus     Scopus
Revisão Sistemática



• Números Obtidos:
   •   882 estudos recuperados(100%);
   •   33 estudos selecionados para leitura(3,74%);
   •   9 estudos selecionados, porém repetidos.
   •   12 trabalhos relevantes(1,36%).
• Trabalhos Relevantes:
ID                               Título                                   Autor(es)      Ano    Fonte Busca     Qualis /    Conferência, Periódico
                                                                                                               Índice-H           ou Livro
                                                                                                                           ICSE ACM/IEEE International
1    A Proposal for Consistency Checking in Dynamic Software       Marinho              2010   ACM            A1           Conference on Software
     Product Line Models Using OCL                                                                                         Engineering

                                                                                                                            ECBS - IEEE International
2    Details of Formalized Relations in Feature Models Using OCL   Streitferdt et al    2003   IEEE           B1           Conference and Workshop on the
                                                                                                                           Engineering of Computer-Based
                                                                                                                           Systems
                                                                                                                           ICECCS - International Conference
3    Multiple-View Meta-Modeling of Software Product Lines         Gomaa e Shin         2002   IEEE           B1           on Engineering of Complex
                                                                                                                           Computer Systems

                                                                                                                           GPCE - International conference on
4    Seamless Development of Software Product Lines Feature        Laguna et al         2007   ACM            B1           Generative programming and
     Models to UML Traceability                                                                                            component engineering

                                                                                                                           ICEBE IEEE International
5    A Software Product Line Approach for E-Commerce Systems       Laguna e Hernández   2010   Compendex      B2           Conference on e-Business
                                                                                                                           Engineering

                                                                                                                           ICECCS - International Conference
3    Multiple-view modelling and meta-modelling                    Gomaa                2002   Compendex      B2           on Engineering of Complex
     of software product lines                                                                                             Computer Systems

                                                                                                                           ICIT - IEEE International
9    Software Product Line Testing: a Feature Oriented Approach    Lamancha et al       2012   Scopus         B2           Conference on Industrial
                                                                                                                           Technology
                                                                                                                           REFSQ-International working
6    A Flexible Requirements Analysis Approach for Software        Guelfi e Perrouin    2007   Compendex      B3           conference on Requirements
     Product Lines                                                                                                         engineering: foundation for
                                                                                                                           software quality
                                                                                                                           Brazilian Symposium on Software
5    A Verification Mechanism of Feature Models for                Marinho et al        2011   Compendex      C            Components, Architectures and
     Mobile and Context-Aware Software Product Lines                                                                       Reuse



                                                                                                                           Software Variability Management
11 Product Line Derivation with UML                                Ziadi et al          2003   Google         C            Workshop - European Science
                                                                                               Scholar                     Foundation - ESB

                                                                                                                           Journal of Universal Computer
10 UML Support for Designing Software Product Lines:               Laguna e Marqués     2010   Scopus         -            Science, vol. 1 no. 1 (201 J.UCS
                                                                                                                                          6,    7    0)
   The Package Merge Mechanism
                                                                                                                           Livro - Software Product Lines
12 Software Product Line Engineering with the UML:                 Ziadi e Jézéquel     2006   Google         -            Springer Verlag (Ed.) (2006)
   Deriving Products                                                                           Scholar
Revisão Sistemática

• Extração de informações dos trabalhos relevantes:
   • Título, Autores, Origem, Ano da Publicação, Publicação, Classificação
     no Qualis, Fonte, Quantidade de Páginas, Palavras-chave e Visão geral
     do trabalho.
Dificuldades Encontradas

• Muitos estudos, porém poucos relacionados
  aos temas buscados – e ainda, mesmo alguns
  dos selecionados são mesclados com outros
  conceitos irrelevantes para a proposta.
Conclusões Parciais

• Raros resultados da aplicação dos diagramas de
  Colaboração da UML, bem como o mecanismo de
  Package Merge;
• Poucos artigos abordam a aplicação de formalismo
  com OCL aos modelos da UML no gerenciamento de
  variabilidade;
Conclusões Parciais

• Desta forma há a necessidade de aprofundamento e
  aplicação destes modelos e mecanismos, bem como
  a aplicação do formalismo proposto pela OCL nos
  modelos UML utilizados pela abordagem SMarty, e
  finalmente a sua comparação com outras propostas
  existentes.
PROPOSTA DE UMA ABORDAGEM FORMAL PARA O GERENCIAMENTO
DE VARIABILIDADES EM MODELOS UML COM OBJECT CONSTRAINT
LANGUAGE

Anderson da Silva Marcolino – andersonmarcolino@gmail.com



Perguntas?

Mais conteúdo relacionado

Mais procurados

Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
audiclerio
 

Mais procurados (19)

3 uml
3 uml3 uml
3 uml
 
UML
UMLUML
UML
 
Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Uml ppoint
Uml ppointUml ppoint
Uml ppoint
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
Uml
UmlUml
Uml
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de Projeto
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
UML
UMLUML
UML
 
Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do Software
 
Objectory
ObjectoryObjectory
Objectory
 
Modelando Sistemas com UML
Modelando Sistemas com UMLModelando Sistemas com UML
Modelando Sistemas com UML
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 

Semelhante a Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Modelos UML com Object Constraint Language

Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Edson Oliveira Junior
 

Semelhante a Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Modelos UML com Object Constraint Language (20)

Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
MDA-gerenciamento
MDA-gerenciamentoMDA-gerenciamento
MDA-gerenciamento
 
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
 
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases RelacionaisFerramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halan
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
 
Aula 6 -_casos_de_uso
Aula 6 -_casos_de_usoAula 6 -_casos_de_uso
Aula 6 -_casos_de_uso
 
342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Aula4 TEES UFS: Orientação a Objetos
Aula4 TEES UFS: Orientação a ObjetosAula4 TEES UFS: Orientação a Objetos
Aula4 TEES UFS: Orientação a Objetos
 
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Aula1 astah
Aula1 astahAula1 astah
Aula1 astah
 
Padrões de design orientado a objetos
Padrões de design orientado a objetosPadrões de design orientado a objetos
Padrões de design orientado a objetos
 

Mais de Edson Oliveira Junior

SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
Edson Oliveira Junior
 

Mais de Edson Oliveira Junior (9)

COMPSAC 2014
COMPSAC 2014COMPSAC 2014
COMPSAC 2014
 
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
 
Uma Experiencia na Adocao do Java EE 6 Web Profole
Uma Experiencia na Adocao do Java EE 6 Web ProfoleUma Experiencia na Adocao do Java EE 6 Web Profole
Uma Experiencia na Adocao do Java EE 6 Web Profole
 
Revisão Sistemática e Bases de Pesquisa
Revisão Sistemática e Bases de PesquisaRevisão Sistemática e Bases de Pesquisa
Revisão Sistemática e Bases de Pesquisa
 
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
 
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
 
Apresentação FITEM 2012
Apresentação FITEM 2012Apresentação FITEM 2012
Apresentação FITEM 2012
 
Apresentação SMartyParser
Apresentação SMartyParserApresentação SMartyParser
Apresentação SMartyParser
 
Mini Curso Avaliação de Linha de Produto de Software
Mini Curso Avaliação de Linha de Produto de SoftwareMini Curso Avaliação de Linha de Produto de Software
Mini Curso Avaliação de Linha de Produto de Software
 

Último

Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 

Último (20)

Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 

Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Modelos UML com Object Constraint Language

  • 1. PROPOSTA DE UMA ABORDAGEM FORMAL PARA O GERENCIAMENTO DE VARIABILIDADES EM MODELOS UML COM OBJECT CONSTRAINT LANGUAGE Mestrando: Anderson da Silva Marcolino Orientador: Prof. Dr. Edson A. Oliveira Junior
  • 2. Agenda • Motivação • Linha de Produto de Software • Abordagem SMarty • OCL • Objetivos do Trabalho • Plano de Atividades • Revisão Sistemática • Dificuldades Encontradas • Conclusões Parciais
  • 3. Motivação • Ausência de abordagens completas para o gerenciamento de variabilidade com o uso de UML, com nível de formalismo e consistência, propostas pela OCL; • Facilitação no uso de LPS ao propor a utilização de conceitos conhecidos amplamente como a UML.
  • 4. Linha de Produto de Software • Abordagem que objetiva promover a geração de produtos específicos com base na reutilização de uma infraestrutura central - núcleo de artefatos - formada por uma arquitetura de software e seus componentes.
  • 5. Linha de Produto de Software • Vantagens: • Maior reutilização de artefatos; • Maximização de lucros; • Diminuição do time to market; • Diminuição de riscos; • Produtos com maior qualidade; • Contribuição para o aprimoramento.
  • 6. Linha de Produto de Software Figura 1 – Custo e Esforço no Desenvolvimento
  • 7. Linha de Produto de Software Figura 2 – Redução do Time to Market
  • 8. Linha de Produto de Software • Atividades Essenciais: 1. Desenvolvimento do Núcleo de Artefatos; 2. Desenvolvimento do Produto; 3. Gerenciamento de Linha de Produto. • O Elemento principal no gerenciamento de uma LP é o gerenciamento de variabilidade.
  • 11. Abordagem SMarty Figura 2 – Rastreabilidade do SMartyProfile para o Meta-modelo da UML2
  • 12. OCL • OCL – Object Constraint Language(Linguagem para Especificação de Restrições em Objetos). • Linguagem formal usada para descrever expressões em modelos da UML. • Estas expressões especificam condições invariáveis, que devem ser asseguradas para o sistema que esta sendo modelado ou permitem efetuar consultas sobre os objetos que estão descritos no modelo(com auxilio de ferramenta).
  • 13. OCL • Onde usar OCL? • Como uma linguagem de consultas; • Para especificar invariantes nas classes e em tipos no modelo de classes; • Para especificar tipos invariantes para estereótipos; • Para descrever pré e pós condições nas operações e métodos; • Para especificar objetivos(conjuntos) para as mensagens e ações; • Para especificar restrições em operações; e • Para especificar regras de derivações para os atributos, para qualquer expressão em um modelo UML.
  • 14. OCL • Exemplo básico do uso de OCL: context TypeName inv: 'this is an OCL expression with stereotype <<invariant>> in the context of TypeName' = 'another string‘ Fonte: OMG - Documents Associated With Object Constraint Language, Version 2.3.1 Disponível em <http://www.omg.org/spec/OCL/2.3.1/PDF>. Acessado em 19 de Set. 2012.
  • 15. OCL e Verificação de Consistência • Na revisão sistemática adiante apresentada, notamos o a utilização do OLC para gerar a verificação de consistência(consistency checking), nosso principal interesse no uso da OCL. • Segue assim, as propostas dos estudos recuperados, e conclusões sobre as mesmas, que servirão de base para o trabalho futuro.
  • 16. OCL e Verificação de Consistência • Streitferdt et al em seu trabalho Details of Formalized Relations in Feature Models Using OCL propõem a utilização de OCL para a verificação de consistência para o modelo de características(feature model), estendendo-a, e apelidando-a de A-OCL. • Esta foi aplicada ao feature model definido na abordagem denominada Feature Oriented Domain Analysis – FODA. • Na proposta utilizou-se de parte da OCL para restringir e identificar as variabilidades e escolhas das variantes para sua solução, utilizando contextos matemáticos, contextos para features com dependências(requires) e restrições(excludes).
  • 17. OCL e Verificação de Consistência Figura 3 – Exemplo uso de OCL para Feature Model
  • 18. OCL e Verificação de Consistência • Em sintese Streitferdt et al conclui que sua extensão permite um fácil entendimento e visualização do modelo de características, que, se demasiado grande pode dificultar o entendimento, e levar a resolução de variabilidades errôneas.
  • 19. OCL e Verificação de Consistência • Marinho apresente em seu trabalho A Proposal for Consistency Checking in Dynamic Software Product Line Models Using OCL, aplicado a linhas de produto de software dinâmicas, a aplicação de OCL para verificar se as configurações dos produtos preservam suas restrições especificas. • Este propõe a criação, utilizando o perfil UML de um profile UML para a LP e um para modelo de contexto, indicando que, se utilizar os dois conceitos em um diagrama, as relações mantidas no modelo podem dificultar, principalmente em LP de larga escala.
  • 20. OCL e Verificação de Consistência • Gomaa e Shin, em seu trabalho Multiple-view modelling and meta- modelling of software product lines, apresenta regras de verificação de consistência baseados no relacionamento entre meta-classes nos meta- modelos. Tais regras, formalizadas utilizando OCL são utilizadas para resolver inconsistências entre múltiplas visões em uma mesma fase ou em diferentes fazes, e são utilizadas ainda para definir mapeamentos permitidos entre múltiplas visões em diferentes fases. • Gomaa e Shin deixam claro que sua proposta pode servir a qualquer LP modelada em UML.
  • 21. OCL e Verificação de Consistência • Na seção, trabalhos relacionados apresenta diversas abordagens, e ainda, como tais efetuam o processo de checagem de consistência – nota-se ai o apelo a uma validação manual, propensa a erros. E também, apresenta os diversos mecanismos para efetuar a consistência, bem como para que tipo de abordagem: desenvolvimento de sistemas únicos, ou com LP. • Apresenta-se então todos os meta modelos da UML, e suas diferentes visões, e a partir dai define-se a validação de consistência entre as múltiplas visões, e em seguida, o PLUSEE(Product Line UML Based Software Engineering Environment) e como utiliza-lo para a aplicação do formalismo em tais visões.
  • 22. OCL e Verificação de Consistência • Para a verificação de consistência utilizou-se ferramenta desenvolvida em Java, para tal. • Finalmente, em suas considerações, indica a necessidade de estender sua abordagem aos demais modelos da UML, visto que apenas os inerentes a LP foram utilizados, bem como aplica tal consistência a UML 2.0, uma vez que a versão utilizada foi a UML 1.3, e ainda aplicar sua proposta em casos de estudos maiores.
  • 23. OCL e Verificação de Consistência • Apresentou-se aqui os trabalhos com maior destaque em OCL, mas ainda há outros pontos a serem explorados nos demais. • Notadamente, há a necessidade de aplicar-se a consistência em LP, visto que, com o aumento significativo das variabialidades, e seus pontos de variação, resolvê-las de forma incorreta pode acarretar prejuízo ou gerar produtos inadequados ao domínio para o qual foi projetado.
  • 24. OCL e Verificação de Consistência • Não há trabalhos que apresentem a utilização de todos os conceitos e notações que a OCL permite, e enriquecer modelos UML para o gerenciamento de variabilidade, é assim, garantir melhores produtos. Desenvolver uma abordagem que atenda os mais diferentes nichos de mercado se faz necessário, o que vem de encontro com o trabalho aqui proposto.
  • 25. Objetivos do Trabalho • Realizar uma revisão sistemática sobre o uso de Diagramas de Interação, package merge e OCL, relacionados ao gerenciamento de variabilidade em linha de produto de software; • Com o estudo dos resultados obtidos na Revisão, estender a abordagem SMarty para os diagramas da UML(sequência, colaboração e mecanismo de package merge) ; • Apresentar um exemplo de aplicação da abordagem proposta; • Executar um experimento com a nova extensão do SMarty;
  • 26. Objetivos do Trabalho • Compará-la com outras abordagens existentes: CVL (Common Variability Language) e PLUSEE(Product Line UML Based Software Engineering Environment); • Identificar as abordagens e o modo como OCL está sendo aplicado aos modelos UML no gerenciamento de variabilidade, através dos resultados da Revisão Sistemática, e utilizá-la nos modelos presentes no SMarty; • Comparar e avaliar os modelos UML do SMarty com OCL; • Analisar os resultados obtidos.
  • 27. Conceitos Relacionados • Diagramas de Interação • A interação é empregada para a modelagem do fluxo de controle de uma operação, de uma classe, um componente, um caso de uso ou do sistema como um todo. • Existem dois diagramas que compões os diagramas de Interação: Diagrama de Sequência e de Colaboração.
  • 28. Conceitos Relacionados • Diagrama de Sequência • Diagrama de Sequência é uma das ferramentas UML usadas para representar interações entre objetos de um cenário, realizadas através de operações ou métodos (procedimentos ou funções); • Construído a partir do Diagrama de Casos de Usos; • O diagrama de sequência dá ênfase a ordenação temporal em que as mensagens são trocadas entre os objetos de um sistema.
  • 29. Conceitos Relacionados Figura 4 – Exemplo Diagrama de Sequência
  • 30. Conceitos Relacionados • Diagrama de Colaboração • Dá ênfase à ordenação estrutural em que as mensagens são trocadas entre os objetos de um sistema.
  • 31. Conceitos Relacionados Figura 5 – Exemplo Diagrama de Colaboração Fonte: OMG - UML Superstructure Specification, v2.0 Disponível em < http://www.omg.org/cgi-bin/doc?formal/05-07-04 >. Acessado em 20 de Set. 2012.
  • 32. Conceitos Relacionados • Package Merge • Um package merge(mesclagem de pacotes) é um relacionamento direto entre dois pacotes, que indica que o conteúdo dos dois estão sendo combinados. • Semelhante ao mecanismo de Generalização no sentido de que o elemento de origem conceitualmente adiciona as características do elemento de destino para as suas próprias características, resultando em um elemento que combina as características de ambos. • Este mecanismo deve ser usado quando os elementos definidos em pacotes diferentes tem o mesmo nome e pretendem representar o mesmo conceito.
  • 33. Conceitos Relacionados Figura 6 – Exemplo Package Merge Fonte: OMG - UML Superstructure Specification, v2.0 Disponível em < http://www.omg.org/cgi-bin/doc?formal/05-07-04 >. Acessado em 20 de Set. 2012.
  • 34. Plano de Atividades Etapa Período Concluída 1-Cursar Disciplinas 02/2012 – 11/2012 2-Planejar e conduzir revisão sistemática 07/2012 – 09/2012 3-Realizar Exame de Proficiência 06/2012 Ok 4-Desenvolver um exemplo de aplicação e redigir 09/2012 – 12/2012 um artigo 5-Elaborar projeto de mestrado 01/2013 – 03/2013 6-Defender projeto de mestrado 04/2013 7-Desenvolver projeto de mestrado 04/2013 – 11/2013 8-Escrita de dissertação e artigos 11/2012 – 12/2013 9-Defender Dissertação 02/2014
  • 35. Atividades Complementares • Desenvolvimento do site para abordagem SMarty e trabalhos relacionados: Figura 7 - Página Inicial site da Abordagem SMarty
  • 36. Atividades Complementares • Avaliação da JML(Java Modeling Language) para uso na dissertação: • JML é uma linguagem de especificação de interface, de comportamento formal para Java, que contêm as notações essenciais usadas em DBC(Design by contract). • Design by contract é um método de desenvolvimento de software. A ideia principal por trás do DBC é que a classe e seus clientes possuem um “contrato”. O cliente deve garantir certas condições antes de chamar um método definido pela classe e em troca, a classe garante certas propriedades que irá realizar após a chamada. • Os contratos são definidos por código de programa, na linguagem de programação em si, e são traduzidos em código executável pelo compilador. Deste modo, qualquer violação do contrato, que ocorra enquanto o programa estiver em execução, pode ser detectada de imediato. Fonte: The Java Modeling Language (JML) Disponível em <http://www.eecs.ucf.edu/~leavens/JML/documentation.shtml> . Acessado em 19 de Set. 2012.
  • 37. Revisão Sistemática • BIOLCHINI et al.(2005) e KITCHENHAM et al. (2004) • UMA REVISÃO SISTEMÁTICA SOBRE A UTILIZAÇÃO DE DIAGRAMAS DE INTERAÇÃO, PACKAGE MERGE E OBJECT CONSTRAINT LANGUAGE EM GERENCIAMENTO DE VARIABILIDADE
  • 38. Revisão Sistemática • Objetivos da Pesquisa: • Identificar as abordagens mais estudadas/utilizadas para estender o gerenciamento de variabilidade aos diagramas de interação da UML(Sequência e Colaboração) ; • Identificar a utilização do conceito de package merge nos meta- modelos da UML e para modelos relacionados à Linha de Produto de Software, no que tange gerenciamento de variabilidade; • Identificar o uso da Object Constraint Language para validação de meta-modelos em Linha de Produto de Software, mais precisamente em gerenciamento de variabilidade, formalizando-os;
  • 39. Revisão Sistemática • Parâmetros de busca: • Fontes: Base de dados eletrônicas indexadas ACM, Compendex, IEEE, Science Direct e Scopus, máquinas de busca eletrônica(Scirus - Elsevier e Google Scholar), conferências, workshops e consultas a especialistas. • Idioma dos Trabalhos: Inglês,. • Tipos de Documentos: artigos de conferências, anais de congressos, artigos de periódicos, livros/capítulos de livros, capítulos de teses e dissertação e relatórios técnicos, preferencialmente em formato PDF, ODT ou DOC/DOCX. • Ano de Publicação: estudos que foram publicados a partir do ano de 2002;
  • 40. Revisão Sistemática • Palavras-chave: “software”, “software product line”, “sequence diagram”, “collaboration diagram”, “package merge” e “object constraint language”. • String de busca: “software” AND (“product line” OR “product-line" OR "product-family" OR "product family" OR “family of products" OR “variability”) AND (“sequence diagram” OR “collaboration diagram” “interaction diagram” OR OCL OR “object constraint language” OR “consistency checking” OR “package merge” OR “package merging”)
  • 41. Revisão Sistemática • Processo de Seleção Preliminar • Consulta, através da string pré-estabelecida, nas máquinas de busca e bases indexadas; • Leitura do título e resumo do trabalhos recuperados; e • Utilização dos critérios de inclusão e exclusão, para seleção dos mais relevantes. • Processo de Seleção Final • Leitura completa dos estudos pré-selecionados; • Coleta de dados dos trabalhos selecionados, bem como a elaboração de um resumo contemplando os pontos de destaque dos mesmos.
  • 42. Revisão Sistemática Estudos Obtidos por Fontes (Total: 882 Estudos) Compendex; 30; 3.40% Especialistas; 7; 0.79% ACM; 355; 40.25% Google Scholar; 100; 11.34% IEEE; 32; 3.63% ScienceDirect; 279; 31.63% Scopus; 53; 6.01% Scirus; 26; 2.95% IEEE ACM Compendex Especialistas Google Scholar ScienceDirect Scirus Scopus
  • 43. Revisão Sistemática • Números Obtidos: • 882 estudos recuperados(100%); • 33 estudos selecionados para leitura(3,74%); • 9 estudos selecionados, porém repetidos. • 12 trabalhos relevantes(1,36%).
  • 44. • Trabalhos Relevantes: ID Título Autor(es) Ano Fonte Busca Qualis / Conferência, Periódico Índice-H ou Livro ICSE ACM/IEEE International 1 A Proposal for Consistency Checking in Dynamic Software Marinho 2010 ACM A1 Conference on Software Product Line Models Using OCL Engineering ECBS - IEEE International 2 Details of Formalized Relations in Feature Models Using OCL Streitferdt et al 2003 IEEE B1 Conference and Workshop on the Engineering of Computer-Based Systems ICECCS - International Conference 3 Multiple-View Meta-Modeling of Software Product Lines Gomaa e Shin 2002 IEEE B1 on Engineering of Complex Computer Systems GPCE - International conference on 4 Seamless Development of Software Product Lines Feature Laguna et al 2007 ACM B1 Generative programming and Models to UML Traceability component engineering ICEBE IEEE International 5 A Software Product Line Approach for E-Commerce Systems Laguna e Hernández 2010 Compendex B2 Conference on e-Business Engineering ICECCS - International Conference 3 Multiple-view modelling and meta-modelling Gomaa 2002 Compendex B2 on Engineering of Complex of software product lines Computer Systems ICIT - IEEE International 9 Software Product Line Testing: a Feature Oriented Approach Lamancha et al 2012 Scopus B2 Conference on Industrial Technology REFSQ-International working 6 A Flexible Requirements Analysis Approach for Software Guelfi e Perrouin 2007 Compendex B3 conference on Requirements Product Lines engineering: foundation for software quality Brazilian Symposium on Software 5 A Verification Mechanism of Feature Models for Marinho et al 2011 Compendex C Components, Architectures and Mobile and Context-Aware Software Product Lines Reuse Software Variability Management 11 Product Line Derivation with UML Ziadi et al 2003 Google C Workshop - European Science Scholar Foundation - ESB Journal of Universal Computer 10 UML Support for Designing Software Product Lines: Laguna e Marqués 2010 Scopus - Science, vol. 1 no. 1 (201 J.UCS 6, 7 0) The Package Merge Mechanism Livro - Software Product Lines 12 Software Product Line Engineering with the UML: Ziadi e Jézéquel 2006 Google - Springer Verlag (Ed.) (2006) Deriving Products Scholar
  • 45. Revisão Sistemática • Extração de informações dos trabalhos relevantes: • Título, Autores, Origem, Ano da Publicação, Publicação, Classificação no Qualis, Fonte, Quantidade de Páginas, Palavras-chave e Visão geral do trabalho.
  • 46. Dificuldades Encontradas • Muitos estudos, porém poucos relacionados aos temas buscados – e ainda, mesmo alguns dos selecionados são mesclados com outros conceitos irrelevantes para a proposta.
  • 47. Conclusões Parciais • Raros resultados da aplicação dos diagramas de Colaboração da UML, bem como o mecanismo de Package Merge; • Poucos artigos abordam a aplicação de formalismo com OCL aos modelos da UML no gerenciamento de variabilidade;
  • 48. Conclusões Parciais • Desta forma há a necessidade de aprofundamento e aplicação destes modelos e mecanismos, bem como a aplicação do formalismo proposto pela OCL nos modelos UML utilizados pela abordagem SMarty, e finalmente a sua comparação com outras propostas existentes.
  • 49. PROPOSTA DE UMA ABORDAGEM FORMAL PARA O GERENCIAMENTO DE VARIABILIDADES EM MODELOS UML COM OBJECT CONSTRAINT LANGUAGE Anderson da Silva Marcolino – andersonmarcolino@gmail.com Perguntas?