WebMedia 2009 Minicurso 3 Parte 3: Modelagem Parte 3 MODELAGEM 1
|
|
- Ana Vitória Carvalho Palhares
- 7 Há anos
- Visualizações:
Transcrição
1 Parte 3 MODELAGEM 1
2 Antes, uma pergunta Onde fica a rua do porto? Siga reto nessa rua mesmo, depois vire à direita no semáforo. Passe um posto de gasolina, é a terceira rua! 2
3 Outra pergunta Quais as forças que atuam sobre a asa de uma nova aeronave sendo projetada? 3
4 Mais uma... Como ficará a ocupação urbana da capital Xangai em 2020? 4
5 Essa agora... Pedro tem dois irmãos Daqui a cinco anos, o mais novo terá a metade da idade de Pedro Daqui a dez anos, o mais velho terá o triplo da idade do mais novo Quantos anos tem Pedro e os irmãos? 5
6 O que existe em comum entre estas perguntas? O uso de modelos pode ajudar a respondê-las Modelos abstraem detalhes Modelos representam conceitos Modelos possuem informação útil Modelos são fáceis de compreender Outras propriedades... 6
7 maps.google.com 7
8 8
9 9
10 Idade de Pedro hoje = x Idade do irmão mais novo hoje = y Idade do irmão mais velho hoje = z Sistema y+5 = (x+5)/2 z+10 = (y+10)*3 10
11 E no desenvolvimento de software? Modelo de Classes Modelo de interface Requisitos Rabiscos Modelo de Dados Modelo de Casos de Uso Modelo de Componentes 11
12 Definição do OMG Um modelo de um sistema é uma descriçãoou especificação daquele sistema e seu ambiente, para um determinado propósito. Um modelo é frequentemente apresentado como uma combinaçãode desenhos e texto. O texto pode ser em uma linguagem de modelagem ou uma linguagem natural. 12
13 Porém, para o MDD Modelos devem servir de entradapara geradores, transformadores, etc... Portanto, precisam ser automaticamente intepretáveis Por uma máquina Capacidade cognitiva limitada Devem ser Estruturados Formalmente definidos Sintaticamente corretos Completos Não ambíguos... 13
14 Exemplo Calculadora Software que entende um modelo interpretador / analisador Realiza ações Some 56 com treze, 56 e depois quarenta e +13 cinco. Do total, subtraia cinquenta +45 e sete. Tudo isso -57 vezes meia-meia. *66 14
15 Resumindo Preciso de: Um formato que o computador entenda Um analisador Conceito de LINGUAGEM Linguagem natural Ainda está distante... 15
16 Elementos de uma linguagem Sintaxe concreta Palavras, caracteres, espaços Quadrados, círculos, linhas, ícones Sintaxe abstrata Representação interna Independe da sintaxe concreta Semântica Significado dos conceitos Para que serve? Em qual contexto? 16
17 LINGUAGENS TEXTUAIS E LINGUAGENS VISUAIS 17
18 Linguagens textuais Dentro da ciência da computação Compiladores Linguagens Autômatos 18
19 Linguagens textuais Objeto Objeto o ( Tamanho (3,4,2) Peso 20kg ) Tamanho Alavanca Peso Força Pessoa p ( Idade 20 ) Comprimento Ponto de apoio Pessoa Idade 19
20 Linguagens textuais Objeto o ( Tamanho (3,4,2) Peso 20kg ) Pessoa p ( Altura 1,80 ) public class Objeto { int larg, alt, prof; float peso; } public class pessoa { int altura; } 2 Tarefa impossível! São necessárias: -3 pessoas(> 1,70) -6 alavancas(> 5.5m) 3 20kg
21 Linguagens textuais AST Parsing Ações semânticas Objeto o ( Tamanho (3,4,2) Peso 20kg ) Pessoa p ( Altura 1,80 ) Geração de código Execução canônica Cálculos 21
22 Sintaxe abstrata É comum utilizar um modelo Orientado a Objetos Metamodelo A informação fica mais fácil de ser consultada Referências são automaticamente mantidas 22
23 Sintaxe abstrata OO public class Endereco { String rua; int numero; } Pessoa nome:string public class Pessoa { String nome; Endereco enderecoresidencial; Endereco enderecoprofissional; } Endereco rua:string numero:int enderecoprofissional enderecoresidencial 23
24 Sintaxe abstrata OO public class Pessoa { String nome; Endereco enderecoresidencial; Endereco enderecoprofissional; } public class Endereco { String rua; int numero; } Pessoa nome:string enderecoprofissional Endereco rua:string numero:int?? enderecoresidencial 24
25 Sintaxe concreta Programas Sentenças Palavras Caracteres Regras Léxicas Sintáticas 25
26 Nos primórdios Parsers precisavam ser implementados à mão Tabela de símbolos Máquina de estados Otimizações Obs: para linguagens complexas, ainda é necessário 26
27 Depois Compiler Compiler Ou geradores de compiladores Parser generators YACC, ANTLR,... Regras (léxica + sintática) CC Código Parser 27
28 Atualmente Ferramentas para Modelagem Textual Parser + Metamodelo Eclipse TCS Textual Concrete Syntax Xtext(OpenArchitectureWare Eclipse TMF) Código Regras (léxica + sintática) CC API metamodelo Parser 28
29 Atualmente Facilita a construção de interpretadores Maior flexibilidade Poder computacional Facilidade de manutenção Mudanças nas regras são propagadas para o parsere metamodelo 29
30 Outra opção XML (extensible Markup Language) SAX Simple API for XML À base de eventos Árvore é percorrida e eventos são disparados quando elementos são encontrados DOM Document Object Model Modelo OOdo documento 30
31 XML como linguagem de modelagem Vantagens Parsers já existem! Permite a checagem de metadados XMLSchema / DTD Consulta facilitada (XPath) Desvantagens Baixa legibilidade Prejudica seu poder expressivo Ainda é uma árvore! 31
32 Linguagens textuais São boas para modelos hierárquicos(árvore) Classes, Tabelas, Objetos, Atributos, etc São boas para aspectos de algoritmos Sequência de passos, comandos Expressões regulares Funcionam bem com sistemas de controle de versões (CVS, SVN,...) 32
33 Linguagens textuais Demonstração Exemplo 1 33
34 Linguagens visuais Para as linguagens que são naturalmente grafos Modelos estruturais(arquiteturas, topologias, etc) Diagramas blocos e setas Orientação a Objetos Entidade-Relacionamento Muitos outros Sintaxe abstrata orientada a objetos 34
35 Linguagens visuais 35
36 Linguagens visuais Sintaxe Abstrata Concreta Sintaxe abstrata Modelo orientado a objetos Estrutura dos modelos (classes, relacionamentos, herança, atributos,...) MetaModelo 36
37 atributos 1 ClasseUML nome:string lados 1 AssociaçãoUML nome:string 1 AtributoUML nome:string tipo:string * participante * 2 LadoAssociaçãoUML multiplicidade: String AgregaçãoUML referencia:boolean Cliente:ClasseUML nome:string string fone:string 1 comprador * produto 1 * Compra:ClasseUML data:date Produto:ClasseUML nome:string fabricante:string preço:currency * depto 1 Departamento:ClasseUML nome:string obj1:cliente nome = João =joao@ .com fone= /03/2008 obj2:cliente nome = Pedro =pedro@bol.com fone= obj3:produto nome = Secadora fabricante = Brastemp preço = R$ 2600,00 depto = Eletrodomésticos obj4:departamento nome = Eletrodomésticos 37
38 atributos 1 ClasseUML nome:string lados 1 AssociaçãoUML nome:string AtributoUML nome:string tipo:string * Metamodelo participante 1 * 2 LadoAssociaçãoUML multiplicidade: String AgregaçãoUML referencia:boolean Cliente:ClasseUML nome:string string fone:string 1 comprador * produto 1 Produto:ClasseUML nome:string Modelo fabricante:string preço:currency * * 1 Compra:ClasseUML data:date depto Departamento:ClasseUML nome:string obj1:cliente nome = João 10/03/2008 =joao@ .com obj3:produto fone= nome = Secadora Informação fabricante = Brastemp preço = R$ 2600,00 obj2:cliente depto = Eletrodomésticos obj4:departamento nome = Eletrodomésticos nome = Pedro =pedro@bol.com fone=
39 atributos 1 ClasseUML nome:string Metametadados lados 1 AssociaçãoUML nome:string M2 AtributoUML nome:string tipo:string * participante 1 * 2 LadoAssociaçãoUML multiplicidade: String AgregaçãoUML referencia:boolean Cliente:ClasseUML nome:string string fone:string 1 M1 comprador * produto 1 Produto:ClasseUML nome:string Metadados fabricante:string preço:currency * * 1 Departamento:ClasseUML Compra:ClasseUML data:date nome:string depto obj1:cliente nome = João =joao@ .com fone= M0 10/03/2008 obj2:cliente nome = Pedro =pedro@bol.com fone= obj3:produto nome = Secadora Dados fabricante = Brastemp preço = R$ 2600,00 depto = Eletrodomésticos obj4:departamento nome = Eletrodomésticos 39
40 atributos 1 Entidade nome:string Relacionamento 1 1 Atributo nome:string * participante * Papel cardinalidade: {1,N} 3 papéis Nome Fabricante Nome Cliente Produto 1 N Departamento Nome Tabela Clientes ID Nome 1 João joao@ .com 2 Pedro pedro@ .com Tabela Produtos ID Nome Fabricante DeptoID 1 Secadora Brastemp 1 2 Fogão Dako 2 Tabela Departamentos ID Nome 1 Eletrodomésticos 2 Cozinha Restrição de chave estrangeira Produtos(DeptoID) Departamentos(ID) 40
41 Objeto nome:string tipo * Mensagem ordem:int conteudo:string * * de para Classe nome:string 5: verifica() 4: envia(txt) s:sms 1: new() c:central 3: conecta(nro) :AplicativoMIDP 2: enviatexto( , Mensagem ) public class SMS { public Central c; public void enviatexto(string nro, String txt) { c.conecta(nro); c.envia(txt); c.verifica(); } } public class Central { public void conecta(string nro) {... } public void envia(string txt) {... } public void verifica() {... } } public class AplicativoMIDP { void main{ SMS s = new SMS(); s.enviatexto( , Mensagem ); } } 41
42 Metamodelo Colaboração UML Mensagem ordem:int conteudo:string * * Objeto nome:string de tipo para * Classe nome:string Metamodelo E-R atributos 1 Entidade nome:string Relacionamento 1 1 Atributo nome:string * participante * Papel cardinalidade: {1,N} 3 papéis Metamodelo Classes UML atributos 1 ClasseUML nome:string lados 1 AssociaçãoUML nome:string 1 AtributoUML nome:string tipo:string * participante * 2 LadoAssociaçãoUML multiplicidade: String AgregaçãoUML referencia:boolean 42
43 Metametamodelo M3 M3 Metametamodelo Metametametadados Metametamodelo M2 Metamodelo Metametadados Metamodelo UML Metamodelo E- R M1 Modelo Metadados Modelo de classes Modelo E- R Modelo de colaboração M0 Informação Dados objetos objetos objetos objetos tabelas tabelas tabelas tabelas programas 43
44 Linguagem do Metametamodelo Deve ser ricao bastante para descrever modelos de vários domínios Portanto, deve ser capaz de descrever a si mesma MOF Meta-Object Facility OMG Diagrama classes UML simplificado Ecore Eclipse EMF MOF adaptado para maior eficiência MetaGME MIC Vanderbilt Generic Modeling Environment 44
45 Linguagem visual Sintaxe abstrata Voltada ao computador Metamodelo Sintaxe concreta Voltada ao ser humano Ícones Caixas Linhas Setas Cores... 45
46 Linguagem visual Múltiplas sintaxes concretas Exemplo Diagrama de sequência Diagrama de colaboração 46
47 Interpretação metamodelo OO Atualmente Através de APIs geradas / reflexivas Benefícios da orientação a objetos Métodos Coleções Referências Exemplos Builder Object Network (GME) Originalmente em C++ Existe uma versão em Java Eclipse Modeling Framework (Eclipse Modeling) 47
48 Linguagens visuais Demonstração Exemplo 2 48
49 Recapitulando Visual (estrutura) Analisar a tarefa Linguagem Abstrata Concreta Analisar o domínio do problema Modelo Textual (hierarquia, algoritmo) Gerar código Simular Experimentar Problema Testar Analisar 49
50 Recapitulando o papel dos modelos Especialista do domínio Especialista em TI finanças medicina economia jogos turismo geologia esportes MODELOS componentes classes subrotinas frameworks código máquina padrões objetos bytes bits Problema Solução 50
51 E quanto à UML? Modelagem de software não é sinônimo de UML? É a linguagem mais conhecida Com maior suporte de ferramentas Grande documentação Supre as principais necessidades Análise, casos de uso, negócio, aspectos estáticos e dinâmicos, componentes, implantação... 51
52 Tente representar... Um organograma Um circuito elétrico Um esquema físico de BD Uma GUI Mesmo com perfis Ainda tem pouca capacidade expressiva Fica preso à semântica da UML No contexto do MDD É uma falha grave 52
53 Domínio Domínios técnicos(horizontais): aspectos técnicos comuns a diversas aplicações Distribuição GUI Persistência Domínios funcionais(verticais): aspectos de negócio, organizacionais Bancos Finanças Seguros Aeronáutica 53
54 Hierarquia de domínios Sistemas automotivos Sistemas embarcados Controladores de motor Diesel Gas 54
55 Hierarquia de domínios Sistemas web E-Commerce Aplicações ebusiness E-Banking 55
56 Vários domínios Sistema Persistência GUI Comunicação Transações Segurança E-commerce Web Compras Cartão de crédito Boleto Fórum Showroom 56
57 Escopo da linguagem Sistemas automotivos Linguagens de modelagem de propósito geral GPL General Purpose Language Sistemas embarcados Diesel Controladores de motor Gas Sistemas web E-Commerce Aplicações ebusiness E-Banking 57
58 Linguagens específicas de domínio Focada Em um problema Em uma organização Em um projeto Linguagem pequena, normalmente declarativa, que oferece poder expressivo focado em um domínio de problema em particular Arievan Deursen, Paul Klint, and JoostVisser. Domain-specific languages: An annotated bibliography. SIGPLAN Notices - ACM Press, 35(6):2636,
59 Escopo de um domínio Linguagens de modelagem de propósito geral GPL General Purpose Language Sistemas embarcados Diesel Sistemas automotivos Controladores de motor Gas Linguagens específicas de domínio DSL Domain-Specific Language Sistemas web Aplicações ebusiness E-Commerce E-Banking 59
60 Linguagens específicas de domínio Eficiência Produtividade Dificuldade na implementação Mais genérica (GPL) Especificidade a um domínio Mais específica (DSL) Aplicabilidade (nro. de cenários) Facilidade de utilização (ferramentas prontas) 60
61 Linguagens específicas de domínio Eficiência Produtividade Tecnologia de DSL MDA Ferramentas atuais Dificuldade na implementação Mais genérica (GPL) Especificidade a um domínio Mais específica (DSL) Aplicabilidade (nro. de cenários) Facilidade de utilização (ferramentas prontas) 61
62 Fim da parte 3 Perguntas? Sugestões: Qual linguagem de metamodelagem é melhor? Ecore, MOF ou MetaGME? É possível criar modelos visuais fora do padrão blocos e setas? É possível combinar modelos visuais e textuais? Quanto está custando o kg da picanha bovina? Sério! Vai ter coffe break?? Estamos sozinhos no universo? Todas soluções de valor zero matematicamente interessantes da função zeta de Riemann possuem forma a + bi? Os matemáticos conseguirão libertar os poderes das equações de Navier-Stokes? 62
1/23/2009. Quais as forças que atuam sobre a asa de uma nova aeronave sendo projetada? Onde fica a rua do porto?
Onde fica a rua do porto? Siga reto nessa rua mesmo, depois vire à direita no semáforo. Passe um posto de gasolina, é a terceira rua! www.oliverdominguez.com Quais as forças que atuam sobre a asa de uma
1/26/2009. Metamodelo MMA. Metamodelo MMB. Modelo A2. Modelo A. Modelo B. Transformação M2M
Abstrações do mundo real Sistema e seu ambiente Com um propósito específico Simulação, geração de código No MDD Quem lê e entende o modelo é o computador Uma vez que o computador entenda o modelo... O
Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG
Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas Prof. Valdemar Neto INF-UFG Agenda Introdução Conceitos Ferramentas Aplicações Perspectivas Engenharia de Software Convencional
6.1. Teste Baseado em Gramática e Outras Abordagens de Teste
6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam
Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )
ELEMENTOS BÁSICOS DA LINGUAGEM JAVA Patricia Della Méa Plentz INE-CTC-UFSC E-Mail: plentz@inf.ufsc.br URL: http://moodle.ufsc.br INE5605-Turma 0238B Sumário 2.1 Classes e Objetos na POO 2.2 2 Revisão da
Linguagens de Domínio Específico
Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Definindo DSLs Linguagem específica de domínio: uma linguagem de programação de computadores de expressividade
Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo
Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de
Model Driven Development (MDD)
Model Driven Development (MDD) Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@puro.uff.br Sumário Introdução Desenvolvimento de Software
UML. Adriano J. Holanda 21/3/
UML Adriano J. Holanda 21/3/2016 UML Introdução UML - Unified Modeling Language Linguagem Unificada de Modelagem. Adquiriu maturidade na segunda década de 1990 pela fusão dos métodos e diagramas de Grady
UML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas
Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo
Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados
Paradigmas de Linguagem de Programação. Aspectos Básicos
Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador
1.1. Declaração do Problema e Limitações dos Trabalhos Relacionados Um Framework Conceitual para SMAs
1 Introdução Os sistemas multiagentes (SMAs) estão tendo cada vez mais aceitação no setor da engenharia de software e no meio acadêmico como um paradigma para o desenvolvimento e a criação de sistemas
Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
CP Compiladores I Prof. Msc.. Carlos de Salles
CP 5017.9 Prof. Msc.. Carlos de Salles 1 - EMENTA O Processo de Compilação. Deteção e Recuperação de Erros. Introdução à geração de Código Intermediário. Geração de Código de Máquina. Otimização. Uma visão
AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.
AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos
3 Tecnologias Relacionadas
Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais
Como Modelar com UML 2
Ricardo Pereira e Silva Como Modelar com UML 2 Visual Books Sumário Prefácio... 13 1 Introdução à Modelagem Orientada a Objetos... 17 1.1 Análise e Projeto Orientados a Objetos... 18 1.2 Requisitos para
Requisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
V.2 Especificação Sintática de Linguagens de Programação
V.2 Especificação Sintática de Linguagens de Programação Deve ser baseada: No planejamento da Linguagem / Compilador Objetivos, Filosofia, Potencialidades,... Nos critérios de projeto/avaliação Legibilidade,
Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Visão Geral da UML SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Introdução Ferramentas de Apoio Diagramas da UML Elementos Genéricos Material sobre UML
MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL
MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL 0 UNIDADE V: MAPEAMENTO OBJETO RELACIONAL Paradigma da Orientação a Objetos: Este paradigma parte do princípio que existem diversos
XML - Extensible Markup Language
Por Sergio Crespo XML - Extensible Markup Language Extensible Markup Language (XML) é linguagem de marcação de dados (meta-markup language) que provê um formato para descrever dados estruturados. Isso
CAP. VI ANÁLISE SEMÂNTICA
CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve
Notas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Análise e Projeto Orientados a Objetos
Análise e Projeto Orientados a Objetos Introdução Diretoria Acadêmica de Gestão e Tecnologia da Informação Introdução Os sistemas computacionais adquiriram extrema importância para as organizações públicas
Linguagens de Programação
O estudante estuda muito. Regras: 7 9 12 14. . Regras: 2 4 . Regras: 1 Representar através de uma árvore de derivação. 77 O estudante estuda muito.
Autômatos e Linguagens
Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores
1 Introdução e Conceitos básicos
1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2
4 ALBATROZ : Um ambiente para desenvolvimento de SMA
41 4 ALBATROZ : Um ambiente para desenvolvimento de SMA Resumo Neste capítulo será apresentado o processo de desenvolvimento do ambiente Albatroz. Cada ferramenta é detalhada indicando suas funcionalidades.
Compiladores Análise Semântica
Compiladores Análise Semântica Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,
Compiladores I Prof. Ricardo Santos (cap 1)
Compiladores I Prof. Ricardo Santos (cap 1) Compiladores Linguagens de programação são notações que permitem descrever como programas devem executar em uma máquina Mas, antes do programa executar, deve
Model-Driven Architecture
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Model-Driven Architecture Guilherme Potenciano Ricardo Cacheta Waldemarin SSC5944 - Arquitetura de Software (...) it might be
Introdução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Introdução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Unidade: Introdução à POO (Programação Orientada a Objetos)
Unidade: Introdução à POO (Programação Orientada a Objetos) 0 Unidade: Introdução à POO (Programação Orientada a Objetos) Paradigmas de Programação Um paradigma de programação fornece (e determina) a visão
UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos
UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.
Compiladores 02 Analise léxica
Compiladores 02 Analise léxica Sumário Análise Léxica Definição: Lexema, tokens Tabela símbolos Expressões regulares, automatos Relembrando O compilador é dividido em duas etapas Análise Síntese Análise
Visão Geral... e conceitos básicos
Visão Geral.. e conceitos básicos 1 Curso de... Programação O que se estuda aqui? Algoritmos 2 E o que são algoritmos? Sequência finita e não ambígua de passos para a solução de um problema. Lembre- se
UML Unified Modeling Language Linguagem de Modelagem Unificada
UML Unified Modeling Language Linguagem de Modelagem Unificada Prof. Gilberto Porto e-mail: porto@gilbertoporto.com.br A linguagem UML n UML (Unified Modeling Language) Linguagem de Modelagem Unificada
Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.
Apresentação Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra/!! Aquisição de conceitos sobre a definição de linguagens de programação.!! Familiarização com os métodos de construção
Técnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
Hierarquia de Chomsky e sua relação com os autômatos
Hierarquia de Chomsky: Linguagens Regulares, Livres de Contexto, Sensíveis ao Contexto e Irrestritas seus Reconhecedores, e Geradores Autômatos são essenciais para o estudo dos limites da computação. Existem
DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE
DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE Jeferson MENEGAZZO 1, Fernando SCHULZ 2, Munyque MITTELMANN 3, Fábio ALEXANDRINI 4. 1 Aluno 5ª fase do Curso de Ciência da Computação do Instituto
Projeto de Compiladores
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 26 e 27 de fevereiro de 2007 Agenda da Aula Revisão Linguagem de Programação Tradutores Compilador As Fases de Um Compilador Linguagem
SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Visão Geral dos Paradigmas Quais os paradigmas mais comuns? Do que é composto um programa
Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 32. Instituto de C
ompiladores Introdução Bruno Lopes Bruno Lopes ompiladores 1 / 32 Apresentação Em que período estão? O quanto sabem de programação? Quais linguagens? O quanto sabem de unix? O quanto sabem de Linguagens
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Marilan Ricardo Tagliari - TCC Marilan Ricardo Tagliari - TCC Orientando: Marilan Ricardo Tagliari Orientador: Everaldo Artur Grahl
Orientando: Marilan Ricardo Tagliari Orientador: Everaldo Artur Grahl UNIVERSIDADE REGIONAL DE BLUMENAU Introdução Objetivos Especificação Estruturada Especificação Orientada a Objetos Estratégia de Mapeamento
Conceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 03 Processo de Compilação Edirlei Soares de Lima Métodos de Implementação Arquitetura de Von Neumann: A linguagem de máquina de um computador
Linguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
FIC-POO. Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação. Prof. Dr. Bruno Moreno
FIC-POO Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Apresentação Professor Bruno Neiva Moreno E-mail institucional: bruno.moreno@ifrn.edu.br
XML. Prof. Júlio Machado
XML Prof. Júlio Machado julio.machado@pucrs.br INTRODUÇÃO O que é XML? É a sigla de Extensible Markup Language Linguagem de especificação para descrever dados Padrão aberto e largamente usado Definido
Nomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta
Model Driven Architecture Centro de Informática/UFPE Fernando Trinta Roteiro Contexto Introdução Conceitos MDA Platform Independent Model Platform Specific Model Transformations Consequências Promessas
DIAGRAMAS UML NA VERIFICAÇÃO FORMAL DE SOFTWARE
DIAGRAMAS UML NA VERIFICAÇÃO FORMAL DE SOFTWARE Relatório parcial PIBIC Bolsista: Eduardo Rohde Eras e-mail: eduardorohdeeras@gmail.com Responsável: Prof. Dr. Nandamudi L. Vijaykumar e-mail: vijay@lac.inpe.br
Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONSTRUÇÃO DE COMPILADORES CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2017/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS
INE5421 LINGUAGENS FORMAIS E COMPILADORES
INE5421 LINGUAGENS FORMAIS E COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer a teoria das linguagens formais visando sua aplicação na especificação de linguagens de programação e na construção de
Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONSTRUÇÃO DE COMPILADORES CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS
Laboratório de programação II
Laboratório de programação II Paradigma de orientação a Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Contextualização Paradigma de orientação a Contextualização A construção
Capítulo 5 Modelação do Sistema 1
Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos
Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.
LFA Aula 01 Apresentação 24/10/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica
Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota
Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Introdução à UML Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM Introdução
Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação
Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Análise Semântica Disciplina: Compiladores Equipe: Luiz Carlos dos Anjos Filho José Ferreira Júnior Compiladores Um compilador
Compiladores. Fabio Mascarenhas
Compiladores Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Compiladores x Interpretadores Offline x Online Um compilador transforma um programa executável de uma linguagem fonte
Formas de Gerência de Dados XML
Bancos de Dados XML Formas de Gerência de Dados XML SGBDRs estendidos com suporte à XML adequados a dados XML fortemente estruturados ( documentos orientados a registros ) beira-mar104apto
Análise e projeto de sistemas
Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os
Compiladores. Conceitos Básicos
Compiladores Conceitos Básicos Processadores de Linguagem De forma simples, um compilador é um programa que recebe como entrada um programa em uma linguagem de programação a linguagem fonte e o traduz
Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software
Reuso de Software Aula 02 Agenda da Aula Introdução a Reuso de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Introdução a Reuso de Software Abordagens de Reuso
Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML
Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do
Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015
Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015 1 Introdução Motivação; MDE; Programas Adaptativos. SBMM; Metamodelo para Programas Adaptativos; Ferramenta CASE para Programas Adaptativos;
Análise de Sistemas. Aula 5
Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles
Sérgio Koch Van-Dall
PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS
Projeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
Ferramenta para criaçã. ção o e execuçã
Ferramenta para criaçã o e execuçã o visual de algoritmos em grafos Susan Braun Paulo César Rodacki Gomes Orientador Roteiro da apresentaçã Introdu Objetivos do trabalho Fundamenta teórica Principais conceitos
Especificações Gerais do Compilador e Definição de FRANKIE
Especificações Gerais do Compilador e Definição de FRANKIE 1. Especificações Gerais do Compilador (Decisões de projeto) 2. Especificações da Linguagem Fonte Definição Informal Considerações Léxicas Considerações
Aula 1.7 Introdução a APOO e UML
APOO Aula 1.7 Introdução a APOO e UML Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Possuir um lápis e uma régua não te tornam um arquiteto 2 Você pode conhecer toda a API Java, C++ ou qualquer LPOO. 3 Mas
PROJETO DE PROGRAMAS. Projeto de Programas PPR0001
PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes
Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas
Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,
Nomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
Compiladores - JACC. Fabio Mascarenhas
Compiladores - JACC Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp JACC Gerador de analisadores sintáticos LALR que gera código Java Sintaxe baseada na sintaxe do YACC (e de muitos outros
PROJETO DE PROGRAMAS. Projeto de Programas PPR0001
PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes
Introdução a UML (Unified Modeling Language)
Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário
Linguagens de Programação Aula 3
Aula 3 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...
Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Princípios de Análise e Projeto Orientados a Objetos com UML
Princípios de Análise e Projeto Orientados a Objetos com UML Eduardo Bezerra Editora CAMPUS Copyright 2002, 2003 Eduardo Bezerra 1 Capítulo 1 Visão Geral Um modelo é uma simplificação da realidade que
As fases de um compilador
As fases de um compilador Compilando um programa simples estrutura de um compilador formas de organização de um compilador processo de execução de uma linguagem de alto-nível Compilando um programa simples
INF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)
MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) g BREVE HISTÓRICO g CARACTERÍSTICAS g CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS g MODELAGEM DE ANÁLISE E DE PROJETO 1 I. BREVE HISTÓRICO Em fins dos anos
5 QCDTool: Uma Ferramenta para Avaliar a Qualidade do Design em Modelos
5 QCDTool: Uma Ferramenta para Avaliar a Qualidade do Design em Modelos Este capítulo apresenta a ferramenta desenvolvida para apoiar a aplicação, em diagramas de classes, de mecanismos de análise da qualidade
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos
Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional
Conclusões. Baseado no Capítulo 9 de Programming Language Processors in Java, de Watt & Brown
Conclusões Baseado no Capítulo 9 de Programming Language Processors in Java, de Watt & Brown QUESTÕES FUNDAMENTAIS 1. Correção do código gerado 2. Desempenho do compilador: a. Notificação de erros; b.