1 Fábrica de Software com UML Toacy C. Oliveira. 2 Agenda Motivação Contexto UML/MDA Exemplo Prático UML Profile Definições Exemplo Conclusão.

Slides:



Advertisements
Apresentações semelhantes
Model Driven Architecture
Advertisements

Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 2 de setembro.
Engenharia de Software
Raphael Gatti Thomás Bryan
UML Modelando um sistema.
(Unified Modeling Language)
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.
Component-Based Frameworks for E-Commerce Agnaldo Kiyoshi Noda.
Processo Desenvolvimento de Software Tradicional
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)
Introdução Visão Geral do Método.
Gabriel Silva Bornia Prof. Dr. Roberto Tom Price Orientador
Engenharia de Software
Classes e objetos Modelagem
Engenharia de Software e Sistemas de Informação e Gestão
Projetar Serviços Vítor Braga –
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do.
Biblioteca para coleta de dados na plataforma Symbian
Universidade Federal de Lavras - UFLA
Projeto de Sistemas de Software
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
Fase de Elaboração: Fluxo de Requisitos
Desenvolvimento de Sistemas Orientados a Aspectos
Análise e Projeto de Sistemas
Análise e Projeto de Sistemas
Arquitetura do Software
Repositório de Suporte ao Reuso de Software Felipe Roos Joana Trindade.
Bruno Silva Desenvolvido a partir de
O Processo Unificado (UP)
Padrão- MVC Model, View, Controller
RUP - Cap. 4 – Processo Centrado na Arquitetura
Laboratório de Programação
Processos de Software.
Requisitos de Software
Ferramentas de Suporte a MDD: Um Quadro Comparativo
Desenvolvimento de Software Dirigido a Modelos
Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Natanael Maia Ana Paula Blois Cláudia Werner Grupo de Reutilização de Software Outubro/2005.
MDA – Model Driven Architecture Jean Elder – RARCS (2013-1)
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Objetos Distribuídos Frameworks Orientados a Objetos.
Desenvolvimento Global de Software
Unified Modeling Language
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
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.
Processo de Desenvolvimento de Software Dirigida a Modelos e Orientada a Serviços (SOA/MDE) Vítor Braga –
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/38 Análise e Projeto de Sistemas Introdução à Análise e ao Projeto de Software.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
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.
Apresentação Leonardo Brussolo de Paula
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
©2008, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/45 Análise e Projeto de Sistemas Augusto Sampaio Em co-autoria com.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

1 Fábrica de Software com UML Toacy C. Oliveira

2 Agenda Motivação Contexto UML/MDA Exemplo Prático UML Profile Definições Exemplo Conclusão

3 Como SW é feito atualmente? Programação Modelagem Processo de Desenvolvimento

4 Como SW é feito atualmente? Programação Modelagem Processo de Desenvolvimento

5 Como SW é feito atualmente? Programação Modelagem Processo de Desenvolvimento

6 Como SW é feito atualmente? Programação Modelagem Processo de Desenvolvimento

7 Ou seja..... Como a 30/40 anos atrás !!!! Utilizando um batalhão de pessoas.... PESSOAS = PROBLEMAS Têm humor (falta/excesso) Têm família... Antes da reclamação. Eu não quero extinguir programadores... Eles são necessários!!

8 Como melhorar? Que tal expandirmos alguns conceitos já existentes? Industrialização Automação Ex: Alguém escreve código binário hoje em dia? Alguém cria interface (Janelas,Botões,...) do zero?

9 Fábrica Software? A idéia é simples. PADRONIZAÇÃO AUTOMAÇÃO DO PROCESSO DE DESENVOLVIMENTO PRODUÇÃO EM “SÉRIE”

10 Como ? Sistemas devem ser construídos a partir de Padrões, Modelos, Arquiteturas, Frameworks e Ferramentas. Guiado por Processo Baseado em Reuso sistemático Utilizando Linguagens de Domínio Fazendo Transformações

11 Desenvolvimento de Software Mundo VirtualMundo Real Necessidades -Informal -Processos de Negócio -Time to Market -Usabilidade Necessidades -Formal -Manutenibilidade -HW em evolução (Moore) Software Pessoas -Clientes (com dinheiro!!) -Usuários (sem paciência) Pessoas -Desenvolvedores -IT Geeks + Como diminuir a lacuna entre o formal/informal?

12 Poder de Expressão A melhoria do processo de desenvolvimento está fortemente atrelado ao poder de expressão das linguagens de representação de programas. Aumentando seu poder de expressão na direção dos conceitos existentes no mundo real, melhoraremos o processo de desenvolvimento de software.

13 Um Pouco de História ~50 – assembler (código de máquina) ~60 – cobol (linguagem mais próxima da natural) ~70 – C/Pascal (funções, TADs) ~80 – Smaltalk / C++ (Objetos) ~90 – UML (Modelos) ~00 – MDA (Programação Generativa)

