Refatoração de Software
|
|
- Maria de Lourdes Alcântara di Azevedo
- 8 Há anos
- Visualizações:
Transcrição
1 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 reestruturação realizada também é chamada de refatoração. T H A I N Á M A R I A N I, 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 reestruturação realizada também é chamada de refatoração. Refatoração Renomear Método Em que artefatos pode ser aplicada? Código Java C++ C C# Python PHP AspectJ Em que artefatos pode ser aplicada? Modelos Diagramas da UML Estruturais Comportamentais Refatoração em modelos é difícil pois às vezes o comportamento só pode ser observado por meio dos diagramas comportamentais. Outros Requisitos; Banco da dados; HTML. Quando é realizada? Regra de três; Antes de adicionar uma funcionalidade; Tempo necessário maior que o estimado; Encontrar e corrigir um bug; Revisão de código.
2 Quando é realizada? Métodos Ágeis; Desenvolvimento Orientado a Testes (TDD); Reengenharia; Quando não realizar? Código tão confuso que é mais fácil programar de novo; Código não funciona pois possui muitos bugs; Prazo final próximo. Fases Manutenção; Desenvolvimento; Projeto. Reduz o número de bugs; Reduz o tamanho do código; Reduz o tempo para a entrega do software. Atributos de Qualidade Entendimento Manutenibilidade Flexibilidade Extensibilidade Modularidade Reusabilidade Princípios de Projeto Coesão Acoplamento Métricas podem ser utilizadas para medir atributos de qualidade e propriedades de projeto. Exemplo: Quality Model for Object-Oriented Design (QMOOD)
3 Reduz a quantidade de bad smells. Bad smells são decisões ruins de design. Duplicated Code Long Method Comments Lazy Class God Class Long Parameter List God Class Long Parameter List user = usermanager.create(user_name, group, USER_NAME, "joshua", USER_NAME, LANGUAGE, false, false, new Date(), "blah", new Date()); Reduz a quantidade de anti-patterns; Anti-patterns são soluções inefetivas para um problema. Diferem-se dos bad smells por serem: Processos, estruturas ou padrões; Existir outra solução documentada já conhecida como efetiva. Catálogo de anti-patterns: Classificação dos anti-patterns: Negócio Organizacionais Gerência de Projeto Engenharia de Software Projeto Programação Programação Orientada a Objetos Metodologia Gerência de Configuração Anti-patterns de Projeto Swiss army knife: Projetar uma interface muito complexa e extremamente difícil de implementar; Stovepipe system: Sistema difícil de ser mantido devido aos componentes mal relacionados.
4 Anti-patterns de Programação Blind faith: Não checar a correção de um bug; Boat anchor: Parte do sistema sem uso; Lava flow: Código ruim colocado em constante mudança; Gold Hammer: Tecnologia familiar aplicada em todos os problemas; Cargo cult programming: Usar padrões sem saber o motivo; Lasagna code: Código com muitas camadas desnecessárias; Spaghetti code: Estruturas de código pouco compreensíveis. Anti-patterns de Programação Orientada a Objetos Yo-yo problem: Herança muito complexa; Poltergeists: Objetos em que o único propósito é passar informações para outro objeto; Circular dependency: Dependências desnecessárias entre objetos. Poltergeists Circular dependency Atividades 1) Identificar o artefato e os elementos que receberão a refatoração; 2) Determinar quais refatorações serão aplicadas e o que deverá ser feito para garantir que o comportamento seja preservado; 3) Aplicar as refatorações; 4) Verificar o impacto nos atributos de qualidade; 5) Manter a consistência com os outros artefatos do software. Suporte em IDEs Eclipse (Java, C++, PHP, Ruby) Plugin AutoRefactor para refatoração automática; Netbeans (Java, C++, PHP, Ruby, HTML, CSS); IntelliJ IDEA (Java); Visual Studio (C#).
5 Refatorações Documentadas Banco de Dados S. W. Ambler, P. J. Sadalage, Refactoring Databases, HTML E. R. Harold, Refactoring HTML, Refatorações Documentadas Modelos UML G. Sunyé et al., Refactoring UML Models, Orientação a Objetos C++: W. F. Opdyke, Refactoring Object-Oriented Frameworks, Java: M. Fowler et al., Improving the Design of Existing Code, Exemplos de Refatorações ORIENTAÇÃO A OBJETOS Renomear Método Muda o nome do método. O nome do método não revela o seu propósito; O nome do método é muito confuso. Pode melhorar o entendimento e manutenibilidade do software. Pode ser aplicado em outros contextos, como por exemplo, modelos. Outras variações: Renomear Classe, Renomear Atributo, etc. Renomear Método Mecanismos: I. Renomear o método; II. Verificar se o método é implementado em uma subclasse ou superclasse, caso sim, renomeá-las; III. Mudar as chamadas do antigo método para o novo; IV. Compilar e testar.
6 É importante para evitar... boolean returntrue(){ return false; } Xunxu() DoSomething() SomeMethod() OtherMethod() GetCustomerOrderDeliveryDetailsByCustomerIdAndDeliveryDateAndOrderStatus() Extrair Método Extrai um fragmento de um método para um novo método. Um método é muito longo; Um método necessita de muitos comentários para que seu propósito seja entendido; Um método possui muitas funcionalidades diferentes. Extrair Método Mecanismos: I. Criar um novo método e nomeá-lo conforme seu propósito; II. Extrair o código para o novo método; III. Procurar variáveis utilizadas e ajustá-las como parâmetros ou variáveis locais; IV. Compilar; V. Substituir o código extraído por uma chamada para o novo método; VI. Compilar e testar.
7 Extrair Método Bad smells e anti-patterns que podem ser impactados: Long Method; God Class; Comments; Spaghetti Code. Extrair Método Atributos de qualidade que podem ser impactados: Entendimento; Manutenibilidade; Flexibilidade; Extensibilidade; Modularidade; Reusabilidade. Extrair Classe Cria uma nova classe e move métodos e atributos para ela. Classe com muitas funcionalidades; Classe difícil de entender. Extrair Classe Mecanismos: I. Decidir como separar as responsabilidades da classe; II. Criar uma nova classe; III. Relacionar as duas classes; IV. Mover todos os atributos necessários (Mover Atributo); V. Compilar e testar após cada refatoração; VI. Mover todos os métodos necessários (Mover Método); VII. Compilar e testar após cada refatoração; VIII. Revisar as interfaces das classes; IX. Decidir o local (pacote, por exemplo) da nova classe;
8 Extrair Classe Bad smells e anti-patterns que podem ser impactados: God Class; Spaghetti Code. Extrair Classe Atributos de qualidade que podem ser impactados: Entendimento; Manutenibilidade; Extensibilidade; Reusabilidade; Modularidade. Agrupar Classe Move todas as funcionalidades de uma classe para outra e a deleta. Uma classe possui poucas responsabilidades. Agrupar Classe Bad smells e anti-patterns que podem ser impactados: Lazy Class; Yo-yo problem; Poltergeists; Circular Dependency; Duplicated Code. Agrupar Classe Atributos de qualidade que podem ser impactados: Entendimento; Manutenibilidade; Flexibilidade.
9 Pull Up Método Move métodos que são idênticos de subclasses para a superclasse. Remover código duplicado; Prevenir bugs quando apenas um método é alterado. Pull Up Método Mecanismos: I. Verificar se existem métodos duplicados; II. Criar a o mesmo método na superclasse; III. Compilar; IV. Excluir métodos das subclasses; V. Compilar e testar; VI. Mudar as chamadas ao método. Pull Up Método Bad smells e anti-patterns que podem ser impactados: Yo-yo problem; Duplicated Code. Pull Up Método Atributos de qualidade que podem ser impactados: Entendimento; Manutenibilidade.
10 Push Down Método Move o método da superclasse para uma subclasse. Um método de uma superclasse é relevante apenas para parte das subclasses. Push Down Método Mecanismos: I. Declarar o método nas subclasses relevantes; II. Remover o método da superclasse; III. Compilar e testar; IV. Remover o método das subclasses que não precisam dele; V. Compilar e testar. Push Down Método Bad smells e anti-patterns que podem ser impactados: God class; Comments; Spaghetti Code. Push Down Método Atributos de qualidade que podem ser impactados: Entendimento; Manutenibilidade; Flexibilidade; Extensibilidade; Reusabilidade; Modularidade. Referências M. Fowler, K. Beck, Refactoring: Improving the Design of Existing Code, Addison-Wesley, Boston, MA, USA, T. Mens, T. Tourwe, A survey of software refactoring, IEEE Transactions on Software Engineering 30 (2) (2004) W. F. Opdyke, Refactoring Object-oriented Frameworks, Ph.D. thesis, Champaign, IL, USA (1992). E. Harold, Refactoring HTML: Improving the Design of Existing Web Applications, Addison-Wesley, G. Sunyé, D. Pollet, Y. L. Traon, J.-M. Jézéquel, Refactoring UML Models, in: Proceedings of the International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools, UML, 2001, pp S. W. Ambler, P. J. Sadalage, Refactoring Databases: Evolutionary Database Design, Addison-Wesley, William J. Brown, Hays W. McCormick, and Scott W. Thomas Anti-Patterns Project Management (1st ed.). John Wiley & Sons, Inc., New York, NY, USA.
11 Referências William J. Brown, Hays W. Skip McCormick, III, and Scott H. Thomas Antipatterns and Patterns in Software Configuration Management. John Wiley & Sons, Inc., New York, NY, USA. William H. Brown, Raphael C. Malveau, Hays W. "Skip" McCormick, and Thomas J. Mowbray Antipatterns: Refactoring Software, Architectures, and Projects in Crisis (1st ed.). John Wiley & Sons, Inc., New York, NY, USA. Bill Dudney, Joseph Krozak, Kevin Wittkopf, Stephen Asbury, and David Osborne J2EE Antipatterns (1 ed.). John Wiley & Sons, Inc., New York, NY, USA. Catálogos de Anti-Patterns Catálogos de Refatorações Exercício Exercício Exercício Push Down Atributo Atributos: cpf, aniversario Classe de origem: Pessoa Classe destino: Pessoa Fisica Atributos: cnpj Classe de origem: Pessoa Classe destino: PessoaJuridica Exercício Pull Up Método Método: mandar () Classe de origem: PessoaFisica e PessoaJuridica Class destino: Pessoa Renomer Método Método: listdependents... Classe: PessoaFisica Exercício Agrupar Classe Classes: PessoaJuridicaDesativa e Pessoa Juridica Extrair Método: Método: ValidaCPFCNPJ() Classe origem: Pessoa; Classes destino: PessoaFisica e PessoaJuridica
Refatoração: Melhorando código existente
Refatoração: Melhorando código existente AgilCoop Cursos de Verão 2010 Mariana Bravo IME/USP Refatoração Uma mudança no sistema que não altera seu comportamento funcional, mas melhora sua estrutura interna
Leia maisRefatoraçã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 maisRefatoraçã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 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 maisJAVA. 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 maisMAC Tópicos de P.O.O.
MAC 5715 - Tópicos de P.O.O. Anti-Padrão de Desenvolvimento: Será um padrão? Diego Tarábola tarabola@gmail.com Denise Goya dhgoya@ime.usp.br Historinha-evidência Esta implementação de Singleton [2] faz
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 maisEvoluçã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 maisRefatoração Melhorando o sistema e preparando pra a Web
POO Programação Orientada a Objetos Refatoração Melhorando o sistema e preparando pra a Web Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 Refatoração Uma prática bastante comum e difundida
Leia maisEngenharia de Software Experimental 2013.2
Engenharia de Software Experimental 2013.2 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 Sumário Conceitos
Leia maisBibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa
BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade
Leia maisEvolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1
Evolução de Software e Refatoração Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1 Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software
Leia maisA empresa brasileira de PostgreSQL
Bad Smells (mal cheiros) em Bancos de Dados A empresa brasileira de PostgreSQL TDC2013, Porto Alegre, 2013-10-26 Palestrante Fabrízio de Royes Mello Desenvolvedor PostgreSQL Líder do PostgreSQL Brasil
Leia maisTipos para uma Linguagem de Transformação
Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto
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 maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 11 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de Refatoração e Padrões. DESENVOLVIMENTO PADRÕES
Leia maisModelagem De Sistemas
Modelagem De Sistemas UNIP Tatuapé - SP Aplicações em Linguagem de Programação Prof.Marcelo Nogueira Uma empresa de software de sucesso é aquela que consistentemente produz software de qualidade que vai
Leia maisIntrodução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota
Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Introdução à UML Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM Introdução
Leia maisAnálise de Sistemas 3º Bimestre (material 2)
Análise de Sistemas 3º Bimestre (material 2) Professor: José Ronaldo Leles Júnior Turma: 2º ano do curso de Sistemas de Informação UEG Universidade Estadual de Goiás Campus Posse POO Paradigma Orientado
Leia maisOportunidades de refatoração. Prof. André Luiz Peron Martins Lanna
Oportunidades de refatoração Prof. André Luiz Peron Martins Lanna Agenda Introdução Maus cheiros de código Código duplicado Método longo Classe inchada Lista de parâmetros longa demais Mudanças divergentes
Leia maisNextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos
NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos Rógel Garcia de Oliveira, Marco Túlio Valente 1 Universidade Federal de Minas Gerais (UFMG) Belo Horizonte MG Brasil {rogelgarcia,mtov}@dcc.ufmg.br
Leia maisDiagrama de Componentes e Implantação
Diagrama de Componentes e Implantação Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User
Leia maisFacetas da Reusabilidade de Software
Facetas da Reusabilidade de Software Daremos um breve panorama da disciplina inteira: reusabilidade de software Qual é o problema? Fazer software é difícil Fazer software é lento e caro Não temos tecnologia
Leia maisFURBUP: UM PROCESSO DE SOFTWARE PARA USO ACADÊMICO BASEADO NO OPENUP. Acadêmico: João Paulo Pedri Orientador: Everaldo Artur Grahl
Roteiro da Apresentação Introdução; Objetivos; Conceitos Básicos; Disciplinas de Engenharia de Software Currículo 2007/1; Trabalhos Correlatos; Tradução do Processo OpenUP; Elaboração e Publicação do FurbUP;
Leia maisComponentes de Software Baseados em Engenharia de
19 a 21 de mar o de 2010 117 Componentes de Software Baseados em Engenharia de Domínio Leonardo Ciocari, Rafael Cancian 1 Centro de Ciências Tecnológicas da Terra e do Mar (CTTMar) Universidade do Vale
Leia mais2. Implantação de sistemas integrados de gestão
Arquitetura de Integração de Sistemas: Aspectos e Considerações Renata Seldin (UFRJ) renata@gpi.ufrj.br Renato Flórido Cameira (UFRJ) cameira@gpi.ufrj.br Resumo: Este trabalho visa levantar alguns aspectos
Leia maisVisualização de Software com o KDevelop 4
Live Blue (http://liveblue.wordpress.com) Visualização de Software com o KDevelop 4 Sandro Santos Andrade sandro.andrade@gmail.com http://liveblue.wordpress.com liveblue@googlegroups.com 1 Um desafio inicial
Leia maisBCC Engenharia de Software Professor Rodrigo Andrade
BCC Engenharia de Software 2017.1 Professor Rodrigo Andrade Aula Passada Implementação, Manutenção e Execução dos testes Implementação e Manutenção de Funcionalidades Qualidade de código visão caixa preta
Leia maisNotas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Leia mais10 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 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 maisPrograma Analítico de Disciplina INF323 Engenharia de Software II
0 Programa Analítico de Disciplina Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas: 15 Carga horária semanal 0 Períodos
Leia maisIdentifying thresholds for object-oriented software metrics
Identifying thresholds for object-oriented software metrics Kecia A.M. Ferreira 1 Mariza A.S. Bigonha 1 Roberto S. Bigonha 1 Luiz F.O. Mendes 1 Heitor C. Almeida 1 1 Dept. Computer Science, Federal University
Leia mais3 Trabalhos Relacionados
3 Trabalhos Relacionados O objetivo deste capítulo é situar o leitor quanto às características deste trabalho em relação ao que já está disponível na literatura, além de apontar possíveis vantagens e desvantagens
Leia maisEspecificação de Sistemas de Software e a UML
Modelagem de sistema Especificação de Sistemas de Software e a UML A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema Modelo => visão simplificada e abstrata de um sistema
Leia maisGustavo Araújo Soares
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Coordenação de Pós-Graduação em Informática Uma Abordagem para Aumentar a Segurança em Refatoramentos de Programas Gustavo
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas
Leia maisMarcela Mariotti Peres Arquitetura em três camadas Parte 1 [conceito]
1 Muita gente já deve ter escutado falar em Arquitetura em camadas. Cada empresa e/ou pessoa tem o hábito de programar na arquitetura que prefere; muitos nem dividindo o projeto em camadas. Neste artigo,
Leia maisUML Diagramas Estruturais Diagrama de Componentes
UML Diagramas Estruturais Diagrama de Componentes Representa um modelamento físico dos componentes de software de um determinado Sistema Um componente realiza um conjunto de interfaces e contém em seu
Leia maisImplementação de Padrões de Projeto em Java e AspectJ
Implementação de Padrões de Projeto em Java e AspectJ Jan Hannemann e Gregor Kiczales University of British Columbia Bruno Cardoso Reutilização de Software 18/09/13 DCC/ICEx/UFMG Padrões de Projeto (GoF
Leia maisIntrodução a Orientação a Objetos e UML
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Introdução a Orientação a Objetos e UML 879SCC Projeto e Desenvolvimento
Leia maisPython Sistemas legados, qualidade de código e bad smells Gisele Zomer Rossi
Python Sistemas legados, qualidade de código e bad smells Gisele Zomer Rossi Gisele Zomer Rossi Mestre em computação aplicada Trabalho 10 anos com desenvolvimento Professora Cesusc Programação com python,
Leia maisRepresentação do Conhecimento de Forma a Buscar Oportunidades de Refatoração Através de uma Ontologia
Representação do Conhecimento de Forma a Buscar Oportunidades de Refatoração Através de uma Ontologia Fernando Quatrin Campagnolo 1, Eduardo Kessler Piveta 1 1 Universidade Federal de Santa Maria (UFSM)
Leia maisGestão de Projectos de Software
Gestão de Projectos de Software Detailed Design Doc for Stage 1 Versão 1.2 DriveGest_DetailedDesignDocforStage1_2007-06-11_v1.2.doc 11 de Junho de 2007 2 Revisões Versão Autores Descrição Aprovadores Data
Leia maisNome da classe. Atributos. Serviços / métodos
Classes são descrições de conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. Janela Origem Tamanho Abrir ( ) Fechar ( ) Mover ( ) Exibir ( ) Nome da classe
Leia maisUML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Leia maisFerramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos
Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos Eduardo Santana de Almeida Daniel Lucrédio Calebe de Paula Bianchini Antonio Francisco do
Leia maisDIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA
DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DEPARTAMENTO DE CIÊNCIAS EXATAS CÓDIGO: EXA836 DISCIPLINA: PADRÕES E FRAMEWORKS CARGA HORÁRIA: 60h EMENTA: Padrões e anti-padrões
Leia maisJava Standard Edition (JSE)
Java Standard Edition (JSE) Capítulo 07. Classes abstratas Esp. Márcio Palheta MSN: marcio.palheta@hotmail.com 1 Novos recursos a aprender Conceito de classes abstratas; Declaração e uso de classes abstratas;
Leia maisFerramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal
Ferramenta para cálculo de métricas em softwares orientados a objetos codificados em Object Pascal Patrícia Regina Ramos da Silva Seibt (FURB) patrícia@benner.com.br Marcel Hugo (FURB) marcel@furb.br Everaldo
Leia maisArquitetura de Software
Arquitetura de Software A arquitetura de um software é uma estrutura de componentes interconectados através de interfaces Componentes são compostos de componentes menores e interfaces A interação entre
Leia maisUML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla
UML 2.0 Método, Linguagem e Ferramenta Prof. Cesar Augusto Tacla Conteúdo do Curso MÉTODO RUP FERRAMENTA Visual Paradigm Enterprise Architect LINGUAGEM UML UML: Unified Modeling Language Linguagem padrão
Leia maisCIDE+: Uma Ferramenta para Extração Semi-automática de Linhas de Produtos de Software Usando Coloração de Código
CIDE+: Uma Ferramenta para Extração Semi-automática de Linhas de Produtos de Software Usando Coloração de Código Virgílio Borges de Oliveira 1, Rógel Garcia 2, Marco Túlio Valente 2 1 Instituto de Informática,
Leia maisRelacionando Refactorings e Métricas de Código Fonte - Um Primeiro Passo para Detecção Automática de Oportunidades de Refactoring
Relacionando Refactorings e Métricas de Código Fonte - Um Primeiro Passo para Detecção Automática de Oportunidades de Refactoring Glauco de Figueiredo Carneiro 1,2 e Manoel Gomes de Mendonça Neto 1 Núcleo
Leia maisUm Método para Identificação de Bad Smells a partir de Diagramas de Classes
Um Método para Identificação de Bad Smells a partir de Diagramas de Classes Henrique Gomes Nunes 1, Mariza A. S. Bigonha 1, Kecia A. M. Ferreira 2, Flávio Airjan Madureira 1 1 Departamento de Ciência da
Leia maisModelos em Sistemas de Informação. Aula 2
Modelos em Sistemas de Informação Aula 2 Referências básicas da aula Paulo Cougo - Modelagem conceitual e Projeto de Banco de Dados. Craig Larman - Utilizando UML e padrões. Roger Pressman - Engenharia
Leia maisUML e seus diagramas
UML e seus diagramas A UML Unified Modeling Language (Linguagem de Modelagem Unificada), como o próprio nome já diz, é uma linguagem para modelagem de objetos do mundo real, usada para especificar, construir,
Leia maisSERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE
PLANO DE ENSINO Disciplina (INS310008): Análise de Sistemas e UML Professor Responsável: Raul Sidnei Wazlawick Créditos: (02 CRÉDITOS 30HS) Semestre: 2017-2 1. Ementa Geral Introdução a orientação a objetos
Leia maisProf. 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 maisRefatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2007 IME/USP Alexandre Freire & Paulo Cheque
Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2007 IME/USP www.agilcoop.org.br Alexandre Freire & Paulo Cheque Refatoração Uma [pequena] modificação no sistema que não altera
Leia maisIntrodução à UML. Prof. Jesus José de Oliveira Neto
Introdução à UML Prof. Jesus José de Oliveira Neto UML Linguagem de Modelagem Unificada Linguagem visual utilizada para modelar softwares baseados no paradigma de orientação a objetos UML não é uma linguagem
Leia maisPOO Fundamentos Parte III. Professor Vicente Paulo de Camargo
POO Fundamentos Parte III Professor Vicente Paulo de Camargo PROGRAMAÇÃO ORIENTADA A OBJETOS HERANÇA SIMPLES Mecanismo que permite a uma classe, denominada de SUBCLASSE ou CLASSE FILHA, herdar todos os
Leia maisSERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE
PLANO DE ENSINO Disciplina INS 310008: Análise de sistemas e UML Professor Responsável: Dra Raul Sidnei Wazlawick Créditos: (02 CRÉDITOS 30HS) Semestre: 2018-2 1. Ementa Geral Introdução a orientação a
Leia maisUML. Adriano J. Holanda 21/3/
UML Adriano J. Holanda 21/3/2016 UML Introdução UML - Unified Modeling Language Linguagem Unificada de Modelagem. Adquiriu maturidade na segunda década de 1990 pela fusão dos métodos e diagramas de Grady
Leia maisOracle Database 10g: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer
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 maisESTUDO DO PADRÃO DE PROJETO OBSERVER NO DESENVOLVIMENTO DE SOFTWARES UTILIZANDO A ARQUITETURA MVC RESUMO
Mostra Nacional de Iniciação Científica e Tecnológica Interdisciplinar III MICTI Fórum Nacional de Iniciação Científica no Ensino Médio e Técnico - I FONAIC-EMT Camboriú, SC, 22, 23 e 24 de abril de 2009
Leia maisCurso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML
Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do
Leia maisModulo 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 maisEstudo de Visualizações da Evolução de Códigos Fonte de Software
Estudo de Visualizações da Evolução de Códigos Fonte de Software Marcello Henrique Dias de MOURA Hugo Alexandre Dantas do NASCIMENTO Instituto de Informática Universidade Federal de Goiás Goiânia, Goiás,
Leia maisUtilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação
UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2017.1 Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Programação Orientada a Objetos Na aula passada vimos: Introdução a linguagem java; Introdução ao Eclipse IDE; Revisão sobre programação; Programação Orientada a Objetos
Leia maisProgramação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.
Programação em Comunicações Programação Orientada por Objectos www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Objectivos Apresentar os princípios e conceitos base sobre orientação por objectos (objectos,
Leia maisJUnit: framework de testes unitários. Fred Lopes
JUnit: framework de testes unitários Fred Lopes Agenda Parte 1 - teoria Testes unitários JUnit Introdução Arquitetura API resumida Boas práticas Exemplos de uso Parte 2 prática (Eclipse) Criando testes
Leia maisMÓDULO. Análise Orientada a Objetos Engenharia Web
MÓDULO Análise Orientada a Objetos Engenharia Web Roteiro Engenharia de Software Engenharia de Web Aplicações Web Modelo de Processo Métodos de Desenvolvimento DAW4 2 Engenharia de Software Enfoque sistemático
Leia maisTécnico em Informática. Web JavaScript. Profª Ana Paula Mandelli
Técnico em Informática Web JavaScript Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela
Leia maisA Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br
A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br Surgimento da WEB e HTML Início da década de 90 HTML (acrônimo para a expressão HyperText Markup Language, que significa
Leia mais5º Congresso de Pós-Graduação
5º Congresso de Pós-Graduação UMA FERRAMENTA PARA GERAÇÃO AUTOMÁTICA DE DIAGRAMA DE CLASSES A PARTIR DA ESPECIFICAÇÃO DE REQUISITOS EM LINGUAGEM NATURAL Autor(es) WILSON CARLOS DA SILVA Orientador(es)
Leia maisCASOS DE TESTE PALESTRANTE: MARCIA SILVA MARCIA.SILVA@DATASUS.GOV.BR WWW.EMERSONRIOS.ETI.BR
CASOS DE TESTE PALESTRANTE: MARCIA SILVA MARCIA.SILVA@DATASUS.GOV.BR WWW.EMERSONRIOS.ETI.BR CONCEITOS BÁSICOS - TESTES O que é Teste de Software? Teste é o processo de executar um programa com o objetivo
Leia maisIntrodução à Orientação a Objetos e UML
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação SSC 124: Análise e Projeto Orientados a Objetos Introdução à Orientação a Objetos e UML Profa. Dra. Elisa Yumi Nakagawa 2º semestre
Leia maisMODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)
MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) g BREVE HISTÓRICO g CARACTERÍSTICAS g CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS g MODELAGEM DE ANÁLISE E DE PROJETO 1 I. BREVE HISTÓRICO Em fins dos anos
Leia mais5º Congresso de Pós-Graduação
5º Congresso de Pós-Graduação UMA FERRAMENTA PARA GERAÇÃO AUTOMÁTICA DE DIAGRAMA DE CLASSES A PARTIR DA ESPECIFICAÇÃO DE REQUISITOS EM LINGUAGEM NATURAL Autor(es) Orientador(es) LUIZ EDUARDO GALVÃO MARTINS
Leia maisEspecificação de Sistemas e SysML
Especificação de Sistemas e SysML Centro de Informática - Universidade Federal de Pernambuco Engenharia da Computação Kiev Gama kiev@cin.ufpe.br Slides elaborados pelos professores Marcio Cornélio e Kiev
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 maisTutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto
Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto Versão 1.0.0 1 ÍNDICE Sumário INTRODUÇÃO... 3 PRINCIPAIS CARACTERÍSTICA DA ASTAH... 3 COMO BAIXAR... 4 PRINCIPAIS FUNCIONALIDADES...
Leia maisIntrodução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004
Introdução ao RUP Rational Unified Process por Denize Terra Pimenta Outubro/2004 1 Contexto Não é suficiente apenas a presença de desenvolvedores altamente treinados: Precisamos de uma linguagem para a
Leia maisFerramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes
Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: prado@dc.ufscar.br Resumo Este artigo apresenta a ferramenta CASE
Leia maisProgramação Orientada a Objetos Relacionamentos entre classes
Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO
Leia maisAnálise de Sistemas. Aula 5
Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles
Leia maisModelagem de uma Aplicação Web a partir de um Framework de Agenda de Tarefas
Modelagem de uma Aplicação Web a partir de um Framework de Agenda de Tarefas Sergio A. Tanaka, Patrícia M. Rodrigues,Rodolfo M. de Barros 2, Ruy. T. Nishimura UNIFIL Centro Universitário Filadélfia Depto.
Leia maisCapítulo 5 Modelação do Sistema 1
Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos
Leia maisUMA PESQUISA SOBRE FERRAMENTAS CASE PARA ENGENHARIA REVERSA ESTÁTICA
UMA PESQUISA SOBRE FERRAMENTAS CASE PARA ENGENHARIA REVERSA ESTÁTICA Juliana da Silva Cindra Especialista em Análise de Projeto e Gerência de Sistemas de Informação/IFF Quali-EPT/ IFF jcindra@iff.edu.br
Leia maisOrientação a Objetos e UML
Orientação a Objetos e UML Aula #8.1. EBS 211 POO e UML Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã Roteiro Análise e projeto OO; Engenharia de software e UML; Diagrama de classes.
Leia maisArquitetura de Software: Introdução
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo
Leia maisModelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves
Tópicos Apresentação Entidade, Atributo e Relacionamento Cardinalidade Representação simbólica Generalizações / Especializações Agregações Apresentação O Modelo Entidade-Relacionamento tem o objetivo de
Leia mais