Sommario Obiettivi Tesi Argomenti Trattati Lavoro svolto

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
SUBFORNITURA TOSCANA ON LINE Workshop - Firenze, 26 giugno 2002 Subfornitura: situazione e problemi aperti a cura di Riccardo Perugi.
Estendere i linguaggi: i tipi di dato astratti
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Obiettivo della tesi Percorso
Processo software il processo.
ODE PROBLEMA DI CAUCHY IN 1-D Sia f : I x RR, I  R.
Algoritmi e Strutture Dati
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
©Carlo Tasso 1999 Object Oriented Programming Slide 1 OO Analysis Vs. OO Design OOA – Object Oriented Analysis. –Specifica COSA, IN QUALE CONTESTO il sistema.
8. Progettazione del Software
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento (2 - Reti semantiche, Frames) Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento (2 - Reti semantiche, Frames) Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Basi di conoscenza: rappresentazione e ragionamento Prof. M.T. PAZIENZA a.a
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Algoritmi e Strutture Dati (Mod. B)
Modelli probabilistici
Studente Claudia Puzzo
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Modello E-R Generalizzazioni
Progettazione di una base di dati
Modello E-R Generalizzazioni
Gaetano Santucci Centro Nazionale per l’Informatica
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Introduzione alla modellazione di sistemi interattivi
Il test.
LA QUALITA’ NELLA PROGRAMMAZIONE DELL’ESERCIZIO
Introduzione alla programmazione Object Oriented
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Prevedere i risultati elettorali su Facebook!!! Non cè solo Mi Piace… Elaborato di: Stefano GUERRETTI.
Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 -I costi del software Ernesto Damiani Università degli Studi di Milano Lezione.
Errori casuali Si dicono casuali tutti quegli errori che possono avvenire, con la stessa probabilità, sia in difetto che in eccesso. Data questa caratteristica,
Scelta di un modello di processo: esempio
Commenti alle Attività Generiche. Attività Generiche (Pressman) Principali: Comunicazioni; Pianificazione; Modellazione; Costruzione, Dispiegamento Collaterali:
Cammini minimi da un sorgente
Data Processing Organization srl – © www.dpo.it Stima anticipata del software a partire dai requisiti.
Complessità ciclomatica
MODELLI DI PROCESSO DI PRODUZIONE SOFTWARE
Lezione 1 Panoramica sui paradigmi di programmazione
Programmazione ad oggetti
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Master MATITCiclo di vita del Sistema Informativo1 CICLO DI VITA DEL SISTEMA INFORMATIVO.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 15 Prof. M.T. PAZIENZA a.a
Progettazione di basi di dati: metodologie e modelli
Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
TRATTAMENTO STATISTICO DEI DATI ANALITICI
UML Unified Modelling Language Linguaggio per la modellazione unificato.
XVRC2 Emanuele Ruffaldi Giugno Tre esperimenti con S3D ► Estensioni del Linguaggio ► Pre-Compilatore ► Esecuzione dentro il Java L C J.
“Field Trip, esperienza di innovazione tecnologica nelle discipline giuridico- economiche e non solo. a cura della Prof.ssa Lorena Pini.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Laboratorio di Creazione d’Impresa L-A Strategia, Business, Settore.
Study of coincidences due to 40 K photons between adjacent OMs Paolo Fermani & ROMA group Catania Università di Roma «La Sapienza» – INFN Roma.
10/5/061 Lez. 12 Previsioni di traffico Generalità Previsioni di scenario.
Data warehouse(B.2.8) Nei database ci sono molti dati di tipo diverso e ciascuna tipologia di dato può avere un formato diverso. Alcuni provengono da legacy.
Programmazione reticolare Economia e Gestione delle Imprese A. A. 2011/2012.
Transcript della presentazione:

Sommario Obiettivi Tesi Argomenti Trattati Lavoro svolto metriche del software(cenni) metriche OO Punti Funzione

