Aula 18 Métricas e Anomalias de Modularidade
|
|
- Leonor Ribeiro Beltrão
- 6 Há anos
- Visualizações:
Transcrição
1 Aula 18 Métricas e Anomalias de Modularidade Marcos Silva LES/DI/PUC-Rio Maio 2010 Hoje... Introdução à Métricas Tipos de Métricas Métricas de Tamanho Métricas de Complexidade Métricas de Acoplamento Métricas de Coesão Ferramentas para contagem de Métricas Introdução a Anomalias 2/32 1
2 Métricas Existem diversas métricas que possamos executar a medição de software. Porém Por que medir? O que medir? Quando medir? 3/32 Métricas Não se pode controlar o que não se pode medir. (Morris A. Cohen) As métricas são necessárias para analisar os níveis de qualidade do design do software. Provê insights valiosos sobre particularidades do software Vêm se tornando populares e bem utilizadas Podem oferecer aumento no diagnóstico de sintomas de problemas Como algumas medições revelam problemas no design? 4/32 2
3 Métricas As métricas de software ajudam a entender o comportamento e funcionamento de processos, produtos e serviços de software. Podem se utilizadas para tomar decisões e determinar: o estabelecimento de padrões metas e critérios de aceitação controlar processo produtos e serviços de software prever valores de atributos aperfeiçoar o processo de desenvolvimento gerenciar contratos de software indicar a qualidade de um produto de software avaliar a produtividade do processo entre outras 5/32 Métricas Existem diversas métricas para diferentes tipos de necessidades Unidade de Tipo de Métrica Nome Medida Descrição Básica Esforço Hora Horas utilizadas por uma pessoa em determinada tarefa Básica Pontos por Função PF Tamanho do software, em Pontos por Função Básica Casos de Uso Caso de Uso Quantidade de casos de uso em um sistema Básica Pontos de Casos de Uso UCP Use Case Points, pontos totais somados dos casos de uso, abrangendo a complexidade Básica Linhas de Código KLOC Kilo Lines of Codes - Linhas de código Produtividade Horas por Ponto por Função Hrs / PF Horas por ponto de função Produtividade Linhas de Código por Hora LOC / Hr Linhas de Código desenvolvidas por hora Bugs encontrado em cada release, em Qualidade Bugs por Release B / R média Qualidade Bugs por Ponto por Função B / PF Bugs por Ponto por Função Bugs entregues por mês pela equipe do Qualidade Bugs por Mês B / Mês projeto Tarefas no prazo dividido por tarefas Pontualidade Índice de Pontualidade % entregues fora do prazo 6/32 3
4 Tipos de Métricas Métricas podem ser utilizadas de forma: Direta Exemplo: tamanho = quantidade de linhas de código Indireta ou Derivada Exemplo: densidade de defeitos = nº de defeitos / tamanho Pedição Predição Exemplo: esforço para desenvolver um software = nº de pontos de função 7/32 Diferentes métricas e contagens nominal Sem ordem, simplesmente com base em nomes (linguagem: 3GL, 4GL) ordinal Ordenada, mas sem comparação quantitativa (capacidade do programador: baixa, média, alta) intervalar Define o valor entre determinados valores definidos (capacidade do programador: entre 55 e 75 pontos de 100) ) racional O software proposto é duas vezes maior que o software desenvolvido até então Absoluta O software possui linhas de código 8/32 4
5 Métricas de Software Métricas de software tem como foco o software funcional e orientado a objetos Possível fazer predição de manutenibilidade e reusabilidade através de atributos de software bem conhecidos: Tamanho Complexidade Acoplamento Coesão Métricas estáticas 9/32 Métricas de Tamanho As métricas de tamanho tratam de diferentes aspectos do tamanho do sistema As métricas de tamanho mais comuns são: Linhas de Código (LOC) Número de Atributos (variáveis) (NOA) Número de Operações (funções) (NOM) 10 /32 5
6 Ex 1: Número de Linhas de Código (LOC) 01 bool searchlist( Comentários e espaços 02 char *cmd, // command string em branco devem ser 03 char **list, // array of strings contabilizados? 04 unsigned n) // max. no. of elements 05 { 06 unsigned i; // search entire list for command string 07 for ( unsigned i=0; i < n; i++ ) // for each element 08 { 09 if ( stricmp( cmd, list[i]) == 0) // matched? 10 { 11 return true; // found match 12 } 13 } } return false; // no match 11 /32 Ex 2: Número de Linhas de Código (LOC) bool searchlist( char *cmd, char **list, unsigned n ) { // search entire list for command string for(unsigned i=0; i < n; i++) if ( stricmp(cmd, list[i]) == 0) return true; return false; } Ex1 - escrito de forma verbosa e possui LOC = 15 Ex2 - escrito de forma concisa e possui LOC = 5 Como existem diferentes formas de observar a métrica são necessárias regras que definam a forma adequada de contar Em tamanho, o estilo de programação influencia na contagem 12 /32 6
7 Métricas de Complexidade Complexidade Ciclomática: é uma das métricas mais amplamente utilizadas em se tratando de métricas estáticas A complexidade ciclomática de um módulo de software é calculada a partir de um gráfico conectado do módulo: Complexidade Ciclomática (CC) = E - N + p, onde: E = o número de arestas do gráfico N = o número de nós do gráfico p = o número de componentes conectados 13 /32 Benefícios da Métrica de Complexidade Estudos mostram uma correlação entre a complexidade Ciclomática de um programa e sua freqüência de erro Uma baixa complexidade Ciclomática contribui para a facilidade de compreensão de um programa Indica que este é acessível a modificações com risco menor que um programa mais complexo A complexidade Ciclomática de um módulo também é um forte indicador de sua facilidade de teste Complexidade Ciclomática Avaliação de Risco Programa simples, sem muito risco Complexo, risco moderado Complexo, Programa de alto risco. maior que 50 Programa quase impossível de ser testado. (altíssimo risco) 14 /32 7
8 Exemplo de medição da complexidade E=8 n=7 p=2 CC=5 if ( a == b ) { if ( a < b) { menor = a ; } else { menor = b ; } } else { menor = \0 ; } Cada nó corresponde a uma bloco sequencial de código Cada aresta corresponde a um caminho criado a partir de uma estrutura de decisão 15 /32 Revisão: Acoplamento O acoplamento é uma medida do volume, da dificuldade de assegurar a corretude e do risco de erro como conseqüência de se estabelecer uma instância de relacionamento (conexão) entre cliente e servidor. Exemplos de relacionamento: no caso de variáveis globais é um acesso a uma dessas variáveis no caso de funções é uma chamada no caso de um módulo é um #include Mar 2009 Alessandro Garcia LES/DI/PUC-Rio 16 /32 8
9 Influência de acoplamento no... O risco de erro e a dificuldade de assegurar corretude está relacionada com o esforço humano para assegurar a corretude será menos difícil quanto mais puder ser verificado pelo compilador ou por alguma ferramenta de verificação será mais difícil quanto mais depender da ação humana Exemplo, na função double * OpMatriz( int dimlinhas, int dimcolunas, int tamlinhas, int tamcolunas, double * pmatriz ) em uma chamada qualquer permutação dos quatro primeiros argumentos é válida do ponto de vista do compilador A manutenibilidade: qualquer mudança na implementação do conector, afeta os módulos clientes A reusabilidade: o módulo cliente precisa depender de mais detalhes do módulo servidor sendo reusado 17 /32 Métricas de acomplamento Sistemas que precisam ter independência entre suas partes! Comum adotar a estratégia de módulos com forte independência de outros módulos e com forte unicidade Ou seja, sistemas com fraco acoplamento entre subsistemas com cada subsistema é fortemente coeso Como minimizar dependências e maximizar o reuso? Atribuir responsabilidades de forma a minimizar o acoplamento 18 /32 9
10 Como medir acoplamento? Como medir acoplamento? Baixo Acoplamento entre Módulos Alto Acoplamento entre Módulos 19 /32 Como medir acoplamento? Algumas métricas para medir acoplamento: Acoplamento entre módulos: mede o quão fortemente os módulos estão dependentes e Acoplamento intra-módulos: mede o quão fortemente estão dependentes suas funções e atributos entre si Nos quais são contabilizados o número de tipos utilizados em variáveis, parâmetros, retornos e etc. Acoplamento entre dados abstratos: mede o número total de tipos referenciados na declaração das variáveis Acoplamento entre funções: mede o número de funções as quais uma outra função é dependente Volume de acoplamento de fuñção: mede o número de tipos existentes numa função (retorno, tipos e parâmetros) 20 /32 10
11 Revisão: Coesão A coesão avalia o inter-relacionamento entre os elementos que constituem uma interface ou um conector quanto mais forte for o inter-relacionamento, melhor será a coesão incidental os elementos estão juntos somente por conveniência ou falta de cuidado do programador lógica os elementos possuem alguma funcionalidade correlata mas não existe uma definição única e bem delimitada para o conjunto temporal os elementos interdependem somente pelo fato de serem manipulados em um mesmo intervalo de tempo procedural os elementos interdependem pelo fato de serem ativados um após ao outro funcional os elementos definem uma única função que implementa exatamente um conceito abstração de dados os elementos definem uma único tipo abstrato de dados Na verdade, é um caso particular de coesão funcional Mar 2009 Alessandro Garcia LES/DI/PUC-Rio 21 /32 Métricas de coesão Cohesão significa dizer que um certo módulo possui elementos (funções, variáveis, etc) relacionados a ele. Falta de coesão significa que um módulo (ou mesmo um subconjunto do mesmo) está fazendo coisas além de sua responsabilidade. De forma geral, a falta de coesão não impacta na funcionalidade do módulo (nem do sistema) Entretanto, o sistema acabará com problemas de: legibilidade, entendimento e gerência do código dado que as funcionalidades estão espalhadas e acabaram em lugares (módulos) errados 22 /32 11
12 Falta de Coesão Falta de Coesão entre métodos (funções) (LCOM) Possui três formatos: LCOM 1: com base no acesso as variáveis LCOM 2: versão melhorada de LCOM1 e LCOM 3: melhoria do LCOM1 e LCOM2 proposta por Henderson-Sellers. NOTA: As métricas de coesão são muito mais utilizadas em sistemas orientados a objetos (classes, métodos e atributos) 23 /32 Falta de Coesão: Forma 1 LCOM 1: Tomamos então duas variáveis, P e Q Escolhe-se pares de funções criando um conjunto de variáveis acessadas para cada uma delas. Caso os conjuntos sejam disjuntos incrementa-se P. Caso contrário, para cada variável compartilhada incrementase Q RESULTADO = (P > Q)? (P - Q) : 0 Um valor baixo indica alta coesão entre as funções. Também pode indicar que o módulo possui bom nível reusabilidade e design 24 /32 12
13 Falta de Coesão: Forma 2 LCOM 2: Definidos m: número de métodos (funções) de uma classe (módulo) a: número de atributos (variáveis) de uma classe ma: número de métodos (funções) que acessam um dado atributo (variável) A. soma(ma): soma de todos os valores para ma no módulo. RESULTADO = 1- soma(ma)/(m*a) Caso o número de funções ou variáveis for 0, então: RESULTADO = 0 25 /32 Falta de Coesão: Forma 3 LCOM 3 é definida da seguinte forma: RESULTADO = (m - sum(ma)/a) ) / (m-1) m, a, ma soma(ma) definidas como em LCOM2 LCOM 3 varia entre 0 e 2 LCOM3 > 1 indica falta de coesão e é considerado um problema. Nesse caso é melhor que a classe seja particionada em duas ou mais classes. Se existe apenas um método na classe RESULTADO = 0. O mesmo ocorre se não existirem variáveis na classe 26 /32 13
14 Ferramentas A grande maioria das ferramentas para medição de software funcional utilizam-se de análise estática Resource Standard Metrics Versão 7.75 (bem estável) Possui versão free Website: msquaredtechnologies.com/m2rsm Diversas esasferramentas e podem ser encontradas em: spinroot.com/static/ 27 /32 Sintomas de Problemas Assim como um médico pode usar os números extraídos de exames para diagnosticar doenças e prescrever tratamentos números de plaquetas ph taxas de glicose e colesterol e outras centenas de índices possíveis Desenvolvedores também podem detectar sintomas de problemas de design por meio da análise numérica de informações extraídas do código-fonte. 28 /32 14
15 Problemas de Design Existem diversos tipos de problemas no design Veremos Anomalias de Modularidade Code Smells Geralmente levam aos padrões de refatoração Podemos encontrar pontos de refatoração à partir de métricas coletadas no código-fonte 29 /32 Aula 16 Métricas e Anomalias de Modularidade (continua...) Marcos Silva Marcos Silva LES/DI/PUC-Rio Maio
Medidas de Esforço de Desenvolvimento de Software
Medidas de Esforço de Desenvolvimento de Software Unidade 1 Fundamentos de Métricas e Medidas Luiz Leão luizleao@gmail.com http://www.luizleao.com Unidade 1 Fundamentos de métricas e medidas Introdução
Leia maisDisciplina Medições e Qualidade de Software. Tópicos da Disciplina. Método de Avaliação. Qualidade de Software.
Engenharia de Software Aula 19 Disciplina 2012-2 Medições e Qualidade de Software Medição e Qualidade de Software Terças e quintas: 9:25 as 11:05 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com
Leia maisProjeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 16 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar, discutir o conceito de métricas de software. DESENVOLVIMENTO Métricas
Leia maisUNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Teste de Software Engenharia de Software 2o. Semestre de 2006 Slide
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisMétricas de Software
Métricas de Software Plácido Antônio de Souza Neto 1 1 Gerência Educacional de Tecnologia da Informação Centro Federal de Educação Tecnologia do Rio Grande do Norte 2006.1 - Planejamento e Gerência de
Leia maisGerência de Projetos e Qualidade de Software. Prof. Walter Gima
Gerência de Projetos e Qualidade de Software Prof. Walter Gima 1 OBJETIVOS Compreender o processo de gerenciamento de qualidade e as principais atividades do processo de garantia, planejamento e controle
Leia maisEngenharia de Software
Introdução Engenharia de Software O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; QUALIDADE DE SOFTWARE Empresas que desenvolvem software de qualidade são
Leia maisEngenharia de Software II
Engenharia de Software II Aula 12 http://www.ic.uff.br/~bianca/engsoft2/ Aula 12-31/05/2006 1 Ementa Processos de desenvolvimento de software (Caps. 2, 3 e 4 do Pressman) Estratégias e técnicas de teste
Leia maisAula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia
Aula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia LES/DI/PUC-Rio Agosto 2017 Especificação Objetivo dessa aula Estudar características da interface de módulos Estudar os princípios de
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisInstituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Medição de Sofware
Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados Medição de Sofware Prof. Dr. Renato L. Novais renato@ifba.edu.br Agenda Medição de software Por que medir? Exemplos
Leia maisAula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016
Aula 20 Testes 3 Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Slides adaptados de: Staa, A.v. Notas de Aula em Programacao Modular; 2008. Teste de Caixa Branca O que
Leia maisTema da aula Introdução ao paradigma de programação: Orientado a Objetos
Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção
Leia maisMétricas de processo e projeto de software
Métricas de processo e projeto de software Métrica é um conjunto de medidas. Medição existe em qualquer processo de construção de qualquer coisa. A medição é realizada não apenas na Engenharia de Software.
Leia mais3 Medição de Software
3 Medição de Software À medida que a engenharia de software amadurece, a medição de software passa a desempenhar um papel cada vez mais importante no entendimento e controle das práticas e produtos do
Leia maisLinguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos
Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos
Leia maisEngenharia de Software
Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e
Leia maisESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO Adalberto Cajueiro (adalberto@computacao.ufcg.edu.br) Departamento de Sistemas e Computação Universidade Federal de Campina Grande 1
Leia maisCONCEITOS BÁSICOS E MODELO DE PROJETO
CONCEITOS BÁSICOS E MODELO DE PROJETO Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Na aula passada... Abstração Arquitetura Padrões de Projeto Separação por interesses (por afinidades) Modularidade
Leia maisUniversidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação Medições e Métricas de Software
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação Medições e Métricas de Software Aluno: Igor Muzetti Pereira Professor: Tiago Garcia de Senna Carneiro
Leia maisMedidas de Esforço de Desenvolvimento de Software
Medidas de Esforço de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 O que você entende por Métricas de software? Questão 1 Resposta O que você entende por Métricas
Leia maisMétricas. Métricas. [Engenharia de Software II] Adriano J. Holanda 11/9/2017
Métricas [Engenharia de Software II] Adriano J. Holanda 11/9/2017 Algumas Métricas Medidas que podem ser usadas para monitoramento e controle do processo de desenvolvimento. Número de linhas de código
Leia maisPCS3413 Engenharia de Software e Banco de Dados
PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações
Leia maisENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE Teste de Software Verificação e validação Testes de desenvolvimento Testes de release Testes de usuário Desenvolvimento dirigido a testes Kele Teixeira Belloze kelebelloze@gmail.com
Leia maisModelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
Leia maisTESTES DE SOFTWARE. Profa. Maria Auxiliadora
TESTES DE SOFTWARE 1 Teste de software É uma atividade crítica na garantia de qualidade de software; Quatro dimensões: Estado do teste ( o momento ); Técnica do teste ( como vou testar ); Metas do testes
Leia maisMedições e métricas de software
Medições e métricas de software A medição de software está preocupada com a derivação de um valor numérico para um atributo de um produto de software ou processo. - O que permite comparações objetivas
Leia mais4 O Framework de Avaliação
4 O Framework de Avaliação O propósito central do uso de aspectos é melhorar a separação de concerns. Entretanto a orientação a aspectos pode afetar também outros atributos de software, tais como acoplamento,
Leia maisAnálise e Projeto de Software
Análise e Projeto de Software Proj. Desenvolvimento de Software Prof. Cleverton Hentz cleverton.hentz@ifrn.edu.br 8 de junho de 2017 Material Apresentado Sumário de Aula 1 Introdução 2 Estruturação do
Leia maisEngenharia de Software
Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 UML Linguagem Unificada de Modelagem Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto
Leia maisFalta Erro Falha. Motivação. Teste de Software. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro 6/6/11
Motivação Teste de Software Ocorrência de falhas humanas no processo de desenvolvimento de software é considerável Processo de testes é indispensável na garantia de qualidade de software Custos associados
Leia maisTeste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo
Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Casos de Teste e Cenários de Teste Técnicas de Teste Técnica de Teste Estrutural 2 Casos
Leia maisDCC004 - Algoritmos e Estruturas de Dados II
Conceito de especificação de software Renato Martins Email: renato.martins@dcc.ufmg.br https://www.dcc.ufmg.br/~renato.martins/courses/dcc004 Material adaptado de PDS2 - Douglas Macharet e Flávio Figueiredo
Leia maisEstimativas e Métricas Engenharia de Software
Tema da Aula - I Prof. Cristiano R R Portella portella@widesoft.com.br 9 Nas Engenharias, a atividade de medir é exercida com prioridade (peso, potência, tensão, sinal/ruído, tempo, espessura etc). O que
Leia maisGerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002
Gerência e Planejamento de Projeto SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 Conteúdo: Parte 1: Gerenciamento & Qualidade Plano de Projeto
Leia maisEstruturas de controle Parte 1
1. Objetivos Estruturas de controle Parte 1 Nas lições anteriores, foram mostrados programas seqüenciais, onde as instruções foram executadas uma após a outra de forma fixa. Nesta lição, discutiremos estruturas
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 maisINSTRUÇÕES DE REPETIÇÃO
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma
Leia maisArquitetura de software
Arquitetura de software Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Recebe encomendas e pagamento Recomenda itens a usuários Por onde começamos? Arquitetura =
Leia maisGerência de Projetos e Qualidade de Software. Prof. Walter Gima
Gerência de Projetos e Qualidade de Software Prof. Walter Gima 1 OBJETIVO Compreender uma série de técnicas de testes, que são utilizadas para descobrir defeitos em programas Conhecer as diretrizes que
Leia maisCapítulo 24. Gerenciamento de Qualidade Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 24 Gerenciamento de Qualidade slide 1 Tópicos abordados Qualidade de software Padrões de software Revisões e inspeções Medições e métricas de software slide 2 Gerenciamento de qualidade de software
Leia maisArquitetura de Software visão emergente
Arquitetura de Software visão emergente Objetivos Visão abstrata do software através de componentes e interfaces Independência de plataforma Independência de paradigma de programação Técnicas Estilos Arquiteturais
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisVisões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Leia maisENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE Qualidade de Software Qualidade do produto e do processo Padrões de software Revisões Medições e métricas de software Kele Teixeira Belloze kelebelloze@gmail.com CONCEITO DE QUALIDADE
Leia maisEstilos Arquiteturais
Estilos Arquiteturais Estilos Arquiteturais A arquitetura de um sistema pode aderir a um ou mais estilos arquiteturais Um estilo define os tipos de elementos que podem aparecer em uma arquitetura e as
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisPROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções
Leia maisTestes de correção (de defeitos)
Testes de correção (de defeitos) Revelam a presença de erros, mas NÃO a ausência Um teste bem sucedido é aquele que descobre o maior número de erros existentes. Deve ser utilizado em conjunto com técnicas
Leia maisOs princípios do desenho orientado a objetos
Os princípios do desenho orientado a objetos Os princípios do desenho orientado a objetos Encapsulamento e congeneridade Domínios, grau de dependência e coesão Os perigos da herança e do polimorfismo Encapsulamento
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de
Leia maisEstimativa por Use Case Point (UCP)
Estimativa por Use Case Point (UCP) A análise de sistemas Orientados a Objetos já utiliza, comumente, os diagramas de Casos de Uso (Use Cases) para descrever as funcionalidades do sistema de acordo com
Leia maisAnálise de Ponto de Função APF. Aula 02
Análise de Ponto de Função APF Aula 02 Agenda Parte 01 Introdução a Métricas de Software Parte 02 A Técnica de APF O que é APF? Objetivos Benefícios Conceitos Básicos Visão Geral dos Procedimentos de Contagem
Leia maisOrganização para Realização de Teste de Software
Organização para Realização de Teste de Software Quando o teste se inicia há um conflito de interesses: Desenvolvedores: interesse em demonstrar que o programa é isento de erros. Responsáveis pelos testes:
Leia maisUnidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri
Unidade VI Técnicas de Teste de Software Profa. Dra. Sandra Fabbri Os requisitos de teste são extraídos de uma implementação em particular Teste dos detalhes procedimentais A maioria dos critérios dessa
Leia maisARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos
ARCHITECTURAL DESIGN Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Tópicos abordados Arquitetura de Software Projeto de arquitetura Vantagens de arquitetura
Leia maisAnálise de Algoritmos
Análise de Algoritmos Parte 1 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 04 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Como escolher o algoritmo
Leia maisCIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO
REVISÃO POO INTRODUÇÃO À LINGUAGEM JAVA CRIANDO CLASSES EM JAVA Convenção de Nomes em Java Classes iniciam com letras maiúsculas Métodos, atributos e variáveis locais iniciam com minúsculas. Declaração
Leia maisEngenharia de Software
Engenharia de Software Visão Geral Profa.Paulo C. Masiero masiero@icmc.usp.br ICMC/USP Algumas Dúvidas... Como são desenvolvidos os softwares? Estamos sendo bem sucedidos nos softwares que construímos?
Leia maisAula 10 Especificação de Requisitos
Aula 10 Especificação de Requisitos Alessandro Garcia LES/DI/PUC-Rio Setembro 2016 Especificação Objetivos dessa aula Apresentar a importância e o que são especificações de requisitos, bem como conceitos
Leia maisAula 04 Introdução à Programação Orientada à Objetos
Aula 04 Introdução à Programação Orientada à Objetos Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda Introdução à Programação Orientada
Leia maisGerência de Projetos e Manutenção de Software Aula 4 Planejamento de Projetos (Estimativas) Andréa Magalhães Magdaleno 2017.
Gerência de Projetos e Manutenção de Software Aula 4 Planejamento de Projetos (Estimativas) Andréa Magalhães Magdaleno andrea@ic.uff.br 2017.02 Agenda Aulas Anteriores Estimativas Planning Poker Paramétrica
Leia mais10/10/2012. Artigo: Autores:
Artigo: Apresentar um estudo sistemático sobre as métricas de acoplamento na Programação Orientada a Aspectos e seu impacto na manutenibilidade e estabilidade do projeto. Autores: Rachel Burrows, Alessandro
Leia maisGRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé)
GRASP Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Introdução a padrões O que são? Por que utilizá-los? Padrões GRASP O que são? Quais serão apresentados na disciplina?
Leia maisAula 02 Conceitos e Princípios de Modularidade 1
Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Agosto 2016 Lembretes Horário das aulas inicio cada aula a partir de 13:15 Sítio (site) da disciplina: www.inf.puc-rio.br/~inf1301
Leia maisEstágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana
Estágio II Aula 04 Testes Ágeis Prof. MSc. Fred Viana Agenda Manifesto dos Testes Ágeis Testes Ágeis x Testes Tradicionais Sinais de que os Testes Não São Ágeis Testador Ágil Testador Ágil em Equipe Independente
Leia maisConceitos Básicos de C
Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,
Leia maisAula 05 - ES - Métricas de Software
Aula 05 - ES - Métricas de Software Conceito METRICAS inferências sobre os processos de trabalho que traduzem: a priori ESTIMATIVAS expectativas METRICAS Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com
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 maisPuca Huachi Vaz Penna / José Américo T. Messias
BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna / José Américo T. Messias Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca
Leia maisTestes de software - Teste funcional
Testes de software - Teste funcional Vitor Alcântara de Almeida Universidade Federal do Rio Grande do Norte Natal, Brasil 30 de outubro de 2014 Alcântara (UFRN) Testes de software - Testes funcionais 30
Leia maisEngenharia de Software II
Engenharia de Software II Aula 13 http://www.ic.uff.br/~bianca/engsoft2/ Aula 13-02/06/2006 1 Ementa Processos de desenvolvimento de software (Caps. 2, 3 e 4 do Pressman) Estratégias e técnicas de teste
Leia maisFATORES E MÉTRICAS DE QUALIDADE
FATORES E MÉTRICAS DE QUALIDADE 1 2 FATORES DE QUALIDADE OPERAÇÃO DO PRODUTO CORRETITUDE (FAZ O QUE EU QUERO?) CONFIABILIDADE (SE COMPORTA COM PRECISÃO?) EFICIÊNCIA (RODARÁ TÃO BEM QUANTO POSSÍVEL?) INTEGRIDADE
Leia maisMas o que é mesmo Padrão de Projeto?
Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque
Leia maisEngenharia de Software II
Engenharia de Software II Aula 21 http://www.ic.uff.br/~bianca/engsoft2/ Aula 21-05/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software
Leia maisDEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação
Funções DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / 07 1 Programação modular Programação modular: divir um programa em módulos mais pequenos Função: um conjunto de instruções que desempenham
Leia maisProcessos de software
Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de
Leia maisREUSO E REUSABILIDADE
REUSO E REUSABILIDADE Manutenção de Software Profa. Cynthia Pinheiro Antes de mais nada... 2ª Lista de Exercícios Já está disponível no site a 2ª Lista de Exercícios Entrega: dia 03/10, no horário da aula.
Leia maisEngenharia de Software II
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 03 (rogerio@fct.unesp.br) Contextualizando ISO 12207: Estrutura
Leia mais9 Conclusão e trabalhos futuros
255 9 Conclusão e trabalhos futuros O aumento da complexidade das aplicações de software de hoje em dia e o advento de tecnologias inovadoras e recentes fazem com que os sistemas de software incorporem
Leia maisMedidas de Esforço de Desenvolvimen to de Software
Medidas de Esforço de Desenvolvimen to de Software Prof. Luiz Leão luizleao@gmail.com luizleao.com Métricas Utilizando Ponto Função Medidas da Produtividade por PF Aspectos de influência na produtividade
Leia maisDocumento de Requisitos*
* Rosana T. Vaccare Braga *slides adaptados a partir do material da Profa Ellen Francine Barbosa Processo de Engenharia de Requisitos Documento de requisitos Processo de Engenharia de Requisitos Estudo
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia maisIntrodução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
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 maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Leia maisAula 02 Conceitos e Princípios de Modularidade 1
Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Março 2017 Lembretes Horário das aulas vamos ter que começar as 13:00 Definição de horário de monitoria Sítio (site) da
Leia maisEngenharia de Software II
Engenharia de Software II Aula 19 http://www.ic.uff.br/~bianca/engsoft2/ Aula 19-28/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software
Leia maisEngenharia de Software
Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação
Leia maisAula 15: Introdução a Funções
Aula 15: Introdução a Funções Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Laços aninhados Exemplos diversos
Leia mais