{"id":203,"date":"2011-06-28T21:41:00","date_gmt":"2011-06-29T00:41:00","guid":{"rendered":"https:\/\/www.semeru.com.br\/blog\/?p=203"},"modified":"2022-12-20T18:03:08","modified_gmt":"2022-12-20T21:03:08","slug":"medicao-e-metricas-de-software","status":"publish","type":"post","link":"https:\/\/www.semeru.com.br\/blog\/medicao-e-metricas-de-software\/","title":{"rendered":"Medi\u00e7\u00e3o e M\u00e9tricas de Software"},"content":{"rendered":"<p>O papel da medi\u00e7\u00e3o de software \u00e9 quantificar alguns atributos de um produto ou de um processo de software. Comparando essas informa\u00e7\u00f5es \u00e9 poss\u00edvel tirar conclus\u00f5es sobre a qualidade do software. Possibilita ainda mensurar se mudan\u00e7as organizacionais \u2013 ado\u00e7\u00e3o de novas ferramentas, metodologias dentre outros \u2013 est\u00e3o sendo positivas ou n\u00e3o para os processos de desenvolvimento da mesma. Nesse caso s\u00e3o feitas medi\u00e7\u00f5es antes e depois da mudan\u00e7a a fim de verificar se a mesma foi positiva ou n\u00e3o para a organiza\u00e7\u00e3o (SOMMERVILLE, 2008).<\/p>\n<p>Majoritariamente, as m\u00e9tricas t\u00eam sido adotadas para melhorar processos de gerenciamento da qualidade. Por esse motivo as m\u00e9tricas s\u00e3o utilizadas para mensurar defeitos de programas e processos de verifica\u00e7\u00e3o e valida\u00e7\u00e3o.<\/p>\n<p>Todavia, o uso de m\u00e9tricas ainda \u00e9 relativamente incomum e muitas organiza\u00e7\u00f5es relutam em adot\u00e1-las pois os benef\u00edcios n\u00e3o s\u00e3o bem definidos. Isso acontece por que a organiza\u00e7\u00e3o dos processos de software ainda \u00e9 prec\u00e1ria e ainda n\u00e3o est\u00e3o aperfei\u00e7oados de forma suficiente para usar m\u00e9tricas. Outro motivo \u00e9 a falta de padr\u00f5es para as m\u00e9tricas e o fato de muitas empresas n\u00e3o estarem preparadas para introduzir medi\u00e7\u00f5es sem que padr\u00f5es e ferramentas sejam antes criadas.<\/p>\n<p>Nesse sentido, Paula Filho (2000) \u00a0afirma que escolher medidas adequadas, e ser capaz de coletar, normalizar e analisar estas medidas requer um grau mais avan\u00e7ado de capacita\u00e7\u00e3o. Ressalta tamb\u00e9m que sem medidas, os processos n\u00e3o podem ser avaliados e muito menos melhorados. Por isso mesmo que as medidas sejam rudimentares elas podem ser \u00fateis.<\/p>\n<p>Uma m\u00e9trica de software \u00e9 qualquer tipo de medi\u00e7\u00e3o que se refira a um sistema de software, processo ou documenta\u00e7\u00e3o relacionada. Alguns exemplos s\u00e3o a medi\u00e7\u00e3o do tamanho pela quantidade de linhas de c\u00f3digo, grau de facilidade de leitura de um trecho de c\u00f3digo, numero de defeitos relatados e numero de pessoas-dia necess\u00e1rias para desenvolver um software (SOMMERVILLE, 2008).<\/p>\n<p>As m\u00e9tricas podem ser classificadas em de controle ou preditivas e ambas podem influenciar na tomada de decis\u00f5es. As m\u00e9tricas de controle est\u00e3o associadas a processos de software, j\u00e1 as preditivas est\u00e3o associadas a produtos de software. Visto que\u00a0 \u00e9 quase imposs\u00edvel medir atributos da qualidade de software como facilidade de manuten\u00e7\u00e3o, complexidade e facilidade de compreens\u00e3o, os engenheiros de software medem ent\u00e3o atributos internos como o tamanho. Com essas medidas em m\u00e3os eles sup\u00f5e que existam rela\u00e7\u00f5es entre o que se pode medir e o que se deseja saber. Al\u00e9m disso para que o processo de medi\u00e7\u00e3o seja confi\u00e1vel, \u00e9 exigido tamb\u00e9m, profissionais com grande experi\u00eancia em estat\u00edstica.<\/p>\n<h3>1.1 O Processo de Medi\u00e7\u00e3o<\/h3>\n<p>A medi\u00e7\u00e3o de software muitas vezes pode fazer parte de um processo de controle de qualidade. Componentes de um sistema s\u00e3o analisados separadamente, e os diferentes valores de m\u00e9tricas s\u00e3o comparados entre si e com dados hist\u00f3ricos de projetos precedentes. As medi\u00e7\u00f5es an\u00f4malas encontradas nesse processo s\u00e3o usadas para enfatizar o esfor\u00e7o de garantia de qualidade.<\/p>\n<p>De acordo com Sommerville (2008) os principais est\u00e1gios desse processo s\u00e3o:<\/p>\n<ul>\n<li><em>Escolha das medi\u00e7\u00f5es a serem feitas<\/em> onde devem ser formuladas quest\u00f5es as quais as medi\u00e7\u00f5es se destinam a responder e definir as medi\u00e7\u00f5es importantes para responder essas quest\u00f5es. Medi\u00e7\u00f5es n\u00e3o relevantes para responder essas quest\u00f5es n\u00e3o precisam ser coletadas.<\/li>\n<li><em>Sele\u00e7\u00e3o dos componentes a serem avaliados<\/em> nem todos os componentes precisam ser necessariamente avaliados, sendo assim \u00e9 preciso fazer-se uma sele\u00e7\u00e3o representativa de componentes realmente importantes.<\/li>\n<li><em>Medi\u00e7\u00e3o de caracter\u00edsticas dos componentes<\/em> os componentes selecionados s\u00e3o medidos e os valores e m\u00e9tricas s\u00e3o computados.<\/li>\n<li><em>Identifica\u00e7\u00e3o de medi\u00e7\u00f5es an\u00f4malas <\/em>deve-se ent\u00e3o procurar por valores incomuns para cada m\u00e9trica pois eles sugerem a exist\u00eancia de problemas com o componente \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 que apresenta esses valores.<\/li>\n<li><em>Analise de componentes an\u00f4malos<\/em> os componentes com valores an\u00f4malos devem ser examinados para constatar se a qualidade do componente est\u00e1 ou n\u00e3o comprometida. Apesar disso pode haver ainda outros motivos para essa anomalia mas que n\u00e3o comprometam a qualidade.<\/li>\n<\/ul>\n<p>Os dados coletados devem ser mantidos como um recurso organizacional assim como os registros hist\u00f3ricos dos projetos. Quando um banco de dados de medi\u00e7\u00e3o se torna suficientemente grande ele passa a servir de base para compara\u00e7\u00f5es entre projetos e m\u00e9tricas espec\u00edficas podem ser aprimoradas, de acordo com as necessidades organizacionais.<\/p>\n<h3>1.2 M\u00e9tricas de Produto<\/h3>\n<p>O foco das m\u00e9tricas de produto s\u00e3o as caracter\u00edsticas do pr\u00f3prio software. Pelo fato de as caracter\u00edsticas facilmente mensur\u00e1veis do software n\u00e3o terem uma rela\u00e7\u00e3o clara e universal com os atributos de qualidade, a organiza\u00e7\u00e3o precisa analisar seu banco de dados para descobrir como atributos do produto de software se relacionam com as qualidades desejadas pela organiza\u00e7\u00e3o.<\/p>\n<p>Nesse sentido Sommerville (2008) divide as m\u00e9tricas de produtos em duas classes:<\/p>\n<ul>\n<li><em>M\u00e9tricas din\u00e2micas<\/em> s\u00e3o aquelas coletadas de um programa em execu\u00e7\u00e3o. Ajudam a avaliar a efici\u00eancia e a confiabilidade de um programa. Quase sempre est\u00e3o relacionadas com atributos da qualidade de software.<\/li>\n<li><em>M\u00e9tricas est\u00e1ticas <\/em>s\u00e3o aquelas coletadas em representa\u00e7\u00f5es do sistema como projeto, programa ou documenta\u00e7\u00e3o. Ajudam a mensurar a complexidade e a facilidade de compreens\u00e3o e manuten\u00e7\u00e3o de um sistema de software. Possuem uma rela\u00e7\u00e3o indireta com os atributos de qualidade.<\/li>\n<\/ul>\n<p>Um dos maiores problemas da coleta de dados sobre software e projetos de software reside no fato de que os dados podem ser interpretados de forma equivocada levando a resultados incorretos. A interpreta\u00e7\u00e3o dos dados sobre um produto ou processo \u00e9 um m\u00e9todo incerto. Os elementos focados pela medi\u00e7\u00e3o n\u00e3o est\u00e3o isolados de seus ambientes, e mudan\u00e7as nesse ambiente podem invalidar as compara\u00e7\u00f5es de dados. Al\u00e9m disso, as m\u00e9tricas variam de acordo com o projeto, com as metas da equipe de gerencia de qualidade, com o tipo de software que est\u00e1 em desenvolvimento.<\/p>\n<h2>Treinamentos relacionados com essa postagem<\/h2>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_agile\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" style=\"max-width: 107%;\" title=\"Agile desmistificado com Scrum, XP, Kanban, Spotify e Trello\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/05-agile.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_trello\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 107%;\" title=\"Trello 2023: Gest\u00e3o Otimizada de Equipes e Projetos Pessoais\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/04-trello.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_spotify\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 107%;\" title=\"Spotify Engineering Culture Desmistificado\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/06-spotify.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_scrum_remote\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 107%;\" title=\"Agile e Scrum para Times em Home Office com Trello\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/23-scrum-remote.png\" \/><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_kanban_remote\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" style=\"max-width: 107%;\" title=\"Agile e Kanban para Times em Home Office com Trello\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/21-kanban-remote.png\" \/><br \/>\n<\/a><\/p>\n<h2>Refer\u00eancias:<\/h2>\n<p>SOMMERVILLE, Ian.\u00a0<strong>Engenharia de Software\u00a0<\/strong>: 8 ed. Rio de Janeiro: Prentice-Hall, 2008.<\/p>\n<p>PMBOK.\u00a0<strong>Um guia do conhecimento em gerenciamento de projetos (Guia PMBOK)<\/strong>. 4 ed. Pennsylvania: Project Management Institute, Inc., 2008.<\/p>\n<p>PAULA FILHO, Wilson de P\u00e1dua.\u00a0<strong>Engenharia de Software:<\/strong>fundamentos, m\u00e9todos e padr\u00f5es. S\u00e3o Paulo: LTC Editora, 2000.<\/p>\n<div align=\"right\"><div class=\"sharexyWidgetNoindexUniqueClassName\"><div id=\"shr_25309214\"><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>O papel da medi\u00e7\u00e3o de software \u00e9 quantificar alguns atributos de um produto ou de um processo de software. Comparando essas informa\u00e7\u00f5es \u00e9 poss\u00edvel tirar conclus\u00f5es sobre a qualidade do software. Possibilita ainda mensurar se mudan\u00e7as organizacionais \u2013 ado\u00e7\u00e3o de novas ferramentas, metodologias dentre outros \u2013 est\u00e3o sendo positivas ou n\u00e3o para os processos de [&#8230;]<\/p>\n<div align=\"right\">\n<div class=\"sharexyWidgetNoindexUniqueClassName\">\n<div id=\"shr_25309214\"><\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[67,44,77,32,80,78,79],"tags":[170,173,171,172],"_links":{"self":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts\/203"}],"collection":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/comments?post=203"}],"version-history":[{"count":7,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts\/203\/revisions"}],"predecessor-version":[{"id":1359,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts\/203\/revisions\/1359"}],"wp:attachment":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/media?parent=203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/categories?post=203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/tags?post=203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}