Lezione 7: Riuso del Software

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lezione 7: Riuso del Software"

Transcript

1 Lezione 7: Riuso del Software Riferimenti: I.Sommerville, Ingegneria del Software, 8 edizione- Cap. 18 (Riuso) Ingegneria del Software 2 Riuso del Software 1 Outline Vantaggi del riuso Panoramica sulle forme di riuso Design Pattern Riuso basato su generatori Application Frameworks Riuso di COTS Ingegneria del Software 2 Riuso del Software 2 1

2 Riuso del Software Nella maggior parte delle discipline ingegneristiche, I sistemi si progettano a partire da componenti che sono usati anche da altri sistemi. L Ingegneria del Software si è originariamente preoccupata soprattutto dello sviluppo di software exnovo, ma oggi è ben noto che occorre adottare processi di sviluppo basati su un riuso sistematico del software: per ottenere software migliore e per ottenere software più rapidamente ed economicamente. Ingegneria del Software 2 Riuso del Software 3 Vantaggi del riuso Riusare software esistente può consentire di: Ridurre i costi di sviluppo/ testing Produrre software che rifletta il livello di affidabilità dei software riusati: in presenzadi software riusabili di grande qualità può essere una ottima opzione Riusare è possibile a diversi livelli e dimensioni: Riusodi intere applicazioni (es. COTs) Riusodi componenti (v. CBSE) Riuso di oggetti e funzioni Ingegneria del Software 2 Riuso del Software 4 2

3 Quali cose possono essere riusate? Non bisogna pensare solo al codice! È possibile riusare anche: L Architettura di un sistema I progetti L analisi La documentazione (sia tecnica che utente) I test Ingegneria del Software 2 Riuso del Software 5 Benefici del Riuso Maggiore affidabilità Il software riusato è, generalmente, più affidabile (in quanto già provato e testato) di quello prodotto exnovo. Minori rischi di progetto Se si può riusare software, piuttosto che svilupparlo ex-novo, si possono fare stime più accurate sui costi del progetto Sviluppo più rapido I tempi di sviluppo si accorciano ed è possibile consegnare il software più rapidamente Ingegneria del Software 2 Riuso del Software 6 3

4 Problemi legati al riuso Maggiori costi di manutenzione Se si riusa software di cui non si possiede il codice, il sistema complessivo potrà risultare meno flessibile e meno manutenibile Mancanza di strumenti CASE Spesso i CASE non forniscono funzionalità che consentono un efficace riuso di librerie di componenti software Diffidenza verso software prodotto da altri Spesso si preferisce risviluppare per avere un maggior controllo sul software prodotto Ingegneria del Software 2 Riuso del Software 7 Problemi legati al riuso Difficoltà nel creare e Mantenere librerie di componenti riusabili Popolare librerie di componenti riusabili può essere costoso, e le tecniche disponibili per classificare, catalogare e ricercare componenti software non sono ancora mature. Difficoltà nel trovare, comprendere ed adattare componenti riusabili Non sempre si è disposti a spendere tempo per cercare, comprendere ed eventualmente adattare un componente riusabile. Ingegneria del Software 2 Riuso del Software 8 4

5 Panoramica di approcci per il Riuso Design patterns Component-based development Service-oriented systems Component frameworks Legacy system wrapping Application product lines Program libraries COTS integration Configurable ver tical applications Aspect-oriented software development Program generators Ingegneria del Software 2 Riuso del Software 9 Approcci per il Riuso (1) Design patterns Component-based development Application frameworks Legacy system wrapping Service-oriented systems Generic abstractions that occur across applications are represented as design patterns that show abstract and concrete objects and interactions. Systems are developed by integrating components (collections of objects) that conform to component-model standard. Collections of abstract and concreteclasses that canbe adaptedand extended to create application systems. Legacy systems(seechapter 2) that can be wrapped b y defining a set of interfaces and providing access to these legacy systems through these interfaces. Systemsare developed by linking shared services that may be externally provided. Ingegneria del Software 2 Riuso del Software 10 5

6 Approcci per il Riuso (2) Applicat ion product lines COTS integrat ion Configurable vertical applica tions Program libra ries Program gener ators Aspec t-oriented soft ware devel opment An application type is generalised around a co mmon architecture so that it can be adapted in different wa ys for different custom ers. Systems are dev eloped by integrating existing application systems. A generic system is designed so that it ca n be configured to the nee ds of sp ec ific system customers. Class and function libraries implementing commonly-used abstract ions are a vailable for reuse. A generator s ystem embeds knowledge of a particular types of applicat ion and can generate systems or system fragments in that dom ain. Share d components are woven into an application at different place s when the program is compiled. Ingegneria del Software 2 Riuso del Software 11 Diversi Approcci possibili per il Riuso Design Patterns Component-based development Application Framework Wrapping di sistemi legacy Sistemi orientati ai servizi Linee di prodotto applicative Integrazione di sistemi COTS (Commercial Off The Shelf) Applicazioni verticali configurabili Librerie di programmi Generatori di programmi Ingegneria del Software 2 Riuso del Software 12 6

7 Fattori di cui tener conto nel pianificare il riuso Tempistica richiesta per lo sviluppo Durata prevista per la vita del software Background, capacità ed esperienza del team di sviluppo nelle tecnologie di riuso Criticità del software e altri requisiti non funzionali Dominio di applicazione Piattaforma sulla quale eseguire il sistema Ingegneria del Software 2 Riuso del Software Riuso a livello Concettuale Il Riuso di componenti già implementati obbliga ad ereditare le scelte di progetto e di sviluppo di chi ha realizzato I componenti (es. algoritmi, interfacce, linguaggi, ), limitando le situazione nelle quali il riuso è possibile Ad un maggiore livello di astrazione, è possibile invece riutilizzare concetti, progetti astratti, privi didettagli implementativi Es. Riuso di schemi di progettazione usati per Algoritmi fondamentali, tipi di dato astratto; Design patterns Generative programming Ingegneria del Software 2 Riuso del Software 14 7

