Weekly outline

  • General

    Domain Specific Languages (DSL)

    Linguagens para Domínios Específicos (LDE)

    2009/2010

    Lecturer: Vasco Amaral (e-mail: vasco.amaral@di.fct.unl.pt)

    Programme: DSL/LDE is a 6 ECTS (6 x 28 hours of work) optional course from Mestrado em Engenharia Informática (MEI - 2º ciclo) with a 2 hours lecture and a 2 hours lab session.

    Day of the week

    From

    To

    Classroom

    Lecture

    Thursday

    14h30

    16h30

    117 ED II

    Lab

    Thursday

    16h30

    18h30

    123 ED II

    Summary:

    How is it possible to improve the productivity of the specialists of a certain application domain, when they have to develop constantly software products of the same family? How can we increase efficiency of the development phase of those products without having to make use of complex general purpose languages, but at the same time, without loosing the power of specification's flexibility? How do we model small specific languages (textual or visual) that are adequate to a certain domain in order to automate the generation of final application products? How different is the design of visual and textual languages? What methodology and both theoretical and practical tools do we currently have at our hands to build successfully a Domain Specific Language (DSL)? What are the examples of DSLs at different domains?

    A DSL is a programming language that offers expressive power oriented to a specific domain ( software engineering; Cryptography algorithms; system management; data bases; multimedia; telecommunications; bio-informatics; simulation; CAD; hardware control; data mining; financial computations). This course will approach methodologies and tools for developing a DSL.



    NEWS


    1ª época normal de 2007/2008 pdf

    2ª época de recurso de 2007/2008 pdf

    1ª época normal de 2008/2009 paper
    pdf


    For submission instructions and get the template file access the workshop website

    Schedule and Slides

    Lecture

    Date

    Lecture

    Lab

    1

    16/2/09

    20/2/09

    Canceled (lack of beamer in the lecture room)

    Course Intro ( slides ).

    Motivation ( slides ).

    23/2/09

    27/2/09

    National Holiday

    National Holiday
    2

    2/3/09

    6/3/09

    Domain Engineering. Software Product Lines. Model Driven Development.
    Language Design Process. ( slides )

    Feature Diagrams: Exercises ( slides )
    Tools: FMP

    3

    9/3/09

    13/3/09

    MDD.

    Models and Metamodels. ( slides )

    MDA.

    Metamodeling the Petri-nets formalism. ( slides )

    Textual Language Workbench: Invited speaker Ricardo Mateus: Xtex Openarchitectureware ( slides tutorial )

    4

    16/3/09

    20/3/09

    Language Syntax and Semantics - The need of being Formal ( pdf )

    Introduction to the project ( pdf legodsl.xtx Main.xtp ). Presentation of the last year project by a former DSL course student, André Rosa ( slides ).

    5

    23/3/09

    27/3/09

    Language Workbenches. XMI. EMF and GMF. Metamodeling the Statemachines notation ( pdf )

    Meta-modeling tools: tutorial GMF/EMF. Example Turing Machine.
    6

    30/3/09

    3/4/09

    Well-formdness rules: context constraints with OCL ( pdf ). Meta-modeling tools: exercise Petri Nets with GMF/EMF ( pdf )
    6/4/09 10/4/09 Easter Holidays Easter Holidays

    13/4/09

    17/4/09

    Easter Holidays

    Easter Holidays
    7

    20/4/09

    25/4/09

    Transformation: Model to Model an Model to text. Generation: Types of generator facilites. Transformation with Graph Grammars. ( pdf pdf pdf )

    Model Transformation and Code Generation: Tools: ATL exercises

    (ATL site)

    8

    27/4/09

    1/5/09


    Project support
    OCL: exercises ( pdf )
    9

    4/5/09

    8/5/09

    Graph Grammars: DPO and SPO. Examples. ( pdf )
    Language Usability Evaluation Issues ( pdf ).

    Testing the java code on the Lego Robots.

    10

    11/5/09

    15/5/09

    DSL Examples: Robot Simulation with Microsoft DSL Tools
    DSL Examples 1: Domain of Augmented Reality


    Testing the java code on the Lego Robots

    11

    18/5/09

    22/5/09

    How to write a paper - guidelines. ( pdf )

    Testing the java code on the Lego Robots
    12

    25/5/09

    29/5/09

    How to give a talk - general guidelines (suggested to read pdf , ppt )

    Testing the java code on the Lego Robots
    13 1/6/09 5/6/09 Project evaluation session. Project evaluation session.
    14 8/6/09 12/6/09

    Workshop (8/6/09)

    - 3/6/09 paper Submission
    - 8/6/09 (14h-19h) Workshop DSLI089(location: DI seminar room / Sala de seminários do DI)

    - 10/6/09 each group delivers its presentations' evaluation questionnaire

    - 8/6/09 each group delivers a review from other group's paper

    Workshop (8/6/09)



    Assessment

    Project: 70%

    • Domain Analysis 10%

    • Language Design 15%

    • Language Editor/Parser + Generator Engine 20%
    • (8-10 pages) Paper (describing the running project) 30%

    • Oral presentation (workshop) 20%

    • Paper Review and Presentation critique 5%

    Examination: 30%


    Tools

    O aluno Rui Domingues gentilmente cedeu aos colegas uma versão do Captain Feature corrigida por si para correr sobre o SDK mais recente. Esta ferramenta pode ser útil para modelar o Feature Diagram no projecto.


    Rui Domingues has gently made available his version of CaptainFeature hacked to run in a recent version of SDK. The students might find it useful for modeling the Feature Diagrams of the first report.

    http://pessoa.fct.unl.pt/rgd17289/material/mei/dsl/captainfeature10.rar

     

     

    References

    Books:

    "Software Languages Engineering", Anneke Kleppe, Addison Wesley Professional, 2008.

    "Generative Programming Methods, Tools and Applications", Krzystof Czarnecki, Ulrich Eisenecker,Addison-Wesley, 2000.

    "Domain Specific Modeling", Steven Kelly and Juha-Pekka Tolvanen, Wiley, 2008.

    "Introduction to the Theory of Programming Languages", bertrand Meyer, Prentice Hall, 1990.

     

    Sugested extra-reading (other related books):

    "Domain-Specific Development with Visual Studio DSL Tools", Cook,Jones,Kent,Wills, Addison-Wesley 2007

    "Software Factories", Jack Greenfield and Keith Short, Wiley Publishing , 2004.

    Tools:

    Eclipse Ganimede:

    "EMF Eclipse Modeling Framework", Dave Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks, Wiley Publishing, 2008.

    Plugins (openarchitectureware and FMP):

    Suggested Papers:

    S. Nakajima and N. Ubayashi, "Lightweight Formal Analysis of FODA Feature Diagrams", Rapid Integration of Software Engineering - RISE, LNCS, Springer-Verlag, 2007. (pdf)

    David Harel and Bernhard Rumpe, "Modeling Languages: Syntax, Semantics and All That Stuff Part I:The Basic Stuff", Technical Report MCS00-16, The Weizmann Institute of Science, Israel, September 2000. (pdf)

    K. Czarnecki and S. Helsen, "Feature-based survey of model transformation approaches". IBM Systems Journal, Vol 45, N 3, 2006. (pdf)

    M. Emerson and J. Sztipanovits, "Techniques for Metamodel Composition",The 6th OOPSLA Workshop on Domain-Specific Modeling, OOPSLA 2006, (Portland, OR), ACM, Oct 2006. (pdf)

    A. Deursen, P. Klint, J. Visser, "Domain-Specific Languages: An Annotated Bibliography" , SIGPLAN Notices, 35(6):26-36, June 2000. (pdf)

    T. Gjøsæter, I. Fivelstand Isfeldt, and A. Prinz, "A software language for Sudoku", Proc. 1st International Conference on Software Languages Engineering, LNCS, Springer, 2009.

    K. Czarnecki and S. Helsen. Feature-Based Survey of Model Transformation Approaches. IBM Systems Journal, special issue on Model-Driven Software Development. 45(3), 2006, pp. 621-645

    Suggested Thesis:

    Scott Thibault, "Domain-Specific Languages: Conception, Implementation and Application", Université de Rennes, October 1998

    Old news:

    9/6/09 - Corrected broken links to slides on OCL, transformations and usability

    -Review form for the presentations at form

    -The reviews were assigned to each group see more details at the submissions website ( http://www.easychair.org ). Each group needs to submit only one form for the assigned paper (deadline for the submission is Monday 8 at 24h00).

    -Added slides on how to give a talk (see below)

    -Proposed Schedule of the talks at website. Each group is responsible for filling the evaluation form for 8 talks at their choice (deadline for the submissions is Wednesday 10 of June at 24h00).



  • 3 March - 9 March

    • Introduction to course admnistrative issues.
    • Motivation for the DSLs course.
    • 10 March - 16 March

      • 17 March - 23 March

        • 24 March - 30 March

          • 31 March - 6 April

            • 7 April - 13 April

              • 14 April - 20 April

                • 21 April - 27 April

                  • 28 April - 4 May

                    • 5 May - 11 May

                      • 12 May - 18 May

                        • 19 May - 25 May

                          • 26 May - 1 June