Avoiding Code Pitfalls in Aspect-Oriented Programming

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

Download "Avoiding Code Pitfalls in Aspect-Oriented Programming"

Transcrição

1 Avoiding Code Pitfalls in Aspect-Oriented Programming A. Santos, P. Alves, E. Figueiredo, and F. Ferrari Science of Computer Programming (SCP, 2015) Apresentação: Aline Brito

2 Programação Orientada a Aspecto (AOP) Técnica que visa melhorar a modularidade do software através da separação de interesses transversais em unidades modulares chamadas aspectos 2

3 Objetivo Investigar os tipos de erros cometidos por iniciantes na Programação Orientada a Aspecto 3

4 Experimento 4

5 Etapas 5

6 Etapas Trabalho individual ou dupla 6

7 Etapas 4 aplicativos ATM, Chess, Telecom, Task Manager 7

8 Sistema ATM Terminal de autoatendimento 600 linhas de código, 12 módulos Interesse refatorado: Logging 8

9 Sistema ATM Interesse refatorado: Logging Registra todas as operações realizadas por um usuário de caixa eletrônico 19 linhas de código, 4 módulos 9

10 Sistema Chess Jogo de xadrez com uma interface gráfica linhas de código, 13 módulos Interesse refatorado: ErrorMessages 10

11 Sistema Chess Interesse refatorado: ErrorMessages Mostra mensagens quando um jogador tenta violar uma regra do jogo de xadrez 36 linhas de código, 8 módulos 11

12 Sistema Telecom Gerenciamento de chamadas telefônicas 200 linhas de código, 8 módulos Interesse refatorado: Timing 12

13 Sistema Telecom Interesse refatorado: Timing Registra o tempo decorrido em uma determinada chamada 30 linhas de código, 4 módulos 13

14 Sistema Task Manager Gerenciamento de tarefas 209 linhas de código, 6 módulos Interesse refatorado: Observer 14

15 Sistema Task Manager Interesse refatorado: Observer Notifica todas as classes que estão observando as tarefas quando ocorre uma mudança 3 módulos 15

16 Perfil dos participantes Estudantes ou pessoas recém formadas Eles preencheram um questionário sobre seu nível de conhecimento em Programação Orientada a Objetos 16

17 Perfil dos participantes 17

18 Perfil dos participantes 18

19 Perfil dos participantes Poucos participantes não estão familiarizados com OOP 19

20 Tarefas Refatorações usando a linguagem de programação AspectJ Duas horas de treinamento sobre Programação Orientada a Aspecto e AspectJ 20

21 Tarefas Foi solicitado a cada participante refatorar um interesse usando a IDE Eclipse e o plugin AJDT Cada grupo recebeu o código fonte e a descrição do interesse transversal 21

22 Resultados 22

23 Erros Recorrentes 23

24 Erros recorrentes Lógica incorreta Uso incorreto do Advice Erros de compilação ou warning Interesse duplicado Excesso de refatorações Refatorações incompletas 24

25 Lógica Incorreta O código refatorado se comporta de maneira diferente do original 25

26 Lógica Incorreta Antes: Relatório de logs chamado dentro do da estrutura switch 26

27 Lógica Incorreta Depois: Relatório de logs sempre é exibido após o método performtransactions() 27

28 Uso incorreto do Advice Uso de tipo incorreto de Advice ao refatorar o interesse 28

29 Uso incorreto do Advice Antes: Uma operação de depósito é registrada ao final do método credit() 29

30 Uso incorreto do Advice Depois: Operação de depósito registrada no início da transação 30

31 Erros de Compilação e Warning Erros que levaram a uma falha sintática ou warning sinalizado pelo AspectJ 31

32 Erros de Compilação e Warning Ausência de parâmetros no método createtask() 32

33 Excesso de refatorações Parte do código que não pertence a um interesse é refatorado para aspecto 33

34 Excesso de refatorações 34

35 Excesso de refatorações Antes: Interesse para refatorar: timer.start() 35