8 Riuso di schemi di progettazione Alcuni esempi: Algoritmi Fondamentali Ricerca, Ordinamento, Visita di Alberi, etc Tipi di Dato Astratto Pila, coda, albero, lista, tabella Ingegneria del Software 2 Riuso del Software 15 Design Pattern Un Pattern individua un IDEA, uno schema GENERALE E RIUSABILE schema di problema, schema di soluzione, etc. Rispetto ai componenti riusabili non è un oggetto fisico non può essere usato così come è stato definito, ma deve essere contestualizzato all interno del particolare problema applicativo Due istanze/contestualizzazioni di uno stesso pattern (ad esempio in problemi diversi) tipicamente sono diverse proprio per la contestualizzazione in domini differenti Ingegneria del Software 2 Riuso del Software 16 8

9 Scopo dei Patterns Scopo dei pattern Catturare l esperienza e la saggezza degli esperti Evitare di reinventare ogni volta le stesse cose Cosa fornisce un design pattern al progettista software? Una soluzione codificata e consolidata per un problema ricorrente Un astrazione di granularità e livello di astrazione più elevati di una classe Un supporto alla comunicazione delle caratteristiche del progetto Un modo per progettare software con caratteristiche predefinite Un supporto alla progettazione di sistemi complessi Ingegneria del Software 2 Riuso del Software 17 Definizione Ogni pattern descrive: un problema specifico che ricorre più volte e il nucleo della soluzione a quel problema, in modo da poter utilizzare tale soluzione un milione di volte, senza mai farlo allo stesso modo. Abbastanza astratti in modo da poter essere condivisi da progettisti con punti di vista diversi Non complessi nè domain-specific non rivolti alla specifica applicazione ma riusabili in parti di applicazioni diverse Ingegneria del Software 2 Riuso del Software 18 9

10 Caratteristiche Un Design Pattern Nomina, Astrae, e Identifica gli aspetti chiave di una struttura comune di design che la rendono utile nel contesto del riuso in ambito object-oriented Un Design Pattern identifica le classi (e le istanze) partecipanti le associazioni ed i ruoli le modalità di collaborazione tra le classi coinvolte la distribuzione delle responsabilità nella soluzione del particolare problema di design considerato Ingegneria del Software 2 Riuso del Software 19 Elementi fondamentali dei Design Patterns (secondo Gamma etal.) Un pattern è descritto da quattro elementi essenziali 1. Il nome del pattern, è utile per descrivere la sua funzionalità in una o due parole. 2. Il problema nel quale il pattern è applicabile. 3. La descrizione della soluzione. È un modello che descrive gli elementi che compongono il design, le loro responsabilità e le collaborazioni. 4. Le conseguenze portate dall'applicazione del pattern. Spesso sono tralasciate ma sono importanti per poter valutare i costi-benefici dell'utilizzo del pattern. Ingegneria del Software 2 Riuso del Software 20 10

11 Esempio. Il problema: ottenere diverse visualizzazioni dello stato di un oggetto Serie Soggetto Dato1: 15 Osservatore 1 Osservatore 2 Dato2: 25 Dato3: 20 Dato4: 10 Dato5: 30 Il problema di ottenere diverse visualizzazioni di uno stesso soggetto Ingegneria del Software 2 Riuso del Software 21 Descrizione del Pattern Observer Nome: Observer. Descrizione: Separa la visualizzazione dello stato di un oggetto dall oggetto stesso. Quando lo stato dell oggetto cambia, le sue visualizzazioni sono avvertite del cambiamento e sono aggiornate automaticamente Descrizione del problema Usato quandosono richiesti più formati di visualizzazione di stato di un oggetto, e si vuole che l oggetto non conosca tali formati. Descrizione della soluzione Consultare la seguente descrizione in UML. Conseguenze C è accoppiamento minimo fra osservato ed osservatori, pertanto uno svantaggio è sulla impossibilità di ottimizzare le prestazioni dei visualizzatori. Ingegneria del Software 2 Riuso del Software 22 11

12 Observer La classe Subject conosce I suoiosservatori e fornisce una interfaccia per attaccare e staccare oggettiobserver e una per notificare a tuttigli Observer i cambiamenti del Subject. La classe Observer definisce una interfaccia per oggetti a cui dovrà essere notificata una modifica del Subject. return subjectstate ; Lo schema UML del Pattern Observer observerstate= subject->getstate(); Ingegneria del Software 2 Riuso del Software 23 Observer: comportamento dinamico : ConcreteObserver attach(observer) : ConcreteSubject External Source setstate( ) update( ) notify( ) getstate( ) Ingegneria del Software 2 Riuso del Software 24 12

13 Categorie di Pattern Un esempio di catalogo DP è presente nel libro Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object Oriented Software. I pattern qui descritti sono spesso denominati pattern GoF (Gang of Four), per ricordarne i 4 autori Esistono diverse categorie di pattern, che descrivono la funzione (purpose) e il dominio (scope) del pattern. Funzione (purpose), ovvero cosa fa il pattern: Creazionali (creational): forniscono meccanismi per la creazione di oggetti Strutturali (structural): gestiscono la separazione tra interfaccia e implementazione e le modalità di composizione tra oggetti Comportamentali (behavioral): consentono la modifica del comportamento degli oggetti minimizzando le necessità di cambiare il codice Ingegneria del Software 2 Riuso del Software Riuso basato su Generatori Un generatore è un software che è in grado di generare, a sua volta, software parametrizzato in base a delle specifiche fornite dall utente I generatori possono essere utilizzati nell ambito di quei problemi per I quali esistono soluzioni ben consolidate che però dipendono notevolmente dai dati in ingresso I dati in ingresso al generatore di programmi vanno a descrivere la conoscenza relativa al dominio per il quale debba essere utilizzato il programma da generare Ingegneria del Software 2 Riuso del Software 26 13

