Model Driven Architecture

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Raphael Gatti Thomás Bryan
UML Modelando um sistema.
Engenharia de Software
Engenharia de Software
Rational Unified Process(RUP)
Engenharia de Software Professor Sandro de Paiva Carvalho.
FACULDADE DOS GUARARAPES
Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 28 de outubro.
Projeto de Sistemas de Software
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Component-Based Frameworks for E-Commerce Agnaldo Kiyoshi Noda.
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
Introdução Visão Geral do Método.
Gerencia de Projeto OO Aspectos Avançados em Engenharia de Software Aula 5 Fernanda Campos DCC/UFJF.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Classes e objetos Modelagem
Engenharia de Software e Sistemas de Informação e Gestão
RUPinho Qualidade de Software
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Visão Geral PRO.NET.
Fundamentos de Engenharia de SW
Universidade Federal de Lavras - UFLA
Projeto de Sistemas de Software
Fase de Elaboração: Fluxo de Requisitos
Análise e Projeto de Sistemas
Metolodogia de Desenvolvimento de Data Warehouse
Abertura.
Rapid Application Development (RAD)
Análise e Projeto de Sistemas
O Processo de desenvolvimento de software
A abordagem de banco de dados para gerenciamento de dados
Bruno Silva Desenvolvido a partir de
O Processo Unificado (UP)
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Desenvolvimento de Frameworks e Componentes Baseados em Metadados Eduardo Guerra.
Nome(s): Crislaine da Silva Tripoli Luis Antonio Tavares
RUP - Cap. 4 – Processo Centrado na Arquitetura
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Padrões de Interação com o Usuário
Ferramentas de Suporte a MDD: Um Quadro Comparativo
Integração de Ferramentas CASE
Desenvolvimento de Software Dirigido a Modelos
UML e a Ferramenta Astah
Caso de Sucesso: Lockheed Martin Aeronautics  Usou MDA para desenvolver o software de missão modular do F-16. Objetivo:  Obter compatibilidade cross-platform;
Automação Comercial Faculdade Estácio Radial Prof. Paulo Alipio Alves de Oliveira 2010.
LINQ e Entity Framework
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Engenharia de Software
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Desenvolvimento Global de Software
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Análise e Projeto de Sistemas
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Aula 02 de Eng. de Requisitos
Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 2 Professor: Italo Rodrigues Castro.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
MDA na Prática Flávia Durans Pitta Marinho
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
IF718 Análise e Projeto de Sistemas Augusto Sampaio - acas Vitor Braga - vtb (Estágio docência) Diogo Peixoto - dcp (Monitor) Parte do material.
Transcrição da apresentação:

Model Driven Architecture MSOO 2008.2

Cenário atual do desenvolvimento de software Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos cada vez mais agressivos com redução do ciclo de desenvolvimento e aumento de produtividade. Interoperabilidade: Intergração de Sistemas Distribuídos e Heterogêneos Evolução Rápida da Tecnologia da Computação Qualidade: As soluções devem possuir um nível de qualidade cada vezmais elevado para atender as expectativas Redução de Custos

Conseqüências do cenário atual do desenvolvimento de software

O que fazer? Como nós podemos construir e integrar aplicações de modo eficiente? Chave para gerenciar a complexidade das aplicação atuais: Padrões de Projeto Frameworks (Infraestruturas) Desenvolvimento Baseado em Componentes (DBC) MDA Pontos Chave: Reutilização de artefatos de software Facilitar a manutenção e evolução Integração Qualidade

Construção de uma aplicação

Padrões de projeto - Motivação O simples uso da OO não garante que obtenhamos sistemas confiáveis, robustos, extensíveis e reutilizáveis. O foco das metodologias de desenvolvimento está na solução em si (o que e como) e não em suas justificativas (porque). É difícil compartilhar a experiência entre experts e novatos. Aumentar o nível de reutilização

