Come configurare smartphone e PC. Portale informativo

Le metriche QA più importanti.

Metricaè una scala quantitativa e un metodo che può essere utilizzato per misurare.

Da parte nostra, aggiungiamo che l'introduzione e l'uso di metriche è necessario per migliorare il controllo sul processo di sviluppo, e in particolare sul processo di test, che valuteremo ulteriormente.

Lo scopo del controllo del test è ottenere feedback e visualizzare il processo di test.... Le informazioni di controllo vengono raccolte (sia manualmente che automaticamente) e utilizzate per valutare lo stato e prendere decisioni come la copertura (ad esempio, la copertura dei requisiti o il codice del test) oi criteri di uscita (ad esempio, i criteri di completamento del test). Le metriche possono essere utilizzate anche per valutare lo stato di avanzamento del lavoro pianificato e l'utilizzo del budget.

Crea, usa e analizza le metriche

A nostro avviso, per maggiore chiarezza, ha senso raggruppare le metriche in base ai tipi di entità coinvolte nell'assicurazione della qualità e nei test del software, ovvero:

  1. Metriche dei casi di test
  2. Metriche di bug/difetto
  3. Metriche delle attività

Diamo un'occhiata più da vicino a ciascuno di essi:

Metriche del caso di test

Metriche dei bug


Vorremmo notare che le metriche "Bug aperti/chiusi", "Bug per gravità" e "Bug per priorità" visualizzano bene il grado in cui il prodotto si sta avvicinando a soddisfare i criteri di qualità per i bug. Avendo requisiti per il numero di bug aperti, dopo ogni iterazione di test, li confrontiamo con dati reali, vedendo così i luoghi in cui dobbiamo aggiungere per raggiungere l'obiettivo il prima possibile.

Le metriche "Bug riaperti/chiusi" e "Bug rifiutati/aperti" sono progettate per tenere traccia delle prestazioni dei singoli membri dei team di sviluppo e test.

Esempio uno:
Diciamo che abbiamo una situazione in cui il numero di bug riaperti dopo la correzione non diminuisce o addirittura aumenta. Questo è un segnale che è necessario condurre un'analisi delle cause, poiché una situazione come questa può mostrare che:

  1. Soluzione superficiale del problema di scarsa qualità (correzione di bug)

Secondo esempio mostrerà per cosa è necessaria la metrica "Bug rifiutati/aperti":
Osserviamo che la percentuale di bug rifiutati è molto alta. Questo può significare:

  1. I requisiti funzionali possono essere interpretati in modi diversi
  2. Il tester non ha descritto accuratamente il problema
  3. Lo sviluppatore non vuole correggere l'errore che ha commesso o non crede che si tratti effettivamente di un errore. (Questo problema è una diretta conseguenza del 2°, sorto a causa di una descrizione imprecisa)

Tutti questi problemi destabilizzano significativamente la situazione sul progetto. Pertanto, se si verificano, si consiglia di condurre una breve conversazione con i leader dei team di progetto al fine di ridurre successivamente il numero di difetti riscoperti e rifiutati.

Metriche delle attività

NomeDescrizione
Attività di distribuzione

La metrica mostra il numero e i risultati delle installazioni di app. La procedura di installazione dell'applicazione è stata descritta nell'articolo Procedura di installazione di Deployment WorkFlow. Se il numero di versioni rifiutate dal team di test è estremamente elevato, si consiglia di analizzare e identificare con urgenza i motivi, nonché di risolvere il problema esistente il prima possibile.

Attività ancora aperte

La metrica mostra il numero di attività ancora aperte. Alla fine del progetto, tutte le attività dovrebbero essere chiuse. Per mansioni si intendono le seguenti tipologie di lavoro: redazione di documentazione (architettura, requisiti, progetti), realizzazione di nuovi moduli o modifica di quelli esistenti su richiesta di modifiche, lavoro di allestimento stand, studi vari e molto altro.


Le metriche per le attività possono essere diverse, ne abbiamo fornite solo due. Anche di interesse può essere la metrica sul tempo di esecuzione dei compiti e molti altri.

In conclusione, vogliamo sottolineare che la presenza delle metriche e dei grafici necessari che riflettono il cambiamento dello stato del progetto nel tempo consentirà di migliorare non solo il processo di test, ma anche lo sviluppo nel suo insieme, e faciliterà anche la procedura per analizzare il progetto completato, che ti consentirà di prevenire errori passati.

Video didattico. Yandex.Metrica: conoscente

Guarda il video

Cosa può essere monitorato utilizzando le metriche

Attrarre visitatori

I rapporti diretti in Metrica mostrano chiaramente quali campagne, annunci, frasi e query di ricerca provengono dal tuo sito, da quali regioni e da quali piattaforme pubblicitarie. Usa queste informazioni per ottimizzare le tue campagne.

Ad esempio, puoi migliorare le tue frasi aggiungendo parole chiave da query di ricerca pertinenti e parole chiave negative da query irrilevanti: questo ti aiuterà ad attirare più visitatori interessati e ad aumentare il tuo CTR.

Pubblico del sito

In Metrica, puoi ottenere caratteristiche dettagliate del tuo pubblico. Il sesso, l'età e gli interessi dei visitatori vengono calcolati analizzando il loro comportamento su Internet utilizzando la tecnologia Crypt. Sulla base di questi dati, gli annunci possono essere resi più pertinenti e quindi aumentare la loro efficacia.

Raggiungimento di obiettivi e conversioni