36 Excesso de refatorações Depois: Mensagem refatorada junto com o interesse 36

37 Análise dos Resultados 37

38 Erros por sistema 38

39 Erros por sistema Refatoração incompleta é o erro mais comum Motivo: dificuldade para identificar ou separar o interesse 39

40 Erros por nível de conhecimento em POO 40

41 Erros por nível de conhecimento em POO Quanto mais experiente são os programadores OOP, mais erros relacionados a AOP são cometidos 41

42 Erros por nível de experiência profissional 42

43 Erros por nível de experiência profissional Os programadores mais experientes tiveram menos erros de compilação ou refatorações em excesso 43

44 Erros por grupo 44

45 Erros por grupo A programação em pares não é a melhor opção em alguns casos 45

46 Armadilhas na AOP 46

47 Constantes Constantes implementando interesses levaram a erros no experimento 47

48 Constantes A constante LOG implementa o interesse Logging no sistema ATM 48

49 Atributos Non-Dedicated Atributos com tipos primitivos ou tipos não dedicados ao interesse levaram a erros no experimento 49

50 Atributos Non-Dedicated Dedicado ao interesse (poucos erros) Tipo primitivo 50

51 Árvores de Herança Disjuntas A falta de relacionamento entre as árvores da herança pode levar a refatorações incompletas 51

52 Árvores de Herança Disjuntas 52

53 Árvores de Herança Disjuntas Duas ou mais árvores de herança (propenso ao erro) 53

54 Localização Partes do código fonte do interesse espalhadas no sistema podem levar a erros 54

55 Localização 55

56 Localização Interesses espalhados no código fonte (Advice Type errado) 56

57 Variáveis locais Interesse implementado em método que acessa uma variável local pode dificultar a refatoração 57

58 Variáveis Locais 58

59 Ferramenta ConcernReCS2 59

60 Ferramenta ConcernReCS2 Plug-in Eclipse Encontra falhas na AOP Extende ConcernMapper, ferramenta para mapear métodos e atributos Apresenta armadilhas de código Interesse, linha, arquivo, percentual de erro 60

61 Limitações 61

62 Limitações Uso da linguagem AOP (AspectJ) Sistemas e interesses selecionados Dimensão do estudo 62

63 Considerações Finais 63

64 Considerações Finais Documentação dos erros recorrentes Programação em pares pode ajudar os programadores a evitar alguns erros (ex., refatoração incompleta) 64

65 Considerações Finais Resultados podem ajudar a aperfeiçoar novas ferramentas Ferramenta ConcernReCS para detecção de armadilhas no código 65

66 Considerações Finais Alguns erros são mais comuns entre os programadores mais experientes em POO 66

Avoiding code pitfalls in Aspect-Oriented Programming

Avoiding code pitfalls in Aspect-Oriented Programming Avoiding code pitfalls in Aspect-Oriented Programming Adriano Santos, Péricles Alves, Eduardo Figueiredo, Fabiano Ferrari 18º Simpósio Brasileiro de Linguagens de Programação Maceió, 2014 Apresentação:

Leia mais

ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW

ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW How do Programmers learn AOP? Péricles Alves, Alcemir Santos, Eduardo Figueiredo e Fabiano Ferrari Aluno: Adriano Lages dos Santos Toda descoberta da ciência

Leia mais

Levantamento, Análise e Gestão Requisitos. Aula 03

Levantamento, Análise e Gestão Requisitos. Aula 03 Levantamento, Análise e Gestão Requisitos Aula 03 Agenda Paradigma da Orientação a Objetos Classes e objetos Abstração Encapsulamento Herança e polimorfismo Associação de objetos Coesão e acoplamento Levantamento

Leia mais

AspectJ. AspectJ. Extensões de AspectJ. Pontos de Junção. Exemplos de Pontos de Junção. Modelo de Pontos de Junção

AspectJ. AspectJ. Extensões de AspectJ. Pontos de Junção. Exemplos de Pontos de Junção. Modelo de Pontos de Junção DCC / ICEx / UFMG AspectJ AspectJ Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Linguagem orientada a aspectos mais madura e difundida Extensão simples da linguagem Java Gera arquivos.class compatíveis

Leia mais

Agenda da Aula. Desenvolvimento de Software Orientado a Aspectos. Aspectos... Motivação. Um pouco de história. Programação Estruturada

Agenda da Aula. Desenvolvimento de Software Orientado a Aspectos. Aspectos... Motivação. Um pouco de história. Programação Estruturada Engenharia de Software Aula 23 Agenda da Aula Desenvolvimento de Software Orientado a Aspectos Introdução a desenvolvimento de software orientado a aspectos Interesses centrais e interesses transversais

Leia mais

10/10/2012. Artigo: Autores:

10/10/2012. Artigo: Autores: Artigo: Apresentar um estudo sistemático sobre as métricas de acoplamento na Programação Orientada a Aspectos e seu impacto na manutenibilidade e estabilidade do projeto. Autores: Rachel Burrows, Alessandro

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

Título PROCESSO LABES ESPECIALIZADO PARA DESENVOLVIMENTO SEGUNDO O PARADIGMA ESTRUTURADO. Projeto. Analista; Requisitos Funcionais Escopo; Cliente;

Título PROCESSO LABES ESPECIALIZADO PARA DESENVOLVIMENTO SEGUNDO O PARADIGMA ESTRUTURADO. Projeto. Analista; Requisitos Funcionais Escopo; Cliente; 1/8 1. PROCESSO DE DESENVOLVIMENTO Levantamento Requisitos Análise Requisitos Projeto Implementação Testes 1.1 LEVANTAMENTO DE REQUISITOS 1.1.1 Intificação Requisitos Funcionais Requisitos Funcionais Escopo;

Leia mais

Nosso Primeiro Programa Java

Nosso Primeiro Programa Java Java linguagem, jvm, jdk, jre, ide Nosso Primeiro Programa Java Professoras: Ariane Machado Lima Fátima L. S. Nunes 1 Lembrando os objetivos desta disciplina Aprender a programar. Para isso precisamos

Leia mais

Extração de Aspectos. PUC Minas Instituto de Informática. Mestrado em Informática. Aluno: Marcelo Nassau Malta

Extração de Aspectos. PUC Minas Instituto de Informática. Mestrado em Informática. Aluno: Marcelo Nassau Malta Transformações de Código C para Extração de Aspectos PUC Minas Instituto de Informática Mestrado em Informática Aluno: Marcelo Nassau Malta Orientador: Prof. Marco Túlio de Oliveira Valente Sumário Motivação

Leia mais

Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ

Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ Objetivos O objetivo dessa apresentação é proporcionar uma visão geral sobre a programação orientada

Leia mais

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos João Manuel Bonita Pereira Loureiro Aluno do 3º ano da LEIC joao.loureiro@fe.up.pt João Pedro Couto Soares Gonçalves da Costa Aluno do 4º ano da LEIC joao.costa@fe.up.pt

Leia mais

9 Conclusão e trabalhos futuros

9 Conclusão e trabalhos futuros 255 9 Conclusão e trabalhos futuros O aumento da complexidade das aplicações de software de hoje em dia e o advento de tecnologias inovadoras e recentes fazem com que os sistemas de software incorporem

Leia mais

UNIVERSIDADE FEDERAL DE P ERNAMBUCO

UNIVERSIDADE FEDERAL DE P ERNAMBUCO UNIVERSIDADE FEDERAL DE P ERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA 2015.2 Programação Orientada a Aspectos com AspectJ nos frameworks Java atuais PROPOSTA DE TRABALHO DE GRADUAÇÃO

Leia mais

Seminário de aspectos: conceitos, características e exemplos

Seminário de aspectos: conceitos, características e exemplos Seminário de aspectos: conceitos, características e exemplos Daniel Bruno Conrado Thiago Gottardi Departamento de Computação Universidade Federal de São Carlos (UFSCar) São Carlos SP Brasil dbconrado@gmail.com,

