1 / 103

Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias. Tutorial por José Eduardo Zindel Deboni Voxxel Consultoria de Sistemas. Objetivos do Tutorial. Observando que tudo esta orientado a objetos Análise/Modelagem……….UML Projeto…………………….UML e CORBA

pilis
Download Presentation

Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Integração de TecnologiasUML – CORBA - JavaA Convergência das Tecnologias Tutorial por José Eduardo Zindel Deboni Voxxel Consultoria de Sistemas

  2. Objetivos do Tutorial • Observando que tudo esta orientado a objetos • Análise/Modelagem……….UML • Projeto…………………….UML e CORBA • Implementação……………IDL e Java • Analisar como o desenvolvimento de sistemas pode tirar vantagens da integração de tecnologias • Estudar através de um exemplo como a UML pode integrar-se a CORBA e Java

  3. O que é um Tutorial ? • Verbete: tutorial • 2. Diz-se da modalidade de ensino exercido por tutor (4). • Verbete: tutor[Do latim: tutore.] • 4. Aluno designado como professor de outros alunos, em formas alternativas de ensino. • Fonte: Dicionário Aurélio em CD-ROM V.1.4

  4. Os sistemas atuais são… • … complexos • Negócios estão cada vez mais complexos • Integração de mercados, globalização • Competitividade crescente • … feitos para a internet • Confiabilidade: o negócio depende do sistema • e_bussiness: O negócio é o sistema • … distribuídos em n camadas • Especialização de cada atividade do sistema • Facilidade de manutenção e portabilidade • e_business: O negócio é a rede

  5. Camada Camada Camada de Negócios de de Dados Apresentação Corba / iiop Corba / iiop objetos ok Corba / iiop RDBMS OODBMS Arquivos Http/ cgi CGIs HTMLs webserver A arquitetura de n camadas

  6. Convergência para objetos Análise e Modelagem UML Projeto e Arquitetura CORBA Implementação Java Lente convergente Da Orientação a Objetos

  7. Tecnologias Orientadas a Objeto • Linguagem de Modelagem Orientada a Objetos • UML – Unified Modeling Language • Arquitetura de Aplicações de Objetos Distribuidos • CORBA – Common Object Request Broker Architecture • Ambiente flexível e portável para desenvolvimento • Java (Aplicações, Applets, Servlets, JDBC, Swing, RMI, EJB…)

  8. Como fica a Engenharia de Software? • É necessário fazer Engenharia de Software? • É possivel se fazer Engenharia do Software? • Integrar :Analise – Projeto - Implementação • Projetar a solução antes de construir • Criar uma “planta” do software • Utilizar um método para desenvolvimento de sistemas • Simular, prever resultados antes da construção • Como desenvolver em tempo de internet? • Com agregar as novas tecnologias disponíveis?

  9. Respostas: • Sim, é indispensável usar as técnicas da Eng. de Software, para atender à complexidade e garantir confiabilidade às soluções distribuidas. • Sim, é possível realizar a Eng. de Software porque tudo esta Orientado a Objetos. • Modelagem Orientada a Objetos (UML) • Arquitetura de Objetos distribuidos (CORBA) • Implementação para internet (Java)

  10. Novas questões: • Como integrar estas novas tecnologias com os métodos de Engenharia de Software? • Como integrar a UML (analise/projeto) com CORBA (Arquitetura da solução) e com Java (implementação) serm perder as vantagens individuais de cada uma • A UML é capaz de modelar e dar uma visão completa do todo tão heterogêneo?

  11. Abordagem • Analisar a UML e a sua integração com Java e CORBA • Propor um método para o trabalho em conjunto destas tecnologias • Exemplificar a integração

  12. Integração entre as tecnologias

  13. O que é a UML? • UML • Unified Modeling Language • É uma linguagem de modelagem de sistemas • É orientada a objetos • É padronizada pela OMG • É suportada por diversas ferramentas CASE • Ainda é pouco difundida, e utilizada

  14. Seqüência de diagramas* Casos de Uso Comportamento Externo Eventos Colaboração Atividades Estados Comportamento interno Pacotes Classes Estrutura Componentes Distribuição Implementação * esta seqüência não faz parte da UML é apenas uma sugestão

  15. Casos de Uso • Descreve os cenários de interação • Identifica elementos externos • Caracteriza os objetivos de cada um com o sistema • Um Ator se comunica com Casos de Uso • Define-se a fronteira do sistema

  16. Sistema Fazer Pedidos Vendedor Aprovar Crédito Cliente Entregar Material Gerente Diagramas de Casos de Uso

  17. Diagramas de Classes • Estrutura das partes que formam o sistema • Expõe os componentes internos • Estabelece as relações entre as classes • É um diagrama estrutural estático e não dinâmico • Possui uma relação direta com a estrutura dos códigos

  18. Exemplos de representação • Pessoa • {abstrata, • autor=JEDeboni} Pessoa +nome: Texto #RG : inteiro +casado : boolean=false Pessoa nome: Texto idade: inteiro +cadastra() +criar(RG:inteiro) cadastrar()

  19. Modelo de Classes

  20. Diagramas de Interação • Diagramas de Seqüência de Eventos • Diagramas de Colaboração • As classes se comunicam pelos métodos • Descreve a troca de mensagens • Mostra a dinâmica observável entre as classes • Uma mensagem se da pela invocação de um método de outra classe e pela passagem de parâmetros

  21. Diagrama de seqüência de eventos

  22. Diagrama de Estados [DataReserva<Hoje] Disponível Devolver Retornar [AvisarGerente] Reservado Emprestar Retornar [ExisteReserva] Emprestado Emprestar Devolver [ExisteReserva] [DataEmprestimo>Hoje] /AvisarUsuario /AvisarUsuário Atrasado

  23. Diagramas de Implementação • Descrição dos componentes de software que formam o sistema e a arquitetura de hardware • Diagramas de Componentes • Diagramas de Distribuição

  24. Diagrama de Componentes GUI Libs BancoDeDados

  25. Diagrama de Dsitribuição Servidor:Host1 Impressora Cliente:PC

  26. Integração da implementação Cliente:PC GUI Libs Servidor:Unix BancoDeDados

  27. Pacotes Agrupam os objetos Pode-se usar para identificar as camadas

  28. Integração entre os diagramas

  29. Mapeamento de um URL www.empresa.com.br http://www.empresa.com.br/aplic/horas/index.html

  30. Integração entre as tecnologias

  31. Modelo UML de sistemas Java • Representação gráfica dos sistemas • Visão do todo, integrada e coerente • Permite uma visão sistêmica • Facilita o entendimento da arquitetura • Permite esconde os detalhes do código durante a visão da arquitetura • UML + Java uma união vantajosa para os dois

  32. UML e Java – ida e volta • Geração de Código • Tradução dos diagramas em código Java • Os diagramas de classe geram estruturas Java • Engenharia Reversa • Gerar modelo com base em código Java • Identificar classes, componentes e relações

  33. Mapeamento em uma classe java publicclass Funcionario { private String nome = ""; privateint telefone = 0; privateboolean ativo = false; publicvoid novo () { } }

  34. Mapeamento de uma Applet java Applet import java.applet.*; import java.awt.*; publicclass Funcionario extends Applet { private String nome = ""; privateint telefone = 0; privateboolean ativo = false; publicvoid novo () { } } {abstract} Funcionario {final} -nome:String -telefone:int -ativo:boolean +novo( ):void

  35. INIT iniciar [teste1==true] fechar /modifica=false [teclaOK()==true] /BD.fechar() EditandoItens ListandoItens editar [teclaEdit()==true] /BD.abrir() fechar fechar [TeclaCancel()==true] [teclaCancel=true] /BD.fechar( /BD.fechar() CLOSE Exemplo de diagrama de estado

  36. Código do diagrama de estado classDEMO {private String currentState = "INIT" ;//States: INIT, CLOSE, ListandoItens, EditandoItens //Events: nullEvent, iniciar, fechar, editar void process ( String anEvent ) {if ( ( currentState == "INIT" ) && ( anEvent == "iniciar" ) && ( teste1==true ) ) { currentState = "ListandoItens" ; modifica=falsereturn; }if ( ( currentState == "ListandoItens" ) && ( anEvent == "fechar" ) && ( teclaCancel=true ) ) { currentState = "CLOSE" ; BD.fechar() return; }if ( ( currentState == "ListandoItens" ) && ( anEvent == "editar" ) && ( teclaEdit()==true ) ) { currentState = "EditandoItens" ; BD.abrir() return; }…elsereturn; }}

  37. Métodos para relacionar classes • Interfaces • Uma descrição do que deve ser feito, sem se preocupar com a implementação • Herança • Trasferir para uma classe filha os métodos, atributos e relacionamentos da classe mãe • Composição • Criar uma instância de uma classe para poder utilizar os serviços que ela dispõe

  38. Interface UML, Java ou CORBA • Permite descrever como deve ser uma classe sem dizer como ela deve ser implementada. • Uma classe com assinaturas de operações • Uso: integrar análise/projeto e sistemas • Pode usada para representar o resultado da análise, • A análise define as assinaturas das operações, • No projeto as assinaturas serão implementadas • As classes devem implementar as interfaces

  39. Interfaces UML e Java publicinterface ClasseModelo{ publicvoid criar (String p1); } publicclass impClasse implements ClasseModelo{ publicvoid criar (String p) { // // aqui devem ser inserido o código // do método // } }

  40. Herança publicclass classeFilha extends classeMae { } Toda a funcionalidade da mãe é Transferida para a classe filha como Se fosse dela.

  41. Agregação publicclass ClasseA { private Recursos oRec = new Recursos() ; } A ClasseA agora dispões dos recursos da classe Recursos atraves da instância oRec A classe de Recursos deve estar diponível

  42. Todas as opções juntas publicclass minhaClasse extends classeMae implements ClasseModelo { private Recursos oRec = new Recursos() ; }

  43. Integração entre as tecnologias

  44. O que é a tecnologia CORBA? • CORBA • Common Object Request Broker Architecture • Uma camada de software que distribui objetos • Oferece uma série de serviços de objeto • É padonizada pela OMG • IDL - Interface Definition Language • Padrão para definição dos Serviços dos objetos • Linguagem semelhate ao C • Portabilidade para Java, C++, Delphi, VB etc.. • Permite integração entre sistemas heterogêneos.

  45. Integração Cliente/Servidor ORB – barramento de objetos Object Request Broker Os serviços são distribuidos na forma de Objetos em um barramento

  46. CORBA algumas características • Invocação estática • Os parâmetros podem ser conhecidos • Invocação dinâmica • Os parâmetros podem ser “descobertos” • Escalabilidade • Criação de uma rede de serviços intergalática • Segurança, Transparência e Controle • Serviços disponíveis pela arquitetura • Coexistência com sistemas atuais (legados)

  47. interface Servico Cliente _SKELTON _STUB BOA ORB IIOP - Internet InterORB Protocol Anatomia do CORBA 2.0

  48. A UML modela as interfaces Account A linguagem IDL suporta Os princípios da Orientação a Objetos float balance makeDeposit makeWithdrawal

  49. Exemplo de interface IDL // IDL interface Account { //Attributes attribute float balance; readonly attribute string owner; //Operations void makeDeposit(in float amount, out float newBalance); void makeWithdrawal(in float amount, out float newBalance); }; Account float balance makeDeposit makeWithdrawal

  50. A interface IDL faz a ligação Cliente IDL compiler Cliente Stub Interface IDL Server Stub Compilador em linguagem Servidor nativa

More Related