Desenvolvimento e Teste de Aplicações Orientadas a Aspectos:

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

Download "Desenvolvimento e Teste de Aplicações Orientadas a Aspectos:"

Transcrição

1 Desenvolvimento e Aplicações Orientadas a Aspectos: Uma Prof. Dr. Fábio Fagundes Silveira GPES Grupo de Pesquisa em Engenharia de DCT Departamento de Ciência e Tecnologia UNIFESP Universidade Federal de São Paulo Maio de 2009

2 Roteiro 1 Motivação para OA Espalhamento e Entrelaçamento 2 Fundamentação Interesses Interesses Transversais 3 Desenvolvimento de - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA 4 5 Elementos e Notações 6 7

3 Motivação para OA Motivação para OA Espalhamento e Entrelaçamento Decomposição uni-dimensional Procedures / classes (blocos de código funcional) Pode modularizar algumas funcionalidades do sistema, mas não todas Síndrome da Tirania da Decomposição Dominante OA: funcionalidades podem ser encapsuladas modularmente

4 Espalhamento e Entrelaçamento OO Motivação para OA Espalhamento e Entrelaçamento

5 Utilizando OA... Elementos (interesses) tratados de forma modular Motivação para OA Espalhamento e Entrelaçamento

6 Exemplo de Implementação OO Motivação para OA Registro de log do TOMCAT Espalhamento e Entrelaçamento

7 Exemplo de Implementação OA Motivação para OA Registro de log do TOMCAT usando OA Espalhamento e Entrelaçamento

8 Interesses (Concerns) Interesses Interesses Transversais Definição (Interesse) Qualquer elemento (protocolo, característica, requisito, classe, etc.) adotado na solução do sistema, tanto em nível conceitual quanto prático (Laddad, 2003) Requisitos Funcionais (Negócio) Persistência Distribuição Segurança Políticas de Caching Balanceamento de Carga e Replicação Tolerância a Falhas Transações Distribuídas, entre outros (Laddad, 2003)

9 Interesses Transversais ou Ortogonais (Crosscutting Concerns) Interesses Interesses Transversais Entrelaçamentos ou propriedades ortogonais Compreendem elementos não facilmente encapsulados numa estrutura modular Associam-se com diferentes componentes do sistema = código entrelaçado e/ou duplicado (disperso) Exemplos desempenho, sincronização, comunicação, tratamento de interfaces gráficas, depuração, persistência, autorização,...

10 Interesses Transversais ou Ortogonais (Crosscutting Concerns) (2) Interesses Interesses Transversais Componentes: Coesos Fracamente Acoplados Interfaces bem definidas (abstração, encapsulamento)

11 Interesses Transversais ou Ortogonais (Crosscutting Concerns) (3) Alteração solicitada no sistema: Notificar um ScreenManager sempre que uma figura for alterada ou movida Interesses Interesses Transversais

12 Interesses Transversais ou Ortogonais (Crosscutting Concerns) (4) Operação que atualiza a tela Interesses Interesses Transversais Crosscutting concerns Operações que modificam elementos

13 Implicações dos Interesses Transversais Interesses Interesses Transversais Rastreabilidade entre requisitos e implementação prejudicada Baixa produtividade Lidar com n interesses em um único módulo Compreensão de código Menor grau de reusabilidade Módulos não podem ser reutilizados devido à implementações não pertencentes diretamente àquela responsabilidade

14 Implicações dos Interesses Transversais (2) Interesses Interesses Transversais Menores níveis de adaptabilidade e evolução de sistemas Mudanças em código espalhado requer esforço adicional (propagar alterações: cascaded) Código com maior propensão a defeitos No geral, o software tende a apresentar menor qualidade Qualidade é um objetivo fundamental da Engenharia de

15 - Terminologias - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA Análise, Projeto, Implementação, Teste e Manutenção AOSD (Aspect-Oriented Development) Programação AOP (Aspect-Oriented Programming) Linguagens AOL (Aspect-Oriented Language) Ferramentas AOT (Aspect-Oriented Tools)

16 - Alguns Benefícios... - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA Benefícios (Laddad, 2003): Propicia a implementação modular de responsabilidades transversais Facilita a adição/remoção de funcionalidades Permite decisões tardias de projeto (maior flexibilidade) Propicia maior reuso de código Facilita o mapeamento: Espaço de requisitos: n-dimensional Espaço de implementação: bi-dimensional

