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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcrição

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

2 Separation of Concerns O princípio de Separation of Concerns já é utilizado por engenheiros de software para o gerenciar a complexidade de sistemas de software. Concern o que é? Segundo o Webster(dicionário): s. negócio, assunto, interesse, incumbência, solicitude, cuidado, inquietação, preocupação. Vt. Pertencer, dizer respeito a, preocupar, afligir, interessar, relacionar-se.

3 Separation of Concerns Separation of Concerns??? É um conceito central em engenharia de software. Ele trata da habilidade de identificar, encapsular e manipular assuntos relavantes de um software para um objetivo particular. Este conceito permite que softwares possam ser organizados e decompostos em assuntos gerenciáveis e de fácil manipulação.

4 OOP - revisão UFBA Departameto de Ciência da Computação junho 2003

5 OOP - Limitações

6 OOP - Limitações UFBA Departameto de Ciência da Computação junho 2003

7 OOP - Limitações UFBA Departameto de Ciência da Computação junho 2003

8 OOP - Limitações UFBA Departameto de Ciência da Computação junho 2003

9 OOP - Limitações UFBA Departameto de Ciência da Computação junho 2003

10 OOP - Limitações UFBA Departameto de Ciência da Computação junho 2003

11 OOP - Limitações Solução usando Padrões! UFBA Departameto de Ciência da Computação junho 2003

12 AOP: Definição Aspect Oriented Programming é uma nova técnica de programação que oferece uma linguagem explicita para suporte a modularização de decisões de design que atalha (cross-cut) as funcionalidades de um programa.

13 Programming Aspect Oriented Programming é uma nova técnica de programação que oferece uma linguagem explicita para suporte a modularização de decisões de design que atalha (cross-cut) as funcionalidades de um programa. Como isso se reflete em PROGRAMAS???

14 Programming Representação no mundo binário Objetos São uma boa alternativa para facilitar separation of concerns. Eles nos permitem utilizar o conceito de encapsulamento de unidades de funcionalidades em várias níveis, de simples estruturas de dados a GUI até servidores de rede, dentro de classes bem definidas! MAS objetos são limitados em suas habilidades para modularizar concerns que não estejam localizados dentro de classes!

15 AOP - Motivação

16 AOP - Motivação

17 AOP Motivação Por exemplo, considere uma aplicação bancária escrita em Java que possui um método que simplesmente transfere um valor de uma conta para outra:

18 AOP Motivação Porém, numa aplicação bancária construída para o mundo real, este método de transferência está longe do adequado. É necessário incluir verificações de segurança, que determinam se o usuário possui autorização para realizar a operação. É preciso também "envolver" a operação em uma transação para prevenir perda de dados. Finalmente, é preciso fazer o log dos dados da aplicação. Uma versão simplificada que contém estes novos objetivos (concerns) é mostrada a seguir:

19 AOP Motivação

20 AOP Motivação

21 Programming O que é um Aspect? É uma nova unidade de software, que aparece para oferecer melhor manipulação e atalhos de concerns. Assim como objetos, Aspects podem tanto ser utilizados nas etapas de design bem como de implementação. Design: permite se pensar mais facilmente em definir composição e ou atalhos sobre concerns. Implementação: AOP Languages permite implementar mais facilmente os atalhos definidos no design.

22 Programming Um Aspect NÃO está presente dentro de uma classe! Logo um Aspect oferece mais semântica a uma classe presente em um design. Um Aspect modulariza o código para um determinado concern e descreve como o código do concern deve ser integrado ou entrelaçado no código do sistema de software.

23 Programming O que AOP pode realizar? Capturar o histórico, depurar e oferecer instrumentos de suporte para sistemas complexos por meio de pequenos ou poucos Aspects, em vez de multiplos fragmentos de códigos macarronicos dentro de classes. Capturar recursos que podem ser compartilhados em algoritmos envolvendo várias classes por meio de um simples Aspect. Capturar erros de manipulação de protocolos etc..

24 Programming Sistema de software Design Aspects Aspects Aspects

25 Crosscutting A AOP permite ao programador separar os interesses comuns do sistema (que fogem a típica divisão de classes). Esses comportamentos não se encaixam naturalmente dentro de um modulo de um programa. Esse tipo de comportamento é conhecido como um comportamento que crosscutting (atravessa) o sistema Na OOP a unidade natural de modularização é a classe, e um comportamento do tipo crosscutting está espalhado em varias classes

26 Crosscutting UFBA Departameto de Ciência da Computação junho 2003

