Esercizi design patterns. Angelo Di Iorio,
|
|
|
- Miranda Napolitano
- 9 anni fa
- Visualizzazioni
Transcript
1 Esercizi design patterns Angelo Di Iorio,
2 Esercizio 1 Una parete, che contiene porte e finestre, deve essere dipinta con una vernice. Ogni barattolo contiene una data quantità di vernice, che permette di dipingere una data superficie. Rispondere alle domande: A chi assegnare la responsabilità di calcolare la quantità di vernice necessaria per una data superficie? A chi assegnare la responsabilità di calcolare la quantità di vernice necessaria per dipingere una parete?
3 Esercizio 2 Data la seguente rappresentazione UML di una tabella (es. HTML), a chi assegnare la responsabilità di creare una riga? E una cella? Le responsabilità cambierebbero se la Tabella fosse composta solo da celle, non organizzate in righe (la classe Riga non esiste)?
4 GRASP Creator Problem: Who should be responsible for creating a new instance of some class? Solution: Assign class B the responsibility to create an instance of class A if one or more of the following is true: B aggregates A objects B contains A objects B records instances of A objects B has the inizializing data passed to A when it is created
5 Esercizio 3 Si consideri il seguente dominio: Un Registro (Register) tiene traccia dei Pagamenti (Payment) Ogni Vendita (Sale) è associata a un insieme di Pagamenti A chi assegnare la responsabilità di creare un istanza di Pagamento? Disegnare un diagramma di comunicazione che descrive la soluzione data Utile partire dal diagramma delle classi
6 Classi di analisi
7 Problema? Soluzione 3.1
8 Soluzione 3.2 Contraddice il pattern Creator?
9 GRASP Low Coupling Problem: How to support low dependency, low change impact, and increased reuse? Solution: Assign a responsibility so that coupling remains low. (Coupling is a measure of how strongly one element is connected to, has knowledge of, or relies on other elements)
10 Quale preferire?
11 Esercizio 4 Si può progettare meglio questa classe, che modella un ascensore? Movimento ascensore Porte Allarme Log
12 Possibile soluzione Coesione? Ulteriore refactoring?
13 GRASP High Coesion Problem: How to keep complexity manageable? Solution: Assign a responsibility so that cohesion remains high. (cohesion, or more specifically functional cohesion, is a measure of how strongly related and focused the responsibilities of an element are.)
14 Interazione con il sistema Quali metodi rispondono ad eventi sollevati dall utente?
15 GRASP Controller Problem: Who should be responsible for handling an input system event? Solution: Assign the responsibility for receiving or handling a system event message to a class representing one of the following choices: Represents the overall system, device, or subsystem Represents a use case scenario within which the system event occurs
16 Controller Ascensore
17 Controller?
18 GRASP Controller (GoF Façade)
19 Esercizio 5: file system Come organizzare al meglio un diagramma delle classi (e relativo codice) per modellare un filesystem, in cui è possibile conoscere le dimensioni di ogni file e/o directory?
20 Composite Pattern Problema: creare una gerarchia di oggetti (elementari o contenitori) in cui il client usa allo stesso modo sia gli oggetti elementari che i contenitori
21 File system
22 Esercizio 6: Libro Disegnare una diagramma delle classi per modellare questo dominio: Un libro è composto da pagine, eventualmente organizzate in sezioni. Ogni sezione può contenere sezioni (una o più) e pagine semplici. E possibile stampare una pagina singola, una sezione o l intero libro.
23 Soluzione
24 Riferimenti E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object- Oriented Software. Addison-Wesley, Larman, Applying UML and patterns, Pearson Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, first edition
Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo
Modulo 16 Introduzione ai Design Patterns Partiamo da un analogia Obiettivo: costruire una casa. Tutte le case sono simili, ma non uguali, cioè: Tutte le case assolvono alla medesima funzione: offrire
INGEGNERIA DEL SOFTWARE
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare
Design Pattern. Ingegneria del Software parte II. Andrea Bei
Design Pattern Ingegneria del Software parte II Andrea Bei Progettazione a oggetti (OOD) Progettare a oggetti una funzionalità espressa da un requisito ( use case, SSD, ) significa Identificare gli oggetti,
Ingegneria del Software L-A
Ingegneria del Software L-A Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2009/2010 Docente: Giuseppe Bellavia Collaboratore: Gabriele Zannoni Premessa Una domanda fondamentale Che
UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009
UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 [email protected] UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata
design patterns e GRASP
design patterns e GRASP 1 design patterns una coppia / particolarmente importante a cui viene dato un nome vengono espressi in un formato molto rigido, ad es. nome descrizione sintetica della descrizione
I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO
I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO READ ONLINE AND DOWNLOAD EBOOK : I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO
SOMMARIO DESIGN PATTERN
INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 [email protected] 2 DESIGN PATTERN
Finite Model Theory / Descriptive Complexity: bin
, CMPSCI 601: Recall From Last Time Lecture 19 Finite Model Theory / Descriptive Compleity: Th: FO L DSPACE Fagin s Th: NP SO. bin is quantifier-free.!#"$&% ('*), 1 Space 0 1 ) % Time $ "$ $ $ "$ $.....
LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI
Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and
Ingegneria Informatica A.A
Ingegneria Informatica A.A. 2011-2012 III anno, CFU = 6 Prof. Giacomo Bucci www.dsi.unifi.it/~bucci Materiale didattico Risultati esami Contenuto del corso Problematiche relative all analisi, la progettazione,
A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio
A.A. 2006/2007 Laurea di Ingegneria Informatica Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio Obbiettivi Acquisire familiarità con la nozione di oggetto Apprendere le proprietà
Il PROCESSO UNIFICATO
Corsi di laurea triennale in Ingegneria Informatica Corso di Ingegneria del software Il PROCESSO UNIFICATO Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante
Ingegneria del Software T
Ingegneria del Software T Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2012/2013 Premessa Una domanda fondamentale Che cosa significa scrivere del buon software? Ingegneria del Software
ESERCITAZIONE. Francesco Poggi A.A
ESERCITAZIONE Francesco Poggi [email protected] A.A. 2016-2017 Premessa As always, there is never a correct solution to any modelling problem. It s more that some models are more precise, and more informative,
Attraversamento di un albero (binario)
Attraversamento di un albero (binario) 1) Preordine Algorithm binarypreorder( T, v) //caso di albero binario Visita il nodo v; binarypreorder( T, T.leftChild(v)); //Attraversamento ricorsivo sottoalbero
Introduzione alla OOP Object Oriented Programming
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
Estendere Lean e Operational Excellence a tutta la Supply Chain
Estendere Lean e Operational Excellence a tutta la Supply Chain Prof. Alberto Portioli Staudacher www.lean-excellence.it Dipartimento Ing. Gestionale Politecnico di Milano [email protected] Lean
Fiori di campo. Conoscere, riconoscere e osservare tutte le specie di fiori selvatici più note
Fiori di campo. Conoscere, riconoscere e osservare tutte le specie di fiori selvatici più note M. Teresa Della Beffa Click here if your download doesn"t start automatically Fiori di campo. Conoscere, riconoscere
Enel App Store - Installation Manual - Mobile
Model Design Digital Revolution Enel App Store - Installation Manual - Mobile V 1.1 Manual Questo documento contiene informazioni di proprietà di Enel SpA e deve essere utilizzato esclusivamente dal destinatario
INTRODUZIONE AD OMNET++
INTRODUZIONE AD OMNET++ Omnet++ OMNET++ è una piattaforma di simulazione : È utile per: Modulare: gerarchia di moduli Ad eventi Orientata agli Oggetti (in C++) Open Source Versione comm. OMNEST analizzare
Pattern software. [SAP] Chapter 13, Architectural Tactics and Patterns
Luca Cabibbo Architettura dei Sistemi Software dispensa asw310 marzo 2018 Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution
FEROX. brand identity guidelines. Indice. Il logo The logo. Interazione con altri elementi grafici Use with other graphic elements
brand identity guidelines FEROX Indice Il logo The logo Interazione con altri elementi grafici Use with other graphic elements Codifica colori Colour coding Dimensioni minime di utilizzo Minimum dimension
Ingegneria del Software 2014
Ingegneria del Software 2014 Materiale, link utili, avvisi http://www.dmi.unict.it/~tramonta/se Forum http://forum.informatica.unict.it leggere gli avvisi partecipare alle discussioni fare domande E. Tramontana
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte a versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Ingegneria del Software
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A1_3 V2.4 Ingegneria del Software Il corpus di conoscenze Il contenuto del documento è liberamente utilizzabile dagli
visual modular expositor
visual modular expositor visual modular expositor A-Box è un elegante espositore modulare dotato di modulo illuminante wireless. Presentare il proprio prodotto con A-Box è un esperienza unica. Realizzato
introduzione al corso di ingegneria del software
introduzione al corso di ingegneria del software a.a. 2003-2004 contatti con i docenti Maurizio Pizzonia [email protected] orario ricevimento: mercoledì 17:30 (presentarsi entro le 18:00) Valter
kubica design Motus lab
librerie bookcases kubica design Motus lab 12 13 KUbicA design Motus lab KUbicA Si sviluppa come un sistema infinito di contenitori polifunzionali ideale per la realizzazione di originali soluzioni di
UNIVERSITÀ DEGLI STUDI DI TORINO
How to register online for exams (Appelli) Version updated on 18/11/2016 The academic programs and the career plan Incoming students can take exams related to the courses offered by the Department where
How to use the verb Piacere.
How to use the verb Piacere. Piacere follows a particular construction that is also common to other verbs that indicate preference or impatience for something. Here are two sentences that are often confused:
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica. Programmazione orientata agli Oggetti
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Programmazione orientata agli Oggetti OOP L 06b 1 L06b: Metamorfosi 2 Metamorfosi? Vuol dire che
CLASS DIAGRAM PARTE 1
Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering Laboratory CLASS DIAGRAM PARTE 1 UML The Unified Modeling Language Guglielmo De Angelis [email protected]
LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI
Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and
Combinazioni serie HL-MHL + MHL. Sono disponibili varie combinazioni tra e riduttori coassiali serie MHL (2 stadio).
Combinazioni tra riduttori serie HL-MHL e MHL Possible combined units of helical inline gearboxes HL-MHL+MHL Combinazioni serie HL-MHL + MHL Sono disponibili varie combinazioni tra riduttori coassiali
Intelligenza Artificiale
Intelligenza Artificiale Introduzione Introduzione 1 Riferimenti } S. Russell, P. Norvig, Artificial Intelligence: a Modern Approach, Prentice Hall, 2010, III edizione (versione in italiano: Intelligenza
Principi e schemi di progettazione object oriented (design pattern elementari)
Principi e schemi di progettazione object oriented (design pattern elementari) Prof. Paolo Ciancarini! Corso di Ingegneria del Software! CdL Informatica! Università di Bologna 1 Scopo della lezione Introduzione
Technical Guidelines GON % Italian production. sports car oriented
The rubber nozzle mod GON (Gas Oval Nozzle) has the intake with 210 mm x 105 mm dimensions and has been developed by WORKY in order to be more SPORTS CAR oriented. It has been studied for vehicles with
Gocce d'anima (Italian Edition)
Gocce d'anima (Italian Edition) Marco Fusaroli Click here if your download doesn"t start automatically Gocce d'anima (Italian Edition) Marco Fusaroli Gocce d'anima (Italian Edition) Marco Fusaroli Non
RDD 2. Laboratorio di Ingegneria del Software. Andrea Bei
Laboratorio di Ingegneria del Software Andrea Bei Altri pattern GRASP Altri pattern GRASP Polymorphism Pure Fabrication, Indirection Protected Variations 2 Polymorphism Problema: Come gestire alternative
Brandon Brown vuole un cane
Brandon Brown vuole un cane Cover and Chapter Art by Robert Matsudaira by Carol Gaab Italian Translation & Adaptation by Francesca Silvano Brandon Brown vuole un cane Copyright 2016 by TPRS Publishing,
WEB OF SCIENCE. COVERAGE: multidisciplinary TIME RANGE: DOCUMENT TYPES: articles, proceedings papers, books
WEB OF SCIENCE COVERAGE: multidisciplinary TIME RANGE: 1985- DOCUMENT TYPES: articles, proceedings papers, books WEB OF SCIENCE: SEARCH you can add one or more search field you can limit results to a specific
Ingegneria del Software 2010
Ingegneria del Software 2010 Materiale, link utili, avvisi http://www.dmi.unict.it/~tramonta/se Forum su SDAI http://www.sdai.unict.it leggere gli avvisi partecipare alle discussioni fare domande Lezioni
CABIN CREW TRAINING COMMUNICATION
Gentili colleghi, pregasi prendere visione dei seguenti aggiornamenti training: CABIN CREW A: Cabin Crew Members CC: F.O.P.H., Crew Training P.H., Safety Manager, Compliance Monitoring Manager, Cabin Crew
SOMMARIO DIAGRAMMI DEI CASI D USO
INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 Use Case: Inclusione Use Case: Estensione Use Case: Generalizzazione
Flusso di Progetto Mixed Signal in ambiente CADENCE. Approccio Analog Centric. Corso di Progettazione Mixed Signal 19/12/2013 Prof.
Flusso di Progetto Mixed Signal in ambiente CADENCE Approccio Analog Centric Ambiente per Progetto Analogico Full-Custom Ambiente CAD: CADENCE Virtuoso Schematic Virtuoso Schematic Editor Simulation ADE:
Canti Popolari delle Isole Eolie e di Altri Luoghi di Sicilia (Italian Edition)
Canti Popolari delle Isole Eolie e di Altri Luoghi di Sicilia (Italian Edition) L. Lizio-Bruno Click here if your download doesn"t start automatically Canti Popolari delle Isole Eolie e di Altri Luoghi