14 UML + MDA Duas iniciativas da OMG (Object Management Group) para aumentar o poder de representação/automação utilizado no desenvolvimento de software Padronização (UML) Automação (Transformação)

15 UML

16 UML Linguagem de Modelagem que permite a representação de conceitos do mundo real, sob a ótica da orientação a objetos. Na prática é o padrão adotado por desenvolvedores de software.

17 UML Um modelo em UML pode conter até 9 (v1.5) tipos de diagramas. Classes Atividades Casos de Uso Sequência Estado

18 Caso de Uso

19 Classes

20 Entretanto.... UML não foi idealizada como “silver-bullet”. Existem conceitos difíceis de serem expressos em UML. Ex. Tempo Para solucionar este problema UML prove mecanismos de extensão, os chamados Profiles (ou Perfis).

21 MDA

22 MDA Model Driven Architecture Determina a especificação de sistemas em diferentes nívels de abstração de modo que os modelos mais abstratos possam ser reutilizados para gerar aplicações em diferentes plataformas. Modelo de Sistema de Vendas. NETJ2EE T1T1 T2T2

23April 12, 2015 Diversidade de Plataformas O número crescente de plataformas de execução de SW leva a uma multiplicação de soluções para cada plataforma. Soluções para PDA <> da solução Telefone Celular pois possuem um conjunto de restrições (Requisitos Não Funcionais) diferentes. Memória, Tamanho da Tela, Performance, etc.

24April 12, 2015 Alterações nos Requisitos Mudanças de direcionamento da empresa. Surgimento de um Hardware inovador. Problemas com concorrentes.

25April 12, 2015 As Soluções A solução é desenvolvida tendo em mente estes requisitos. Ex. PDA => CreateWindow (320 x 100) Cell => CreateWindow (200 x 100) PDA => CString Cell => char[50]

26April 12, 2015 Como reusar? Reutilização é um princípio básico das engenharias pois permite uma utilização eficiente do conhecimento adquirido na solução de um problema. Racionaliza e sistematiza esta solução.

27April 12, 2015 Constantes Bem... no nosso caso parece que o uso de constantes pode resolver isto! Ex. PDA ou Cell => CreateWindow (WIND_H x WIN_W) WIND_H e WIND_W estão definidas em um arquivo de constantes separadas por um IFDEF, por exemplo.

28April 12, 2015 Talvez não! A quantidade de tais restrições pode ser grande, levando a criação de um “arquivo de configuração” em separado. O gerenciamento de tais arquivos tende a sem complexo uma vez que estes representam dados desconexos.

29April 12, 2015 E quanto a parte dinâmica? Algumas restrições podem estar relacionadas à dinâmica da execução do sistema.

30April 12, 2015 Reuso de Código Nos já vimos anteriormente que o reuso de código não é tão interessante assim uma vez que não captura a abstração da solução. Seria mais interessante reusarmos Design.

31April 12, 2015 Sempre foi assim ? Sim, mas o contexto era outro pois não existia um fácil acesso a tantos dispositivos com capacidade de processamento relevante.

32April 12, 2015 Evolução From Mellor

33April 12, 2015 Reuso From Mellor

34April 12, 2015 MDA

35April 12, 2015 OMG - MDA From OMG’s site

36April 12, 2015 MDA É melhor compreendida como sendo uma filosofia de desenvolvimento onde modelos são construído abstraindo-se a plataforma de execução e, posteriormente, mapeados para estas. É uma abordagem para a utilização de modelos durante o desenvolvimento de sistemas.

37April 12, 2015 No Silver Bullet Não é uma grande novidade mas trás a tona um conceito que engenheiros de software vêm pregando a décadas. Reutilização, Família de Aplicações, Ferramentas de Suporte ao Desenvolvimento,....

38April 12, 2015 Objetivo Portabilidade Interoperabilidade Reutilização Redução de Custo Aumento da Qualidade

39April 12, 2015 Dirigida por Modelo? Habilita a utilização de modelos para guiar o entendimento, projeto, construção, instalação, operação, manutenção e modificação do SW

40April 12, 2015 Por que modelos ? Representam conceitos de mais alto nível, permitindo a reutilização da abstração. Ex. Plantas Arquitetônicas.

41April 12, 2015 Organização Modelos em MDA podem pertencer a 3 níveis de abstração de acordo com a distância em que se encontra da plataforma de execução.

42April 12, 2015 Big Picture CIM PIM PSM Plataforma PSM Transformação

43April 12, 2015 CIM Computation Independent Model É uma visão do sistema que não apresenta os detalhes computacionais, provavelmente por que são desconhecidos. É utilizado por especialistas no domínio da aplicação.

