1/26/2009. Como é feito Análise de um problema/processo/sistema Desenvolvimento de uma solução Software + não-software. Testes/validação.

Tamanho: px
Começar a partir da página:

Download "1/26/2009. Como é feito Análise de um problema/processo/sistema Desenvolvimento de uma solução Software + não-software. Testes/validação."

Transcrição

1 Como é feito Análise de um problema/processo/sistema Desenvolvimento de uma solução Software + não-software Testes/validação Problema Solução 1

2 Problema Solução Implementação Arquitetos (algumas vezes) usam UML para criar modelos de alto nível São usados em um primeiro momento Discussões, idéias, etc (análise) Porém logo são inúteis Programadores criam código manualmente Manutenção é feita diretamente no código Modelos perdem a consistência Mesmo com engenharia reversa, ainda é um artefato desnecessário Qual o problema com a modelagem? Por que descartamos logo os modelos? 2

3 Considere os seguintes requisitos para um software: Preciso escrever Alô mundo! na tela public static void main(string args[]) { System.out.println( Alô mundo! ); Considere os seguintes requisitos para um software: Preciso escrever Alô mundo! na tela No futuro, deve ser possível utilizar outras mensagens, além de Alô mundo! 3

4 public static void main(string args[]) { if(args.length > 0) imprimemensagem(args[0]); else imprimemensagem( Alô mundo! ); public static void imprimemensagem(string mensagem) { System.out.println(mensagem); Considere os seguintes requisitos para um software: Preciso escrever Alô mundo! na tela No futuro, deve ser possível utilizar outras mensagens, além de Alô mundo! Deve ser possível usar diferentes cores Alô mundo! 4

5 Considere os seguintes requisitos para um software: Preciso escrever Alô mundo! na tela No futuro, deve ser possível utilizar outras mensagens, além de Alô mundo! Deve ser possível usar diferentes cores Deve ser possível usar diferentes dispositivos (celular, monitor, projetor, palm, etc.) FabricaDeMensagem Abstrata MensagemAbstrata FabricaDeMensagem Desktop FabricaDeMensagem Palm FabricaDeMensagem Celular Mensagem Desktop Mensagem Palm Mensagem Celular Considere os seguintes requisitos para um software: Preciso escrever Alô mundo! na tela No futuro, deve ser possível utilizar outras mensagens, além de Alô mundo! Deve ser possível usar diferentes cores Deve ser possível usar diferentes dispositivos (celular, monitor, projetor, palm, etc.) Deve ser possível enviar a mensagem remotamente, pela Internet 5

6 Adapter Protocolo Adapter Controle de acesso Internacionalização Criptografia Tarifação Base de Dados Adapter Finanças Economia Trabalho mental dos desenvolvedores OO Padrões Alimentos Turismo Jogos Aeronáutica Linguagens Métodos ágeis Banco de dados Domínio do problema Domínio TI Complexidade inerente vs complexidade acidental Ex: Diferentes dispositivos (desktop, celular, palm, etc...) Classes abstratas, herança, polimorfismo, constantes, programação reflexiva, métodos da classe String,... 6

7 Complexidade inerente Impossível descartar... a menos que você tenha uma boa lábia... Resolver é sua obrigação Complexidade acidental É possível contornar/reduzir Frameworks, padrões, etc... São problemas que você mesmo criou Problema Complexidade acidental Solução Implementação Entrevistar cliente Fazer documento de requisitos Abrir ferramenta de modelagem (UML) Aprender UML Representar o problema em UML Aprender UML Discutir problema em cima dos modelos Projetar solução Representar solução em UML Aprender UML Gerar protótipos automaticamente Adaptar protótipos Completar protótipo com regras de negócio Testar e implantar 7

8 Entrevistar cliente Fazer documento de requisitos Abrir ferramenta de modelagem (UML) Aprender UML Representar o problema em UML Aprender UML Discutir problema em cima dos modelos Projetar solução Representar solução em UML Aprender UML Gerar protótipos automaticamente Adaptar protótipos Completar protótipo com regras de negócio Testar e implantar In Ac Reduzir o fardo da modelagem Dificuldades da linguagem (UML) Inconsistências entre modelo-código Necessidade de ferramentas caras Modelo é algo desnecessário Conhecimento fica criptografado no código public static void main(string args[]) { if(args.length > 0) imprimemensagem(args[0]); else imprimemensagem( Alô mundo! ); public static void imprimemensagem(string mensagem) { System.out.println(mensagem); 8

9 public void abriu() { estado = ABERTO; timer = new Timer(10000); public void fechou() { if(estado == ABERTO) { estado = FECHADO; timer = null; public void fimtimer() { if(estado == ABERTO) { estado = DISPARANDO; tocaalarme(); timer = new Timer(20000); else { estado = ABERTO; desligaalarme(); timer = new Timer(10000); Inicial Fechado Abriu porta Fechou porta Disparando alarme Aberto 10 segundos 20 segundos ASM Java C# Lisp Prolog 9

10 Reduzir o fardo da modelagem Facilitar o reuso do conhecimento Formas mais eficientes para representar o conhecimento Menos dependentes do código final Mais próximas do domínio do problema Diferente da documentação Um elemento do modelo corresponde a vários elementos do código Diferença no nível de abstração Mapeamento problema / solução Abriu porta Inicial Fechado Fechou porta Aberto Disparando alarme 10 segundos 20 segundos public void abriu() { estado = ABERTO; timer = new Timer(10000); public void fechou() { if(estado == ABERTO) { estado = FECHADO; timer = null; public void fimtimer() { if(estado == ABERTO) { estado = DISPARANDO; tocaalarme(); timer = new Timer(20000); else { estado = ABERTO; desligaalarme(); timer = new Timer(10000); 10

11 Abriu porta Inicial Fechado Fechou porta Aberto Disparando alarme 10 segundos 20 segundos public void abriu() { estado = ABERTO; timer = new Timer(10000); public void fechou() { if(estado == ABERTO) { estado = FECHADO; timer = null; public void fimtimer() { if(estado == ABERTO) { estado = DISPARANDO; tocaalarme(); timer = new Timer(20000); else { estado = ABERTO; desligaalarme(); timer = new Timer(10000); Abriu porta Inicial Fechado Fechou porta Aberto Disparando alarme 10 segundos 20 segundos public void abriu() { estado = ABERTO; timer = new Timer(10000); public void fechou() { if(estado == ABERTO) { estado = FECHADO; timer = null; public void fimtimer() { if(estado == ABERTO) { estado = DISPARANDO; tocaalarme(); timer = new Timer(20000); else { estado = ABERTO; desligaalarme(); timer = new Timer(10000); 11

12 Muitas tarefas de implementação são repetitivas e exaustivas EJB 2.0 CORBA Struts Hibernate Perde-se tempo precioso em trabalho braçal Poderia ser usado em tarefas mais conceituais Reduzir o fardo da modelagem Facilitar o reuso do conhecimento Aproveitar o trabalho de forma mais produtiva Foco em tarefas conceituais Evitar tarefas repetitivas Correções Erros Melhorias Evolução Novas funcionalidades Exigem nova análise, projeto, implementação, testes, etc... Normalmente o tempo é curto 12

13 Abriu porta Inicial Fechado Fechou porta Aberto Disparando alarme 10 segundos 20 segundos public void abriu() { estado = ABERTO; timer = new Timer(10000); public void fechou() { if(estado == ABERTO) { estado = FECHADO; timer = null; public void fimtimer() { if(estado == ABERTO) { estado = DISPARANDO; tocaalarme(); timer = new Timer(20000); else { estado = ABERTO; desligaalarme(); timer = new Timer(10000); Modificar um campo de um registro em uma aplicação baseada em Struts Tabela, índices, visões, consultas, etc. (SQL) Ação (classe Java) Mapeamento (XML) Formulário (XML) Bean de dados (Java/XML) DAO - Data Access Objects (Java) Página (HTML) Regras de validação (Javascript) Arquivo de mensagens (.properties) etc. 13

14 Trabalho braçal para construir Re-trabalho braçal para modificar Rastreabilidade Um elemento conceitual Diversos artefatos de implementação Consistência das mudanças Entre os diversos artefatos Erros de programação podem ser facilmente encontrados Compilador / IDE Checagens simples (método privado nunca é chamado, etc.) Erros conceituais Difíceis de identificar no código Conhecimento está criptografado public void abriu() { estado = ABERTO; timer = new Timer(10000); public void fechou() { if(estado == ABERTO) { estado = FECHADO; timer = null; public void fimtimer() { if(estado == ABERTO) { estado = DISPARANDO; tocaalarme(); timer = new Timer(20000); else { estado = ABERTO; desligaalarme(); timer = new Timer(10000); 14

15 Inicial Fechado Abriu porta Fechou porta Disparando alarme Aberto 10 segundos 20 segundos Inicial Abriu porta Fechado Fechou porta Fechou porta Disparando alarme Aberto 10 segundos 20 segundos Uma vez realizada a alteração Atualizar os modelos (Quase) nunca acontece Faz parte da complexidade acidental Uma vez que os desenvolvedores tenham um modelo mental começam a descartar o modelo físico (documentação) Resultado = modelos desatualizados Faz parte do fardo da modelagem 15

16 Reduzir o fardo da modelagem Facilitar o reuso do conhecimento Aproveitar o trabalho de forma mais produtiva Facilitar a manutenção Aproveitar o re-trabalho de forma mais produtiva Possibilitar que mudanças sejam realizadas no nível conceitual Facilitar a localização de erros e falhas Manter a consistência entre modelo e código Verificações automáticas de restrições de alto nível Difíceis de se realizar diretamente no código Exemplos (máquina de estados): Estados inalcançáveis Transições infinitas Estados mortos Facilita manutenção Evitando introdução de erros Estado morto Estado inalcançavel Transição infinita 16

17 Nível de código Pré-calcular expressões Utilização de macros Remoção de expressões redundantes Em nível mais alto não é possível sem a existência de um modelo Remover estados redundantes Normalizar base de dados Indexar tabelas de acordo com as consultas existentes Reduzir o fardo da modelagem Facilitar o reuso do conhecimento Aproveitar o trabalho de forma mais produtiva Facilitar a manutenção Validação / otimização Fazer uso de checagem automática Utilizar o conhecimento de especialistas do domínio Acompanhar a evolução das plataformas de hardware/software Novas tecnologias surgem Aumenta a pressão para a migração Custo do porte: Esforço gasto em tarefas específicas da plataforma 17

18 Software independente da plataforma Software dependente da plataforma Requisitos Modelos Regras de negócio Otimizações Código multi-plataforma (Java) Arquivos de configuração Scripts (sql, make, etc) Código específico da plataforma Bibliotecas da plataforma Software independente da plataforma Software dependente da plataforma 1 mês Requisitos Modelos Regras de negócio Otimizações Código multi-plataforma (Java) Arquivos de configuração Scripts (sql, make, etc) Código específico da plataforma Bibliotecas da plataforma 6 meses Software independente da plataforma Software dependente da plataforma Requisitos Modelos Regras de negócio Otimizações Código multi-plataforma (Java) Arquivos de configuração Scripts (sql, make, etc) Código específico da plataforma Bibliotecas da plataforma 18

19 Software independente da plataforma Software dependente da plataforma 1 mês Requisitos Modelos Regras de negócio Otimizações Código multi-plataforma (Java) Arquivos de configuração Scripts (sql, make, etc) Código específico da plataforma Bibliotecas da plataforma 3 meses Reduzir o fardo da modelagem Facilitar o reuso do conhecimento Aproveitar o trabalho de forma mais produtiva Facilitar a manutenção Validação / otimização Portabilidade Reduzir o esforço específico de plataforma Concentrar no tabalho conceitual Exemplo: LBS Location-Based Systems GIS Geographical Information Systems Múltiplas plataformas Múltiplas interfaces Diversas fontes de dados Interoperabilidade Usuário final leigo 19

20 Rastreamento (rádio-frequecia, GPRS) Visualização (Java SWING, Web, JME, Palm) Localização Roteamento Telemetria Acionamento remoto Hardware dedicado (veículos) GPS, sensores, atuadores Software embarcado (C) Geoposicionamento Leitura/escrita sinais Protocolo de comunicação Transmissão Criptografia Central (C++) Armazenamento dos dados Autenticação Monitoramento/rotas (Java/SWING) Visualização dos veículos Sobreposição no mapa Cálculo de rotas Servidor de mapas (Java) Visualização em camadas Caching Base de dados PostgreSQL + PostGIS Funções de consulta / geometria Diferentes fornecedores de mapas 20

21 Dispositivos móveis Celular (JME) PND Personal Navigation Device (C# /.NET) Visualização Web Portal de mapas (Javascript) Edição de mapas (Java/SWING) Nomes de ruas Sentido/mão de direção Complexidade exige Diversos profissionais Diversos especialistas Comunicação é crítica Especialistas em TI x Especialistas no domínio Cada um em seu território! Porém, com a alta complexidade Torna-se uma tarefa difícil Além disso Constantes mudanças nas plataformas/requisitos/tecnologias disponíveis Rastreamento (rádio-frequecia, GPRS) Visualização (Java SWING, Web, JME, Palm) Localização Roteamento Telemetria Acionamento remoto 21

22 Reduzir o fardo da modelagem Facilitar o reuso do conhecimento Aproveitar o trabalho de forma mais produtiva Facilitar a manutenção Validação / otimização Portabilidade Lidar com a alta complexidade do software atual Diferentes especialistas (TI vs domínio) Necessidade de integração / interoperabilidade Modelagem Reutilização Produtividade Manutenibilidade Validação / otimização Portabilidade Alta complexidade Desenvolvimento Orientado a Modelos (MDD) Model-Driven Development (MDSD) Model-Driven Software Development (MDE) Model-Driven Engineering 22

23 import java.util.*; Economia Finanças Jogos Alimentos public synchronized replicatedata() {... page language="java > prefix="c uri="jsp/jstl/core %> <struts-config> <form-bean>... <html> <action>... CREATE <head> TABLE... </struts-config> Map( id INTEGER PK... ) # include "demoextension.h" int AEEClsCreateInstance(void **ppobj) { *ppobj = NULL; if( ClsId == AEECLSID)... jnz Rx 00# add b, 0F# add c, 0E# mov A, 00# import java.util.*; Economia Finanças Jogos Alimentos public synchronized replicatedata() {... <%@ page language="java > <%@taglib prefix="c uri="jsp/jstl/core %> <struts-config> <form-bean>... <html> <action>... CREATE <head> TABLE... </struts-config> Map( id INTEGER PK... ) # include "demoextension.h" int AEEClsCreateInstance(void **ppobj) { *ppobj = NULL; if( ClsId == AEECLSID)... jnz Rx 00# add b, 0F# add c, 0E# mov A, 00# Modelos fazem parte do software import java.util.*; Economia Finanças Jogos Alimentos public synchronized replicatedata() {... <%@ page language="java > <%@taglib prefix="c uri="jsp/jstl/core %> <struts-config> <form-bean>... <html> <action>... CREATE <head> TABLE... </struts-config> Map( id INTEGER PK... ) # include "demoextension.h" int AEEClsCreateInstance(void **ppobj) { *ppobj = NULL; if( ClsId == AEECLSID)... jnz Rx 00# add b, 0F# add c, 0E# mov A, 00# 23

24 Os modelos não são somente papel São entradas para transformadores e geradores Desenvolvedor é protegido das complexidades Inerente e acidental Em alguns casos, o desenvolvedor nem precisa visualizar código! public int soma (int a, int b) { int resultado = a + b; return resultado; 71 public int soma (int a, int b) { int resultado = a + b; return resultado; public int soma (int a, int b) { int resultado = a + b; return resultado;.java PUSH AX MOV AL, char MOV AH, 0Eh INT 10h POP AX.asm bin 72 24

25 PUSH AX MOV AL, char MOV AH, 0Eh INTpublic int soma 53 (int 10h a, int b) { POP int resultado = AXa b; ADD return resultado; AX,BX INT 10h POP AX JNZ R1, 1Eh Domínio problema 145.math public int soma (int a, int b) { int resultado = a + b; return resultado;.java PUSH AX MOV AL, char MOV AH, 0Eh INT Domínio 10h TI POP AX.asm (solução) bin 74 Microsoft Access 75 25

26 76 Netbeans UML Matisse Mobility Demonstração 26

27 Exemplo do Netbeans Não é possível alterar a ferramenta de modelagem Não é possível alterar a transformação Tecnologias atuais MDD Permitem a construção/edição destes artefatos Venda Compra Aluguel Contrato Fiador Cotação Classe Objeto Métodos Atributos Padrões Especialista do domínio Especialista em TI 27

28 Um único modelo pode dar origem a diferentes implementações, linguagens ou plataformas Permite capturar o conhecimento do domínio de forma clara Ficando disponível para os desenvolvedores Esconde detalhes de implementação durante o desenvolvimento de soluções Um único modelo pode gerar uma grande quantidade e diversidade de código Especialistas do domínio têm um papel mais ativo no processo Maior eficiência no desenvolvimento Maior qualidade no produto/processo Geradores não produzem erros acidentais Modelos estão sempre atualizados Maior rigidez no software produzido Alta complexidade dos artefatos necessários (transformadores, etc) Questão do desempenho Otimização automática vs código escrito manualmente Exige habilidades específicas e pessoas altamente especializadas em MDD 28

29

30 Nokia reporta que consegue desenvolver novos celulares até 10 vezes mais rápido Lucent relata ganhos de produtividade de 3 a 10 vezes, dependendo do produto Redução de 50 para 1 em termos de linha de especificação/código Juha-Pekka Tolvanen. Making model-based code generation work. Embedded Systems Europe, 8(60):3638, Aug/Sept David Wile. Lessons learned from real dsl experiments. Sci. Comput. Program., 51(3): , MDD são os princípios Desenvolvimento orientado a modelos Elevação da importância do modelo no processo Existem diversas frentes Cada uma baseada em padrões, ferramentas e processos específicos 30

31 OMG MDA (Model-Driven Architecture) Vanderbilt University MIC (Model Integrated Computing) Microsoft Software Factories Eclipse Modeling Model-Driven Architecture Surgiu em 2001 Baseada em padrões (standards) Objetivo Especificar um sistema de forma independente de plataforma Especificar plataformas Escolher uma plataforma para o sistema Transformar a especificação genérica em uma especificação específica de plataforma 31

32 CIM Computation Independent Model PIM Platform Independent Model PSM Platform Specific Model Modelo de plataforma Transformação de modelos 32

33 UML Unified Modeling Language MOF Meta-Object Facility CWM Common Warehouse Metamodel XMI XML Metadata Interchange QVT Query / Views / Transformations MOF Formato XML XMI UML CWM Outros metamodelos Modelos UML Modelos de dados Outros modelos Modelo UML1.xmi Modelo UML2.xmi Modelo Dados1.xmi Modelo Qualquer1.xmi Modelo Qualquer2.xmi MOF Metamodelo A Metamodelo B Modelos A QVT Modelos B Consultas Transformações 33

34 Uma série de especificações Foco em portabilidade, independência de plataforma Voltadas à implementação e padronização é uma referência Fabricantes podem optar por aderir aos padrões Não define uma metodologia Não define ferramentas Porém foi uma das iniciativas fundamentais para o surgimento do paradigma Model Integrated Computing Pesquisa da Vanderbilt University Três elementos principais Tecnologia para modelagem específica de domínio Conjunto de ferramentas para modelagem Framework para análise formal, verificação e transformação de modelos GME Generic Modeling Environment Jack Greenfield, Keith Short, Steve Cook, and Stuart Kent. Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools. Wiley, Abordagem para desenvolvimento de software Reutilização sistemática MDD tem um papel importante 34

35 Pense em uma fábrica tradicional Estrutura projetada para produzir uma determinada família ou linha de produtos Três elementos Esquema da fábrica de software: descreve o que é necessário para construir os produtos da fábrica Template da fábrica: é uma instância do esquema Ambiente extensível: ferramentas utilizadas para a produção, configuradas através do template Modelos são usados para Capturar especificações em alto nível (intenção) Transformações são usadas para Gerar implementação automaticamente Outras checagens realizadas em modelos Diferentemente da MDA Menos interesse em portabilidade e independência de plataforma Maior foco em produtividade e reutilização Microsoft Visual Studio DSL Tools Ferramenta para definição de linguagens específicas de domínio Geração de código Outras funções 35

36 Série de ferramentas e protótipos Origem e influência do MOF Linha própria INRIA Institut National de Recherche en Informatique et en Automatique França Universidade de Nantes França Borland IBM Eclipse Modeling Framework Graphical Modeling Framework Textual Modeling Framework Xtext TCS UML2 Tools Model to Model Transformation Atlas Transformation Language Model to Text Transformation Java Emitter Templates Xpand Generative Modeling Technologies Incubadora de projetos inovadores relacionados a modelagem AM3, AMW, MOFScript, etc. 36

37 Solução Implementação Problema 1/26/2009 Complexidade acidental Solução Ferramenta de modelagem Transformações Produto Desenvolvedor Compiladores Benefícios 37

38 DSL UML MIC Software factories TMF MDA Eclipse Sugestões: Qual a relação MDD / métodos ágeis? Se a modelagem é acidental, porque precisamos dela? E quanto à gerência de configuração? Como são realizados os testes no MDD? Quanto tempo ainda vai demorar? Vai ter coffee break? O que vai cair na prova? Quem ganhou a corrida de F1? O que pesa mais? 1 Kg de penas ou 1 Kg de chumbo? 38

Parte 1 CONCEITOS MDD

Parte 1 CONCEITOS MDD Parte 1 CONCEITOS MDD 1 Desenvolvimento de software Como éfeito Análise de um problema/processo/sistema Desenvolvimento de uma solução Software + não-software Testes/validação Uma série de problemas!!

Leia mais

Model Driven Development (MDD)

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

Leia mais

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

Leia mais

1/26/2009. Metamodelo MMA. Metamodelo MMB. Modelo A2. Modelo A. Modelo B. Transformação M2M

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

Leia mais

3 Tecnologias Relacionadas

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

Leia mais

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

Leia mais

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: 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

Leia mais

MÓDULO Análise Orientada a Objetos Introdução

MÓDULO Análise Orientada a Objetos Introdução MÓDULO Análise Orientada a Objetos Introdução Prof. M.Sc. Sílvio Bacalá Júnior OBJETIVO DO MÓDULO Apresentação da disciplina Conteúdo Programático Sistema de Avaliação Bibliografia DAW4 2 CURRÍCULO DO

Leia mais

Introdução à Análise e Projeto de Sistemas

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

Leia mais

INF1013 MODELAGEM DE SOFTWARE

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

Leia mais

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

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

Leia mais

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo Engenharia de Software Aula 21 Agenda do Curso Reuso de Software Aula 23 Data 28/05 Assunto Desenv. Orientado a Aspectos 24 30/05 Laboratório 25 04/06 Apresentações do TP (1) Eduardo Figueiredo 26 06/06

Leia mais

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

Leia mais

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta

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

Leia mais

Técnicas para Reutilização de Software

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

Leia mais

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

Leia mais

Agenda Atual do Curso. Desenvolvimento Dirigido por Modelos (MDD) Abordagem MDD. Agenda da Aula. Abordagem MDD. Manutenção e Geração

Agenda Atual do Curso. Desenvolvimento Dirigido por Modelos (MDD) Abordagem MDD. Agenda da Aula. Abordagem MDD. Manutenção e Geração Reuso de Software Aula 21 Agenda Atual do Curso Desenvolvimento Dirigido por Modelos (MDD) Aula 23 Data 28/05 Assunto Avaliação Experimental de Reuso 24 30/05 Semana da PPGCC (ñ há aula) 25 04/06 Apresentações

Leia mais

Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira

Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de arquitetura Linha

Leia mais

Análise de Sistemas. Aula 5

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

Leia mais

Model Driven Development (MDD)

Model Driven Development (MDD) DCC / ICEx / UFMG Model Driven Development (MDD) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Motivação para MDD Software é caro Os EUA sozinho investem mais de $250 bilhões em software Nos EUA,

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015

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;

Leia mais

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago INE 5612 Professor: Frank Siqueira Alunos: Gustavo de Geus Leonardo Silva Jean Ercilio Thiago DESENVOLVEDORES JAVA EM TODO MUNDO LIDER GAVIN KING JBOSS MANTEVE O SUPORTE História Hibernate foi criado por

Leia mais

Transformando Modelos da MDA com o apoio de Componentes de Software

Transformando Modelos da MDA com o apoio de Componentes de Software Transformando Modelos da MDA com o apoio de Componentes de Software Fapesp-PIPE Autores: Marco Antonio Pereira Antonio Francisco do Prado Mauro Biajiz Valdirene Fontanette Daniel Lucrédio Campinas-SP,

Leia mais

Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos

Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos Chessman Kennedy Faria Corrêa 1 Leonardo G. P. Murta 1 Claudia M. L. Werner 1 1 Programa de Engenharia de Sistemas

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE EMENTA ENGENHARIA DE SOFTWARE DISCIPLINA: Estrutura e Fluxo de Informação EMENTA: A disciplina Estrutura e Fluxo de Informação se propõe a capacitar o aluno sobre os fundamentos da Gestão da Informação

Leia mais

Formalismos de Grafos de Interação

Formalismos de Grafos de Interação Formalismos de Grafos de Interação ( A Model-based Approach for developing 3D Users Interfaces - Juan Manuel Gonzalez Calleros) Disciplina:Tópicos em IHC II- Interação 3D Professor :Alberto Raposo Tópicos

Leia mais

3. Linguagem de Programação C

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

Leia mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. O que é polimorfismo? O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus

Leia mais

4 ALBATROZ : Um ambiente para desenvolvimento de SMA

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.

Leia mais

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO

Leia mais

Arquitetura em Camadas

Arquitetura em Camadas Arquitetura em Camadas 1 Introdução Em aplicações OO de médio e grande porte, diversos aspectos devem ser considerados: Apresentação Lógica da aplicação Lógica do negócio Persistência de Objetos Camada

Leia mais

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos) Orientação a Objetos Parte I Introdução a POO (Programação Orientada a Objetos) Histórico Gerações de Linguagens de Programação Primeira Geração: Linguagem de máquina Segunda Geração: Linguagem de montagem

Leia mais

Módulo II Arquitetura em Camadas

Módulo II Arquitetura em Camadas Módulo II Arquitetura em Camadas Prof. Ismael H F Santos April 08 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Arquitetura de camadas de Software Arquiteturas em Camadas Padrões para

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Marcelle Mussalli Cordeiro {mmussalli@gmail.com} Cordeiro Reflexão O que é software?? Cordeiro 2 O que é Software? Programa Dados de configuração Dados de documentação Tudo que esteja

Leia mais

Desenvolvimento Dirigido por Modelos: Ferramentas

Desenvolvimento Dirigido por Modelos: Ferramentas DCC / ICEx / UFMG Desenvolvimento Dirigido por Modelos: Ferramentas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Existe MDD na prática? Poucos sistemas ainda são desenvolvidos usando a filosofia

Leia mais

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: prado@dc.ufscar.br Resumo Este artigo apresenta a ferramenta CASE

Leia mais

Ambiente de Desenvolvimento Integrado (IDE)

Ambiente de Desenvolvimento Integrado (IDE) Ambiente de Desenvolvimento Integrado (IDE) Aula #2.1. EBS 211 POO e UML Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã Roteiro Ambiente de Desenvolvimento Integrado; ; Instalação

Leia mais

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

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

Leia mais

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

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

Leia mais

Desenvolvimento Java com ferramentas IBM

Desenvolvimento Java com ferramentas IBM Desenvolvimento Java com ferramentas IBM Camilo Lopes IT Specialist/Analyst Java Programmer camilom@br.ibm.com Iniciando em Java 19/06/09 Agenda Por que Java?! Ferramentas IBM para desenvolvimento Demonstração

Leia mais

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri FERRAMENTA VISUAL PARA GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri ROTEIRO Introdução Objetivos Motivação Fundamentação Teórica Desenvolvimento

Leia mais

ClassGenerator - Desenvolvendo aplicações em PHP com qualidade e eficiência.

ClassGenerator - Desenvolvendo aplicações em PHP com qualidade e eficiência. ClassGenerator - Desenvolvendo aplicações em PHP com qualidade e eficiência. Marcelio Leal 1 Porto Alegre, Abril, 2006 Apresentação Engenheiro de software do SEPRO Graduado em C. da Computação Mestrando

Leia mais

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

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

Leia mais

Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA

Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA Alexandre dos Santos Mignon Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título

Leia mais

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução UML: introdução Prof.: Clarindo Isaías Pereira da Silva e Pádua Synergia / Gestus Departamento de Ciência da Computação - UFMG UML: introdução 2 Bibliografia Rumbaugh, J.; Jacobson, I.; Booch, G., The

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp web@cercomp.ufg.br 1. Introdução É um processo proprietário de Engenharia de software criado pela Rational Software Corporation,

Leia mais

ALUNO: RONI FABIO BANASZEWSKI

ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller ALUNO: RONI FABIO BANASZEWSKI Objetivo Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e

Leia mais

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

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

Leia mais

Aumento da complexidade dos sistemas. aumento do nível de abstração

Aumento da complexidade dos sistemas. aumento do nível de abstração ODYSSEY-MDA: UMA ABORDAGEM PARA A TRANSFORMAÇÃO DE MODELOS Natanael Elias Nascimento Maia Orientadora: Cláudia Maria Lima Werner Março - 2006 1 Roteiro Introdução Arquitetura Orientada por Modelos Transformação

Leia mais

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

Leia mais

UML (Unified Modelling Language)

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

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

Engenharia de Software. Projeto de Arquitetura

Engenharia de Software. Projeto de Arquitetura Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra

Leia mais

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

Leia mais

Linguagens de Domínio Específico

Linguagens de Domínio Específico Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Por que DSLs? Melhorar a produtividade dos programadores input =~ /\d{3}-\d{3}-\d{4}/ Facilitar a escrita e

Leia mais

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

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Utilizando o Framework SubMacro no Desenvolvimento de Aplicações Java para Internet. Kleber Taffarel Novembro de 2008

Utilizando o Framework SubMacro no Desenvolvimento de Aplicações Java para Internet. Kleber Taffarel Novembro de 2008 Utilizando o Framework SubMacro no Desenvolvimento de Aplicações Java para Internet Kleber Taffarel Novembro de 2008 klebertaffarel@yahoo.com.br Palestrante Especialista em Engenharia de Websites pela

Leia mais

Principais conceitos de CORBA

Principais conceitos de CORBA Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem

Leia mais

Tópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos

Tópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos Reuso de Software Aula 20 Tópicos da Aula Desenvolvimento Dirigido por Modelos (MDD) Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com

Leia mais

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

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Natanael E. N. Maia, Ana Paula B. Blois, Cláudia M. Werner COPPE/UFRJ Programa de Engenharia de Sistemas e Computação Caixa Postal 68.511

Leia mais

Model-Driven Architecture

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

Leia mais

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO Edilene de Fátima Vetorato 1, Osvaldo Cesar Pinheiro de Almeida 2 1 Fatec, Botucatu, SP, Brasil. E-mail: edilenefv@hotmail.com

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual

Leia mais

UTILIZAÇÃO DE MDA INTEGRADO AO PROCESSO UNIFICADO NA MODELAGEM DE UM SISTEMA DE GERENCIAMENTO DE COMUNICAÇÃO PARA VANTS

UTILIZAÇÃO DE MDA INTEGRADO AO PROCESSO UNIFICADO NA MODELAGEM DE UM SISTEMA DE GERENCIAMENTO DE COMUNICAÇÃO PARA VANTS UTILIZAÇÃO DE MDA INTEGRADO AO PROCESSO UNIFICADO NA MODELAGEM DE UM SISTEMA DE GERENCIAMENTO DE COMUNICAÇÃO PARA VANTS Christiane Barbieri De Pelegrin * Resumo Este artigo expõe a modelagem de um sistema

Leia mais

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje 1 Introdução Testar é o conjunto de tarefas ou passos executados para verificar se um produto ou serviço atende à sua proposta. Dessa forma, a execução de testes em um programa contribui para a melhoria

Leia mais

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web Arquitetura e Objetos Distribuídos em CORBA Aula 3 Especificações OMA Object Web The Client/Server Evolution O que é a tecnologia CORBA? CORBA Common Object Request Broker Architecture Uma camada de software

Leia mais

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS Tereza Gonçalves Kirner Apresentação elaborada com base em: Hoffer, Jeffrey A., George, Joey F. Modern Systems Analysis and Design (Capítulo 1), Pearson,

Leia mais

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem? DCC / ICEx / UFMG A Linguagem UML A Linguagem UML Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo UML (Linguagem de Modelagem Unificada) É uma notação gráfica (visual) para projetar sistemas OO Não

Leia mais

Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann

Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann Roteiro Introdução Problema a ser resolvido e objetivos Fundamentação Teórica ORM, RTTI, Custom Attributes, Nullable Desenvolvimento

Leia mais

Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo

Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo Polimorfismo: aprendendo a prever o futuro BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Sumário Definições Tipos de Polimorfismo Dicas para o Polimorfismo Eficaz Armadilhas

Leia mais

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs

Leia mais

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs

Leia mais

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010 1 1 Introdução 1.1 Teoria dos Sistemas 1.2 Constituição dos sistemas 1.3 Natureza dos sistemas 1.4 Parâmetros do sistema 1.5 Descrição de sistemas 1.6 Desafios enfrentados no desenvolvimento 1.7 Perfil

Leia mais

Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education

Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education Reúso de Software Adaptado de Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reúso de Software Na maioria das disciplinas de engenharia, os sistemas são projetados por meio

Leia mais

Data Warehouse ETL. Rodrigo Leite Durães.

Data Warehouse ETL. Rodrigo Leite Durães. Data Warehouse ETL Rodrigo Leite Durães rodrigo_l_d@yahoo.com.br Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações,

Leia mais

Análise e projeto de sistemas

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

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento

Leia mais

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

Desenvolvimento Web com Java. Sérgio Lopes Caelum - Desenvolvimento Web com Java Sérgio Lopes Caelum - http://www.caelum.com.br sergio.lopes@caelum.com.br Sérgio Lopes Desenvolvedor Java desde 2002 Instrutor de Java pela Caelum Trabalho com Web e Celulares

Leia mais

Aula 1.7 Introdução a APOO e UML

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

Leia mais

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais Bacharelado em Ciências da Computação Estágio supervisionado de Conclusão de Curso PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA

Leia mais

Conteúdo desta aula. Importância da AOO Conceito de Abstração Introdução à UML Introdução ao diagrama de classes

Conteúdo desta aula. Importância da AOO Conceito de Abstração Introdução à UML Introdução ao diagrama de classes Introdução a AOO Conteúdo desta aula Importância da AOO Conceito de Abstração Introdução à UML Introdução ao diagrama de classes Introdução É papel do analista de sistema definir todo projeto para o desenvolvimento

Leia mais

Visão Geral do RUP.

Visão Geral do RUP. Visão Geral do RUP hermano@cin.ufpe.br Objetivos Apresentar as características RUP Discutir os conceitos da metodologia: fases, fluxos de atividades (workflows), iterações, responsáveis, atividades e artefatos

Leia mais

Introdução à Programação para Dispositivos Móveis

Introdução à Programação para Dispositivos Móveis Introdução à Programação para Dispositivos Móveis Aula 03 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Aplicações

Leia mais

Requisitos de Sistemas

Requisitos de Sistemas Requisitos de Sistemas Unidade II - Processos de Negócio Identificação Conceitos Modelagem - BPM - UML Processos x Requisitos 1 Processo de negócio CONCEITO Um processo de negócio, processo organizacional

Leia mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais

Unidade 1 Introdução

Unidade 1 Introdução Unidade 1 UFCG/CEEI/DSC Banco de Dados I Prof. Cláudio Baptista, PhD O que é um Banco de Dados (BD)? É uma coleção de dados relacionados e armazenados em algum dispositivo. Propriedades de um BD: Um BD

Leia mais

Aula 10 Especificação de Requisitos

Aula 10 Especificação de Requisitos Aula 10 Especificação de Requisitos Alessandro Garcia LES/DI/PUC-Rio Setembro 2016 Especificação Objetivos dessa aula Apresentar a importância e o que são especificações de requisitos, bem como conceitos

Leia mais

Documento de Arquitetura de Software- SGE

Documento de Arquitetura de Software- SGE Documento de Arquitetura de Software- SGE IFG Autor: Marcelo Roldrin Barros Silva 1. Introdução 1.1 Finalidade Este documento oferece uma visão geral arquitetural abrangente do sistema SGE (Sistema de

Leia mais

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC) Banco de Dados - Conceitos Baseado no material da Profa. Vania Bogorny (UFSC) 1 Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel compra de passagens

Leia mais

Aula 1: Apresentação, Computação Corporativa

Aula 1: Apresentação, Computação Corporativa Aula 1: Apresentação, Computação Corporativa Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 09/2015 INFORMÁTICA Campus Manhuaçu

Concurso Público para provimento de cargo efetivo de Docentes. Edital 09/2015 INFORMÁTICA Campus Manhuaçu Questão 01 Assinale o item abaixo que NÃO é caracterizado como uma vantagem do processo de desenvolvimento iterativo e incremental. a) Os riscos do projeto podem ser mais bem gerenciados. b) Soluciona

Leia mais

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software ENGENHARIA DE SOFTWARE Aula 03 Processos de Software AGENDA Modelos de processo de software Atividades do processo Lidando com mudanças Rational Unified Process (RUP) 14/03/2017 IFPR QUEDAS DO IGUAÇU -

Leia mais

Perfil Formação Acadêmica Experiência Profissional Capacitação Profissional

Perfil Formação Acadêmica Experiência Profissional Capacitação Profissional Programador - DESENVOLVEDOR JAVA Deverá possuir experiência comprovada de pelo menos 01 (um) ano em desenvolvimento de aplicações WEB com J2EE; Conhecimentos em JSP, TagLib, Servlets, Classes Java, linguagem

Leia mais