Welcome to the Language and Software Evolution (LSE) group which is part of the Logiciels and Systemes Team of the LISTIC laboratory. Our research is articulated around program and language evolution at the language but also architecture level.

Keywords

Software Engineering, Object-Oriented Programming, Language Design, Reengineering, Architecture, Architectural Description Languages, Reverse Engineering, SOA, Web-Services, Program Understanding, Reflective Programming, Meta-Programming, Meta-Modeling, UML, Aspect-Oriented Programming, Modules, Frameworks, Design Patterns, Teaching OO, Traits, Classboxes Scheme, Smalltalk, Java, C#, Recast Project, FAMOOS Project, PECOS Project, ArchWare project, Pie Project.

News

Object-Oriented Reengineering

How can we support the maintenance and evolution of large industrial applications? This work includes mon-exhaustively the following topics: duplicated code detection, version analysis, meta-modeling, remodularisation, program understanding, program visualization, reengineering platform and tools. We worked with Nokia, Daimler-Chrysler and Sema Group. Links: The Moose Reengineering Environment, Recast: Evolution of Object-Oriented Applications, FAMOOS, Cook.

Valorisation: We are validating our research on large industrial case studies written in C++, Java, Smalltalk (and Cobol). If you are a company that want to benefit from our tools or know-how contact us.

Consulting: We have been consulting for Harman-Becker AG, Bedag AG and some small companies

Architectural Description Languages

As software systems increase in complexity, evolving them becomes difficult too. One way to overcome this problem is to use higher levels of abstraction while reducing the cognitive distance between the initial concept and its final executable implementation. According to this view, software architectures are considered as relevant artefacts in bridging the gap between the initial concept of a software system and its implementation. Software architectures abstract software systems following both structural and behavioural perspectives. An architecture model defines the structure, i.e. elements and their interrelations, in terms of components (computational units), connectors (elements supporting components's interactions) and configurations of interrelated elements. From a behavioural perspective, architectures define elements's actions and relations among them (ordering constraints like sequencing, choice, composition, etc.). Our ADLs we define are based on formal polyadic high order pi-calculus in order to formally express architectures. Such formal architectures can be then checked against behavioural and/or structural constraints/properties. We contributed to the Esprit IST 5 ArchWare project and the ArchWare languages (ArchWare ADL, ArchWare AAL, ArchWare ASL, ArchWare AXL, ArchWare ARL).

Nimrod is an architecture-centric engineering environment. Nimrod provides an ADL (Nimrod ADL) allowing to express dynamic software (or software-intensive system) architectures, i.e. architectures that may evolve dynamically. Nimrod environment provides a Smalltalk-like syntax. A Nimrod architectural description can be modified "on the fly", while the architecture is interpreted. Nimrod ADL aims at combining ADLs strengths with OOPLs strengths in order to express architectural structure and behaviour.

Services Oriented Architectures (SOA)

How can we design and enact evolvable SOAs? Our work aims at providing an engineering environment for designing and enacting SOAs. Our approach is an architecture-centric formal approach. We provide a layered language formally based on pi-calculus and a SOA dedicated language (the last layer called pi-Diapason) that allows an SOA expert to design SOA without knowing pi-calculus. An SOA designed using our language can be then deployed as a new Web service that also can be re-used "as is" in another SOA. The pi-Diapason language focuses on Web services orchestration by supporting most of the well-known orchestration patterns. As SOAs are formally designed, they can be verified against structural, behavioural (i.e. composition/orchestration) specific properties. We are aiming at studying domain-specific properties and QoS that could be also verified. Once verified, orchestration is executed with our engine that directly interpretes pi-Diapason (avoiding to transform the design to another language - i.e. BPEL4WS, etc.). The engineering environment (called Diapason) integrates some tools for designing, enacting and checking SOAs. As pi-Diapason is based on pi-calculus, it provides mechanisms in order to support orchestration dynamic evolution. An evolution expressed in pi-Diapason is made "on the fly" because pi-Diapason engine integrates mechanisms in order to support orchestration state consistency while dynamic evolution. Contact us for more information.

Language Design

How can we improve languages to support evolution? We are working on the fundamental aspects of object-oriented languages (encapsulation, modules, namespaces, components, class composition...) and Architecture Description Languages (ADLs). OO languages:
  • Components for Embedded Systems. We developed with ABB a component model for field devices (80 kram) in the Pecos IST project.
  • With Traits we compose classes from groups of reusable groups of methods. Link: Traits. Valorisation: The language Scala developed at the EPFL incudes traits and it has been announced that PERL 6 will include traits. We are currently working on the integration of Traits in C#. Squeak 3.9 has now traits. Fortress the new languague for scientific computing developed at Sun Microsystems uses exclusively traits (see Dr Dobbs G. Steele interview -- DDJ April 2005, page 20). The DrDobbs Journal Excellence in Programming award this year was given to Guy Steele which is one of the designer of Fortress.
  • Classboxes are modules that supports the extension of classes. Link: Classboxes.
ADLs:
  • dynamic and formal ADLs. We investigate on dynamic ADLs that have formal foundations - we use pi-calculus as such fundations.
  • architectural structure. We study architectural structure and composition mechanisms in order to improve evolution. Find the best architectural structure against the evolution support ? We provide architectural elements that manages evolution. We call them choreographer, evolver.

Some Program and Organizing Committees

  • Program Committee Member: ICSM'2005, ICSM'2006, ICPC'2006, 2007 ECOOP'2006, ECOOP'2007, L'objet, MODELS'2006, UML 2007, UML2006, UML/MODELS'05, UML'04, UML'03, LMO'2006, LMO'2005, LMO'04, LMO'03, LMO'02, LMO'01, LMO'00, XP'00, XP'01, WCRE'05, CSMR'2006, CSMR'2007, WCRE'02, IDM'2005, IDM'2006, ICPC'2006, ICPC'2007
  • Workshops Program Committee Member or Organizer: Segravis 2004, ATEM'04, WOOR'04, WOOR'03, PostJavaLanguageEngineering'04, PostJavaLanguageEngineering'03 Revival of DynamicLanguages'04.
  • Conference Co-Chair: ESUG 2005, 2004, 2003, 2002 www.esug.org

Coordinates

At Annecy (Postal address):
LISTIC - Polytech'Savoie
B.P. 80439
74944 Annecy-le-Vieux Cedex
FRANCE

At Annecy (To reach the IMUS):
IMUS
4, chemin de Bellevue
Domaine universitaire d'Annecy-Le-Vieux
FRANCE

At Annecy (To reach the lab):
LISTIC - Polytech'Savoie
5, chemin de Bellevue
Domaine universitaire d'Annecy-Le-Vieux
FRANCE Fax: +33 450 09 65 59