Baixe o app para aproveitar ainda mais
Prévia do material em texto
FIC – Faculdades Integradas de Caratinga Ciência da Computação, autoriz. MEC, portaria 585, de 26/06/98 Engenharia de software Prof. Msc. Fabrícia Pires Lista de Exercícios GRACE KELLY DA SILVA Atividades sobre Métricas de software – Valor 4 pontos 1) Explique o que são métricas de software. As métricas podem ser consideradas como um conjunto de atributos, previamente documentados e conhecidos do ciclo de desenvolvimento de software. Métricas de softwares possibilitam realizar uma das atividades mais fundamentais do processo de gerenciamento de projetos: o planejamento. A partir desse, pode-se identificar a quantidade de esforço, de custo e das atividades que serão necessárias para a realização do projeto. 2) Diferencie as métricas: 1. Custo Visa medir o custo e os prazos, que são calculados em função do esforço, da equipe e do custo da mão de obra. 2. Esforço Determina o número de pessoas para realizar uma atividade num período de tempo; O esforço depende do tamanho do software; A produtividade diminui em equipes maiores, principalmente devido à necessidade de comunicação e interação. 3. Linhas de Código Usada para medir o tamanho de um programa de software, texto do código fonte do programa. 4. Complexidade Utilizando métricas de complexidade na fase de teste, pode-se, dependendo dos elementos requeridos, selecionar casos de teste utilizando como base as informações dadas pela métrica. A partir disso se obtém dados que podem nos auxiliar a priorizar os elementos requeridos a serem testados, realizando os testes primeiramente nos trechos com maior probabilidade de possuir defeitos. 5. Eficiência Mede o tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software. A eficiência inclui capacidade de resposta, tempo de processamento, uso de memória etc. FIC – Faculdades Integradas de Caratinga Ciência da Computação, autoriz. MEC, portaria 585, de 26/06/98 Engenharia de software Prof. Msc. Fabrícia Pires Lista de Exercícios GRACE KELLY DA SILVA 6. Memória Mede a quantidade de memória utilizada. Pois o software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. 7. Número de Erros Por essa métrica se lê o código em detalhes procurando por possíveis erros e omissões. Em seguida, os problemas detectados são discutidos em uma reunião de revisão de código. 8. Manutenibilidade Métrica onde se considera: uma avaliação da versão inicial, definição de uma proposta de modificações para a qual é estabelecido um prazo e, avaliação da versão modificada. 9. Complexidade ciclomática é uma métrica de software usada para indicar a complexidade de um programa de computador. Ou seja, mede a quantidade de caminhos de execução independentes a partir de um código fonte. 10. Funcionalidade Mede a capacidade de um software de prover funcionalidades que satisfaçam o usuário em suas necessidades declaradas e implícitas, dentro de um determinado contexto de uso. 11. Qualidade Que permitem indicar o nível de resposta do software às exigências explícitas e implícitas do cliente, com relação ao definido pela gerência de qualidade; 12. Velocidade de Execução Visa medir o tempo de execução do sistema. Ou seja, o tempo gasto pelo sistema para responder as solicitações do usuário. 13. Confiabilidade Mede a capacidade do sistema de fornecer os serviços conforme especificado. Confiabilidade pode ser expressa quantitativamente como sendo a probabilidade de uma falha sob demanda ou como a taxa de ocorrência de falha. 3) Cite exemplos de ferramentas que auxiliam na gestão ou cálculo destas métricas. FindBugs é um tipo de programa de código aberto que identifica erros em programas o escrito em Java. SLOCCount é uma ferramenta easy-to-use (fácil para usar) que conta linhas de código fonte. FIC – Faculdades Integradas de Caratinga Ciência da Computação, autoriz. MEC, portaria 585, de 26/06/98 Engenharia de software Prof. Msc. Fabrícia Pires Lista de Exercícios GRACE KELLY DA SILVA CQUAL é uma ferramenta de análise que fornece um mecanismo leve, prático para especificar e verificar propriedades de programas C. PREfast é uma ferramenta de análise estática que identifica defeitos em programas C / C ++. Testwell CMT ++, Ferramenta de Complexidade de medição para C / C ++ / C #, é uma ferramenta de métricas de código easy-to-use para C, C ++ e C # Frama-C é um conjunto de ferramentas dedicada à análise do código-fonte do software escrito em C. 4) Quanto às métricas propostas, explique sua origem, forma de utilização, aplicação e possíveis resultados. 1. COCOMO; O modelo de custo construtivo foi desenvolvido por Barry Boehm no final de 1970. O Constructive Cost Model, (CoCoMo), segundo Boehm (2000), é um método que busca medir esforço, prazo, tamanho de equipe e custo necessário para o desenvolvimento do software, desde que se tenha a dimensão do mesmo, através de um modelo de estimativa de tamanho de software, como Análise de Pontos de Função. Devido à idade dos projetos que embasaram o modelo anterior, assim como sua incapacidade de lidar com ciclos iterativos e com a utilização de componentes Commercial-Off-The-Shelf (COTS)4 , o CoCoMo 81, Boehm (1981), é atualmente considerado obsoleto, tendo sido substituído pela sua versão II, publicada inicialmente em 2000 e vista em Aguiar (2004). O modelo CoCoMo II contribui para o atendimento das práticas relativas à estimativa de esforço e custo, que se encontram nas Áreas de Processo de Planejamento de Projetos e de Monitoramento e Controle de Projetos, ambas de nível 2 do CMMI (SEI 2004), considerando representação estagiada. Este nível de maturidade tem como propósito o foco nas atividades de gestão de projetos, de forma a enfatizar um processo gerenciado, monitorado, controlado, revisado e avaliado. Um processo com nível de capacidade 2 é caracterizado como um processo gerenciado, que além de ser executado também é planejado e executado de acordo com políticas, emprega pessoas capacitadas e recursos adequados para produzir resultados controlados. Também envolve stakeholders relevantes, e preocupa-se com a realização de outros objetivos específicos estabelecidos para o processo, tais como custo, prazo e qualidade. FIC – Faculdades Integradas de Caratinga Ciência da Computação, autoriz. MEC, portaria 585, de 26/06/98 Engenharia de software Prof. Msc. Fabrícia Pires Lista de Exercícios GRACE KELLY DA SILVA Para o cálculo do custo deve-se conhecer o prazo e equipe de trabalho, para então chegar ao valor, sendo que para definir o tamanho do programa, torna-se necessário que se caracterize que medida será adotada (linhas de código, pontos por função ou pontos por caso de uso). 2. APF; A técnica de Análise de Pontos de Função foi elaborada por Allan Albrecht, em meados da década de 1970, a partir de um estudo sobre a produtividade em projetos de software. Albrecht tinha o objetivo de elaborar uma medida que observasse aspectos externos (funcionalidades) do software, independente da tecnologia utilizada, melhorando assim o nível de assertividade das estimativas. Esse estudo foi publicado em 1979. Atualmente o padrão de APF é mantido pelo International Function Point Users Group(IFPUG), entidade sem fins lucrativos cuja finalidade é promover um melhor gerenciamento dos processos de desenvolvimento e manutenção de software. O IFPUG mantém o Manual de Práticas de Contagem de Pontos de Função, que é o principal guia de APF reconhecido pelo mercado. A técnica de APF consiste em atribuirum índice numérico a cada uma das funcionalidades do software, conforme a sua complexidade, a partir de um conjunto de critérios padronizados. A partir desses índices é determinada uma medida inicial de tamanho, a qual é normalizada através da incorporação de um conjunto de fatores relacionados ao software como um todo. Como resultado tem-se a quantidade de Pontos de Função do software. A técnica compreende todas as atividades relacionadas à construção e entrega dos requisitos funcionais, desde a especificação dos requisitos, passando pela análise e modelagem, até a codificação e testes, incluindo também artefatos tais como manuais de utilização. Tamanho pode ser estimado antes da especificação de requisitos estar completa • Muito útil em tempo de proposta e análise de viabilidade • É uma técnica para macro-estimativas • Não recomendada para estimativas pontuais de atividades ou projetos muito pequenos Resultados melhores à medida que dados históricos de projetos são incorporados 3. PONTOS DE CASOS DE USO Até o início da década de 90 havia a falsa noção de que a APF não era adequada para medir sistemas orientados a objetos. Aqueles que compartilhavam desta noção, na prática desconheciam a APF. FIC – Faculdades Integradas de Caratinga Ciência da Computação, autoriz. MEC, portaria 585, de 26/06/98 Engenharia de software Prof. Msc. Fabrícia Pires Lista de Exercícios GRACE KELLY DA SILVA Com a disseminação da construção e projeto de sistemas orientados a objetos, houve também uma mudança na forma de se especificar e modelar os sistemas. A UML e os casos de uso rapidamente tornaram-se padrão na indústria de software. Dentro deste contexto, em 1993 Gustav Karner propôs em um trabalho acadêmico a metodologia dos Pontos por Caso de Uso (baseado na Análise de Pontos de Função) com o intuito de estimar recursos para projetos de software orientados a objeto desenvolvidos utilizando o processo Objectory. O processo de medição do PCU consiste resumidamente em: 1 - Contar os atores e identificar sua complexidade; 2 - Contar os casos de uso e identificar sua complexidade; 3 - Calcular os PCUs não ajustados; 4 - Determinar o fator de complexidade técnica; 5 - Determinar o fator de complexidade ambiental; 6 - Calcular os PCUs ajustados; Com o resultado desta medição e sabendo-se a produtividade média da organização para produzir um PCU, pode-se então estimar o esforço total para o projeto. 4. NESMA A NESMA – Netherlands Software Metrics Association (Associação de Métricas de Software da Holanda) é uma organização similar ao IFPUG, fundada em 1989, também composta por voluntários, que mantém seu próprio Manual de Práticas de Contagens. A NESMA reconhece três tipos de contagem de pontos de função: - Contagem de pontos de função detalhada - Contagem de pontos de função estimativa - Contagem de pontos de função indicativa Contagem Detalhada determina-se todas as funções de todos os tipos (ALI, AIE, EE, SE, CE) determina-se a complexidade de cada função (Baixa, Média, Alta) calcula-se o total de pontos de função não ajustados. Contagem Estimativa Determina-se todas as funções de todos os tipos (ALI, AIE, EE, SE, CE) FIC – Faculdades Integradas de Caratinga Ciência da Computação, autoriz. MEC, portaria 585, de 26/06/98 Engenharia de software Prof. Msc. Fabrícia Pires Lista de Exercícios GRACE KELLY DA SILVA toda função do tipo dado (ALI, AIE) tem sua complexidade funcional avaliada como Baixa, e toda função transacional (EE, SE, CE) é avaliada como de complexidade média calcula-se o total de pontos de função não ajustados. Logo, a única diferença em relação à contagem usual de pontos de função é que a complexidade funcional não é determinada individualmente para cada função, mas pré-definida para todas elas. Contagem Indicativa determina-se a quantidade das funções do tipo dado (ALIs e AIEs) calcula-se o total total de pontos de função não ajustados da aplicação da seguinte forma: tamanho indicativo (pf) = 35 x número de ALIs + 15 x número de AIEs. Portanto esta estimativa é baseada somente na quantidade de arquivos lógicos existentes (ALIs e AIEs). A contagem indicativa é baseada na premissa de que existem aproximadamente três EEs (para adicionar, alterar, e excluir dados do ALI), duas SEs, e uma CE na média para cada ALI, e aproximadamente uma SE e uma CE para cada AIE. A aplicação das regras da NESMA é bastante adequada para projetos de melhoria, pois proporciona uma melhor relação entre tamanho e esforço do projeto.
Compartilhar