27
MSOO 2008.2

MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

Embed Size (px)

Citation preview

Page 1: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

MSOO 2008.2

Page 2: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 3: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos
Page 4: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 5: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos
Page 6: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 7: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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.

Page 8: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 9: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 10: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

Complexidade de desenvolvimento

Page 11: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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.

Page 12: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 13: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 14: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 15: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos
Page 16: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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)

Page 17: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

Stereótipos◦ 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

Page 18: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

Stereótipos/Tagged Values◦ 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

Page 19: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos
Page 20: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos
Page 21: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

Open-source: http://team.andromda.org

Suporta XMI, OCL

EJB, Hibernate, Spring, XML Schema, Java, Struts, OCL translations/queries

Page 22: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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)

Page 23: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 24: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 25: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 26: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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

Page 27: MSOO 2008.2. Flexibilidade: Regras de Negócios Dinâmicas Customização de Aplicações pelos Usuários Finais Agilidade: As soluções devem atender a prazos

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?