Picture by Jeremy LeJyBy

Menu:

Program

09:00 – 10:00 T1: Collaboration through tools: life of the Moose platform
10:00 – 11:00 T2: Formal Concept Analysis
11:00 – 11:30 Coffee Break
11:30 – 14:00 JCCC Inagural Session + Lunch Break
14:00 – 15:00 T3: Traits @ work
15:00 – 16:00 T4: Change-Based Software Evolution
16:00 – 16:30 Coffee Break
16:30 – 17:30 T5: Seaside
17:30 – 18:30 T6: Model-Driven Software Architecture Design

Formal Concept Analysis in Software Engineering

Gabriela Arévalo

Formal Concept Analysis is a clustering technique for discovering conceptual structures in data. These structures allow the discovery and analysis of (complex) dependencies within the data. FCA has been used in different phases of the process of software engineering. In this talk, a broad overview will be presented by describing and classifying different approaches in this field.

Back to program

Collaboration through tools: life of the Moose platform

Simon Denier

Moose is a platform for reverse engineering tools. Moreover, Moose is built as a platform for collaboration in research: people maintains Moose so that they can reuse its facilities and easily build their own tools on top of it. The course follows the evolution of Moose over 10 years. It illustrates technological and design choices which enable interaction, reuse, and collaboration. Above all, Moose places the human factor at the center of its process for collaboration.

Back to program

Seaside: Building Complex Web Applications Simply

Stéphane Ducasse

It would be hard to imagine a worse model for user interface development than HTTP. Would you use a GUI framework where every event from every widget in your application was handed to you at once, periodically, as a large hashtable full of strings? Where every time a single piece of data changed you had to regenerate a textual description of the entire interface? Where the event-based architecture was so strict that you couldn’t ever, under any circumstances, open a modal dialog box and wait for it to return an answer? Those are the costs of using the web browser as a client platform, and, by and large, we accept them. The dominant paradigms of web development — CGI, Servlets, Server Pages — do very little to hide or circumvent the low level realities of HTTP, and as a result, web applications are fragile, verbose, and ill-suited to reuse.

Seaside solves these problems. Seaside is a framework for developing sophisticated web applications. In this talk I will present some of its unique features, such as its approach to session management: unlike servlet models that require a separate handler for each page or request, Seaside models an entire user session as a continuous piece of code, with natural, linear control flow. Furthermore I will create a small web-application as a demo together with the audience and present a complex production web-site that has been built using Seaside.

Back to program

Traits @ work

Stéphane Ducasse

Traits have been proposed as a mechanism to compose and share behavioral units between distinct class hierarchies. Several versions have been developed and they have been used to build complex libraries. This presentation puts in perspective the current versions and stress their relationships and limits. Traits have been introduced in AmbientTalk, Slate, and Squeak and under a variant into Scala, Fortress, Perl6.

Back to program

Model-Driven Software Architecture Design

Daniel Perovich

Although several software architecture design methods, description techniques and requirement resolution strategies are available to Software Architecture practitioners, the current state of the art still does not cover all architects needs and hamper successful tool support. Software Architecture knowledge is loosely documented, making it difficult to share and reuse, and critical design decisions are lost during the architecting process. This talk will show how to apply Model-Driven Engineering techniques to rigorously represent Software Architecture knowledge, facilitating its evolution and making it amenable to tools.

Back to program

Change-Based Software Evolution

Romain Robbes

In this second lecture, I will talk specifically of my research. If software repositories are widely used to support software evolution, they have issues that make them not ideal for the task. As a consequence, software evolution approaches have to deal with complications introduced by the characteristics of software repositories.

I proposed an approach, named Change-Based Software Evolution, that addresses some of the issues introduced by software repositories. Instead of modeling the evolution of a software system as a series of version, CBSE models it as a sequence of changes that were performed between the versions. This alternative representation allows one to represent the evolution with much more accuracy, which in turn allows one to better support software evolution.

Back to program