Presentazione tenuta nel corso della professoressa Arcelli su u4j2rsf, progetto Open Source nell'ambito della SAR, Software Architecture Reconstruction.
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 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.
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.
15124879312344 analisis de entrada, salidas y controles en los sistemas elect...Farid Rodriguez Romero
El SENA certifica que José Alberto Rodríguez Rojas completó con éxito un curso de 40 horas sobre Análisis de Entradas, Salidas y Controles en los Sistemas Eléctricos. El certificado, emitido el 15 de diciembre de 2009 en Cartagena, confirma que Rodríguez cumplió los requisitos del curso.
Este currículum vitae presenta los datos personales, perfil profesional, estudios y cursos de Sergio de Jesús Gómez Espinosa. Se describe a Gómez Espinosa como un licenciado en Administración de Empresas con experiencia en ventas y en el departamento de finanzas de una empresa agroindustrial. Además, detalla que estudió la licenciatura en Administración de Empresas en la Universidad Maya y la preparatoria en Pablo Guardado Chávez en Tuxtla Gutiérrez, Chiapas. Finalmente, menciona haber tomado curs
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 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.
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.
15124879312344 analisis de entrada, salidas y controles en los sistemas elect...Farid Rodriguez Romero
El SENA certifica que José Alberto Rodríguez Rojas completó con éxito un curso de 40 horas sobre Análisis de Entradas, Salidas y Controles en los Sistemas Eléctricos. El certificado, emitido el 15 de diciembre de 2009 en Cartagena, confirma que Rodríguez cumplió los requisitos del curso.
Este currículum vitae presenta los datos personales, perfil profesional, estudios y cursos de Sergio de Jesús Gómez Espinosa. Se describe a Gómez Espinosa como un licenciado en Administración de Empresas con experiencia en ventas y en el departamento de finanzas de una empresa agroindustrial. Además, detalla que estudió la licenciatura en Administración de Empresas en la Universidad Maya y la preparatoria en Pablo Guardado Chávez en Tuxtla Gutiérrez, Chiapas. Finalmente, menciona haber tomado curs
Benvenuto nel nostro approfondimento interattivo sul Java, il linguaggio di programmazione Object-Oriented ampiamente adottato, conosciuto per la sua robustezza, sicurezza e portabilità. Questa presentazione è il tuo gateway per comprendere il perché Java, con la sua sintassi intuitiva e la famosa piattaforma indipendente, continua a essere il pilastro dello sviluppo di software in vari ambienti operativi. Scoprirai i meccanismi alla base della Java Virtual Machine (JVM) e come la piattaforma Java fornisce una base ineguagliabile per lo sviluppo di applicazioni enterprise, mobile e web di alto livello. Dal principiante appassionato di tecnologia al veterano dello sviluppo software, immergiti nella lingua che ha ridefinito i codici della programmazione.
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...MicheleDamian
Il documento presenta il lavoro di tesi svolto da Michele Damian presso la facoltà di Ingegneria Informatica dell'università di Bologna. Lo scopo della dissertazione è quello di analizzare il comportamento di tuProlog (un interprete per il linguaggio di programmazione logica Prolog) e individuarne i punti critici al fine di migliorarne le prestazioni sia in termini di tempi di esecuzione che di gestione della memoria.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
8 Novembre 2019 @ ContainerDay (GrUSP) / Bologna
Con l'acronimo KISS (Keep It Simple and Stupid) si evoca un modo di fare software antico: la UNIX Way. Ma non è tutto racchiuso lì dentro, si tratta piuttosto di una filosofia progenitrice del movimento DevOps. Declinata oggi nel mondo Linux da migliaia di tecnici e organizzazioni, che include assunti come modularità, semplicità, composizione e chiarezza nel fare. Tutto evolve portandosi dietro principi solidi e al tempo stesso pronti al cambiare: dai modelli open-source ai flussi Git, dalla gestione dei pacchetti ai container, dalle infrastrutture a risorse finite agli orchestratori del cloud; fino a mescolare le definizioni stesse di sistema operativo e applicazione tra user-space e kernel-space. Henry Spencer, padre delle RegEx, scrisse coloro che non capiscono Unix sono condannati a inventarlo di nuovo. In questo talk racconto ciò che ho imparato da questa filosofia che già in tempi non sospetti si occupava di sistemi complessi, e ha ancora molto da regalare a chi è coinvolto nella produzione e nel mantenimento di software.
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à.
This is an old presentation I've given for a Lunch&Learn in my previous job. In this presentation I'm trying to explain the concept of Inversion of Control, It's advantages and how Test Driven Development forces you to embrace this approach. When the dependencies becomes many the need for a framework arise, those frameworks are usually called IoC. Than quickly I intruduce the difference in Dynamic Languages as Ruby.
Tesi di laurea di Giancarlo Todone dal titolo
"Progetto e realizzazione di una infrastruttura modulare per acquisizione ed archiviazione remota di documenti"
Benvenuto nel nostro approfondimento interattivo sul Java, il linguaggio di programmazione Object-Oriented ampiamente adottato, conosciuto per la sua robustezza, sicurezza e portabilità. Questa presentazione è il tuo gateway per comprendere il perché Java, con la sua sintassi intuitiva e la famosa piattaforma indipendente, continua a essere il pilastro dello sviluppo di software in vari ambienti operativi. Scoprirai i meccanismi alla base della Java Virtual Machine (JVM) e come la piattaforma Java fornisce una base ineguagliabile per lo sviluppo di applicazioni enterprise, mobile e web di alto livello. Dal principiante appassionato di tecnologia al veterano dello sviluppo software, immergiti nella lingua che ha ridefinito i codici della programmazione.
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...MicheleDamian
Il documento presenta il lavoro di tesi svolto da Michele Damian presso la facoltà di Ingegneria Informatica dell'università di Bologna. Lo scopo della dissertazione è quello di analizzare il comportamento di tuProlog (un interprete per il linguaggio di programmazione logica Prolog) e individuarne i punti critici al fine di migliorarne le prestazioni sia in termini di tempi di esecuzione che di gestione della memoria.
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
8 Novembre 2019 @ ContainerDay (GrUSP) / Bologna
Con l'acronimo KISS (Keep It Simple and Stupid) si evoca un modo di fare software antico: la UNIX Way. Ma non è tutto racchiuso lì dentro, si tratta piuttosto di una filosofia progenitrice del movimento DevOps. Declinata oggi nel mondo Linux da migliaia di tecnici e organizzazioni, che include assunti come modularità, semplicità, composizione e chiarezza nel fare. Tutto evolve portandosi dietro principi solidi e al tempo stesso pronti al cambiare: dai modelli open-source ai flussi Git, dalla gestione dei pacchetti ai container, dalle infrastrutture a risorse finite agli orchestratori del cloud; fino a mescolare le definizioni stesse di sistema operativo e applicazione tra user-space e kernel-space. Henry Spencer, padre delle RegEx, scrisse coloro che non capiscono Unix sono condannati a inventarlo di nuovo. In questo talk racconto ciò che ho imparato da questa filosofia che già in tempi non sospetti si occupava di sistemi complessi, e ha ancora molto da regalare a chi è coinvolto nella produzione e nel mantenimento di software.
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à.
This is an old presentation I've given for a Lunch&Learn in my previous job. In this presentation I'm trying to explain the concept of Inversion of Control, It's advantages and how Test Driven Development forces you to embrace this approach. When the dependencies becomes many the need for a framework arise, those frameworks are usually called IoC. Than quickly I intruduce the difference in Dynamic Languages as Ruby.
Tesi di laurea di Giancarlo Todone dal titolo
"Progetto e realizzazione di una infrastruttura modulare per acquisizione ed archiviazione remota di documenti"
1. Introduzione
Understand for Java
ARMIN
u4j2rsf
Progetto u4j2rsf:
da Understand for Java ad ARMIN
http://sourceforge.net/projects/u4j2rsf
Michele Zonca
Università di Milano Bicocca
17 Aprile 2008
Michele Zonca u4j2rsf
3. Introduzione
Understand for Java Software Architecture Reconstruction
ARMIN Passaggi fondamentali
u4j2rsf
Premessa
Da una ricerca del 2005 di Forrester Research risulta
che una grossa percentuale (circa 75%) dei fondi
investiti in un progetto è destinata alla manutenzione
del software
Michele Zonca u4j2rsf
4. Introduzione
Understand for Java Software Architecture Reconstruction
ARMIN Passaggi fondamentali
u4j2rsf
Software Architecture Reconstruction
Ricostruire un’architettura software è un processo di Reverse
Engineering che punta a visualizzare le decisioni prese dagli
sviluppatori riguardo l’architettura di un sistema.
necessario in caso di documentazione insufficiente
chiarisce quali sono le dipendenze tra i componenti
serve a visualizzare come è stato implementato il progetto
aiuta a capire dove andare a “mettere le mani”
Michele Zonca u4j2rsf
5. Introduzione
Understand for Java Software Architecture Reconstruction
ARMIN Passaggi fondamentali
u4j2rsf
Passaggi fondamentali
Cercare di comprendere il funzionamento ed il design di un
software è un procedimento molto lungo e complesso che
richiede diversi step:
Source Information Extraction (Understand for Java)
Information Formatting (u4j2rsf)
Architectural View Composition (ARMIN)
Architectural Analysis (ARMIN)
Michele Zonca u4j2rsf
6. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Outline
Introduzione
1
Software Architecture Reconstruction
Passaggi fondamentali
Understand for Java
2
Introduzione
Caratteristiche
ARMIN
3
Introduzione
Caratteristiche
u4j2rsf
4
Introduzione
HOWTO
Architettura u4j2rsf
TODO e sviluppi futuri
Michele Zonca u4j2rsf
7. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Cos’è Understand for Java
Understand for Java is a reverse engineering,
documentation, code exploration and metrics tool for
Java source code
Understand for Java is an interactive development
environment (IDE) designed to help maintain and
understand large amounts of Java code.
Michele Zonca u4j2rsf
8. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Caratteristiche
Software commerciale sviluppato da SciTools
In grado di caricare sorgenti di grandi progetti
Individua i componenti e le relazioni definite tra essi
Genera report di queste relazioni in formato HTML o
testuale (in un unico file o in diversi)
Disponibile per diverse piattaforme
Evaluation Version disponibile gratuitamente
Michele Zonca u4j2rsf
9. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Report testuali U4J
Serie di file di testo generati secondo il pattern
nome_progetto.ext dove ext è:
dic per Data Dictionary
pux per Program Unit Cross Reference
obx per Object Cross Reference
...
Contengono tutte le informazioni relative al sistema: classi,
oggetti, metodi, variabili, alberi delle chiamate a funzione ..
Identificano quindi gli elementi e le relazioni
Michele Zonca u4j2rsf
10. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Report testuale U4J: .dic
Generated on: 18 May 2008 16:14:43
Data Dictionary Summary Report
================================================
args (Parameter)
[HelloWorld.java, 5]
ex (Variable)
[HelloWorld.java, 9]
Michele Zonca u4j2rsf
11. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Outline
Introduzione
1
Software Architecture Reconstruction
Passaggi fondamentali
Understand for Java
2
Introduzione
Caratteristiche
ARMIN
3
Introduzione
Caratteristiche
u4j2rsf
4
Introduzione
HOWTO
Architettura u4j2rsf
TODO e sviluppi futuri
Michele Zonca u4j2rsf
12. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Introduzione
Architecture Reconstruction and MINing
Sviluppato dall’università privata Carnegie Mellon
http://www.cmu.edu dal Software Engineering Institute
(SEI) sponsorizzato dal dipartimento della difesa USA
Necessita di un file testuale detto schema che definisce le
relazioni in forma ternaria
Prende in input file in formato RIGI (.rsf, Rigi Standard
Format) in cui vengono applicate le relazioni
Michele Zonca u4j2rsf
13. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
Caratteristiche
Una volta caricate le informazioni in ARMIN, si possono
eseguire gli ultimi due step di SAR:
Architectural View Composition viene preparata la
visualizzazione delle relazioni definite e descritte
dai file di input
Architectural Analysis analisi e navigazione dell’architettura
generata da ARMIN da parte dell’utente
Michele Zonca u4j2rsf
14. Introduzione
Understand for Java Introduzione
ARMIN Caratteristiche
u4j2rsf
File di input
Come detto, i file di input necessari ad ARMIN sono due:
Schema Descrive le relazioni attraverso triple:
defines_class, package, class
defines_fn, class, function
contains_class, file, class
RSF Usa le relazioni definite nello schema per
descrivere il sistema:
defines_class org.zonca.u4j2rsf.example HelloWorld
defines_fn HelloWorld.java HelloWorld.main
contains_class HelloWorld.java HelloWorld
Michele Zonca u4j2rsf
15. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Outline
Introduzione
1
Software Architecture Reconstruction
Passaggi fondamentali
Understand for Java
2
Introduzione
Caratteristiche
ARMIN
3
Introduzione
Caratteristiche
u4j2rsf
4
Introduzione
HOWTO
Architettura u4j2rsf
TODO e sviluppi futuri
Michele Zonca u4j2rsf
16. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Introduzione
Le caratteristiche di u4j2rsf sono:
Software Open Source (Licenza GPL) disponibile su
SourceForge all’indirizzo
http://sourceforge.net/projects/u4j2rsf
Scritto in Java
Facilmente estendibile
Prende in input i report testuali di Understand for Java
Crea file per ARMIN (schema e rsf)
Michele Zonca u4j2rsf
17. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Scaricare il progetto
Per scaricare il tool basta andare sulla homepage
http://sourceforge.net/projects/u4j2rsf e scaricare
l’archivio contenente eseguibile e documentazione.
Lanciarlo con il comando:
java -jar u4j2rsf-X.X.jar prefisso_report_u4j
Michele Zonca u4j2rsf
18. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Compilare i sorgenti
Per avere la versione più aggiornata:
Checkout del progetto dal repository svn:
svn co https://u4j2rsf.svn.sourceforge.net/svnroot/u4j2rsf/trunk u4j2rsf
esecuzione di ant ( http://ant.apache.org ) nella root
del progetto
entrare nella directory dist e lanciare
java -jar u4j2rsf-X.X.jar prefisso_report_u4j
Michele Zonca u4j2rsf
19. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Importare i sorgenti
Creare un nuovo progetto u4j ed importare i sorgenti Java.
Michele Zonca u4j2rsf
20. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Generare report
Generare i report testuali di Understand for Java (in diversi file)
Michele Zonca u4j2rsf
21. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Eseguire u4j2rsf
Lanciare u4j2rsf sui report generati passando come parametro
il percorso ed il prefisso dei report.
Esso creerà nella stessa directory due file:
nome_progetto.txt, il file che descrive le relazioni utilizzate
nome_progetto.rsf il file RSF che mette in relazione le
entità definite nel progetto
Michele Zonca u4j2rsf
22. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
ARMIN
Dopo aver avviato ARMIN:
creare un nuovo progetto importando il file dello schema
importare il file rsf
Michele Zonca u4j2rsf
23. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
ARMIN:Importare schema
Michele Zonca u4j2rsf
24. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
ARMIN:Importare rsf
Michele Zonca u4j2rsf
25. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
Caratteristiche tecniche del software
Le caratteristiche principali dell’implementazione di u4j2rsf:
Java 6
Flessibilità: possibilità di sviluppare rapidamente plugin
che vengono caricate ed usate automaticamente in base
ad un elenco in un file di properties
Documentazione: API Javadoc, diversi file di esempio e
manuale pdf
Logging: utilizzo del package JUL (java.util.logging)
configurabile da file di properties
Test: JUnit 4 per testare automaticamente il
comportamento dei vari componenti
Supporto ad ant per compilazione (simile a Makefile)
Michele Zonca u4j2rsf
26. Introduzione Introduzione
Understand for Java HOWTO
ARMIN Architettura u4j2rsf
u4j2rsf TODO e sviluppi futuri
TODO e sviluppi futuri
aggiungere nuove relazioni per descrivere al meglio il
software
completare documentazione con la versione in inglese
preparare la release
migliorare gestione della memoria
Michele Zonca u4j2rsf