34
SOFTWARE DE INTEGRAÇÃO DA FERRAMENTA CASE RATIONAL ROSE COM O BANCO DE DADOS JASMINE Acadêmico : Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl

Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

SOFTWARE DE INTEGRAÇÃO DA FERRAMENTA CASE RATIONAL ROSE COM O BANCO DE DADOS

JASMINE

Acadêmico : Rômulo Bendini Madalena

Orientador : Prof. Everaldo Artur Grahl

Page 2: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Roteiro da Apresentação

• Introdução• Objetivo do Trabalho• Orientação a Objetos• UML• Ferramenta CASE Rational Rose• MDL – Model• Banco de Dados Jasmine• Linguagem ODQL• Contexto atual do Tema

Page 3: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Roteiro da Apresentação

• Desenvolvimento do Trabalho• Requisitos principais do Problema a ser trabalhado• Especificação do Software• Técnicas e Ferramentas utilizadas• Apresentação da Especificação• Implementação• Técnicas e Ferramentas utilizadas• Operacionalidade da Implementação• Resultados e Discussão• Conclusão• Extensões

Page 4: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Introdução�A Orientação a Objetos é uma técnica de desenvolvimentode software que utiliza abstração para dissimular a tarefa de Programação

�A UML é uma linguagem para especificação, visualização, construção e documentação de modelos de sistema de Software.

� A ferramenta CASE Rational Rose fornece suporte a UML

�O Jasmine possui uma interface simples e integrada, para desenhode banco de dados a aplicações, fazendo integral uso dos recursosda UML.

Page 5: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Objetivo do trabalho

�Um software de geração de código para o banco Jasmine a partir dos arquivos gerados pela ferramenta CASE Rational Rose

� Obter o diagrama de classe a partir do arquivo MDL

�Traduzir os dados obtidos para a linguagem ODQL

Page 6: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Orientação a Objetos

�A Orientação a Objetos traz vários benefícios no desenvolvimentoe manutenção de software.

UML�Uma notação padronizada para especificação de software

Page 7: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Ferramenta CASE Rational Rose

�Uma ferramenta de apoio ao processo de desenvolvimento de software, não a solução mágica para os problemas da área.

MDL - Model

�As especificações na linguagem de modelagem MDL permitemrecuperar o projeto orientado a objeto do sistema na ferramentaRational Rose

Page 8: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Arquivo texto do MDL(object Class "Gente"

quid "3A390AA50050"class_attributes (list class_attribute_list

(object ClassAttribute "Rg"quid "3A390AD80294")

(object ClassAttribute "nome"quid "3A390AE0026C")

(object ClassAttribute "endereço"quid "3A390AE50082")

(object ClassAttribute "fone"quid "3A390AE50090")

(object ClassAttribute "CPF"quid "3A390AEA0046")))

(object Class "Professor"quid "3A390AA9005A"superclasses (list inheritance_relationship_list

(object Inheritance_Relationshipquid "3A390B370348"supplier "Gente"quidu "3A390AA50050"))

class_attributes (list class_attribute_list(object ClassAttribute "carteira trabalho"

quid "3A390B0B015E")(object ClassAttribute "salário"

quid "3A390B11000A")))

Page 9: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Banco de Dados Jasmine

�O BDOO Jasmine incorpora uma série de classes pré-definidas para exploração de recursos multimídia comovídeo, som, coordenadas espaciais, mapas, além dos tipos dedados tradicionais dos SGBDR.

Linguagem ODQL�A linguagem ODQL é um componente muito importantepara a operabilidade do banco Jasmine, pois nesta linguagemvocê manipula qualquer objeto, classes, instâncias e métodos.

Page 10: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Contexto atual do Tema

�Protótipo de software para a geração de código CDL atravésdo repositório da ferramenta CASE System Architect, trabalho realizado pelo Danilo (1999).

� Software para geração de código fonte a partir do repositórioda ferramenta CASE System Architect, trabalho realizado peloMarcos Aurélio (2000).

Page 11: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Código Fonte ODQL

defaultCF t;defineClass Gente{

instance:String Rg;String nome;String endereço;String fone;String CPF;

};

defaultCF t;defineClass Professor super: Gente{

instance:String carteiratrabalho;String salário;

};

buildClass t::Gente t::Professor t;

Page 12: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Desenvolvimento do Trabalho

Requisitos principais do Problema a ser Trabalhado�Facilitar a migração de uma especificação gerada pelo CASE Para um banco BDOO.

�As informações sobre o diagrama de classe gerada pelo CASERational Rose estão contida na linguagem Object Petal.

�O banco Jasmine tem internamente um compilador para a linguagem ODQL.

Page 13: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Especificação do Software

� Para especificar o Software foi realizado o Diagrama de Uso,Diagrama de Classe e o Diagrama de Seqüência.

� A especificação foi baseada na notação UML.

Page 14: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Técnicas e Ferramentas Utilizadas

� Para especificar o protótipo foi utilizado a ferramenta CASERational Rose.

� Foi adotado a notação UML para a especificação do Protótipo.

Page 15: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Apresentação da especificação

�Diagrama de Uso

Gerar Codigo ODQL

Ler arquivo MDL

Analista

Page 16: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

�Diagrama de Classe

TRole

Name : StringSupplier : StringCardinality : String

Create( )GetSupplier( )GetName( )

1

0..*

1

TRRFile

FLine : IntegerFCountAbreParenteses : IntegerFCountFechaParenteses : IntegerSL : TStringListDictionary : TDictionarySLODQL