44April 12, 2015 PIM Platform Independent Model É uma visão do sistema focada na “funcionalidade” de seus elementos, escondendo os detalhes necessários para sua execução em uma determinada plataforma.

45April 12, 2015 PSM Platform Specific Model Representa o PIM levando em consideração uma plataforma.

46 April 12, 2015 Plataforma? É o ambiente alvo onde que contém a máquina de execução. Pode ser um framework, uma máquina virtual ou o HW.

47April 12, 2015 Transformação São responsáveis pelo mapeamento dos conceitos presentes em camadas distintas no MDA. Relação x Mapeamento Manual x Automática

48April 12, 2015 Um Exemplo AndroMDA MDWorkBench MDArte

49 UML + MDA =>Fábrica de Software Um Exemplo

50 Lembrando, para ser fábrica... Sistemas devem ser construídos a partir de Padrões, Modelos, Arquiteturas, Frameworks e Ferramentas. Guiado por Processo Baseado em Reuso sistemático Utilizando Linguagens de Domínio Fazendo Transformações

51 Sistema Bancário (Requistos) Autorizar saque Sacar dinheiro pelo caixa > Caixa Gerente Cliente Liberar Talão

52 Sistema Bancário (Projeto) Conta Talao Saque

53 Sistema Bancário Há um requisito adicional: É necessário ter um controle de acesso no sistema, ou seja, funcionalidades devem ser mapeadas para tipos de usuários com login/senha.

54 Desenvolver vs Reusar Existem diversas implementações prontas de Sistemas de Acesso É decidido pela reutilização de um componente (framework) que provê os mecanismo de acesso requerido. Usuários têm login/senha. Usuários têm permissões.

55 Ooopss... No framework adotado não há o conceito de cliente/caixa.... Só de Usuário do Sistema. E usuário Administrador No Sistema Bancário não há o conceito de Usuário/Administrador!!!

56 Solução Podemos fazer marcações no Diagrama de Caso de Uso para identificar quais atores são candidatos a usuários/administradores. Estas marcações podem guiar um gerador de código para a “cola” entre o modelo do framework e o modelo do sistema. As marcações fazem parte de um Profile para o domínio de Controle de Acesso.

57 Marcações !!!! Guiar Gerador de Código !!! Já falo nisso

58 Solução Autorizar saque Sacar dinheiro pelo caixa > Caixa > Gerente > Cliente Liberar Talão

59 e ainda através de um gerador.... Conta Talao Saque ClienteCaixaGerente LiberarTalao() Framework de Acesso Código Gerado pelo transformador Adm Usu

60 Profile UML MARCAÇÕES

61 O que é um UML Profile? É um conjunto Stereotypes, TaggedValues, Constraints e ícones que estendem UML de modo a expressar os conceitos de um domínio específico (linguagem do domínio). Facilita a representação de novos conceitos em um modelo UML através de marcações nos elementos de design.

62 Em UML profiles são...

63 Stereotypes Um estereótipo define como um elemento de modelo pode ser estendido.

64 Uso

65 Tagged-Values São propriedades atreladas aos estereótipos que permitem o refinamento de um determinado conceito. Ex : Resolution from the previous example

66 Uso A classe StopWatch é um tipo de Clock com with resolução igual a 2.

67 Constraints Definem regras de boa formação para os conceitos presentes em um profile. São especificadas por uma descrição em linguagem natural acompanhada (opcionalmente) por uma restrição formal em OCL. OCL = Object Constraint Language

68 Uso Um estereótipo só pode especializar outro estereótipo generalization.general->forAll(e | e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) Os nomes dos estereótipos não podem conflitar com os existentes no metamodelo.

69 Table Profile

70 Transformação / Automação

71 XMI XMI é uma representação em XML de modelos UML. Pode ser manipulado por programas para gerar... Outro arquivo XMI (Modelo) Código

72 Juntando as idéias (desenvolvedor aplicação) Levantamento do Sistema Definição dos Componentes a serem reutilizados Marcação dos Artefatos (Diagramas UML) Geração de Código/Modelo PADRONIZAÇÃO AUTOMAÇÃO DO PROCESSO DE DESENVOLVIMENTO (XMI+XSLT,JAVA,RDL) PRODUÇÃO EM “SÉRIE” UML

73 Juntando as idéias (desenvolvedor framework) Especificação de um Domínio Definição dos Componentes a serem reutilizados Definição do Profile UML Criação do Gerador de Código PADRONIZAÇÃO UML

74 Resumindo

75 Alguns dados interessantes Estudo da EDS mostra que MDA pode gerar até 80% da aplicação final O ThalesGroup utiliza a abordagem Fabrica de Software com redução de até 70% no tempo de desenvolvomento /Papers/Langlois.pdf

76 Perguntas ?