14 Generative programming È un paradigma di ingegneria del software basato sulla modellazione di famiglie di sistemi che, data una particolare specifica dei requisiti, ottiene automaticamente un sistema customizzato ed ottimizzato A partire da componenti elementari riusabili Adottando processi automatici di trasformazione e configurazione La specifica del sistema viene eseguita mediante Domain Specific Languages (DSL) Consente di ridurre il time-to-market, e migliorare la qualità del software prodotto e la produttività Gli strumenti di Generative programming usano le tecnologie dei parser e dei compilatori Transform/GenerativeProgrammingWiki Ingegneria del Software 2 Riuso del Software 27 Riuso basato su Generatori Conoscenza Conoscenza del del Dominio Dominio applicativo applicativo Descrizione dell applicazione Generatore Di programma Programma generato Database La generazione di un programma attraverso un generatore di codice Ingegneria del Software 2 Riuso del Software 28 14

15 Esempi di generatori di codice (1) Generatori di applicazioni per gestione dati aziendali I dati di dominio servono semplicemente alla personalizzazione del prodotto; Parser e analizzatori lessicali per analisi di codice: L input è una grammatica del linguaggio da analizzare; l output è l analizzatore del linguaggio. Es. Antlr Lex&Yacc (per codice C) e JavaCC (per codice Java) Ingegneria del Software 2 Riuso del Software 29 Esempi di generatori di codice (2) Generatori di codice basati su modelli Ad esempio componenti software, inclusi in strumenti CASE per la modellazione di software, che generano frammenti di codice a partire da modelli (ad esempio da modelli UML) DPAToolkit Genera uno scheletro di codice java/cpp che istanzia un design pattern Web Ratio Genera un applicazione web a partire da un modello codificato in WEBml, che a sua volta estende modelli delle classi e modelli E-R Ingegneria del Software 2 Riuso del Software 30 15

16 Vantaggi e svantaggi dei generatori Il riuso basato su generatori riduce notevolmente il costo di sviluppo e produce codice molto affidabile Tramite generatori di codice si possono ottenere programmi più versatili e performanti di quanto si possa ottenere limitandosi a leggere direttamente dal database, a tempo di esecuzione, I dati relativi alla personalizzazione Non tutti I generatori di codice, però, sono in grado di generare codice che sia anche efficiente Scrivere una descrizione di dominio per un utente programmatore è più semplice che sviluppare programmi da zero (anche se lo skill richiesto non è minimo) La loro applicabilità si limita a poche tipologie di problemi Spesso il linguaggio col quale descrivere il problema al generatore ha una semantica molto limitata Ingegneria del Software 2 Riuso del Software 31 Model Driven Architectures (MDA) Famiglia di standard di modellazione (basata su UML e standardizzata da OMG [1]), pensati allo scopo di generare codice eseguibile a partire da modelli MDA si basa sulla separazione fra livelli di astrazione (dominio, tecnologia, codice) MDA si basa sulla automazione della trasformazione fra modelli di diverso livello L approccio MDA ha l obiettivo di fornire uno standard completo per la creazione di modelli indipendenti dall'implementazione, in modo che possano essere "mappati" su qualsiasi piattaforma, presente o futura [1] Specifiche di MDA: [2] Elenco di MDA tools: Ingegneria del Software 2 Riuso del Software 32 16

17 Modelli nell MDA modello PIM (Platform Independent Model) definisce le funzionalità di business ed il comportamento del sistema, indipendentemente dalla sua implementazione tecnologica modelli PSM (Platform Specific Model) consente di "mappare" il PIM su una specifica tecnologia (Java, CORBA, web...), senza alterare il PIM stesso. Il linguaggio UML è usato per specificare PIM e PSM Ingegneria del Software 2 Riuso del Software 33 MDA- processo di sviluppo La definizione di PIM e PSM si avvale di Patterns predefiniti, personalizzabili e riusabili, così come la trasformazione da PIM a PSM (patterns tecnologici) e la generazione del software (patterns di implementazione) a partire dal PSM. Pattern di Trasformazione Pattern Funzionali Patterns tecnologici Patterns implementativi PIM PSM Codice patterns patterns patterns Ingegneria del Software 2 Riuso del Software 34 17

18 Famiglie di strumenti necessari per l MDA Tool di modellazione Tool di analisi del modello Per la verifica di presenza di inconsistenze, incompletezze, errori nei modelli Tool di test Per eseguire verifiche model-based dei modelli Tool di traduzione che attuino le regole di traduzione previste per passare da modelli PIM verso modelli PSM dal PSM verso il codice. Molte implementazioni degli standard di modellazione OMG sono presenti nell Eclipse Modeling Framework (EMF) e Graphical Modeling Framework (GMF). Ingegneria del Software 2 Riuso del Software Application Framework I framework rappresentano modelli astratti di progetto di sotto-sistemi. Le applicazioni si costruiscono integrando e completando una serie di framework. Es.: OO Framework Composti di una collezione di classi astratte e concrete e di interfacce tra loro; Un framework OO è una struttura generica; per realizzare il software bisogna riempire le parti del progetto instanziando le classi astratte necessarie, ed implementando il codice mancante (v. Android) Si differenziano dai design patterns per il fatto di essere astrazioni di livello più alto, a livello architetturale anzichè di design. Ingegneria del Software 2 Riuso del Software 36 18

