1 / 74

Fábrica de Software com UML

Fábrica de Software com UML. Toacy C. Oliveira. Agenda. Motivação Contexto UML/MDA Exemplo Prático UML Profile Definições Exemplo Conclusão. Como SW é feito atualmente?. Processo de Desenvolvimento. Programação. Modelagem. Como SW é feito atualmente?. Processo de Desenvolvimento.

shanae
Download Presentation

Fábrica de Software com UML

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. 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? Processo de Desenvolvimento Programação Modelagem

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

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

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

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

  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 T1 T2 . NET J2EE

  23. 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.

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

  25. 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]

  26. 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.

  27. 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.

  28. 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.

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

  30. 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.

  31. 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.

  32. Evolução From Mellor

  33. Reuso From Mellor

  34. MDA

  35. OMG - MDA From OMG’s site

  36. 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.

  37. 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,....

  38. Objetivo • Portabilidade • Interoperabilidade • Reutilização • Redução de Custo • Aumento da Qualidade

  39. 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

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

  41. 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.

  42. Big Picture CIM PIM Transformação Transformação PSM PSM Plataforma Plataforma

  43. 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.

  44. 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.

  45. PSM • Platform Specific Model • Representa o PIM levando em consideração uma plataforma.

  46. 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.

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

  48. 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

More Related