Padrões de projeto - Benefícios Padrões capturam soluções recorrentes e as nomeiam o Projeto e comunicação em um nível alto de abstração Permitem compartilhar experiências bem sucedidas na resolução de problemas recorrentes; Compõem um vocabulário de alto nível para discussão de questões relativas ao projeto de sistemas de software; Permitem que os desenvolvedores concentrem seus esforços nos aspectos relacionados ao negócio.

Infraestruturas Sub-sistema semi-acabado feitos para serem estendidos Voltados para domínios particulares em termos de conceitos específicos ‘Projeto’ + ‘Código’ Projeto Pelo congelamento de certas decisões de projeto Código Pelo conjunto de classes abstratas e suas implementações padrão

Infraestruturas - Benefícios Significante acréscimo de produtividade para aplicações específicas Reutilização Otimização de utilização de recursos Programadores experientes Desenvolvimento de frameworks Programadores novatos Fazem aplicativos a partir dos frameworks Impõe um processo de desenvolvimento Decisões de projeto embutidas nos frameworks

Problema de Infraestruturas Complexidade de desenvolvimento

Afinal o que é MDA? Infraestrutura para desenvolvimento de software definido pela OMG Diferencial está no fato do desenvolvimento ser baseadonas atividades de modelagem Forma de desvincular a arquitetura do sistema da sua implementação. Separação entre a especificação das operações do sistema e os detalhes das funcionalidades de uma plataforma específica.

Ciclo tradicional No ciclo de desenvolvimento tradicional há, de maneira geral, as fases: Levantamento de requisitos, análise, design, codificação, testes e implementação Geralmente, no final de um projeto, a aplicação desenvolvida nem sempre reflete as definições da fase de análise e design Existem alterações que são feitas apenas na codificação Isto se deve ao fato de muitas vezes não haver uma ferramenta automatizada e integrada para acompanhar todo o ciclo e facilitar a análise de impacto de uma alteração Em cada fase são produzidos textos e documentos estáticos Não possuem nenhum recurso de atualização de modo automático das alterações ou melhorias realizadas nas fases anteriores A produtividade cai durante o ciclo de desenvolvimento, principalmente no momento da manutenção da aplicação

Ambiente de desenvolvimento que utiliza MDA As fase não diferem muito A grande diferença está nos artefatos/documentos gerados durante o processo de desenvolvimento Esses documentos são modelos que podem ser "entendidos pelos computadores" Estas informações não são estáticas e possuem uma ligação com a sua fonte Se uma alteração for definida em uma etapa, as demais etapas automaticamente receberão a referida alteração

Modelos principais CIM (Modelo Independente de Computação) PIM (Modelo Independente de Plataforma) Representa a futura aplicação independentemente da implementação tecnológica Não há a preucupação se o código gerado será Java ou C++, se a base de dados será Oracle ou DB2 Modelagem do negócio PSM (Modelo Específico de Plataforma) Modelo voltado para a tecnologia que será utilizada para gerar o sistema O PIM é transformado em um ou mais PSM´s Código (Modelo de Código) Passo final no desenvolvimento que envolve a transformação de cada PSM em código

Transformações

Benefícios de utilizar MDA Produtividade Maior prioridade ao PIM Maior produtivade pois o desenvolvedor não precisará se preocupar com detalhes da implementação Maior atenção aos problemas de negócio que a aplicação precisa resolver Portabilidade O PIM pode ser gerado para vários PSM´s Interoperabilidade Os PSM´s devem se comunicar Manutenção e Documentação Do custo total de uma aplicação, 20% está relacionado ao desenvolvimento e 80% a manutenção Não adianta gerar código, a ferramenta deve ajudar quando houver a necessidade de mudança "Andar sobre a água e desenvolver software a partir de uma especificação são fáceis se ambos estão congelados!" Uma boa ferramenta deve manter a sincronia entre os modelos Alto nível de abstração (Revolução MDA)

