Engenharia de Software Experimental

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

Download "Engenharia de Software Experimental 2013.2"

Transcrição

1 Engenharia de Software Experimental Avaliação de introdução de anomalias de software, após aplicação de refatorações automáticas para remoção de code smells Chrystinne Fernandes

2 Sumário Conceitos abordados Introdução Objetivos Gerais Específicos Hipóteses Método empírico Resultados esperados Considerações finais Referências 2

3 Conceitos abordados Qualidade de software Conjunto de métricas; Ferramentas de medição Code smells Conceito Exemplos Ferramentas de detecção Refatoração Conceito Exemplos Ferramentas 3

4 Introdução De que forma é possível avaliar a qualidade de um software? Escolha adequada do conjunto de métricas Ferramentas de medição O que são code smells? Ferramentas de detecção O que é refatoração? Por que, quando e como refatorar Impactos positivos e negativos no código, no projeto e na qualidade do sistema Ferramentas de refatoração 4

5 Qualidade de software Uso de formas de avaliação da qualidade consolidadas e amplamente aceitas; Conjunto de métricas que serão utilizadas: DAC: Data Abstraction Coupling; LCOM: Lack of Cohesion in Methods; NOM: Number Of Methods; RFC: Response For a Class; TCC: Tight Class Cohesion; WMC: Weighted Methods per Class; 5

6 Qualidade de software Categorias: Métricas de Coesão (LCOM e TCC); Métricas de Acoplamento (DAC e RFC); Métricas de Complexidade (WMC e RFC); Ferramentas para avaliação da qualidade do código: JDepend4Eclipse (Plugin Eclipse); Sonar (Plugin Eclipse); Eclipse-PMD (Plugin Eclipse); 6

7 Code smells Definição: São estruturas no código que segerem ou às vezes até gritam pela refatoração. If it stinks, change it. (by Kent Beck and Martin Fowler) Alguns exemplos: Duplicated Code; Long Method; Large Class; Long Parameter List; 7

8 Code smells alguns exemplos Divergent Change; Shotgun Surgery; Feature Envy; Data Clumps; Primitive Obsession; Switch Statements; Parallel Inheritance Hierarchies; Lazy Class; Speculative Generality; Temporary Field; Message Chains; 8

9 Code smells alguns exemplos Middle Man; Inappropriate Intimacy; Alternative Classes with Different Interfaces; Incomplete Library Class; Data Class; Refused Bequest; Smells que serão abordados: Feature Envy (Inveja dos dados); Long Method; Shotgun Surgery (Cirurgia com rifle); Large Class; Entre outros; 9

10 Refatoração Conceito: Refatoração é o processo de alteração de um sistema de software de modo que o comportamento externo do código não mude, mas que sua estrutura interna seja melhorada. (Martin Fowler) 10

11 Refatoração Alguns exemplos Extract Method; Inline Method; Replace Temp with Query; Split Temporary Variable; Move Method; Move Field; Extract Class; Replace Conditional with Polymorphism; Rename Method; Pull Up Field; Pull Up Method; 11

12 Refatoração Alguns exemplos Pull Up Constructor Body; Push Down Method; Push Down Field; Extract Subclass; Extract Superclass; Extract Interface; Collapse Hierarchy; Form Template Method; Replace Inheritance with Delegation; Replace Delegation with Inheritance; Separate Domain from Presentation; 12

13 Refatoração Refatorações que serão aplicadas: Move Method; Extract Method; Extract Class; Entre outras; 13

14 Ferramentas de Refatorãção Ferramentas de suporte ao processo de refatoração: Ferramenta Linguagem Sonar Java, C, PHP, Groovy SafeRefactor Java Together Java, C++, C# JDepend Java Jdeodorant Java PMD Java InFusion Java, C, C++ 14

15 Objetivos gerais Avaliar a introdução de anomalias em sistemas de software, após aplicação de refatorações automáticas para remoção de code smells. 15

16 Objetivos específicos Avaliar impactos na qualidade de sistema após as transformações, utilizando métricas bem definidas; Avaliar a relação custo-benefício resultante da remoção de cada code smell; Determinar quais anomalias foram geradas após a aplicação de cada refatoração e qual seu impacto na qualidade do sistema; Indicar quais refatorações produzem maior número anomalias; 16

