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.
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.
The document discusses Microsoft Dynamics CRM and its applications for healthcare organizations. It describes how CRM can help with outreach, case coordination, and case management. This includes using CRM for tasks like managing patient relationships; tracking outreach campaigns, community education events, and donor relationships; coordinating care among clinicians, departments, and organizations; and proactively managing chronic conditions through automated communications and education. The document provides examples of how healthcare organizations can use Dynamics CRM to improve patient satisfaction and care while increasing efficiency.
The document discusses various techniques for exploiting buffer overflows to bypass data execution prevention (DEP) protections, including return-oriented programming (ROP). It describes using Windows API functions like VirtualAlloc to allocate executable memory and copy shellcode. ROP gadgets can be used to craft the stack and call the API functions with the correct parameters, such as allocating memory at a given address and size and marking it executable. The document provides an example stack layout to call VirtualAlloc and memcpy to allocate and copy shellcode into executable memory to bypass DEP.
Metering Central America & Mexico 2011adrianorehder
This document is a show guide for the Metering Central America & Mexico conference and exhibition being held in Mexico City. The two-day conference will have sessions on smart metering technologies for both energy and water utilities, and will address key issues like loss prevention, operational efficiency, and smart grid implementation projects. Speakers from utilities in Mexico, Central America, South America, Europe, the US, India, and South Africa will discuss their experiences with smart metering programs and strategies for fraud prevention. The exhibition will feature main sponsors and allied utilities in the energy and water sectors.
The document contains a nursing care plan for a postpartum patient named Janet U. Dela razo. It identifies several diagnoses including sleep disturbance, urinary elimination impairment, self-care deficit, change of appetite, and defecation incontinence. For each diagnosis, the nurse plans short-term and long-term interventions, and evaluates the outcomes of the interventions.
In Onebip we developed a reporting system based on CQRS (Command Query Responsibility Segregation) and Event Sourcing using MongoDB.
In this talk I will introduce CQRS and Event Sourcing concepts, I will talk about our path and technical and conceptual challenges we faced, the strenght of our solution and the parts where there's room for improvement.
Si parla tanto di DevOps e alle conferenze gli argomenti più gettonati sono build pipeline, continuous integration/delivery/deploy, deploy automation e monitoring.
Ci stiamo dimenticando qualcosa... i test! dove sono i test? perché non si parla quasi mai di test? in questo fantastico mondo DevOps come si inseriscono i test?
I test sono solo un passo della pipeline di build? se la pensassi così il titolo del mio intervento sarebbe stato "Continuous Testing in DevOps", non credete?
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
The document discusses Microsoft Dynamics CRM and its applications for healthcare organizations. It describes how CRM can help with outreach, case coordination, and case management. This includes using CRM for tasks like managing patient relationships; tracking outreach campaigns, community education events, and donor relationships; coordinating care among clinicians, departments, and organizations; and proactively managing chronic conditions through automated communications and education. The document provides examples of how healthcare organizations can use Dynamics CRM to improve patient satisfaction and care while increasing efficiency.
The document discusses various techniques for exploiting buffer overflows to bypass data execution prevention (DEP) protections, including return-oriented programming (ROP). It describes using Windows API functions like VirtualAlloc to allocate executable memory and copy shellcode. ROP gadgets can be used to craft the stack and call the API functions with the correct parameters, such as allocating memory at a given address and size and marking it executable. The document provides an example stack layout to call VirtualAlloc and memcpy to allocate and copy shellcode into executable memory to bypass DEP.
Metering Central America & Mexico 2011adrianorehder
This document is a show guide for the Metering Central America & Mexico conference and exhibition being held in Mexico City. The two-day conference will have sessions on smart metering technologies for both energy and water utilities, and will address key issues like loss prevention, operational efficiency, and smart grid implementation projects. Speakers from utilities in Mexico, Central America, South America, Europe, the US, India, and South Africa will discuss their experiences with smart metering programs and strategies for fraud prevention. The exhibition will feature main sponsors and allied utilities in the energy and water sectors.
The document contains a nursing care plan for a postpartum patient named Janet U. Dela razo. It identifies several diagnoses including sleep disturbance, urinary elimination impairment, self-care deficit, change of appetite, and defecation incontinence. For each diagnosis, the nurse plans short-term and long-term interventions, and evaluates the outcomes of the interventions.
In Onebip we developed a reporting system based on CQRS (Command Query Responsibility Segregation) and Event Sourcing using MongoDB.
In this talk I will introduce CQRS and Event Sourcing concepts, I will talk about our path and technical and conceptual challenges we faced, the strenght of our solution and the parts where there's room for improvement.
Si parla tanto di DevOps e alle conferenze gli argomenti più gettonati sono build pipeline, continuous integration/delivery/deploy, deploy automation e monitoring.
Ci stiamo dimenticando qualcosa... i test! dove sono i test? perché non si parla quasi mai di test? in questo fantastico mondo DevOps come si inseriscono i test?
I test sono solo un passo della pipeline di build? se la pensassi così il titolo del mio intervento sarebbe stato "Continuous Testing in DevOps", non credete?
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
Durante l'ottavo Meetup di Milano, tenutosi il 19 Maggio dalle ore 10:30, si è potuto approfondire con Paolo Petronzi tutte le metodologie di testing e automazione con MUnit, invce con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, c'è stato un focus sull'integrazione con Salesforce.
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
Build automatizzate, esecuzione di unit test, creazione di un pacchetto nuget, ecco cosa serve per essere pronti con SQL Server e la continuous integration
1. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
MyJOrganizer
uno strumento per la gestione della propria task list
Davide Bellettini
Progetto di Linguaggi e Modelli Computazionali M
11 novembre 2010
Davide Bellettini MyJOrganizer - strumento di gestione task list 1 / 23
2. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Outline
1 Introduzione
2 Analisi e progettazione
Analisi
Il linguaggio
Architettura
3 Implementazione e test
Screenshot
Test
4 Conclusioni
Limiti
Sviluppi futuri
Davide Bellettini MyJOrganizer - strumento di gestione task list 2 / 23
3. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Introduzione
Obiettivi del progetto:
definire un linguaggio che preveda comandi per la
manipolazione di una lista di task, permettendo
l’inserimento, la modifica e la cancellazione di elementi;
realizzare un’interprete per questo linguaggio;
creare un’applicazione desktop (Java/Swing) che fornisca pi`u
viste grafiche dei dati, per evidenziare i differenti aspetti di
interesse;
eseguire comandi leggendoli da standard input o da file;
esportare il contenuto della lista come elenco di comandi;
rendere la lista persistente.
Davide Bellettini MyJOrganizer - strumento di gestione task list 3 / 23
4. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Analisi
Il linguaggio
Architettura
Analisi 1/2
Nell’analisi le entit`a significative che sono emerse sono le seguenti:
Task: `e l’entit`a principale dell’applicazione, rappresenta un
compito da eseguire;
TaskPriority: rappresenta la priorit`a di un task in termini di
urgenza e importanza;
TaskStatus: rappresenta lo stato di lavorazione del task
(aperto, chiuso, annullato, posticipato ecc.);
TaskDependency: rappresenta la dipendenza di sequenza tra
due task (es. “sollevare l’auto con il cric” prima di “smontare
la ruota”).
Davide Bellettini MyJOrganizer - strumento di gestione task list 4 / 23
6. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Analisi
Il linguaggio
Architettura
Il linguaggio
Una tipica frase di inserimento task:
insert task esameLinguaggi:
title: "Linguaggi e Modelli Computazionali M"
description: "Teoria + Progetto"
completion: 90%
urgent: false
important: true
status: "open"
startdate: 2010-09-01
duedate: 2010-11-10
dependencies:
before esameSicurezza
end dependencies
end task
Davide Bellettini MyJOrganizer - strumento di gestione task list 6 / 23
7. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Analisi
Il linguaggio
Architettura
Il linguaggio
Per indicare al sistema che si `e completato un task (impostando il
completamento al 100% e lo stato su “closed”):
done task esameLinguaggi
In alternativa:
update task esameLinguaggi:
set status: "closed"
set completion: 100%
end update
Per eliminare un task:
delete task esameLinguaggi
Davide Bellettini MyJOrganizer - strumento di gestione task list 7 / 23
10. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Analisi
Il linguaggio
Architettura
Grammatica
Simboli non terminali 3/3
DependencyDefinition ::= ( ( <BEFORE> | <AFTER> ) )
<IDENTIFIER>
UpdateField ::= ( <SET> EditableField
| DependencyAdd | DependencyDelete )
EditableField ::= ( TaskTitle | TaskCompletion
| TaskUrgency | TaskImportance
| TaskStatus | TaskStartDate
| TaskDueDate )
DependencyAdd ::= <ADD> <DEPENDENCY>
DependencyDefinition
DependencyDelete ::= <DELETE> <DEPENDENCY>
DependencyDefinition
Per l’elenco dei token si rimanda alla documentazione completa
della grammatica.
Davide Bellettini MyJOrganizer - strumento di gestione task list 10 / 23
11. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Analisi
Il linguaggio
Architettura
Grammatica
Considerazioni:
la grammatica `e di tipo 2 (context-free), in particolare LL(1);
`e possibile utilizzare strumenti automatici per la generazione
del parser (es. JavaCC);
non presenta self-embedding;
il linguaggio prodotto `e quindi di tipo 3 (regolare);
sarebbe possibile definire una grammatica lineare equivalente,
che risulterebbe tuttavia meno comprensibile.
Davide Bellettini MyJOrganizer - strumento di gestione task list 11 / 23
12. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Analisi
Il linguaggio
Architettura
Architettura
Durante la progettazione sono state operate alcune scelte
architetturali:
per la generazione del parser e dell’AST sono stati utilizzati
JavaCC e JTB (mediante un plug-in per Maven);
implementazione secondo il pattern Model-View-Controller;
largo utilizzo di tecnologie standard Java:
JPA (Java Persistence API) per la persistenza dei dati;
JSR 303 (Bean Validation) per la validazione dei dati;
JSR 296 (Swing Application Framework) per la GUI;
MessageBundle per l’internazionalizzazione.
thread dedicato alla lettura dei comandi da console
(adottando TaskCommand come scopo e reinizializzando il
parser dopo ogni comando);
Davide Bellettini MyJOrganizer - strumento di gestione task list 12 / 23
13. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Screenshot
Test
Screenshot 1/8
Vista sorgente (anteprima esportazione)
Davide Bellettini MyJOrganizer - strumento di gestione task list 13 / 23
21. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Screenshot
Test
Test
Le varie parti dell’applicazione sono state testate adottando
approcci differenti:
Per le entit`a principali (Task, TaskPriority, TaskStatus,
TaskDependency) si `e adottato un approccio test-first,
automatizzando i test con l’ausilio di JUnit;
Per quanto riguarda l’interprete s`ı preferito testare
l’applicazione manualmente:
inserendo comandi da console;
leggendo i comandi da file (`e possibile automatizzare questo
tipo di test);
Il comportamento dell’interfaccia grafica `e stato anch’esso
testato manualmente.
Davide Bellettini MyJOrganizer - strumento di gestione task list 21 / 23
22. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Limiti
Sviluppi futuri
Limiti
Il progetto allo stato attuale presenta i seguenti limiti:
l’interfaccia grafica `e adatta pi`u per la visualizzazione che per
la manipolazione della lista;
il sistema `e pensato per un uso individuale, non conosce il
concetto di gruppo di lavoro;
non sono presenti meccanismi di sincronizzazione tra pi`u
postazioni.
Davide Bellettini MyJOrganizer - strumento di gestione task list 22 / 23
23. Introduzione
Analisi e progettazione
Implementazione e test
Conclusioni
Limiti
Sviluppi futuri
Sviluppi futuri
Si individuano come possibili sviluppi futuri:
migliorie dell’interfaccia grafica:
drag & drop;
menu contestuali;
editor in linea;
console integrata;
estensione del linguaggio per aggiungere il concetto di gruppo
di lavoro;
sincronizzazione con servizi di terze parti (es. Google Tasks,
Toodledo ecc.);
statistiche pi`u elaborate;
porting su altre piattaforme (J2ME, Eclipse RCP).
Davide Bellettini MyJOrganizer - strumento di gestione task list 23 / 23