none
calcolare complessità ciclomatica RRS feed

  • Discussione generale

  • ciao a tutti, navigando mi sono "imbattuto" nel concetto di complessità ciclomatica , ho trovato due fonti :
    https://it.wikipedia.org/wiki/Complessit%C3%A0_ciclomatica
    e
    https://web.archive.org/web/20120419143103/http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/chapter4.htm#449165

    non sono però riucito a comprendere come mai gli operatori di confronto (<,>,etc,etc) non sembrano influire sulla complessità (come si evince dal punto 4.4 del secondo link ,ho fatto una lista un pò alla buona di quali sarebbero i punti decisionali in c#

    public class Util
        {
            List<string> listaPuntiDecisionali = new List<string>();
            public Util()
            {            
                listaPuntiDecisionali.Add("if");
                listaPuntiDecisionali.Add("while");
                listaPuntiDecisionali.Add("for");
                listaPuntiDecisionali.Add("do");
                listaPuntiDecisionali.Add("foreach");
                listaPuntiDecisionali.Add("switch");
                listaPuntiDecisionali.Add("elseif");
    
                listaPuntiDecisionali.Add("&&");
                listaPuntiDecisionali.Add("||");
                listaPuntiDecisionali.Add("&");
                listaPuntiDecisionali.Add("|");
                 //ed altri operatori
            }
        }
    spero in un vostro consiglio o nell'indicazione di documentazione in proposito,grazie,ciao

    venerdì 25 ottobre 2019 12:51

Tutte le risposte

  • chi fosse interessato a valutare la complessità ciclomatica può installare il tool "Microsoft Code Analysis 2019" ,funziona anche su VS community


     
    lunedì 28 ottobre 2019 14:51
  • Ciao a tutti, stò provando due tool per la misurazione della complessità del codice:
    1) l'estensione "microsoft code analysis"
    2) codemaid spade

    ho analizzato con entrambi questo codice :

    public class Configuration
        {
            private string executablePath;
            public string PathExecutable
            {
                get { return executablePath; }
                set { executablePath = value; }
            }
            private string sourcePath;
            public string PathSource
            {
                get { return sourcePath; }
                set { sourcePath = value; }
            }
            private string sourceResultPath;
            public string ResultSourcePathSource
            {
                get { return sourceResultPath; }
                set { sourceResultPath = value; }
            }
            
            private string testProperty;
            public string PropTestProperty
            {
                get { return testProperty; }            
            }
    
    
            public Configuration()
            {
    
            }
        }

    il problema è che ho una complessità diversa nei risultati dei due tool:
    l'estensione di visual studio valuta 2 ogni proprietà mentre "codemaid spade" valuta ogni proprietà di complessità 1
    se faccio una proprietà che abbia solo un get entrambi la valutano di complessità 1

    qual'è secondo voi la valutazione giusta? , grazie, ciao

    giovedì 31 ottobre 2019 16:38