Desenvolvimento de Aplicações



Documentos relacionados
Unified Modeling Language. Diagramas de Implementação

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Resolvendo objeto-relacional impedance mismatch com hibernate

Workflow Management Systems

Especificação Operacional.

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Micro Mídia Informática Fevereiro/2009

Transformando Modelos da MDA com o apoio de Componentes de Software

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

4.1. UML Diagramas de casos de uso

MDA - resumo (OMG - Model Driven Architecture) Prof. Rossano Pablo Pinto Março/2012 v0.1 Março/2013 v0.2. Rossano Pablo Pinto - março/2013 1

Modelagem de Sistemas

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

1/26/2009. Baseadas em Experiência pessoal/profissional/acadêmica

Formação Inicial em Programação. Sobre o curso. Destinatários. Programação e Bases de Dados. Nível: Iniciado Duração: 217h

2 Engenharia de Software

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

Desenvolvimento de Sistemas BPMS. Jhonatas Vicente de Jesus

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Descrição geral do Android

Gestão de projectos na Web

Administração de Sistemas (ASIST)

Análise e Projeto Orientados a Objeto

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*

Descrição de Arquitectura e Design. SyncMasters

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Uma visão mais clara da UML Sumário

Sistemas de Ficheiros. Sistemas de Bases de Dados

XTDL XML Tool Definition Language

JSP - JavaServer Pages

Transformação de um Modelo de Empresa em Requisitos de Software

Desenvolvimento estruturado versus orientado a objetos.

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Manual de Integração

A interface do Microsoft Visual Studio 2005

PADRÃO PARA MONITORAMENTO DE APLICATIVOS PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Unified Software Development Process

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Como acompanhar a evolução dos aplicativos? Console >> Desktop >> Web >> Mobile >> Cloud. Como aproveitar o melhor de cada programador?

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Padrões de Interação com o Usuário

Manual de Instalação Atendimento 3.4

Transações Seguras em Bancos de Dados (MySQL)

Exemplo de Modelagem Orientada a Objetos

MoreDoc. Guia de Instalação. Edição Community Versão 3.0

Aspectos de Sincronização em Modelos UML. Resumo

ARQUITECTURAS DE SOFTWARE

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

Orientações para a descrição arquivística (ODA):

Modelagem UML com. Marcio Junior Vieira Ambiente Livre - Marcio Junior Vieira

DIAGRAMA DE ATIVIDADES

Qualidades. Atributos de Qualidade. Atributos de Qualidade. Categorias de Qualidades. Arquitecturas de Software

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

A engenharia de software avança por padrões

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

UNIDADE III JAVA SERVER PAGES

DESENVOLVENDO O SISTEMA

Armazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional

EA080- Laboratório de Redes de Computadores Laboratório 2 Virtualização (Relatório Individual) Prof. Responsável: Mauricio Ferreira Magalhães

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

Nesta seção apresentamos protótipos que desenvolvemos com o objetivo de levantar os requesitos necessários para um sistema para apresentações

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação

Trabalho Prático Nº1 Introdução ao C#.NET

OCL: Object Constraint Language

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Modelagem UML com Software Livre. Palestrante: Marcio Junior Vieira

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Criar uma aplicação JPA2 com EclipseLink e H2

Diagramas de Casos de Uso

Ricardo Pereira e Silva UML 2. Modelagem Orientada a Objetos. Visual. Books

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Lógica de Negócio e Acesso a dados. Parte 2.2

MODELAGEM DE PROCESSOS USANDO BPMN (BUSINESS PROCESS MODEL AND NOTATION) E IOT (INTERNET DAS COISAS)

Análise de Programação

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Linguagem de Modelagem Unificada

Tutorial 1 o projeto em VB.net

O sistema SCS 34. getreceptaclesbyname(in NameList names): Obtém uma lista de descritores

Guia de utilização da notação BPMN

Desenvolvimento Web TCC Turma A-1

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Transcrição:

FV-RAD (Field Values) A Practical Framework for Rapid Application Development Luís Filipe Ferreira 28 de Abril de 2008 Desenvolvimento de Aplicações User Interface - Console - Forms - Web - Mobile UI Logic Domain Logic Persistence Logic Application Logic -.Net (C#, VB.Net,..) - J2EE (JAVA) - Imperative - Object Oriented - Functional - Declarative Persistence -Transactional Database (Open, Commit / Rollback, Close) - Object Relational Mapping framework (Telerik, Hibernate, etc.) - File Oriented (Load, Save) 2

Importância dos Modelos User Interface Master Plan Application Logic Implementation Model Persistence 3 Importância dos Modelos Implementation = UserTools.BuildApplication( Model, LogicType, UIType, PersistenceType ) Platform = LogicType, UIType, PersistenceType} 4

Importância dos Modelos Resumem uma realidade ou a resolução de um problema Definem um Plano Conceptual Dirigem a implementação de uma solução aplicacional Traduzem opções de Desenho Definem uma linguagem comum para a discussão e entendimento de um problema Sucintos => definem muito com muito pouco Abstractos => independentes da implementação / tecnologia Implementáveis => sintáctica e semanticamente coerentes 5 Utilização dos Modelos Desligada (da Implementação) Executável Executable UML (MDA) UML virtual machines Integrada Design-time Round-Trip engineering MDSD (Model Driven Software Development) MDA (PIMs e PSMs, one size fits all) Microsoft Software Factories Integrada Run-time AOM (Adaptive Object Modelling) 6

Utilização dos Modelos Desligada da Implementação Utilização concentrada no início do projecto (especificação de problema / solução) Descrevem o essencial Intencionalmente incompletos (facilitar actualização) Não há necessidade de manter sincronismo com a implementação Risco de desactualização 7 Executável Utilização dos Modelos UML executável (MDA) Full code generation, interpretado, etc Máquinas Virtuais Pouco trabalho existente neste domínio ( The Architecture of a UML Virtual Machine, OOPSLA 2001) Falta de flexibilidade de baixo nível? (integração com ferramentas de desenvolvimento existentes) 8

Utilização dos Modelos Integrada Design-time Round-Trip engineering O que sincronizar? Abstracção reduzida código sob a forma de modelo (detalhe no modelo) MDSD Elevado nível de abstracção (modelos mais concentrados no problema do que na solução) DSLs Domain Specific Languages Transformação de Modelos e Geração de Código (forward only) Separação entre Arquitectura do Domínio (infra-estrutura da família de software) Desenvolvimento da Aplicação (utilização da infraestrutura) 9 Utilização dos Modelos Integrada Design-time Software Factories (Microsoft) Convergência Model-Driven Development Linhas de produção de software Desenvolvimento orientado a componentes Integração em IDE Industrialização do desenvolvimento de software Uma fábrica de software pode criar nova fábrica de software mais especializada Customização em massa do software 10

Utilização dos Modelos Integrada Run-time (Adaptive Object Modeling) Adaptação do software em runtime a alterações no modelo Meta-dados com estrutura, comportamento e condicionantes de modelo Interpretação de meta-dados em run-time FV-RAD enquadra-se nesta abordagem mas Faz uma aproximação semântica à implementação para facilitar extensibilidade Está mais concentrado na estrutura do que no comportamento Comportamento fornecido por extensibilidade 11 Artefactos de Modelagem Permitem modelar estrutura e comportamento Vários tipos de diagramas (actividades, sequência, fluxo de dados, etc.) Diagramas de Classes / Associações (Entidades e Relacionamentos) Muito utilizados e de grande valor acrescentado FV-RAD baseado nestes diagramas 12

Exemplo de Modelo Company Model 13 FV-RAD - Objectivos Framework que permita integrar o desenho conceptual da aplicação com a sua implementação (model-aware) Demonstrar e testar o modelo de uma aplicação pela produção rápida / automática de protótipos executáveis Ferramenta que permita discutir e validar o impacto das decisões que afectam o desenho da aplicação Aumentar inteligência dos interfaces com utilizador (model-aware) 14

FV-RAD - Características É um framework (Opt.FieldValues) Adaptação dos modelos de classes do UML Fornece interfaces para a definição de meta-dados Dá uma implementação base desses interfaces Permite a definição do modelo baseada nos metadados Interpreta e executa em run-time esse modelo Permite criar extensões ao modelo na ferramenta de desenvolvimento 15 FV-RAD - Arquitectura Interfaces para Meta-dados Implementação de base dos interfaces Definição e Interpretação de modelos (extensão e execução) Automatismos UI baseados em meta-dados Protótipos e automatismos baseados no modelo 16

FV-RAD - Arquitectura UI PROTOTYPING (Opt.FieldValues.Gui) MODEL INTERPRETATION (Opt.FieldValues.Changes) META-DATA BASE IMPLEMENTATION (Opt.FieldValues.Base) META-DATA BASED UI (Opt.FieldValues.Gui.Base) META-DATA INTERFACES (Opt.FieldValues) 17 FV-RAD - Interfaces 18

FV-RAD Data Types 19 FV-RAD Interpretação de Modelo Persistência em Ficheiro (XML) Suporta Herança Gestão do estado dos objectos Transacções Orientadas ao Objecto Integridade Referencial (contagem de referências) Extensível Log de ocorrências Prototipagem e automatismos UI 20

FV-RAD Modelos e Mundos World Model Element Value Meta-Model ElementType Field Element.FVX (XML) Extension World.FVX (XML) 21 FV-RAD Model 22

FV-RAD Data Types FV-RAD Definição e Interpretação de Modelos 23 FV-RAD Casos de Uso Aplicações genéricas Meta-dados Automatismos UI baseados em meta-dados Aplicações persistidas em ficheiro Interpretação de modelo Alguns automatismos UI Protótipos Interpretação de modelo Automação UI completa / parcial 24

Construção de Protótipo Definição de Modelo Implementação de Modelo Extensões ao Modelo Invocação de GUI (executar protótipo) Persistência XML (.FVX) 25 26

Construção de Protótipo public class CompanyModel : DomainModel public CompanyModel() : base("company") // Company Model Definition // Element Types... ElementType employeetype = new ElementType("employee", "Funcionário", "Funcionários"); employeetype.ishometype = true; this.addelementtype(employeetype);... // Fields elemtype = employeetype; elemtype.addfield(new Field("firstName", FT.String(20), "Primeiro Nome")); elemtype.addfield(new Field("lastName", FT.String(20), "Ultimo Nome")); elemtype.addfield(new Field("birthDate", FT.Date(), "", DateTime.Now, "Data Nascimento")); elemtype.addfield(new Field("Name", FT.String(), "p- s- w- k+", "Nome")); elemtype.addfield(new Field("degrees", FT.Collection(degreeType, "c+"), "Habilitações"));... 27 Construção de Protótipo public class CompanyWorld : DomainWorld public CompanyWorld() : base(company.model) } } public override IDomainElement NewElement(IElementType elementtype, string key) switch (elementtype.name) case "department": return new Department(key); case "employee": return new Employee(key); case "degree": return new Degree(key); default: return base.newelement(elementtype, key); } } 28

Construção de Protótipo public override T Get<T>(int fieldindex) object result; if (fieldindex == NameIndex) // "Name" calculation result = FirstName + " " + LastName; } else return base.get<t>(fieldindex); } } return (T)result; public string Name get return this.get<string>(nameindex); } } 29 Demonstração de Protótipo // GUI automation FVPrototype proto = new FVPrototype(); proto.start(company.model); World changes BEGIN. ['department:1' initialized] Created 'department:1 ['department:2' initialized] Created 'department:2' ['department:3' initialized] Created 'department:3' ['employee:1' initialized] Created 'employee:1' ['degree:1' initialized] Created 'degree:1' [Add 'degree:1' to 'employee:1'.degrees] ['degree:1' ref 1] ['degree:2' initialized] Created 'degree:2' [Add 'degree:2' to 'employee:1'.degrees] ['degree:2' ref 1] ['employee:2' initialized] Created 'employee:2' ['degree:3' initialized] Created 'degree:3' [Add 'degree:3' to 'employee:2'.degrees] ['degree:3' ref 1] ['degree:4' initialized] Created 'degree:4' [Add 'degree:4' to 'employee:2'.degrees] ['degree:4' ref 1] ['employee:3' initialized] Created 'employee:3' ['employee:4' initialized] Created 'employee:4' ['employee:5' initialized] Created 'employee:5' ['employee:6' initialized] Created 'employee:6' ['employee:7' initialized] Created 'employee:7' [Set 'department:1'.manager to 'employee:7'] ['employee:7' ref 1] [Add 'employee:6' to 'department:1'.employees] ['employee:6' ref 1] [Add 'employee:7' to 'department:1'.employees] ['employee:7' ref 2] World changes CONFIRM. 30

<?xml version="1.0" encoding="utf-8"?> <company version="1.0.0"> <department key="department:1" name="marketing" manager="employee:7"> <notes>relações públicas e gestão de campanhas.</notes> <employees> <ref key="employee:6" /> <ref key="employee:7" /> Persistência </employees> </department> <department key="department:2" name="operações"> <notes>planeamento da actividade produtiva</notes> <employees /> </department> <department key="department:3" name="comercial"> <notes>planeamento da actividade de vendas</notes> <employees /> </department> <employee key="employee:1" firstname="luís" lastname="ferreira" birthdate="1968-10-16"> <degrees> <degree key="degree:1" designation="engenharia de Sistemas e Informática" degreetype="licenciatura" /> <degree key="degree:2" designation="informática" degreetype="pós-graduação" /> </degrees> </employee> <employee key="employee:2" firstname="fernando" lastname="vieira" birthdate="1971-03-28"> <degrees> <degree key="degree:3" designation="matemática e Ciências da Computação" degreetype="licenciatura" /> <degree key="degree:4" designation="informática" degreetype="pós-graduação" /> </degrees> </employee> <employee key="employee:3" firstname="sara" lastname="silva" birthdate="0001-01-01"> <degrees /> </employee> <employee key="employee:4" firstname="joão" lastname="castro" birthdate="0001-01-01"> <degrees /> </employee> <employee key="employee:5" firstname="sara" lastname="meireles" birthdate="0001-01-01"> <degrees /> </employee> <employee key="employee:6" firstname="lurdes" lastname="ribeiro" birthdate="0001-01-01"> <degrees /> </employee> <employee key="employee:7" firstname="manuela Ribeiro" birthdate="0001-01-01"> <degrees /> </employee> </company> 31 Futuro Implementação explícita de Meta-modelo DSL Visual e persistência de modelos (meta-modelo) Undo / Redo e Transacções OO Multi-nível (UI) Suporte a Associações binárias Suporte a Agregação Campos Únicos e Índices Conversão de modelos (versões) Mais tipos de dados Melhoramentos em automatismos UI (ex: Herança) Outros 32