GetObjectName( )CountToken( )DeleteSubStr( )ReadMethods( )ReadSuperClasse( )ReadAttributes( )ReadAssociations( )ReadParameters( )ReadDependencys( )Destroy( )ReadClasses( )IsValid( )Create( )RetiraCifrao( )ODQLGeneration( )

1..*

1

0..*TAssociation

Name : StringRoleA : RoleRoleB : Role

Create( )

1

0..*

1 0..*

TDependency

Name : StringSupplier : StringSupplierCardinality : StringClientCardinality : String

Create( )GetSupplier( )GetName( )

1

TDictionary

Associations : AssociationClasses : Classe

Create( )Destroy( )LiberaMemoria( )

1

1..*

1

0..*

1..*

1

0..*

1..*

TClasse

Name : StringSuperClass : StringSuperClassRelationName : StringAttributes : AttributeMethods : MethodDependencys : Dependency

Create( )Destroy( )GetName( )GetSuperClass( )

1 0..*

1

1..*

0..* TMethod

Name : StringRetorno : String = VoidVisible : StringParameters : Attribute = TList.Create

Create( )Destroy( )GetResult( )GetName( )

1

0..*

TAttribute

Name : StringTipo : StringVisible : String

Create( )GetTipo( )GetName( )GetDefault( )

1..*

0..*

Page 17: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

�Diagrama de Seqüência – Ler Arquivo MDL

Analista : AnalistaDictionaty : TDictionary

RRFile : TRRFile

Classes : TClasse

Association : TAssociation

Role : TRole Dependency : TDependency

Attibute : TAttribute

Method : TMethod

Create ( Create (

IsValid (

LiberaMemoria (

ReadClasses ( Create (

Create (

Create (

Create (

Create (

Create (

ReadMethods (Classe)

ReadAttributes

ReadDependencys

ReadAssociations (Dictionary)

RetiraCifrao (String)

Page 18: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

�Diagrama de Seqüência – Gerar Código ODQL

: Analista : TRRFile : TClasse : TAttribute : TMethod : TRole : TDependency

ODQLGeneration (String, String) GetName ( )

GetSuperClass ( )

GetTipo ( )

GetName ( )

GetDefault ( )

GetResult ( )

GetName ( )

GetTipo ( )

GetName ( )

GetSupplier ( )

GetName ( )

GetSupplier ( )

GetName ( )

GetName ( )

GetName ( )

Page 19: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Implementação Técnicas e Ferramenta Utilizada

�Para a confecção do Software foi utilizado a Ferramenta Delphi 5.0com a linguagem de programação Object Pascal.

� foi utilizado uma programação orientado a Objeto com o auxilio datécnica UML.

� Para obtenção dos dados desejados do diagrama de classe foi utilizado tokens para ler o arquivo MDL.

�Foi utilizado a BNF da linguagem ODQL para se basear e compararcom o código gerado pelo software.

Page 20: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Operacionalidade da Implementação

�O processo para a geração do código fonte pelo Software estádividido em três partes.

•Criação do diagrama de classe pelo CASE Rational Rose• geração do código fonte através do Software.•Compilar o arquivo gerado pelo Banco Jasmine.

� Para a criação do diagrama de classe precisa configurar o RationalRose para o método Unificado.

Page 21: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Configuração do Rational Rose

Page 22: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Diagrama de Classe do Estudo de Caso

Page 23: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela da árvore das classes e o arquivo MDL

Page 24: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela da árvore das associações entre as classes do estudo de caso

Page 25: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela da classe família dentro do software

Page 26: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela do código ODQL

Page 27: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela do prompt do NT para execução do arquivo BAT

Page 28: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Executar o Banco Jasmine

Page 29: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela para entrar em uma conexão

Page 30: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Tela do Jasmine Class Browser

Page 31: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Resultadose Discussão

� Algumas limitações do protótipo

� Para a implementação da interface, leitura e armazenamentode informações foi utilizado a ferramenta Delphi 5.0 junto com a Linguagem de programação Object Pascal.

�Leitura do arquivo MDL da Ferramenta CASE Rational Rose

�Foi implementada a orientação a objetos para dar suporte aarmazenamento dos dados obtidos pelo arquivo fonte MDLe para a geração do código fonte ODQL.

Page 32: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Conclusões

�O protótipo conseguiu atingir o seu objetivo principal

�A ferramenta CASE Rational Rose tem um repositório em umArquivo texto chamado Object Petal (MDL)

�A configuração e a conexão do Banco de Dados Jasmine é muitoFácil, mesmo sendo restrita a sua documentação

�Em relação a outros trabalhos já desenvolvidos nesta linha pode-se comentar que este trabalho seguiu os objetivos pretendidospelo trabalho do Kramel (2000)

Page 33: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

�Já em relação ao trabalho de Wehrmeister (2001), o mesmo se mostrou mais amplo porque permite a geração para qualquer linguagem

�Uma das vantagens do trabalho é a integração da Ferramenta CASE Rational Rose para o BDOO Jasmine, porque dá maior suporte ao analista que, apenas precisa especificar qualquer aplicação que por sua vez gera a base de dados para o bancoJasmine.

Page 34: Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl - …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2... · 2007. 11. 19. · JASMINE Acadêmico : Rômulo Bendini

Extensões

�Para extensões deste trabalho sugere-se:

• especificar uma metalinguagem para ler a BNF do ODQL• possibilitar que o protótipo crie os métodos ao nível de classe e ao nível de coleção• possibilitar também que o usuário possa criar as própriasprocedures em ODQL para que o banco Jasmine compile para já incorporar nas classes criadas