1 / 35

Desenvolvimento de Software Dirigido a Modelos

Desenvolvimento de Software Dirigido a Modelos. Agenda: Benefícios Conceitos Pontos de Vistas MDA : CIM,PIM, PSM Transformações e Mapeamentos em MDA Transformações por Metamodelos Transformações com UML Profile Metamodelo MDA Padrões OMG e a Arquitetura MDA

bin
Download Presentation

Desenvolvimento de Software Dirigido a Modelos

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. Desenvolvimento de Software Dirigido a Modelos Agenda: Benefícios Conceitos Pontos de Vistas MDA : CIM,PIM, PSM Transformações e Mapeamentos em MDA Transformações por Metamodelos Transformações com UML Profile Metamodelo MDA Padrões OMG e a Arquitetura MDA Abordagens MDD: OO-Method e AndroMDA O Programa FastStart da OMG Problemas e Desafios dos Processos MDD Almir Buarque

  2. Conceitos Iniciais • Modelo Um modelo de um sistema é a sua representação ( especificação) funcional, estrutural e comportamental. • Dirigido a Modelos Porque provê meios de usar modelos para direcionar o curso de entendimento, projeto, construção, distribuição, operação, manutenção e modificação de um sistema. • Arquitetura Arquitetura de um sistema é a especificação de suas partes e conectores, além das regras de interação dessas partes usando os conectores.

  3. Conceitos Iniciais • Plataforma Uma plataforma é um conjunto de subsistemas e tecnologias que provê um conjunto coerente de funcionalidade através de interfaces e padrões de uso especificados, que qualquer aplicação (sistema) suportada por essa plataforma pode usar, sem ter que saber detalhes de como essa funcionalidade provida pela plataforma é implementada. • Ponto de Vista Um ponto de vista de um sistema é uma técnica de abstração, usando um conjunto selecionado de conceitos arquiteturais e regras de estruturação que visa focar ou representar um aspecto (característica) dentro desse sistema.

  4. Conceitos Iniciais • Arquitetura Dirigida a Modelos (MDA) Arquitetura anunciada pelo grupo OMG em 2001 com o propósito de especificar sistemas através de Modelos e atender, de modo satisfatório, a necessidade cada vez mais emergente de: • realizar manutenções em aplicações • integrá-las com outros sistemas • mudar suas infra-estruturas • alterar seus requisitos • lidar com a frequente evolução e criação de novas tecnologias

  5. Benefícios do Desenvolvimento de Software Dirigido por Modelos • Interoperabilidade • Portabilidade • Produtividade - Automatização • Facilita Manutenção • Validação/Verificação • Melhor Qualidade do Produto • Redução de Custo e Esforço Desenvolvimento

  6. Pontos de Vista MDA • CIM – Modelo Independente de Computação - É uma visão do sistema a partir de um ponto de vista (viewpoint) independente de computação. O CIM não mostra detalhes da estrutura dos sistemas, sendo usualmente chamado de modelo de domínio ou modelo de negócio e usa, em sua especificação, um vocabulário familiar aos usuários do domínio (problema) em questão. • PIM – Modelo Independente de Plataforma - Foca na operação do sistema (modelo computacional), mas escondendo os detalhes necessários para implantar esse modelo numa plataforma específica. O PIM é único para o sistema e não muda quando se varia de uma plataforma para outra.

  7. Pontos de Vista MDA • PSM – Modelo Específico de Plataforma • Este modelo é uma visão do sistema que agrega características e elementos constituintes de uma plataforma específica, contendo informações da tecnologia utilizada na aplicação como a linguagem de programação, os componentes de middleware, a arquitetura de hardware e de software. • Para que isso seja possível é necessário o suporte de ferramentas que façam o mapeamendo adequado de uma especificação abstrata (PIM) para uma determinada plataforma.

  8. Transformações e Mapeamentos em MDA Outras Transformações Possíveis: • PSM => PIM (Engenharia Reversa) • PIM => PIM, PSM => PSM (Modelos de mesmo nível ) • Implementação => PSM (Engenharia Reversa) • PIM => Implementação • PIM => CIM ( Eng. Reversa)

  9. Transformações por metamodelos • Transformações podem usar diferentes técnicas: • UML Profiles, uso de padrões (patterns), marcas (markings), metamodelos e transformações automáticas( algoritmos ) • Numa transformação por Metamodelos, como ilustrado na figura, modelo 1 é transformado num modelo 2, usando como entrada do processo o metamodelo A do modelo 1 e produzindo o modelo 2 expresso em seu metamodelo B • Regras de mapeamentos precisas devem ser de definidas para que essa transformação seja possível.

  10. Transformações com UML Profile • Em 2001, o OMG publicou a UML 2.0: • Action Semantics • Modelagem de processos de negócios, , arquiteturas distribuídas e sistemas heterogêneos • UML Profiles • UML Profile é um mecanismo de extensão UML que auxilia a transformação de modelos , por exemplo , de PIM para PSM específicos

  11. UML Profiles da OMG • Atualmente muitas extensões já estão padronizadas pela OMG, algumas estão em processo de padronização e outras ainda em discussão

  12. O Metamodelo MDA

  13. Padrões OMG e a Arquitetura MDA

  14. Camada Núcleo MDA - PIM • UnifiedModelingLanguage (UML): padrão que define uma linguagem de modelagem geral orientada a objetos para especificação, construção e documentação de artefatos de sistemas complexos de software. • Common Warehouse Metamodel (CWM): padrão para armazenamento de dados que permite fácil manipulação dos mesmos entre ferramentas e plataformas de armazenamento em ambientes heterogêneos distribuídos. • Meta ObjectFacility (MOF): padrão que define uma linguagem abstrata para definição de linguagens de modelagem (metamodelos). Ela é utilizada para descrever modelos da UML, CWM e do próprio MOF, além de definir o formato de intercâmbio para modelos, base do padrão XMI (XML MetadataInterchange).

  15. 2ª Camada MDA - PSM • XML MetadataInterchange (XMI): padrão para o intercâmbio de modelos através do mapeamento da linguagem definida pelo padrão MOF para o padrão XML do World Wide Web Consortium (W3C). • CommonObjectRequestBrokerArchitecture (CORBA): arquitetura que estabelece e simplifica a troca de dados entre sistemas distribuídos. • Na camada PSM, pode-se ter também outros padrões como JAVA EJB, Microsoft . NET, etc.

  16. 3ª Camada MDA - Serviços • Na camada mais externa, são exibidos os serviços que a maioria dos domínios de aplicações necessitam: • Sistemas críticos de segurança, E-commerce, Financeiro, Saúde, Educação,etc... • Esses serviços podem ser de segurança, persistência, controle de transações, tratamentos de eventos, diretórios, etc.

  17. Abordagens MDD • OO-Method • AndroMDA

  18. OO-Method Breve Histórico • A primeira versão do OO-Method foi introduzida em 1992 através da tese de PhD de Oscar Pastor, juntamente com a da linguagem formal de especificação de sistemas de informação – OASIS • O método cobre todas a fases do processo de desenvolvimento de software, das fases iniciais de obtenção de requisitos, projeto e geração do produto final de software numa plataforma específica. • O centro do desenvolvimento do software dirigido por modelos do OO-Method é o Esquema (Modelo) Conceitual , conforme afirmação do Prof. Antoni Olivé (2005) “Para desenvolver um sistema de informação é necessário e suficiente definir seu esquema conceitual”

  19. OO-Method • Toni Morgan, defende a idéia de usar “ Extreme Non-Programing” como argumento de que a principal atividade no desenvolvimento de software é modelagem, e não programação, pois modelagem está no espaço do problema, enquanto programar está no espaço da solução. • O objetivo final é tornar verdadeira a sentença: “ Modelo é o Código“, ao invés de “ o Código é o Modelo “ • Modelo Conceitual Executável: representa de modo completo e consistente todos os aspectos estáticos, dinânicos e de interação (interface usuário) de um sistema • é compilado através de um compilador de Modelos.

  20. XP XNP Key skill programming analysis Rapid delivery increment every 2 weeks complete system in 2 hours Maintenance change code, re-test change model, regenerate Quality assurance repeated test/debug, skilled programmers architecture, automation Human view program code(only) model extracts(various formats) Motto The code is the model The model is the code XP versus XNP(MDD)

  21. O processo básico de transformação

  22. Trasnformações e Mapeamentos

  23. MDA X OO-Method

  24. Modelos OO-Method • Modelo Objeto: Diagrama de Classes: • Classes • Atributos • Precondições e Serviços • Restrições de Integridade • Relacionamento entre as Classes • Associação, Agregação e Composição • Herança • Agentes • Modelo Dinâmico: • Diagrama de Transição de Estado – Ciclo de vida dos objetos • Diagrama de Interação de Objeto - Especifica as interações válidas entre os objetos através das transações, operações e gatilhos

  25. Modelos OO-Method • Modelo Funcional O modelo funcional especifica os aspectos funcionais do sistema através de: • Descrição de como a execução dos eventos mudam o valor dos atributos das classes. • Acesso a dados de acordo com o Modelo Objeto • Definição de lógica seqüencial, Manipulação de classes, objetos e relacionamentos • Uso de operadores lógicos, aritméticos • Modelo de Apresentação O modelo da apresentação especifica os requisitos de Interface de Usuário, modelando uma interface abstrata que é independente de plataforma ou dispositivo.

  26. Modelo de Apresentação

  27. OLIVANOVA • OO-Method é implementado através do produto OlivaNova da Care Technologies, composto de duas ferramentas: • O modelador que permite: • Modelar objetos e negócios; • Modelar dados; • Modelar integração; • Modelar sistemas legados; • Modelar regras e limitações; • Definir conceitualmente interfaces do usuário; • A máquina de transformação que implementa todo o processo de compilação de modelos do OO-Method, gerando código fonte na plataforma de destino.

  28. OLIVANOVA x Outras Ferramentas MDD

  29. AndroMDA • Ferramenta MDA Open Source (www.andromda.org/ ) • Está desenvolvida sobre Eclipse. • Suporta arquiteturas como Spring, EJB, .Net, Hibernate, Struts, WebServices. • É possível gerar componentes para qualquer linguagem: Java, .Net, HTML, PHP, C++, etc • Pode ser utilizada pelos servidores de aplicação Jboss e TomCat. • suporta UML2.0.

  30. AndroMDA • Cartuchos: São Plugins que AndroMDA utiliza para fazer a transformação de um modelo PIM > PSM em várias plataformas diferentes . - Para cada plataforma(tecnologia) PSM alvo é necessário o desenvolvimento de um cartucho que basicamente consiste na criação de um UML Profile . • A ferramenta de melhor aceitação para modelar em UML e fazer a importação do metamodelo UML em XMI é a MagicDraw. Porém outras ferramentas podem ser utilizadas: Poseidon UML, Argo UML, Jude UML, Visual UML, etc. • Versão 4.0 (Preview) do AndroMDA • permite a criação e utilização de metamodelos no padrão EMF (Eclipse Model Framework) , possibilitando transformação de modelos PIM( não apenas UML) para modelos PSM , além de geração de código fonte. • ATL ( Atlas Transformation Language) – Linguagem para transformações modelo-modelo (similar a QVT ) • MOFScript para transformações model-text. • OpenMDX( www.openmdx.org): principal concorrente open source do AndroMDA

  31. Lições Aprendidas na adoção de soluções MDA • Muitas organizações que, nos últimos anos, vêm utilizando com sucesso soluções MDA, perceberam que um conjunto de práticas e passos consistentes devem ser levados em conta em se adotar um processo MDD automatizado: • Examinar os modelos atualmente usados na empresa no seu processo de desenvolvimento e a conexão/correlação semântica entre os elementos desses modelos. • Identificar as transformações candidatas para automação • Especificar (documentar) os requisitos dessas transformações • Criar os UML Profiles necessários • Desenvolver o código da(s)s transformação(coes) • Esboçar documentos de uso, empacotar e distribuir

  32. O Programa FastStart da OMG • Recentemente, o grupo OMG lançou o programa “FastStart” para ajudar as organizações aprenderem sobre MDA e aplicar MDA nas arquiteturas de seus sistemas, na integração dos sistemas e nos seus processos de desenvolvimento de software. • Durante programa FastStart , a organização recebe consultores da OMG para realizarem as seguintes atividades: • Análise inicial MDA • Revisão da Arquitetura Empresarial MDA • Plano de Transição MDA • Seminários Executivos MDA • Prática MDA • Essas atividades geralmente duram 5 semanas e visam capacitar a empresa em MDA para que ela própria, sem ajuda de provedores externos, desenvolva seu processo MDA/MDD

  33. Problemas e Desafios dos Processos MDD • Suporte a modelos orientados a “goals”, negócios, agentes e aspectos. • Elevação dos níveis de abstrações dos modelos • Melhor precisão semântica dos modelos em relação às características estáticas, dinâmicas e de apresentação (interação-usuário) dos sistemas; • Melhores mapeamentos entre os modelos; • Melhor transformação automática de modelos (automação); • Melhor suporte à Validação de Modelos; • Melhor integração com as plataformas específicas (PSM); • Melhor e maior percentagem de código fonte gerado; • Melhor suporte à rastreabilidade; • Melhor suporte à engenharia reversa • Suporte à computação autonômica • Melhor Suporte a Testes Dirigido a Modelos • Suporte a requisitos não-funcionais

  34. Considerações Finais • O Processo MDD ainda está na sua infância • Nem as linguagens (modelos) e nem as ferramentas se desenvolveram o suficiente para concretizar todas as suas promessas feitas. • O processo MDA, padronizado pela OMG, é apenas uma referência e pode suportar qualquer outro processo específico de desenvolvimento de software existente (RUP, XP, OPEN, Agentes, Aspectos, Formais, etc.) desde que se adapte e seja dado um foco especial em modelos e suas transformações. • Especialistas em Engenharia de Software e a própria OMG, apostam que MDD/MDA será o processo mais utilizado pelas Empresas nos próximos anos (futuro).

  35. FIM

More Related