Avoiding Code Pitfalls in Aspect-Oriented Programming
|
|
- Filipe Rodrigues
- 4 Há anos
- Visualizações:
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 Adriano Santos, Péricles Alves, Eduardo Figueiredo, Fabiano Ferrari 18º Simpósio Brasileiro de Linguagens de Programação Maceió, 2014 Apresentação:
Leia maisENGENHARIA 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 maisLevantamento, 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 maisAspectJ. 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 maisAgenda 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 mais10/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 maisParadigmas 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 maisTí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 maisNosso 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 maisExtraçã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 maisAspect 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 maisProgramaçã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 mais9 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 maisUNIVERSIDADE 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 maisSeminá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 maisCLÁ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 maisRequisitos 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 maisConclusõ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 maisSEMINÁ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 maisAgenda 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 maisDefiniçã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 maisCONCEITOS 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 maisDesenvolvimento 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 maisIntroduçã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 maisManutençã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 maisUNIVERSIDADE 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 maisIDENTIFICAÇÃ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 maisDESCOMPLICANDO 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 maisDaniel 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 maisModelo 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 maisBy 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 maisMedidas 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 maisProf. 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 maisGestã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 maisLinguagem 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 maisUNIVERSIDADE 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 maisTelevisao 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 maisConceitos 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 mais27) 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 maisAvaliaçã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 maisRefatoraçã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 maisAná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 maisConceitos 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 maisProf. 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 maisAula 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 maisA 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 maisTECNOLOGIAS 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 maisProgramaçã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 maisSistemas 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 maisGrupo: 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 maisMaté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 mais5 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 mais2 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 maisTarefas 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 maisVerificaçã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 maisReengenharia, 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 maisLista 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 maisIntroduçã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 maisPanorâ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 maisDesenvolvimento 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 maisExtreme 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 maisFATORES 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 mais15/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 maisRefatorando
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 maisCampus 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 maisEngenharia 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 maisIntroduçã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 maisInstituto 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 maisSistemas 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 mais2. 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 maisIntroduçã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 maisEngenharia 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 maisLinguagem 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 maisFundamentos 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 maisENSINO 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 maisTé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 maisAvaliaçã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 maisPONTIFÍ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 maisProgramaçã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 maisEncapsulamento 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 maisEngenharia 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 maisINF1636 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 maisEncapsulamento 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 maisProgramaçã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 maisAULA 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 maisAVALIAÇÃ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 maisTela 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 maisAula 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 maisAcademia 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 maisBanco 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 maisProgramaçã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 maisCAMILO 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 maisUma 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 maisMedidas 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 maisRPC 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 mais8 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 maisSistemas 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
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 maisGerê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