COOMP 2011  

COOMP 2011:
First International Workshop on Combined Object-Oriented Modeling and Programming

SPLASH 2011

Program

 
8:30 Ole Lehrmann Madsen, Birger Møller-Pedersen Welcome and Summary of Keynote from Models 2010
9:15 Dave Thomas Modeling Languages are Dead, Long Live Modeling! Models are from Venus, Programs are from Mars
10:00   Break
10:30 Thomas Weigert The use of Models in the Development of Large-scale Industrial Software Systems
11:15 Ed Seidewitz Models, Programs and Executable UML
12:00   Lunch
13:30 Bjorn Freeman-Benson Constraints in Combined OO Modeling and Programming
14:15 James Noble, Andrew Black, Kim Bruce: Modeling with Grace
15:00   Break
15:30 Jean Bezivin Why Did MDE Miss the Boat?
16:15 Klaus Ostermann Down with Modeling!
17:00 Ole Lehrmann Madsen, Birger Møller-Pedersen Wrap-up

Abstracts

Dave Thomas:
Modeling Languages are Dead, Long Live Modeling!
Models are from Venus, Programs are from Mars

Modeling is a critically important activity in every discipline. It is common outside of CS to use many different perspectives to explore, explain and realize models. In CS we are stuck believing in single modeling or programming languages to model and realize software. Model Languages and Programming Languages must be round and beautiful as well as acutely over or under featured. What can we learn from our successes and failures and those of other disciplines?

Thomas Weigert:
The use of Models in the Development of Large-scale Industrial Software Systems
Software systems can, of course, be produced by coding alone. However, we found that models can dramatically improve the productivity of the software engineer and the quality of the resultant systems. Requirements models describe system functionality. Design models can realize the desired system behavior. Architecture models can describe the software architecture that will realize the non-functional properties of the system. Platform models describe how an application is mapped onto the target environment. By themselves, these models would be just pictures and documentation. However, when paired with model analysis and model transformation tools, models can become the key elements of system development: Requirements models can be formally validated and verified for correctness. High-level design models can be synthesized from requirements models. Architecture models, design models, and platform models can be woven and transformed into highly efficient code. And finally, test suites can be derived from the requirements models. We have deployed a work flow characterized by these models and the necessary supporting tools in the development of embedded telecommunication and data communication software. We offer these experiences as an existence proof that model-driven engineering works, when modeling skills are augmented with powerful tools.

Ed Seidewitz:
Models, Programs and Executable UML
All programs are models – they model the computation that is required on execution. Well designed object-oriented programs, however, do double duty, both as models of the required computation and as models of the problem domain that provides the context for this computation. But mainstream programming languages, even object-oriented ones, just are not good enough as problem domain modeling languages. UML, on the other hand, provides a rich set of features for modeling both problem domains and solutions, which complements the features of programming languages for specifying detailed computations. But this means that UML models have often been “just pictures” – they are not precise or complete enough to be programs in their own right. However, with the recent standardization of both UML execution semantics and a surface action language notation, there is now an interesting convergence of modeling and programming in UML. And not only is this a useful way to program, it may be the beginning of a new step in the evolution of our programming paradigm itself.

James Noble, Andrew Black, Kim Bruce:
Modeling with Grace
We are designing Grace, a new programming language aimed at education. While purely object-oriented, Grace aims to support a range of pedagogies, including procedures-first, functional first, objects first, and modeling first. In this talk, we'll outline the main features of Grace, and present our ideas for supporting modeling, as well as programming, with Grace.

Jean Bezivin:
Why Did MDE Miss the Boat?
Models have failed, at least temporarily. Model Driven Engineering (MDE) is a specific branch of software modeling that has been experimented for less than two decades. One of its best known instantiation is the MDA™ initiative launched in November 2000 by the OMG. The deployment of MDE seems today to have reached a standstill. In spite of the immense hopes that greeted the MDA initial proposal as a possible way to regenerate the entire software engineering practices, we must recognize today that its impact is rather limited and its perspectives quite confined. We consequently propose the view that the current iteration may not be the last one. This piece of technology may need an additional cycle to mature and produce maximum impact. This report will summarize the important lessons learnt in the current iteration and examine some of the difficulties that may have hampered a wider adoption. Among these difficulties some loose or contradictory goals will be discussed as well as the ambiguous relation between programming languages and modeling languages. At a time when software engineering is being much questioned - not only in its operation but also in its essence - we may consider the necessary adaptation of MDE as a chance for the future. To this purpose we need to reflect on the past and select the good set of properties and practices that will tomorrow allow MDE to play a central role to produce, maintain and operate software based systems.

Klaus Ostermann:
Down with Modeling!
The prevalent notion of modeling in software construction has been adopted from engineering and the natural sciences. I argue that "modeling", as known from these other disciplines, does not fit to the specific nature and ontological status of software. A model in engineering or the natural sciences describes a phenomenon of reality from the perspective of a single stakeholder. A program, on the other hand, creates a phenomenon of reality, and must fit to the requirements of all involved stakeholders simultaneously. This difference may sound metaphysical, but I argue that it has profound implications for the epistemology and merits (or rather, lack thereof) of modeling in practical software construction.

Important Dates

* Deadline extended *

  • Initial submission: August 29, 2011
  • Final version: October 3, 2011
  • Workshop: October 23, 2011

Last modified: Fri Oct 7 15:47:31 CEST 2011