19 Classificazioni di framework Infrastruttura di sistema Supportano lo sviluppo di infrastrutture come comunicazioni, interfacce utente, e compilatori Integrazione di middleware Composti da standard e classi di oggetti per la comunicazione e lo scambio di informazioni tra oggetti (es. CORBA, COM+, Enterprise Java Beans ) Applicazioni aziendali Integrano la conoscenza per specifici domini di applicazione (es. telecomunicazioni o sistemi finanziari) e supportano lo sviluppo di nuove applicazioni I primi due tipi rientrano anche nella categoria dei Framework Orizzontali mentre le Applicazioni aziendali si considerano come Framework Verticali Ingegneria del Software 2 Riuso del Software 37 Framework Spesso i framework sono istanziazioni di una serie di design pattern L utilizzo di un framework da parte di programmatori e progettisti comporta ilraggiungimento di un notevole skill riguardante la conoscenza della struttura del framework e delle opportunità da esso messe a disposizione. Spesso è necessario molto tempo, prima di poter maturare tali conoscenze Ingegneria del Software 2 Riuso del Software 38 19

20 Un esempio: Model-View-Controller É un framework usato per la progettazione di GUI. Permette presentazioni diverse di uno stesso oggetto e fornisce interazioni separate con queste presentazioni. MVC richiede l istanziazione di vari design pattern (es. Observer, Strategy, Composite, ) Ingegneria del Software 2 Riuso del Software 39 Model-view-controller Input utente Stato del Controller Metodi del controller Messaggi di modifica della View Stato della View Metodi della View Modifiche al Model Stato del Model Metodi del Model Interrogazioni e aggiornamenti del Model Schema del Framework Model-View-Controller Ingegneria del Software 2 Riuso del Software 40 20

21 MVC - come funziona L utente interagisce con la UI scatenando eventi (es. click su un elemento della UI) Il Controller interviene gestendo l evento mediante un handler o un callback Il Controller notifica la richiesta utente al Model, causando un eventuale cambiamento di stato del Model La View interroga il Model per generare una nuova interfaccia utente La view viene notificata del cambiamento direttamente dal Controller, oppure indirettamente mediante il pattern Observer Ingegneria del Software 2 Riuso del Software Riutilizzo di intere applicazioni Consiste nel riutilizzare, eventualmente previa riconfigurazione o personalizzazione, intere applicazioni. Le applicazioni possono essere riutilizzate direttamente o essere integrate fra loro come componenti indipendenti all interno di più ampi sistemi. Esistono due approcci principali: Integrazione di COTS; Sviluppo di Linee di Prodotti Ingegneria del Software 2 Riuso del Software 42 21

22 Riuso di COTS COTS - Commercial Off-The-Shelf- Software commerciale che può essere usato dai suoi acquirenti senzamodifiche (es. Soluzioni desktop, prodotti server ) Esempio storico di COTS sono i DBMS Si tratta di applicazioni complete che spesso offrono un API (Application Programming Interface) per permettere ad altri componenti software di accedere alleproprie funzionalità Nella pratica, i COTS sono composti di un insiemedi classi astratte di interfaccia visibili all esterno e di un insiemedi classiastratte e concrete non visibili Ingegneria del Software 2 Riuso del Software 43 Integrazione di COTS Costruire grandi sistemi integrando COTS è una strategia abbastanza efficiente per sistemi le cui funzionalità base siano abbastanza comuni ad esempio per realizzare sistemi di E-Commerce, potrebbero essere riutilizzabili COTS che implementano soluzioni ai problemi di autenticazione, gestione del database, invio delle , browsing delle pagine web, etc. Tramite COTS si velocizza il processo di sviluppo riducendo i costi di sviluppo e test Ingegneria del Software 2 Riuso del Software 44 22

23 Fattori decisionali nella scelta dei COTS Quali COTS offrono le funzionalità più appropriate? Possono esserci diversi prodotti COTS utilizzabili tra cui scegliere in base a fattori come costo, completezza, affidabilità Come avviene lo scambio dei dati? L utilizzo di COTS comporta sempre lo sviluppo di codice per la conversione dei dati verso il formato richiesto dall applicazione o l eventuale adattamento dell applicazione a tali strutture dati Quali caratteristiche del prodotto COTS vengono utilizzate? La maggior parte dei prodotti COTS espongono una grande quantità di funzionalità, molte più di quante necessarie E opportuno negare l accesso alle funzionalità non utilizzate Può essere conveniente economicamente scegliere l adozione di COTS più ridotti Ingegneria del Software 2 Riuso del Software 45 Esempio: realizzare un sistema di acquisto basato su COTS Una organizzazione vuole dotarsi di un sistema per consentire a tutti I suoi dipendenti di effettuare ordini dai propri PC Il dipendente deve poter cercare liberamente gli articoli sul Web e fare ordini (e-commerce) la gestione degli ordini deve essere eseguita in modo centralizzato da un unico Ufficio Ordini L organizzazione possiede già un sistema COTS per gestire ordini ed uno per la fatturazione e consegna (usato solo dall ufficio ordini). Si sceglie di costruire il nuovo sistema integrando tale COTS con altri componenti. Ingegneria del Software 2 Riuso del Software 46 23

24 Dettagli della soluzione Sul lato client, saranno usati programmi standard di e web browsing (per eseguire la ricerca degli articoli da ordinare). Sul server, si integrerà una piattaforma per l ecommerce con ilsistema pre-esistente (ordini e fatturazioni). Saranno necessari degli adattatori per consentire lo scambio di dati. Verrà inoltre usato un sistema di per generare di notificae cisarà bisogno di un altro adattore per ricevere dati dal sistemadi fatturazione. Ingegneria del Software 2 Riuso del Software 47 Esempio: Sistema Acquisti basato su COTS Client Browser Browser web web Client Clientdi di posta posta elettronica elettronica Server Sistema Sistema di di e-commerce e-commerce Adattatore z Sistema Sistema Ordini Ordini e e Fatturazioni Fatturazioni Sistema Sistema di di Posta Posta elettronica elettronica Adattatore Un esempio di sistema basato su COTS Ingegneria del Software 2 Riuso del Software 48 24

25 Integrazione di applicazioni ed Adattatori Per poter dialogare con applicazioni/componenti esistenti è necessario formulare richieste secondo il formato accettato dall applicazione Interpretare le risposte ottenute nel formato prodotto dall applicazione Sistema Sistema 1 Adattatore 1 Sistema Sistema 22 L Adattatore ha il compito di eseguire le necessarie trasformazioni di formato dei dati Quali approccie tecnologie sono usabili? Ingegneria del Software 2 Riuso del Software 49 Possibili soluzioni al problemadella realizzazione degli adattatori Per trasformare da/verso formati semplici (ad esempio file di testo) conviene scrivere una classe adaptor Per trasformare tra documenti XML[1], note le rispettive grammatiche, si può scrivere un documento XSLT[2] dichiarando le regole di trasformazione tra formati. Esistono in commercio componenti anche gratuiti che interpretano i documenti XSLT eseguendo le trasformazioni Per interpretare/costruire documenti XML è possibile utilizzare librerie standard come SAX [3]che forniscono un API per l accesso ai contenuti del documento XML Per interpretare formati diversi, non XML, un buon metodo consiste nella scrittura di un parser (eventualmente tramite un generatore automatico come Antlr [4] o JavaCC[5]) Ingegneria del Software 2 Riuso del Software 50 25

26 Problemi dei COTS (1/2) Mancanza di controllo sulle funzionalità e sulle prestazioni Il sistema è utilizzato a scatola chiusa: non siamo consapevoli di come avvengano realmente le operazioni nel suo interno e, di conseguenza, non siamo in grado di modulare le richieste in modo da ottimizzare le prestazioni. Problemi di interoperabilità tra sistemi COTS Può essere necessario dover scrivere del codice extra per integrare sistemi COTS di produttori indipendenti. Ingegneria del Software 2 Riuso del Software 51 Problemi dei COTS (2/2) Nessun controllo sull evoluzione del sistema Può avvenire che le nuove versioni del sistema rendano impossibile l interazione col nostro software costringendoci a rimanere legati alle vecchie versioni, per le quali non c è più manutenzione. Supporto deiproduttori COTS Tipicamente il supporto deiproduttori potrebbe terminare con l acquisto del prodotto o limitarsialle sole evoluzioni decisedal produttore. Ingegneria del Software 2 Riuso del Software 52 26

27 5. Linee di prodotti software Per linee di prodotti software si intendono famiglie di applicazioni con funzionalità generiche che si prestano ad essere configurate o adattate in modo da poter essere utilizzate in contesti specifici. Esempi di adattamento: Specifiche configurazioni dei componenti e del sistema; Aggiunta di nuovi componenti; Selezione di componenti nell ambito di una libreria; Modifiche ai componenti per adattarsi alle esigenze del contesto. Ingegneria del Software 2 Riuso del Software 53 Possibili specializzazioni Specializzazione della piattaforma Possono essere necessarie diverse versioni per diversisistemi operativi o hardware, senza modificare le funzionalità Specializzazione dell ambiente Possono essere necessarie diverse versioni per venire incontro alle diverse funzionalità e modalità di funzionamento dei dispositivi periferici del sistema Specializzazione funzionale Possono essere necessarie diverse versioni personalizzate in base alle esigenze dei diversi clienti cui sono destinate Specializzazione di processo Possono essere necessarie diverse versioni per supportare I diversi processi di business da eseguire Ingegneria del Software 2 Riuso del Software 54 27

28 Configurazione Può avvenire in due momenti diversi: Configurazione alla consegna La configurazione avviene per un prodotto finito, senza modificarne internamente la struttura e il progetto, ma solo limitandone/personalizzando le funzionalità (customizzazione). Es. Pacchetti software verticali (es. ERP: Enterprise Resource Planning) Configurazione a tempo di progettazione Tramite l adozione di patterns e framework generici, le richieste di personalizzazione vengono recepite in fase di progetto e influiscono direttamente sulla realizzazione del prodotto Ingegneria del Software 2 Riuso del Software 55 Esempio: sistemi ERP Enterprise Resource Planning (ERP): sistema (generico) che supporta comuni processi aziendali (quali gestione ordini, fatture, inventari, paghe) (es. SAP e BEA) Il processo di configurazione degli ERP si basa sull adattamento di un core generico attraverso l inclusione e la configurazione dimoduli, e incorporando conoscenza su processi e regole aziendali del cliente specifico in un database di sistema. Molto usati in grandi aziende, costituiscono la forma di riusopiù comune. Ingegneria del Software 2 Riuso del Software 56 28

29 Organizzazione di un Sistema ERP Strumento per pianificare la configurazione Database Della Configurazione Generico Sistema ERP Database Del Sistema Ingegneria del Software 2 Riuso del Software 57 Architetture per le linee di prodotto Per mantenere adattabilità e riconfigurabilità è utile adottare architetture modulari e stratificate, che permettano facilmente le necessarie modifiche Architettura tipica: multilayer Inoltre, è importante separare le funzionalità generiche dai dati che si riferiscono alla personalizzazione, in modo da poter realizzare tale customizzazione senza generazione di codice. Ingegneria del Software 2 Riuso del Software 58 29

30 Esempio :un generico sistema di gestione risorse Interfaccia Utente Livello UI Autenticazione Utente Consegna Risorse Gestione Query Livello di Gestione I/O Gestione Risorse Controllo Politica delle Risorse Allocazione Risorse Livello Risorse Gestione Transazioni Database Risorse Livello Database Ingegneria del Software 2 Riuso del Software 59 Una istanza del sistema generico: Il sistema invio veicoli User interface Comms system inter face Operator authentication Map and route planner Report generator Query manager Vehicle status manager Incident logger Vehicle despatcher Equipment manager Vehicle locator Equipment database Transaction management Vehicle database Incident log Map database Ingegneria del Software 2 Riuso del Software 60 30

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

10. Design Patterns. Andrea Polini. Ingegneria del Software Corso di Laurea in Informatica. (Ingegneria del Software) 10. Design Patterns 1 / 36 10. Design Patterns Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 10. Design Patterns 1 / 36 Problemi Ci focalizziamo nelle problematiche riguardanti la

Dettagli

Laboratorio di Progettazione di Sistemi Software Introduzione

Laboratorio di Progettazione di Sistemi Software Introduzione Laboratorio di Progettazione di Sistemi Software Introduzione Valentina Presutti (A-L) Riccardo Solmi (M-Z) Indice degli argomenti Introduzione all Ingegneria del Software UML Design Patterns Refactoring

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

MODEL-VIEW-CONTROLLER PROBLEMA

MODEL-VIEW-CONTROLLER PROBLEMA MODEL VIEW CONTROLLER DESIGN PATTERN MODEL-VIEW-CONTROLLER INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

Ingegneria del Software. Introduzione ai pattern

Ingegneria del Software. Introduzione ai pattern Ingegneria del Software Introduzione ai pattern 1 Definizione di pattern [dal [dal vocabolario vocabolario Garzanti] Garzanti] Alcuni esempi: Pattern architetturale Pattern di circuito stampato Pattern

Dettagli

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

Dettagli

Ingegneria del Software. Business Object Technology

Ingegneria del Software. Business Object Technology Ingegneria del Software Business Object Technology Premesse I sistemi informativi di qualsiasi organizzazione devono essere capaci di: gestire quantità di dati sempre crescenti fornire supporto a nuovi

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Progetto di Informatica III. Introduzione al corso

Progetto di Informatica III. Introduzione al corso Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

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

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Pattern Architetturali e Analisi Architetturale

Pattern Architetturali e Analisi Architetturale Pattern Architetturali e Analisi Architetturale Ingegneria del Software parte II Andrea Bei Pattern Architetturali Pattern Architetturale Descrive il modello organizzativo strutturale di un sistema software

Dettagli

Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. patrizia.scandurra@unibg.it

Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. patrizia.scandurra@unibg.it Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

ALLEGATO 8.1 DESCRIZIONE PROFILI PROFESSIONALI

ALLEGATO 8.1 DESCRIZIONE PROFILI PROFESSIONALI PROCEDURA DI SELEZIONE PER L AFFIDAMENTO DEL SERVIZIO DI PROGETTAZIONE, ANALISI, SVILUPPO, MANUTENZIONE ADEGUATIVA, CORRETTIVA ED EVOLUTIVA DI SISTEMI INFORMATIVI SU PIATTAFORMA IBM WEBSPHERE BPM (EX LOMBARDI)

Dettagli

JSIS JSIS L architettura JSIS

JSIS JSIS L architettura JSIS JSIS JSIS L architettura JSIS La piattaforma JSIS Java Solution Integrated Suites, interamente realizzata dai nostri laboratori di sviluppo software, è una soluzione che integra la gestione di diverse

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

Design Patterns. Sommario. Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 1. Design Patterns DIB 2

Design Patterns. Sommario. Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 1. Design Patterns DIB 2 DIB 1 Sommario Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 2 Architettura a 3 Livelli DIB 3 Architettura a 3 Livelli Presentazione Gestione dell interazione degli

Dettagli

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1 Introduzione Il software e l ingegneria del software Marina Mongiello Ingegneria del software 1 Sommario Il software L ingegneria del software Fasi del ciclo di vita del software Pianificazione di sistema

Dettagli

DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE INTRODUZIONE ADAPTER. Scopo Convertire l interfaccia di una classe in un altra.

DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE INTRODUZIONE ADAPTER. Scopo Convertire l interfaccia di una classe in un altra. DESIGN PATTERN STRUTTURALI DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

Model Driven Software Development con Eclipse, StatechartUMC

Model Driven Software Development con Eclipse, StatechartUMC Model Driven Software Development con Eclipse, StatechartUMC Aldi Sulova Istituto di Scienza e Tecnologie dell Informazione A. Faedo - CNR Via G. Moruzzi 1, 56124 Pisa, Italy aldi.sulova@isti.cnr.it Abstract.

Dettagli

Corso analista programmatore Java. Corso analista programmatore Java Programma

Corso analista programmatore Java. Corso analista programmatore Java Programma Corso analista programmatore Java Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Applicazione: OIL Online Interactive helpdesk

Applicazione: OIL Online Interactive helpdesk Riusabilità del software - Catalogo delle applicazioni: Gestione ICT Applicazione: OIL Online Interactive helpdesk Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi

Dettagli

Introduzione ai software gestionali. Corso Gestione dei flussi di informazione

Introduzione ai software gestionali. Corso Gestione dei flussi di informazione Introduzione ai software gestionali Corso Gestione dei flussi di informazione 1 Integrazione informativa nelle aziende Problemi: frammentazione della base informativa aziendale crescente complessità organizzative

Dettagli

MICROSOFT DYNAMICS: SOLUZIONI GESTIONALI PER L AZIENDA

MICROSOFT DYNAMICS: SOLUZIONI GESTIONALI PER L AZIENDA MICROSOFT DYNAMICS: SOLUZIONI GESTIONALI PER L AZIENDA Microsoft Dynamics: soluzioni gestionali per l azienda Le soluzioni software per il business cercano, sempre più, di offrire funzionalità avanzate

Dettagli

design pattern una soluzione progettuale generale a un problema ricorrente

design pattern una soluzione progettuale generale a un problema ricorrente DESIGN PATTERN DESIGN PATTERN Un design pattern può essere definito "una soluzione progettuale generale a un problema ricorrente". Esso non è una libreria o un componente di software riusabile, quanto

Dettagli

1. Destinatari e requisiti di ingresso. 2. Durata sede e organizzazione del corso. 3. Oggetto della formazione

1. Destinatari e requisiti di ingresso. 2. Durata sede e organizzazione del corso. 3. Oggetto della formazione Summer school per lo sviluppo di applicazioni software enterprise Sottotitolo: "Formazione, seminari e sviluppo software in Java. Implementazione di un caso di studio reale" Sardegna Ricerche, nell ambito

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 White paper Novembre 2007 Per informazioni aggiornate, visitare l indirizzo www.microsoft.com/italy/vstudio È possibile che a questo

Dettagli

Indice. Ingegneria dei requisiti e gestione agile. User-Centered Development Esempi di artefatti. Domain Driven Design. Design for Testability

Indice. Ingegneria dei requisiti e gestione agile. User-Centered Development Esempi di artefatti. Domain Driven Design. Design for Testability Indice Ingegneria dei requisiti e gestione agile User-Centered Development Esempi di artefatti Domain Driven Design Design for Testability Model-based GUI Testing c IDS Srl 2014 Software solido e usabile

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

Corso Analista Programmatore Java Corso Online Analista Programmatore Java Corso Analista Programmatore Java Corso Online Analista Programmatore Java Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Java Tematiche Trattate Modulo Uno

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

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

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

SOA è solo tecnologia? Consigli utili su come approcciare un progetto SOA. Service Oriented Architecture

SOA è solo tecnologia? Consigli utili su come approcciare un progetto SOA. Service Oriented Architecture SOA è solo tecnologia? Consigli utili su come approcciare un progetto SOA Service Oriented Architecture Ormai tutti, nel mondo dell IT, conoscono i principi di SOA e i benefici che si possono ottenere

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Ciclo di Vita Evolutivo

Ciclo di Vita Evolutivo Ciclo di Vita Evolutivo Prof.ssa Enrica Gentile a.a. 2011-2012 Modello del ciclo di vita Stabiliti gli obiettivi ed i requisiti Si procede: All analisi del sistema nella sua interezza Alla progettazione

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

UML e (R)UP (an overview)

UML e (R)UP (an overview) Lo sviluppo di sistemi OO UML e (R)UP (an overview) http://www.rational.com http://www.omg.org 1 Riassumento UML E un insieme di notazioni diagrammatiche che, utilizzate congiuntamente, consentono di descrivere/modellare

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Design Pattern in Java

Design Pattern in Java Design Pattern in Java Claudio Di Ciccio, Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.

Dettagli

Framework Rich Client Application

Framework Rich Client Application Framework Rich Client Application RELATORE: Paolo Giardiello Savona, 30 settembre 2010 Agenda La Sogei Le applicazioni client Sogei Le caratteristiche Le soluzioni possibili Java Web Start Eclipse La scelta:

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.6 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Richiami 1

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Richiami 1 Lezione 1 Ingegneria del Software II- Introduzione e Motivazione Ingegneria del Software 2 Introduzione e Richiami 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.1 R.

Dettagli

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono

Dettagli

GenLApp Generazione Lista di Applicazioni. Design Patterns. Classi Essenziali. Modellazione Dati. Progettazione della Linea di Prodotti

GenLApp Generazione Lista di Applicazioni. Design Patterns. Classi Essenziali. Modellazione Dati. Progettazione della Linea di Prodotti Progettazione della Linea di Prodotti GenLApp Generazione Lista di Applicazioni Progettazione della Linea di Prodotti Classi Essenziali Responsabilità sui 3 Livelli Architetturali Descrizione delle Responsabilità

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Sistemi di BPM su Cloud per la flessibilità delle PMI

Sistemi di BPM su Cloud per la flessibilità delle PMI Sistemi di BPM su Cloud per la flessibilità delle PMI Marco Brambilla, WebRatio e Politecnico di Milano ComoNEXT Lomazzo, 14 Novembre 2012 Dall esigenza Flessibilità del business Risposta immediata ai

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Progetto: JNSIL LEAF. Presentazione: nuova procedura Java based e cross Platform per la gestione di LEAsing e Finanziamenti

Progetto: JNSIL LEAF. Presentazione: nuova procedura Java based e cross Platform per la gestione di LEAsing e Finanziamenti Progetto: JNSIL LEAF Presentazione: nuova procedura Java based e cross Platform per la gestione di LEAsing e Finanziamenti Negli ultimi anni si è diffuso il trend di trasformare applicazioni pensate per

Dettagli

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

The Zachman Framework for Enterprise Architecture

The Zachman Framework for Enterprise Architecture The Zachman Framework for Enterprise Architecture Introduzione Una delle sfide più importanti che un impresa moderna deve affrontare è quella del cambiamento. Considerando la necessità di cambiamento dal

Dettagli

Ottimizzate i processi IT, massimizzate il ROA (return on assets) e migliorate il livello dei servizi

Ottimizzate i processi IT, massimizzate il ROA (return on assets) e migliorate il livello dei servizi Soluzioni per la gestione di risorse e servizi A supporto dei vostri obiettivi di business Ottimizzate i processi IT, massimizzate il ROA (return on assets) e migliorate il livello dei servizi Utilizzate

Dettagli

Progettazione! Progettazione! Progettazione! Progettazione!

Progettazione! Progettazione! Progettazione! Progettazione! Creare un oggetto specificandone la classe esplicitamente! Orienta ad una particolare implementazione invece che ad una interfaccia! Può complicare i cambiamenti futuri! E meglio creare oggetti indirettamente!

Dettagli

IT ARCHITECTURE: COME PREPARARSI AL CLOUD

IT ARCHITECTURE: COME PREPARARSI AL CLOUD IT ARCHITECTURE: COME PREPARARSI AL CLOUD Stefano Mainetti stefano.mainetti@polimi.it L ICT come Commodity L emergere del Cloud Computing e i nuovi modelli di delivery Trend n. 1 - ICT Commoditization

Dettagli

Registro SPICCA Architettura del Software

Registro SPICCA Architettura del Software Registro SPICCA Architettura del Software Versione 1.0 del 25/08/2009 Sommario 1 Introduzione... 4 1.1 Scopo... 4 1.2 Obiettivo... 4 1.3 Riferimenti... 4 1.4 Panoramica del documento... 4 2 Rappresentazione

Dettagli

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

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale tesi di laurea inventario comunale Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo Ing. Luigi Pontillo candidato Michele Vitelli Matr. 534 2170 Redazione dell Inventario

Dettagli

Descrizione generale. Architettura del sistema

Descrizione generale. Architettura del sistema Descrizione generale Sister.Net nasce dall esigenza di avere un sistema generale di Cooperazione Applicativa tra Enti nel settore dell Informazione Geografica che consenta la realizzazione progressiva

Dettagli

Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate

Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate Mystic Pizza Gestione Pizzeria Scheda di Progetto Version 1.0 Data 19/03/2007 Indice degli argomenti 1. Introduzione 3 a. Scenario

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

La Posta Elettronica Certificata

La Posta Elettronica Certificata Associazione Industriali LU La Posta Elettronica Certificata 1 Giugno 11 2 Novembre 2011 Indice Profilo Aziendale InfoCert L offerta di Posta Certificata InfoCert 3 Novembre 2011 InfoCert Profilo Aziendale

Dettagli

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato Intalio Convegno Open Source per la Pubblica Amministrazione Leader nei Sistemi Open Source per il Business Process Management Navacchio 4 Dicembre 2008 Andrea Calcagno Amministratore Delegato 20081129-1

Dettagli

Software solido e usabile: come integrare ingegneria dell usabilità e del software

Software solido e usabile: come integrare ingegneria dell usabilità e del software Software solido e usabile: come integrare ingegneria dell usabilità e del software Giorgio Brajnik e Andrea Baruzzo Dip. di Matematica e Informatica Università di Udine e Interaction Design Solutions srl

Dettagli

Università degli studi dell Aquila. Sistemi informativi aziendali

Università degli studi dell Aquila. Sistemi informativi aziendali Università degli studi dell Aquila 6 C.F.U. 9 C.F.U. Ing. Gaetanino Paolone (gaetanino.paolone@univaq.it) Prof. Dr. Luciano Fratocchi (luciano.fratocchi@univaq.it) Contenuti Web Information System. La

Dettagli

Software solido e usabile

Software solido e usabile La tecnica di analisi e progetto Domain-Driven Design Software solido e usabile Nel cuore della complessità del software Che cos è il Domain-Driven Design È un approccio alla costruzione di sistemi software

Dettagli

CeBAS. Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009)

CeBAS. Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009) CeBAS Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009) Introduzione Il progetto CEBAS: la finalità è di migliorare l efficienza operativa interna dell Ente rispondere alle aspettative

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

Presentazione di Cedac Software

Presentazione di Cedac Software Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994

Dettagli

BASI DI DATI I Lezione n 2 25/09/2009

BASI DI DATI I Lezione n 2 25/09/2009 BASI DI DATI I Lezione n 2 25/09/2009 Fumarola Roberta, Galeano Antonio Andrea Linguaggio di modellazione Insieme di simboli e regole atto a descrivere la struttura e le funzionalità di un Database prima

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Introduzione al Model-View-Controller (MVC)

Introduzione al Model-View-Controller (MVC) Introduzione al Model-View-Controller (MVC) Maurizio Cozzetto 9 Luglio 2009 Indice 1 Model-View-Controller 1 1.1 Definizione.................................................. 1 1.2 Soluzione...................................................

Dettagli

Applicazione: Protocollo ASP

Applicazione: Protocollo ASP Riusabilità del software - Catalogo delle applicazioni Gestione Documentale Applicazione: Protocollo ASP Amministrazione: DigitPA Responsabile dei sistemi informativi D.ssa Maria Pia GIOVANNINI Viale Marx

Dettagli

Il Provvedimento del Garante

Il Provvedimento del Garante Il Provvedimento del Garante Il provvedimento del Garante per la Protezione dei dati personali relativo agli Amministratori di Sistema (AdS) Misure e accorgimenti prescritti ai titolari dei trattamenti

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica Tecnologie dell informazione e della comunicazione per le aziende CAPITOLO 3: Progettazione e sviluppo

Dettagli

LEZIONE 9 - Linguaggi di Modellazione & UML

LEZIONE 9 - Linguaggi di Modellazione & UML Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 9 - Linguaggi di Modellazione & UML Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Cosa sono? 2 1

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.7 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

HealthSOAF Health Service Oriented Architecture Framework

HealthSOAF Health Service Oriented Architecture Framework HealthSOAF Health Service Oriented Architecture Framework Maria Carmela Groccia, de-health Lab, DIMEG Rosita Guido, Domenico Conforti Università della Calabria Maurizio Rizzo, Giampaolo Sammarco AlmavivA

Dettagli

Interoperabilità e cooperazione applicativa tra sistemi informativi

Interoperabilità e cooperazione applicativa tra sistemi informativi Interoperabilità e cooperazione applicativa tra sistemi informativi Michele Ruta Dipartimento di Ingegneria Elettrica e dell Informazione Politecnico di Bari 1di 29 Indice Introduzione ai Port Community

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Sviluppi e Casi di Test in JAVA/J2EE con framework STRUTS per Sistema di Riconciliazione Economica on-line

Sviluppi e Casi di Test in JAVA/J2EE con framework STRUTS per Sistema di Riconciliazione Economica on-line tesi di laurea Sviluppi e Casi di Test in JAVA/J2EE con framework STRUTS per Sistema di Riconciliazione Economica on-line Anno accademico 2008/2009 Relatore Prof. Porfirio Tramontana Candidato Di Costanzo

Dettagli

Università degli studi dell Aquila. Sistemi informativi aziendali 9 C.F.U.

Università degli studi dell Aquila. Sistemi informativi aziendali 9 C.F.U. Università degli studi dell Aquila Sistemi informativi aziendali 9 C.F.U. Ing. Gaetanino Paolone (gaetanino.paolone@univaq.it) Prof. Dr. Luciano Fratocchi (luciano.fratocchi@univaq.it) Contenuti (2 ore)

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Architettura del software: dai Casi d Uso al Modello

Architettura del software: dai Casi d Uso al Modello Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli