Need to ask your analysts what they want?

Then you have a problem!
The problem is not that they are not able to collect from customers what they wanted. Sometimes they know very well, even too much. Sometimes they deliberately (and wisely) decide not to consider some requests. The price could be to live with the complaints of customers. All this is addressed very well in a recent post by Anthony Finkelstein on not asking users what they want (and I actually mimicked his title here). But this is another issue.

The problem with your analysts is they are not able to put into proper technical “words” (meaning models and specifications) what the customers informally ask for.
To cope with this, we try to teach people appropriate modeling languages, methods, formalisms, modeling tools and analysis tools. But these are all mere attempts to reduce the misunderstandings, implicitness, incoherency, and ambiguity in human-to-human communication.
And yet, addressing these problem is paramount in any large software project. From my point of view, it also opens up interesting research issues.
IEEEThat’s why, together with Irene Vanderfeesten and Dirk Fahland, from Eindhoven University of Technology, we decided to organize a new workshop this year, the:

1st IEEE International Workshop on Communicating Business Process and Software Models. Quality, Understandability, and Maintainability
Eindhoven, the Netherlands, 23 September 2013.


The workshop will focus on model understandability, complexity of modeling languages, actual usage of language features, cognitive aspects in modeling languages, human perception and subjective perspectives on models, impact of professional roles and of cultural background on model understanding, and related issues. The workshop will be a multi-disciplinary forum for discussing about impact of models on understanding and communication between people.

Its uniqueness stands in the attempt of bringing together the business process management (BPM) and software engineering and modeling communities
This will bring great value, as most of the misunderstanding and misalignments are between requirements and design, between business and IT, between CIM and PIM modeling levels. 
If you are interesting in knowing more about the 1st IEEE International Workshop onCommunicating Business Process and Software Models – Quality, Understandability, and Maintainability, you can visit the official Web site. You are obviously welcome to join the workshop and/or submit a contribution. The deadline for submitting is set to June 21st, 2013.

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

Success story paper: Large-scale Model-Driven Engineering of Web User Interaction with WebML and WebRatio

Our paper “Large-scale Model-Driven Engineering of Web User Interaction: The WebML and WebRatio experience” has been published online on Elsevier’s journal: Science of Computer Programming, in the special issue Success Stories in Model Driven Engineering (edited by Davide Di Ruscio, Richard Paige, Alfonso Pierantonio).

The history we report spans across a decade that has seen a dramatic  change in the way software applications are built, which can be summarized  in three fundamental factors that impacted the evolution of WebML and  WebRatio:
  • The progressive consolidation of theWeb as an application development platform
  • At the front-end, the multiplication of access devices and usage scenarios
  • At the back-end, Business Process Models emerged as a uniform way of representing cross-organization functionality, and Service Oriented Architecture as the technical vehicle for deploying process enactment on top of heterogeneous IT infrastructures.
These change drivers put much strain on a DSL like WebML, born for capturing the  features of the Web, and produced the timeline shown below:


The paper reports on our experience with WebML and WebRatio and describes the perspective of the new IFML standard adopted by OMG. The report tells the story of our company in the MDE tool market, facing the challenges of deploying MDE solutions in large-scale industrial players, with a focus on the model-driven design of user interaction and on code generation across all the tiers of Web/SOA applications. We describe our decisions on the DSL (domain specific language) and on the features we decided to implement (or not) in the tool. 
The paper includes an overview of WebRatio and of its accompanying DSL for Web application design (WebML); it describes the parallel evolution of the WebML language and of the WebRatio development environment; it reports on the the lessons learnt from the joint design of the DSL and of its support tool; it presents a sample of customer histories and reports some quantitative measures on the WebRatio usage, together with some statistics on WebML models size and development effort. Finally, we take the occasion to reflect on the success and failure factors for MDE emerged from the WebRatio experience.

The paper is available from Elsevier and also here in our open-access preprint version.

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

Automated Function Point (AFP) adopted as a standard by OMG

Automated Function Point analysis

I think we are all familiar with the Function Point concept, used for evaluation of the size of a software application in terms of functional features. We are all well aware of the limits of this unit of measure, to the point that it is considered rather obsolete in the software engineering community: subjectivity is the main flaw that people tend to highlight for FP analysis, despite some existing standard, mainly from ISO, tried to solve the issue. FP are currently used in industry and public administrations for issuing calls and describing complexity, but usually it is adopted only in paperworks, not by software designers and developers.
A few research activity have recently tried to bind function point analysis to model-driven engineering practices, at the purpose of automating the counting of FP starting from software models (for instance, you can look at the paper “Automating function point analysis with model driven development” presented at CASCON’06), but that remained a purely theoretical exercise, even if it was actually implemented in the WebRatio tool suite at the time.

That’s why I have been surprised when I got the news that OMG recently adopted a new standard related to Function Point analysis.
The new standard is called Automated Function Point (AFP). The initiative was led by the Consortium for IT Software Quality (CISQ) and by David Herron, coauthor of Function Point Analysis and leader of the international team that developed the standard
The Automated Function Point (AFP) was voted as an OMG specification in January 2013 through an RFC process (request for comments).
AFP provides a standard for automating the popular Function Point measure according to the counting guidelines of the International Function Point User Group.
Richard Soley commented the news as follows:

“Function-point counting has been around for ages. But function-point estimation has always been just that—estimation. […] With the new OMG Automated Function Point specification, function-point counts aren’t estimations; they’re counts—consistent from count to count, and person to person. Even more importantly, the standard is detailed enough to be automatable, i.e., it can be carried out by a program.” 

 If the standard will keep his promise, I think it can bring back the concept of function point to a level that makes it usable from actual software engineers. However, I think we will need something more than that for revitalizing the usage of FP in technical activities. In a sense, I think that trust in FP analysis has been probably irremediably lost in the software engineering community.
Do you agree / disagree with my viewpoint?

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

My new book on Model-Driven Software Engineering

Model-Driven Software Engineering in Practice. Book cover
Model-Driven Software Engineering in Practice.
See more on www.mdse-book.com.

I’m really proud to announce that a huge joint effort with Jordi Cabot and Manuel Wimmer has finnally reached his end. Our new book on model-driven software engineering, on which we have been working for almost one year, is finally published!

First of all, I wish to extend my thanks to my coauthors for the wonderful teamwork and to Richard Soley, OMG Chairman, who accepted to write the foreword of the book. I actually found it one of the most inspiring outlooks on the field I’ve read.

The book discusses how model-based approaches can improve the daily practice of software professionals. Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE) practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.

The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world.

This allows you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away.
As such, the book is not addressing only the hard-core software modelers, but also BPM practitioners, enterprise system consultants and analysts, and so on. Indeed, the book is targeted to a diverse set of readers, spanning: professionals, CTOs, CIOs, and IT team managers that need to have a bird’s eye vision on the matter, so as to take the appropriate decisions when it comes to choosing the best development techniques for their company or team; software and business analysts, developers, or designers that expect to use MDSE for improving everyday work productivity, either by applying the basic modeling techniques and notations or by defining new domain-specific modeling languages and applying end-to-end MDSE practices in the software factory; and academic teachers and students to address undergrad and postgrad courses on MDSE.

The book is organized into two main parts.

The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes.

The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects.

In addition to the contents of the book, more resources are provided on the book’s website we are currently setting up. There you can find the detailed TOC, the sources of the examples presented in the book, and the teaching materials we will build to support training activities based on the book.

If you want to buy the Model-Driven Software Engineering in Practice book, you can find it on Amazon or on the Morgan&Claypool website (printed and electronic versions available).

If you read and like the book, we will be glad if you post a review on Amazon!

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

Trends in Web engineering: my 4 takes from ICWE 2012

At this point of the year, just before vacation time, it makes sense to me to think to Web Engineering practices at large and draw some trends and outlook for the field after this year.
As a PC chair of ICWE 2012 (International Conference on Web Engineering), this year I can claim I had a privileged view over the entire event and I think this was a good test for assessing the field.
Furthermore, being directly involved into the organization of MDWE workshop, I have been directly exposed to the specific aspects of the model-driven field for the Web.
I see the following trends in the field:

  • still limited attention to non-functional aspects in Web application development. Honestly, this doesn’t make any sense to me and makes me think that this is one of the reasons why Web Engineering is still seen as a niche sector, both in industry and academia. Actually, at least some awareness starts appearing (e.g., some works on assessing the productivity of model-driven approaches have been discussed), but actual results are still very preliminary. And the Web is ALL ABOUT NON-FUNCTIONAL ISSUES!
  • mashups are still getting a lot of attention, as demonstrated by the successful ComposableWeb workshop too. However, I think we need to rethink a little bit this field. My feeling is that traditional mashups are no longer interesting per se. Even very well known solutions like Yahoo Pipes! have reached a limited audience, and in general mashups have never reached the maturity level that let them be used for producing enterprise-class professional applications. So, am I claiming that mashups are a complete failure? Not at all! They actually represent an important step that enabled the current trends toward Web API integration, which are probably used in most of the existing Web sites. I think that the mashup community in the future should look at the broad problem of Web API integration at large.
  • the role of model-driven approaches seems to slowly move out of its original position, strictly related to modeling of Web user interfaces. The MDWE workshop raised a very interesting discussion on the role of MDE and Agile approaches (thanks also to the support of the nice Instant Community system provided by University of Trento). Some activities, including our work towards integration of WebML modeling with social networks or towards integration with Business Process Management, try to broaden the applicability of the approaches, but I think more effort is needed to revitalize the field.
  • Finally, content and social analysis (both syntactical/textual and semantic) is getting more and more interest in the community. This is demonstrated by the wide set of well-attended ICWE tutorials that addressed these issues (The Web of Data for E-Commerce, Epidemic Intelligence for the Crowd, SPARQL and Queries over Linked Data, Natural Language Processing for the Web).
