Design patterns in Java



Похожие документы
L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

Programmazione Orientata agli Oggetti in Linguaggio Java

Progettazione! Progettazione! Progettazione! Progettazione!

Generazione Automatica di Asserzioni da Modelli di Specifica

Ingegneria del Software. Introduzione ai pattern

design pattern una soluzione progettuale generale a un problema ricorrente

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

Progettazione : Design Pattern Creazionali

Concetti di base di ingegneria del software

Alcuni Design Pattern in Java

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

Analisi e sviluppo di un portale di e-commerce

Database. Si ringrazia Marco Bertini per le slides

Ingegneria del Software. Introduzione al pattern

Sviluppo e integrazione di strumenti a supporto del reverse engineering di applicazioni flash

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Progettaz. e sviluppo Data Base

Strumenti per la gestione della configurazione del software

Tecniche di riuso del software: applicazione ad un caso di studio reale

Ingegneria del Software. Presentazione del pattern Proxy

10. Design Patterns. Andrea Polini. Ingegneria del Software Corso di Laurea in Informatica. (Ingegneria del Software) 10. Design Patterns 1 / 36

Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato

Piano di gestione della qualità

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.

Laboratorio di Progettazione di Sistemi Software Design Patterns

Il sistema operativo TinyOS

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

EXPLOit Content Management Data Base per documenti SGML/XML

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Realizzazione di un tool di instrumentazione automatica a supporto della failure analysis

7. Architetture Software

Programmi e Oggetti Software

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

La Metodologia adottata nel Corso

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

Confronto tra strumenti e tecniche per il Reverse Engineering in Macromedia Flash e Microsoft Silverlight

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Casi di studio sulla migrazione di applicazioni web verso servizi REST Anno Accademico 2008/2009

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Strumenti di modellazione. Gabriella Trucco

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Progetto ed implementazione di un tool di supporto allo sviluppo di applicazioni per Linux LibeRTOS

Organizzazione degli archivi

Approccio stratificato

DATABASE. nozioni di base

Realizzazione di un applicazione per la stesura di un Business Plan

RISOLUZINE N. 267/E. Roma, 30 ottobre 2009

Ricorsione. Rosario Culmone. - p. 1/13

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

PROGETTAZIONE DI UN SITO WEB

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Software a supporto della Gestione amministrativa dello Sportello Unico versione 2.1. Piano d azione

Simulazione traffico urbano

Sviluppo e manutenzione di un applicazione CAD tramite le WPF e l MV-VM

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Gestione Turni. Introduzione

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Programmazione Orientata agli Oggetti in Linguaggio Java

La visualizzazione del progetto contribuisce ad un miglioramento complessivo dell efficienza del project management

Costruzione del layout in gino cms

SymCAD/C.A.T.S. modulo Canali Schema

Diagrammi di Flusso dei Dati

Università Politecnica delle Marche. Progetto Didattico

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a

Capitolo 13. Interrogare una base di dati

Esercitazione sui Design Pattern

RISOLUTORE AUTOMATICO PER SUDOKU

11. Evoluzione del Software

Architetture software

Progettazione di Basi di Dati

La valutazione nella didattica per competenze

ROMA TRE MEDIAZIONE CULTURALE E MEDIAZIONE LETTERARIA: GLI SCRITTORI AFRO-ITALIANI

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

lem logic enterprise manager

UNIVERSITÀ DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

L integrazione dei sistemi qualità, sicurezza, ambiente

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Транскрипт:

tesi di laurea Anno Accademico 2012/13 relatore Ch.mo prof. Porfirio Tramontana candidato Luciano Amitrano Matr. 534/2042

Progettare SW a oggetti è difficoltoso I progettisti devono cercare di far coesistere i parametri di qualità del software al fine di soddisfare le aspettative sia di funzionamento che di struttura interna dello stesso; perciò esistono varie problematiche da considerare: La scomposizione di un sistema in oggetti Stabilire la granularità degli oggetti Definizione delle interfacce Definizione dell implementazione degli oggetti ERRORI NEL PROGETTO

Presagio di difetto: BAD SMELL L ingegneria del software ha inquadrato diversi casi in cui il codice sorgente assume connotati tali da far presagire difetti di d programmazione. Pertanto con la termologia code smell (o bad smell ) ) si indica proprio quel codice riconosciuto come problematico non per l effettiva l correttezza di funzionamento ma per la scarsa qualità del software che si viene a determinare. Comments Long method Long parameter list Duplicated code Conditional complexity Large class Speculative generality Temporary field Data class Refused bequest Lazy class Divergent change E molti altri ancora

Uno tra i più negativi: Duplicated code Violazione del principio DRY (Don'( Don't Repeat Yourself) ) secondo il quale una modifica ad una parte del sistema non deve replicarsi in altri punti dello stesso. Duplicated code

Verso un progetto ideale: DESIGN PATTERN Nel settore dell ingegneria del software un design pattern (testualmente modello di progettazione ) è una valida soluzione progettuale, inerente a un certo contesto, per un determinato problema che ricorre nell attivit attività di sviluppo software. DESEGN PATTERN O B B I E T T I V I Codificare la buona progettazione Vocabolario comune Descrizione mirata del progetto NOME PROBLEMA SOLUZIONE CONSEGUENZE Valido supporto per la manutenzione

Factory method Abstract factory Builder Prototype Singleton Adapter Bridge Composite Decorator Facade Proxy Interpreter Template method Chain of responsibility Command Iterator Mediator Memento Flyweight Observer State Strategy Visitor Catalogazione dei DESIGN PATTERNS 1 2 3 1 RAGGIO D AZIONE 2 SCOPO 3 INTENTO Classe Oggetto Creazionale Comportamentale Strutturale Interfaccia Responsabilità Costruzione Operazione Estensione

DESIGN PATTERNS,, vincenti sui BAD SMELLS! Esempio: Template method Duplicated code Il basilare intento del pattern Template Method è quello di definire un algoritmo all interno di un metodo, rimandando a classi subordinate, la possibilità di ridefinire alcuni passi dello stesso algoritmo, senza dover implementare nuovamente la struttura di quest ultimo. ultimo. Pertanto la parte invariante dell algoritmo è lasciata nella superclasse mentre alle classi derivate spetta il compito di implementare il comportamento soggetto a trasformazioni.

Duplicated code

DESIGN PATTERNS: casi di effettiva utilità L istanziazione di un oggetto con un esplicita classe lega il sistema ad una specifica implementazione. Dipendenza da un operazione particolare. Risulta difficile la portabilità di un software su altre piattaforme Modifiche a cascata. Sussiste dipendenza tra gli oggetti e determinati algoritmi. Un sistema è reso fortemente complicato dai numerosi accoppiamenti esistenti tra classi. Estensione funzionalità attraverso sottoclassi. La modifica ad una classe non è fattibile.

DESIGN PATTERNS: precisazioni Sebbene i design pattern utilizzano metodi e classi concernenti un linguaggio orientato agli oggetti, essi, rispetto to a quest ultimo ultimo risultano pressoché indipendenti e pertanto, da un punto di vista logico, ricoprono un livello superiore. Infine è bene ricordare che i design pattern non devono essere applicati in modo indiscriminato pena un progetto complicato e gravoso sulle prestazioni.