27 Aplicações da AOP Logging, tracing e profiling Garantir o cumprimento de regras arquiteturais Otimização: pooling e caching Acesso a recursos compartilhados em sistemas concorrentes Autenticação e autorização Acesso transacional

28 Benefícios da programação orientada a aspectos Menos responsabilidades em cada parte - Como interesses entrecortantes são separados em seus próprios módulos, as partes do programa que lidam com a lógica de negócios não ficam poluídas com código que lida com interesses periféricos. Melhor modularização - Como os módulos em AOP não se chamam diretamente, há uma redução no nível de acomplamento. Evolução facilitada - Novos aspectos podem ser acrescentados facilmente sem necessidade de alterar o código existente Mais possibilidades de reutilização - Como o código não mistura interesses, aumentam-se as possibilidades de se reutilizar módulos em sistemas diferentes.

29 AOP Elementos Básicos Um ponto de junção é qualquer ponto identificável durante a execução de um programa. Aspectos podem ser associados a pontos de junção e executados antes, depois, ou ao invés deles. Existem diversos pontos de junção reconhecidos pelo AspectJ: Chamada de métodos Execução de métodos Construtores Acesso aos campos Tratamento de exceções Inicialização de classes

30 AOP Elementos Básicos Pontos de corte (pointcuts) Um ponto de corte (pointcut) é uma construção sintática para se agrupar um conjunto de pontos de junção. Sua sintaxe básica é a seguinte (ilustrada com um exemplo): public pointcut nome() : call (void Receita.print()) A primeira parte é a declaração de restrição de acesso nesse caso, public, mas pointcuts podem ser private ou protected. A palavra chave pointcut denota que estamos declarando um ponto de corte. Todo pointcut tem um nome qualquer, e pode receber parâmetros nesse caso, o pointcut não recebe parâmetros. Depois dos dois pontos (:) obrigatórios vem o tipo dos pontos de junção agrupados pelo pointcut nesse caso temos um pointcut do tipo call, que indica uma chamada de método. Finalmente vem a assinatura do pointcut, uma especificação dos pontos de junção aos quais o pointcut se refere.

31 AOP Elementos Básicos Pontos de corte (pointcuts)

32 AOP Elementos Básicos Advice Advice é uma estrutura que denota o que um aspecto deve fazer, ou seja, qual o comportamento do aspecto. Em termos mais formais, o advice designa a semântica comportamental do aspecto. Todo advice está associado a um pointcut, que define pontos de junção. Há três tipos de advice: before: executa antes do ponto de junção after: executa depois do ponto de junção around: executa "em volta" do ponto de junção; esse tipo de advice serve para substituir a execução do ponto de junção pela execução do advice, ou executar parte do advice antes do ponto de junção e outra parte depois. UFBA Departameto de Ciência da Computação junho 2003

33 Relembrando Ponto de junção: um ponto de junção (join point) é qualquer ponto identificável durante a execução de um programa (Chamada de métodos, Execução de métodos, Construtores, Acesso aos campos,tratamento de exceções, Inicialização de classes) Pontos de corte: Um ponto de corte (pointcut) é uma construção sintática para se agrupar um conjunto de pontos de junção. Advice: é uma estrutura que denota o que um aspecto deve fazer, ou seja, qual o comportamento do aspecto. Em termos mais formais, o advice designa a semântica comportamental do aspecto. Todo advice está associado a um pointcut, que define pontos de junção. advice é definido de maneira similar ao método. Porém, o advice nunca é invocado explicitamente. Ele é invocado somente quando um pointcut ligado a ele tem resultado igual a true (verdadeiro)

34 Exemplo UFBA Departameto de Ciência da Computação junho 2003

35 Exemplo UFBA Departameto de Ciência da Computação junho 2003

36 Arquiteturas Orientadas a AOP

37 Arquiteturas Orientadas a AOP Uma Arquitetura de Software é composta por um conjunto de aspectos Neste caso,um aspecto é um componente composto e o join point é um conector! Ponto de junção: um ponto de junção (join point) é qualquer ponto identificável durante a execução de um programa (Chamada de métodos, Execução de métodos, Construtores, Acesso aos campos,tratamento de exceções, Inicialização de classes)

38 Arquiteturas Orientadas a AOP

39 Ferramentas - Ambientes

40 AspectJ AspectJ é uma linguagem de aspecto, ela é uma extensão da linguagem Java. Conta com um montador (Weaver) para unir o programa de componente com o programa de aspecto.

41 AspectJ

42 AspectJ - Site

43 AOSD - Site

44

45

46

47

48

49

50

51

52

53

54 AOP: temas correlatos Subject Oriented Programming Meta-Programação Programação Adaptativa Filter Composition