17 Hipóteses H1 Ferramentas de detecção de code smells não são 100% confiáveis, podendo não reconhecer alguns code smells ou encontrar falsos positivos; H2 Ferramentas de refatoração não são 100% confiáveis, uma vez que seu uso não elimina todos os code smells; H3 O processo de refatoração traz riscos para o desenvolvimento de software, mesmo realizado de modo sistemático, com uma metodologia bem definida; 17

18 Hipóteses H4 O uso de ferramentas que automatizam o processo de refatoração introduz anomalias no código; H5 Quando aplicado de modo sistemático, o processo de refatoração aumenta a qualidade do software, melhorando a legibilidade e a manutenibilidade do código; 18

19 Método empírico Estudo de caso Serão avaliados 3 sistemas open source; 19

20 Resultados esperados Relação de code smells mais críticos do sistema, listados na ordem em que deveriam ser removidos através de ferramentas de refatoração; Relação das anomalias introduzidas após a refatoração e seu impacto na qualidade do sistema; 20

21 Considerações finais Dúvidas? Críticas? Sugestões Contato: 21

22 Referências [1] Martin Fowler et al. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, [2] Joshua Kerievsky, Refactoring To Patterns. Industrial Logic, Inc., [3] Fontana, Francesca Arcelli; Spinelli, Stefano. Impact of refactoring on quality code evaluation. WRT '11 Proceedings of the 4th Workshop on Refactoring Tools. Pages

23 Referências [4] Murphy-Hill et al How we refactor and how we know it. Proceedings of 31st ICSE, USA. [5] Arcoverde, Roberta. Identificando Quebras de Assertivas Causadas por Refatorações. [6] Arcoverde, Roberta. Ferramentas de Apoio a Refatorações. [7] Arendt, Thorsten; Taentzer, Gabriele. Integration of smells and refactorings within the Eclipse modeling framework. 23

24 Referências [8] [9] [10] toring/ [11] Understand for Java: [12] PMD: 24

25 Obrigada! 25

Refactoring Visão Geral do Catálogo de Martin Fowler

Refactoring Visão Geral do Catálogo de Martin Fowler Refactoring Visão Geral do Catálogo de Martin Fowler Jorge Fernandes Janeiro de 2001 Catálogo de Refactorings Composição de Métodos Movendo Características entre Objetos Organizando Dados Simplificando

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

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

2 Fundamentação. 2.1 Problemas de qualidade de código

2 Fundamentação. 2.1 Problemas de qualidade de código 2 Fundamentação Apresentamos inicialmente uma análise de problemas de código orientado a objetos. Essa análise, apesar de não poder ser aproveitada diretamente em códigos declarativos como a NCL, deve

Leia mais

Refatoração de Software

Refatoração de Software Refatoração de Software O que é? Atividade em que a estrutura interna de um software é modificada de modo que seu comportamento externo seja preservado; O objetivo é melhorar a qualidade do software; Cada

Leia mais

J820. Refactoring. Design no Código. argonavis.com.br. Helder da Rocha (helder@acm.org)

J820. Refactoring. Design no Código. argonavis.com.br. Helder da Rocha (helder@acm.org) J820 Refactoring Design no Código Helder da Rocha (helder@acm.org) O que é Uma técnica de design baseada no código Refactoring (ou refatoramento) permite que se altere o design de uma aplicação, grande

Leia mais

Utilização de Análise de Características Dinâmicas em analises estáticas.

Utilização de Análise de Características Dinâmicas em analises estáticas. Utilização de Análise de Características Dinâmicas em analises estáticas. Felipe A. Miziara 1, Marcelo A. Maia 1 1 Departamento de pós-graduação em Ciências da Computação Universidade Federal de Uberlândia

Leia mais

DataBase Refactoring em FireBird

DataBase Refactoring em FireBird DataBase Refactoring em FireBird Autor: Manoel Pimentel Medeiros É Engenheiro de Software, com mais de 15 anos na área de TI, atualmente trabalha com projetos Java pela Rhealeza(SP) e como Coach em metodologias

