A brief introduction to UML: the history, what are the problems that UML tries to resolve and how we should use it during software design and development.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML activity diagrams. The slides contain information about which are the main components of activity diagrams, how to use them to represent business processes and software algorithms.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML class diagrams. The slides contain information about how to represent a class, what is a classe feature, what are possible association types, class dependency, hineritance and subtyping.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML use cases and use cases diagrams. The slides contain information about what is a scenario, an actor, an use case and interactions between them.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the concept of design pattern in object oriented programming and design. The slides contain information about what a design pattern is, why should we use design pattern and how design patterns could be grouped togheter. The ideas presented in the slides are taken directly from GoF's book "Design Patterns".
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML class diagrams. The slides contain information about how to use sequence diagrams to represent components' interactions in a software system. UML 2.x featuers are also described, like frames.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
油
This presentation talks about model view controller, model view presenter and model view viewmodel patterns. These are architectural design patterns for implementing user interfaces. They divide a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. Also, they promote separation of concerns. As examples, some frameworks are reported, such as:
- Spring MVC
- BackboneJS
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about structural design patterns. In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities. In particular in the slides are described the following patterns:
- Decorator
- Proxy
- Facade
- Adapter
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Errori comuni nei documenti di Analisi dei RequisitiRiccardo Cardin
油
This presentation talks about common errors that I found in my career in documents of specification of requirements. In the presentation are described common errors on use cases, use cases' diagrams and on requirements' specification.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about dependecy injection, an architectural design pattern that aims to help developer to resolve dependencies between objects. Starting by describing general problem of dependecy resolution, the presentation continues presenting Inversion of Control (IoC) pattern, constructor injection and setting injection. As examples, some frameworks and libraries are reported, such as:
- Google Guice
- Spring framework
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about creational design patterns. In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. In particular in the slides are described the following patterns:
- Singleton
- Builder
- Abstract Factory
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
A very introductive presentation about how Model-View-Controller pattern (MVC) and Dependence Injection (DI) are implemented in some popular frameworks, such as Spring and Angular JS.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Very little workshop on HLS:
Mention of Synthesizing hardware using high level language, in particular C-like languages. Analysis of existent old language since 1980 to 2000: Cones, HardwareC, Transmogrifier C, SystemC, C2Verilog, Handel-C. Open problems using C-like languages (taken from Stephen Edwards' "The challenges of synthesizing Hardware from C-like languages").
Hardware design and synthesis using Esterel, reactive and synchronous language, ideal to describe a *behavioural* structure of hardware concurrent real-time controller and to test formal correctness. Easiness in creation of VHDL, Verilog, SystemC, Finite State Automata, dataflow design, and implementation on ASIC or FPGA or RePIC (processor architecture supporting direct esterel execution).
Example of a Preudo-Random Bit Sequence using Esterel versus the implementation using OrCAD software
Perch辿 non facciamo pi湛 quello che ci piaceIlaria Mauric
油
http://www.ilariamauric.it/2012/06/01/agile-ux-barcamp-come-andata/
Le slide che Alessandro Violini di e-xtrategy ed io abbiamo presentato all'Agile UX Barcamp di Firenze (31 maggio 2012).
Abbiamo raccontato la transizione da waterfall ad agile, la nostra esperienza e come siamo cambiati.
Perch辿 non facciamo pi湛 quello che ci piace - Italian Agile Day 2012Ilaria Mauric
油
Presentate all'Italian Agile Day 2012, le slide mostrano l'evoluzione del metodo di lavoro di e-xtrategy dal 2008 al 2012, da quando cio竪 ha deciso di abbracciare le metodologie agili. L'intervento pone un focus particolare sulle criticit legate alla progettazione della user experience e sul cambio di percezione sul valore del lavoro offerto.
This presentation introduces the concept of synchronization beatween threads, as implemented in the Java platform. It is the first part of a series of slides dedicated to thread synchronization. This slides introduces the following concepts:
- Thread safety
- Types of race conditions
- Locking (reentrant locks, intrinsic locks, synchronized blocks)
- Locking pitfalls
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This document discusses Java input/output (I/O) streams and readers/writers for processing files, URLs, and other sources of input and output. It covers obtaining and working with input and output streams, reading and writing bytes, character encodings, text I/O, random access files, file operations, URL connections, and object serialization. The key classes for I/O include InputStream, OutputStream, Reader, Writer, File, Path, and URLConnection.
This presentation introduces basic concepts about the Java socket abstraction. These slides introduce the following concepts:
- What is a socket
- How to implement a client program
- How to implement a server program
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
Errori comuni nei documenti di Analisi dei RequisitiRiccardo Cardin
油
This presentation talks about common errors that I found in my career in documents of specification of requirements. In the presentation are described common errors on use cases, use cases' diagrams and on requirements' specification.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about dependecy injection, an architectural design pattern that aims to help developer to resolve dependencies between objects. Starting by describing general problem of dependecy resolution, the presentation continues presenting Inversion of Control (IoC) pattern, constructor injection and setting injection. As examples, some frameworks and libraries are reported, such as:
- Google Guice
- Spring framework
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about creational design patterns. In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. In particular in the slides are described the following patterns:
- Singleton
- Builder
- Abstract Factory
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
A very introductive presentation about how Model-View-Controller pattern (MVC) and Dependence Injection (DI) are implemented in some popular frameworks, such as Spring and Angular JS.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Very little workshop on HLS:
Mention of Synthesizing hardware using high level language, in particular C-like languages. Analysis of existent old language since 1980 to 2000: Cones, HardwareC, Transmogrifier C, SystemC, C2Verilog, Handel-C. Open problems using C-like languages (taken from Stephen Edwards' "The challenges of synthesizing Hardware from C-like languages").
Hardware design and synthesis using Esterel, reactive and synchronous language, ideal to describe a *behavioural* structure of hardware concurrent real-time controller and to test formal correctness. Easiness in creation of VHDL, Verilog, SystemC, Finite State Automata, dataflow design, and implementation on ASIC or FPGA or RePIC (processor architecture supporting direct esterel execution).
Example of a Preudo-Random Bit Sequence using Esterel versus the implementation using OrCAD software
Perch辿 non facciamo pi湛 quello che ci piaceIlaria Mauric
油
http://www.ilariamauric.it/2012/06/01/agile-ux-barcamp-come-andata/
Le slide che Alessandro Violini di e-xtrategy ed io abbiamo presentato all'Agile UX Barcamp di Firenze (31 maggio 2012).
Abbiamo raccontato la transizione da waterfall ad agile, la nostra esperienza e come siamo cambiati.
Perch辿 non facciamo pi湛 quello che ci piace - Italian Agile Day 2012Ilaria Mauric
油
Presentate all'Italian Agile Day 2012, le slide mostrano l'evoluzione del metodo di lavoro di e-xtrategy dal 2008 al 2012, da quando cio竪 ha deciso di abbracciare le metodologie agili. L'intervento pone un focus particolare sulle criticit legate alla progettazione della user experience e sul cambio di percezione sul valore del lavoro offerto.
This presentation introduces the concept of synchronization beatween threads, as implemented in the Java platform. It is the first part of a series of slides dedicated to thread synchronization. This slides introduces the following concepts:
- Thread safety
- Types of race conditions
- Locking (reentrant locks, intrinsic locks, synchronized blocks)
- Locking pitfalls
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This document discusses Java input/output (I/O) streams and readers/writers for processing files, URLs, and other sources of input and output. It covers obtaining and working with input and output streams, reading and writing bytes, character encodings, text I/O, random access files, file operations, URL connections, and object serialization. The key classes for I/O include InputStream, OutputStream, Reader, Writer, File, Path, and URLConnection.
This presentation introduces basic concepts about the Java socket abstraction. These slides introduce the following concepts:
- What is a socket
- How to implement a client program
- How to implement a server program
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about behavioural design patterns. In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication. In particular in the slides are described the following patterns:
- Command
- Iterator
- Observer
- Strategy
- Template Method
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the concept of synchronization beatween threads, as implemented in the Java platform. It is the second part of a series of slides dedicated to thread synchronization. This slides introduces the following concepts:
- Conditional locking
- Volatile variables
- Thread confinement
- Immutability
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces some advanced concepts of generics in Java. These slides introduce the following concepts:
- Generic classes and methods
- Type variable bounds
- Type erasure process
- Generics and inheritance
- Wildcard types
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces some advanced concepts of threads, as implemented in the Java platform. It is part of a series of slides dedicated to threads. This slides introduces the following concepts:
- Callable
- Futures
- Executors and executor services
- Deadlocks (brief introduction)
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the Java concept of thread. It is the first part of a series of slides dedicated to concurrent programming. This slides introduces some basics concepts, such as:
- Differences between processes and threads
- Thread's basics
- Thread's states
- Introduction to UML sequence diagrams
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about some commonly used software architecture patterns. The main features of the following architectural patterns are described:
- Layered architecture
- Event-driven architecture (both mediator and broker topology)
- Microservices architecture (API-REST based, REST based, Centralized message topology)
Each pattern is analyzed in terms of:
- Overall agility
- Ease of deployment
- Testability
- Performance
- Scalability
- Ease of develpment.
The slide refers to the online book "Software Architecture Patterns", Mark Richards, 2015, OReilly.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the main features of Swing, an UI development library for the Java ecosystem. The main focus of the slides is to show the basic features of Swing, such as:
- Main components (JFrame, JPanel, ...)
- Layout management (FlowLayout, BorderLayout, GridLayout, ...)
- Event handling
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
Java Exception Handling, Assertions and LoggingRiccardo Cardin
油
This presentation introduces the java exception handling mechanisms. In detail, the main focus of the slides is to show how the language implements its exception handling polices, such as:
- Checked and uncheked exception
- Try / catch blocks
- Assertions
- Logging
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces basic concepts about the Java Remote Method Invocation, a.k.a. RMI. These slides introduce the following concepts:
- Remote interfaces
- Dynamic code loading
- Serialization
- Security manager
- Exporting remote objects
- Compiling and running RMI programs
- Distributed garbage collection
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the five SOLID principles of Object Oriented Design described by Rober C. Martin in his best-seller book "Agile Principles, Patterns, and Practices in C#". The five principle described are:
- Single Responsibility Principle
- Open-Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces some concepts about the Java Collection framework. These slides introduce the following concepts:
- Collections and iterators
- Linked list and array list
- Hash set and tree set
- Maps
- The collection framework
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
Yd1105164 sprawozdanie merytoryczne 2011 eng done-1odfoundation
油
The document summarizes the activities and financial reporting of the Open Dialog Foundation for the year 2011. It provides details on the Foundation such as its name, address, leadership, and statutory goals of promoting democracy and civil society. It then outlines the Foundation's activities in 2011 which included several conferences and exhibitions in Europe regarding Kazakhstan. Finally, it provides financial information such as revenues of PLN 156,260.29 mainly from grants, costs of PLN 194,506.57, and assets of PLN 38,057.1 with no employees or loans.
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...Masashi Imano
油
This document summarizes the results of benchmarks performed on an SGI Altix ICE8200 cluster using OpenFOAM to simulate 2D and 3D lid-driven cavity flows. The benchmarks tested scaling performance of OpenFOAM using OpenMPI and SGI MPT for different problem sizes (mesh resolutions) and numbers of compute nodes. In general, OpenMPI showed better strong scaling than SGI MPT, although using two InfiniBand rails with SGI MPT provided some improvement over single rail.
The document is a PowerPoint presentation for the International Association of University Presidents by Donna Powell Wilson, Executive Director of the Council of Community Colleges of Jamaica. The presentation discusses articulation agreements between community colleges and universities in Jamaica that allow students who earn an associate degree to apply those credits toward a bachelor's degree. It notes the benefits of articulation agreements for students in reducing costs and duplication, for institutions in meeting student and market needs, and for communities in developing an educated workforce. Specific articulation agreements between Jamaican institutions and some in the UK are also mentioned.
My Graduation discussion (20 mins version), for thesis : Review - IT a Social Network for Scientific documents discussion; developed by integrating GWT,SPRING, HIBERNATE, MAVEN.
Il Corso Unified Modeling Language - UML di K-Tech (http://www.k-tech.it) ha come obiettivo quello di offrire ai partecipanti gli strumenti per sapere leggere e usare lo Unified Modeling Language, sia nella comunicazione allinterno del team di sviluppo, sia allesterno con gli stakeholder coinvolti.
La forza dell'UML 竪 che i vari ruoli coinvolti nella creazione di un sistema (sviluppatori, DBA, manager, analisti), utilizzando le notazioni grafiche e i diagrammi di un solo linguaggio, riescono a comunicare facilmente fra loro.
Il corso Unified Modeling Language (UML) si compone di diciotto moduli:
1. Overview
2. Introduzione allUML
3. Modellazione Strutturale
4. Relazioni
5. Diagrammi
6. Class Diagram
7. Object Diagram
8. Component Diagram
9. Package Diagram
10. Deployment Diagram
11. Composite Structure Diagram
12. Activity Diagram
13. Use Case Diagram
14. Statechart Diagram
15. Timing Diagram
16. Sequence Diagram
17. Communication Diagram
18. Interaction Overview Diagram
Leggi il programma completo:
http://www.k-tech.it/formazione/catalogo/corso_unified_modeling_language_uml
TRS one of the testimonials at the Emerasoft Day - 23 May 2012.
Polarion has been chosen as the ALM tool in TRS (www.trs.it) with different modules integrated:
SCRUM, waterfall lifecycle, earned value analisys, integrated planning
Introduzione al Domain Driven Design (DDD)DotNetMarche
油
In questa sessione si approfondir il concetto di Domain Driven Design, un principio di progettazione che pu嘆 essere visto come una forma-mentis per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembreProfesia Srl, Lynx Group
油
Il webinar, promosso da Profesia, vuole raccontare e mostrare come le soluzioni dell'ecosistema IBM ELM - Engineering Lifecycle Management rispondano a specifiche e puntuali esigenze del mercato regolato, promuovendo e agevolando la collaborazione su progetti strategici all'interno di mercati regolati.
Nello specifico ci rivolgiamo ai settori Automotive e Difesa, chiamati a rispettare compliant stringenti e severe.
Verr infine raccontata la storia di successo TEXA, firmata Profesia
Scrivi a sales@profesia.it per maggiori informazioni
In queste slide, presentate durante il Google Developer Group Dev Fest Mediterranean 2014 vi 竪 una introduzione alla "Continuous integration" una pratica di sviluppo software dove i membri di un team integrano il loro lavoro frequentemente.Sono inoltre presentati alcuni tool integrabili in una "build" per misurare la qualit del codice PHP cos狸 da rispettare diverse metriche ed avere codice di qualit.
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Codemotion
油
A key component of the creation of cross-platform applications to be able to share code among several specific projects and platform dependent. Each different platform can only use the class libraries that have been developed for that specific platform. In Xamarin there are two main approaches to the sharing code: Using Shared Asset Projects (Shared Library) and the Portable Class Library (PCL) Projects. In this session we will see how and when to use the shared library, or the PCL library and we will try to answer the question: Shared or PCL?
Code Generation con i templates T4 in visual studioMarco Parenzan
油
Uno degli strumenti meno pubblicizzati ma pi湛 utili in Visual Studio sono i templates T4. Strumenti come l'Entity Framework e ASP.NET MVC li hanno resi (forse) pi湛 diffusi. Come sono fatti? Come si usano? Cosa ci si pu嘆 fare? Una carrellata di alcuni usi interessanti, dagli oggetti POCO a WPF, passando attraverso lo "scaffolding" e i Domain Specific Languages...
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...festival ICT 2016
油
La produzione di software per applicazioni mission critical (es. quelle militari o aerospaziali) 竪 storicamente stata dominata da standard di qualit (2167 A, 498, ISO 90xxx) che hanno imposto sovrastrutture formali, rigide, costose e spesso inefficaci che hanno spesso, esse stesse, causato il fallimento di costosi progetti software. La deregulation avvenuta in ambito commerciale, particolarmente segnata dalle metodologie agile ha causato la progressiva scomparsa dei metodi tradizionali per lo sviluppo di software, ma linnovazione fatica ancora ad imporsi in ambiti caratterizzati da alta affidabilit dei prodotti e elevata classe di rischio. Il presente lavoro propone una riflessione su quanto sia invece opportuno, che proprio nei citati contesti si introducano metodologie di sviluppo innovative che oltre che concorrono allabbattimento dei costi e consentono un migliore coinvolgimento dellutente finale e portando ad una sostanziale riduzione dei rischi di prodotto.
1. INTRODUZIONE A UML
INGEGNERIA DEL SOFTWARE
Universit degli Studi di Padova
Dipartimento di Matematica
Corso di Laurea in Informatica, A.A. 2014 2015
rcardin@math.unipd.it
2. SOMMARIO
Che cos竪 UML
Utilizzo di UML
Prospettiva di Utilizzo
Diagrammi UML
UML e lo Sviluppo Software
Ingegneria del software mod. A
Riccardo Cardin 2
3. SOMMARIO
Che cos竪 UML
Utilizzo di UML
Prospettiva di Utilizzo
Diagrammi UML
UML e lo Sviluppo Software
Ingegneria del software mod. A
Riccardo Cardin 3
4. CHE COS UML
Famiglia di notazioni grafiche che si basano su un singolo meta-modello
e servono a supportare la descrizione e il progetto dei sistemi
Pensato su un paradigma ad oggetti (object oriented)
Meta-modello
Insieme di regole, vincoli e teorie utilizzate per la
modellazione di una classe di problemi
Modello: astrazione del mondo reale
Ingegneria del software mod. A
Riccardo Cardin 4
software
Martin Fowler
5. COS UML
Linguaggio visuale
Facile da imparare, ma semanticamente molto ricco
Sintassi
UML Notation Guide
Regole attraverso le quali gli elementi di un linguaggio
sono assemblati in espressioni
Elementi di modellazione (classi, interfacce, casi duso,)
Relazioni (associazioni, generalizzazioni,)
Diagrammi (delle classi, dei casi duso, di interazione,)
Semantica
UML Semantics
Regole attraverso le quali alle espressioni sintattiche viene
attribuito un significato
Ingegneria del software mod. A
Riccardo Cardin 5
6. CHE COS UML
Caratteristiche principali
Incorpora la miglior esperienza sviluppata a livello
industriale
uno strumento flessibile, che si adatta alla maggior
parte dei sistemi produttivi
Si adatta ai bisogni di sviluppo dei moderni software
Scalabilit
Distribuzione dellarchitettura
Concorrenza
indipendente dai linguaggi di sviluppo e
programmazione
Ingegneria del software mod. A
Riccardo Cardin 6
7. CHE COS UML
Caratteristiche principali
Supporta concetti di sviluppo ad alto livello
Frameworks
Patterns
Componenti
Supporta lintero ciclo di vita del software
Dal documento di Analisi dei Requisiti al documento di Piano di
Qualifica
E supportato da numerosi tools di progettazione
Rational Application Developer (IBM RAD)
http://www-01.ibm.com/software/awdtools/developer/application
Eclipse Papyrus UML (http://www.eclipse.org/modeling/mdt/papyrus)
Astah Community Edition (http://astah.net/editions/community)
BoUML (http://bouml.free.fr)
Ingegneria del software mod. A
Riccardo Cardin 7
8. CHE COS UML
UML 竪 uno standard
Object Management Group (OMG)
CORBA (Common Object Request Broker Architecture)
BPMN (Business Process Managament Notation)
Relativamente giovane: 1997
Prima esistevano una miriade di linguaggi grafici di
modellazione, ognuno con le proprie regole
Anni 80 e 90
Perch辿?
Il linguaggio naturale 竪 troppo astratto e dispersivo
ambiguo e non formale
I linguaggi di programmazione sono troppo concreti
Ingegneria del software mod. A
Riccardo Cardin 8
9. OBJECT MANAGEMENT GROUP
OMGs mission is to develop, with our worldwide membership, enterprise integration
standards that provide real-world value. OMG is also dedicated to promoting business
technology and optimization for innovation through its Business Ecology速 Initiative (BEI)
program and associated Communities of Practice
Aziende che partecipano alla definizione di UML
Ingegneria del software mod. A
Riccardo Cardin 9
Aonix
Colorado State University
Computer Associates
Concept Five
Data Access
EDS
Enea Data
Hewlett-Packard
IBM
I-Logix
InLine Software
Intellicorp
Kabira Technologies
Klasse Objecten
Lockheed Martin
Microsoft
ObjecTime
Oracle
Ptech
OAO Technology Solutions
Rational Software
Reich
SAP
Softeam
Sterling Software
Sun
Taskon
Telelogic
Unisys
10. SOMMARIO
Che cos竪 UML
Utilizzo di UML
Prospettiva di Utilizzo
Diagrammi UML
UML e lo Sviluppo Software
Ingegneria del software mod. A
Riccardo Cardin 10
11. UTILIZZO DI UML
UML come abbozzo (skecth)
Approccio pi湛 utilizzato in assoluto
Confermo ;-)
Documentare e descrizione porzioni di sistema
Forward engineering
Il sistema (o una parte) 竪 descritto con diagrammi UML
prima delle stesura del codice
Aiuta la progettazione dellarchitettura del prodotto
Aziende medio/grandi
Documento di Specifica Tecnica (ST)
Reverse engineering
Il diagramma UML 竪 costruito a partire dal codice
Documentazione a posteriori
Aziende medio/piccole (aziende italiane in genere)
Ingegneria del software mod. A
Riccardo Cardin 11
12. UTILIZZO DI UML
UML come abbozzo (skecth)
Ingegneria del software mod. A
Riccardo Cardin 12
13. UTILIZZO DI UML
UML come progetto
Approccio pi湛 ingegneristico
Documento di Definizione di prodotto (DP)
Descrive formalmente il sistema per modelli
Elevato grado di dettaglio
Nessuna decisione o interpretazione da parte del
programmatore
Definizione delle interfacce tra sottosistemi
Approccio pi湛 comune rispetto alla descrizione di tutto il
sistema
I programmatori progettano e sviluppano le componenti
dei sistemi in autonomamente
Software per la progettazione di dettaglio
CASE (Computer-Aided Software Engineeging)
Ingegneria del software mod. A
Riccardo Cardin 13
14. UTILIZZO DI UML
UML come progetto
Ingegneria del software mod. A
Riccardo Cardin 14
15. UTILIZZO DI UML
UML come linguaggio di programmazione
Generazione automatica del codice a partire dai
diagrammi
Approccio ottimale (ma utopistico)
Prevede lutilizzo di pattern ricorrenti
Programmazione meccanica
Strumenti di compilazione dei diagrammi UML
Complessi e costosi
Correttezza formale del codice
Il codice prodotto pu嘆 soddisfare intrinsecamente delle
propriet di correttezza formale
realmente un approccio conveniente?
pi湛 costosa la modellazione o la scrittura del codice?
Ingegneria del software mod. A
Riccardo Cardin 15
16. PROSPETTIVA DI UTILIZZO
Concetti VS. Software
Prospettiva software
Elementi UML corrispondono ad elementi software
Classi, oggetti, ecc
La pi湛 utilizzata
Prospettiva concettuale
Utilizzato per descrive concetti in un dominio
Definizione di un vocabolario comune
Approccio meno comune
UML inizia ora a diffondersi nei domini informatici,
figuriamoci in quelli non informatici
UML, a volte non basta
Modellazione di processi di business (BPM)
Ingegneria del software mod. A
Riccardo Cardin 16
17. UML: UN PO DI STORIA
Anni 80
Programmazione a oggetti
Smalltalk, albori del C++,
Linguaggi grafici orientati agli oggetti per la progettazione
Moltitudine di autori: Grady Booch, Peter Coad, ecc
Teorie molto simili, ma con fastidiosi particolari che non permettevano la
standardizzazione
Anni 90
Rational (ora parte di IBM)
Sviluppa un suo standard (UML 0.8)
Pericoloso vantaggio competitivo
OMG
Pressioni da numerosi produttori di strumenti software
Mantenere linteroperabilit degli strumenti CASE
Concetto tuttora non raggiunto :-(
UML 1.0: gennaio 1997
2003: UML 2.0
Major release: Versione da utilizzare!
Ingegneria del software mod. A
Riccardo Cardin 17
18. UML DI TUTTI I GIORNI
Esiste UML legale?
Non possiede regole prescrittive
Definiscono cosa 竪 legale e cosa non lo 竪
Necessita di un ente ufficiale di controllo
Precise regole descrittive
per imparare conviene partire dal suo utilizzo concreto
Il grado di dettaglio pu嘆 variare
Ogni elemento UML pu嘆 essere soppresso, ottenendo ancora
un diagramma legale
E la sensibilit dellautore a determinare le informazioni da
esporre nel diagramma
Voi sarete OBBLIGATI a tenere sempre un buon grado di dettaglio
Ingegneria del software mod. A
Riccardo Cardin 18
durante il corso
19. SOMMARIO
Che cos竪 UML
Utilizzo di UML
Prospettiva di Utilizzo
Diagrammi UML
UML e lo Sviluppo Software
Ingegneria del software mod. A
Riccardo Cardin 19
21. DIAGRAMMI UML
Esempi di diagrammi
Ingegneria del software mod. A
Riccardo Cardin 21
Diagramma delle classi
Diagramma di sequenza
Diagramma dei casi duso
22. SOMMARIO
Che cos竪 UML
Utilizzo di UML
Prospettiva di Utilizzo
Diagrammi UML
UML e lo Sviluppo Software
Ingegneria del software mod. A
Riccardo Cardin 22
23. UML E LO SVILUPPO SOFTWARE
Ogni fase, i suoi diagrammi
Ingegneria del software mod. A
Riccardo Cardin 23
Diagrammi Use case
Diagrammi di flusso
Revisione
dei
Requisiti
R. Progetto
Architetturale
Revisione di
Qualifica
R. di
Accettazione
Diagrammi dei package
Diagrammi delle classi
Diagrammi degli oggetti
Diagrammi di attivit
Diagrammi di sequenza
Diagrammi delle classi
Diagrammi di attivit
Diagrammi di sequenza
Diagrammi di flusso
24. GLOSSARIO
Design Pattern
Soluzione progettuale generale a un problema ricorrente. Una descrizione o un
modello da applicare per risolvere un problema che pu嘆 presentarsi in diverse
situazioni durante la progettazione e lo sviluppo del software.
Framework
Struttura di supporto su cui un software pu嘆 essere organizzato e progettato
Ingegneria del software mod. A
Riccardo Cardin 24
25. RIFERIMENTI
OMG Homepage www.omg.org
UML Homepage www.uml.org
UML Distilled, Martin Fowler, 2004, Pearson
(Addison Wesley)
Ingegneria del software mod. A
Riccardo Cardin 25