Leia mais

CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER

CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER

Leia mais

Requisitos de sistemas

Requisitos de sistemas Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento

Leia mais

Conclusões. Baseado no Capítulo 9 de Programming Language Processors in Java, de Watt & Brown

Conclusões. Baseado no Capítulo 9 de Programming Language Processors in Java, de Watt & Brown Conclusões Baseado no Capítulo 9 de Programming Language Processors in Java, de Watt & Brown QUESTÕES FUNDAMENTAIS 1. Correção do código gerado 2. Desempenho do compilador: a. Notificação de erros; b.

Leia mais

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Visão Geral dos Paradigmas Quais os paradigmas mais comuns? Do que é composto um programa

Leia mais

Agenda da Aula. Programação Orientada a Características com AHEAD. Característica Modular. Programação Orientada a Características (FOP)

Agenda da Aula. Programação Orientada a Características com AHEAD. Característica Modular. Programação Orientada a Características (FOP) DCC / ICEx / UFMG Agenda da Aula Programação Orientada a Características com AHEAD Programação Orientada a Características (FOP) Segundo Don Batory Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo

Leia mais

Definição de Conjuntos de Junção Robustos usando Aspect-Aware Interfaces e Aspectos Anotadores

Definição de Conjuntos de Junção Robustos usando Aspect-Aware Interfaces e Aspectos Anotadores Definição de Conjuntos de Junção Robustos usando Aspect-Aware Interfaces e Aspectos Anotadores Leonardo Humberto Guimarães Silva Orientador: Marco Túlio de Oliveira Valente Programa de Pós-graduação em

Leia mais

CONCEITOS BÁSICOS E MODELO DE PROJETO

CONCEITOS BÁSICOS E MODELO DE PROJETO CONCEITOS BÁSICOS E MODELO DE PROJETO Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Na aula passada... Abstração Arquitetura Padrões de Projeto Separação por interesses (por afinidades) Modularidade

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de

Leia mais

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

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Manutenção de Frameworks Orientados a Objetos Usando Orientação a Aspectos

Manutenção de Frameworks Orientados a Objetos Usando Orientação a Aspectos Manutenção de Frameworks Orientados a Objetos Usando Orientação a Aspectos André L. de Oliveira 1, Valter V. de Camargo, Rosângela Ap. D. Penteado 1 Departamento de Computação Universidade Federal de São

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018 Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade

Leia mais

IDENTIFICAÇÃO DE ASPECTOS EM NÍVEL DE ANÁLISE BASEADO EM ATRIBUTOS DE REQUISITOS NÃO FUNCIONAIS

IDENTIFICAÇÃO DE ASPECTOS EM NÍVEL DE ANÁLISE BASEADO EM ATRIBUTOS DE REQUISITOS NÃO FUNCIONAIS IDENTIFICAÇÃO DE ASPECTOS EM NÍVEL DE ANÁLISE BASEADO EM ATRIBUTOS DE REQUISITOS NÃO FUNCIONAIS Leandro Siqueira da Silva [Voluntário], Simone Nasser Matos [Orientadora] Departamento de Informática Câmpus

Leia mais

DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹

DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹ DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹ ¹ Universidade Federal do Pampa (UNIPAMPA) Bagé RS Brasil RESUMO Este trabalho

Leia mais

Daniel Wildt

Daniel Wildt Orientação a Objetos 1 Daniel Wildt http://danielwildt.blogspot.com Agenda 2 Orientação a Objetos Classe x Objeto Representação classe Atributos / operações Construtores e Destrutores Liberando memória

Leia mais

Modelo do Mundo Real. Abstração. Interpretação

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa

By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa Problema; AOP; Aspect J; Proposta ao Problema; Conclusões; Referências. Desenvolver os tipos abstratos de dados: lista, fila, pilha e deque. Estes

Leia mais

Medidas de Esforço de Desenvolvimento de Software

Medidas de Esforço de Desenvolvimento de Software Medidas de Esforço de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 O que você entende por Métricas de software? Questão 1 Resposta O que você entende por Métricas

Leia mais

Prof. Luiz A. Nascimento

Prof. Luiz A. Nascimento Prof. Luiz A. Nascimento Qual a importância da Engenharia de Software? O desenvolvimento de um software envolve processos muitos complexos. A engenharia de software estabelece um modelo para se construir

Leia mais

Gestão de Segurança da Informação. Interpretação da norma NBR ISO/IEC 27001:2006. Curso e Learning Sistema de

Gestão de Segurança da Informação. Interpretação da norma NBR ISO/IEC 27001:2006. Curso e Learning Sistema de Curso e Learning Sistema de Gestão de Segurança da Informação Interpretação da norma NBR ISO/IEC 27001:2006 Todos os direitos de cópia reservados. Não é permitida a distribuição física ou eletrônica deste

Leia mais

Linguagem de Programação I Apresentação da Disciplina

Linguagem de Programação I Apresentação da Disciplina Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014 Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade

Leia mais

Televisao tamanho tela emitirsom. conectarperifericos

Televisao tamanho tela emitirsom. conectarperifericos 1 - Introdução a Programação Orientada a Objeto Para tentar solucionar o problema do baixo reaproveitamento de código, surgiu a idéia da Programação Orientada a Objeto (POO). A POO não é nova, sua formulação

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema: Modelos de Ciclo de Vida e Metodologias de Software 33) No SCRUM, uma iteração que segue um ciclo (PDCA) e entrega incremento de software pronto é denominada: A) Backlog. B) Sprint. C) Daily scrum. D)

Leia mais

Avaliação e Integração de Ferramentas de Análise Estática de Código

Avaliação e Integração de Ferramentas de Análise Estática de Código Avaliação e Integração de Ferramentas de Análise Estática de Código Programa de Pós-graduação em Informática Aluno: Sílvio José de Souza Orientador: Marco Túlio de Oliveira Valente 1 Introdução Ferramentas

Leia mais

Refatoração: uma introdução. Prof. André Luiz Peron Martins Lanna

Refatoração: uma introdução. Prof. André Luiz Peron Martins Lanna Refatoração: uma introdução Prof. André Luiz Peron Martins Lanna Agenda Introdução Idéias preliminares Um primeiro exemplo Conclusões Bibliografia Introdução Em DSW o assunto principal foi o Projeto de

Leia mais

Análise de Requisitos

Análise de Requisitos Análise de Requisitos Prof.ª: Érika A. Barrado Analisar x Projetar Análise: significa investigar, descobrir ou desvendar algo; Consiste em encontrar o conjunto de requisitos para um dado software; Definida

Leia mais

Conceitos de Sistemas de Banco de Dados INE 5323

Conceitos de Sistemas de Banco de Dados INE 5323 Conceitos de Sistemas de Banco de Dados INE 5323 Prof. Mario Dantas Introdução Por quê Sistemas de Banco de Dados Visão dos Dados Modelos de Dados Linguagem de Definição de Dados (DDL) Linguagem de Manipulação

Leia mais

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

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

Leia mais

Aula 02 Conceitos e Princípios de Modularidade 1

Aula 02 Conceitos e Princípios de Modularidade 1 Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Agosto 2016 Lembretes Horário das aulas inicio cada aula a partir de 13:15 Sítio (site) da disciplina: www.inf.puc-rio.br/~inf1301

Leia mais

A IMPORTÂNCIA DOS REQUISITOS NÃO FUNCIONAIS NO DESENVOLVIMENTO DE UM SISTEMA ORIENTADA A ASPECTO

A IMPORTÂNCIA DOS REQUISITOS NÃO FUNCIONAIS NO DESENVOLVIMENTO DE UM SISTEMA ORIENTADA A ASPECTO UNIVERSIDADE DO PLANALTO CATARINENSE CURSO DE SISTEMAS DE INFORMAÇÃO (BACHARELADO) JOSÉ AUGUSTO ZANOTTO FRANKLIN A IMPORTÂNCIA DOS REQUISITOS NÃO FUNCIONAIS NO DESENVOLVIMENTO DE UM SISTEMA ORIENTADA A

Leia mais

TECNOLOGIAS DE CONSTRUÇÃO

TECNOLOGIAS DE CONSTRUÇÃO TECNOLOGIAS DE CONSTRUÇÃO DE SOFTWARE CMP 1069 Prof. Me. Fábio Assunção Parte 2 PONTO DE VISTA DO USUÁRIO? Resume ao o que o software faz, não como. Um olhar para o o que. Lembrar-se dos testes caixa-preta,

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Herança e Polimorfismo Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos

Leia mais

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; ! Sistemas Distribuídos Aspectos de Projeto de SD Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com Aspectos de Projeto em SD! Transparência;! Abertura;! ;! Heterogeneidade;! Segurança;! Tratamento

Leia mais

Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda

Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda INTRODUÇÃO Scala é uma linguagem de programação de propósito geral projetado para expressar padrões de programação comuns de uma forma concisa. Foi desenvolvido

Leia mais

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Matéria Introdutória Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Necessidade de acessar as informações de maneira eficiente e segura Evolução histórica: desenvolvimento

Leia mais

5 Trabalhos Relacionados

5 Trabalhos Relacionados 5 Trabalhos Relacionados Este capítulo busca apresentar os trabalhos diretamente relacionados com a presente dissertação e as subseções seguintes apresentam os trabalhos focados em ferramentas (Seção 5.1)

Leia mais

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 20 2 Desenvolvimento de Software Orientado a Aspectos A divisão em partes é um importante instrumento para se reduzir a complexidade de sistemas de software. É muito difícil para o ser humano compreender

Leia mais

Tarefas de Gerenciamento de Configuração

Tarefas de Gerenciamento de Configuração Tarefas de Gerenciamento de Configuração 1- Tarefas Preliminares 2- Identificação 3- Controle de Mudanças 4- Controle de Versão 5- Auditoria de Configuração 6- Relato de Situação 7- Controle de Interface

Leia mais

Verificação e Validação

Verificação e Validação Verificação vs Validação Verificação e Validação Verificação: Estamos construindo o produto corretamente? O software deve estar de acordo com sua especificação. Validação: Estamos construindo o produto

Leia mais

Reengenharia, Refatoração e Bad Smell

Reengenharia, Refatoração e Bad Smell DCC / ICEx / UFMG Reengenharia, Refatoração e Bad Smell Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reengenharia de Sistemas Reestruturação ou reescrita de parte ou de todo um sistema legado

Leia mais

Lista de Exercícios AV1

Lista de Exercícios AV1 Seminários Engenharia Integrados de Usabilidade em Sistemas de Informação SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO Lista de Exercícios AV1 Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão

Leia mais

Introdução a Orientação a Objetos

Introdução a Orientação a Objetos Introdução a Orientação a Objetos Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 01 - Introdução 1 Qualidade de Software Obter

Leia mais

Panorâmica da Programação Orientada a Objetos

Panorâmica da Programação Orientada a Objetos Panorâmica da Programação Orientada a Objetos Programação orientada a objetos (POO) é uma das maiores inovações na área de desenvolvimento de software. É importante você entender a POO e limitações das

Leia mais

Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Qualificação de Mestrado Instituto de Matemática

Leia mais

Extreme Programming: Valores e Práticas

Extreme Programming: Valores e Práticas Programação Extrema Extreme Programming: Valores e Práticas Prof. Mauro Lopes 1-31 34 Objetivos Anteriormente trabalhamos os conceitos do Desenvolvimento Tradicional e do Desenvolvimento Ágil. Trouxemos

Leia mais

FATORES E MÉTRICAS DE QUALIDADE

FATORES E MÉTRICAS DE QUALIDADE FATORES E MÉTRICAS DE QUALIDADE 1 2 FATORES DE QUALIDADE OPERAÇÃO DO PRODUTO CORRETITUDE (FAZ O QUE EU QUERO?) CONFIABILIDADE (SE COMPORTA COM PRECISÃO?) EFICIÊNCIA (RODARÁ TÃO BEM QUANTO POSSÍVEL?) INTEGRIDADE

Leia mais

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,

Leia mais

Refatorando

Refatorando Refatorando TUDO! @marcosbrizeno @marcosbrizeno A única maneira de ir rápido é ter qualidade https://pt.wikipedia.org/wiki/procrastinação esforço tempo esforço prazo tempo esforço tempo O Scrum resolve

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini   / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ENGENHARIA DE SOFTWARE Aula N : 16 Tema:

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 Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto

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 Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Instituto Superior Técnico 2008/2009. Primeiro Exame 27/6/2009

Instituto Superior Técnico 2008/2009. Primeiro Exame 27/6/2009 Instituto Superior Técnico Programação Avançada 2008/2009 Primeiro Exame 27/6/2009 Nome: Número: Escreva o seu número em todas as folhas da prova. O tamanho das respostas deve ser limitado ao espaço fornecido

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir

Leia mais

2. Introdução à Programação e Análise. Orientada a Objetos

2. Introdução à Programação e Análise. Orientada a Objetos Programação Orientada a Objetos em C++ Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG renato@cpdee.ufmg.br 2. Introdução à Programação e Análise.......... Orientada a Objetos 2.1. Introduçã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

Engenharia de Software

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

Leia mais

Linguagem Técnica I. Prof. Jonatas Bastos

Linguagem Técnica I. Prof. Jonatas Bastos Linguagem Técnica I Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com 1 Objetivo da Disciplina p Entender os conceitos da programação orientada a objetos; p Aplicar conceitos básicos relativos a objetos

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET43I Aula 3 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos Abstração em computação, paradigmas de linguagens de programação. Conceitos de orientação a objetos. Universidade

Leia mais

ENSINO MÉDIO INTEGRADO INFORMÁTICA LINGUAGEM DE PROGRAMAÇÃO Trabalho Semestral

ENSINO MÉDIO INTEGRADO INFORMÁTICA LINGUAGEM DE PROGRAMAÇÃO Trabalho Semestral ENSINO MÉDIO INTEGRADO INFORMÁTICA LINGUAGEM DE PROGRAMAÇÃO Trabalho Semestral CAÇA-PALAVRAS http://www.gileduardo.com.br/ifpr/pci/downloads/referencia.c 1. Introdução O trabalho proposto tem por objetivo

Leia mais

Técnicas para Reutilização de Software

Técnicas para Reutilização de Software DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de

Leia mais

Avaliação Quantitativa de Refatorações Orientadas a Aspectos

Avaliação Quantitativa de Refatorações Orientadas a Aspectos UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO LUIZA FIGUEIREDO PAGLIARI Avaliação Quantitativa de Refatorações Orientadas a Aspectos Dissertação

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO Disciplina: Técnicas de Programação I Curso: Engenharia de Computação/ Ciência

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

Encapsulamento e Modularização

Encapsulamento e Modularização Encapsulamento e Modularização Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo

Leia mais

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome: Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. A figura abaixo representa, simplificadamente, as fases do Modelo de Ciclo de Vida Cascata.

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 Conceitos de Orientação a Objetos Classe Objeto Mensagem Orientação

Leia mais

Encapsulamento e Modularização

Encapsulamento e Modularização Encapsulamento e Modularização Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo Encapsulamento Programação

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

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

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais

AVALIAÇÃO DE REFATORAÇÃO DE SOFTWARE COM PROGRAMAÇÃO ORIENTADA A ASPECTOS USANDO MÉTRICAS

AVALIAÇÃO DE REFATORAÇÃO DE SOFTWARE COM PROGRAMAÇÃO ORIENTADA A ASPECTOS USANDO MÉTRICAS UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO AVALIAÇÃO DE REFATORAÇÃO DE SOFTWARE COM PROGRAMAÇÃO ORIENTADA A ASPECTOS USANDO MÉTRICAS JOYCE

Leia mais

Tela Principal do ArgoUML. ArgoUML: Diagrama de Casos de Uso. Elementos do diagrama. Criar um novo diagrama. Elementos do diagrama

Tela Principal do ArgoUML. ArgoUML: Diagrama de Casos de Uso. Elementos do diagrama. Criar um novo diagrama. Elementos do diagrama DCC / ICEx / UFMG Tela Principal do ArgoUML ArgoUML: Diagrama de Casos de Uso Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Criar um novo diagrama Novo Diagrama de Casos de Uso Ator Caso de Uso

Leia mais

Aula 02 Conceitos e Princípios de Modularidade 1

Aula 02 Conceitos e Princípios de Modularidade 1 Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Março 2017 Lembretes Horário das aulas vamos ter que começar as 13:00 Definição de horário de monitoria Sítio (site) da

Leia mais

Academia Java IP JAVA: Introdução à Programação em Java (30 horas)

Academia Java IP JAVA: Introdução à Programação em Java (30 horas) Academia Java IP JAVA: Introdução à Programação em Java (30 horas) Índice Designação do Curso... 2 Duração Total... 2 Destinatários... 2 Perfil de saída... 2 Pré-Requisitos... 2 Objetivo Geral... 2 Objetivos

Leia mais

Banco de Dados e Aplicações em Negócios: Introdução.

Banco de Dados e Aplicações em Negócios: Introdução. Banco de Dados e Aplicações em Negócios: Introdução evandro@usp.br Motivação Extenso uso de Banco de Dados (BD) no cotidiano Bancos, serviços, comércio em geral (comércio eletrônico) Web e seus serviços

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,

Leia mais

CAMILO LOPES DE MEDEIROS NETO. SIMONE P. CRUZ (Orientador Geral) ADONAI ESTRELA MEDRADO (Orientador Específico)

CAMILO LOPES DE MEDEIROS NETO. SIMONE P. CRUZ (Orientador Geral) ADONAI ESTRELA MEDRADO (Orientador Específico) FACULDADE ZACARIAS DE GÓES 13/12/2008 CAMILO LOPES DE MEDEIROS NETO SIMONE P. CRUZ (Orientador Geral) ADONAI ESTRELA MEDRADO (Orientador Específico) Valença - Bahia 2008 TEMA Implicações de refatoração

Leia mais

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Defesa de Mestrado Instituto de Matemática e Estatística - Universidade

Leia mais

Medidas de Esforço de Desenvolvimento de Software

Medidas de Esforço de Desenvolvimento de Software Medidas de Esforço de Desenvolvimento de Software Unidade 1 Fundamentos de Métricas e Medidas Luiz Leão luizleao@gmail.com http://www.luizleao.com Unidade 1 Fundamentos de métricas e medidas Introdução

Leia mais

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

8 Princípios e Diretrizes para o Design Orientado a Aspectos

8 Princípios e Diretrizes para o Design Orientado a Aspectos 8 Princípios e Diretrizes para o Design Orientado a Aspectos Este Capítulo apresenta alguns princípios para o design de sistemas orientados a aspectos e diretrizes preliminares para a modelagem orientada

Leia mais

Sistemas da Informação. Banco de Dados I. Edson Thizon

Sistemas da Informação. Banco de Dados I. Edson Thizon Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

[Desenvolvimento OO com Java] Organizando suas classes

[Desenvolvimento OO com Java] Organizando suas classes Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Organizando suas classes Este obra está licenciada com uma licença

Leia mais

Gerência de Redes Visão Geral

Gerência de Redes Visão Geral Gerência de Redes Visão Geral Cássio D. B. Pinheiro pinheiro.cassio@ig.com.br cassio.orgfree.com Sumário Gerenciamento de Redes Evolução do Gerenciamento Áreas Funcionais Elementos do Gerenciamento Plataformas

Leia mais