Leia mais

2 Fundamentação. 2.1 Manutenção e Evolução de Sistemas

2 Fundamentação. 2.1 Manutenção e Evolução de Sistemas 2 Fundamentação O objetivo deste trabalho é contribuir com pesquisas relacionadas à detecção de anomalias de modularidade em código orientado a objetos. Esses problemas normalmente trazem impactos negativos

Leia mais

Desenvolvimento Dirigido por Testes (TDD)

Desenvolvimento Dirigido por Testes (TDD) Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2008 www.agilcoop.org.br Mariana & Paulo O que é Desenvolvimento Dirigido por Testes? Dúvidas? Copyleft AgilCoop 2008 2 Testes a priori Conhecer

Leia mais

Projeto GingaForAll Especialização do GingaCC para Diversas Plataformas

Projeto GingaForAll Especialização do GingaCC para Diversas Plataformas Projeto GingaForAll Especialização do GingaCC para Diversas Plataformas Sindolfo Miranda Filho sindolfo@ppgsc.ufrn.br Departamento de Informática e Matematica Aplicada Polo de Tecnologia da Informação

Leia mais

Desenvolvimento Dirigido por Testes (TDD)

Desenvolvimento Dirigido por Testes (TDD) Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2010 www.agilcoop.org.br Hugo Corbucci O que é Desenvolvimento Dirigido por Testes? Entenderam? Copyleft AgilCoop 2010 2 Testes a priori Conhecer

Leia mais

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento Engenharia de Software Aula 12 Atividades Comuns Evolução de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 16 Abril 2012 1. Especificação de requisitos 2. Projeto de Software

Leia mais

Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman. Departamento de Ciência da Computação IME / USP. 3 de Abril de 2003 VI Semana da Computação

Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman. Departamento de Ciência da Computação IME / USP. 3 de Abril de 2003 VI Semana da Computação Refatoração: Melhorando a Qualidade de Código Pré-Existente Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman Departamento de Ciência da Computação IME / USP 3 de Abril de 2003 VI Semana da Computação 1 Refatoração

Leia mais

Desenvolvimento do Módulo de Pré-processamento e Geração de Imagens de. Imagens de Teste do Sistema DTCOURO

Desenvolvimento do Módulo de Pré-processamento e Geração de Imagens de. Imagens de Teste do Sistema DTCOURO Desenvolvimento do Módulo de Pré-processamento e Geração de Imagens de Teste do Sistema DTCOURO Willian Paraguassu Amorim 27 de julho de 2005 1 Título Desenvolvimento do Módulo de Pré-processamento e Geração

Leia mais

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12 JAVA Tópicos Especiais de Programação Orientada a Objetos 1 REFATORAÇÃO DE CÓDIGOS 2 REFATORAÇÃO O QUE É REFATORAR? Refatorar é alterar o código de um projeto existente, sem mudar o seu comportamento,

Leia mais

Modulo II Técnicas para desenvolvimento de Software Ágil

Modulo II Técnicas para desenvolvimento de Software Ágil Modulo II Técnicas para desenvolvimento de Software Ágil Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Vinicius Manhaes Teles, Extreme Programming,

Leia mais

Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes.

Fixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. fixture-factory_ Fixture-Factory Criando objetos para seus testes Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. Começamos testando métodos simples, mas

Leia mais

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura Introdução ao TDD #guma10anos Abril de 2014 Dionatan Moura about.me/dionatanmoura Introdução ao TDD Extreme Programming TDD Refatoração xunit Baby Steps Clean Code Patterns para TDD Red Bar Test Green

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

Refatorações para Melhoria da Legibilidade de Código Fortran

Refatorações para Melhoria da Legibilidade de Código Fortran Refatorações para Melhoria da Legibilidade de Código Fortran Dionatan K. Tietzmann 1, Gustavo Rissetti 1, Andrea S. Charão 1, Eduardo K. Piveta 1 Adriano Petry 2, Jonas R. de Souza 2 1 Universidade Federal

Leia mais

Gestão de Processos de Negócio em Curso de Sistemas de Informação:

Gestão de Processos de Negócio em Curso de Sistemas de Informação: Gestão de Processos de Negócio em Curso de Sistemas de Informação: Relato de Experiência Utilizando Software Livre Jessica Lasch de Moura¹, Gabriel Machado Lunardi¹, Andrea Schwertner Charão¹, Patrícia

Leia mais

2 Medição e Acompanhamento

2 Medição e Acompanhamento 2 Medição e Acompanhamento Para verificar a eficácia da aplicação da técnica de desenvolvimento dirigido por testes, foram usadas algumas métricas para determinar se houve melhoria ou degradação no processo

Leia mais

Table 1. Dados do trabalho

Table 1. Dados do trabalho Título: Desenvolvimento de geradores de aplicação configuráveis por linguagens de padrões Aluno: Edison Kicho Shimabukuro Junior Orientador: Prof. Dr. Paulo Cesar Masiero Co-Orientadora: Prof a. Dr. Rosana

Leia mais

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr Engenharia de Software Apostila I >>> Introdução à ES - HEngholmJr Histórico de Revisões Data Versão Descrição Autor 12/08/2014 1.0 Criação da primeira versão HEngholmJr Agenda Introdução à Engenharia

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012/2013 Unidade Curricular Engenharia de Software II ECTS 6 Regime Obrigatório Ano 3º Semestre 1º sem Horas de trabalho globais Docente Maria Clara Silveira Total

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Extração da Métrica WMC a partir de Código Java

Extração da Métrica WMC a partir de Código Java 228 Extração da Métrica WMC a partir de Código Java Luana V. Martinez, Maurício S. R. Arrieira, Carlos M. Betemps Engenharia de Computação Universidade Federal do Pampa (UNIPAMPA) Campus Bagé RS Brasil

Leia mais

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA) Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA) Apresentação O programa de Pós-graduação Lato Sensu em Engenharia de Software Orientada a Serviços

Leia mais

OO IMPACTO DA UTILIZAÇÃO DE DESIGN

OO IMPACTO DA UTILIZAÇÃO DE DESIGN OO IMPACTO DA UTILIZAÇÃO DE DESIGN PATTERNS NAS MÉTRICAS E ESTIMATIVAS DE PROJETOS DE SOFTWARE: a utilização de padrões tem alguma influência nas estimativas? Ricardo Alexsandro de Medeiros Valentim 1

Leia mais

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software Juliano Dantas Santos Universidade Federal do Rio de Janeiro COPPE - Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa

Leia mais

Documento de Requisitos

Documento de Requisitos Documento de Requisitos Projeto: Data 26/05/2005 Responsável Autor (s) Doc ID Localização Versão do Template Márcia Jacyntha Nunes Rodrigues Lucena Silvia Cássia Pereira Márcia Jacyntha Nunes Rodrigues

Leia mais

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

TESTES AUTOMATIZADOS COM JUNITE MOCKITO TESTES AUTOMATIZADOS COM JUNITE MOCKITO Jaime William Dias 12, Dener Barranco 1, Douglas Delapria 1 1 Universidade Paranaense (Unipar) 2 Universidade Estadual de Maringá (UEM) Paranavaí PR Brasil dener_barranco@hotmail.com,

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado

Leia mais

Ficha da Unidade Curricular

Ficha da Unidade Curricular ESCOLA SUPERIOR DE TECNOLOGIA E GESTÃO DE FELGUEIRAS CURSO Licenciatura em Engenharia Informática U.C. ENGENHARIA DE SOFTWARE I Ficha da Unidade Curricular Horas presenciais / Ano 56 Ano Lectivo 2010 /

Leia mais

5. Métodos ágeis de desenvolvimento de software

5. Métodos ágeis de desenvolvimento de software Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos

Leia mais

Universidade Federal de Pernambuco

Universidade Federal de Pernambuco Universidade Federal de Pernambuco GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 201 1. 2 Sistema de Gestão de Processos de Negócio Baseado em Modelos Declarativos Proposta de Trabalho de Graduação

Leia mais

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

Leia mais

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Modernização e Evolução do Acervo de Software Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Tópicos 1. Estudo Amplo sobre Modernização 2. Visão IBM Enterprise Modernization 3. Discussão - Aplicação

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular OPÇÃO IV - TÓPICOS AVANÇADOS DE BASES DE DADOS Ano Lectivo 2010/2011

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular OPÇÃO IV - TÓPICOS AVANÇADOS DE BASES DE DADOS Ano Lectivo 2010/2011 Programa da Unidade Curricular OPÇÃO IV TÓPICOS AVANÇADOS DE BASES DE DADOS Ano Lectivo 2010/2011 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Informática 3. Ciclo de Estudos

Leia mais

Heliomar Kann da Rocha Santos

Heliomar Kann da Rocha Santos Heliomar Kann da Rocha Santos RUMO AO REJUVENESCIMENTO AUTOMÁTICO DE SOFTWARE GUIADO POR ATRIBUTOS DE QUALIDADE Dissertação apresentada ao Programa de Pós- Graduação em Computação da Universidade Federal

Leia mais

Aula 2. Programa. Arquitectura da camada de interface.! Programação Web - 1! Engenharia de Aplicações Sistemas Interactivos 2010/11!

Aula 2. Programa. Arquitectura da camada de interface.! Programação Web - 1! Engenharia de Aplicações Sistemas Interactivos 2010/11! Aula 2 Arquitectura da camada de interface.! Programação Web - 1! Mestrado em Engenharia Informática Universidade do Minho! 44! Programa Métodos! &! Tecnologias!! Conceitos de IHC!! Programação web client

Leia mais

ESTUDO DE COOCORRÊNCIAS DE PADRÕES DE PROJETO E BAD SMELLS USANDO MÉTRICAS DE SOFTWARE

ESTUDO DE COOCORRÊNCIAS DE PADRÕES DE PROJETO E BAD SMELLS USANDO MÉTRICAS DE SOFTWARE ESTUDO DE COOCORRÊNCIAS DE PADRÕES DE PROJETO E BAD SMELLS USANDO MÉTRICAS DE SOFTWARE BRUNO LUAN DE SOUSA ESTUDO DE COOCORRÊNCIAS DE PADRÕES DE PROJETO E BAD SMELLS USANDO MÉTRICAS DE SOFTWARE Dissertação

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Integração Contínua com Rational Team Concert, Jenkins e SonarQube Integração Contínua com Rational Team Concert, Jenkins e SonarQube Agenda 1. Introdução à Integração Contínua 2. Ferramentas 3. Solução de Integração Contínua em Furnas 4. Demonstração O que é a Integração

Leia mais

Capítulo 24 Gerência de Qualidade. Aula 1 Qualidade e Padrões de Qualidade

Capítulo 24 Gerência de Qualidade. Aula 1 Qualidade e Padrões de Qualidade Capítulo 24 Gerência de Qualidade Aula 1 Qualidade e Padrões de Qualidade 1 Roteiro ² Qualidade de software ² Padrões de software ² Revisões e inspeções ² Medidas e métricas de software 2 Gerência de Qualidade

Leia mais

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

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

Leia mais

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.

Leia mais

FACULDADE DE TECNOLOGIA RUBENS LARA Análise e Desenvolvimento de Sistemas

FACULDADE DE TECNOLOGIA RUBENS LARA Análise e Desenvolvimento de Sistemas FACULDADE DE TECNOLOGIA RUBENS LARA Análise e Desenvolvimento de Sistemas Trabalho de Conclusão de Curso Regulamento (2013/01) Professor Responsável: Ms. Gerson Prando Santos, 17 de março de 2013. Versão

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Gestão do custo do projeto

Gestão do custo do projeto Nome: N. Série: Gestão do custo do projeto A gestão do custo é representada pelos processos necessários para cumprimento do orçamento. São eles o Planejamento dos Recursos, a Estimativa dos Custos, o Orçamento

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Gerenciamento de Problemas

Gerenciamento de Problemas Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar

Leia mais

Identificando a Formação de Ilhas de Conhecimento em Projetos de Software

Identificando a Formação de Ilhas de Conhecimento em Projetos de Software Identificando a Formação de Ilhas de Conhecimento em Projetos de Software Francisco Vanderson de Moura Alves 1, Pedro de Alcântara dos Santos Neto 1, Werney Ayala Luz Lira 1, Ricardo de Andrade Lira Rabêlo

Leia mais

PROVA DISCURSIVA. UnB/CESPE BACEN/2013

PROVA DISCURSIVA. UnB/CESPE BACEN/2013 PROVA DISCURSIVA Nesta prova, faça o que se pede, usando, caso deseje, os espaços para rascunho indicados no presente caderno. Em seguida, transcreva os textos para o CADERNO DE TEXTOS DEFINITIVOS DA PROVA

Leia mais

CARLOS EDUARDO LINO REESTRUTURAÇÃO DE SOFTWARE COM ADOÇÃO DE PADRÕES DE PROJETO PARA A MELHORIA DA MANUTENIBILIDADE

CARLOS EDUARDO LINO REESTRUTURAÇÃO DE SOFTWARE COM ADOÇÃO DE PADRÕES DE PROJETO PARA A MELHORIA DA MANUTENIBILIDADE CARLOS EDUARDO LINO REESTRUTURAÇÃO DE SOFTWARE COM ADOÇÃO DE PADRÕES DE PROJETO PARA A MELHORIA DA MANUTENIBILIDADE LAVRAS - MG 2011 CARLOS EDUARDO LINO REESTRUTURAÇÃO DE SOFTWARE COM ADOÇÃO DE PADRÕES

Leia mais

10 Lições Aprendidas ao Desenvolver um Estudo na Indústria

10 Lições Aprendidas ao Desenvolver um Estudo na Indústria 10 Lições Aprendidas ao Desenvolver um Estudo na Indústria Manuele Ferreira OPUS Research Group LES PUC-Rio {manueleferreira}@inf.puc-rio.br LES DI PUC-Rio - Brazil OPUS Group Método Pesquisa-ação Soluçã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

APLICAÇÃO DE TÉCNICAS DE REFACTORING NO DESENVOLVIMENTO DE FRAMEWORKS ORIENTADOS A OBJETOS

APLICAÇÃO DE TÉCNICAS DE REFACTORING NO DESENVOLVIMENTO DE FRAMEWORKS ORIENTADOS A OBJETOS APLICAÇÃO DE TÉCNICAS DE REFACTORING NO DESENVOLVIMENTO DE FRAMEWORKS ORIENTADOS A OBJETOS Palestrante: Isaac Babsky Neto ATAN Ciência da Informação Orientador: Renato Cardoso Mesquita Departamento de

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

Sistema de Gerenciamento de Pet Shop. Documento de Requisitos

Sistema de Gerenciamento de Pet Shop. Documento de Requisitos Universidade Rural Federal de Pernambuco - UFRPE Sistema de Gerenciamento de Pet Shop Documento de Requisitos Autores: Allan do Amaral Fernanda Monteiro Jean Karlos Macena Marcela Domingues Wagner Palacio

Leia mais

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO:

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO: MÉTRICAS PARA ESTIMATIVA DE SOFTWARES EM QUE SE APLICAM METODOLOGIA ÁGIL Juliana Cotta Ferreira RESUMO: A engenharia de software discute-se muito sobre métricas, devido à sua importância para acompanhar

Leia mais

Reuso de Estratégias Sensíveis a Domínio para Detecção de Anomalias de Código

Reuso de Estratégias Sensíveis a Domínio para Detecção de Anomalias de Código Alexandre Leite Silva Reuso de Estratégias Sensíveis a Domínio para Detecção de Anomalias de Código Um Estudo de Múltiplos Casos Dissertação de Mestrado Dissertação apresentada ao Programa de Pós-Graduação

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

Proposta Técnica. Desenvolvimento de software QUICKSITE

Proposta Técnica. Desenvolvimento de software QUICKSITE Proposta Técnica Desenvolvimento de software CONTEÚDO Resumo Executivo...3 1.1 Duração e Datas Especiais... 3 1.2 Fatores Críticos de Sucesso... 3 A Hi Level...3 Solução Proposta...4 1.3 Escopo... 4 1.4

Leia mais

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas Introdução Visão Geral Processos de gerenciamento de qualidade Entradas Ferramentas e Técnicas Saídas O que é qualidade? Qualidade é a adequação ao uso. É a conformidade às exigências. (ISO International

Leia mais

Criando uma agenda simples com NetBeans 6.5

Criando uma agenda simples com NetBeans 6.5 Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de

Leia mais

3º Seminário Blogs: Redes Sociais e Comunicação Digital

3º Seminário Blogs: Redes Sociais e Comunicação Digital 3º Seminário Blogs: Redes Sociais e Comunicação Digital Regulamento 1. Disposições Gerais O Curso de Comunicação Social e o Instituto de Ciências Sociais Aplicadas, com apoio da Pró-Reitoria de Pesquisa,

Leia mais

SGB_REL_RelatorioSonar Versão 1.1

SGB_REL_RelatorioSonar Versão 1.1 SGB_REL_RelatorioSonar Versão 1.1 Histórico de Revisões Nome Alterações Data Versão Gabriel Vieira Criação do Documento 14/11/2012 1.0 Bruno Marquete Formatação do Documento e ajustes de conteúdo 27/11/2012

Leia mais

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix. UNIP Sistemas de Informação Análise Essencial de Sistemas Prof.Marcelo Nogueira Análise Essencial de Sistemas 1 Introdução A produção de Software é uma atividade build and fix. Análise Essencial de Sistemas

Leia mais

Plataforma Open Source de Desenvolvimento e Sustentação de Sistemas. Daniel Darlen Lucius Curado Ridai Pombo

Plataforma Open Source de Desenvolvimento e Sustentação de Sistemas. Daniel Darlen Lucius Curado Ridai Pombo Plataforma Open Source de Desenvolvimento e Sustentação de Sistemas Daniel Darlen Lucius Curado Ridai Pombo Agenda Cenário Gerenciamento de Projetos e Mudanças Infra estrutura Arquitetura Ambiente de Desenvolvimento

Leia mais

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2008 IME/USP Mariana Bravo & Hugo Corbucci

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2008 IME/USP  Mariana Bravo & Hugo Corbucci Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2008 IME/USP www.agilcoop.org.br Mariana Bravo & Hugo Corbucci Refatoração Uma modificação no sistema que não altera o seu comportamento

Leia mais

Acompanhamento da Evolução de Software via Métricas

Acompanhamento da Evolução de Software via Métricas Acompanhamento da Evolução de Software via Métricas Wallace Ribeiro, Daniel Castellani, Alexandre Plastino, Leonardo Murta Instituto de Computação Universidade Federal Fluminense (UFF) {wribeiro,dribeiro,plastino,leomurta}@ic.uff.br

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

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

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

Leia mais

Testes de Software. Por quê testar? 3/28/2011. Andrew Diniz da Costa. andrew@les.inf.puc-rio.br. Manter alta qualidade. Prevenir e encontrar defeitos

Testes de Software. Por quê testar? 3/28/2011. Andrew Diniz da Costa. andrew@les.inf.puc-rio.br. Manter alta qualidade. Prevenir e encontrar defeitos Testes de Software Andrew Diniz da Costa andrew@les.inf.puc-rio.br Por quê testar? Manter alta qualidade Prevenir e encontrar defeitos Ganhar confiança sobre o nível de qualidade e prover informações.

Leia mais

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2009 IME/USP Mariana Bravo & Hugo Corbucci

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2009 IME/USP   Mariana Bravo & Hugo Corbucci Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2009 IME/USP www.agilcoop.org.br Mariana Bravo & Hugo Corbucci Refatoração Uma modificação no sistema que não altera o seu comportamento

Leia mais

REGULAMENTO DO TRABALHO DE CONCLUSÃO DO CURSO DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO DA FAG CAPÍTULO I DAS DISPOSIÇÕES PRELIMINARES

REGULAMENTO DO TRABALHO DE CONCLUSÃO DO CURSO DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO DA FAG CAPÍTULO I DAS DISPOSIÇÕES PRELIMINARES REGULAMENTO DO TRABALHO DE CONCLUSÃO DO CURSO DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO DA FAG CAPÍTULO I DAS DISPOSIÇÕES PRELIMINARES Art. 1º O presente Regulamento tem por finalidade normatizar

Leia mais

Especial Online RESUMO DOS TRABALHOS DE CONCLUSÃO DE CURSO. Sistemas de Informação 2011-2 ISSN 1982-1816. www.unifoa.edu.br/cadernos/especiais.

Especial Online RESUMO DOS TRABALHOS DE CONCLUSÃO DE CURSO. Sistemas de Informação 2011-2 ISSN 1982-1816. www.unifoa.edu.br/cadernos/especiais. Especial Online ISSN 1982-1816 www.unifoa.edu.br/cadernos/especiais.html DOS TRABALHOS DE CONCLUSÃO DE CURSO Sistemas de Informação 2011-2 SISTEMA DE GERENCIAMENTO DE MANUTENÇÃO AUTOMOTIVA Alunos: WERNECK,

Leia mais

Qualidade de Software

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

Leia mais

Projeto de Redes de Computadores. Desenvolvimento de Estratégias de Segurança e Gerência

Projeto de Redes de Computadores. Desenvolvimento de Estratégias de Segurança e Gerência Desenvolvimento de Estratégias de Segurança e Gerência Segurança e Gerência são aspectos importantes do projeto lógico de uma rede São freqüentemente esquecidos por projetistas por serem consideradas questões

Leia mais

Métricas para avaliação de Linguagens de

Métricas para avaliação de Linguagens de Métricas para avaliação de Linguagens de Modelação - UML José Pedro Silva Pedro Faria Ulisses Araújo Costa Resumo A utilização de diagramas de UML é importante na moelação de uma arquitectura de um sistema

Leia mais

1. Introdução e Objetivos 2. Fundamentação teórica 3. Desenvolvimento e Especificações do sistema

1. Introdução e Objetivos 2. Fundamentação teórica 3. Desenvolvimento e Especificações do sistema SISTEMA DE CONTROLE DE INDICADORES DE DESEMPENHO VOLTADO À DISPONIBILIDADE DE SERVIÇOS DE TI BASEADO NA BIBLIOTECA ITIL V3 Eduardo Cuco Roteiroda apresentação 1. Introdução e Objetivos 2. Fundamentação

Leia mais

Engenharia de Software

Engenharia de Software Gerenciamento da Qualidade Cap. 27 Sommerville 8 ed. Introdução: - Preocupação com a qualidade do software; - Uso de técnicas e tecnologias novas; - Manufatura de software Qualidade de Software: Qualidade

Leia mais

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini E-mail: christianezapelini@nwk.edu.br

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini E-mail: christianezapelini@nwk.edu.br Desempenho e Segurança em Sistemas de Informação Profa.: Me. Christiane Zim Zapelini E-mail: christianezapelini@nwk.edu.br Desempenho e Segurança em Sistemas de Informação Aula 5 Áreas da Engenharia de

Leia mais

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP extreme Programming extreme Programming (XP) Metodologia ágil para equipes pequenas a médias desenvolvendo software com requesitos vagos ou que mudam freqüentemente. [Beck 2000] Em XP, codificação é principal

Leia mais

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos Indice Indice... 2 1. Introdução... 3 2. Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos (SILOGR)....

Leia mais

FERRAMENTA WEB DE SUPORTE A AVALIAÇÃO DE SOFTWARE COM A METODOLOGIA CERTICS

FERRAMENTA WEB DE SUPORTE A AVALIAÇÃO DE SOFTWARE COM A METODOLOGIA CERTICS FERRAMENTA WEB DE SUPORTE A AVALIAÇÃO DE SOFTWARE COM A METODOLOGIA CERTICS Acadêmico: Vinícius Ferneda de Lima vinicius.ferneda@gmail.com Orientador: Prof. Everaldo Artur Grahl everaldo.grahl@gmail.com

Leia mais

Função Mudar de unidade estatística

Função Mudar de unidade estatística Função Mudar de unidade estatística Frequentemente, certas pesquisas contêm informações correspondentes a níveis estatísticos diferentes. No Sphinx (Survey ou Léxica), a partir do menu Gestão, opção Mudar

Leia mais

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena Trabalho Experimental Sistema de Biblioteca 1. Objetivo Este trabalho tem o objetivo de consolidar o conhecimento sobre UML e garantir

Leia mais