Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl -...
Transcript of Rômulo Bendini Madalena Orientador : Prof. Everaldo Artur Grahl -...
![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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/1.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/2.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/3.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/4.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/5.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/6.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/7.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/8.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/9.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/10.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/11.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/12.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/13.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/14.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/15.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/16.jpg)
�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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/17.jpg)
�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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/18.jpg)
�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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/19.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/20.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/21.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/22.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/23.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/24.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/25.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/26.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/27.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/28.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/29.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/30.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/31.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/32.jpg)
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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/33.jpg)
�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](https://reader037.fdocument.pub/reader037/viewer/2022090812/611f771465f43c019547b274/html5/thumbnails/34.jpg)
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