Metriche del software In generale le metriche del software sono utili per: Migliorare il processo software Pianificare, seguire e controllare l’andamento di un progetto Valutare la qualità di un prodotto Stimare lo sforzo richiesto per sviluppare un sistema software

Le metriche del software dovrebbero essere: Semplici Oggettive Ottenibili ad un costo ragionevole Valide Robuste

LOC – Line of Code 1/2 è la metrica dimensionale più semplice e conta tutte le line fisiche del codice sorgente. NCNB (conteggia tutte le linee effettive del codice sorgente, non sono conteggiate le linee di commento e quelle vuote) EXEC (conta solo le linee di comando del codice indipendentemente dalle linee fisiche )

LOC – Line of Code 2/2 CLOC (conta solo le line di commento del codice ) CP (la percentuale di linee di commento rispetto a tutte le linee di codice (escluse le linee vuote)

Complessità Ciclomatica 1/2 usata per valutare la complessità di un algoritmo ed è interamente basata sulla struttura del grafo che rappresenta l’algoritmo. V(G): numero ciclomatico relativo al grafo G L: numero di archi nel grafo N: numero di nodi del grafo P: numero dei componenti del grafo disconnessi

Complessità ciclomatica 2/2 V(G) = L- N + 2*P V(G) = n° nodi decisionali +1

Function Point 1/3 I Function Point sono una metrica del software di tipo "funzionale", cioè definiscono le dimensioni del prodotto software in termini di funzionalità fornite all'utilizzatore. Vantaggi: Sono orientati alla misurazione del prodotto finale dello sviluppo software (le funzionalità) e quindi risultano utili per definire quantitativamente il prodotto a fini contrattuali Sono indipendenti dagli aspetti tecnologici e metodologici

Function Point 2/3 Possono essere utilizzati già nelle fasi alte del processo di sviluppo del software, per effettuare stime e previsioni, ma anche per valutare la dimensione di un'applicazione appena terminata o già in produzione. Risultano utili per ricavare indicatori di efficienza riguardo le attività di sviluppo e manutenzione del software Sono riconosciuti in ambito internazionale e supportati da organismi istituzionali: IFPUG, GUFPI , NESM Sono correlabili ai LOC (Lines Of Code), attraverso tabelle di conversione

Fuction Point 3/3 Svantaggi: Non sono particolarmente sensibili alle peculiarità delle applicazioni "embedded" (tipo ERP) e Real-Time Un conteggio standard richiede un buon livello di definizione funzionale del sistema Occorre acquisire una buona conoscenza (ed un minimo di esperienza pratica) del metodo di conteggio

Metriche OO Le metriche orientate agli oggetti si concentrano sulla classe, l’elemento fondamentale della programmazione orientata agli oggetti. Chidamber e Kemerer nel 1994 definirono sei metriche basate sulla classe, spesso collettivamente denominate CK

WMC (Weighted Methods per Class) 1/2 è il numero di metodi per classe, pesati secondo la rispettiva complessità. Supponiamo che in una classe C ciano definiti n metodi, di complessità c1,c2,…,cn. (Chidamber e Kemerer non indicano come misurare la complessità di ciascun metodo)

WMC (Weighted Methods per Class) 2/2 Considerazioni: Maggiore è tale numero, maggiore sarà il tempo e lo sforzo necessario per sviluppare e gestire la classe, maggiore sarà il potenziale impatto sulle classi derivate, minori saranno le possibilità di riuso della classe: la classe sarà specifica per l’applicazione per la quale è stata progettata. Per questi motivi, si deve cercare di mantenere WMC il più basso possibile.

DIT (Depth of Inheritance Tree) è la distanza (numero di livelli) della classe dalla radice della gerarchia di ereditarietà cui appartiene. Considerazioni: Tanto maggiore è DIT, tanto più grande è il numero di metodi ereditati e quindi l’influenza delle proprietà degli antenati sulla classe. Per le classi con DIT grande è quindi più difficile prevedere il comportamento della classe, ma è potenzialmente maggiore il riuso dei metodi ereditati

NOC (Number Of Children) il numero di sottoclassi che ereditano direttamente dalla classe considerata Considerazioni: Un valore grande di NOC indica un grande impatto sui discendenti, e un riuso potenzialmente elevato della classe. Questo indica criticità nella progettazione della classe (che deve essere una generalizzazione corretta di tutte le classi discendenti) e la necessità di maggiore attenzione in fase di verifica.

CBO (Coupling Between Object classes) 1/2 è il numero di classi accoppiate alla classe considerata, considerando accoppiate le classi fra cui esiste dipendenza diretta (ad esempio, l’una accede alle proprietà dell’altra). Considerazioni: Un valore di CBO eccessivo indica scarsa modularità, mancanza di indipendenza e difficoltà di riuso.

CBO (Coupling Between Object classes) 2/2 Considerazioni valori alti di CBO implicano elevata sensibilità alle modifiche (gli effetti del cambiamento in una classe si propagano a quelle accoppiate) il CBO è indice della complessità del testing

RFC (Response For a Class) è il numero di metodi che possono essere invocati in risposta alla ricezione di un messaggio da parte di un’istanza della classe considerata. RFC indica la complessità di una classe in base al numero dei metodi e la quantità di comunicazione con le altre classi. Considerazioni: Al crescere di RFC cresce la complessità della classe e la difficoltà del testing e debugging

LCOM (Lack of COhesion in Methods) 1/2 misura la coesione della classe considerata, in base al numero di coppie di metodi che accedono ad un insieme comune di attributi della classe. Più precisamente LCOM è il numero delle coppie di metodi che non hanno variabili in comune meno il numero di coppie di metodi che hanno variabili in comune, quindi due metodi di una classe sono tanto più coesi quanto più numerose sono le variabili usate da entrambi i metodi.

LCOM (Lack of COhesion in Methods) 2/2 Considerazioni: La coesione è desiderabile poiché promuove l’incapsulamento. Quando molte classi presentano un valore di LCOM scarso il sistema è caratterizzato da una struttura complessa più soggetta a errori. Un valore di LCOM scarso suggerisce di rivedere la progettazione della classe, eventualmente dividendola in due classi distinte.

Altre metriche 1/4 Metriche di Lorenz e Kidd 1994 Class size - CS (dimensione complessiva di una classe ) Number of Overridden Operations - NOO (misura il numero di operazioni ridefinite da una sottoclasse) number of operations added by a subclass - NOA (il numero di operazioni aggiunte da una sottoclasse )

Altre metriche 2/4 number of scenario scripts - NSS (è il numero di scenari, o casi d’uso) Specialization Index - SI (indica approssimativamente il grado di specializzazione di una classe) Number of Key Classes - NKC misura il numero di classi che sono legate direttamente al problema

Altre Metriche 3/4 Le metriche MOOD MIF (Method Inheritance Factor): il grado con il quale l'architettura della classe di un sistema OO usa l'ereditarietà per i metodi e gli attributi CF (Coupling Factor): fattore di accoppiamento PF (Polymorrphism Factor): il numero di metodi che ridefiniscono i metodi ereditati, divisi per il numero massimo delle possibili situazioni polimorfiche

Altre Metriche 4/4 Le metriche di Cartwright e Shepperd Numero di attributi Numero di stati Numero di eventi cui la classe è sensibile Numero di accessi alla classe Profondità nell’albero di ereditarietà (DIT) Numero di figli (NOC) Numero di difetti Numero di righe di codice

Punti Funzione e metodologia orientata agli oggetti varianti ad hoc per avvicinare le metriche funzionali al mondo OO: Object Points Object Points Analysis Function Points con OO Use Cases e OO Object-Oriented Function Points Use Case Points Enhanced Object Points

Conteggio FP 1/2

Conteggio FP 2/2