17 Aspectos (Aspects) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA Equivale a uma Classe em OO Uma classe encapsula métodos e atributos Um aspecto encapsula Pointcuts e Advices Aspectos aceitam atributos e métodos Conceito de Composição de Aspectos { I1 I 2 = I 3 (1), ou (I 1 I 2 ) (2)

18 Principais Elementos da POA - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA aspecto aspect DisplayUpdating { pointcut p1: call(void FigureElement+.set*(..)) call(void FigureElement.moveBy(int, int)); after(): p1 { Display.update(); } } advice join point pointcut

19 Processo de Combinação Estática x Dinâmica C A A C Combinação Compilação Programa Executável - Terminologias A Principais Elementos Exemplos Práticos de Aplicação da OA C (a) estática C C Compilação Programa Executável execução C (b) dinâmica A A A

20 Combinador de Aspectos - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

21 Join Points (Pontos de Junção) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA São pontos bem definidos na execução de um programa Locais onde o combinador insere o código relacionado com os aspectos Podem possuir contexto associado AspectJ: Ex.: chamada de método: target object e parâmetros 1 Chamada e execução de métodos 2 Chamada e execução de construtores 3 Leitura/escrita de atributos 4 Execução de manipuladores de exceções 5 Inicialização e execução de classes e objetos

22 Pointcuts (Conjunto de Pontos de Junção) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA Capturam ou identificam Join Points no fluxo de um programa e coletam contextos nesses pontos de combinação, baseados em critérios pré-definidos Podem ser considerados a instância de um Join point Anônimos e nomeados Podem utilizar operadores lógicos (&&,,!) Utilização de wildcards (, +,..) 1 void Vector.addElement(..); 2 public * br.util..*.*(..); 3 * Vector+.*(..);

23 Advices (Adendos) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA Procedimento que está associado estaticamente a um Pointcut São as novas funcionalidades que se deseja incorporar no comportamento do sistema Possui as cláusulas: 1 after 2 before 3 around

24 Advices (Adendos) (2) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

25 Introductions (Inserções) É possível modificar a estrutura de uma classe: 1 Inserindo novos atributos e métodos 2 Alterando a hierarquia de classes - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

26 Tecnologias OA... Linguagens de Programação - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA 1 AspectJ 2 Aspect Oriented Perl 3 AspectC 4 AspectS (Smaltalk,Squeak) 5 Aspects (Python) 6 AspectR (Ruby) 7 Aspect C# 8 AspectDotNet (C#, VB,J#) 9 AspectWerkz 10 JAssist 11 JBoss 12 FrameWork Spring Ambientes de Desenvolvimento 1 Eclipse 2 NetBeans 3 JBuilder 4 IBM Websphere 5...

27 Exemplo de Utilização da OA em Serviços de Segurança - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA Autenticação É o processo que identifica se você é quem diz ser Autorização É o processo que identifica se um usuário autenticado tem permissão suficiente para acessar determinado recurso Auditoria/Rastreabilidade É o processo que registra informações sobre a execução do sistema, propiciando auditar os serviços executados, valores de parâmetros, recursos utilizados, horário, seqüencia, etc.

28 Implementando Autenticação com OA - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

29 Implementando Autenticação com OA (2) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

30 Implementando Autorização com OA - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

31 Implementando Autorização com OA (2) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

32 Implementando Logging com OA - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

33 Implementando Logging com OA (2) - Terminologias Principais Elementos Exemplos Práticos de Aplicação da OA

34 Terminologia e Conceitos Básicos de Teste OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados Uma das técnicas de verificação e validação Diferente de depuração Não prova que o programa está correto Caso de Teste Par ordenado (d, S(d)), no qual d D e S(d) é a respectiva saída esperada Estratégias (Critérios) de Teste Derivam requisitos de teste

35 OA OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados A adoção da OA não provê correteza por si só Existência de dependências implícitas e explícitas entre aspectos e unidades modulares tradicionais Interconexões entre aspectos e código funcional apresentam novas fontes de defeitos Novos desafios para a atividade de teste

36 Composição de Aspectos - Notação OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados Combinação x Composição de Aspectos (Silveira et al., 2005) (e.g., generalização, associação e dependência) expressa um esquema de composição Interesses I 1 e I 2 podem ser compostos para: 1 dar origem ao interesse I 3, ou 2 representar que tais interesses podem ser executados em conjunto, possivelmente aumentando uma funcionalidade Anomalia de composição { I1 I 2 = I 3 (1), ou (I 1 I 2 ) (2) I 1 I 2 =

37 Fontes de Defeitos em POAs (Alexander et al., 2004) OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados 1 Os residentes no núcleo de interesse 2 Os residentes numa porção de código, específico ao aspecto 3 Os representados pelas interações entre aspectos e abstrações primárias (classes) 4 Os resultantes da ordem de combinação dos aspectos, onde não são respeitadas suas precedências Quinta fonte de defeitos incluída As resultantes das interações entre aspectos (composição)

38 Fontes de Defeitos em POAs (Alexander et al., 2004) OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados 1 Os residentes no núcleo de interesse 2 Os residentes numa porção de código, específico ao aspecto 3 Os representados pelas interações entre aspectos e abstrações primárias (classes) 4 Os resultantes da ordem de combinação dos aspectos, onde não são respeitadas suas precedências Quinta fonte de defeitos incluída As resultantes das interações entre aspectos (composição)

39 Modelo de Defeitos para POAs (Alexander et al., 2004) OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados Modelo de Defeitos 1 Restrição incorreta em padrões de conjuntos de junção 2 Precedência incorreta de aspectos 3 Defeitos para alcançar pós-condições de métodos 4 Defeitos para preservar invariantes de classe 5 Foco incorreto no fluxo de controle 6 Mudanças incorretas em dependências de controle

40 Defeito de Composição de Aspectos (Silveira et al., 2007) OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados Definição Passo, processo ou definição de dados incorreto, quando: 1 Um aspecto é alvo de um interesse transversal de outro aspecto 2 Um aspecto referencia conjuntos de junção declarados em outro(s) aspecto(s) 3 Um adendo num aspecto invoca métodos declarados em outro aspecto 4 De forma isolada as funcionalidades são providas. Compostos com outros aspectos, apresentam comportamentos diferentes dos especificados

41 Defeito de Composição de Aspectos (Silveira et al., 2007) OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados Definição Passo, processo ou definição de dados incorreto, quando: 1 Um aspecto é alvo de um interesse transversal de outro aspecto 2 Um aspecto referencia conjuntos de junção declarados em outro(s) aspecto(s) 3 Um adendo num aspecto invoca métodos declarados em outro aspecto 4 De forma isolada as funcionalidades são providas. Compostos com outros aspectos, apresentam comportamentos diferentes dos especificados

42 Principais Trabalhos OA Composição e Dependência de Aspectos Defeitos em POAs Trabalhos Relacionados (Alexander, Bieman e Andrews, 2004) (Zhao, 2003) (Ubayashi e Tamai, 2002) (Zhao e Rinardi, 2003) (Xu, Xu, Goel e Nygard, 2004) (Xu, Xu and Nygard, 2005) (Krishnamurthi, Fisler e Greenberg, 2004) (Sereni e Moor, 2003) (Mortensen e Alexander, 2005) (Lopes e Ngo, 2005) (Lemos, 2006)

43 Um Método de Testes Baseado em Estados Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA ME T E s O o R A todo para estes de stados em ftware ientado a spectos Solução híbrida baseada na abordagem FREE (Binder, 2001) Propicia a realização de testes sobre composições de aspectos

44 Os Elementos do Visão de Componentes do Método Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA

45 - Conceitos Aplicados Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA 1 Estados 2 Baseado em Especificação 3 Cluster de Aspectos 4 Uso de Assertivas Pré e Pós-Condições de Métodos Pré e Pós-Condições de Adendos Invariantes de Classe Invariantes de Aspectos Invariantes de Estado de Classes e Aspectos 5 Defeito de Composição x Defeito de Precedência

46 O Modelo Comportamental ASM Aspectual State Model (Xu et al., 2005) 1 Elementos base (classes) 2 Elementos entrecortantes (aspectos) 3 Relacionamentos entrecortantes (classes aspectos) 4 Relacionamento entre aspectos (aspectos aspectos) Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA

47 O Modelo Comportamental MEIICA Modelo de Estados de Interações Inter-Classe-Aspectual 1 Elementos base (classes) 2 Elementos entrecortantes (aspectos) 3 Relacionamentos entrecortantes (classes aspectos) 4 Relacionamento entre aspectos (aspectos aspectos) Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA

48 MEIICA - Definição Formal Preliminar Modelo Comportamental A Estratégia RTP O Protótipo KTest Modelo: 5-tupla (Ey, S, E, V, T ), onde: Ey é um conjunto de entidades; S é um conjunto finito de estados; E é um conjunto finito de eventos (ou métodos); V é um conjunto finito de variáveis; T Ey S E Ψ Φ S, onde: Ψ e Φ representam conjuntos de expressões lógicas (pré e pós-condições dos eventos). Transições: 5-tupla (s i, e, ψ, ϕ, s j ) T Falhas em Composição de Aspectos Exemplo do MEIICA [ <α,new,ψ,ϕ,ey 1.s 0 >, <Ey 1.s 0,e 1,ψ 1,ϕ 1,Ey x.s j > <Ey x.s j,e i,ψ i,ϕ i,ey y.s y >,... ]

49 MEIICA Elementos e Notação Modelo Comportamental A Estratégia Transições (normais e internas) <<act>> <<aat>> <<a2at>> Estados MEIICA Pseudo-Estados RTP O Protótipo <<instr>> KTest Falhas em Composição de Aspectos <<remtr>> <<bjpt>> Exemplo do MEIICA Adendos

50 A Estratégia Round-trip Path Modelo Comportamental A Estratégia Estende a Estratégia Round-trip Path (Binder, 2001) Percorre o MEIICA e gera a Árvore de Alcançabilidade Combinada (AAC) Principal alteração: critério de parada Estados de aspectos espalham-se ao longo dos caminhos da árvore Algoritmo Round-trip Path Malg RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA Automatiza a Round-trip Path Permite a repetição de maneira controlada (marcações especiais) Transcrição de assertivas com operadores E e OU

51 A Árvore de Alcançabilidade Combinada (AAC) Cada caminho corresponde a um caso de teste abstrato (ATC) Três tipos de transições internas ou imediatas b{trans}, ar{trans}, a{trans} [x>0]e1 C1.s1 Modelo alpha new C1.s0 A3.s0 Comportamental ar{e3} A Estratégia RTP O Protótipo KTest b{e2} a{ae1[s==ok]} A2.s0 ae2 A2.s1 ae1[s==ok] A1.s1 e2 C1.s3 Falhas em Composição de Aspectos A1.s0 Exemplo do MEIICA a{ae1[s==f]} A2.s0 ae2 A2.s1 ae1[s==f] A1.s2 e2 C1.s3

52 sm: AAC_ContaEspecial_CtrContaEspecial_Log_Aut alpha abrir Pos saldo b{credito} b{debito[b<0]} fechar Pos Fechada b{debito[b>0]} A1 A1 A1 a{ch{f]} a{ch[ok]} R1 a{ch[ok]} a{ch{f]} a{ch[fc]} R1 a{ch{f]} R1 a{ch[ok]} a{ch[fc]} R1 R1 R1 R1 a{ch{fc]] R1 /r [OK] R OK R1 /r [F] R F /r [OK] R OK /r [F] R F /r [OK] R OK r[ok] /r [F] R F /r [OK] R OK /r [F] R F /r [OK] R OK /r [F] r[ok] R OK r[f] R F r[ok] R OK r[f] R F R F R OK r[f] R F /r [OK] R OK /r [F] R F A1 A1 ch[ok] Aut OK :partex REJ REJ partey :partey A1 A1 ch[ok] Aut OK REJ REJ A1 A1 Aut OK R1 REJ REJ a{debito[b<0]} partez :partez partex a{credito} a{debito[b>0]} R1 R1 /r [OK] R OK /r [F] R F /r [OK] R OK /r [F] R F r[ok] R OK r[f] R F Negativa Negativa Pos Pos Pos Pos saldo :partea :partea b{debito[b<0]} A1 b{credito[b<0]} A1 b{credito[b>0]} A1 Negativa :partet :partet :partet a{ch{f]} R1 ch[ok] Aut OK a{ch[fc]} R1 a{ch{f]} R1 ch[ok] Aut OK a{ch[fc]} a{ch{f]} R1 R1 ch[ok] Aut OK a{ch[fc]} R1 /r [OK] R OK /r [F] R F a{debito[b<0]} R1 /r [OK] R OK /r [F] R F /r [OK] R OK /r [F] R F a{credito[b<0]} R1 /r [OK] R OK /r [OK] R OK /r [F] R F /r [F] a{credito[b>0]} R1 R F R F /r [OK] R OK /r [F] A1 A1 A1 A1 /r [OK] R OK /r [F] R F REJ REJ A1 A1 /r [OK] R OK /r [F] R F REJ REJ /r [OK] R OK /r [F] R F REJ REJ Negativa Negativa Negativa Negativa POS POS AAC Repetição de Estados de Aspectos Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA

53 Critério de Cobertura Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA Mensura a completeza de um conjunto de casos de teste All Round-trip Paths estende a cobertura All Round-trip Paths (Binder, 2001) Defeitos detectados Transições incorretas ou não implementadas Respostas incorretas ou não implementadas numa transição Estados não implementados Alguns estados corrompidos Defeitos de Composição

54 O Protótipo de Apoio ao Teste KTest Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA Ferramenta OA e reflexiva Conceito de Meta Aspectos Load-time Weaving LTW Propicia: 1 Interpretar o MEIICA e gerar a AAC, via RTP Malg 2 Derivar ATCs a partir da AAC 3 Armazenar artefatos em formato XML 4 Submeter TIs à aplicação em teste 5 Gerar e armazenar resultados obtidos 6 Gerar relatórios com avaliações das assertivas 7 Avaliar resultados do teste (obtidos x esperados)

55 O Protótipo de Apoio ao Teste KTest (2) Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA

56 Falhas em Composição de Aspectos Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA 1 Funcionalidades de aspectos não atingidas 2 Propagação de erros em subaspectos 3 Funcionalidades interferem em outras funcionalidades 4 Aspectos podem apresentar diferentes comportamentos antes e depois da composição 5 Restrições temporais podem não ser respeitadas quando aspectos complexos são combinados 6 Um aspecto pode mudar a hierarquia da estrutura de uma composição

57 Estudo de Caso II AST Cen. 1 (LCF LCar LG) Modelo Comportamental A Estratégia RTP O Protótipo KTest Falhas em Composição de Aspectos Exemplo do MEIICA

58 Principais Conclusões Permite separar código funcional de não-funcional Facilita alguns tipos particulares de teste OO As classes passam a conter somente código relativo as suas funcionalidades Manutenção facilitada: realizada em pontos específicos Pode-se ligar e desligar funcionalidades sem editar o código Funcionalidade desligada não tem custo de desempenho Se a interface dos advices mudam, não é preciso alterar as classes por ele afetadas

59 Principais Conclusões (2) Teste OA Técnicas de teste OP (+ consolidadas), OO (em aprimoramento) e OA (em elaboração) Inclusão e detecção da quinta potencial fonte de defeitos em POAs: composição de aspectos Desenvolvimento do, capaz de propiciar: interações classe classe interações classe aspecto interações aspecto aspecto Atendimento ao modelo de defeitos proposto por Alexander et al. (2004)

60 LADDAD, R. AspectJ in Action Manning Publications Co., RESENDE, A.M.P.; Silva, C.C. Programação Orientada a Aspectos em Java Ed. Brasport, 2005 LADDAD, R. I want my AOP!, Portal AOSD

61 Finalizando... Dúvidas? Comentários? Sugestões? Prof. Dr. Fábio Fagundes Silveira DCT UNIFESP fabiosilveira.net

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos Uma Breve Introdução Universidade Estadual do Oeste do Paraná Centro de Ciências Exatas e Tecnológicas Colegiado de Informática Prof. Luiz Antonio Roteiro Introdução Evolução

Leia mais

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo Aspect-Oriented Programming AOP Comentários Sérgio Crespo Separation of Concerns O princípio de Separation of Concerns já é utilizado por engenheiros de software para o gerenciar a complexidade de sistemas

Leia mais

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,

Leia mais

Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com

Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com Resumo: Demonstrar de forma clara e prática como a Programação Orientada a Aspectos pode ajudar a

Leia mais

Identificação de Interesses Transversais: Uma Visão Geral

Identificação de Interesses Transversais: Uma Visão Geral Identificação de Interesses Transversais: Uma Visão Geral Paulo Afonso Parreira Júnior paulojunior@jatai.ufg.br 24 de Maio de 2013 Agenda Breve Histórico sobre Desenvolvimento de Software Separação de

Leia mais

Separaçã. ção Multi-Dimensional de Interesses

Separaçã. ção Multi-Dimensional de Interesses OD 2002 Uma nova abordagem para modelagem de requisitos Separaçã ção Multi-Dimensional de Interesses Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos 1. Discutir as limitações existentes no

Leia mais

Paradigmas de Linguagens de Programação

Paradigmas de Linguagens de Programação Paradigmas de Linguagens de Programação Faculdade Nova Roma Cursos de Ciências da Computação (6 Período) Prof Adriano Avelar - Site: wwwadrianoavelarcom Email: edsonavelar@yahoocombr PROGRAMAÇÃO ORIENTADA

Leia mais

OUTROS PARADIGMAS: PROGRAMAÇÃO

OUTROS PARADIGMAS: PROGRAMAÇÃO OUTROS PARADIGMAS: PROGRAMAÇÃO CONCORRENTE, MODELO DE DADOS RELACIONAL (SQL), REDES DE PETRI, ORIENTAÇÃO A ASPECTOS Luenne Nailam e Uendson Teles PROGRAMAÇÃO CONCORRENTE PROGRAMA O que é um Programa? O

Leia mais

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Lincoln S. Rocha (lincoln@great.ufc.br) POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Background Artigo do Kiczales 2 3 1 Objetivo da Programação?

Leia mais

AspectJ em 20 minutos

AspectJ em 20 minutos AspectJ em 20 minutos Diogo Vinícius Winck (diogo.winck@gmail.com) Vicente Goetten (goetten@gmail.com) 1. Introdução A Orientação a Objetos está consolidada. Entretanto, nem todas as promessas que este

Leia mais

Aspectos para Leigos. Programação Orientada a. Aprenda a dar os primeiros passos no paradigma orientado a aspectos usando o AspectJ com anotações.

Aspectos para Leigos. Programação Orientada a. Aprenda a dar os primeiros passos no paradigma orientado a aspectos usando o AspectJ com anotações. Eduardo Guerra (guerra@mundoj.com.br / Twitter @emguerra) é desenvolvedor de frameworks, pesquisador em design de software, editor-chefe da revista MundoJ e professor do ITA, onde concluiu sua graduação,

Leia mais

7 Trabalhos Relacionados A idéia é tentar dar todas as informações que ajudem os outros a julgar o valor da sua contribuição; não apenas as informações que levem o julgamento a uma direção em particular.

Leia mais

Estudo de Caso Sobre Programação Orientada a Aspectos Utilizando Protocolo RMI

Estudo de Caso Sobre Programação Orientada a Aspectos Utilizando Protocolo RMI Estudo de Caso Sobre Programação Orientada a Aspectos Utilizando Protocolo RMI Felipe da Silva Borges André Luis Castro de Freitas 1 1 Centro de Ciências Computacionais Universidade Federal do Rio Grande

Leia mais

3. PARADIGMA ORIENTADO A OBJETOS

3. PARADIGMA ORIENTADO A OBJETOS Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Curso de Bacharelado em Informática

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Curso de Bacharelado em Informática Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Curso de Bacharelado em Informática Utilização de aspectos para implementar variabilidades de uma linha de produto de software

Leia mais

Introdução ao Projeto. Projeto de Software. 1) Objetivos. 2) Importância. Análise e Projeto - Diferenças. Importância. Silvia Regina Vergilio - UFPR

Introdução ao Projeto. Projeto de Software. 1) Objetivos. 2) Importância. Análise e Projeto - Diferenças. Importância. Silvia Regina Vergilio - UFPR Introdução ao Projeto Projeto de Software Silvia Regina Vergilio - UFPR 1. Objetivos 2. Importância 3. Fundamentos 4. O processo de projeto 5. Métodos de projeto 6. Analisando a estrutura do software 1)

Leia mais

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Tecnologias Web. Padrões de Projeto - Camada de Apresentação Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller

Leia mais

UM MODELO DE QUALIDADE PARA AVALIAR DOCUMENTOS DE REQUISITOS ORIENTADOS A ASPECTOS

UM MODELO DE QUALIDADE PARA AVALIAR DOCUMENTOS DE REQUISITOS ORIENTADOS A ASPECTOS Desarrollo de Software Orientado a Aspectos, DSOA 2006 Asociado a XV Jornadas de Ingeniería del Software y Bases de Datos J. Araújo, J. Hernández, E. Navarro y M. Pinto (Eds) Sitges (Barcelona), Octubre

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos

Leia mais

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO ESCOLA DE INFORMÁTICA APLICADA CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO ESCOLA DE INFORMÁTICA APLICADA CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO ESCOLA DE INFORMÁTICA APLICADA CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO Um Estudo da Representação Gráfica de Aspectos em BPM utilizando a ferramenta