È importante non solo portare visitatori al tuo sito, ma capire se stanno diventando dei veri clienti. Per fare ciò, in Metrica, è necessario impostare obiettivi, ovvero determinare le azioni chiave che i visitatori del sito devono eseguire.

Ad esempio, il tuo cliente potrebbe essere un visitatore che:

  • cliccato sul pulsante "Aggiungi al carrello";
  • è andato dal carrello alla pagina "Grazie per il vostro acquisto" quando si effettua un ordine;
  • visitato almeno due pagine del sito;
  • è andato alla pagina con le informazioni di contatto;
  • registrati al sito o iscritti alla newsletter.

La presenza di obiettivi personalizzati ti permetterà di capire quali frasi e annunci vengono utilizzati dagli utenti per raggiungere il sito. Non solo puoi analizzare la crescita delle visite mirate, ma anche ottimizzarle utilizzando una delle strategie automatiche: Costo medio di conversione o Budget settimanale. Conversioni massime.

Reddito

I proprietari di negozi online possono ricevere informazioni dettagliate sugli ordini effettuati sul sito Web del negozio a Metrika. Sarai in grado di scoprire quanti soldi ha portato ogni ordine e da quali canali provengono gli ordini più redditizi.

Direttamente nell'interfaccia di Metrica, puoi stimare rapidamente i tuoi costi pubblicitari in Yandex.Direct. Ad esempio, puoi vedere la tua spesa pubblicitaria totale, vedere il costo medio delle conversioni in tutte le tue campagne pubblicitarie e stimare il costo medio o totale dei clic per tipi di dispositivi, regioni, ricerche o siti specifici.

Chiamate mirate

I clienti effettuano ordini non solo sul sito web, ma anche per telefono. Servizio "Chiamata mirata" consente di confrontare l'efficacia dei diversi canali di promozione. Ottieni numeri di telefono speciali che possono essere collegati a diverse fonti, con un livello di dettaglio fino alle singole campagne pubblicitarie. Il numero sul sito Web e nel biglietto da visita virtuale viene modificato automaticamente a seconda della fonte: in questo modo è possibile tenere traccia di dove ogni chiamante ha scoperto di te.

Come iniziare a raccogliere statistiche

    Installa il codice contatore su tutte le pagine del tuo sito il più vicino possibile alla parte superiore della pagina: la completezza dei dati raccolti dipende da questo. È possibile verificare la correttezza dell'impostazione del contatore nella console del browser.

    Se crei molte campagne con lo stesso set di contatori, puoi specificare i contatori nella pagina delle impostazioni utente nel campo Contatore di metriche per nuove campagne.

    Fino a quando non avrai specificato i numeri del contatore, il markup del collegamento automatico ti aiuterà a trasferire i dati tra Direct e Metrica. Assicurati che l'opzione sia abilitata nelle impostazioni della campagna. Annota i link per Metrica e il tuo sito apre correttamente i link con i tag.

    Come funziona il markup del collegamento

    Attenzione. Se il campo non è compilato nei parametri della campagna Metriche dei contatori, e l'opzione è disabilitata Annota i link per Metrica, i dati sui clic sugli annunci non verranno inclusi in Metrica e i dati di Metrica non verranno inclusi nelle statistiche Yandex.Direct.

Domande e risposte

Quanto velocemente vengono aggiornati i dati nei rapporti Metrica?

Le azioni del visitatore sul sito si riflettono nella maggior parte dei rapporti Metrica in pochi minuti. I dati per i rapporti speciali su Direct sono sottoposti a controlli aggiuntivi, quindi entrano in Metrica con un ritardo fino a diverse ore.

Quanto velocemente i dati sul raggiungimento degli obiettivi entrano in Yandex.Direct?

I dati sul raggiungimento di un obiettivo specifico entrano in Yandex.Direct entro 24 ore.

Perché i dati nelle statistiche Yandex.Direct e Metrica sono diversi?

Berg O. Yu.

METRICHE DI VALUTAZIONE DELLA QUALITÀ DEL SOFTWARE

Poiché l'elaborazione dei dati influisce sempre di più sulle nostre vite, gli errori informatici possono ora avere conseguenze come danni alla proprietà, violazione della segretezza e molti altri, inclusa la morte. L'affidabilità del software (software) è la probabilità del suo funzionamento senza guasti per un certo periodo di tempo, calcolata tenendo conto del costo per l'utente di ciascun guasto. Pertanto, è necessario essere in grado di misurare la qualità del software durante l'intero ciclo di sviluppo. La qualità del software dovrebbe essere valutata sulla base di criteri di qualità, che dovrebbero:

Caratterizzare numericamente la principale funzione target del programma;

Fornire la capacità di determinare i costi necessari per raggiungere il livello di qualità richiesto, nonché il grado di influenza sull'indicatore di qualità di vari fattori esterni;

Sii il più semplice possibile, ben misurabile e con una varianza bassa.

Le metriche vengono utilizzate per misurare le prestazioni e i criteri di qualità. Attualmente è noto un gran numero di metriche che valutano la produzione individuale e le proprietà operative del software. Tuttavia, il perseguimento della loro universalità, ignorando l'ambito del software sviluppato, le fasi del ciclo di vita riduce significativamente l'efficienza del loro utilizzo.

La metrica della qualità del programma è un sistema per misurare la qualità del programma. Queste misurazioni possono essere effettuate a livello di criteri di qualità del programma oa livello di caratteristiche di qualità individuali. Nel primo caso, il sistema di misura consente il confronto diretto dei programmi in termini di qualità. Allo stesso tempo, le misurazioni stesse non possono essere effettuate senza valutazioni soggettive delle proprietà dei programmi. Nel secondo caso, le caratteristiche possono essere misurate in modo oggettivo e attendibile, ma la valutazione della qualità del software nel suo insieme sarà associata all'interpretazione soggettiva delle valutazioni risultanti.

