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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

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

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

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

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma

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

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

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

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

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais

Modelos. Comunicação com clientes

Modelos. Comunicação com clientes Material baseado nas notas de aula: Maria Luiza M. Campos IME/2005 Carlos Heuser - livro Projeto de Banco de Dados CasaNova / PUC/RJ Prof. MSc. Edilberto Silva edilms@yahoo.com Sistemas de Informação Brasília/DF

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

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

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

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

Engenharia de Sistemas de Computador

Engenharia de Sistemas de Computador Engenharia de Sistemas de Computador Sistema é um conjunto ou disposição de elementos que é organizado para executar certo método, procedimento ou controle ao processar informações. Assim, o que é um Sistema????????

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

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

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

Engenharia de Software

Engenharia de Software Engenharia de Requisitos Cap. 06 e 07 Sommerville 8 ed. REQUISITOS DE SOFTWARE» Requisitos são descrições de serviços fornecidos pelo sistema e suas restrições operacionais. REQUISITOS DE USUÁRIOS: São

Leia mais

Evolução de Software e Refatoração

Evolução de Software e Refatoração Evolução de Software e Refatoração Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software é usado; O ambiente de negócio muda; Erros devem ser reparados; Novos computadores

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

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

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

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

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

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

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas Gerenciamento de Gerenciamento de Configuração Novas versões de sistemas de software são criadas quando eles: Mudam para máquinas/os diferentes; Oferecem funcionalidade diferente; São configurados 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

Engenharia de Software na Prática Hélio Engholm Jr.

Engenharia de Software na Prática Hélio Engholm Jr. Engenharia de Software na Prática Hélio Engholm Jr. Novatec Sumário Agradecimentos... 17 Sobre o autor... 18 Prefácio... 19 Capítulo 1 Desenvolvimento de software para o valor de negócios... 20 1.1 Qualidade

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

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

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

Customização de Software como um Meio para o Desenvolvimento de Sistemas de Software

Customização de Software como um Meio para o Desenvolvimento de Sistemas de Software Customização de Software como um Meio para o Desenvolvimento de Sistemas de Software Thiago Bianchi 1 Elisa Yumi Nakagawa 2 1 IBM - International Business Machines 04753-080, São Paulo, SP, Brazil tbianchi@br.ibm.com

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

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

Engenharia de Software Aplicações de Internet

Engenharia de Software Aplicações de Internet Engenharia de Software Aplicações de Internet Eduardo Santos eduardo.edusantos@gmail.com eduardo.santos@planejamento.gov.br www.softwarepublico.gov.br Histórico Por que existe a Internet? Por que existe

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

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

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

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

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

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 3 Planejamento e Aula 8 do Projeto Aula 08 do Projeto SUMÁRIO INTRODUÇÃO... 3 ACOMPANHAMENTO DO PROJETO... 3 1. do Progresso...

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

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

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

Visão do Usuário da DSM

Visão do Usuário da DSM Memória Compartilhada Distribuída Visão Geral Implementação Produtos 1 Memória Compartilhada Distribuída Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

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

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

CCE 876 - Engenharia de Software. Introdução à Engenharia de Software

CCE 876 - Engenharia de Software. Introdução à Engenharia de Software CCE 876 - Engenharia de Software Introdução à Engenharia de Software Objetivos Introduzir a Engenharia de Software e explicar sua importância. Introduzir os conceitos principais relacionados à Engenharia

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

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

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

Leia mais

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação 1 Ruironaldi dos Santos Cruz ARTIGO ARQUITETURA ORIENTADA A SERVIÇO SOA SERVICE

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

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

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

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 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Aprenda as melhores práticas para construir um completo sistema de teste automatizado Aprenda as melhores práticas para construir um completo sistema de teste automatizado Renan Azevedo Engenheiro de Produto de Teste e Medição -Américas Aprenda as melhores práticas para construir um completo

Leia mais

Herança e Polimorfismo de Inclusão

Herança e Polimorfismo de Inclusão Herança e Polimorfismo de Inclusão Sérgio Queiroz de Medeiros sergio@ufs.br 29 de maio de 2012 1 Polimorfismo Ad-hoc Coerção Sobrecarga (Overloading) Universal Paramétrico Inclusão 2 Herança Herança é

Leia mais

Arquitetura de Software

Arquitetura de Software Agenda de Software - Fundamentos e Tendências - Objetivos e Contexto de Software (A.S.) A.S. no Processo de Desenvolvimento Passado, Presente e Futuro Prof. Marco Fagundes mfagunde@tre-pa.gov.br 1 2 Objetivos

Leia mais

Programação Orientada a Objetos em Java. Herança

Programação Orientada a Objetos em Java. Herança Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados

Leia mais

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO PROVA DE NÍVEL SUPERIOR CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO 1. O ambiente Delphi suporta o desenvolvimento de aplicações orientadas a objetos por meio da linguagem Object

Leia mais