If you see some other interesting trends in Web Engineering, feel free to share your thoughts!

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

Sufficiently advanced software development methodology

I’ve been intrigued today by a bold tweet by Meinte Boersma (see his blog to know more about him and his activities)

Any sufficiently advanced software development methodology is indistinguishable from model-driven.

Meinte, I personally fully agree with you. Being also an advocate of Model driven development (and model driven in general, as this blog’s title demonstrates), this is not surprising at all.

This also opened up a new line of discussion, on whether MD* should be named a methodology at all or not.
Personally, I’m again with Meinte and I would say that MD* is much more than a bunch of tools. I think it is actually a methodology, or even more an overall way of thinking. If we want to delve into it: I think it’s a way to make explicit how we should think.

But real question as I see it is :
why can’t an advocate of any discipline state the same it for its own approach?
(e.g., development approaches like: Agile, Lean, test-based, search-based, …)

My response:
MDE is actually in a much better position, because it’s a way for formulating, stating and formalizing ways of thinking that are inherent with the human way of seeing the world (i.e., abstraction). That’s why MDE / MDD advocates can actually say that advanced software development methodology is indistinguishable from model-driven.

What’s your response?

Let’s discuss them all here!

[Incidentally, this is my post #100 on this blog! Thanks to all of you readers and contributors]

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

Invited Challenge Talk on Search Computing at ESEC/ ACM SIGSOFT FSE 2009

I have been invited to present a Challenge Talk at ESEC/FSE 2009, in Amsterdam on Search Computing. I presented the following talk on 28 August 2009 at Vrije University:

Title: Engineering Search Computing Applications: Vision and Challenges
Abstract: Search computing is a novel discipline whose goal is to answer complex, multi-domain queries. Such queries typically require combining in their results domain knowledge extracted from multiple Web resources; therefore, conventional crawling and indexing techniques, which look at individual Web pages, are not adequate for them. This talk will sketch the main characteristics of search computing and highlight how various classical computer science disciplines – including software engineering, Web engineering, service-oriented architectures, data management, and human-computing interaction – are challenged by the search computing approach.

Web Engineering: WebML and WebRatio

Since June 2000, I work in research projects related to Web Engineering. Web Engineering is the scientific discipline devoted to the study of methods, models, languages, and processes for the development of Web applications.
The Web Modelling Language (WebML) is a visual notation for specifying the composition and navigation features of hypertext applications.
WebML provides graphical, yet formal, specifications, embodied in a complete design process, which can be assisted by visual design tools. The main objectives of the WebML design process are:

  • expressing the structure of a Web application with a high-level description, which can be used for querying, evolution, and maintenance;
  • providing multiple views of the same content;
  • separating the information content from its composition into pages, navigation, and presentation, which can be defined and evolved independently;
  • storing the meta-information collected during the design process within a repository, which can be used during the lifetime of the application for dynamically generating Web pages;
  • modelling users and communities explicitly in the repository, to permit the specification of personalization policies and one-to-one applications;
  • enabling the specification of data manipulation operations for updating the site content or interacting with arbitrary external services.

WebML is patented by Politecnico di Milano, but can be used freely.

The WebML modeling language and its accompanying design method are currently implemented in a commercial Web design tool suite, called WebRatio.
With respect to the WebML development process, WebRatio covers the phases of data design and hypertext design, and supports implementation by automating the production of the relational database and of the application page templates.
Thanks to the automatic generation of J2EE code, the tool can be used for fast-prototyping, thus shortening the requirements validation cycle. Differently from traditional prototyping tools, which generate application mock-ups, the WebRatio code generator produces application modules running on state-of-the-art architectures, and can be used for implementation, maintenance, and evolution.