Nello studio delle metriche del software, ci sono due aree principali:

Cerca le metriche che caratterizzano le proprietà più specifiche dei programmi, ad es. metriche per la valutazione del software stesso;

L'uso di metriche per valutare le caratteristiche tecniche e i fattori di sviluppo del software, ad es. metriche per valutare le condizioni per lo sviluppo dei programmi.

In base al tipo di informazioni ottenute durante la valutazione della qualità del software, le metriche possono essere suddivise in tre gruppi:

Metriche che valutano la deviazione dalla norma delle caratteristiche dei materiali di progettazione iniziale. Stabiliscono la completezza delle specifiche specificate del codice sorgente.

Metriche per prevedere la qualità del software in fase di sviluppo. Sono dati sul set

possibili opzioni per risolvere il problema e la loro implementazione e determinare la qualità del software, che

sarà raggiunto alla fine.

Metriche in base alle quali viene presa una decisione sulla conformità del software finale ai requisiti specificati. Consentono di valutare la conformità dello sviluppo ai requisiti specificati.

Attualmente, nella pratica mondiale, vengono utilizzate diverse centinaia di metriche di programma. Le valutazioni dei programmi di qualità esistenti possono essere raggruppate in sei aree:

Stime della complessità topologica e informativa dei programmi;

Valutazioni dell'affidabilità di sistemi software che consentono di prevedere situazioni di guasto;

Valutare le prestazioni del software e migliorarne l'efficienza identificando gli errori di progettazione;

Valutazione del livello degli strumenti linguistici e della loro applicazione;

Valutazioni della difficoltà di percezione e comprensione dei testi del programma, focalizzate su

fattori psicologici essenziali per il mantenimento e la modifica dei programmi;

Stime della produttività dei programmatori per prevedere i tempi di sviluppo dei programmi e pianificare il lavoro sulla creazione di sistemi software.

A seconda delle caratteristiche e delle caratteristiche delle metriche utilizzate, vengono assegnate diverse scale di misura:

La scala nominale corrisponde alle metriche che classificano i programmi in tipologie in base alla presenza o meno di qualche caratteristica indipendentemente dalle gradazioni;

La scala ordinale corrisponde a metriche che consentono di classificare alcune caratteristiche per confronto con valori di riferimento, ad es. la misurazione su questa scala determina effettivamente la posizione relativa di programmi specifici;

La scala degli intervalli corrisponde a metriche che mostrano non solo la posizione relativa dei programmi, ma anche quanto sono distanti l'uno dall'altro;

La scala relativa corrisponde a metriche che consentono non solo di organizzare i programmi in un certo modo e valutarne la posizione l'uno rispetto all'altro, ma anche di determinare quanto distano le stime dal confine da cui è possibile misurare la caratteristica.

Un'analisi dell'esperienza tecnologica dei leader nella produzione di software mostra quanto sia costosa l'imperfezione della previsione non scientifica della risolvibilità e del costo del lavoro, la complessità dei programmi, l'inflessibilità del controllo e della gestione del loro sviluppo e molto altro, indicando la mancanza di fine -supporto metodologico a tutto tondo e portando infine alla sua non conformità ai requisiti dell'utente, allo standard richiesto e alla successiva dolorosa e laboriosa alterazione dello stesso. Queste circostanze richiedono un'attenta selezione di tecniche, modelli, metodi per valutare la qualità del software, tenendo conto dei limiti della loro idoneità ai vari cicli di vita, stabilendo l'ordine del loro uso congiunto, utilizzando studi ridondanti su modelli diversi degli stessi indicatori aumentare l'affidabilità delle valutazioni correnti, l'accumulo e l'integrazione di informazioni metriche eterogenee per prendere decisioni tempestive sulla produzione e sulla certificazione del prodotto finale.

In conclusione, va notato che quando si scelgono le metriche per valutare la qualità del software, è necessario essere guidati dalle seguenti regole:

la metrica dovrebbe avere senso sia per il cliente che per l'appaltatore;

la metrica deve essere oggettiva e la sua definizione univoca;

la metrica dovrebbe consentire di tracciare l'andamento dei cambiamenti;

la metrica può essere automatizzata.

Un'analisi metrica della qualità condotta in modo approfondito in accordo con gli obiettivi di sviluppo crea le basi per una corretta pianificazione e controllo dei costi di qualità al fine di raggiungere gli indicatori richiesti e l'efficienza nell'uso delle risorse.

LETTERATURA

1. Liu K., Zhou S. Yang H., Quality Metrics of Object Oriented Design for Software Development and Re-development, - Atti della prima conferenza Asia-Pacifico sul software di qualità, 2000 IEEE

2. Boehm B. W., Brown J. R., Lipow M. QUANTITATIVE EVALUATION OF SOFTWARE QUALITY Atti della 2nd International Conference on Software Engineering on International conference on software engineering ottobre 1976

3. Houdek F., Kempter H. Modelli di qualità - Un approccio all'esperienza di ingegneria del software di confezionamento ACM SIGSOFT Software Engineering Notes, Atti del simposio 1997 sul simposio sulla riutilizzabilità del software maggio 1997

4. W. Royce Software Project Management, Mosca, LORI

Alexey Chernikov

1. Introduzione

A differenza della maggior parte dei rami della produzione materiale, in materia di progetti di sviluppo software, approcci semplici basati sulla moltiplicazione dell'intensità del lavoro per la produttività media del lavoro sono inaccettabili. Ciò è dovuto principalmente al fatto che gli indicatori economici del progetto dipendono in modo non lineare dalla quantità di lavoro e, quando si calcola la complessità, è consentito un grande errore.

Pertanto, per risolvere questo problema, vengono utilizzate tecniche complesse e piuttosto complesse, che richiedono un'elevata responsabilità nell'applicazione e un certo tempo di adattamento (impostazione dei coefficienti).

I moderni sistemi integrati per la valutazione delle caratteristiche dei progetti di sviluppo software possono essere utilizzati per risolvere i seguenti compiti:

  • valutazione preliminare, definitiva e definitiva dei parametri economici del progetto: intensità di lavoro, durata, costo;
  • valutazione del rischio per il progetto: il rischio di rispettare le scadenze e non portare a termine il progetto, il rischio di aumentare l'intensità del lavoro nelle fasi di debug e supporto al progetto, ecc.;
  • prendere decisioni di gestione operativa: sulla base del monitoraggio di determinate metriche di progetto, è possibile prevenire tempestivamente il verificarsi di situazioni indesiderate ed eliminare le conseguenze di decisioni di progettazione sconsiderate.

1. Introduzione
2 metriche
2.1 Metriche basate sulle dimensioni (indicatori di valutazione del volume)
2.1.1 Valutazione LOC (righe di codice)
2.1.1.1 Metrica di stile e comprensibilità dei programmi
2.1.2 SLOC Totale
2.2 Metriche di complessità
2.2.2 Metriche di Halstead
2.2.4 Metriche Chepin

2.4 Elenco generale delle metriche
2.4 Riepilogo
6 risorse Internet

2. Metriche

È consuetudine dividere le metriche di complessità del software in tre gruppi principali:

  • metriche sulla dimensione del programma;
  • metriche della complessità del flusso di controllo del programma;
  • metriche della complessità del flusso di dati dei programmi.

Le metriche del primo gruppo si basano sulla quantificazione delle dimensioni del programma e sono relativamente semplici. Le metriche più note di questo gruppo includono il numero di istruzioni del programma, il numero di righe del testo sorgente e l'insieme delle metriche Halstead. Le metriche di questo gruppo sono focalizzate sull'analisi del codice sorgente dei programmi. Pertanto, possono essere utilizzati per valutare la complessità degli intermedi di sviluppo.

Le metriche del secondo gruppo si basano sull'analisi del grafico di controllo del programma. Il rappresentante di questo gruppo è la metrica McCabe.

Il grafico di controllo del programma, utilizzato dalle metriche di questo gruppo, può essere costruito sulla base di algoritmi del modulo. Pertanto, le metriche del secondo gruppo possono essere utilizzate per valutare la complessità dei prodotti intermedi di sviluppo.

Le metriche del terzo gruppo si basano sulla valutazione dell'uso, della configurazione e del posizionamento dei dati nel programma. Ciò riguarda principalmente le variabili globali. Questo gruppo include le metriche di Chepin.

2.1 Metriche basate sulle dimensioni (stime di volume)

2.1.1 Valutazione LOC (righe di codice)

Le metriche dimensionali misurano direttamente un prodotto software e il suo processo di sviluppo. Tali metriche si basano sui punteggi LOC.

Questo tipo di metriche misura indirettamente un prodotto software e il suo processo di sviluppo. Invece di calcolare i punteggi LOC, non considera le dimensioni, ma piuttosto la funzionalità o l'utilità del prodotto.

Le metriche orientate alle dimensioni sono le più utilizzate nello sviluppo di software. Nelle organizzazioni impegnate nello sviluppo di prodotti software per ciascun progetto, è consuetudine registrare i seguenti indicatori:

  • costo totale del lavoro (in mesi-uomo, ore-uomo);
  • dimensione del programma (in migliaia di righe di codice sorgente -LOC);
  • costo di sviluppo;
  • volume di documentazione;
  • errori scoperti durante l'anno di funzionamento;
  • il numero di persone che hanno lavorato al prodotto;
  • periodo di sviluppo.

Sulla base di questi dati, vengono solitamente calcolate semplici metriche per valutare la produttività del lavoro (KLOC/mese uomo) e la qualità del prodotto.

Queste metriche non sono universali e controverse, specialmente per un indicatore come LOC, che dipende in modo significativo dal linguaggio di programmazione utilizzato.

Linee di codice (LOC, Source Lines of Code - SLOC) è il modo più semplice e comune per stimare l'ambito di un progetto.

Inizialmente, questo indicatore è nato come un modo per valutare la quantità di lavoro su un progetto, in cui sono stati utilizzati linguaggi di programmazione che avevano una struttura abbastanza semplice: "una riga di codice = un comando di lingua". È anche noto da tempo che la stessa funzionalità può essere scritta con un diverso numero di righe e se prendiamo un linguaggio di alto livello (C++, Java), allora è possibile scrivere 5-6 righe di funzionalità in una riga - questo non è un problema. E questo sarebbe metà del problema: gli stessi strumenti di programmazione moderni generano migliaia di righe di codice per un'operazione banale.

Pertanto, il metodo LOC è solo un metodo di stima (che dovrebbe essere preso in considerazione, ma non basato su stime) e non è in alcun modo obbligatorio.

