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.
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.
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.
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: myTicket.buy()
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.
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.
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.