Modeling and Analyzing Engagement in Social Network Challenges

Within a completely new line of research, we are exploring the power of modeling for human behaviour analysis, especially within social networks and/or in occasion of large scale live events. Participation to challenges within social networks is a very effective instrument for promoting a brand or event and therefore it is regarded as an excellent marketing tool.
Our first reasearch has been published in November 2016 at WISE Conference, covering the analysis of user engagement within social network challenges.
In this paper, we take the challenge organizer’s perspective, and we study how to raise the
engagement of players in challenges where the players are stimulated to
create and evaluate content, thereby indirectly raising the awareness about the brand or event itself. Slides are available on slideshare:

We illustrate a comprehensive model of the actions and strategies that can be exploited for progressively boosting the social engagement during the challenge evolution. The model studies the organizer-driven management of interactions among players, and evaluates
the effectiveness of each action in light of several other factors (time, repetition, third party actions, interplay between different social networks, and so on).
We evaluate the model through a set of experiment upon a real case, the YourExpo2015 challenge. Overall, our experiments lasted 9 weeks and engaged around 800,000  users on two different social platforms; our quantitative analysis assesses the validity of the model.



To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).

The Co-evolution problem

After a few discussions on the importance and complexity of co-evolution in software engineering, during the exam session I asked to describe and explain the problem, with specific reference to model co-evolution (and metamodel – model coevolution). The crucial point of the problem is that if a model evolves to a newer version, the related models should reflect this evolution too. Analogously, if a metamodel describing a modeling language evolves, the models that conform to the previous version of the metamodel will not conform to the new version. Therefore, versions converters should be provided together with the new metamodel.

model - metamodel coevolution
model – metamodel coevolution

However, some people have a very tranchant (meaning, all black and white) vision of the world. Here is a lapidary response by a student:

The problem of co-evolution of models is when done getting back to the previous model is impossible.

Well, … your turn. (no, it’s impossible)

Gestione di un camping

In questo esercizio si riporta specifica dei requisiti goal-driven in i*, progetto UML e implementazione Java di un sistema di gestione di un camping.

L’esercizio è stato svolto da due studenti, che hanno proposto soluzioni diverse: Valeria Verzi (soluzione senza gestione del calendario prenotazioni) e Federico Salvioni.

Soluzione 1 (autore: Valeria Verzi):

Soluzione 1 – Documento di specifica e design

Soluzione 1 – ZIP file con progetti e documento. Esempio senza gestione calendario prenotazioni

Soluzione 2(autore: Federico Salvioni):

Soluzione 2 – Documento di specifica e design

Soluzione 2 – ZIP file con progetti e documento

Sistema di gestione del cruscotto di una automobile

In questo esercizio si riporta specifica dei requisiti goal-driven in i*, progetto UML e implementazione Java di un sistema di gestione del cruscotto di una automobile.

L’esercizio è stato svolto da Umberto Aramini.

Documento di specifica e design – caso cruscotto auto

File ZIP con progetti i*, UML, Java

Those omniscient users

Despite repeating it in my courses every year, I end up getting this error from at least 10 – 20% of the students at each exam session.

When drawing the class diagram of a software application, they invariably add a User class (call it the role you want: customer, admin, professor, director, clerk and so on) and then they add the list of actions that the user can perform in that class, instead of putting them in the classes they pertain to.

So, for instance if you want a method for paying a ticket of a flight, the payTicket() method ends up in the user class!

If you have any doubt that this is correct just think that then:

  • you should put all the method triggered by user choices, in user classes
  • to invoke that action from a caller method you should do it through the user class. Something like:  JohnDoe.buyTicket()
    While the right approach should be:

Attribution of actions / objectives to users is something you do at requirement specification level (e.g., when defining goal diagrams, use cases or scenarios), not at design level.

Project work… serialization

Today I had a project work review session with my students. This one made me jump on my chair. A student is reporting on the problems he has on his software development project work, and finally here he comes with this small concern:
“I was serializing the data we needed and suddenly Java sent out a warning about not to serialize the classes implementing the UI. Why is that?”
I was going to suggest to serialize his project work and ship it to another university.

To learn more about serialization of object in OO see:

BPM2010 daily news include also one of our tweets among the tweets of the day

@fmercalli retweeted one of my tweets on BPM 2010 and guess what? A retweet from Como became one of the tweets of the day here at BPM 2010 in Hoboken, NJ, USA.

Engineering Web Search Engines and Applications

Check out our SlideShare presentation of the ICWE 2010 tutorial: Engineering Web Search Engines and Applications

Stefano Ceri keynote about Search Computing at TOOLS/ICMT 2010

Check out this SlideShare Presentation:

WebML and WebRatio – Business process modeling (BPM) and web application modeling

Check out this SlideShare Presentation about a Seminar on WebML and WebRatio BPM I recently gave at Ecole des Mines de Nantes. Business process modeling and automatic web application generation with a commercial and free toolsuite that exploits SOA, Java, and web service orchestration.