A seconda di come viene preso in considerazione il codice simile, ci sono due principali indicatori SLOC:

  1. il numero di righe di codice "fisiche" - SLOC (abbreviazioni usate LOC, SLOC, KLOC, KSLOC, DSLOC) - è definito come il numero totale di righe del codice sorgente, inclusi commenti e righe vuote (quando si misura l'indicatore sul numero di righe vuote, di norma viene introdotto un limite: il conteggio tiene conto del numero di righe vuote, che non supera il 25% del numero totale di righe nel blocco di codice misurato).
  2. Il numero di righe di codice "logiche" - SLOC (abbreviazioni usate LSI, DSI, KDSI, dove "SI" - istruzioni sorgente) - è definito come il numero di comandi e dipende dal linguaggio di programmazione utilizzato. Se il linguaggio non consente di inserire più comandi su una riga, il numero di SLOC "logici" corrisponderà al numero di quelli "fisici", ad eccezione del numero di righe vuote e di righe di commento. Nel caso in cui un linguaggio di programmazione supporti il ​​posizionamento di più comandi su una riga, una riga fisica dovrebbe essere considerata come più righe logiche se contiene più di un comando di linguaggio.

Per la metrica SLOC esistono numerosi derivati ​​atti ad ottenere indicatori di progetto individuali, i principali dei quali sono:

  • numero di righe vuote;
  • il numero di righe contenenti commenti;
  • percentuale di commenti (rapporto tra righe di codice e righe di commento, metrica di stile derivata);
  • numero medio di righe per funzioni (classi, file);
  • numero medio di righe contenenti codice sorgente per funzioni (classi, file);
  • numero medio di righe per moduli.

2.1.1.1 Metrica di stile e comprensibilità dei programmi

A volte è importante non solo contare il numero di righe di commenti nel codice e correlare semplicemente con le righe logiche di codice, ma anche scoprire la densità dei commenti. Cioè, il codice è stato prima documentato bene, poi male. Oppure questa opzione: l'intestazione di una funzione o di una classe è documentata e commentata, ma il codice no.

Fi = SEGNO (Ncom. I / Ni - 0,1)

L'essenza della metrica è semplice: il codice è suddiviso in n pezzi uguali e Fi è determinato per ciascuno di essi.

2.1.2 SLOC Totale

Potenziali svantaggi SLOC presi di mira dalle critiche:

  • è brutto e scorretto ridurre la valutazione del lavoro di una persona a diversi parametri numerici e giudicarne le prestazioni. Il manager può assegnare i programmatori più talentuosi alle aree di lavoro più difficili; ciò significa che lo sviluppo di questa sezione richiederà più tempo e genererà il maggior numero di errori, a causa della complessità del compito. Ignaro di queste difficoltà, un altro manager delle prestazioni potrebbe decidere che il programmatore ha svolto un lavoro scadente.
  • La metrica non tiene conto dell'esperienza dei dipendenti e delle loro altre qualità
  • Distorsione: il processo di misurazione può essere distorto dal fatto che i dipendenti sono consapevoli delle metriche misurate e cercano di ottimizzare tali metriche piuttosto che le proprie prestazioni. Ad esempio, se il numero di righe del codice sorgente è una metrica importante, i programmatori tenderanno a scrivere quante più righe possibile e non utilizzeranno tecniche di semplificazione del codice che riducono il numero di righe (vedi barra laterale sull'India).
  • Imprecisione: non ci sono metriche che siano sufficientemente significative e accurate. Il numero di righe di codice è semplicemente il numero di righe; questo indicatore non dà un'idea della complessità del problema da risolvere. L'analisi dei punti di funzione è stata progettata per misurare meglio la complessità del codice e delle specifiche, ma utilizza il giudizio personale del misuratore, quindi persone diverse otterranno risultati diversi.

E la cosa principale da ricordare: la metrica SLOC non riflette la complessità della creazione del programma
.

Esempio di vita reale :
In una delle società, durante l'implementazione, abbiamo applicato questa metrica: abbiamo contato le righe di codice. Il capo dell'organizzazione era in vacanza, ma al ritorno ha deciso di sfruttare la trasparenza e la tracciabilità dei cambiamenti e vedere come se la cavavano i suoi manager nei progetti. E per entrare completamente nel corso, sono sceso al livello più basso (cioè, non ho valutato la densità dei difetti, il numero di bug corretti) - al livello dei testi di origine. Ho deciso di contare chi ha scritto quante righe. E per renderlo completamente divertente, correla il numero di giorni lavorativi alla settimana e la quantità di codice scritto (la logica è semplice: una persona ha lavorato 40 ore a settimana, il che significa che deve scrivere molto). Naturalmente, c'era una persona che scriveva solo una riga in una settimana, non scriveva nemmeno, ma correggeva solo quella esistente ...

La rabbia del leader non conosceva limiti: ha trovato un fannullone! E sarebbe un male per il programmatore se il project manager non spiegasse che: è stato trovato un errore nel programma, un client VIP l'ha trovato, l'errore influisce sull'attività del cliente e doveva essere urgentemente eliminato, per questo questo particolare esecutore è stato scelto, che ha distribuito lo stand, ha allagato l'ambiente del cliente, ha confermato l'errore e ha iniziato a cercarlo e risolverlo. Naturalmente, alla fine, ha cambiato il pezzo di codice in cui la condizione era errata e tutto ha funzionato.

D'accordo, è stupido calcolare i costi del lavoro in base a questa metrica: è necessaria una valutazione completa ...

2.2 Metriche di complessità

Oltre agli indicatori per valutare l'ambito del lavoro sul progetto, gli indicatori per valutarne la complessità sono molto importanti per ottenere valutazioni oggettive del progetto. Di norma, questi indicatori non possono essere calcolati nelle prime fasi del lavoro su un progetto, poiché richiedono almeno una progettazione dettagliata. Tuttavia, questi indicatori sono molto importanti per ottenere stime predittive della durata e del costo del progetto, poiché determinano direttamente la sua intensità di lavoro.

2.2.1 Metriche orientate agli oggetti

In condizioni moderne, la maggior parte dei progetti software viene creata sulla base dell'approccio OO e quindi esiste un numero significativo di metriche che consentono di valutare la complessità dei progetti orientati agli oggetti.

Metrica

Descrizione

Metodi ponderati per classe (WMC) Riflette la complessità relativa di una classe basata sulla complessità ciclomatica di ciascuno dei suoi metodi. Una classe con metodi più complessi e più metodi è considerata più complessa. Quando si calcola la metrica, le classi padre non vengono considerate.
Metodi ponderati per classe (WMC2)

Una misura della complessità di una classe basata sul fatto che una classe con più metodi è più complessa e che anche un metodo con più parametri è più complesso. Quando si calcola la metrica, le classi padre non vengono considerate.

Profondità dell'albero dell'eredità La lunghezza del percorso di ereditarietà più lungo che termina in questo modulo. Più profondo è l'albero di ereditarietà di un modulo, più difficile può essere prevederne il comportamento. D'altro canto, aumentando la profondità si ha un maggior potenziale di riutilizzo da parte di un dato modulo del comportamento definito per le classi antenate.
Numero di bambini Il numero di moduli che ereditano direttamente un determinato modulo. Valori grandi di questa metrica indicano un'ampia riutilizzabilità; tuttavia, un valore troppo alto può indicare un'astrazione scelta male.

Accoppiamento tra oggetti

Il numero di moduli associati a questo modulo come cliente o fornitore. Un'eccessiva coesione indica una debolezza nell'incapsulamento modulare e può inibire il riutilizzo del codice.

Risposta per la classe Il numero di metodi che possono essere chiamati dalle istanze di classe; calcolato come la somma del numero dei metodi locali e del numero dei metodi remoti

2.2.2 Metriche di Halstead

La metrica di Halstead si riferisce a metriche calcolate in base all'analisi del numero di righe e degli elementi sintattici del codice sorgente del programma.

La base della metrica di Halstead è formata da quattro caratteristiche misurabili del programma:

  • NUOprtr (Numero di operatori univoci) - il numero di operatori di programma univoci, inclusi caratteri separatori, nomi di procedure e caratteri di operazione (dizionario operatore);
  • NUOprnd (Numero di operandi unici) - il numero di operandi di programma univoci (dizionario operandi);
  • Noprtr (Numero di operatori) - il numero totale di operatori nel programma;
  • Noprnd (Numero di operandi) - il numero totale di operandi nel programma.

Sulla base di queste caratteristiche si calcolano le stime:

  • Dizionario dei programmi
    (Vocabolario del programma Halstead, HPVoc): HPVoc = NUOprtr + NUOprnd;
  • Lunghezza del programma
    (Lunghezza del programma Halstead, HPLen): HPLen = Noprtr + Noprnd;
  • Ambito del programma
    (Volume del programma Halstead, HPVol): HPVol = HPLen log2 HPVoc;
  • Complessità del programma
    (Difficoltà Halstead, HDiff): HDiff = (NUOprtr / 2) × (NOprnd / NUOprnd);
  • Sulla base dell'indicatore HDiff, si propone di valutare gli sforzi di sviluppo del programmatore utilizzando l'indicatore HEff (Halstead Effort): HEff = HDiff × HPVol.

2.2.3 Metriche della complessità ciclomatica McCabe

L'indicatore di complessità ciclomatica è uno degli indicatori più comuni per valutare la complessità dei progetti software. Questo indicatore è stato sviluppato dallo scienziato McCabe nel 1976, appartiene al gruppo di indicatori per valutare la complessità del flusso di controllo del programma ed è calcolato sulla base del grafico del flusso di controllo. Questo grafo è costruito sotto forma di grafo orientato, in cui gli operatori o le espressioni computazionali sono rappresentati come nodi e il trasferimento di controllo tra i nodi è rappresentato come archi.

L'indicatore di complessità ciclomatica consente non solo di valutare l'intensità del lavoro dell'implementazione dei singoli elementi di un progetto software e di regolare gli indicatori generali per valutare la durata e il costo del progetto, ma anche valutare i rischi associati e prendere le necessarie decisioni di gestione.

La formula semplificata per il calcolo della complessità ciclomatica è la seguente:

C = e - n + 2,

dove e- numero di costole , e n - numero di nodi
sul grafico del flusso di controllo.

Di norma, gli operatori logici non vengono considerati nel calcolo della complessità ciclomatica.

Nel processo di calcolo automatizzato dell'indicatore di complessità ciclomatica, di norma, viene utilizzato un approccio semplificato, in base al quale il grafico non viene costruito e l'indicatore viene calcolato in base al conteggio del numero di operatori logici di controllo (se, switch, ecc.) e il numero possibile di percorsi di esecuzione dei programmi.

Il numero ciclomatico McCabe indica il numero di passaggi necessari per coprire tutti i contorni di un grafico strettamente accoppiato, o il numero di esecuzioni di test del programma necessarie per test esaustivi su base "ogni ramo funziona".

L'indice di complessità ciclomatica può essere calcolato per il modulo, il metodo e altre unità strutturali del programma.

Ci sono un numero significativo di modifiche dell'indicatore di complessità ciclomatica.

  • Complessità ciclomatica "modificata" - considera non tutti i rami di un operatore a scelta multipla (interruttore), ma l'intero operatore nel suo insieme.
  • Complessità ciclomatica "rigorosa" - include operatori logici.
  • Calcolo "semplificato" della complessità ciclomatica - prevede il calcolo non sulla base di un grafico, ma sulla base del calcolo degli operatori di controllo.

2.2.4 Metriche Chepin

Ci sono diverse modifiche di esso. Consideriamo una versione più semplice e dal punto di vista dell'uso pratico di questa metrica.

L'essenza del metodo è valutare la forza informativa di un singolo modulo software analizzando l'uso di variabili dall'elenco I/O.

L'intero insieme di variabili che compongono l'elenco I/O è suddiviso in quattro gruppi funzionali.

Q = a1P + a2M + a3C + a4T, dove a1, a2, a3, a4 sono coefficienti di peso.

Q = P + 2M + 3C + 0,5T.

2.3 Valutazione preliminare basata su metodi statistici dipendenti dalle fasi di sviluppo del programma

Quando si utilizzano strumenti integrati, le aziende che sviluppano soluzioni standard (questa categoria include i cosiddetti "inhouser" - aziende che servono l'attività principale) diventa possibile prevedere la complessità dei programmi sulla base delle statistiche raccolte. Il metodo statistico è adatto per risolvere questi problemi tipici e praticamente non è adatto per prevedere progetti unici. Nel caso di progetti unici, vengono utilizzati altri approcci, la cui discussione esula dallo scopo di questo materiale.

I compiti tipici cadono da una cornucopia di dipartimenti di sviluppo aziendale, quindi una valutazione preliminare della complessità potrebbe semplificare notevolmente le attività di pianificazione e gestione, soprattutto perché esiste una base di progetto accumulata, in cui non solo i risultati finali, ma anche tutti i risultati iniziali e intermedi sono salvati.

Evidenziamo le fasi tipiche nello sviluppo dei programmi:

  • sviluppo della specifica dei requisiti per il programma;
  • definizione di architettura;
  • elaborazione della struttura modulare del programma, sviluppo di interfacce tra moduli. Sviluppo di algoritmi;
  • sviluppo e test del codice.

Proviamo ora a considerare una serie di metriche che vengono spesso utilizzate per la valutazione preliminare nelle prime due fasi.

2.3.1 Valutazione preliminare della complessità del programma nella fase di sviluppo della specifica dei requisiti per il programma

Per valutare i risultati del lavoro di questa fase, è possibile utilizzare la metrica del numero previsto di operatori di programma Nprogn:

Nprog = NF * Ned


Dove: NF - il numero di funzioni o requisiti nella specifica dei requisiti per il programma sviluppato;
Ned - un singolo valore del numero di operatori (il numero medio di operatori per una funzione o requisito medio). Il valore Ned è statistico.

2.3.2 Valutazione preliminare della complessità durante la fase di definizione dell'architettura

Si = NI / (NF * NIed * Kl)

Dove:
NI è il numero totale di variabili trasferite attraverso le interfacce tra i componenti del programma (è anche statistico);
NIed — un unico valore del numero di variabili trasferite tramite interfacce tra componenti (il numero medio di variabili trasferite tramite interfacce per una funzione o requisito medio);
Ksl è il coefficiente di complessità del programma in fase di sviluppo, tiene conto della crescita della complessità unitaria del programma (la complessità per funzione o l'obbligo di specificare i requisiti per il programma) per programmi grandi e complessi rispetto alla media PS.

2.4 Elenco generale delle metriche

La tabella 1 contiene una breve descrizione delle metriche che non sono state incluse nella descrizione dettagliata sopra, ma tuttavia queste metriche sono necessarie e importanti, solo statisticamente sono molto meno comuni.

Si noti inoltre che lo scopo di questo articolo è mostrare il principio e non descrivere tutte le possibili metriche in molte combinazioni.

Saluti, amici. Dopo una lunga fase di sviluppo e un beta test ancora più lungo, il nuovo Yandex Metric 2.0 sta uscendo dall'ombra. Dal 22 giugno diventerà lo strumento principale per la raccolta e l'analisi delle statistiche, mentre la vecchia versione verrà trasferita nel sottodominio old.metrika.yandex.ru, dove vivrà i suoi ultimi mesi.

Sono molto soddisfatto di Yandex Metrika Beta, anche se ci è voluto un po' di tempo per approfondirlo, per impararne le capacità. Ma ne vale la pena - almeno ho trovato alcune cose per me che né la versione attuale né Analytics possono fare.

In realtà, in questo materiale cercherò di smontare il processo di lavoro per te, redigere istruzioni sull'analisi dei dati web nel nuovo Yandex Metrica, poiché è in qualche modo diverso dal suo predecessore e può causare dissonanza cognitiva al primo incontro.

- Quindi guarda attraverso la metrica beta.
"Non voglio, ho paura di lei."

Conversazione con uno specialista SEO familiare.

Quindi, prima la parte concettuale. Qual è la differenza principale? La vecchia metrica è principalmente un insieme di sezioni (report) già pronte per l'analisi. Configurarli e creare le tue fette è difficile e scomodo. Per questo, per molti, questo processo consiste solo nel lavorare con "Obiettivi", che, in senso buono, sono destinati a qualcosa di completamente diverso, e i "Rapporti" rimangono da qualche parte là fuori, su uno scaffale polveroso, fuori dalla parentesi .

Quello attuale è già una plastilina a tutti gli effetti, che ti consente di personalizzare assolutamente qualsiasi fetta in base alle tue esigenze, impostare i dati iniziali, filtrare quelli non necessari e scegliere un'opzione conveniente per presentare i dati. Personalizza completamente e completamente l'area di lavoro, che è particolarmente apprezzata dagli esperti di marketing su Internet.

E ora, in ordine

Al momento, la beta si trova ancora su https://beta.metrika.yandex.ru/ e la visualizzazione dell'elenco dei siti non ha subito cambiamenti drammatici, ad eccezione di alcune aggiunte e della percentuale di crescita del traffico visualizzata rispetto all'ultimo giorno, che ora è stato così accuratamente rimosso dalla vecchia versione (dicono, andiamo, abituatici).

Molto comodo il nuovo sistema di etichette e barre di accesso rapido. Consente di creare più etichette nel pannello di definizione etichette e di assegnarne una o più a ciascun sito (includendole, infatti, nei gruppi di queste etichette). Quindi, selezionando l'opzione con lo stesso nome nel pannello di definizione dell'etichetta, visualizzare i gruppi a cui si fa riferimento più spesso nel pannello di accesso rapido. Inoltre, durante la visualizzazione di uno dei gruppi, verrà presentata una statistica riepilogativa del traffico sui siti in esso inclusi.


Ma passando a un contatore separato, puoi già iniziare a perderti. Diamo un'occhiata all'interfaccia.

Yandex Metrika nuovo menu dell'interfaccia

Le voci del menu in alto non necessitano di presentazione, e la struttura e alcune voci del menu di sinistra sì. Prima di tutto, quello che sappiamo:

  • Riepilogo: la pagina principale del contatore del sito.
  • Mappe: mappe di clic, scorrimento, collegamenti e analisi dei moduli. In generale, la maggior parte del contenuto dell'elemento Comportamento è obsoleto.
  • Impostazione: in effetti, le impostazioni dell'attuale contatore Yandex Metrica.

Ed ecco l'ultimo elemento - "Rapporti" - la pietra angolare dello strumento aggiornato.

  • I miei report sono tutte sezioni che crei e salvi.
  • I prescelti sono gli stessi, solo i prescelti (sveglia, Neo).
  • Rapporti standard: è qui che si sono sistemate tutte le sezioni vecchie e dolorosamente familiari. Torneremo su di loro più avanti nel materiale.

Interfaccia della pagina principale del contatore

Il costruttore della home page è simile a quello del vecchio Yandex Metrica, ma, a differenza di quest'ultimo, è più ergonomico e ha un impressionante set di widget già pronti. Ebbene, la flessibilità delle impostazioni del segmento inerente alla nuova versione si fa sentire anche qui.

Puoi scegliere un widget già pronto dalla libreria o crearne uno nuovo: misura, grafico a torta, grafico o tabella dati. Personalizza la fetta delle informazioni visualizzate in esse e fissa il riepilogo nella parte desiderata dello schermo con un semplice farmaco & drop.

Lavorare con i segmenti in Yandex Metrika

Quindi, siamo arrivati ​​alla cosa principale: la descrizione dello schema di segnalazione. Prima di tutto, andiamo ai report standard precedentemente menzionati ("Report" - "Report standard") e selezioniamo le informazioni che poi segmenteremo. Ad esempio "Fonti" - "Fonti, riepilogo".

E ora iniziamo a selezionare solo quelle visite che vogliamo analizzare. Ad esempio, vogliamo scoprire il numero di persone che hanno visitato un sito da un tablet dal motore di ricerca Yandex su una query che contiene la parola "SEO". Per fare ciò, impostiamo rispettivamente tre livelli di segmentazione:

  • "Segmento" - "Tecnologie" - "Dispositivi" - nella finestra delle opzioni che si apre, seleziona "Tablet".
  • "Segmento" - "Sorgenti" - "Ultima fonte" - "Cerca" - "Motore di ricerca" - nella finestra delle opzioni che si apre, seleziona "Yandex".
  • "Segmento" - "Fonti" - "Ultima fonte" - "Cerca" - "Frase di ricerca" - nella finestra che si apre, scrivi * SEO * (operatori-asterischi indicano qualsiasi insieme di caratteri su entrambi i lati di questa parola).

Totale: i grafici e una tabella con le informazioni verranno ricostruiti nel modo in cui abbiamo bisogno, pronti per lo scarico o l'analisi. Al volo, puoi modificare, rimuovere o aggiungere nuovi livelli di perfezionamento: le informazioni visualizzate verranno aggiornate al volo.

Qui possiamo confrontare il segmento risultante con un altro, utilizzando lo strumento "Confronta segmenti" - "Imposta manualmente". Tuttavia, non possiamo modificare la composizione del segmento, ma semplicemente confrontare più periodi di una fetta tramite l'opzione "Periodo precedente".

Anche qui non sono stati dimenticati i buoni vecchi "Obiettivi", che possiamo utilizzare come un ulteriore parametro specificante per la costruzione di un segmento.

Il numero di opzioni per la costruzione di segmenti è praticamente illimitato. Quindi possiamo analizzare le informazioni ricevute e dimenticare la selezione, oppure salvarle e accedervi in ​​futuro dal menu "Rapporti" - "I miei rapporti", o semplicemente caricare i dati.

Yandex Metriche Webvisor

Il processo di segmentazione sopra descritto è stato molto utile per questo strumento. Filtrare i record delle visite ai gruppi di utenti di interesse è diventato più semplice. L'ordine è lo stesso: vai su "Webvisor", imposta il segmento (o caricalo da quelli salvati), guarda.

Questo conclude questa istruzione di revisione e, come al solito, sto aspettando le tue domande nei commenti.

Principali articoli correlati