55 AOP: Referências Site do software AspectJ que extende Java para suportar o conceito de Aspects. Connections between Demeter/Adaptive Programming and Aspect-Oriented Programming (AOP) Evaluating Emerging Software Development Technologies Lessons Learned from Assessing Aspect-oriented Programming

56 AOP: Artigos interessantes Atlas: A Case Study in Building a Web-Based Learning Environment using Aspect-oriented Programmaning Mik Kerrsten and Gail C. Murphy Aspect-Oriented Programming Gregor Kiczales, john Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin An Initial Assessment of Aspect-oriented Programming Robert J. Walker, Elisa L.A. baniassad and Gail Murphy FAQ e Overview do site da xerox

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

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

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

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

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

Extensão da UML para Modelagem Orientada a Aspectos Baseada em AspectJ

Extensão da UML para Modelagem Orientada a Aspectos Baseada em AspectJ Extensão da UML para Modelagem Orientada a Aspectos Baseada em AspectJ IGOR FÁBIO STEINMACHER 1 ITANA MARIA DE SOUZA GIMENES 2 JOSÉ VALDENI DE LIMA 1 1 UFRGS Universidade Federal do Rio Grande do Sul II

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

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

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

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

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

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

PROGRAMAÇÃO ORIENTADA À ASPECTOS: UMA PERSPECTIVA ATUAL SOBRE AS VANTAGENS E DESVANTAGENS NO USO DE UM PARADIGMA DIFERENCIADO

PROGRAMAÇÃO ORIENTADA À ASPECTOS: UMA PERSPECTIVA ATUAL SOBRE AS VANTAGENS E DESVANTAGENS NO USO DE UM PARADIGMA DIFERENCIADO PROGRAMAÇÃO ORIENTADA À ASPECTOS: UMA PERSPECTIVA ATUAL SOBRE AS VANTAGENS E DESVANTAGENS NO USO DE UM PARADIGMA DIFERENCIADO ASPECT-ORIENTED PROGRAMMING: A PERSPECTIVE ON THE LATEST ADVANTAGES AND DISADVANTAGES

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

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

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32

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

Utilização da Metodologia de Desenvolvimento Orientado a Aspectos no Mercado Local

Utilização da Metodologia de Desenvolvimento Orientado a Aspectos no Mercado Local Universidade Federal de Pernambuco (UFPE) Centro de Informática (CIN) Mestrado Profissionalizante em Ciência da Computação Orientadora: Profª Carina Alves Utilização da Metodologia de Desenvolvimento Orientado

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

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

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Softwares Aplicativos Banco de Dados

Softwares Aplicativos Banco de Dados Softwares Aplicativos Banco de Dados INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Serviços 3. Usuários 4. Evolução 5. Exemplos 03 Banco

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

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

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

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 Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

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

ARQUITETURA DE SOFTWARE

ARQUITETURA DE SOFTWARE ARQUITETURA DE SOFTWARE Em seu livro, que constitui um referencial sobre o assunto, Shaw e Garlan discutem arquitetura de software da seguinte maneira: Desde quando o primeiro programa foi dividido em

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

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

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

Desenvolvimento e Teste de Aplicações Orientadas a Aspectos: Desenvolvimento e Aplicações Orientadas a Aspectos: Uma Prof. Dr. Fábio Fagundes Silveira fsilveira@unifesp.br http://fabiosilveira.net GPES Grupo de Pesquisa em Engenharia de DCT Departamento de Ciência

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

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

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

Tópicos em Engenharia de Computação

Tópicos em Engenharia de Computação Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas

Leia mais

Programação Orientada a Aspectos com

Programação Orientada a Aspectos com Programação Orientada a Aspectos com AspectJ Autor: O curso segue a estrutura do livro AspectJ in Action, de Ramnivas Laddad, que foi a bibliografia recomendada. AULA TÓPICO Módulo 1 - Revisão de orientação

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software Ciência da Computação ENGENHARIA DE SOFTWARE Análise dos Requisitos de Software Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução Tipos de requisitos Atividades Princípios da

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

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

ESPECIFICAÇÃO E VERIFICAÇÃO DE REGRAS DE DESIGN EM PROGRAMAS JAVA E ASPECTJ

ESPECIFICAÇÃO E VERIFICAÇÃO DE REGRAS DE DESIGN EM PROGRAMAS JAVA E ASPECTJ VII CONGRESSO DE INICIAÇÃO CIENTÍFICA DA UNIVERSIDADE FEDERAL DE CAMPINA GRANDE PIBIC/CNPq/UFCG-2010 ESPECIFICAÇÃO E VERIFICAÇÃO DE REGRAS DE DESIGN EM PROGRAMAS JAVA E ASPECTJ Solon Barbosa de Aguiar

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

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

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO INSTITUTO DE COMPUTAÇÃO

UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO INSTITUTO DE COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO INSTITUTO DE COMPUTAÇÃO HELIOMAR KANN DA ROCHA SANTOS PROGRAMAÇÃO ORIENTADA A ASPECTOS NITERÓI 2008 2 HELIOMAR KANN DA ROCHA SANTOS PROGRAMAÇÃO ORIENTADA

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Planejamento da disciplina: Modelagem de processos de negócio

Planejamento da disciplina: Modelagem de processos de negócio UNIVERSIDADE FEDERAL DE MINAS GERAIS / INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Planejamento da disciplina: Modelagem de processos de negócio Professor: Clarindo Isaías Pereira

Leia mais

Especificação Suplementar

Especificação Suplementar Especificação Suplementar Versão Histórico de Revisões Data Versão Descrição Autor 29/10/2014 2.0 2.1 funcionalidade e segurança de M. Vinícius acesso 30/10/2014

Leia mais

Introdução à Engenharia de Software

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

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

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

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

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

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

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

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo? O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Unified Modeling Language Benno Eduardo Albert benno@ufrj.br O que é modelagem Tripé de apoio ao desenvolvimento. Notação: UML Ferramenta: Rational Rose. 2 O que é modelagem

Leia mais

Modelos de Qualidade de Produto de Software

Modelos de Qualidade de Produto de Software CBCC Bacharelado em Ciência da Computação CBSI Bacharelado em Sistemas de Informação Modelos de Qualidade de Produto de Software Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

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

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

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

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC CURSO: Bacharelado em Ciência da Computação DISCIPLINA: ANPS Análise e Projeto de Sistemas AULA NÚMERO: 3 DATA: PROFESSOR: Murakami Sumário 1 APRESENTAÇÃO...1 2 DESENVOLVIMENTO...1 2.1 Revisão...1 2.1.1

Leia mais

Programação Orientada a Aspectos - Técnicas e paradigmas para a modularização de software.

Programação Orientada a Aspectos - Técnicas e paradigmas para a modularização de software. Programação Orientada a Aspectos - Técnicas e paradigmas para a modularização de software. Dissertação de Mestrado apresentada por Luís Filipe Félix de Sá Sob orientação do Prof. Doutor Ramiro Gonçalves

Leia mais

Amway - Política de privacidade

Amway - Política de privacidade Amway - Política de privacidade Esta Política de Privacidade descreve como a Amway Brasil e determinadas filiadas, inclusive a Amway América Latina (conjuntamente Amway ) utilizam dados pessoais coletados

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

MC-102 Aula 01. Instituto de Computação Unicamp

MC-102 Aula 01. Instituto de Computação Unicamp MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2015 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos

Leia mais

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora OOP - Java Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora 1 Sumário Java Aviso! História do Java Programação Orientada à Objetos Os quatro pilares da OOP Abstração

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

Unidade 2.1 Modelos de Referência

Unidade 2.1 Modelos de Referência Faculdade INED Curso Superior de Tecnologia: Banco de Dados Redes de Computadores Disciplina: Redes de Computadores Prof.: Fernando Hadad Zaidan 1 Unidade 2.1 Modelos de Referência 2 Bibliografia da disciplina

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

Leia mais

Introdução à Banco de Dados. Definição

Introdução à Banco de Dados. Definição Universidade Federal da Bahia Departamento de Ciência da Computação (DCC) Disciplina: Banco de Dados Profª. Daniela Barreiro Claro Introdução à Banco de Dados Definição Um banco de dados é uma coleção

Leia mais

INTRODUÇÃO À PROGRAMAÇÃO

INTRODUÇÃO À PROGRAMAÇÃO O que é um programa? Matlab vs outras linguagens de programação Paradigma de programação Fases de desenvolvimento de um programa CPU Hardware Periféricos Sistema Software Aplicação O que é um programa?

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

Unidade 2.1 Modelos de Referência. Bibliografia da disciplina. Modelo OSI. Modelo OSI. Padrões 18/10/2009

Unidade 2.1 Modelos de Referência. Bibliografia da disciplina. Modelo OSI. Modelo OSI. Padrões 18/10/2009 Faculdade INED Unidade 2.1 Modelos de Referência Curso Superior de Tecnologia: Redes de Computadores Disciplina: Fundamentos de Redes Prof.: Fernando Hadad Zaidan 1 2 Bibliografia da disciplina Bibliografia

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

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

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais