Refatoração de Software

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

Download "Refatoração de Software"

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

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

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

Refatoração Melhorando o sistema e preparando pra a Web

Refatoraçã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 mais

Engenharia de Software Experimental 2013.2

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

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

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

A empresa brasileira de PostgreSQL

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

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

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

Leia mais

Introdução à Análise e Projeto de Sistemas

Introduçã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 mais

Modelagem De Sistemas

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

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Introduçã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 mais

Análise de Sistemas 3º Bimestre (material 2)

Aná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 mais

NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos

NextFlow: 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 mais

Diagrama de Componentes e Implantação

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

Facetas da Reusabilidade de Software

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

Visualização de Software com o KDevelop 4

Visualização de Software com o KDevelop 4 Live Blue (http://liveblue.wordpress.com) Visualização de Software com o KDevelop 4 Sandro Santos Andrade [email protected] http://liveblue.wordpress.com [email protected] 1 Um desafio inicial

Leia mais

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

Especificação de Sistemas de Software e a UML

Especificaçã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 mais

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

UML Diagramas Estruturais Diagrama de Componentes

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

Introdução a Orientação a Objetos e UML

Introduçã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 mais

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

Nome da classe. Atributos. Serviços / métodos

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

UML (Unified Modelling Language)

UML (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 mais

Java Standard Edition (JSE)

Java Standard Edition (JSE) Java Standard Edition (JSE) Capítulo 07. Classes abstratas Esp. Márcio Palheta MSN: [email protected] 1 Novos recursos a aprender Conceito de classes abstratas; Declaração e uso de classes abstratas;

Leia mais

Ferramenta 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 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í[email protected] Marcel Hugo (FURB) [email protected] Everaldo

Leia mais

Arquitetura de Software

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

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

Modelos em Sistemas de Informação. Aula 2

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

UML e seus diagramas

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

Introdução à UML. Prof. Jesus José de Oliveira Neto

Introduçã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 mais

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

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

UML. Adriano J. Holanda 21/3/

UML. 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 mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

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

ESTUDO DO PADRÃO DE PROJETO OBSERVER NO DESENVOLVIMENTO DE SOFTWARES UTILIZANDO A ARQUITETURA MVC RESUMO

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

Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação

Utilizaçã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 mais

Programação Orientada a Objetos

Programaçã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 mais

Programação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.

Programaçã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 [email protected] 1 Objectivos Apresentar os princípios e conceitos base sobre orientação por objectos (objectos,

Leia mais

JUnit: framework de testes unitários. Fred Lopes

JUnit: 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 mais

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli Técnico em Informática Web JavaScript Profª Ana Paula Mandelli [email protected] Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela

Leia mais

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

CASOS DE TESTE PALESTRANTE: MARCIA SILVA [email protected] WWW.EMERSONRIOS.ETI.BR

CASOS DE TESTE PALESTRANTE: MARCIA SILVA MARCIA.SILVA@DATASUS.GOV.BR WWW.EMERSONRIOS.ETI.BR CASOS DE TESTE PALESTRANTE: MARCIA SILVA [email protected] WWW.EMERSONRIOS.ETI.BR CONCEITOS BÁSICOS - TESTES O que é Teste de Software? Teste é o processo de executar um programa com o objetivo

Leia mais

Introdução à Orientação a Objetos e UML

Introduçã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 mais

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

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

Especificação de Sistemas e SysML

Especificaçã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 [email protected] Slides elaborados pelos professores Marcio Cornélio e Kiev

Leia mais

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

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

Leia mais

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

Introduçã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 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 mais

Ferramenta 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 Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: [email protected] Resumo Este artigo apresenta a ferramenta CASE

Leia mais

Programação Orientada a Objetos Relacionamentos entre classes

Programaçã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 mais

Análise de Sistemas. Aula 5

Aná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 mais

Capítulo 5 Modelação do Sistema 1

Capí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 mais

UMA PESQUISA SOBRE FERRAMENTAS CASE PARA ENGENHARIA REVERSA ESTÁTICA

UMA 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 [email protected]

Leia mais

Orientação a Objetos e UML

Orientação a Objetos e UML Orientação a Objetos e UML Aula #8.1. EBS 211 POO e UML Prof. Luiz Fernando S. Coletta [email protected] Campus de Tupã Roteiro Análise e projeto OO; Engenharia de software e UML; Diagrama de classes.

Leia mais

Arquitetura de Software: Introdução

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

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Modelo 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