UML Profiles (1) Stereótipos Exemplo Representados com << > > Exemplo Book é uma classe stereótipo herda de classe UML Book é uma entidade Possui uma representação no banco de dados Entity é um novo construtor Herda de classe UML Objetos livres podem ser persistidos Exemplo: tabela livro

UML Profiles (2) Stereótipos/Tagged Values Exemplo Interpretados por geradores de código Exemplo Gerador de modelo para EJB Stereótipo entity objetos persistentes ~ Entity Beans Stereótipo PK Marca atributos como Primary Key

UML Profiles (3)

Ferramentas

AndroMDA Open-source: http://team.andromda.org Suporta XMI, OCL EJB, Hibernate, Spring, XML Schema, Java, Struts, OCL translations/queries

Estudo de Caso Em junho de 2003, EDS publicou um estudo de caso com o título "Driving business agility with Model Driven Architecture" O objetivo era avaliar de que forma a MDA pode acelar o desenvolvimento O estudo utilizou a aplicação "Pet Store" desenvolvida pela Sun utilizada para demonstrar padrões de projeto A Pet Store é uma típica aplicação de e-commerce Vários fornecedores de servidores de aplicação a utilizam para ilustrar a compatibilidade de seus produtos com a arquitetura J2EE O estudo foi realizado comparando: Aplicação gerada manualmente (J2EE Pet Store) Versão da Microsoft com a mesma funcionalidade (.Net Pet Shop) Versão gerada com MDA (J2EE Pet Store utilizando OptimalJ)

Gráfico comparativo O gráfico mostra que MDA permite desenvolver aplicações complexas com um esforço manual muito menor Para cada 200 linhas de código JAVA geradas automaticamente foram escritas de 1 a 4 linhas de código manualmente

Conclusões do estudo Quanto maior e mais complexo o projeto, mais evidentes ficam os ganhos na aplicação do MDA A experiência com modelagem UML é fundamental MDA deve ser adotado desde o início do projeto

O futuro Toda quebra de paradigma causa polêmica Toda evolução vem acompanhada de ceticismo Ao mesmo tempo, esse processo exige uma reavaliação se o que fizemos e como fazemos pode ser melhorado Quando olhamos por esse ângulo, vemos que estamos evoluindo As empresas querem se concentrar no seu negócio e querem que a tecnologia seja uma ferramenta Nós queremos fazer as melhores aplicações e da melhor forma O código é importante, mas ele é o resultado de uma transformação O código é uma tradução de negócio para determinado ambiente computacional Toda inteligência está no PIM No futuro, não teremos que nos preocupar com a codificação de uma aplicação Teremos ferramentas capazes de gerar o código quase na sua totalidade

MDA e outras abordagens Linha de Produtos de Software Variabilidade Desenvolvimento Baseado em Componentes Programação Orientada a Aspectos Fábricas de Software Linguagem Específica de Domínio Programa Generativo Web Semântica Ontologias etc

Conclusões Modelo não serve somente para documentação, mas têm papel fundamental na implementação. Integração e Interoperabilidade como palavras chave da MDA. Redução de prazo e custos no desenvolvimento de novas aplicações Necessidade de codificação manual reduzida MDA acelera o ciclo de desenvolvimento de aplicações e padroniza o processo de desenvolvimento MDA também aumenta o nível de reuso nos projetos de desenvolvimento. Ela permite que a solução evolua independentemente das tecnologias envolvidas na implementação Com o MDA, a documentação do projeto, ou seja, os modelos UML têm maior valor, porque agora o modelo não serve apenas para documentar, e sim para a geração do próprio sistema As ferramentas não estão totalmente maduras, porém já podem ser utilizadas. Com a evolução das ferramentas, a tendência é que no futuro MDA seja altamente utilizado no desenvolvimento de sistemas de informação MDA ou XP? A convivência entre os dois é possível?