Leia mais

ELAINE DA SILVA MONTEIRO. Implementação de um Aplicativo Utilizando AODM, Java e AspectJ

ELAINE DA SILVA MONTEIRO. Implementação de um Aplicativo Utilizando AODM, Java e AspectJ ELAINE DA SILVA MONTEIRO Implementação de um Aplicativo Utilizando AODM, Java e AspectJ Palmas TO 2004 ii ELAINE DA SILVA MONTEIRO Implementação de um Aplicativo Utilizando AODM, Java e AspectJ Monografia

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Linguagem de Modelagem Unificada A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem para especificação, É uma linguagem para

Leia mais

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos Bibliotecas Dinâmicas Motivação class MyClass { public MyClass() {......... public void method1 () public... void method1 () {...... public int method2() {... public...

Leia mais

Uma Abordagem usando PU

Uma Abordagem usando PU Uma Abordagem usando PU Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Baseada em: Rational Software Corpotation G. Booch, Ivar Jacobson,

Leia mais

CRITÉRIOS DE TESTABILIDADE PARA AVALIAÇÃO DO MODELO DE PROJETO DE SOFTWARE ORIENTADO A ASPECTOS

CRITÉRIOS DE TESTABILIDADE PARA AVALIAÇÃO DO MODELO DE PROJETO DE SOFTWARE ORIENTADO A ASPECTOS PAULO AFONSO PARREIRA JÚNIOR CRITÉRIOS DE TESTABILIDADE PARA AVALIAÇÃO DO MODELO DE PROJETO DE SOFTWARE ORIENTADO A ASPECTOS Monografia de graduação apresentada ao Departamento de Ciência da Computação

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Engenharia de software para desenvolvimento com LabVIEW: Validação

Engenharia de software para desenvolvimento com LabVIEW: Validação Engenharia de software para desenvolvimento com LabVIEW: Orientação a Objetos, Statechart e Validação André Pereira Engenheiro de Vendas (Grande São Paulo) Alexsander Loula Coordenador Suporte Técnico

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

5 Um Modelo Generativo Orientado a Aspectos

5 Um Modelo Generativo Orientado a Aspectos 71 5 Um Modelo Generativo Orientado a Aspectos Nesse capítulo é apresentado um modelo generativo orientado a aspectos que é usado para instanciação de variabilidades OO e OA encontradas em arquiteturas

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

Frameworks. Pasteur Ottoni de Miranda Junior Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem

Leia mais

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê? Bibliografia Desenvolvimento Orientado a Objetos Prof.: Edson dos Santos Cordeiro LARMAN, Graig. Utilizando UML e padrões. Porto Alegre: Bookman, 2000. STAA, Arndt von. Programação modular. Rio de Janeiro:

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

O que é modularidade? Sérgio Soares scbs@cin.ufpe.br

O que é modularidade? Sérgio Soares scbs@cin.ufpe.br O que é modularidade? Sérgio Soares scbs@cin.ufpe.br AOSD Aspectos tem como objetivo aumentar a modularidade dos sistemas...... mas 2 O que é modularidade??? 3 Parnas, 1972 modularization is a mechanism

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Sua resposta deve conter entre 50 a 100 palavras, incluindo o exemplo.

Sua resposta deve conter entre 50 a 100 palavras, incluindo o exemplo. MT-1 Explique como efeitos colaterais podem levar a comportamentos indesejados em um programa. Apresente um exemplo. Sua resposta deve conter entre 50 a 100 palavras, incluindo o exemplo. Esboço de resposta:

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio [Web Boas Práticas Design Patterns Orientação a Objetos AOP Spring.NET] Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

JSafe: um framework de segurança

JSafe: um framework de segurança JSafe: um framework de segurança Lauren A. B. Sanches 1, Silvia C. Bertagnolli 1 1 Sistemas de Informação Centro Universitário Ritter dos Reis (UniRitter) 90840-440 Porto Alegre RS Brasil {lauren,silviacb}@ritterdosreis.br

Leia mais

Documentação de um Produto de Software

Documentação de um Produto de Software Documentação de um Produto de Software Versão 3.0 Autora: Profª Ana Paula Gonçalves Serra Revisor: Prof. Fernando Giorno 2005 ÍNDICE DETALHADO PREFÁCIO... 4 1. INTRODUÇÃO AO DOCUMENTO... 6 1.1. TEMA...

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Uma Abordagem para Acompanhamento de Regras de Negócio Transversais ao Longo do Desenvolvimento

Uma Abordagem para Acompanhamento de Regras de Negócio Transversais ao Longo do Desenvolvimento Uma Abordagem para Acompanhamento de Regras de Negócio Transversais ao Longo do Desenvolvimento Marco Antonio De Grandi, Valter Vieira de Camargo, Edmundo Sérgio Spoto Centro Universitário Eurípides de

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA ESCOLA DE INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA ESCOLA DE INFORMÁTICA APLICADA UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA ESCOLA DE INFORMÁTICA APLICADA AO-BPM 2.0: Modelagem de Processos Orientada a Aspectos Felipe Souza Tavares Leonardo

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática i Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Estudo de Princípios para Modelagem Orientada a Aspectos Igor Fábio Steinmacher TG-17-02 Maringá - Paraná Brasil i Universidade

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 REVISÃO BANCO DE DADOS I O que é banco de dados? Ou seja afinal o que é um SGBD? REVISÃO BD I REVISÃO DE BD I Um Sistema de Gerenciamento de

Leia mais

Desenho de Software. Desenho de Software 1

Desenho de Software. Desenho de Software 1 Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

Leia mais

UML 2. Gilleanes T. A. Guedes. Novatec

UML 2. Gilleanes T. A. Guedes. Novatec UML 2 uma abordagem prática Gilleanes T. A. Guedes Novatec Sumário Agradecimentos...15 Sobre o Autor...16 Prefácio...17 Capítulo 1 Introdução à UML...19 1.1 Breve Histórico da UML...19 1.2 Por Que Modelar

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Desenho de Software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt desenho Desenho (dicionário Priberam on-line) do Lat.! designu s. m., arte de representar

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Banco de Dados I Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Dados

Leia mais

Revisão de Banco de Dados

Revisão de Banco de Dados Revisão de Banco de Dados Fabiano Baldo 1 Sistema de Processamento de Arquivos Antes da concepção dos BDs o registro das informações eram feitos através de arquivos. Desvantagens: Redundância e Inconsistência

Leia mais

CAPITULO 1 - PROGRAMAÇÃO ORIENTADA A OBJETOS

CAPITULO 1 - PROGRAMAÇÃO ORIENTADA A OBJETOS 11 INTRODUÇÃO A programação orientada a objetos foi motivada devido a necessidade de desenvolvimento de software de qualidade, para uma maior reutilização e níveis de manutenção, e assim aumentar a produtividade

Leia mais

Programação Modular. Alessandro Garcia. DI/PUC-Rio Março 2013

Programação Modular. Alessandro Garcia. DI/PUC-Rio Março 2013 Programação Modular Alessandro Garcia DI/PUC-Rio Março 2013 Programação Modular Quem sou eu? Quem são vocês? Qual é o problema abordado no curso? Qual é o objetivo do curso Organização: aulas, avaliação

Leia mais

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA Introduçãoa Engenhariade Software Prof. Anderson Cavalcanti UFRN-CT-DCA O que é Software? O que é software? São programas de computadores, em suas diversas formas, e a documentação associada. Um programa

Leia mais

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

Leia mais

Relatório do Trabalho Final da Disciplina de Engenharia de Software de Componentes

Relatório do Trabalho Final da Disciplina de Engenharia de Software de Componentes Relatório do Trabalho Final da Disciplina de Engenharia de Software de Componentes 1. Proposta de trabalho final: Thiago Coelho Prado Configuração em tempo de compilação de um servidor de imagens médicas

Leia mais

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models Universidade Federal do Rio Grande do Norte Departamento de Informática e Matemática Aplicada Natal/RN - Brasil A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código Análise e Projeto Orientados a Aspectos Alcides Pamplona alcides.pamplona@gmail.com Tópicos Separação de Interesses Programação Estruturada e Entrelaçamento de Código Espalhamento de Código 1 Separação

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia - Departamento de Informática Especialização em Desenvolvimento de Sistemas para WEB

Universidade Estadual de Maringá Centro de Tecnologia - Departamento de Informática Especialização em Desenvolvimento de Sistemas para WEB Universidade Estadual de Maringá Centro de Tecnologia - Departamento de Informática Especialização em Desenvolvimento de Sistemas para WEB Investigação de Metodologias de Desenvolvimento de Sistemas WEB

Leia mais

Engenharia de Softwares e Sistema IF682 (2012.1) Bruno Medeiros(bmo@cin.ufpe.br)

Engenharia de Softwares e Sistema IF682 (2012.1) Bruno Medeiros(bmo@cin.ufpe.br) Engenharia de Softwares e Sistema IF682 (2012.1) Bruno Medeiros(bmo@cin.ufpe.br) Algumas definições Engenharia de Software conjunto de tecnologias e práticas usadas para construir software de qualidade

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 04 SGBD Sistemas Gerenciadores de Bancos de Dados Prof. MSc. Edilberto Silva edilms@yahoo.com Conceitos Básicos DADOS: são fatos em sua forma primária. Ex: nome do funcionário,

Leia mais

Reuso da Implementação Orientada a Aspectos do Padrão de Projeto Camada de Persistência

Reuso da Implementação Orientada a Aspectos do Padrão de Projeto Camada de Persistência Reuso da Implementação Orientada a Aspectos do Padrão de Projeto Camada de Persistência Copyright 2004, Ricardo Argenton Ramos, 1, Valter Vieira de Camargo, 2 Rosângela Penteado, Paulo Cesar Masiero Permission

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Engenharia de Software

Engenharia de Software Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 UML Linguagem Unificada de Modelagem Análise Orientada a Objetos com UML Análise Orientada a Objetos com UML Diagrama de Caso

Leia mais

Programação orientada a aspecto no paradigma orientado a serviço: Uma análise sobre acoplamento tecnológico

Programação orientada a aspecto no paradigma orientado a serviço: Uma análise sobre acoplamento tecnológico UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA Relatórios Técnicos do Departamento de Informática Aplicada da UNIRIO n 0013/2009 Programação orientada a aspecto

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem? UML e Diagramas de Casos de Uso e Classes Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem de modelagem

Leia mais

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java Como Plataforma... 6 Finalidade... 9 Características... 11 Perspectivas... 13 Exercícios... 14 CAPÍTULO

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Implementação de segurança em sites web baseada na programação orientada a aspectos

Implementação de segurança em sites web baseada na programação orientada a aspectos Implementação de segurança em sites web baseada na programação orientada a aspectos Pedro Abs Instituto Tecnológico de Aeronáutica ITA Praça Marechal Eduardo Gomes, 50 Vila das Acácias, CEP 12.228-900

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

Estudo de Caso Sistema de Caixa Automático

Estudo de Caso Sistema de Caixa Automático Estudo de Caso Sistema de Caixa Automático Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Notas de Aula Ulrich Schiel Notas de Aula Ariadne

Leia mais

Definição de Processos

Definição de Processos Definição de Processos Introdução Prof Ms Vinícius Costa de Souza www.inf.unisinos.br/~vinicius viniciuscs@unisinos.br Agenda Processos Definição Componentes Documentação Características Aplicações Nomenclaturas

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software Prof. Dr. Juliano Lopes de Oliveira (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications)

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Banco de Dados Aula 02. Colégio Estadual Padre Carmelo Perrone Profº: Willian

Banco de Dados Aula 02. Colégio Estadual Padre Carmelo Perrone Profº: Willian Banco de Dados Aula 02 Colégio Estadual Padre Carmelo Perrone Profº: Willian Conceitos básicos Dado: Valor do campo quando é armazenado dento do BD; Tabela Lógica: Representa a estrutura de armazenamento

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br MC302A Modelagem de Sistemas com UML Prof. Fernando Vanini vanini@ic.unicamp.br Modelamento de Sistemas e Orientação a Objetos O paradigma de Orientação a Objetos oferece um conjunto de características

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications) A boa organização lógica do documento

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Padrões. Projeto (Design) de Software

Padrões. Projeto (Design) de Software Padrões Projeto de Softwares Categorias de Padrões Processo de Tradução de modelos de análise (isentos de tecnologia, lógicos) para modelos de projeto (development-ready, físicos) Qual a Tecnologia Alvo

Leia mais

CURSO DE SISTEMAS DE INFORMAÇÃO

CURSO DE SISTEMAS DE INFORMAÇÃO 1 CURSO DE SISTEMAS DE INFORMAÇÃO EMENTÁRIO DAS DISCIPLINAS 2015.1 BRUSQUE (SC) 2015 2 SUMÁRIO 1ª FASE... 4 01 ARQUITETURA DE COMPUTADORES... 4 02 FILOSOFIA... 4 03 FUNDAMENTOS MATEMÁTICOS... 4 04 TEORIA

Leia mais